From 4ebc33174c02e1c9f5693b5ef38ecfe3292c687f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 11 Aug 2017 00:39:04 -0700 Subject: Move to .NET Core 2.0 --- src/Directory.Build.props | 12 + src/WixToolset.Data/AccessModifier.cs | 27 + src/WixToolset.Data/AssemblyInfo.cs | 11 + .../BundleApprovedExeForElevationAttributes.cs | 16 + src/WixToolset.Data/ColumnDefinition.cs | 1032 ++ src/WixToolset.Data/Common.cs | 53 + src/WixToolset.Data/ComplexReferenceChildType.cs | 46 + src/WixToolset.Data/ComplexReferenceParentType.cs | 49 + src/WixToolset.Data/CompressionLevel.cs | 26 + src/WixToolset.Data/Data/Xsd/actions.xsd | 73 + src/WixToolset.Data/Data/Xsd/libraries.xsd | 66 + src/WixToolset.Data/Data/Xsd/objects.xsd | 143 + src/WixToolset.Data/Data/Xsd/outputs.xsd | 66 + src/WixToolset.Data/Data/Xsd/pdbs.xsd | 32 + src/WixToolset.Data/Data/Xsd/tables.xsd | 248 + src/WixToolset.Data/Data/actions.xml | 76 + src/WixToolset.Data/Data/messages.xml | 95 + src/WixToolset.Data/Data/tables.xml | 1962 +++ src/WixToolset.Data/DisplayEventArgs.cs | 15 + src/WixToolset.Data/DuplicateSymbolsException.cs | 35 + src/WixToolset.Data/EmptyRule.cs | 22 + src/WixToolset.Data/Field.cs | 266 + src/WixToolset.Data/FileFormat.cs | 17 + src/WixToolset.Data/FileStructure.cs | 294 + src/WixToolset.Data/ILibraryBinaryFileResolver.cs | 9 + src/WixToolset.Data/IMessageHandler.cs | 18 + src/WixToolset.Data/Intermediate.cs | 189 + src/WixToolset.Data/Library.cs | 297 + src/WixToolset.Data/Localization.cs | 372 + src/WixToolset.Data/LocalizedControl.cs | 57 + src/WixToolset.Data/MessageEventArgs.cs | 176 + src/WixToolset.Data/MessageLevel.cs | 25 + src/WixToolset.Data/Messaging.cs | 173 + src/WixToolset.Data/Msi/MsiInterop.cs | 313 + src/WixToolset.Data/NonClosingStreamWrapper.cs | 105 + src/WixToolset.Data/ObjectField.cs | 183 + src/WixToolset.Data/Output.cs | 394 + src/WixToolset.Data/OutputType.cs | 31 + src/WixToolset.Data/PackagingType.cs | 11 + src/WixToolset.Data/Pdb.cs | 163 + src/WixToolset.Data/Platform.cs | 22 + src/WixToolset.Data/Row.cs | 626 + src/WixToolset.Data/RowDictionary.cs | 84 + src/WixToolset.Data/RowIndexedList.cs | 301 + src/WixToolset.Data/RowOperation.cs | 30 + src/WixToolset.Data/Rows/BBControlRow.cs | 113 + src/WixToolset.Data/Rows/ComponentRow.cs | 245 + src/WixToolset.Data/Rows/ContainerType.cs | 13 + src/WixToolset.Data/Rows/ControlRow.cs | 143 + src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs | 13 + src/WixToolset.Data/Rows/FileAssemblyType.cs | 19 + src/WixToolset.Data/Rows/FileRow.cs | 640 + src/WixToolset.Data/Rows/MediaRow.cs | 80 + src/WixToolset.Data/Rows/PatchAttributeType.cs | 27 + src/WixToolset.Data/Rows/PropertyRow.cs | 42 + .../Rows/SummaryInfoRowCollection.cs | 42 + src/WixToolset.Data/Rows/SymbolPathType.cs | 17 + src/WixToolset.Data/Rows/UpgradeRow.cs | 90 + src/WixToolset.Data/Rows/WixActionRow.cs | 374 + src/WixToolset.Data/Rows/WixActionRowCollection.cs | 222 + .../Rows/WixApprovedExeForElevationRow.cs | 79 + src/WixToolset.Data/Rows/WixBundleCatalogRow.cs | 50 + src/WixToolset.Data/Rows/WixBundleContainerRow.cs | 78 + .../Rows/WixBundleExePackageAttributes.cs | 12 + src/WixToolset.Data/Rows/WixBundleExePackageRow.cs | 101 + src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs | 93 + .../Rows/WixBundleMsiPackageAttributes.cs | 15 + src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs | 137 + .../Rows/WixBundleMsiPropertyRow.cs | 58 + .../Rows/WixBundleMspPackageAttributes.cs | 14 + src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs | 99 + src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs | 57 + .../Rows/WixBundlePackageAttributes.cs | 13 + .../Rows/WixBundlePackageCommandLineRow.cs | 82 + .../Rows/WixBundlePackageExitCodeRow.cs | 51 + src/WixToolset.Data/Rows/WixBundlePackageRow.cs | 226 + src/WixToolset.Data/Rows/WixBundlePackageType.cs | 15 + .../Rows/WixBundlePatchTargetCodeRow.cs | 81 + src/WixToolset.Data/Rows/WixBundlePayloadRow.cs | 185 + .../Rows/WixBundleRelatedPackageRow.cs | 87 + .../Rows/WixBundleRollbackBoundaryRow.cs | 59 + src/WixToolset.Data/Rows/WixBundleRow.cs | 228 + .../Rows/WixBundleSlipstreamMspRow.cs | 48 + src/WixToolset.Data/Rows/WixBundleUpdateRow.cs | 38 + src/WixToolset.Data/Rows/WixBundleVariableRow.cs | 80 + src/WixToolset.Data/Rows/WixChainAttributes.cs | 15 + src/WixToolset.Data/Rows/WixChainItemRow.cs | 39 + src/WixToolset.Data/Rows/WixChainRow.cs | 63 + src/WixToolset.Data/Rows/WixComplexReferenceRow.cs | 208 + src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs | 142 + .../Rows/WixDeltaPatchSymbolPathsRow.cs | 58 + src/WixToolset.Data/Rows/WixFileRow.cs | 161 + src/WixToolset.Data/Rows/WixGroupRow.cs | 62 + src/WixToolset.Data/Rows/WixMediaRow.cs | 60 + src/WixToolset.Data/Rows/WixMediaTemplateRow.cs | 81 + src/WixToolset.Data/Rows/WixMergeRow.cs | 149 + .../Rows/WixPayloadPropertiesRow.cs | 81 + src/WixToolset.Data/Rows/WixPropertyRow.cs | 118 + src/WixToolset.Data/Rows/WixRelatedBundleRow.cs | 52 + src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs | 63 + .../Rows/WixUpdateRegistrationRow.cs | 62 + src/WixToolset.Data/Rows/WixVariableRow.cs | 81 + src/WixToolset.Data/Section.cs | 240 + src/WixToolset.Data/SectionType.cs | 31 + src/WixToolset.Data/Serialize/CodeDomInterfaces.cs | 96 + src/WixToolset.Data/Serialize/CodeDomReader.cs | 161 + src/WixToolset.Data/Serialize/ElementCollection.cs | 617 + src/WixToolset.Data/SourceLineNumber.cs | 205 + src/WixToolset.Data/SubStorage.cs | 109 + src/WixToolset.Data/Symbol.cs | 89 + src/WixToolset.Data/Table.cs | 446 + src/WixToolset.Data/TableDefinition.cs | 334 + src/WixToolset.Data/TableDefinitionCollection.cs | 229 + src/WixToolset.Data/TableExtensions.cs | 23 + src/WixToolset.Data/TableIndexedCollection.cs | 153 + src/WixToolset.Data/TableOperation.cs | 25 + src/WixToolset.Data/WindowsInstallerStandard.cs | 444 + src/WixToolset.Data/WixCorruptFileException.cs | 29 + src/WixToolset.Data/WixDataStrings.Designer.cs | 307 + src/WixToolset.Data/WixDataStrings.resx | 204 + src/WixToolset.Data/WixException.cs | 44 + src/WixToolset.Data/WixInvalidIdtException.cs | 32 + .../WixMissingTableDefinitionException.cs | 22 + src/WixToolset.Data/WixToolset.Data.csproj | 195 + .../WixUnexpectedFileFormatException.cs | 35 + src/WixToolset.Data/Xsd/wix.xsd | 13036 +++++++++++++++++++ src/WixToolset.Data/Xsd/wixloc.xsd | 134 + src/WixToolset.Data/YesNoAlwaysType.cs | 25 + src/WixToolset.Data/YesNoDefaultType.cs | 25 + src/WixToolset.Data/YesNoType.cs | 22 + src/nuget.config | 11 + src/version.json | 11 + 132 files changed, 31156 insertions(+) create mode 100644 src/Directory.Build.props create mode 100644 src/WixToolset.Data/AccessModifier.cs create mode 100644 src/WixToolset.Data/AssemblyInfo.cs create mode 100644 src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs create mode 100644 src/WixToolset.Data/ColumnDefinition.cs create mode 100644 src/WixToolset.Data/Common.cs create mode 100644 src/WixToolset.Data/ComplexReferenceChildType.cs create mode 100644 src/WixToolset.Data/ComplexReferenceParentType.cs create mode 100644 src/WixToolset.Data/CompressionLevel.cs create mode 100644 src/WixToolset.Data/Data/Xsd/actions.xsd create mode 100644 src/WixToolset.Data/Data/Xsd/libraries.xsd create mode 100644 src/WixToolset.Data/Data/Xsd/objects.xsd create mode 100644 src/WixToolset.Data/Data/Xsd/outputs.xsd create mode 100644 src/WixToolset.Data/Data/Xsd/pdbs.xsd create mode 100644 src/WixToolset.Data/Data/Xsd/tables.xsd create mode 100644 src/WixToolset.Data/Data/actions.xml create mode 100644 src/WixToolset.Data/Data/messages.xml create mode 100644 src/WixToolset.Data/Data/tables.xml create mode 100644 src/WixToolset.Data/DisplayEventArgs.cs create mode 100644 src/WixToolset.Data/DuplicateSymbolsException.cs create mode 100644 src/WixToolset.Data/EmptyRule.cs create mode 100644 src/WixToolset.Data/Field.cs create mode 100644 src/WixToolset.Data/FileFormat.cs create mode 100644 src/WixToolset.Data/FileStructure.cs create mode 100644 src/WixToolset.Data/ILibraryBinaryFileResolver.cs create mode 100644 src/WixToolset.Data/IMessageHandler.cs create mode 100644 src/WixToolset.Data/Intermediate.cs create mode 100644 src/WixToolset.Data/Library.cs create mode 100644 src/WixToolset.Data/Localization.cs create mode 100644 src/WixToolset.Data/LocalizedControl.cs create mode 100644 src/WixToolset.Data/MessageEventArgs.cs create mode 100644 src/WixToolset.Data/MessageLevel.cs create mode 100644 src/WixToolset.Data/Messaging.cs create mode 100644 src/WixToolset.Data/Msi/MsiInterop.cs create mode 100644 src/WixToolset.Data/NonClosingStreamWrapper.cs create mode 100644 src/WixToolset.Data/ObjectField.cs create mode 100644 src/WixToolset.Data/Output.cs create mode 100644 src/WixToolset.Data/OutputType.cs create mode 100644 src/WixToolset.Data/PackagingType.cs create mode 100644 src/WixToolset.Data/Pdb.cs create mode 100644 src/WixToolset.Data/Platform.cs create mode 100644 src/WixToolset.Data/Row.cs create mode 100644 src/WixToolset.Data/RowDictionary.cs create mode 100644 src/WixToolset.Data/RowIndexedList.cs create mode 100644 src/WixToolset.Data/RowOperation.cs create mode 100644 src/WixToolset.Data/Rows/BBControlRow.cs create mode 100644 src/WixToolset.Data/Rows/ComponentRow.cs create mode 100644 src/WixToolset.Data/Rows/ContainerType.cs create mode 100644 src/WixToolset.Data/Rows/ControlRow.cs create mode 100644 src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs create mode 100644 src/WixToolset.Data/Rows/FileAssemblyType.cs create mode 100644 src/WixToolset.Data/Rows/FileRow.cs create mode 100644 src/WixToolset.Data/Rows/MediaRow.cs create mode 100644 src/WixToolset.Data/Rows/PatchAttributeType.cs create mode 100644 src/WixToolset.Data/Rows/PropertyRow.cs create mode 100644 src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs create mode 100644 src/WixToolset.Data/Rows/SymbolPathType.cs create mode 100644 src/WixToolset.Data/Rows/UpgradeRow.cs create mode 100644 src/WixToolset.Data/Rows/WixActionRow.cs create mode 100644 src/WixToolset.Data/Rows/WixActionRowCollection.cs create mode 100644 src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleCatalogRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleContainerRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleExePackageRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs create mode 100644 src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundlePackageRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundlePackageType.cs create mode 100644 src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundlePayloadRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleUpdateRow.cs create mode 100644 src/WixToolset.Data/Rows/WixBundleVariableRow.cs create mode 100644 src/WixToolset.Data/Rows/WixChainAttributes.cs create mode 100644 src/WixToolset.Data/Rows/WixChainItemRow.cs create mode 100644 src/WixToolset.Data/Rows/WixChainRow.cs create mode 100644 src/WixToolset.Data/Rows/WixComplexReferenceRow.cs create mode 100644 src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs create mode 100644 src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs create mode 100644 src/WixToolset.Data/Rows/WixFileRow.cs create mode 100644 src/WixToolset.Data/Rows/WixGroupRow.cs create mode 100644 src/WixToolset.Data/Rows/WixMediaRow.cs create mode 100644 src/WixToolset.Data/Rows/WixMediaTemplateRow.cs create mode 100644 src/WixToolset.Data/Rows/WixMergeRow.cs create mode 100644 src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs create mode 100644 src/WixToolset.Data/Rows/WixPropertyRow.cs create mode 100644 src/WixToolset.Data/Rows/WixRelatedBundleRow.cs create mode 100644 src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs create mode 100644 src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs create mode 100644 src/WixToolset.Data/Rows/WixVariableRow.cs create mode 100644 src/WixToolset.Data/Section.cs create mode 100644 src/WixToolset.Data/SectionType.cs create mode 100644 src/WixToolset.Data/Serialize/CodeDomInterfaces.cs create mode 100644 src/WixToolset.Data/Serialize/CodeDomReader.cs create mode 100644 src/WixToolset.Data/Serialize/ElementCollection.cs create mode 100644 src/WixToolset.Data/SourceLineNumber.cs create mode 100644 src/WixToolset.Data/SubStorage.cs create mode 100644 src/WixToolset.Data/Symbol.cs create mode 100644 src/WixToolset.Data/Table.cs create mode 100644 src/WixToolset.Data/TableDefinition.cs create mode 100644 src/WixToolset.Data/TableDefinitionCollection.cs create mode 100644 src/WixToolset.Data/TableExtensions.cs create mode 100644 src/WixToolset.Data/TableIndexedCollection.cs create mode 100644 src/WixToolset.Data/TableOperation.cs create mode 100644 src/WixToolset.Data/WindowsInstallerStandard.cs create mode 100644 src/WixToolset.Data/WixCorruptFileException.cs create mode 100644 src/WixToolset.Data/WixDataStrings.Designer.cs create mode 100644 src/WixToolset.Data/WixDataStrings.resx create mode 100644 src/WixToolset.Data/WixException.cs create mode 100644 src/WixToolset.Data/WixInvalidIdtException.cs create mode 100644 src/WixToolset.Data/WixMissingTableDefinitionException.cs create mode 100644 src/WixToolset.Data/WixToolset.Data.csproj create mode 100644 src/WixToolset.Data/WixUnexpectedFileFormatException.cs create mode 100644 src/WixToolset.Data/Xsd/wix.xsd create mode 100644 src/WixToolset.Data/Xsd/wixloc.xsd create mode 100644 src/WixToolset.Data/YesNoAlwaysType.cs create mode 100644 src/WixToolset.Data/YesNoDefaultType.cs create mode 100644 src/WixToolset.Data/YesNoType.cs create mode 100644 src/nuget.config create mode 100644 src/version.json (limited to 'src') diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 00000000..0f9c550d --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,12 @@ + + + + Debug + $(MSBuildThisFileDirectory)..\build\obj\$(MSBuildProjectName)\ + $(MSBuildThisFileDirectory)..\build\$(Configuration)\ + + Rob Mensching, Bob Arnson + WiX Toolset + Copyright (c) .NET Foundation and contributors. All rights reserved. + + diff --git a/src/WixToolset.Data/AccessModifier.cs b/src/WixToolset.Data/AccessModifier.cs new file mode 100644 index 00000000..64f29f26 --- /dev/null +++ b/src/WixToolset.Data/AccessModifier.cs @@ -0,0 +1,27 @@ +// 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. + +namespace WixToolset.Data +{ + public enum AccessModifier + { + /// + /// Indicates the identifier is publicly visible to all other sections. + /// + Public, + + /// + /// Indicates the identifier is visible only to sections in the same library. + /// + Internal, + + /// + /// Indicates the identifier is visible only to sections in the same source file. + /// + Protected, + + /// + /// Indicates the identifiers is visible only to the section where it is defined. + /// + Private, + } +} diff --git a/src/WixToolset.Data/AssemblyInfo.cs b/src/WixToolset.Data/AssemblyInfo.cs new file mode 100644 index 00000000..74fd6f90 --- /dev/null +++ b/src/WixToolset.Data/AssemblyInfo.cs @@ -0,0 +1,11 @@ +// 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. + +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +//[assembly: AssemblyTitle("WiX Toolset Data")] +//[assembly: AssemblyDescription("")] +[assembly: AssemblyCulture("")] +[assembly:CLSCompliant(true)] +[assembly: ComVisible(false)] diff --git a/src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs b/src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs new file mode 100644 index 00000000..240c2160 --- /dev/null +++ b/src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs @@ -0,0 +1,16 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Attributes available for an ApprovedExeForElevation. + /// + [Flags] + public enum BundleApprovedExeForElevationAttributes : int + { + None = 0x0, + Win64 = 0x1, + } +} diff --git a/src/WixToolset.Data/ColumnDefinition.cs b/src/WixToolset.Data/ColumnDefinition.cs new file mode 100644 index 00000000..7e5a07c5 --- /dev/null +++ b/src/WixToolset.Data/ColumnDefinition.cs @@ -0,0 +1,1032 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Globalization; + using System.Xml; + + /// + /// Defines MSI column types. + /// + public enum ColumnType + { + /// Unknown column type, default and invalid. + Unknown, + + /// Column is a string. + String, + + /// Column is a localizable string. + Localized, + + /// Column is a number. + Number, + + /// Column is a binary stream. + Object, + + /// Column is a string that is preserved in transforms (like Object). + Preserved, + } + + /// + /// Specifies if the column should be modularized. + /// + public enum ColumnModularizeType + { + /// Column should not be modularized. + None, + + /// Column should be modularized. + Column, + + /// When the column is an primary or foreign key to the Icon table it should be modularized special. + Icon, + + /// When the column is a companion file it should be modularized. + CompanionFile, + + /// Column is a condition and should be modularized. + Condition, + + /// Special modularization type for the ControlEvent table's Argument column. + ControlEventArgument, + + /// Special modularization type for the Control table's Text column. + ControlText, + + /// Any Properties in the column should be modularized. + Property, + + /// Semi-colon list of keys, all of which need to be modularized. + SemicolonDelimited, + } + + /// + /// Column validation category type + /// + public enum ColumnCategory + { + /// Unknown category, default and invalid. + Unknown, + + /// Text category. + Text, + + /// UpperCase category. + UpperCase, + + /// LowerCase category. + LowerCase, + + /// Integer category. + Integer, + + /// DoubleInteger category. + DoubleInteger, + + /// TimeDate category. + TimeDate, + + /// Identifier category. + Identifier, + + /// Property category. + Property, + + /// Filename category. + Filename, + + /// WildCardFilename category. + WildCardFilename, + + /// Path category. + Path, + + /// Paths category. + Paths, + + /// AnyPath category. + AnyPath, + + /// DefaultDir category. + DefaultDir, + + /// RegPath category. + RegPath, + + /// Formatted category. + Formatted, + + /// Template category. + Template, + + /// Condition category. + Condition, + + /// Guid category. + Guid, + + /// Version category. + Version, + + /// Language category. + Language, + + /// Binary category. + Binary, + + /// CustomSource category. + CustomSource, + + /// Cabinet category. + Cabinet, + + /// Shortcut category. + Shortcut, + + /// Formatted SDDL category. + FormattedSDDLText, + } + + /// + /// Definition of a table's column. + /// + public sealed class ColumnDefinition : IComparable + { + private string name; + private ColumnType type; + private int length; + private bool primaryKey; + private bool nullable; + private ColumnModularizeType modularize; + private bool localizable; + private bool added; + + private bool minValueSet; + private long minValue; + private bool maxValueSet; + private long maxValue; + private string keyTable; + private bool keyColumnSet; + private int keyColumn; + private ColumnCategory category; + private string possibilities; + private string description; + private bool escapeIdtCharacters; + private bool useCData; + + /// + /// Creates a new column definition. + /// + /// Name of column. + /// Type of column + /// Length of column. + /// If column is primary key. + /// If column is nullable. + /// Type of modularization for column + /// If the column is localizable. + /// If the minimum of the value was set. + /// Minimum value for the column. + /// If the maximum value was set. + /// Maximum value for the colum. + /// Optional name of table for foreign key. + /// If the key column was set. + /// Optional name of column for foreign key. + /// Validation category for column. + /// Set of possible values for column. + /// Description of column in vaidation table. + /// If characters should be escaped in IDT. + /// If whitespace should be preserved in a CDATA node. + public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnModularizeType modularizeType, bool localizable, bool minValueSet, long minValue, bool maxValueSet, long maxValue, string keyTable, bool keyColumnSet, int keyColumn, ColumnCategory category, string possibilities, string description, bool escapeIdtCharacters, bool useCData) + { + this.name = name; + this.type = type; + this.length = length; + this.primaryKey = primaryKey; + this.nullable = nullable; + this.modularize = modularizeType; + this.localizable = localizable; + this.minValueSet = minValueSet; + this.minValue = minValue; + this.maxValueSet = maxValueSet; + this.maxValue = maxValue; + this.keyTable = keyTable; + this.keyColumnSet = keyColumnSet; + this.keyColumn = keyColumn; + this.category = category; + this.possibilities = possibilities; + this.description = description; + this.escapeIdtCharacters = escapeIdtCharacters; + this.useCData = useCData; + } + + /// + /// Gets whether this column was added via a transform. + /// + /// Whether this column was added via a transform. + public bool Added + { + get { return this.added; } + set { this.added = value; } + } + + /// + /// Gets the name of the column. + /// + /// Name of column. + public string Name + { + get { return this.name; } + } + + /// + /// Gets the type of the column. + /// + /// Type of column. + public ColumnType Type + { + get { return this.type; } + } + + /// + /// Gets the length of the column. + /// + /// Length of column. + public int Length + { + get { return this.length; } + } + + /// + /// Gets if the column is a primary key. + /// + /// true if column is primary key. + public bool PrimaryKey + { + get { return this.primaryKey; } + } + + /// + /// Gets if the column is nullable. + /// + /// true if column is nullable. + public bool Nullable + { + get { return this.nullable; } + } + + /// + /// Gets the type of modularization for this column. + /// + /// Column's modularization type. + public ColumnModularizeType ModularizeType + { + get { return this.modularize; } + } + + /// + /// Gets if the column is localizable. Can be because the type is localizable, or because the column + /// was explicitly set to be so. + /// + /// true if column is localizable. + public bool IsLocalizable + { + get { return this.localizable || ColumnType.Localized == this.Type; } + } + + /// + /// Gets if the minimum value of the column is set. + /// + /// true if minimum value is set. + public bool IsMinValueSet + { + get { return this.minValueSet; } + } + + /// + /// Gets the minimum value for the column, only valid if IsMinValueSet returns true. + /// + /// Minimum value for the column. + public long MinValue + { + get { return this.minValue; } + } + + /// + /// Gets if the maximum value of the column is set. + /// + /// true if maximum value is set. + public bool IsMaxValueSet + { + get { return this.maxValueSet; } + } + + /// + /// Gets the maximum value for the column, only valid if IsMinValueSet returns true. + /// + /// Maximum value for the column. + public long MaxValue + { + get { return this.maxValue; } + } + + /// + /// Gets the table that has the foreign key for this column + /// + /// Foreign key table name. + public string KeyTable + { + get { return this.keyTable; } + } + + /// + /// Gets if the key column is set. + /// + /// True if the key column is set. + public bool IsKeyColumnSet + { + get { return this.keyColumnSet; } + } + + /// + /// Gets the foreign key column that this column refers to. + /// + /// Foreign key column. + public int KeyColumn + { + get { return this.keyColumn; } + } + + /// + /// Gets the validation category for this column. + /// + /// Validation category. + public ColumnCategory Category + { + get { return this.category; } + } + + /// + /// Gets the set of possibilities for this column. + /// + /// Set of possibilities for this column. + public string Possibilities + { + get { return this.possibilities; } + } + + /// + /// Gets the description for this column. + /// + /// Description of column. + public string Description + { + get { return this.description; } + } + + /// + /// Gets if characters should be escaped to fit into IDT. + /// + /// true if data should be escaped when adding to IDT. + public bool EscapeIdtCharacters + { + get { return this.escapeIdtCharacters; } + } + + /// + /// Gets if whitespace should be preserved in a CDATA node. + /// + /// true if whitespace should be preserved in a CDATA node. + public bool UseCData + { + get { return this.useCData; } + } + + /// + /// Gets the type of the column in IDT format. + /// + /// IDT format for column type. + public string IdtType + { + get + { + char typeCharacter; + switch (this.type) + { + case ColumnType.Number: + typeCharacter = this.nullable ? 'I' : 'i'; + break; + case ColumnType.Preserved: + case ColumnType.String: + typeCharacter = this.nullable ? 'S' : 's'; + break; + case ColumnType.Localized: + typeCharacter = this.nullable ? 'L' : 'l'; + break; + case ColumnType.Object: + typeCharacter = this.nullable ? 'V' : 'v'; + break; + default: + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_UnknownColumnType, this.type)); + } + + return String.Concat(typeCharacter, this.length); + } + } + + /// + /// Parses a column definition in a table definition. + /// + /// Reader to get data from. + /// The ColumnDefintion represented by the Xml. + internal static ColumnDefinition Read(XmlReader reader) + { + if (!reader.LocalName.Equals("columnDefinition")) + { + throw new XmlException(); + } + + bool added = false; + ColumnCategory category = ColumnCategory.Unknown; + string description = null; + bool empty = reader.IsEmptyElement; + bool escapeIdtCharacters = false; + int keyColumn = -1; + bool keyColumnSet = false; + string keyTable = null; + int length = -1; + bool localizable = false; + long maxValue = 0; + bool maxValueSet = false; + long minValue = 0; + bool minValueSet = false; + ColumnModularizeType modularize = ColumnModularizeType.None; + string name = null; + bool nullable = false; + string possibilities = null; + bool primaryKey = false; + ColumnType type = ColumnType.Unknown; + bool useCData = false; + + // parse the attributes + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "added": + added = reader.Value.Equals("yes"); + break; + case "category": + switch (reader.Value) + { + case "anyPath": + category = ColumnCategory.AnyPath; + break; + case "binary": + category = ColumnCategory.Binary; + break; + case "cabinet": + category = ColumnCategory.Cabinet; + break; + case "condition": + category = ColumnCategory.Condition; + break; + case "customSource": + category = ColumnCategory.CustomSource; + break; + case "defaultDir": + category = ColumnCategory.DefaultDir; + break; + case "doubleInteger": + category = ColumnCategory.DoubleInteger; + break; + case "filename": + category = ColumnCategory.Filename; + break; + case "formatted": + category = ColumnCategory.Formatted; + break; + case "formattedSddl": + category = ColumnCategory.FormattedSDDLText; + break; + case "guid": + category = ColumnCategory.Guid; + break; + case "identifier": + category = ColumnCategory.Identifier; + break; + case "integer": + category = ColumnCategory.Integer; + break; + case "language": + category = ColumnCategory.Language; + break; + case "lowerCase": + category = ColumnCategory.LowerCase; + break; + case "path": + category = ColumnCategory.Path; + break; + case "paths": + category = ColumnCategory.Paths; + break; + case "property": + category = ColumnCategory.Property; + break; + case "regPath": + category = ColumnCategory.RegPath; + break; + case "shortcut": + category = ColumnCategory.Shortcut; + break; + case "template": + category = ColumnCategory.Template; + break; + case "text": + category = ColumnCategory.Text; + break; + case "timeDate": + category = ColumnCategory.TimeDate; + break; + case "upperCase": + category = ColumnCategory.UpperCase; + break; + case "version": + category = ColumnCategory.Version; + break; + case "wildCardFilename": + category = ColumnCategory.WildCardFilename; + break; + default: + throw new InvalidOperationException(); + } + break; + case "description": + description = reader.Value; + break; + case "escapeIdtCharacters": + escapeIdtCharacters = reader.Value.Equals("yes"); + break; + case "keyColumn": + keyColumnSet = true; + keyColumn = Convert.ToInt32(reader.Value, 10); + break; + case "keyTable": + keyTable = reader.Value; + break; + case "length": + length = Convert.ToInt32(reader.Value, 10); + break; + case "localizable": + localizable = reader.Value.Equals("yes"); + break; + case "maxValue": + maxValueSet = true; + maxValue = Convert.ToInt32(reader.Value, 10); + break; + case "minValue": + minValueSet = true; + minValue = Convert.ToInt32(reader.Value, 10); + break; + case "modularize": + switch (reader.Value) + { + case "column": + modularize = ColumnModularizeType.Column; + break; + case "companionFile": + modularize = ColumnModularizeType.CompanionFile; + break; + case "condition": + modularize = ColumnModularizeType.Condition; + break; + case "controlEventArgument": + modularize = ColumnModularizeType.ControlEventArgument; + break; + case "controlText": + modularize = ColumnModularizeType.ControlText; + break; + case "icon": + modularize = ColumnModularizeType.Icon; + break; + case "none": + modularize = ColumnModularizeType.None; + break; + case "property": + modularize = ColumnModularizeType.Property; + break; + case "semicolonDelimited": + modularize = ColumnModularizeType.SemicolonDelimited; + break; + default: + throw new XmlException(); + } + break; + case "name": + switch (reader.Value) + { + case "CREATE": + case "DELETE": + case "DROP": + case "INSERT": + throw new XmlException(); + default: + name = reader.Value; + break; + } + break; + case "nullable": + nullable = reader.Value.Equals("yes"); + break; + case "primaryKey": + primaryKey = reader.Value.Equals("yes"); + break; + case "set": + possibilities = reader.Value; + break; + case "type": + switch (reader.Value) + { + case "localized": + type = ColumnType.Localized; + break; + case "number": + type = ColumnType.Number; + break; + case "object": + type = ColumnType.Object; + break; + case "string": + type = ColumnType.String; + break; + case "preserved": + type = ColumnType.Preserved; + break; + default: + throw new XmlException(); + } + break; + case "useCData": + useCData = reader.Value.Equals("yes"); + break; + } + } + + // parse the child elements (there should be none) + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + throw new XmlException(); + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + ColumnDefinition columnDefinition = new ColumnDefinition(name, type, length, primaryKey, nullable, modularize, localizable, minValueSet, minValue, maxValueSet, maxValue, keyTable, keyColumnSet, keyColumn, category, possibilities, description, escapeIdtCharacters, useCData); + columnDefinition.Added = added; + + return columnDefinition; + } + + /// + /// Persists a ColumnDefinition in an XML format. + /// + /// XmlWriter where the Output should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("columnDefinition", TableDefinitionCollection.XmlNamespaceUri); + + writer.WriteAttributeString("name", this.name); + + switch (this.type) + { + case ColumnType.Localized: + writer.WriteAttributeString("type", "localized"); + break; + case ColumnType.Number: + writer.WriteAttributeString("type", "number"); + break; + case ColumnType.Object: + writer.WriteAttributeString("type", "object"); + break; + case ColumnType.String: + writer.WriteAttributeString("type", "string"); + break; + case ColumnType.Preserved: + writer.WriteAttributeString("type", "preserved"); + break; + } + + writer.WriteAttributeString("length", this.length.ToString(CultureInfo.InvariantCulture.NumberFormat)); + + if (this.primaryKey) + { + writer.WriteAttributeString("primaryKey", "yes"); + } + + if (this.nullable) + { + writer.WriteAttributeString("nullable", "yes"); + } + + if (this.localizable) + { + writer.WriteAttributeString("localizable", "yes"); + } + + if (this.added) + { + writer.WriteAttributeString("added", "yes"); + } + + switch (this.modularize) + { + case ColumnModularizeType.Column: + writer.WriteAttributeString("modularize", "column"); + break; + case ColumnModularizeType.CompanionFile: + writer.WriteAttributeString("modularize", "companionFile"); + break; + case ColumnModularizeType.Condition: + writer.WriteAttributeString("modularize", "condition"); + break; + case ColumnModularizeType.ControlEventArgument: + writer.WriteAttributeString("modularize", "controlEventArgument"); + break; + case ColumnModularizeType.ControlText: + writer.WriteAttributeString("modularize", "controlText"); + break; + case ColumnModularizeType.Icon: + writer.WriteAttributeString("modularize", "icon"); + break; + case ColumnModularizeType.None: + // this is the default value + break; + case ColumnModularizeType.Property: + writer.WriteAttributeString("modularize", "property"); + break; + case ColumnModularizeType.SemicolonDelimited: + writer.WriteAttributeString("modularize", "semicolonDelimited"); + break; + } + + if (this.minValueSet) + { + writer.WriteAttributeString("minValue", this.minValue.ToString(CultureInfo.InvariantCulture.NumberFormat)); + } + + if (this.maxValueSet) + { + writer.WriteAttributeString("maxValue", this.maxValue.ToString(CultureInfo.InvariantCulture.NumberFormat)); + } + + if (!String.IsNullOrEmpty(this.keyTable)) + { + writer.WriteAttributeString("keyTable", this.keyTable); + } + + if (this.keyColumnSet) + { + writer.WriteAttributeString("keyColumn", this.keyColumn.ToString(CultureInfo.InvariantCulture.NumberFormat)); + } + + switch (this.category) + { + case ColumnCategory.AnyPath: + writer.WriteAttributeString("category", "anyPath"); + break; + case ColumnCategory.Binary: + writer.WriteAttributeString("category", "binary"); + break; + case ColumnCategory.Cabinet: + writer.WriteAttributeString("category", "cabinet"); + break; + case ColumnCategory.Condition: + writer.WriteAttributeString("category", "condition"); + break; + case ColumnCategory.CustomSource: + writer.WriteAttributeString("category", "customSource"); + break; + case ColumnCategory.DefaultDir: + writer.WriteAttributeString("category", "defaultDir"); + break; + case ColumnCategory.DoubleInteger: + writer.WriteAttributeString("category", "doubleInteger"); + break; + case ColumnCategory.Filename: + writer.WriteAttributeString("category", "filename"); + break; + case ColumnCategory.Formatted: + writer.WriteAttributeString("category", "formatted"); + break; + case ColumnCategory.FormattedSDDLText: + writer.WriteAttributeString("category", "formattedSddl"); + break; + case ColumnCategory.Guid: + writer.WriteAttributeString("category", "guid"); + break; + case ColumnCategory.Identifier: + writer.WriteAttributeString("category", "identifier"); + break; + case ColumnCategory.Integer: + writer.WriteAttributeString("category", "integer"); + break; + case ColumnCategory.Language: + writer.WriteAttributeString("category", "language"); + break; + case ColumnCategory.LowerCase: + writer.WriteAttributeString("category", "lowerCase"); + break; + case ColumnCategory.Path: + writer.WriteAttributeString("category", "path"); + break; + case ColumnCategory.Paths: + writer.WriteAttributeString("category", "paths"); + break; + case ColumnCategory.Property: + writer.WriteAttributeString("category", "property"); + break; + case ColumnCategory.RegPath: + writer.WriteAttributeString("category", "regPath"); + break; + case ColumnCategory.Shortcut: + writer.WriteAttributeString("category", "shortcut"); + break; + case ColumnCategory.Template: + writer.WriteAttributeString("category", "template"); + break; + case ColumnCategory.Text: + writer.WriteAttributeString("category", "text"); + break; + case ColumnCategory.TimeDate: + writer.WriteAttributeString("category", "timeDate"); + break; + case ColumnCategory.UpperCase: + writer.WriteAttributeString("category", "upperCase"); + break; + case ColumnCategory.Version: + writer.WriteAttributeString("category", "version"); + break; + case ColumnCategory.WildCardFilename: + writer.WriteAttributeString("category", "wildCardFilename"); + break; + } + + if (!String.IsNullOrEmpty(this.possibilities)) + { + writer.WriteAttributeString("set", this.possibilities); + } + + if (!String.IsNullOrEmpty(this.description)) + { + writer.WriteAttributeString("description", this.description); + } + + if (this.escapeIdtCharacters) + { + writer.WriteAttributeString("escapeIdtCharacters", "yes"); + } + + if (this.useCData) + { + writer.WriteAttributeString("useCData", "yes"); + } + + writer.WriteEndElement(); + } + + /// + /// Validate a value for this column. + /// + /// The value to validate. + /// Validated value. + internal object ValidateValue(object value) + { + if (null == value) + { + if (!this.nullable) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with a null value because this is a required field.", this.name)); + } + } + else // check numerical values against their specified minimum and maximum values. + { + if (ColumnType.Number == this.type && !this.IsLocalizable) + { + // For now all enums in the tables can be represented by integers. This if statement would need to + // be enhanced if that ever changes. + if (value is int || value.GetType().IsEnum) + { + int intValue = (int)value; + + // validate the value against the minimum allowed value + if (this.minValueSet && this.minValue > intValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", this.name, intValue, this.minValue)); + } + + // validate the value against the maximum allowed value + if (this.maxValueSet && this.maxValue < intValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", this.name, intValue, this.maxValue)); + } + + return intValue; + } + else if (value is long) + { + long longValue = (long)value; + + // validate the value against the minimum allowed value + if (this.minValueSet && this.minValue > longValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", this.name, longValue, this.minValue)); + } + + // validate the value against the maximum allowed value + if (this.maxValueSet && this.maxValue < longValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", this.name, longValue, this.maxValue)); + } + + return longValue; + } + else + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set number column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); + } + } + else + { + if (!(value is string)) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set string column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); + } + } + } + + return value; + } + + /// + /// Compare this column definition to another column definition. + /// + /// + /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. + /// + /// The to compare with this one. + /// 0 if the columns' core propeties are the same; otherwise, non-0. + public int CompareTo(ColumnDefinition other) + { + // by definition, this object is greater than null + if (null == other) + { + return 1; + } + + // compare column names + int ret = String.Compare(this.Name, other.Name, StringComparison.Ordinal); + + // compare column types + if (0 == ret) + { + ret = this.Type == other.Type ? 0 : -1; + + // compare column lengths + if (0 == ret) + { + ret = this.Length == other.Length ? 0 : -1; + + // compare whether both are primary keys + if (0 == ret) + { + ret = this.PrimaryKey == other.PrimaryKey ? 0 : -1; + + // compare nullability + if (0 == ret) + { + ret = this.Nullable == other.Nullable ? 0 : -1; + } + } + } + } + + return ret; + } + } +} diff --git a/src/WixToolset.Data/Common.cs b/src/WixToolset.Data/Common.cs new file mode 100644 index 00000000..f01b4591 --- /dev/null +++ b/src/WixToolset.Data/Common.cs @@ -0,0 +1,53 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.IO; + using System.Security.Cryptography; + using System.Text; + using System.Text.RegularExpressions; + using System.Xml.Linq; + + internal static class Common + { + public const int IntegerNotSet = int.MinValue; + + internal static readonly XNamespace W3SchemaPrefix = "http://www.w3.org/"; + + private static readonly Regex LegalIdentifierCharacters = new Regex(@"^[_A-Za-z][0-9A-Za-z_\.]*$", RegexOptions.Compiled); + + internal static string GetFileHash(FileInfo fileInfo) + { + byte[] hashBytes; + using (SHA1Managed managed = new SHA1Managed()) + { + using (FileStream stream = fileInfo.OpenRead()) + { + hashBytes = managed.ComputeHash(stream); + } + } + + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < hashBytes.Length; i++) + { + sb.AppendFormat("{0:X2}", hashBytes[i]); + } + + return sb.ToString(); + } + + public static bool IsIdentifier(string value) + { + if (!String.IsNullOrEmpty(value)) + { + if (LegalIdentifierCharacters.IsMatch(value)) + { + return true; + } + } + + return false; + } + } +} diff --git a/src/WixToolset.Data/ComplexReferenceChildType.cs b/src/WixToolset.Data/ComplexReferenceChildType.cs new file mode 100644 index 00000000..0a355afe --- /dev/null +++ b/src/WixToolset.Data/ComplexReferenceChildType.cs @@ -0,0 +1,46 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Types of children in complex refernece. + /// + public enum ComplexReferenceChildType + { + /// Unknown complex reference type, default and invalid. + Unknown, + + /// Component child of complex reference. + Component, + + /// Feature child of complex reference. + Feature, + + /// ComponentGroup child of complex reference. + ComponentGroup, + + /// FeatureGroup child of complex reference. + FeatureGroup, + + /// Module child of complex reference. + Module, + + /// Payload child of complex reference. + Payload, + + /// PayloadGroup child of complex reference. + PayloadGroup, + + /// Package child of complex reference. + Package, + + /// PackageGroup child of complex reference. + PackageGroup, + + /// PatchFamily child of complex reference. + PatchFamily, + + /// PatchFamilyGroup child of complex reference. + PatchFamilyGroup, + } +} diff --git a/src/WixToolset.Data/ComplexReferenceParentType.cs b/src/WixToolset.Data/ComplexReferenceParentType.cs new file mode 100644 index 00000000..87731b97 --- /dev/null +++ b/src/WixToolset.Data/ComplexReferenceParentType.cs @@ -0,0 +1,49 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Types of parents in complex reference. + /// + public enum ComplexReferenceParentType + { + /// Unknown complex reference type, default and invalid. + Unknown, + + /// Feature parent of complex reference. + Feature, + + /// ComponentGroup parent of complex reference. + ComponentGroup, + + /// FeatureGroup parent of complex reference. + FeatureGroup, + + /// Module parent of complex reference. + Module, + + /// Product parent of complex reference. + Product, + + /// PayloadGroup parent of complex reference. + PayloadGroup, + + /// Package parent of complex reference. + Package, + + /// PackageGroup parent of complex reference. + PackageGroup, + + /// Container parent of complex reference. + Container, + + /// Layout parent of complex reference. + Layout, + + /// Patch parent of complex reference. + Patch, + + /// PatchFamilyGroup parent of complex reference. + PatchFamilyGroup, + } +} diff --git a/src/WixToolset.Data/CompressionLevel.cs b/src/WixToolset.Data/CompressionLevel.cs new file mode 100644 index 00000000..13242051 --- /dev/null +++ b/src/WixToolset.Data/CompressionLevel.cs @@ -0,0 +1,26 @@ +// 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. + +namespace WixToolset.Data +{ + + /// + /// Compression level to use when creating cabinet. + /// + public enum CompressionLevel + { + /// Use no compression. + None, + + /// Use low compression. + Low, + + /// Use medium compression. + Medium, + + /// Use high compression. + High, + + /// Use ms-zip compression. + Mszip + } +} diff --git a/src/WixToolset.Data/Data/Xsd/actions.xsd b/src/WixToolset.Data/Data/Xsd/actions.xsd new file mode 100644 index 00000000..bf0ccb95 --- /dev/null +++ b/src/WixToolset.Data/Data/Xsd/actions.xsd @@ -0,0 +1,73 @@ + + + + + + + + Schema for describing standard actions in the Windows Installer. + + + + + + + + + + + + + + + + Name of action + + + + + Default condition for action + + + + + Sequence of action + + + + + Specifies if action is allowed in AdminExecuteSequence + + + + + Specifies if action is allowed in AdminUISequence + + + + + Specifies if action is allowed in AdvtExecuteSequence + + + + + Specifies if action is allowed in InstallExecuteSequence + + + + + Specifies if action is allowed in InstallUISequence + + + + + + + + + + + + diff --git a/src/WixToolset.Data/Data/Xsd/libraries.xsd b/src/WixToolset.Data/Data/Xsd/libraries.xsd new file mode 100644 index 00000000..a4504c01 --- /dev/null +++ b/src/WixToolset.Data/Data/Xsd/libraries.xsd @@ -0,0 +1,66 @@ + + + + + + + + Schema for describing WiX Library files (.wixlib). + + + + + + + + + + + + + + + + Version of WiX used to create this library file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/WixToolset.Data/Data/Xsd/objects.xsd b/src/WixToolset.Data/Data/Xsd/objects.xsd new file mode 100644 index 00000000..5d95a59c --- /dev/null +++ b/src/WixToolset.Data/Data/Xsd/objects.xsd @@ -0,0 +1,143 @@ + + + + + + + + Schema for describing WiX Object files (.wixobj). + + + + + + + + + + + + Version of WiX used to create this object file. + + + + + + + + + + + + + Identifier for section (optional for Fragments) + + + + + Type of section + + + + + Codepage for output file, only valid on entry sections. + + + + + + + + + + + + + Name of table in Windows Installer database + + + + + + + + + + + + + + + + Row in a table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Data for a particular field in a row. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/WixToolset.Data/Data/Xsd/outputs.xsd b/src/WixToolset.Data/Data/Xsd/outputs.xsd new file mode 100644 index 00000000..00e20f12 --- /dev/null +++ b/src/WixToolset.Data/Data/Xsd/outputs.xsd @@ -0,0 +1,66 @@ + + + + + + + + Schema for describing WiX Output files (.wixout). + + + + + + + + + + + + + + + + Codepage of the output. + + + + + Type of the output. + + + + + + + + + + + + + + + Version of WiX used to create this output file. + + + + + + + + + + + + + Name of the substorage. + + + + + diff --git a/src/WixToolset.Data/Data/Xsd/pdbs.xsd b/src/WixToolset.Data/Data/Xsd/pdbs.xsd new file mode 100644 index 00000000..c1d1756d --- /dev/null +++ b/src/WixToolset.Data/Data/Xsd/pdbs.xsd @@ -0,0 +1,32 @@ + + + + + + + + Schema for describing WiX Pdb files (.wixpdb). + + + + + + + + + + + + + + + + Version of WiX used to create this pdb file + + + + + diff --git a/src/WixToolset.Data/Data/Xsd/tables.xsd b/src/WixToolset.Data/Data/Xsd/tables.xsd new file mode 100644 index 00000000..f87471bb --- /dev/null +++ b/src/WixToolset.Data/Data/Xsd/tables.xsd @@ -0,0 +1,248 @@ + + + + + + + + Schema for describing table definitions in Windows Installer. + + + + + + + + + + + + + + + + + + + Boolean whether rows in this table create symbols + + + + + Name of table in Windows Installer database + + + + + Specifies if table is virtual or not + + + + + Specifies if the table is a part of the Bootstrapper Application Data manifest + + + + + + + + + + Name of column in Windows Installer table + + + + + + Whether this column was added by a transform. + + + + + + Type of column in Windows Installer table + + + + + + Type of column in Windows Installer table + + + + + + + + + + + + Boolean whether column is primary key of Windows Installer table + + + + + + Boolean whether column is nullable in Windows Installer table + + + + + + Boolean whether column is virtual in Windows Installer table + + + + + + Enumeration specifying how column should have the ModuleId appended + + + + + + Set to "yes" in order to allow substitution for localized variables. + + + + + + Minimum value for column in Windows Installer table + + + + + + Maximum value for column in Windows Installer table + + + + + + Foreign key table for column in Windows Installer table + + + + + + Maximum value for column in Windows Installer table + + + + + + + + + + + + Specific column data types for column + + + + + + List of permissible values for the column + + + + + + Description of column + + + + + + Set to "yes" in order to make the idt exporter escape whitespace characters \r, \n, and \t. + + + + + + Set to "yes" in order to make the Intermediate and Output objects wrap their data in a CDATA element to preserve whitespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/WixToolset.Data/Data/actions.xml b/src/WixToolset.Data/Data/actions.xml new file mode 100644 index 00000000..f65b792d --- /dev/null +++ b/src/WixToolset.Data/Data/actions.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/WixToolset.Data/Data/messages.xml b/src/WixToolset.Data/Data/messages.xml new file mode 100644 index 00000000..191e0b3e --- /dev/null +++ b/src/WixToolset.Data/Data/messages.xml @@ -0,0 +1,95 @@ + + + + + + + + + Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided. + + + + + + + + Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified. + + + + + + + The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. + + + + + + The system cannot find the file '{0}'. + + + + The system cannot find the file '{0}' with type '{1}'. + + + + + + + The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision. + + + + + + + There was an error importing the file '{0}'. + + + + There was an error importing table '{1}' from file '{0}'. + + + + + + + The {0} file format version {1} is not compatible with the expected {0} file format version {2}. + + + + + + + Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column. + + + + Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. + + + + + + The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched. + + + + + + A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. + + + + + + The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns. + + + + + + + diff --git a/src/WixToolset.Data/Data/tables.xml b/src/WixToolset.Data/Data/tables.xml new file mode 100644 index 00000000..280d87a8 --- /dev/null +++ b/src/WixToolset.Data/Data/tables.xml @@ -0,0 +1,1962 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/WixToolset.Data/DisplayEventArgs.cs b/src/WixToolset.Data/DisplayEventArgs.cs new file mode 100644 index 00000000..baa9b0e2 --- /dev/null +++ b/src/WixToolset.Data/DisplayEventArgs.cs @@ -0,0 +1,15 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public delegate void DisplayEventHandler(object sender, DisplayEventArgs e); + + public class DisplayEventArgs : EventArgs + { + public MessageLevel Level { get; set; } + + public string Message { get; set; } + } +} diff --git a/src/WixToolset.Data/DuplicateSymbolsException.cs b/src/WixToolset.Data/DuplicateSymbolsException.cs new file mode 100644 index 00000000..d0f8536c --- /dev/null +++ b/src/WixToolset.Data/DuplicateSymbolsException.cs @@ -0,0 +1,35 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections; + + /// + /// Duplicate symbols exception. + /// + [Serializable] + public sealed class DuplicateSymbolsException : Exception + { + [NonSerialized] + private Symbol[] duplicateSymbols; + + /// + /// Instantiate a new DuplicateSymbolException. + /// + /// The duplicated symbols. + public DuplicateSymbolsException(ArrayList symbols) + { + this.duplicateSymbols = (Symbol[])symbols.ToArray(typeof(Symbol)); + } + + /// + /// Gets the duplicate symbols. + /// + /// List of duplicate symbols. + public Symbol[] GetDuplicateSymbols() + { + return this.duplicateSymbols; + } + } +} diff --git a/src/WixToolset.Data/EmptyRule.cs b/src/WixToolset.Data/EmptyRule.cs new file mode 100644 index 00000000..0170e457 --- /dev/null +++ b/src/WixToolset.Data/EmptyRule.cs @@ -0,0 +1,22 @@ +// 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. + +namespace WixToolset.Data +{ + public enum EmptyRule + { + /// + /// The trimmed value cannot be empty. + /// + MustHaveNonWhitespaceCharacters, + + /// + /// The trimmed value can be empty, but the value itself cannot be empty. + /// + CanBeWhitespaceOnly, + + /// + /// The value can be empty. + /// + CanBeEmpty + } +} diff --git a/src/WixToolset.Data/Field.cs b/src/WixToolset.Data/Field.cs new file mode 100644 index 00000000..74b78229 --- /dev/null +++ b/src/WixToolset.Data/Field.cs @@ -0,0 +1,266 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using System.Globalization; + using System.Xml; + + /// + /// Field containing data for a column in a row. + /// + public class Field + { + private object data; + + /// + /// Instantiates a new Field. + /// + /// Column definition for this field. + protected Field(ColumnDefinition columnDefinition) + { + this.Column = columnDefinition; + } + + /// + /// Gets or sets the column definition for this field. + /// + /// Column definition. + public ColumnDefinition Column { get; private set; } + + /// + /// Gets or sets the data for this field. + /// + /// Data in the field. + public object Data + { + get + { + return this.data; + } + + set + { + // Validate the value before setting it. + this.data = this.Column.ValidateValue(value); + } + } + + /// + /// Gets or sets whether this field is modified. + /// + /// Whether this field is modified. + public bool Modified { get; set; } + + /// + /// Gets or sets the previous data. + /// + /// The previous data. + public string PreviousData { get; set; } + + /// + /// Instantiate a new Field object of the correct type. + /// + /// The column definition for the field. + /// The new Field object. + public static Field Create(ColumnDefinition columnDefinition) + { + return (ColumnType.Object == columnDefinition.Type) ? new ObjectField(columnDefinition) : new Field(columnDefinition); + } + + /// + /// Sets the value of a particular field in the row without validating. + /// + /// field index. + /// Value of a field in the row. + /// True if successful, false if validation failed. + public bool BestEffortSet(object value) + { + bool success = true; + object bestEffortValue = value; + + try + { + bestEffortValue = this.Column.ValidateValue(value); + } + catch (InvalidOperationException) + { + success = false; + } + + this.data = bestEffortValue; + return success; + } + + /// + /// Determine if this field is identical to another field. + /// + /// The other field to compare to. + /// true if they are equal; false otherwise. + public bool IsIdentical(Field field) + { + return (this.Column.Name == field.Column.Name && + ((null != this.data && this.data.Equals(field.data)) || (null == this.data && null == field.data))); + } + + /// + /// Overrides the built in object implementation to return the field's data as a string. + /// + /// Field's data as a string. + public override string ToString() + { + return this.AsString(); + } + + /// + /// Gets the field as an integer. + /// + /// Field's data as an integer. + public int AsInteger() + { + return (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); + } + + /// + /// Gets the field as an integer that could be null. + /// + /// Field's data as an integer that could be null. + public int? AsNullableInteger() + { + return (null == this.data) ? (int?)null : (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); + } + + /// + /// Gets the field as a string. + /// + /// Field's data as a string. + public string AsString() + { + return (null == this.data) ? null : Convert.ToString(this.data, CultureInfo.InvariantCulture); + } + + /// + /// Parse a field from the xml. + /// + /// XmlReader where the intermediate is persisted. + internal virtual void Read(XmlReader reader) + { + Debug.Assert("field" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "modified": + this.Modified = reader.Value.Equals("yes"); + break; + case "previousData": + this.PreviousData = reader.Value; + break; + } + } + + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + throw new XmlException(); + case XmlNodeType.CDATA: + case XmlNodeType.Text: + case XmlNodeType.SignificantWhitespace: + if (0 < reader.Value.Length) + { + if (ColumnType.Number == this.Column.Type && !this.Column.IsLocalizable) + { + // older wix files could persist data as a long value (which would overflow an int) + // since the Convert class always throws exceptions for overflows, read in integral + // values as a long to avoid the overflow, then cast it to an int (this operation can + // overflow without throwing an exception inside an unchecked block) + this.data = unchecked((int)Convert.ToInt64(reader.Value, CultureInfo.InvariantCulture)); + } + else + { + this.data = reader.Value; + } + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + } + + /// + /// Persists a field in an XML format. + /// + /// XmlWriter where the Field should persist itself as XML. + internal virtual void Write(XmlWriter writer) + { + writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); + + if (this.Modified) + { + writer.WriteAttributeString("modified", "yes"); + } + + if (null != this.PreviousData) + { + writer.WriteAttributeString("previousData", this.PreviousData); + } + + // Convert the data to a string that will persist nicely (nulls as String.Empty). + string text = Convert.ToString(this.data, CultureInfo.InvariantCulture); + if (this.Column.UseCData) + { + writer.WriteCData(text); + } + else + { + writer.WriteString(text); + } + + writer.WriteEndElement(); + } + + /// + /// Returns the field data in a format usable in IDT files. + /// + /// Field data in string IDT format. + internal string ToIdtValue() + { + if (null == this.data) + { + return null; + } + else + { + string fieldData = Convert.ToString(this.data, CultureInfo.InvariantCulture); + + // special idt-specific escaping + if (this.Column.EscapeIdtCharacters) + { + fieldData = fieldData.Replace('\t', '\x10'); + fieldData = fieldData.Replace('\r', '\x11'); + fieldData = fieldData.Replace('\n', '\x19'); + } + + return fieldData; + } + } + } +} diff --git a/src/WixToolset.Data/FileFormat.cs b/src/WixToolset.Data/FileFormat.cs new file mode 100644 index 00000000..9bb54fca --- /dev/null +++ b/src/WixToolset.Data/FileFormat.cs @@ -0,0 +1,17 @@ +// 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. + +namespace WixToolset.Data +{ + public enum FileFormat + { + Unknown, + + Wixobj, + + Wixlib, + + Wixout, + + Wixpdb, + } +} diff --git a/src/WixToolset.Data/FileStructure.cs b/src/WixToolset.Data/FileStructure.cs new file mode 100644 index 00000000..7265a51d --- /dev/null +++ b/src/WixToolset.Data/FileStructure.cs @@ -0,0 +1,294 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.IO; + using System.Linq; + + /// + /// Class that understands the standard file structures in the WiX toolset. + /// + public class FileStructure : IDisposable + { + private long dataStreamOffset; + private long[] embeddedFileSizes; + private Stream stream; + private bool disposed; + + private static readonly Dictionary SupportedFileFormats = new Dictionary() + { + { "wixobj", FileFormat.Wixobj }, + { "wixlib", FileFormat.Wixlib }, + { "wixout", FileFormat.Wixout }, + { "wixpdb", FileFormat.Wixpdb }, + { "wixmst", FileFormat.Wixout }, + { "wixmsp", FileFormat.Wixout }, + }; + + /// + /// Use Create or Read to create a FileStructure. + /// + private FileStructure() { } + + /// + /// Count of embedded files in the file structure. + /// + public int EmbeddedFileCount { get { return this.embeddedFileSizes.Length; } } + + /// + /// File format of the file structure. + /// + public FileFormat FileFormat { get; private set; } + + /// + /// Creates a new file structure. + /// + /// Stream to write the file structure to. + /// File format for the file structure. + /// Paths to files to embedd in the file structure. + /// Newly created file structure. + public static FileStructure Create(Stream stream, FileFormat fileFormat, List embedFilePaths) + { + FileStructure fs = new FileStructure(); + using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) + using (BinaryWriter writer = new BinaryWriter(wrapper)) + { + fs.WriteType(writer, fileFormat); + + fs.WriteEmbeddedFiles(writer, embedFilePaths ?? new List()); + + // Remember the data stream offset, which is right after the embedded files have been written. + fs.dataStreamOffset = stream.Position; + } + + fs.stream = stream; + + return fs; + } + + /// + /// Reads a file structure from an open stream. + /// + /// Stream to read from. + /// File structure populated from the stream. + public static FileStructure Read(Stream stream) + { + FileStructure fs = new FileStructure(); + using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) + using (BinaryReader reader = new BinaryReader(wrapper)) + { + fs.FileFormat = FileStructure.ReadFileFormat(reader); + + if (FileFormat.Unknown != fs.FileFormat) + { + fs.embeddedFileSizes = FileStructure.ReadEmbeddedFileSizes(reader); + + // Remember the data stream offset, which is right after the embedded files have been written. + fs.dataStreamOffset = stream.Position; + foreach (long size in fs.embeddedFileSizes) + { + fs.dataStreamOffset += size; + } + } + } + + fs.stream = stream; + + return fs; + } + + /// + /// Guess at the file format based on the file extension. + /// + /// File extension to guess the file format for. + /// Best guess at file format. + public static FileFormat GuessFileFormatFromExtension(string extension) + { + FileFormat format; + return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out format) ? format : FileFormat.Unknown; + } + + /// + /// Probes a stream to determine the file format. + /// + /// Stream to test. + /// The file format. + public static FileFormat TestFileFormat(Stream stream) + { + FileFormat format = FileFormat.Unknown; + + long position = stream.Position; + + try + { + using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) + using (BinaryReader reader = new BinaryReader(wrapper)) + { + format = FileStructure.ReadFileFormat(reader); + } + } + finally + { + stream.Seek(position, SeekOrigin.Begin); + } + + return format; + } + + /// + /// Extracts an embedded file. + /// + /// Index to the file to extract. + /// Path to write the extracted file to. + public void ExtractEmbeddedFile(int embeddedIndex, string outputPath) + { + if (this.EmbeddedFileCount <= embeddedIndex) + { + throw new ArgumentOutOfRangeException("embeddedIndex"); + } + + long header = 6 + 4 + (this.embeddedFileSizes.Length * 8); // skip the type + the count of embedded files + all the sizes of embedded files. + long position = this.embeddedFileSizes.Take(embeddedIndex).Sum(); // skip to the embedded file we want. + long size = this.embeddedFileSizes[embeddedIndex]; + + this.stream.Seek(header + position, SeekOrigin.Begin); + + Directory.CreateDirectory(Path.GetDirectoryName(outputPath)); + + using (FileStream output = File.OpenWrite(outputPath)) + { + int read; + int total = 0; + byte[] buffer = new byte[64 * 1024]; + while (0 < (read = this.stream.Read(buffer, 0, (int)Math.Min(buffer.Length, size - total)))) + { + output.Write(buffer, 0, read); + total += read; + } + } + } + + /// + /// Gets a non-closing stream to the data of the file. + /// + /// Stream to the data of the file. + public Stream GetDataStream() + { + this.stream.Seek(this.dataStreamOffset, SeekOrigin.Begin); + return new NonClosingStreamWrapper(this.stream); + } + + /// + /// Disposes of the internsl state of the file structure. + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Disposes of the internsl state of the file structure. + /// + /// True if disposing. + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + if (null != this.stream) + { + // We do not own the stream, so we don't close it. We're just resetting our internal state. + this.embeddedFileSizes = null; + this.dataStreamOffset = 0; + this.stream = null; + } + } + } + + this.disposed = true; + } + + private static FileFormat ReadFileFormat(BinaryReader reader) + { + FileFormat format = FileFormat.Unknown; + + string type = new string(reader.ReadChars(6)); + FileStructure.SupportedFileFormats.TryGetValue(type, out format); + + return format; + } + + private static long[] ReadEmbeddedFileSizes(BinaryReader reader) + { + uint count = reader.ReadUInt32(); + + long[] embeddedFileSizes = new long[count]; + + for (int i = 0; i < embeddedFileSizes.Length; ++i) + { + embeddedFileSizes[i] = (long)reader.ReadUInt64(); + } + + return embeddedFileSizes; + } + + private BinaryWriter WriteType(BinaryWriter writer, FileFormat fileFormat) + { + string type = null; + foreach (var supported in FileStructure.SupportedFileFormats) + { + if (supported.Value.Equals(fileFormat)) + { + type = supported.Key; + break; + } + } + + if (String.IsNullOrEmpty(type)) + { + throw new ArgumentException("Unknown file format type", "fileFormat"); + } + + this.FileFormat = fileFormat; + + Debug.Assert(6 == type.ToCharArray().Length); + writer.Write(type.ToCharArray()); + return writer; + } + + private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, List embedFilePaths) + { + // First write the count of embedded files as a Uint32; + writer.Write((uint)embedFilePaths.Count); + + this.embeddedFileSizes = new long[embedFilePaths.Count]; + + // Next write out the size of each file as a Uint64 in order. + FileInfo[] files = new FileInfo[embedFilePaths.Count]; + for (int i = 0; i < embedFilePaths.Count; ++i) + { + files[i] = new FileInfo(embedFilePaths[i]); + + this.embeddedFileSizes[i] = files[i].Length; + writer.Write((ulong)this.embeddedFileSizes[i]); + } + + // Next write out the content of each file *after* the sizes of + // *all* of the files were written. + foreach (FileInfo file in files) + { + using (FileStream stream = file.OpenRead()) + { + stream.CopyTo(writer.BaseStream); + } + } + + return writer; + } + } +} diff --git a/src/WixToolset.Data/ILibraryBinaryFileResolver.cs b/src/WixToolset.Data/ILibraryBinaryFileResolver.cs new file mode 100644 index 00000000..b438429c --- /dev/null +++ b/src/WixToolset.Data/ILibraryBinaryFileResolver.cs @@ -0,0 +1,9 @@ +// 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. + +namespace WixToolset.Data +{ + public interface ILibraryBinaryFileResolver + { + string Resolve(SourceLineNumber sourceLineNumber, string table, string path); + } +} diff --git a/src/WixToolset.Data/IMessageHandler.cs b/src/WixToolset.Data/IMessageHandler.cs new file mode 100644 index 00000000..5332fe4a --- /dev/null +++ b/src/WixToolset.Data/IMessageHandler.cs @@ -0,0 +1,18 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Interface for handling messages (error/warning/verbose). + /// + public interface IMessageHandler + { + /// + /// Sends a message with the given arguments. + /// + /// Message arguments. + void OnMessage(MessageEventArgs e); + } +} diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs new file mode 100644 index 00000000..fd14f11b --- /dev/null +++ b/src/WixToolset.Data/Intermediate.cs @@ -0,0 +1,189 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Xml; + + /// + /// Container class for an intermediate object. + /// + public sealed class Intermediate + { + public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixobj"; + private static readonly Version CurrentVersion = new Version("4.0.0.0"); + + private string id; + private List
sections; + + /// + /// Instantiate a new Intermediate. + /// + public Intermediate() + { + this.id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); + this.sections = new List
(); + } + + /// + /// Get the sections contained in this intermediate. + /// + /// Sections contained in this intermediate. + public IEnumerable
Sections { get { return this.sections; } } + + /// + /// Adds a section to the intermediate. + /// + /// Section to add to the intermediate. + public void AddSection(Section section) + { + section.IntermediateId = this.id; + this.sections.Add(section); + } + + /// + /// Loads an intermediate from a path on disk. + /// + /// Path to intermediate file saved on disk. + /// Collection containing TableDefinitions to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(string path, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + { + using (FileStream stream = File.OpenRead(path)) + using (FileStructure fs = FileStructure.Read(stream)) + { + if (FileFormat.Wixobj != fs.FileFormat) + { + throw new WixUnexpectedFileFormatException(path, FileFormat.Wixobj, fs.FileFormat); + } + + Uri uri = new Uri(Path.GetFullPath(path)); + using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) + { + try + { + reader.MoveToContent(); + return Intermediate.Read(reader, tableDefinitions, suppressVersionCheck); + } + catch (XmlException xe) + { + throw new WixCorruptFileException(path, fs.FileFormat, xe); + } + } + } + } + + /// + /// Saves an intermediate to a path on disk. + /// + /// Path to save intermediate file to disk. + public void Save(string path) + { + Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); + + using (FileStream stream = File.Create(path)) + using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixobj, null)) + using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) + { + writer.WriteStartDocument(); + this.Write(writer); + writer.WriteEndDocument(); + } + } + + /// + /// Parse an intermediate from an XML format. + /// + /// XmlReader where the intermediate is persisted. + /// TableDefinitions to use in the intermediate. + /// Suppress checking for wix.dll version mismatch. + /// The parsed Intermediate. + private static Intermediate Read(XmlReader reader, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + { + if ("wixObject" != reader.LocalName) + { + throw new XmlException(); + } + + bool empty = reader.IsEmptyElement; + Version objVersion = null; + string id = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "version": + objVersion = new Version(reader.Value); + break; + case "id": + id = reader.Value; + break; + } + } + + if (!suppressVersionCheck && null != objVersion && !Intermediate.CurrentVersion.Equals(objVersion)) + { + throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "object", objVersion.ToString(), Intermediate.CurrentVersion.ToString())); + } + + Intermediate intermediate = new Intermediate(); + intermediate.id = id; + + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "section": + intermediate.AddSection(Section.Read(reader, tableDefinitions)); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return intermediate; + } + + /// + /// Persists an intermediate in an XML format. + /// + /// XmlWriter where the Intermediate should persist itself as XML. + private void Write(XmlWriter writer) + { + writer.WriteStartElement("wixObject", XmlNamespaceUri); + + writer.WriteAttributeString("version", Intermediate.CurrentVersion.ToString()); + + writer.WriteAttributeString("id", this.id); + + foreach (Section section in this.Sections) + { + section.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/Library.cs b/src/WixToolset.Data/Library.cs new file mode 100644 index 00000000..bb04d216 --- /dev/null +++ b/src/WixToolset.Data/Library.cs @@ -0,0 +1,297 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Xml; + + /// + /// Object that represents a library file. + /// + public sealed class Library + { + public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixlib"; + private static readonly Version CurrentVersion = new Version("4.0.0.0"); + + private string id; + private Dictionary localizations; + private List
sections; + + /// + /// Instantiates a new empty library which is only useful from static creating methods. + /// + private Library() + { + this.localizations = new Dictionary(); + this.sections = new List
(); + } + + /// + /// Instantiate a new library populated with sections. + /// + /// Sections to add to the library. + public Library(IEnumerable
sections) + { + this.localizations = new Dictionary(); + this.sections = new List
(sections); + + this.id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); + foreach (Section section in this.sections) + { + section.LibraryId = this.id; + } + } + + /// + /// Get the sections contained in this library. + /// + /// Sections contained in this library. + public IEnumerable
Sections { get { return this.sections; } } + + /// + /// Add a localization file to this library. + /// + /// The localization file to add. + public void AddLocalization(Localization localization) + { + Localization existingCulture; + if (this.localizations.TryGetValue(localization.Culture, out existingCulture)) + { + existingCulture.Merge(localization); + } + else + { + this.localizations.Add(localization.Culture, localization); + } + } + + /// + /// Gets localization files from this library that match the cultures passed in, in the order of the array of cultures. + /// + /// The list of cultures to get localizations for. + /// All localizations contained in this library that match the set of cultures provided, in the same order. + public IEnumerable GetLocalizations(string[] cultures) + { + foreach (string culture in cultures ?? new string[0]) + { + Localization localization; + if (this.localizations.TryGetValue(culture, out localization)) + { + yield return localization; + } + } + } + + /// + /// Loads a library from a path on disk. + /// + /// Path to library file saved on disk. + /// Collection containing TableDefinitions to use when reconstituting the intermediates. + /// Suppresses wix.dll version mismatch check. + /// Returns the loaded library. + public static Library Load(string path, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + { + using (FileStream stream = File.OpenRead(path)) + { + return Load(stream, new Uri(Path.GetFullPath(path)), tableDefinitions, suppressVersionCheck); + } + } + + /// + /// Loads a library from a stream. + /// + /// Stream containing the library file. + /// Uri for finding this stream. + /// Collection containing TableDefinitions to use when reconstituting the intermediates. + /// Suppresses wix.dll version mismatch check. + /// Returns the loaded library. + public static Library Load(Stream stream, Uri uri, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + { + using (FileStructure fs = FileStructure.Read(stream)) + { + if (FileFormat.Wixlib != fs.FileFormat) + { + throw new WixUnexpectedFileFormatException(uri.LocalPath, FileFormat.Wixlib, fs.FileFormat); + } + + using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) + { + try + { + reader.MoveToContent(); + return Library.Read(reader, tableDefinitions, suppressVersionCheck); + } + catch (XmlException xe) + { + throw new WixCorruptFileException(uri.LocalPath, fs.FileFormat, xe); + } + } + } + } + + /// + /// Saves a library to a path on disk. + /// + /// Path to save library file to on disk. + /// The WiX path resolver. + public void Save(string path, ILibraryBinaryFileResolver resolver) + { + List embedFilePaths = new List(); + + // Resolve paths to files that are to be embedded in the library. + if (null != resolver) + { + foreach (Table table in this.sections.SelectMany(s => s.Tables)) + { + foreach (Row row in table.Rows) + { + foreach (ObjectField objectField in row.Fields.Where(f => f is ObjectField)) + { + if (null != objectField.Data) + { + string file = resolver.Resolve(row.SourceLineNumbers, table.Name, (string)objectField.Data); + if (!String.IsNullOrEmpty(file)) + { + // File was successfully resolved so track the embedded index as the embedded file index. + objectField.EmbeddedFileIndex = embedFilePaths.Count; + embedFilePaths.Add(file); + } + else + { + Messaging.Instance.OnMessage(WixDataErrors.FileNotFound(row.SourceLineNumbers, (string)objectField.Data, table.Name)); + } + } + else // clear out embedded file id in case there was one there before. + { + objectField.EmbeddedFileIndex = null; + } + } + } + } + } + + // Do not save the library if errors were found while resolving object paths. + if (Messaging.Instance.EncounteredError) + { + return; + } + + // Ensure the location to output the library exists and write it out. + Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); + + using (FileStream stream = File.Create(path)) + using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixlib, embedFilePaths)) + using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) + { + writer.WriteStartDocument(); + + this.Write(writer); + + writer.WriteEndDocument(); + } + } + + /// + /// Parse the root library element. + /// + /// XmlReader with library persisted as Xml. + /// Collection containing TableDefinitions to use when reconstituting the intermediates. + /// Suppresses check for wix.dll version mismatch. + /// The parsed Library. + private static Library Read(XmlReader reader, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + { + if (!reader.LocalName.Equals("wixLibrary")) + { + throw new XmlException(); + } + + bool empty = reader.IsEmptyElement; + Library library = new Library(); + Version version = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "version": + version = new Version(reader.Value); + break; + case "id": + library.id = reader.Value; + break; + } + } + + if (!suppressVersionCheck && null != version && !Library.CurrentVersion.Equals(version)) + { + throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "library", version.ToString(), Library.CurrentVersion.ToString())); + } + + if (!empty) + { + bool done = false; + + while (!done && (XmlNodeType.Element == reader.NodeType || reader.Read())) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "localization": + Localization localization = Localization.Read(reader, tableDefinitions); + library.localizations.Add(localization.Culture, localization); + break; + case "section": + Section section = Section.Read(reader, tableDefinitions); + section.LibraryId = library.id; + library.sections.Add(section); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return library; + } + + /// + /// Persists a library in an XML format. + /// + /// XmlWriter where the library should persist itself as XML. + private void Write(XmlWriter writer) + { + writer.WriteStartElement("wixLibrary", XmlNamespaceUri); + + writer.WriteAttributeString("version", CurrentVersion.ToString()); + + writer.WriteAttributeString("id", this.id); + + foreach (Localization localization in this.localizations.Values) + { + localization.Write(writer); + } + + foreach (Section section in this.sections) + { + section.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs new file mode 100644 index 00000000..658ce14a --- /dev/null +++ b/src/WixToolset.Data/Localization.cs @@ -0,0 +1,372 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Diagnostics; + using System.Diagnostics.CodeAnalysis; + using System.Globalization; + using System.IO; + using System.Linq; + using System.Reflection; + using System.Xml; + using System.Xml.Linq; + using System.Xml.Schema; + using WixToolset.Data.Msi; + using WixToolset.Data.Rows; + + /// + /// Object that represents a localization file. + /// + public sealed class Localization + { + private static string XmlElementName = "localization"; + + private Dictionary variables = new Dictionary(); + private Dictionary localizedControls = new Dictionary(); + + /// + /// Instantiates a new localization object. + /// + public Localization(int codepage, string culture, IDictionary variables, IDictionary localizedControls) + { + this.Codepage = codepage; + this.Culture = String.IsNullOrEmpty(culture) ? String.Empty : culture.ToLowerInvariant(); + this.variables = new Dictionary(variables); + this.localizedControls = new Dictionary(localizedControls); + } + + /// + /// Gets the codepage. + /// + /// The codepage. + public int Codepage { get; private set; } + + /// + /// Gets the culture. + /// + /// The culture. + public string Culture { get; private set; } + + /// + /// Gets the variables. + /// + /// The variables. + public ICollection Variables + { + get { return this.variables.Values; } + } + + /// + /// Gets the localized controls. + /// + /// The localized controls. + public ICollection> LocalizedControls + { + get { return this.localizedControls; } + } + + /// + /// Merge the information from another localization object into this one. + /// + /// The localization object to be merged into this one. + public void Merge(Localization localization) + { + foreach (WixVariableRow wixVariableRow in localization.Variables) + { + WixVariableRow existingWixVariableRow; + if (!this.variables.TryGetValue(wixVariableRow.Id, out existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) + { + variables[wixVariableRow.Id] = wixVariableRow; + } + else if (!wixVariableRow.Overridable) + { + throw new WixException(WixDataErrors.DuplicateLocalizationIdentifier(wixVariableRow.SourceLineNumbers, wixVariableRow.Id)); + } + } + } + + /// + /// Loads a localization file from a stream. + /// + /// XmlReader where the intermediate is persisted. + /// Collection containing TableDefinitions to use when loading the localization file. + /// Returns the loaded localization. + internal static Localization Read(XmlReader reader, TableDefinitionCollection tableDefinitions) + { + Debug.Assert("localization" == reader.LocalName); + + int codepage = 0; + string culture = null; + bool empty = reader.IsEmptyElement; + + while (reader.MoveToNextAttribute()) + { + switch (reader.Name) + { + case "codepage": + codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + case "culture": + culture = reader.Value; + break; + } + } + + TableDefinition wixVariableTable = tableDefinitions["WixVariable"]; + Dictionary variables = new Dictionary(); + Dictionary localizedControls = new Dictionary(); + + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "string": + WixVariableRow row = Localization.ReadString(reader, wixVariableTable); + variables.Add(row.Id, row); + break; + + case "ui": + LocalizedControl ui = Localization.ReadUI(reader); + localizedControls.Add(ui.GetKey(), ui); + break; + + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return new Localization(codepage, culture, variables, localizedControls); + } + + /// + /// Writes a localization file into an XML format. + /// + /// XmlWriter where the localization file should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement(Localization.XmlElementName, Library.XmlNamespaceUri); + + if (-1 != this.Codepage) + { + writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); + } + + if (!String.IsNullOrEmpty(this.Culture)) + { + writer.WriteAttributeString("culture", this.Culture); + } + + foreach (WixVariableRow wixVariableRow in this.variables.Values) + { + writer.WriteStartElement("string", Library.XmlNamespaceUri); + + writer.WriteAttributeString("id", wixVariableRow.Id); + + if (wixVariableRow.Overridable) + { + writer.WriteAttributeString("overridable", "yes"); + } + + writer.WriteCData(wixVariableRow.Value); + + writer.WriteEndElement(); + } + + foreach (string controlKey in this.localizedControls.Keys) + { + writer.WriteStartElement("ui", Library.XmlNamespaceUri); + + string[] controlKeys = controlKey.Split('/'); + string dialog = controlKeys[0]; + string control = controlKeys[1]; + + if (!String.IsNullOrEmpty(dialog)) + { + writer.WriteAttributeString("dialog", dialog); + } + + if (!String.IsNullOrEmpty(control)) + { + writer.WriteAttributeString("control", control); + } + + LocalizedControl localizedControl = this.localizedControls[controlKey]; + + if (Common.IntegerNotSet != localizedControl.X) + { + writer.WriteAttributeString("x", localizedControl.X.ToString()); + } + + if (Common.IntegerNotSet != localizedControl.Y) + { + writer.WriteAttributeString("y", localizedControl.Y.ToString()); + } + + if (Common.IntegerNotSet != localizedControl.Width) + { + writer.WriteAttributeString("width", localizedControl.Width.ToString()); + } + + if (Common.IntegerNotSet != localizedControl.Height) + { + writer.WriteAttributeString("height", localizedControl.Height.ToString()); + } + + if (MsiInterop.MsidbControlAttributesRTLRO == (localizedControl.Attributes & MsiInterop.MsidbControlAttributesRTLRO)) + { + writer.WriteAttributeString("rightToLeft", "yes"); + } + + if (MsiInterop.MsidbControlAttributesRightAligned == (localizedControl.Attributes & MsiInterop.MsidbControlAttributesRightAligned)) + { + writer.WriteAttributeString("rightAligned", "yes"); + } + + if (MsiInterop.MsidbControlAttributesLeftScroll == (localizedControl.Attributes & MsiInterop.MsidbControlAttributesLeftScroll)) + { + writer.WriteAttributeString("leftScroll", "yes"); + } + + if (!String.IsNullOrEmpty(localizedControl.Text)) + { + writer.WriteCData(localizedControl.Text); + } + + writer.WriteEndElement(); + } + + writer.WriteEndElement(); + } + + /// + /// Loads a localization file from a stream. + /// + /// XmlReader where the intermediate is persisted. + /// Collection containing TableDefinitions to use when loading the localization file. + /// Returns the loaded localization. + private static WixVariableRow ReadString(XmlReader reader, TableDefinition wixVariableTable) + { + Debug.Assert("string" == reader.LocalName); + + string id = null; + string value = null; + bool overridable = false; + bool empty = reader.IsEmptyElement; + + while (reader.MoveToNextAttribute()) + { + switch (reader.Name) + { + case "id": + id = reader.Value; + break; + case "overridable": + overridable = reader.Value.Equals("yes"); + break; + } + } + + + if (!empty) + { + reader.Read(); + + value = reader.Value; + + reader.Read(); + + if (XmlNodeType.EndElement != reader.NodeType) + { + throw new XmlException(); + } + } + + WixVariableRow wixVariableRow = new WixVariableRow(SourceLineNumber.CreateFromUri(reader.BaseURI), wixVariableTable); + wixVariableRow.Id = id; + wixVariableRow.Overridable = overridable; + wixVariableRow.Value = value; + + return wixVariableRow; + } + + private static LocalizedControl ReadUI(XmlReader reader) + { + Debug.Assert("ui" == reader.LocalName); + + string dialog = null; + string control = null; + int x = Common.IntegerNotSet; + int y = Common.IntegerNotSet; + int width = Common.IntegerNotSet; + int height = Common.IntegerNotSet; + int attributes = Common.IntegerNotSet; + string text = null; + bool empty = reader.IsEmptyElement; + + while (reader.MoveToNextAttribute()) + { + switch (reader.Name) + { + case "dialog": + dialog = reader.Value; + break; + case "control": + control = reader.Value; + break; + case "x": + x = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + case "y": + y = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + case "width": + width = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + case "height": + height = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + case "attributes": + attributes = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + } + } + + if (!empty) + { + reader.Read(); + + text = reader.Value; + + reader.Read(); + + if (XmlNodeType.EndElement != reader.NodeType) + { + throw new XmlException(); + } + } + + return new LocalizedControl(dialog, control, x, y, width, height, attributes, text); + } + } +} diff --git a/src/WixToolset.Data/LocalizedControl.cs b/src/WixToolset.Data/LocalizedControl.cs new file mode 100644 index 00000000..50315b29 --- /dev/null +++ b/src/WixToolset.Data/LocalizedControl.cs @@ -0,0 +1,57 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public class LocalizedControl + { + public LocalizedControl(string dialog, string control, int x, int y, int width, int height, int attribs, string text) + { + this.Dialog = dialog; + this.Control = control; + this.X = x; + this.Y = y; + this.Width = width; + this.Height = height; + this.Attributes = attribs; + this.Text = text; + } + + public string Dialog { get; set; } + + public string Control { get; set; } + + public int X { get; private set; } + + public int Y { get; private set; } + + public int Width { get; private set; } + + public int Height { get; private set; } + + public int Attributes { get; private set; } + + public string Text { get; private set; } + + /// + /// Get key for a localized control. + /// + /// The localized control id. + public string GetKey() + { + return LocalizedControl.GetKey(this.Dialog, this.Control); + } + + /// + /// Get key for a localized control. + /// + /// The optional id of the control's dialog. + /// The id of the control. + /// The localized control id. + public static string GetKey(string dialog, string control) + { + return String.Concat(String.IsNullOrEmpty(dialog) ? String.Empty : dialog, "/", String.IsNullOrEmpty(control) ? String.Empty : control); + } + } +} diff --git a/src/WixToolset.Data/MessageEventArgs.cs b/src/WixToolset.Data/MessageEventArgs.cs new file mode 100644 index 00000000..472b5e95 --- /dev/null +++ b/src/WixToolset.Data/MessageEventArgs.cs @@ -0,0 +1,176 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Diagnostics.CodeAnalysis; + using System.Globalization; + using System.Resources; + using System.Text; + + /// + /// Event args for message events. + /// + public abstract class MessageEventArgs : EventArgs + { + private SourceLineNumber sourceLineNumbers; + private int id; + private string resourceName; + private object[] messageArgs; + private MessageLevel level; + + /// + /// Creates a new MessageEventArgs. + /// + /// Source line numbers for the message. + /// Id for the message. + /// Name of the resource. + /// Arguments for the format string. + protected MessageEventArgs(SourceLineNumber sourceLineNumbers, int id, string resourceName, params object[] messageArgs) + { + this.sourceLineNumbers = sourceLineNumbers; + this.id = id; + this.resourceName = resourceName; + this.messageArgs = messageArgs; + + // Default to Nothing, since the default MessageEventArgs container + // classes define a level, and only WixErrorEventArgs previously + // determined that an error occured without throwing. + this.level = MessageLevel.Nothing; + } + + /// + /// Gets the resource manager for this event args. + /// + /// The resource manager for this event args. + public ResourceManager ResourceManager { get; protected set; } + + /// + /// Gets the source line numbers. + /// + /// The source line numbers. + public SourceLineNumber SourceLineNumbers + { + get { return this.sourceLineNumbers; } + } + + /// + /// Gets the Id for the message. + /// + /// The Id for the message. + public int Id + { + get { return this.id; } + } + + /// + /// Gets the name of the resource. + /// + /// The name of the resource. + public string ResourceName + { + get { return this.resourceName; } + } + + /// + /// Gets or sets the for the message. + /// + /// The for the message. + /// + /// The may set the level differently + /// depending on suppression and escalation of different message levels. + /// Message handlers should check the level to determine if an error + /// or other message level was raised. + /// + public MessageLevel Level + { + get { return this.level; } + set { this.level = value; } + } + + /// + /// Gets the arguments for the format string. + /// + /// The arguments for the format string. + [SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + public object[] MessageArgs + { + get { return this.messageArgs; } + } + + /// + /// Creates a properly formatted message string. + /// + /// Optional short form of the application name that generated the message. Defaults to "WIX" if unspecified. + /// Optional long form of the application name that generated the message. Defaults to "WIX" if unspecified. Will be overridden by the processed filename if one was provided. + /// Optional override level of the message, as generated by MessageLevel(MessageEventArgs). + /// String containing the formatted message. + public string GenerateMessageString(string shortAppName = null, string longAppName = null, MessageLevel overrideLevel = MessageLevel.Nothing) + { + MessageLevel messageLevel = MessageLevel.Nothing == overrideLevel ? this.Level : overrideLevel; + + List fileNames = new List(); + string errorFileName = String.IsNullOrEmpty(longAppName) ? "WIX" : longAppName; + for (SourceLineNumber sln = this.SourceLineNumbers; null != sln; sln = sln.Parent) + { + if (String.IsNullOrEmpty(sln.FileName)) + { + continue; + } + else if (sln.LineNumber.HasValue) + { + if (0 == fileNames.Count) + { + errorFileName = String.Format(CultureInfo.CurrentUICulture, WixDataStrings.Format_FirstLineNumber, sln.FileName, sln.LineNumber); + } + + fileNames.Add(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.Format_LineNumber, sln.FileName, sln.LineNumber)); + } + else + { + if (0 == fileNames.Count) + { + errorFileName = sln.FileName; + } + + fileNames.Add(sln.FileName); + } + } + + string messageType = String.Empty; + if (MessageLevel.Warning == messageLevel) + { + messageType = WixDataStrings.MessageType_Warning; + } + else if (MessageLevel.Error == messageLevel) + { + messageType = WixDataStrings.MessageType_Error; + } + + StringBuilder messageBuilder = new StringBuilder(); + string message = String.Format(CultureInfo.InvariantCulture, this.ResourceManager.GetString(this.ResourceName), this.MessageArgs); + if (MessageLevel.Information == messageLevel || MessageLevel.Verbose == messageLevel) + { + messageBuilder.AppendFormat(WixDataStrings.Format_InfoMessage, message); + } + else + { + messageBuilder.AppendFormat(WixDataStrings.Format_NonInfoMessage, errorFileName, messageType, String.IsNullOrEmpty(shortAppName) ? "WIX" : shortAppName, this.Id, message); + } + + if (1 < fileNames.Count) + { + messageBuilder.AppendFormat(WixDataStrings.INF_SourceTrace, Environment.NewLine); + foreach (string fileName in fileNames) + { + messageBuilder.AppendFormat(WixDataStrings.INF_SourceTraceLocation, fileName, Environment.NewLine); + } + + messageBuilder.Append(Environment.NewLine); + } + + return messageBuilder.ToString(); + } + } +} diff --git a/src/WixToolset.Data/MessageLevel.cs b/src/WixToolset.Data/MessageLevel.cs new file mode 100644 index 00000000..d980e371 --- /dev/null +++ b/src/WixToolset.Data/MessageLevel.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Enum for message to display. + /// + public enum MessageLevel + { + /// Display nothing. + Nothing, + + /// Display verbose information. + Verbose, + + /// Display information. + Information, + + /// Display warning. + Warning, + + /// Display error. + Error, + } +} diff --git a/src/WixToolset.Data/Messaging.cs b/src/WixToolset.Data/Messaging.cs new file mode 100644 index 00000000..de2cdcfe --- /dev/null +++ b/src/WixToolset.Data/Messaging.cs @@ -0,0 +1,173 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + + public class Messaging : IMessageHandler + { + private static readonly Messaging instance = new Messaging(); + + private HashSet suppressedWarnings = new HashSet(); + private HashSet warningsAsErrors = new HashSet(); + private string longAppName; + private string shortAppName; + + static Messaging() + { + } + + private Messaging() + { + } + + public static Messaging Instance { get { return Messaging.instance; } } + + /// + /// Event fired when messages are to be displayed. + /// + public event DisplayEventHandler Display; + + /// + /// Gets a bool indicating whether an error has been found. + /// + /// A bool indicating whether an error has been found. + public bool EncounteredError { get; private set; } + + /// + /// Gets the last error code encountered during messaging. + /// + /// The exit code for the process. + public int LastErrorNumber { get; private set; } + + /// + /// Gets or sets the option to show verbose messages. + /// + /// The option to show verbose messages. + public bool ShowVerboseMessages { get; set; } + + /// + /// Gets or sets the option to suppress all warning messages. + /// + /// The option to suppress all warning messages. + public bool SuppressAllWarnings { get; set; } + + /// + /// Gets and sets the option to treat warnings as errors. + /// + /// The option to treat warnings as errors. + public bool WarningsAsError { get; set; } + + /// + /// Implements IMessageHandler to display error messages. + /// + /// Message event arguments. + public void OnMessage(MessageEventArgs mea) + { + MessageLevel messageLevel = this.CalculateMessageLevel(mea); + + if (MessageLevel.Nothing == messageLevel) + { + return; + } + else if (MessageLevel.Error == messageLevel) + { + this.EncounteredError = true; + this.LastErrorNumber = mea.Id; + } + + if (null != this.Display) + { + string message = mea.GenerateMessageString(this.shortAppName, this.longAppName, messageLevel); + if (!String.IsNullOrEmpty(message)) + { + this.Display(this, new DisplayEventArgs() { Level = messageLevel, Message = message }); + } + } + else if (MessageLevel.Error == mea.Level) + { + throw new WixException(mea); + } + } + + /// + /// Sets the app names. + /// + /// Short application name; usually 4 uppercase characters. + /// Long application name; usually the executable name. + public Messaging InitializeAppName(string shortName, string longName) + { + this.EncounteredError = false; + this.LastErrorNumber = 0; + + this.Display = null; + this.ShowVerboseMessages = false; + this.SuppressAllWarnings = false; + this.WarningsAsError = false; + this.suppressedWarnings.Clear(); + this.warningsAsErrors.Clear(); + + this.shortAppName = shortName; + this.longAppName = longName; + + return this; + } + + /// + /// Adds a warning message id to be elevated to an error message. + /// + /// Id of the message to elevate. + /// + /// Suppressed warnings will not be elevated as errors. + /// + public void ElevateWarningMessage(int warningNumber) + { + this.warningsAsErrors.Add(warningNumber); + } + + /// + /// Adds a warning message id to be suppressed in message output. + /// + /// Id of the message to suppress. + /// + /// Suppressed warnings will not be elevated as errors. + /// + public void SuppressWarningMessage(int warningNumber) + { + this.suppressedWarnings.Add(warningNumber); + } + + /// + /// Determines the level of this message, when taking into account warning-as-error, + /// warning level, verbosity level and message suppressed by the caller. + /// + /// Event arguments for the message. + /// MessageLevel representing the level of this message. + private MessageLevel CalculateMessageLevel(MessageEventArgs mea) + { + MessageLevel messageLevel = mea.Level; + + if (MessageLevel.Verbose == messageLevel) + { + if (!this.ShowVerboseMessages) + { + messageLevel = MessageLevel.Nothing; + } + } + else if (MessageLevel.Warning == messageLevel) + { + if (this.SuppressAllWarnings || this.suppressedWarnings.Contains(mea.Id)) + { + messageLevel = MessageLevel.Nothing; + } + else if (this.WarningsAsError || this.warningsAsErrors.Contains(mea.Id)) + { + messageLevel = MessageLevel.Error; + } + } + + return messageLevel; + } + } +} diff --git a/src/WixToolset.Data/Msi/MsiInterop.cs b/src/WixToolset.Data/Msi/MsiInterop.cs new file mode 100644 index 00000000..1a8ebbf0 --- /dev/null +++ b/src/WixToolset.Data/Msi/MsiInterop.cs @@ -0,0 +1,313 @@ +// 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. + +namespace WixToolset.Data.Msi +{ + class MsiInterop + { + // Patching constants + internal const int MsiMaxStreamNameLength = 62; // http://msdn2.microsoft.com/library/aa370551.aspx + + // Component.Attributes + internal const int MsidbComponentAttributesLocalOnly = 0; + internal const int MsidbComponentAttributesSourceOnly = 1; + internal const int MsidbComponentAttributesOptional = 2; + internal const int MsidbComponentAttributesRegistryKeyPath = 4; + internal const int MsidbComponentAttributesSharedDllRefCount = 8; + internal const int MsidbComponentAttributesPermanent = 16; + internal const int MsidbComponentAttributesODBCDataSource = 32; + internal const int MsidbComponentAttributesTransitive = 64; + internal const int MsidbComponentAttributesNeverOverwrite = 128; + internal const int MsidbComponentAttributes64bit = 256; + internal const int MsidbComponentAttributesDisableRegistryReflection = 512; + internal const int MsidbComponentAttributesUninstallOnSupersedence = 1024; + internal const int MsidbComponentAttributesShared = 2048; + + // BBControl.Attributes & Control.Attributes + internal const int MsidbControlAttributesVisible = 0x00000001; + internal const int MsidbControlAttributesEnabled = 0x00000002; + internal const int MsidbControlAttributesSunken = 0x00000004; + internal const int MsidbControlAttributesIndirect = 0x00000008; + internal const int MsidbControlAttributesInteger = 0x00000010; + internal const int MsidbControlAttributesRTLRO = 0x00000020; + internal const int MsidbControlAttributesRightAligned = 0x00000040; + internal const int MsidbControlAttributesLeftScroll = 0x00000080; + internal const int MsidbControlAttributesBiDi = MsidbControlAttributesRTLRO | MsidbControlAttributesRightAligned | MsidbControlAttributesLeftScroll; + + // Text controls + internal const int MsidbControlAttributesTransparent = 0x00010000; + internal const int MsidbControlAttributesNoPrefix = 0x00020000; + internal const int MsidbControlAttributesNoWrap = 0x00040000; + internal const int MsidbControlAttributesFormatSize = 0x00080000; + internal const int MsidbControlAttributesUsersLanguage = 0x00100000; + + // Edit controls + internal const int MsidbControlAttributesMultiline = 0x00010000; + internal const int MsidbControlAttributesPasswordInput = 0x00200000; + + // ProgressBar controls + internal const int MsidbControlAttributesProgress95 = 0x00010000; + + // VolumeSelectCombo and DirectoryCombo controls + internal const int MsidbControlAttributesRemovableVolume = 0x00010000; + internal const int MsidbControlAttributesFixedVolume = 0x00020000; + internal const int MsidbControlAttributesRemoteVolume = 0x00040000; + internal const int MsidbControlAttributesCDROMVolume = 0x00080000; + internal const int MsidbControlAttributesRAMDiskVolume = 0x00100000; + internal const int MsidbControlAttributesFloppyVolume = 0x00200000; + + // VolumeCostList controls + internal const int MsidbControlShowRollbackCost = 0x00400000; + + // ListBox and ComboBox controls + internal const int MsidbControlAttributesSorted = 0x00010000; + internal const int MsidbControlAttributesComboList = 0x00020000; + + // picture button controls + internal const int MsidbControlAttributesImageHandle = 0x00010000; + internal const int MsidbControlAttributesPushLike = 0x00020000; + internal const int MsidbControlAttributesBitmap = 0x00040000; + internal const int MsidbControlAttributesIcon = 0x00080000; + internal const int MsidbControlAttributesFixedSize = 0x00100000; + internal const int MsidbControlAttributesIconSize16 = 0x00200000; + internal const int MsidbControlAttributesIconSize32 = 0x00400000; + internal const int MsidbControlAttributesIconSize48 = 0x00600000; + internal const int MsidbControlAttributesElevationShield = 0x00800000; + + // RadioButton controls + internal const int MsidbControlAttributesHasBorder = 0x01000000; + + // CustomAction.Type + // executable types + internal const int MsidbCustomActionTypeDll = 0x00000001; // Target = entry point name + internal const int MsidbCustomActionTypeExe = 0x00000002; // Target = command line args + internal const int MsidbCustomActionTypeTextData = 0x00000003; // Target = text string to be formatted and set into property + internal const int MsidbCustomActionTypeJScript = 0x00000005; // Target = entry point name; null if none to call + internal const int MsidbCustomActionTypeVBScript = 0x00000006; // Target = entry point name; null if none to call + internal const int MsidbCustomActionTypeInstall = 0x00000007; // Target = property list for nested engine initialization + internal const int MsidbCustomActionTypeSourceBits = 0x00000030; + internal const int MsidbCustomActionTypeTargetBits = 0x00000007; + internal const int MsidbCustomActionTypeReturnBits = 0x000000C0; + internal const int MsidbCustomActionTypeExecuteBits = 0x00000700; + + // source of code + internal const int MsidbCustomActionTypeBinaryData = 0x00000000; // Source = Binary.Name; data stored in stream + internal const int MsidbCustomActionTypeSourceFile = 0x00000010; // Source = File.File; file part of installation + internal const int MsidbCustomActionTypeDirectory = 0x00000020; // Source = Directory.Directory; folder containing existing file + internal const int MsidbCustomActionTypeProperty = 0x00000030; // Source = Property.Property; full path to executable + + // return processing; default is syncronous execution; process return code + internal const int MsidbCustomActionTypeContinue = 0x00000040; // ignore action return status; continue running + internal const int MsidbCustomActionTypeAsync = 0x00000080; // run asynchronously + + // execution scheduling flags; default is execute whenever sequenced + internal const int MsidbCustomActionTypeFirstSequence = 0x00000100; // skip if UI sequence already run + internal const int MsidbCustomActionTypeOncePerProcess = 0x00000200; // skip if UI sequence already run in same process + internal const int MsidbCustomActionTypeClientRepeat = 0x00000300; // run on client only if UI already run on client + internal const int MsidbCustomActionTypeInScript = 0x00000400; // queue for execution within script + internal const int MsidbCustomActionTypeRollback = 0x00000100; // in conjunction with InScript: queue in Rollback script + internal const int MsidbCustomActionTypeCommit = 0x00000200; // in conjunction with InScript: run Commit ops from script on success + + // security context flag; default to impersonate as user; valid only if InScript + internal const int MsidbCustomActionTypeNoImpersonate = 0x00000800; // no impersonation; run in system context + internal const int MsidbCustomActionTypeTSAware = 0x00004000; // impersonate for per-machine installs on TS machines + internal const int MsidbCustomActionType64BitScript = 0x00001000; // script should run in 64bit process + internal const int MsidbCustomActionTypeHideTarget = 0x00002000; // don't record the contents of the Target field in the log file. + + internal const int MsidbCustomActionTypePatchUninstall = 0x00008000; // run on patch uninstall + + // Dialog.Attributes + internal const int MsidbDialogAttributesVisible = 0x00000001; + internal const int MsidbDialogAttributesModal = 0x00000002; + internal const int MsidbDialogAttributesMinimize = 0x00000004; + internal const int MsidbDialogAttributesSysModal = 0x00000008; + internal const int MsidbDialogAttributesKeepModeless = 0x00000010; + internal const int MsidbDialogAttributesTrackDiskSpace = 0x00000020; + internal const int MsidbDialogAttributesUseCustomPalette = 0x00000040; + internal const int MsidbDialogAttributesRTLRO = 0x00000080; + internal const int MsidbDialogAttributesRightAligned = 0x00000100; + internal const int MsidbDialogAttributesLeftScroll = 0x00000200; + internal const int MsidbDialogAttributesBiDi = MsidbDialogAttributesRTLRO | MsidbDialogAttributesRightAligned | MsidbDialogAttributesLeftScroll; + internal const int MsidbDialogAttributesError = 0x00010000; + internal const int CommonControlAttributesInvert = MsidbControlAttributesVisible + MsidbControlAttributesEnabled; + internal const int DialogAttributesInvert = MsidbDialogAttributesVisible + MsidbDialogAttributesModal + MsidbDialogAttributesMinimize; + + // Feature.Attributes + internal const int MsidbFeatureAttributesFavorLocal = 0; + internal const int MsidbFeatureAttributesFavorSource = 1; + internal const int MsidbFeatureAttributesFollowParent = 2; + internal const int MsidbFeatureAttributesFavorAdvertise = 4; + internal const int MsidbFeatureAttributesDisallowAdvertise = 8; + internal const int MsidbFeatureAttributesUIDisallowAbsent = 16; + internal const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; + + // File.Attributes + internal const int MsidbFileAttributesReadOnly = 1; + internal const int MsidbFileAttributesHidden = 2; + internal const int MsidbFileAttributesSystem = 4; + internal const int MsidbFileAttributesVital = 512; + internal const int MsidbFileAttributesChecksum = 1024; + internal const int MsidbFileAttributesPatchAdded = 4096; + internal const int MsidbFileAttributesNoncompressed = 8192; + internal const int MsidbFileAttributesCompressed = 16384; + + // IniFile.Action & RemoveIniFile.Action + internal const int MsidbIniFileActionAddLine = 0; + internal const int MsidbIniFileActionCreateLine = 1; + internal const int MsidbIniFileActionRemoveLine = 2; + internal const int MsidbIniFileActionAddTag = 3; + internal const int MsidbIniFileActionRemoveTag = 4; + + // MoveFile.Options + internal const int MsidbMoveFileOptionsMove = 1; + + // ServiceInstall.Attributes + internal const int MsidbServiceInstallOwnProcess = 0x00000010; + internal const int MsidbServiceInstallShareProcess = 0x00000020; + internal const int MsidbServiceInstallInteractive = 0x00000100; + internal const int MsidbServiceInstallAutoStart = 0x00000002; + internal const int MsidbServiceInstallDemandStart = 0x00000003; + internal const int MsidbServiceInstallDisabled = 0x00000004; + internal const int MsidbServiceInstallErrorIgnore = 0x00000000; + internal const int MsidbServiceInstallErrorNormal = 0x00000001; + internal const int MsidbServiceInstallErrorCritical = 0x00000003; + internal const int MsidbServiceInstallErrorControlVital = 0x00008000; + + // ServiceConfig.Event + internal const int MsidbServiceConfigEventInstall = 0x00000001; + internal const int MsidbServiceConfigEventUninstall = 0x00000002; + internal const int MsidbServiceConfigEventReinstall = 0x00000004; + + // ServiceControl.Attributes + internal const int MsidbServiceControlEventStart = 0x00000001; + internal const int MsidbServiceControlEventStop = 0x00000002; + internal const int MsidbServiceControlEventDelete = 0x00000008; + internal const int MsidbServiceControlEventUninstallStart = 0x00000010; + internal const int MsidbServiceControlEventUninstallStop = 0x00000020; + internal const int MsidbServiceControlEventUninstallDelete = 0x00000080; + + // TextStyle.StyleBits + internal const int MsidbTextStyleStyleBitsBold = 1; + internal const int MsidbTextStyleStyleBitsItalic = 2; + internal const int MsidbTextStyleStyleBitsUnderline = 4; + internal const int MsidbTextStyleStyleBitsStrike = 8; + + // Upgrade.Attributes + internal const int MsidbUpgradeAttributesMigrateFeatures = 0x00000001; + internal const int MsidbUpgradeAttributesOnlyDetect = 0x00000002; + internal const int MsidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004; + internal const int MsidbUpgradeAttributesVersionMinInclusive = 0x00000100; + internal const int MsidbUpgradeAttributesVersionMaxInclusive = 0x00000200; + internal const int MsidbUpgradeAttributesLanguagesExclusive = 0x00000400; + + // Registry Hive Roots + internal const int MsidbRegistryRootClassesRoot = 0; + internal const int MsidbRegistryRootCurrentUser = 1; + internal const int MsidbRegistryRootLocalMachine = 2; + internal const int MsidbRegistryRootUsers = 3; + + // Locator Types + internal const int MsidbLocatorTypeDirectory = 0; + internal const int MsidbLocatorTypeFileName = 1; + internal const int MsidbLocatorTypeRawValue = 2; + internal const int MsidbLocatorType64bit = 16; + + internal const int MsidbClassAttributesRelativePath = 1; + + // RemoveFile.InstallMode + internal const int MsidbRemoveFileInstallModeOnInstall = 0x00000001; + internal const int MsidbRemoveFileInstallModeOnRemove = 0x00000002; + internal const int MsidbRemoveFileInstallModeOnBoth = 0x00000003; + + // ODBCDataSource.Registration + internal const int MsidbODBCDataSourceRegistrationPerMachine = 0; + internal const int MsidbODBCDataSourceRegistrationPerUser = 1; + + // ModuleConfiguration.Format + internal const int MsidbModuleConfigurationFormatText = 0; + internal const int MsidbModuleConfigurationFormatKey = 1; + internal const int MsidbModuleConfigurationFormatInteger = 2; + internal const int MsidbModuleConfigurationFormatBitfield = 3; + + // ModuleConfiguration.Attributes + internal const int MsidbMsmConfigurableOptionKeyNoOrphan = 1; + internal const int MsidbMsmConfigurableOptionNonNullable = 2; + + // ' Windows API function ShowWindow constants - used in Shortcut table + internal const int SWSHOWNORMAL = 0x00000001; + internal const int SWSHOWMAXIMIZED = 0x00000003; + internal const int SWSHOWMINNOACTIVE = 0x00000007; + + // NameToBit arrays + // UI elements + internal static readonly string[] CommonControlAttributes = { "Hidden", "Disabled", "Sunken", "Indirect", "Integer", "RightToLeft", "RightAligned", "LeftScroll" }; + internal static readonly string[] TextControlAttributes = { "Transparent", "NoPrefix", "NoWrap", "FormatSize", "UserLanguage" }; + internal static readonly string[] HyperlinkControlAttributes = { "Transparent" }; + internal static readonly string[] EditControlAttributes = { "Multiline", null, null, null, null, "Password" }; + internal static readonly string[] ProgressControlAttributes = { "ProgressBlocks" }; + internal static readonly string[] VolumeControlAttributes = { "Removable", "Fixed", "Remote", "CDROM", "RAMDisk", "Floppy", "ShowRollbackCost" }; + internal static readonly string[] ListboxControlAttributes = { "Sorted", null, null, null, "UserLanguage" }; + internal static readonly string[] ListviewControlAttributes = { "Sorted", null, null, null, "FixedSize", "Icon16", "Icon32" }; + internal static readonly string[] ComboboxControlAttributes = { "Sorted", "ComboList", null, null, "UserLanguage" }; + internal static readonly string[] RadioControlAttributes = { "Image", "PushLike", "Bitmap", "Icon", "FixedSize", "Icon16", "Icon32", null, "HasBorder" }; + internal static readonly string[] ButtonControlAttributes = { "Image", null, "Bitmap", "Icon", "FixedSize", "Icon16", "Icon32", "ElevationShield" }; + internal static readonly string[] IconControlAttributes = { "Image", null, null, null, "FixedSize", "Icon16", "Icon32" }; + internal static readonly string[] BitmapControlAttributes = { "Image", null, null, null, "FixedSize" }; + internal static readonly string[] CheckboxControlAttributes = { null, "PushLike", "Bitmap", "Icon", "FixedSize", "Icon16", "Icon32" }; + + internal const int MsidbEmbeddedUI = 0x01; + internal const int MsidbEmbeddedHandlesBasic = 0x02; + + internal const int INSTALLLOGMODE_FATALEXIT = 0x00001; + internal const int INSTALLLOGMODE_ERROR = 0x00002; + internal const int INSTALLLOGMODE_WARNING = 0x00004; + internal const int INSTALLLOGMODE_USER = 0x00008; + internal const int INSTALLLOGMODE_INFO = 0x00010; + internal const int INSTALLLOGMODE_FILESINUSE = 0x00020; + internal const int INSTALLLOGMODE_RESOLVESOURCE = 0x00040; + internal const int INSTALLLOGMODE_OUTOFDISKSPACE = 0x00080; + internal const int INSTALLLOGMODE_ACTIONSTART = 0x00100; + internal const int INSTALLLOGMODE_ACTIONDATA = 0x00200; + internal const int INSTALLLOGMODE_PROGRESS = 0x00400; + internal const int INSTALLLOGMODE_COMMONDATA = 0x00800; + internal const int INSTALLLOGMODE_INITIALIZE = 0x01000; + internal const int INSTALLLOGMODE_TERMINATE = 0x02000; + internal const int INSTALLLOGMODE_SHOWDIALOG = 0x04000; + internal const int INSTALLLOGMODE_RMFILESINUSE = 0x02000000; + internal const int INSTALLLOGMODE_INSTALLSTART = 0x04000000; + internal const int INSTALLLOGMODE_INSTALLEND = 0x08000000; + + internal const int MSICONDITIONFALSE = 0; // The table is temporary. + internal const int MSICONDITIONTRUE = 1; // The table is persistent. + internal const int MSICONDITIONNONE = 2; // The table is unknown. + internal const int MSICONDITIONERROR = 3; // An invalid handle or invalid parameter was passed to the function. + + internal const int MSIDBOPENREADONLY = 0; + internal const int MSIDBOPENTRANSACT = 1; + internal const int MSIDBOPENDIRECT = 2; + internal const int MSIDBOPENCREATE = 3; + internal const int MSIDBOPENCREATEDIRECT = 4; + internal const int MSIDBOPENPATCHFILE = 32; + + internal const int MSIMODIFYSEEK = -1; // Refreshes the information in the supplied record without changing the position in the result set and without affecting subsequent fetch operations. The record may then be used for subsequent Update, Delete, and Refresh. All primary key columns of the table must be in the query and the record must have at least as many fields as the query. Seek cannot be used with multi-table queries. This mode cannot be used with a view containing joins. See also the remarks. + internal const int MSIMODIFYREFRESH = 0; // Refreshes the information in the record. Must first call MsiViewFetch with the same record. Fails for a deleted row. Works with read-write and read-only records. + internal const int MSIMODIFYINSERT = 1; // Inserts a record. Fails if a row with the same primary keys exists. Fails with a read-only database. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYUPDATE = 2; // Updates an existing record. Nonprimary keys only. Must first call MsiViewFetch. Fails with a deleted record. Works only with read-write records. + internal const int MSIMODIFYASSIGN = 3; // Writes current data in the cursor to a table row. Updates record if the primary keys match an existing row and inserts if they do not match. Fails with a read-only database. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYREPLACE = 4; // Updates or deletes and inserts a record into a table. Must first call MsiViewFetch with the same record. Updates record if the primary keys are unchanged. Deletes old row and inserts new if primary keys have changed. Fails with a read-only database. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYMERGE = 5; // Inserts or validates a record in a table. Inserts if primary keys do not match any row and validates if there is a match. Fails if the record does not match the data in the table. Fails if there is a record with a duplicate key that is not identical. Works only with read-write records. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYDELETE = 6; // Remove a row from the table. You must first call the MsiViewFetch function with the same record. Fails if the row has been deleted. Works only with read-write records. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYINSERTTEMPORARY = 7; // Inserts a temporary record. The information is not persistent. Fails if a row with the same primary key exists. Works only with read-write records. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYVALIDATE = 8; // Validates a record. Does not validate across joins. You must first call the MsiViewFetch function with the same record. Obtain validation errors with MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYVALIDATENEW = 9; // Validate a new record. Does not validate across joins. Checks for duplicate keys. Obtain validation errors by calling MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYVALIDATEFIELD = 10; // Validates fields of a fetched or new record. Can validate one or more fields of an incomplete record. Obtain validation errors by calling MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. + internal const int MSIMODIFYVALIDATEDELETE = 11; // Validates a record that will be deleted later. You must first call MsiViewFetch. Fails if another row refers to the primary keys of this row. Validation does not check for the existence of the primary keys of this row in properties or strings. Does not check if a column is a foreign key to multiple tables. Obtain validation errors by calling MsiViewGetError. Works with read-write and read-only records. This mode cannot be used with a view containing joins. + + internal const uint VTI2 = 2; + internal const uint VTI4 = 3; + internal const uint VTLPWSTR = 30; + internal const uint VTFILETIME = 64; + + internal const int MSICOLINFONAMES = 0; // return column names + internal const int MSICOLINFOTYPES = 1; // return column definitions, datatype code followed by width + } +} diff --git a/src/WixToolset.Data/NonClosingStreamWrapper.cs b/src/WixToolset.Data/NonClosingStreamWrapper.cs new file mode 100644 index 00000000..53d17d4d --- /dev/null +++ b/src/WixToolset.Data/NonClosingStreamWrapper.cs @@ -0,0 +1,105 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.IO; + + /// + /// Wrapper around stream to prevent other streams (like BinaryReader/Writer) from prematurely + /// closing a parent stream. + /// + internal class NonClosingStreamWrapper : Stream + { + private Stream stream; + + public NonClosingStreamWrapper(Stream stream) + { + this.stream = stream; + } + + public override bool CanRead { get { return this.stream.CanRead; } } + + public override bool CanSeek { get { return this.stream.CanSeek; } } + + public override bool CanTimeout { get { return this.stream.CanTimeout; } } + + public override bool CanWrite { get { return this.stream.CanWrite; } } + + public override long Length { get { return this.stream.Length; } } + + public override long Position { get { return this.stream.Position; } set { this.stream.Position = value; } } + + public override int ReadTimeout { get { return this.stream.ReadTimeout; } set { this.stream.ReadTimeout = value; } } + + public override int WriteTimeout { get { return this.stream.WriteTimeout; } set { this.stream.WriteTimeout = value; } } + + public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) + { + return this.stream.BeginRead(buffer, offset, count, callback, state); + } + + public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) + { + return this.stream.BeginWrite(buffer, offset, count, callback, state); + } + + public override void Close() + { + // Do not pass through the call since this is what we are overriding. + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + this.stream.Flush(); + } + } + + public override int EndRead(IAsyncResult asyncResult) + { + return this.stream.EndRead(asyncResult); + } + + public override void EndWrite(IAsyncResult asyncResult) + { + this.stream.EndWrite(asyncResult); + } + + public override void Flush() + { + this.stream.Flush(); + } + + public override int Read(byte[] buffer, int offset, int count) + { + return this.stream.Read(buffer, offset, count); + } + + public override int ReadByte() + { + return this.stream.ReadByte(); + } + + public override long Seek(long offset, SeekOrigin origin) + { + return this.stream.Seek(offset, origin); + } + + public override void SetLength(long value) + { + this.stream.SetLength(value); + } + + public override void Write(byte[] buffer, int offset, int count) + { + this.stream.Write(buffer, offset, count); + } + + public override void WriteByte(byte value) + { + this.stream.WriteByte(value); + } + } +} diff --git a/src/WixToolset.Data/ObjectField.cs b/src/WixToolset.Data/ObjectField.cs new file mode 100644 index 00000000..42ef111b --- /dev/null +++ b/src/WixToolset.Data/ObjectField.cs @@ -0,0 +1,183 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using System.Globalization; + using System.Xml; + + /// + /// Field containing data for an object column in a row. + /// + public sealed class ObjectField : Field + { + /// + /// Instantiates a new Field. + /// + /// Column definition for this field. + internal ObjectField(ColumnDefinition columnDefinition) : + base(columnDefinition) + { + } + + /// + /// Gets or sets the index of the embedded file in a library. + /// + /// The index of the embedded file. + public int? EmbeddedFileIndex { get; set; } + + /// + /// Gets or sets the previous index of the embedded file in the library. + /// + /// The previous index of the embedded file. + public int? PreviousEmbeddedFileIndex { get; set; } + + /// + /// Gets or sets the path to the embedded cabinet of the previous file. + /// + /// The path of the cabinet containing the previous file. + public Uri PreviousBaseUri { get; set; } + + /// + /// Gets the base URI of the object field. + /// + /// The base URI of the object field. + public Uri BaseUri { get; private set; } + + /// + /// Gets or sets the unresolved data for this field. + /// + /// Unresolved Data in the field. + public string UnresolvedData { get; set; } + + /// + /// Gets or sets the unresolved previous data. + /// + /// The unresolved previous data. + public string UnresolvedPreviousData { get; set; } + + /// + /// Parse a field from the xml. + /// + /// XmlReader where the intermediate is persisted. + internal override void Read(XmlReader reader) + { + Debug.Assert("field" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + + this.BaseUri = new Uri(reader.BaseURI); + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "cabinetFileId": + this.EmbeddedFileIndex = Convert.ToInt32(reader.Value); + break; + case "modified": + this.Modified = reader.Value.Equals("yes"); + break; + case "previousData": + this.PreviousData = reader.Value; + break; + case "unresolvedPreviousData": + this.UnresolvedPreviousData = reader.Value; + break; + case "unresolvedData": + this.UnresolvedData = reader.Value; + break; + case "previousCabinetFileId": + this.PreviousEmbeddedFileIndex = Convert.ToInt32(reader.Value); + break; + } + } + + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + throw new XmlException(); + case XmlNodeType.CDATA: + case XmlNodeType.Text: + if (0 < reader.Value.Length) + { + this.Data = reader.Value; + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + } + + /// + /// Persists a field in an XML format. + /// + /// XmlWriter where the Field should persist itself as XML. + internal override void Write(XmlWriter writer) + { + writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); + + if (this.EmbeddedFileIndex.HasValue) + { + writer.WriteStartAttribute("cabinetFileId"); + writer.WriteValue(this.EmbeddedFileIndex); + writer.WriteEndAttribute(); + } + + if (this.Modified) + { + writer.WriteAttributeString("modified", "yes"); + } + + if (null != this.UnresolvedPreviousData) + { + writer.WriteAttributeString("unresolvedPreviousData", this.UnresolvedPreviousData); + } + + if (null != this.PreviousData) + { + writer.WriteAttributeString("previousData", this.PreviousData); + } + + if (null != this.UnresolvedData) + { + writer.WriteAttributeString("unresolvedData", this.UnresolvedData); + } + + if (this.PreviousEmbeddedFileIndex.HasValue) + { + writer.WriteStartAttribute("previousCabinetFileId"); + writer.WriteValue(this.PreviousEmbeddedFileIndex); + writer.WriteEndAttribute(); + } + + // Convert the data to a string that will persist nicely (nulls as String.Empty). + string text = Convert.ToString(this.Data, CultureInfo.InvariantCulture); + if (this.Column.UseCData) + { + writer.WriteCData(text); + } + else + { + writer.WriteString(text); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/Output.cs b/src/WixToolset.Data/Output.cs new file mode 100644 index 00000000..b2a21c6c --- /dev/null +++ b/src/WixToolset.Data/Output.cs @@ -0,0 +1,394 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Globalization; + using System.IO; + using System.Linq; + using System.Xml; + + /// + /// Output is generated by the linker. + /// + public sealed class Output + { + public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixout"; + private static readonly Version CurrentVersion = new Version("4.0.0.0"); + + private Section entrySection; + + /// + /// Creates a new empty output object. + /// + /// The source line information for the output. + public Output(SourceLineNumber sourceLineNumbers) + { + this.Sections = new List
(); + this.SourceLineNumbers = sourceLineNumbers; + this.SubStorages = new List(); + this.Tables = new TableIndexedCollection(); + } + + /// + /// Gets the entry section for the output + /// + /// Entry section for the output. + public Section EntrySection + { + get + { + return this.entrySection; + } + + set + { + this.entrySection = value; + this.Codepage = value.Codepage; + + switch (this.entrySection.Type) + { + case SectionType.Bundle: + this.Type = OutputType.Bundle; + break; + case SectionType.Product: + this.Type = OutputType.Product; + break; + case SectionType.Module: + this.Type = OutputType.Module; + break; + case SectionType.PatchCreation: + this.Type = OutputType.PatchCreation; + break; + case SectionType.Patch: + this.Type = OutputType.Patch; + break; + default: + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_UnexpectedEntrySectionType, this.entrySection.Type)); + } + } + } + + /// + /// Gets the type of the output. + /// + /// Type of the output. + public OutputType Type { get; set; } + + /// + /// Gets or sets the codepage for this output. + /// + /// Codepage of the output. + public int Codepage { get; set; } + + /// + /// Gets the sections contained in the output. + /// + /// Sections in the output. + public ICollection
Sections { get; private set; } + + /// + /// Gets the source line information for this output. + /// + /// The source line information for this output. + public SourceLineNumber SourceLineNumbers { get; private set; } + + /// + /// Gets the substorages in this output. + /// + /// The substorages in this output. + public ICollection SubStorages { get; private set; } + + /// + /// Gets the tables contained in this output. + /// + /// Collection of tables. + public TableIndexedCollection Tables { get; private set; } + + /// + /// Gets the output type corresponding to a given output filename extension. + /// + /// Case-insensitive output filename extension. + /// Output type for the extension. + public static OutputType GetOutputType(string extension) + { + if (extension.Equals(".exe", StringComparison.OrdinalIgnoreCase)) + { + return OutputType.Bundle; + } + if (extension.Equals(".msi", StringComparison.OrdinalIgnoreCase)) + { + return OutputType.Product; + } + else if (extension.Equals(".msm", StringComparison.OrdinalIgnoreCase)) + { + return OutputType.Module; + } + else if (extension.Equals(".msp", StringComparison.OrdinalIgnoreCase)) + { + return OutputType.Patch; + } + else if (extension.Equals(".mst", StringComparison.OrdinalIgnoreCase)) + { + return OutputType.Transform; + } + else if (extension.Equals(".pcp", StringComparison.OrdinalIgnoreCase)) + { + return OutputType.PatchCreation; + } + else + { + return OutputType.Unknown; + } + } + + /// + /// Gets the filename extension corresponding to a given output type. + /// + /// One of the WiX output types. + /// Filename extension for the output type, for example ".msi". + public static string GetExtension(OutputType type) + { + switch (type) + { + case OutputType.Bundle: + return ".exe"; + case OutputType.Product: + return ".msi"; + case OutputType.Module: + return ".msm"; + case OutputType.Patch: + return ".msp"; + case OutputType.Transform: + return ".mst"; + case OutputType.PatchCreation: + return ".pcp"; + default: + return ".wix"; + } + } + + /// + /// Loads an output from a path on disk. + /// + /// Path to output file saved on disk. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static Output Load(string path, bool suppressVersionCheck) + { + using (FileStream stream = File.OpenRead(path)) + using (FileStructure fs = FileStructure.Read(stream)) + { + if (FileFormat.Wixout != fs.FileFormat) + { + throw new WixUnexpectedFileFormatException(path, FileFormat.Wixout, fs.FileFormat); + } + + Uri uri = new Uri(Path.GetFullPath(path)); + using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) + { + try + { + reader.MoveToContent(); + return Output.Read(reader, suppressVersionCheck); + } + catch (XmlException xe) + { + throw new WixCorruptFileException(path, fs.FileFormat, xe); + } + } + } + } + + /// + /// Saves an output to a path on disk. + /// + /// Path to save output file to on disk. + public void Save(string path) + { + Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); + + using (FileStream stream = File.Create(path)) + using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixout, null)) + using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) + { + writer.WriteStartDocument(); + this.Write(writer); + writer.WriteEndDocument(); + } + } + + /// + /// Processes an XmlReader and builds up the output object. + /// + /// Reader to get data from. + /// Suppresses wix.dll version mismatch check. + /// The Output represented by the Xml. + internal static Output Read(XmlReader reader, bool suppressVersionCheck) + { + if (!reader.LocalName.Equals("wixOutput")) + { + throw new XmlException(); + } + + bool empty = reader.IsEmptyElement; + Output output = new Output(SourceLineNumber.CreateFromUri(reader.BaseURI)); + SectionType sectionType = SectionType.Unknown; + Version version = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "codepage": + output.Codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture.NumberFormat); + break; + case "type": + switch (reader.Value) + { + case "Bundle": + output.Type = OutputType.Bundle; + sectionType = SectionType.Bundle; + break; + case "Module": + output.Type = OutputType.Module; + sectionType = SectionType.Module; + break; + case "Patch": + output.Type = OutputType.Patch; + break; + case "PatchCreation": + output.Type = OutputType.PatchCreation; + sectionType = SectionType.PatchCreation; + break; + case "Product": + output.Type = OutputType.Product; + sectionType = SectionType.Product; + break; + case "Transform": + output.Type = OutputType.Transform; + break; + default: + throw new XmlException(); + } + break; + case "version": + version = new Version(reader.Value); + break; + } + } + + if (!suppressVersionCheck && null != version && !Output.CurrentVersion.Equals(version)) + { + throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString())); + } + + // create a section for all the rows to belong to + output.entrySection = new Section(null, sectionType, output.Codepage); + + // loop through the rest of the xml building up the Output object + TableDefinitionCollection tableDefinitions = null; + List tables = new List
(); + if (!empty) + { + bool done = false; + + // loop through all the fields in a row + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "subStorage": + output.SubStorages.Add(SubStorage.Read(reader)); + break; + case "table": + if (null == tableDefinitions) + { + throw new XmlException(); + } + tables.Add(Table.Read(reader, output.entrySection, tableDefinitions)); + break; + case "tableDefinitions": + tableDefinitions = TableDefinitionCollection.Read(reader); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + output.Tables = new TableIndexedCollection(tables); + return output; + } + + /// + /// Ensure this output contains a particular table. + /// + /// Definition of the table that should exist. + /// Optional section to use for the table. If one is not provided, the entry section will be used. + /// The table in this output. + public Table EnsureTable(TableDefinition tableDefinition, Section section = null) + { + Table table; + if (!this.Tables.TryGetTable(tableDefinition.Name, out table)) + { + table = new Table(section ?? this.entrySection, tableDefinition); + this.Tables.Add(table); + } + + return table; + } + + /// + /// Persists an output in an XML format. + /// + /// XmlWriter where the Output should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("wixOutput", XmlNamespaceUri); + + writer.WriteAttributeString("type", this.Type.ToString()); + + if (0 != this.Codepage) + { + writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); + } + + writer.WriteAttributeString("version", Output.CurrentVersion.ToString()); + + // Collect all the table definitions and write them. + TableDefinitionCollection tableDefinitions = new TableDefinitionCollection(); + foreach (Table table in this.Tables) + { + tableDefinitions.Add(table.Definition); + } + tableDefinitions.Write(writer); + + foreach (Table table in this.Tables.OrderBy(t => t.Name)) + { + table.Write(writer); + } + + foreach (SubStorage subStorage in this.SubStorages) + { + subStorage.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/OutputType.cs b/src/WixToolset.Data/OutputType.cs new file mode 100644 index 00000000..74381737 --- /dev/null +++ b/src/WixToolset.Data/OutputType.cs @@ -0,0 +1,31 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Various types of output. + /// + public enum OutputType + { + /// Unknown output type. + Unknown, + + /// Bundle output type. + Bundle, + + /// Module output type. + Module, + + /// Patch output type. + Patch, + + /// Patch Creation output type. + PatchCreation, + + /// Product output type. + Product, + + /// Transform output type. + Transform + } +} diff --git a/src/WixToolset.Data/PackagingType.cs b/src/WixToolset.Data/PackagingType.cs new file mode 100644 index 00000000..a50f1236 --- /dev/null +++ b/src/WixToolset.Data/PackagingType.cs @@ -0,0 +1,11 @@ +// 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. + +namespace WixToolset.Data +{ + public enum PackagingType + { + Unknown, + Embedded, + External, + } +} diff --git a/src/WixToolset.Data/Pdb.cs b/src/WixToolset.Data/Pdb.cs new file mode 100644 index 00000000..03c3ddbb --- /dev/null +++ b/src/WixToolset.Data/Pdb.cs @@ -0,0 +1,163 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.IO; + using System.Xml; + + /// + /// Pdb generated by the binder. + /// + public sealed class Pdb + { + public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixpdb"; + private static readonly Version CurrentVersion = new Version("4.0.0.0"); + + /// + /// Creates a new empty pdb object. + /// + /// The source line information for the pdb. + public Pdb() + { + } + + /// + /// Gets or sets the output that is a part of this pdb. + /// + /// Type of the output. + public Output Output { get; set; } + + /// + /// Loads a pdb from a path on disk. + /// + /// Path to pdb file saved on disk. + /// Suppresses wix.dll version mismatch check. + /// Pdb pdb. + public static Pdb Load(string path, bool suppressVersionCheck) + { + using (FileStream stream = File.OpenRead(path)) + using (FileStructure fs = FileStructure.Read(stream)) + { + if (FileFormat.Wixpdb != fs.FileFormat) + { + throw new WixUnexpectedFileFormatException(path, FileFormat.Wixpdb, fs.FileFormat); + } + + Uri uri = new Uri(Path.GetFullPath(path)); + using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) + { + try + { + reader.MoveToContent(); + return Pdb.Read(reader, suppressVersionCheck); + } + catch (XmlException xe) + { + throw new WixCorruptFileException(path, fs.FileFormat, xe); + } + } + } + } + + /// + /// Saves a pdb to a path on disk. + /// + /// Path to save pdb file to on disk. + public void Save(string path) + { + Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); + + using (FileStream stream = File.Create(path)) + using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixpdb, null)) + using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) + { + writer.WriteStartDocument(); + this.Write(writer); + writer.WriteEndDocument(); + } + } + + /// + /// Processes an XmlReader and builds up the pdb object. + /// + /// Reader to get data from. + /// Suppresses wix.dll version mismatch check. + /// The Pdb represented by the Xml. + internal static Pdb Read(XmlReader reader, bool suppressVersionCheck) + { + if ("wixPdb" != reader.LocalName) + { + throw new XmlException(); + } + + bool empty = reader.IsEmptyElement; + Pdb pdb = new Pdb(); + Version version = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "version": + version = new Version(reader.Value); + break; + } + } + + if (!suppressVersionCheck && null != version && !Pdb.CurrentVersion.Equals(version)) + { + throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString())); + } + + // loop through the rest of the pdb building up the Output object + if (!empty) + { + bool done = false; + + // loop through all the fields in a row + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "wixOutput": + pdb.Output = Output.Read(reader, suppressVersionCheck); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return pdb; + } + + /// + /// Persists a pdb in an XML format. + /// + /// XmlWriter where the Pdb should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("wixPdb", XmlNamespaceUri); + + writer.WriteAttributeString("version", Pdb.CurrentVersion.ToString()); + + this.Output.Write(writer); + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/Platform.cs b/src/WixToolset.Data/Platform.cs new file mode 100644 index 00000000..4edc9af0 --- /dev/null +++ b/src/WixToolset.Data/Platform.cs @@ -0,0 +1,22 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Platforms supported by compiler. + /// + public enum Platform + { + /// x86. + X86, + + /// x64. + X64, + + /// ia64. + IA64, + + /// arm. + ARM + } +} diff --git a/src/WixToolset.Data/Row.cs b/src/WixToolset.Data/Row.cs new file mode 100644 index 00000000..4ebddc06 --- /dev/null +++ b/src/WixToolset.Data/Row.cs @@ -0,0 +1,626 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Diagnostics.CodeAnalysis; + using System.Globalization; + using System.Text; + using System.Text.RegularExpressions; + using System.Xml; + + /// + /// Row containing data for a table. + /// + public class Row + { + private static long rowCount; + + private Field[] fields; + + /// + /// Creates a row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + /// The compiler should use this constructor exclusively. + public Row(SourceLineNumber sourceLineNumbers, Table table) + : this(sourceLineNumbers, table.Definition) + { + this.Table = table; + } + + /// + /// Creates a row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row should get its column definitions from. + /// This constructor is used in cases where there isn't a clear owner of the row. The linker uses this constructor for the rows it generates. + public Row(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) + { + this.Number = rowCount++; + this.SourceLineNumbers = sourceLineNumbers; + this.fields = new Field[tableDefinition.Columns.Count]; + this.TableDefinition = tableDefinition; + + for (int i = 0; i < this.fields.Length; ++i) + { + this.fields[i] = Field.Create(this.TableDefinition.Columns[i]); + } + } + + /// + /// Creates a shallow copy of a row from another row. + /// + /// The row the data is copied from. + protected Row(Row source) + { + this.Table = source.Table; + this.TableDefinition = source.TableDefinition; + this.Number = source.Number; + this.Access = source.Access; + this.Operation = source.Operation; + this.Redundant = source.Redundant; + this.SectionId = source.SectionId; + this.SourceLineNumbers = source.SourceLineNumbers; + this.fields = source.fields; + } + + /// + /// Gets or sets the access to the row's primary key. + /// + /// The row access modifier. + public AccessModifier Access { get; set; } + + /// + /// Gets or sets the row transform operation. + /// + /// The row transform operation. + public RowOperation Operation { get; set; } + + /// + /// Gets or sets wether the row is a duplicate of another row thus redundant. + /// + public bool Redundant { get; set; } + + /// + /// Gets the section for the row. + /// + /// Section for the row. + public Section Section { get { return (null == this.Table) ? null : this.Table.Section; } } + + /// + /// Gets or sets the SectionId property on the row. + /// + /// The SectionId property on the row. + public string SectionId { get; set; } + + /// + /// Gets the source file and line number for the row. + /// + /// Source file and line number. + public SourceLineNumber SourceLineNumbers { get; private set; } + + /// + /// Gets the table this row belongs to. + /// + /// null if Row does not belong to a Table, or owner Table otherwise. + public Table Table { get; private set; } + + /// + /// Gets the table definition for this row. + /// + /// A Row always has a TableDefinition, even if the Row does not belong to a Table. + /// TableDefinition for Row. + public TableDefinition TableDefinition { get; private set; } + + /// + /// Gets the fields contained by this row. + /// + /// Array of field objects + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + public Field[] Fields + { + get { return this.fields; } + } + + /// + /// Gets the unique number for the row. + /// + /// Number for row. + public long Number { get; private set; } + + /// + /// Gets or sets the value of a particular field in the row. + /// + /// field index. + /// Value of a field in the row. + public object this[int field] + { + get { return this.fields[field].Data; } + set { this.fields[field].Data = value; } + } + + /// + /// Gets the field as an integer. + /// + /// Field's data as an integer. + public int FieldAsInteger(int field) + { + return this.fields[field].AsInteger(); + } + + /// + /// Gets the field as an integer that could be null. + /// + /// Field's data as an integer that could be null. + public int? FieldAsNullableInteger(int field) + { + return this.fields[field].AsNullableInteger(); + } + + /// + /// Gets the field as a string. + /// + /// Field's data as a string. + public string FieldAsString(int field) + { + return this.fields[field].AsString(); + } + + /// + /// Sets the value of a particular field in the row without validating. + /// + /// field index. + /// Value of a field in the row. + /// True if successful, false if validation failed. + public bool BestEffortSetField(int field, object value) + { + return this.fields[field].BestEffortSet(value); + } + + /// + /// Get the value used to represent the row in a keyed row collection. + /// + /// Primary key or row number if no primary key is available. + public string GetKey() + { + return this.GetPrimaryKey() ?? Convert.ToString(this.Number, CultureInfo.InvariantCulture); + } + + /// + /// Get the primary key of this row. + /// + /// Delimiter character for multiple column primary keys. + /// The primary key or null if the row's table has no primary key columns. + public string GetPrimaryKey(char delimiter = '/') + { + return this.GetPrimaryKey(delimiter, String.Empty); + } + + /// + /// Get the primary key of this row. + /// + /// Delimiter character for multiple column primary keys. + /// String to represent null values in the primary key. + /// The primary key or null if the row's table has no primary key columns. + public string GetPrimaryKey(char delimiter, string nullReplacement) + { + bool foundPrimaryKey = false; + StringBuilder primaryKey = new StringBuilder(); + + foreach (Field field in this.fields) + { + if (field.Column.PrimaryKey) + { + if (foundPrimaryKey) + { + primaryKey.Append(delimiter); + } + + primaryKey.Append((null == field.Data) ? nullReplacement : Convert.ToString(field.Data, CultureInfo.InvariantCulture)); + + foundPrimaryKey = true; + } + else // primary keys must be the first columns of a row so the first non-primary key means we can stop looking. + { + break; + } + } + + return foundPrimaryKey ? primaryKey.ToString() : null; + } + + /// + /// Returns true if the specified field is null or an empty string. + /// + /// Index of the field to check. + /// true if the specified field is null or an empty string, false otherwise. + public bool IsColumnEmpty(int field) + { + if (null == this.fields[field].Data) + { + return true; + } + + string dataString = this.fields[field].Data as string; + if (null != dataString && 0 == dataString.Length) + { + return true; + } + + return false; + } + + /// + /// Tests if the passed in row is identical. + /// + /// Row to compare against. + /// True if two rows are identical. + public bool IsIdentical(Row row) + { + bool identical = (this.TableDefinition.Name == row.TableDefinition.Name && this.fields.Length == row.fields.Length); + + for (int i = 0; identical && i < this.fields.Length; ++i) + { + if (!(this.fields[i].IsIdentical(row.fields[i]))) + { + identical = false; + } + } + + return identical; + } + + /// + /// Returns a string representation of the Row. + /// + /// A string representation of the Row. + public override string ToString() + { + return String.Join("/", (object[])this.fields); + } + + /// + /// Creates a Row from the XmlReader. + /// + /// Reader to get data from. + /// Table for this row. + /// New row object. + internal static Row Read(XmlReader reader, Table table) + { + Debug.Assert("row" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + AccessModifier access = AccessModifier.Public; + RowOperation operation = RowOperation.None; + bool redundant = false; + string sectionId = null; + SourceLineNumber sourceLineNumbers = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "access": + access = (AccessModifier)Enum.Parse(typeof(AccessModifier), reader.Value, true); + break; + case "op": + operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); + break; + case "redundant": + redundant = reader.Value.Equals("yes"); + break; + case "sectionId": + sectionId = reader.Value; + break; + case "sourceLineNumber": + sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); + break; + } + } + + Row row = table.CreateRow(sourceLineNumbers); + row.Access = access; + row.Operation = operation; + row.Redundant = redundant; + row.SectionId = sectionId; + + // loop through all the fields in a row + if (!empty) + { + bool done = false; + int field = 0; + + // loop through all the fields in a row + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "field": + if (row.Fields.Length <= field) + { + if (!reader.IsEmptyElement) + { + throw new XmlException(); + } + } + else + { + row.fields[field].Read(reader); + } + ++field; + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return row; + } + + /// + /// Returns the row in a format usable in IDT files. + /// + /// Whether to keep columns added in a transform. + /// String with tab delimited field values. + internal string ToIdtDefinition(bool keepAddedColumns) + { + bool first = true; + StringBuilder sb = new StringBuilder(); + + foreach (Field field in this.fields) + { + // Conditionally keep columns added in a transform; otherwise, + // break because columns can only be added at the end. + if (field.Column.Added && !keepAddedColumns) + { + break; + } + + if (first) + { + first = false; + } + else + { + sb.Append('\t'); + } + + sb.Append(field.ToIdtValue()); + } + sb.Append("\r\n"); + + return sb.ToString(); + } + + /// + /// Gets the modularized version of the field data. + /// + /// The field to modularize. + /// String containing the GUID of the Merge Module to append the the field value, if appropriate. + /// Optional collection of identifiers that should not be modularized. + /// moduleGuid is expected to be null when not being used to compile a Merge Module. + /// The modularized version of the field data. + internal string GetModularizedValue(Field field, string modularizationGuid, ISet suppressModularizationIdentifiers) + { + Debug.Assert(null != field.Data && 0 < ((string)field.Data).Length); + string fieldData = Convert.ToString(field.Data, CultureInfo.InvariantCulture); + + if (null != modularizationGuid && ColumnModularizeType.None != field.Column.ModularizeType && !(WindowsInstallerStandard.IsStandardAction(fieldData) || WindowsInstallerStandard.IsStandardProperty(fieldData))) + { + StringBuilder sb; + int start; + ColumnModularizeType modularizeType = field.Column.ModularizeType; + + // special logic for the ControlEvent table's Argument column + // this column requires different modularization methods depending upon the value of the Event column + if (ColumnModularizeType.ControlEventArgument == field.Column.ModularizeType) + { + switch (this[2].ToString()) + { + case "CheckExistingTargetPath": // redirectable property name + case "CheckTargetPath": + case "DoAction": // custom action name + case "NewDialog": // dialog name + case "SelectionBrowse": + case "SetTargetPath": + case "SpawnDialog": + case "SpawnWaitDialog": + if (Common.IsIdentifier(fieldData)) + { + modularizeType = ColumnModularizeType.Column; + } + else + { + modularizeType = ColumnModularizeType.Property; + } + break; + default: // formatted + modularizeType = ColumnModularizeType.Property; + break; + } + } + else if (ColumnModularizeType.ControlText == field.Column.ModularizeType) + { + // icons are stored in the Binary table, so they get column-type modularization + if (("Bitmap" == this[2].ToString() || "Icon" == this[2].ToString()) && Common.IsIdentifier(fieldData)) + { + modularizeType = ColumnModularizeType.Column; + } + else + { + modularizeType = ColumnModularizeType.Property; + } + } + + switch (modularizeType) + { + case ColumnModularizeType.Column: + // ensure the value is an identifier (otherwise it shouldn't be modularized this way) + if (!Common.IsIdentifier(fieldData)) + { + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_CannotModularizeIllegalID, fieldData)); + } + + // if we're not supposed to suppress modularization of this identifier + if (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) + { + fieldData = String.Concat(fieldData, ".", modularizationGuid); + } + break; + + case ColumnModularizeType.Property: + case ColumnModularizeType.Condition: + Regex regex; + if (ColumnModularizeType.Property == modularizeType) + { + regex = new Regex(@"\[(?[#$!]?[a-zA-Z_][a-zA-Z0-9_\.]*)]", RegexOptions.Singleline | RegexOptions.ExplicitCapture); + } + else + { + Debug.Assert(ColumnModularizeType.Condition == modularizeType); + + // This heinous looking regular expression is actually quite an elegant way + // to shred the entire condition into the identifiers that need to be + // modularized. Let's break it down piece by piece: + // + // 1. Look for the operators: NOT, EQV, XOR, OR, AND, IMP (plus a space). Note that the + // regular expression is case insensitive so we don't have to worry about + // all the permutations of these strings. + // 2. Look for quoted strings. Quoted strings are just text and are ignored + // outright. + // 3. Look for environment variables. These look like identifiers we might + // otherwise be interested in but start with a percent sign. Like quoted + // strings these enviroment variable references are ignored outright. + // 4. Match all identifiers that are things that need to be modularized. Note + // the special characters (!, $, ?, &) that denote Component and Feature states. + regex = new Regex(@"NOT\s|EQV\s|XOR\s|OR\s|AND\s|IMP\s|"".*?""|%[a-zA-Z_][a-zA-Z0-9_\.]*|(?[!$\?&]?[a-zA-Z_][a-zA-Z0-9_\.]*)", RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); + + // less performant version of the above with captures showing where everything lives + // regex = new Regex(@"(?NOT|EQV|XOR|OR|AND|IMP)|(?"".*?"")|(?%[a-zA-Z_][a-zA-Z0-9_\.]*)|(?[!$\?&]?[a-zA-Z_][a-zA-Z0-9_\.]*)",RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); + } + + MatchCollection matches = regex.Matches(fieldData); + + sb = new StringBuilder(fieldData); + + // notice how this code walks backward through the list + // because it modifies the string as we through it + for (int i = matches.Count - 1; 0 <= i; i--) + { + Group group = matches[i].Groups["identifier"]; + if (group.Success) + { + string identifier = group.Value; + if (!WindowsInstallerStandard.IsStandardProperty(identifier) && (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(identifier))) + { + sb.Insert(group.Index + group.Length, '.'); + sb.Insert(group.Index + group.Length + 1, modularizationGuid); + } + } + } + + fieldData = sb.ToString(); + break; + + case ColumnModularizeType.CompanionFile: + // if we're not supposed to ignore this identifier and the value does not start with + // a digit, we must have a companion file so modularize it + if ((null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) && + 0 < fieldData.Length && !Char.IsDigit(fieldData, 0)) + { + fieldData = String.Concat(fieldData, ".", modularizationGuid); + } + break; + + case ColumnModularizeType.Icon: + if (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) + { + start = fieldData.LastIndexOf(".", StringComparison.Ordinal); + if (-1 == start) + { + fieldData = String.Concat(fieldData, ".", modularizationGuid); + } + else + { + fieldData = String.Concat(fieldData.Substring(0, start), ".", modularizationGuid, fieldData.Substring(start)); + } + } + break; + + case ColumnModularizeType.SemicolonDelimited: + string[] keys = fieldData.Split(';'); + for (int i = 0; i < keys.Length; ++i) + { + keys[i] = String.Concat(keys[i], ".", modularizationGuid); + } + fieldData = String.Join(";", keys); + break; + } + } + + return fieldData; + } + + /// + /// Persists a row in an XML format. + /// + /// XmlWriter where the Row should persist itself as XML. + [SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "Changing the way this string normalizes would result " + + "in a change to the way intermediate files are generated, potentially causing extra churn in patches on an MSI built from an older version of WiX. " + + "Furthermore, there is no security hole here, as the strings won't need to make a round trip")] + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("row", Intermediate.XmlNamespaceUri); + + if (AccessModifier.Public != this.Access) + { + writer.WriteAttributeString("access", this.Access.ToString().ToLowerInvariant()); + } + + if (RowOperation.None != this.Operation) + { + writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); + } + + if (this.Redundant) + { + writer.WriteAttributeString("redundant", "yes"); + } + + if (null != this.SectionId) + { + writer.WriteAttributeString("sectionId", this.SectionId); + } + + if (null != this.SourceLineNumbers) + { + writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); + } + + for (int i = 0; i < this.fields.Length; ++i) + { + this.fields[i].Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/RowDictionary.cs b/src/WixToolset.Data/RowDictionary.cs new file mode 100644 index 00000000..a0cc5302 --- /dev/null +++ b/src/WixToolset.Data/RowDictionary.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + + /// + /// A dictionary of rows. Unlike the this + /// will throw when multiple rows with the same key are added. + /// + public sealed class RowDictionary : Dictionary where T : Row + { + /// + /// Creates an empty . + /// + public RowDictionary() + : base(StringComparer.InvariantCulture) + { + } + + /// + /// Creates and populates a with the rows from the given enumerator. + /// + /// Rows to add. + public RowDictionary(IEnumerable rows) + : this() + { + foreach (T row in rows) + { + this.Add(row); + } + } + + /// + /// Creates and populates a with the rows from the given . + /// + /// The table to index. + /// + /// Rows added to the index are not automatically added to the given . + /// + public RowDictionary(Table table) + : this() + { + if (null != table) + { + foreach (T row in table.Rows) + { + this.Add(row); + } + } + } + + /// + /// Adds a row to the dictionary using the row key. + /// + /// Row to add to the dictionary. + public void Add(T row) + { + this.Add(row.GetKey(), row); + } + + /// + /// Gets the row by integer key. + /// + /// Integer key to look up. + /// Row or null if key is not found. + public T Get(int key) + { + return this.Get(key.ToString()); + } + + /// + /// Gets the row by string key. + /// + /// String key to look up. + /// Row or null if key is not found. + public T Get(string key) + { + T result; + return this.TryGetValue(key, out result) ? result : null; + } + } +} diff --git a/src/WixToolset.Data/RowIndexedList.cs b/src/WixToolset.Data/RowIndexedList.cs new file mode 100644 index 00000000..27c43a81 --- /dev/null +++ b/src/WixToolset.Data/RowIndexedList.cs @@ -0,0 +1,301 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + + /// + /// A list of rows indexed by their primary key. Unlike a + /// this indexed list will track rows in their added order and will allow rows with + /// duplicate keys to be added to the list, although only the first row will be indexed. + /// + public sealed class RowIndexedList : IList where T : Row + { + private Dictionary index; + private List rows; + private List duplicates; + + /// + /// Creates an empty . + /// + public RowIndexedList() + { + this.index = new Dictionary(StringComparer.InvariantCulture); + this.rows = new List(); + this.duplicates = new List(); + } + + /// + /// Creates and populates a with the rows from the given enumerator. + /// + /// Rows to index. + public RowIndexedList(IEnumerable rows) + : this() + { + foreach (T row in rows) + { + this.Add(row); + } + } + + /// + /// Creates and populates a with the rows from the given . + /// + /// The table to index. + /// + /// Rows added to the index are not automatically added to the given . + /// + public RowIndexedList(Table table) + : this() + { + if (null != table) + { + foreach (T row in table.Rows) + { + this.Add(row); + } + } + } + + /// + /// Gets the duplicates in the list. + /// + public IEnumerable Duplicates { get { return this.duplicates; } } + + /// + /// Gets the row by integer key. + /// + /// Integer key to look up. + /// Row or null if key is not found. + public T Get(int key) + { + return this.Get(key.ToString()); + } + + /// + /// Gets the row by string key. + /// + /// String key to look up. + /// Row or null if key is not found. + public T Get(string key) + { + T result; + return this.TryGet(key, out result) ? result : null; + } + + /// + /// Gets the row by string key if it exists. + /// + /// Key of row to get. + /// Row found. + /// True if key was found otherwise false. + public bool TryGet(string key, out T row) + { + return this.index.TryGetValue(key, out row); + } + + /// + /// Tries to add a row as long as it would not create a duplicate. + /// + /// Row to add. + /// True if the row as added otherwise false. + public bool TryAdd(T row) + { + try + { + this.index.Add(row.GetKey(), row); + } + catch (ArgumentException) // if the key already exists, bail. + { + return false; + } + + this.rows.Add(row); + return true; + } + + /// + /// Adds a row to the list. If a row with the same key is already index, the row is + /// is not in the index but will still be part of the list and added to the duplicates + /// list. + /// + /// + public void Add(T row) + { + this.rows.Add(row); + try + { + this.index.Add(row.GetKey(), row); + } + catch (ArgumentException) // if the key already exists, we have a duplicate. + { + this.duplicates.Add(row); + } + } + + /// + /// Gets the index of a row. + /// + /// Iterates through the list of rows to find the index of a particular row. + /// Index of row or -1 if not found. + public int IndexOf(T row) + { + return this.rows.IndexOf(row); + } + + /// + /// Inserts a row at a particular index of the list. + /// + /// Index to insert the row after. + /// Row to insert. + public void Insert(int index, T row) + { + this.rows.Insert(index, row); + try + { + this.index.Add(row.GetKey(), row); + } + catch (ArgumentException) // if the key already exists, we have a duplicate. + { + this.duplicates.Add(row); + } + } + + /// + /// Removes a row from a particular index. + /// + /// Index to remove the row at. + public void RemoveAt(int index) + { + T row = this.rows[index]; + + this.rows.RemoveAt(index); + + T indexRow; + if (this.index.TryGetValue(row.GetKey(), out indexRow) && indexRow == row) + { + this.index.Remove(row.GetKey()); + } + else // only try to remove from duplicates if the row was not indexed (if it was indexed, it wasn't a dupe). + { + this.duplicates.Remove(row); + } + } + + /// + /// Gets or sets a row at the specified index. + /// + /// Index to get the row. + /// Row at specified index. + public T this[int index] + { + get + { + return this.rows[index]; + } + set + { + this.rows[index] = value; + try + { + this.index.Add(value.GetKey(), value); + } + catch (ArgumentException) // if the key already exists, we have a duplicate. + { + this.duplicates.Add(value); + } + } + } + + /// + /// Empties the list and it's index. + /// + public void Clear() + { + this.index.Clear(); + this.rows.Clear(); + this.duplicates.Clear(); + } + + /// + /// Searches the list for a row without using the index. + /// + /// Row to look for in the list. + /// True if the row is in the list, otherwise false. + public bool Contains(T row) + { + return this.rows.Contains(row); + } + + /// + /// Copies the rows of the list to an array. + /// + /// Array to copy the list into. + /// Index to start copying at. + public void CopyTo(T[] array, int arrayIndex) + { + this.rows.CopyTo(array, arrayIndex); + } + + /// + /// Number of rows in the list. + /// + public int Count + { + get { return this.rows.Count; } + } + + /// + /// Indicates whether the list is read-only. Always false. + /// + public bool IsReadOnly + { + get { return false; } + } + + /// + /// Removes a row from the list. Indexed rows will be removed but the colleciton will NOT + /// promote duplicates to the index automatically. The duplicate would also need to be removed + /// and re-added to be indexed. + /// + /// + /// + public bool Remove(T row) + { + bool removed = this.rows.Remove(row); + if (removed) + { + T indexRow; + if (this.index.TryGetValue(row.GetKey(), out indexRow) && indexRow == row) + { + this.index.Remove(row.GetKey()); + } + else // only try to remove from duplicates if the row was not indexed (if it was indexed, it wasn't a dupe). + { + this.duplicates.Remove(row); + } + } + + return removed; + } + + /// + /// Gets an enumerator over the whole list. + /// + /// List enumerator. + public IEnumerator GetEnumerator() + { + return this.rows.GetEnumerator(); + } + + /// + /// Gets an untyped enumerator over the whole list. + /// + /// Untyped list enumerator. + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return this.rows.GetEnumerator(); + } + } +} diff --git a/src/WixToolset.Data/RowOperation.cs b/src/WixToolset.Data/RowOperation.cs new file mode 100644 index 00000000..30dadd4e --- /dev/null +++ b/src/WixToolset.Data/RowOperation.cs @@ -0,0 +1,30 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// The row transform operations. + /// + public enum RowOperation + { + /// + /// No operation. + /// + None, + + /// + /// Added row. + /// + Add, + + /// + /// Deleted row. + /// + Delete, + + /// + /// Modified row. + /// + Modify + } +} diff --git a/src/WixToolset.Data/Rows/BBControlRow.cs b/src/WixToolset.Data/Rows/BBControlRow.cs new file mode 100644 index 00000000..d0f08662 --- /dev/null +++ b/src/WixToolset.Data/Rows/BBControlRow.cs @@ -0,0 +1,113 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System.Diagnostics.CodeAnalysis; + + /// + /// Specialization of a row for the Control table. + /// + public sealed class BBControlRow : Row + { + /// + /// Creates a Control row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Control row belongs to and should get its column definitions from. + public BBControlRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the dialog of the Control row. + /// + /// Primary key of the Control row. + public string Billboard + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the identifier for this Control row. + /// + /// Identifier for this Control row. + public string BBControl + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the type of the BBControl. + /// + /// Name of the BBControl. + [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] + public string Type + { + get { return this.Fields[2].AsString(); } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the X location of the BBControl. + /// + /// X location of the BBControl. + public string X + { + get { return this.Fields[3].AsString(); } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the Y location of the BBControl. + /// + /// Y location of the BBControl. + public string Y + { + get { return this.Fields[4].AsString(); } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the width of the BBControl. + /// + /// Width of the BBControl. + public string Width + { + get { return this.Fields[5].AsString(); } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the height of the BBControl. + /// + /// Height of the BBControl. + public string Height + { + get { return this.Fields[6].AsString(); } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets the attributes for the BBControl. + /// + /// Attributes for the BBControl. + public int Attributes + { + get { return (int)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + /// + /// Gets or sets the text of the BBControl. + /// + /// Text of the BBControl. + public string Text + { + get { return (string)this.Fields[8].Data; } + set { this.Fields[8].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/ComponentRow.cs b/src/WixToolset.Data/Rows/ComponentRow.cs new file mode 100644 index 00000000..3ff10175 --- /dev/null +++ b/src/WixToolset.Data/Rows/ComponentRow.cs @@ -0,0 +1,245 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using WixToolset.Data.Msi; + + /// + /// Specialization of a row for the Component table. + /// + public sealed class ComponentRow : Row + { + private string sourceFile; + + /// + /// Creates a Control row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Component row belongs to and should get its column definitions from. + public ComponentRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the identifier for this Component row. + /// + /// Identifier for this Component row. + public string Component + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the ComponentId for this Component row. + /// + /// guid for this Component row. + public string Guid + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the Directory_ of the Component. + /// + /// Directory of the Component. + public string Directory + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the local only attribute of the Component. + /// + /// Local only attribute of the component. + public bool IsLocalOnly + { + get { return MsiInterop.MsidbComponentAttributesLocalOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesLocalOnly); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesLocalOnly; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesLocalOnly; + } + } + } + + /// + /// Gets or sets the source only attribute of the Component. + /// + /// Source only attribute of the component. + public bool IsSourceOnly + { + get { return MsiInterop.MsidbComponentAttributesSourceOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSourceOnly); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSourceOnly; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSourceOnly; + } + } + } + + /// + /// Gets or sets the optional attribute of the Component. + /// + /// Optional attribute of the component. + public bool IsOptional + { + get { return MsiInterop.MsidbComponentAttributesOptional == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesOptional); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesOptional; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesOptional; + } + } + } + + /// + /// Gets or sets the registry key path attribute of the Component. + /// + /// Registry key path attribute of the component. + public bool IsRegistryKeyPath + { + get { return MsiInterop.MsidbComponentAttributesRegistryKeyPath == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesRegistryKeyPath); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesRegistryKeyPath; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesRegistryKeyPath; + } + } + } + + /// + /// Gets or sets the shared dll ref count attribute of the Component. + /// + /// Shared dll ref countattribute of the component. + public bool IsSharedDll + { + get { return MsiInterop.MsidbComponentAttributesSharedDllRefCount == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSharedDllRefCount); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSharedDllRefCount; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSharedDllRefCount; + } + } + } + + /// + /// Gets or sets the permanent attribute of the Component. + /// + /// Permanent attribute of the component. + public bool IsPermanent + { + get { return MsiInterop.MsidbComponentAttributesPermanent == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesPermanent); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesPermanent; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesPermanent; + } + } + } + + /// + /// Gets or sets the ODBC data source key path attribute of the Component. + /// + /// ODBC data source key path attribute of the component. + public bool IsOdbcDataSourceKeyPath + { + get { return MsiInterop.MsidbComponentAttributesODBCDataSource == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesODBCDataSource); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesODBCDataSource; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesODBCDataSource; + } + } + } + + /// + /// Gets or sets the 64 bit attribute of the Component. + /// + /// 64-bitness of the component. + public bool Is64Bit + { + get { return MsiInterop.MsidbComponentAttributes64bit == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributes64bit); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributes64bit; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributes64bit; + } + } + } + + /// + /// Gets or sets the condition of the Component. + /// + /// Condition of the Component. + public string Condition + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the key path of the Component. + /// + /// Key path of the Component. + public string KeyPath + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the source location to the file to fill in the Text of the control. + /// + /// Source location to the file to fill in the Text of the control. + public string SourceFile + { + get { return this.sourceFile; } + set { this.sourceFile = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/ContainerType.cs b/src/WixToolset.Data/Rows/ContainerType.cs new file mode 100644 index 00000000..55a74235 --- /dev/null +++ b/src/WixToolset.Data/Rows/ContainerType.cs @@ -0,0 +1,13 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Types of bundle packages. + /// + public enum ContainerType + { + Attached, + Detached, + } +} diff --git a/src/WixToolset.Data/Rows/ControlRow.cs b/src/WixToolset.Data/Rows/ControlRow.cs new file mode 100644 index 00000000..8fa3f633 --- /dev/null +++ b/src/WixToolset.Data/Rows/ControlRow.cs @@ -0,0 +1,143 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System.Diagnostics.CodeAnalysis; + + /// + /// Specialization of a row for the Control table. + /// + public sealed class ControlRow : Row + { + /// + /// Creates a Control row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Control row belongs to and should get its column definitions from. + public ControlRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the dialog of the Control row. + /// + /// Primary key of the Control row. + public string Dialog + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the identifier for this Control row. + /// + /// Identifier for this Control row. + public string Control + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the type of the control. + /// + /// Name of the control. + [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] + public string Type + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the X location of the control. + /// + /// X location of the control. + public string X + { + get { return this.Fields[3].AsString(); } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the Y location of the control. + /// + /// Y location of the control. + public string Y + { + get { return this.Fields[4].AsString(); } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the width of the control. + /// + /// Width of the control. + public string Width + { + get { return this.Fields[5].AsString(); } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the height of the control. + /// + /// Height of the control. + public string Height + { + get { return this.Fields[6].AsString(); } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets the attributes for the control. + /// + /// Attributes for the control. + public int Attributes + { + get { return (int)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + /// + /// Gets or sets the Property associated with the control. + /// + /// Property associated with the control. + public string Property + { + get { return (string)this.Fields[8].Data; } + set { this.Fields[8].Data = value; } + } + + /// + /// Gets or sets the text of the control. + /// + /// Text of the control. + public string Text + { + get { return (string)this.Fields[9].Data; } + set { this.Fields[9].Data = value; } + } + + /// + /// Gets or sets the next control. + /// + /// Next control. + public string Next + { + get { return (string)this.Fields[10].Data; } + set { this.Fields[10].Data = value; } + } + + /// + /// Gets or sets the help for the control. + /// + /// Help for the control. + public string Help + { + get { return (string)this.Fields[11].Data; } + set { this.Fields[11].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs b/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs new file mode 100644 index 00000000..07e66585 --- /dev/null +++ b/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs @@ -0,0 +1,13 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + public enum ExitCodeBehaviorType + { + NotSet = -1, + Success, + Error, + ScheduleReboot, + ForceReboot, + } +} diff --git a/src/WixToolset.Data/Rows/FileAssemblyType.cs b/src/WixToolset.Data/Rows/FileAssemblyType.cs new file mode 100644 index 00000000..6e92a083 --- /dev/null +++ b/src/WixToolset.Data/Rows/FileAssemblyType.cs @@ -0,0 +1,19 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Every file row has an assembly type. + /// + public enum FileAssemblyType + { + /// File is not an assembly. + NotAnAssembly, + + /// File is a Common Language Runtime Assembly. + DotNetAssembly, + + /// File is Win32 SxS assembly. + Win32Assembly, + } +} diff --git a/src/WixToolset.Data/Rows/FileRow.cs b/src/WixToolset.Data/Rows/FileRow.cs new file mode 100644 index 00000000..de5d5652 --- /dev/null +++ b/src/WixToolset.Data/Rows/FileRow.cs @@ -0,0 +1,640 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Diagnostics; + using System.Globalization; + using WixToolset.Data.Msi; + + /// + /// Specialization of a row for the file table. + /// + public sealed class FileRow : Row //, IComparable + { + //private string assemblyApplication; + //private string assemblyManifest; + //private FileAssemblyType assemblyType; + //private string directory; + //private int diskId; + //private bool fromModule; + //private bool isGeneratedShortFileName; + //private int patchGroup; + //private string processorArchitecture; + //private string source; + //private Row hashRow; + //private List assemblyNameRows; + //private string[] previousSource; + //private string symbols; + //private string[] previousSymbols; + //private PatchAttributeType patchAttributes; + //private string retainOffsets; + //private string retainLengths; + //private string ignoreOffsets; + //private string ignoreLengths; + //private string[] previousRetainOffsets; + //private string[] previousRetainLengths; + //private string[] previousIgnoreOffsets; + //private string[] previousIgnoreLengths; + //private string patch; + + /// + /// Creates a File row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this File row belongs to and should get its column definitions from. + public FileRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + //this.assemblyType = FileAssemblyType.NotAnAssembly; + //this.previousSource = new string[1]; + //this.previousSymbols = new string[1]; + //this.previousRetainOffsets = new string[1]; + //this.previousRetainLengths = new string[1]; + //this.previousIgnoreOffsets = new string[1]; + //this.previousIgnoreLengths = new string[1]; + } + + /// + /// Creates a File row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) + : base(sourceLineNumbers, tableDefinition) + { + //this.assemblyType = FileAssemblyType.NotAnAssembly; + //this.previousSource = new string[1]; + //this.previousSymbols = new string[1]; + //this.previousRetainOffsets = new string[1]; + //this.previousRetainLengths = new string[1]; + //this.previousIgnoreOffsets = new string[1]; + //this.previousIgnoreLengths = new string[1]; + } + + /// + /// Gets or sets the primary key of the file row. + /// + /// Primary key of the file row. + public string File + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the component this file row belongs to. + /// + /// Component this file row belongs to. + public string Component + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the name of the file. + /// + /// Name of the file. + public string FileName + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the real filesystem name of the file (without a pipe). This is typically the long name of the file. + /// However, if no long name is available, falls back to the short name. + /// + /// Long Name of the file - or if no long name is available, falls back to the short name. + public string LongFileName + { + get + { + string fileName = this.FileName; + int index = fileName.IndexOf('|'); + + // If it doesn't contain a pipe, just return the whole string + if (-1 == index) + { + return fileName; + } + else // otherwise, extract the part of the string after the pipe + { + return fileName.Substring(index + 1); + } + } + } + + /// + /// Gets or sets the size of the file. + /// + /// Size of the file. + public int FileSize + { + get { return (int)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the version of the file. + /// + /// Version of the file. + public string Version + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the LCID of the file. + /// + /// LCID of the file. + public string Language + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the attributes on a file. + /// + /// Attributes on a file. + public int Attributes + { + get { return Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture); } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets whether this file should be compressed. + /// + /// Whether this file should be compressed. + public YesNoType Compressed + { + get + { + bool compressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesCompressed)); + bool noncompressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesNoncompressed)); + + if (compressedFlag && noncompressedFlag) + { + throw new WixException(WixDataErrors.IllegalFileCompressionAttributes(this.SourceLineNumbers)); + } + else if (compressedFlag) + { + return YesNoType.Yes; + } + else if (noncompressedFlag) + { + return YesNoType.No; + } + else + { + return YesNoType.NotSet; + } + } + + set + { + if (YesNoType.Yes == value) + { + // these are mutually exclusive + this.Attributes |= MsiInterop.MsidbFileAttributesCompressed; + this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; + } + else if (YesNoType.No == value) + { + // these are mutually exclusive + this.Attributes |= MsiInterop.MsidbFileAttributesNoncompressed; + this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; + } + else // not specified + { + Debug.Assert(YesNoType.NotSet == value); + + // clear any compression bits + this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; + this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; + } + } + } + + /// + /// Gets or sets the sequence of the file row. + /// + /// Sequence of the file row. + public int Sequence + { + get { return (int)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + /////// + /////// Gets or sets the type of assembly of file row. + /////// + /////// Assembly type for file row. + ////public FileAssemblyType AssemblyType + ////{ + //// get { return this.assemblyType; } + //// set { this.assemblyType = value; } + ////} + + /////// + /////// Gets or sets the identifier for the assembly application. + /////// + /////// Identifier for the assembly application. + ////public string AssemblyApplication + ////{ + //// get { return this.assemblyApplication; } + //// set { this.assemblyApplication = value; } + ////} + + /////// + /////// Gets or sets the identifier for the assembly manifest. + /////// + /////// Identifier for the assembly manifest. + ////public string AssemblyManifest + ////{ + //// get { return this.assemblyManifest; } + //// set { this.assemblyManifest = value; } + ////} + + /////// + /////// Gets or sets the directory of the file. + /////// + /////// Directory of the file. + ////public string Directory + ////{ + //// get { return this.directory; } + //// set { this.directory = value; } + ////} + + /////// + /////// Gets or sets the disk id for this file. + /////// + /////// Disk id for the file. + ////public int DiskId + ////{ + //// get { return this.diskId; } + //// set { this.diskId = value; } + ////} + + /////// + /////// Gets or sets the source location to the file. + /////// + /////// Source location to the file. + ////public string Source + ////{ + //// get { return this.source; } + //// set { this.source = value; } + ////} + + /////// + /////// Gets or sets the source location to the previous file. + /////// + /////// Source location to the previous file. + ////public string PreviousSource + ////{ + //// get { return this.previousSource[0]; } + //// set { this.previousSource[0] = value; } + ////} + + /////// + /////// Gets the source location to the previous files. + /////// + /////// Source location to the previous files. + ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + ////public string[] PreviousSourceArray + ////{ + //// get { return this.previousSource; } + ////} + + /////// + /////// Gets or sets the architecture the file executes on. + /////// + /////// Architecture the file executes on. + ////public string ProcessorArchitecture + ////{ + //// get { return this.processorArchitecture; } + //// set { this.processorArchitecture = value; } + ////} + + /////// + /////// Gets of sets the patch group of a patch-added file. + /////// + /////// The patch group of a patch-added file. + ////public int PatchGroup + ////{ + //// get { return this.patchGroup; } + //// set { this.patchGroup = value; } + ////} + + /////// + /////// Gets or sets the patch header of the file. + /////// + /////// Patch header of the file. + ////public string Patch + ////{ + //// get { return this.patch; } + //// set { this.patch = value; } + ////} + + /////// + /////// Gets or sets the locations to find the file's symbols. + /////// + /////// Symbol paths for the file. + ////public string Symbols + ////{ + //// get { return this.symbols; } + //// set { this.symbols = value; } + ////} + + /////// + /////// Gets or sets the locations to find the file's previous symbols. + /////// + /////// Symbol paths for the previous file. + ////public string PreviousSymbols + ////{ + //// get { return this.previousSymbols[0]; } + //// set { this.previousSymbols[0] = value; } + ////} + + /////// + /////// Gets the locations to find the files' previous symbols. + /////// + /////// Symbol paths for the previous files. + ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + ////public string[] PreviousSymbolsArray + ////{ + //// get { return this.previousSymbols; } + ////} + + /////// + /////// Gets or sets the generated short file name attribute. + /////// + /////// The generated short file name attribute. + ////public bool IsGeneratedShortFileName + ////{ + //// get { return this.isGeneratedShortFileName; } + + //// set { this.isGeneratedShortFileName = value; } + ////} + + /////// + /////// Gets or sets whether this row came from a merge module. + /////// + /////// Whether this row came from a merge module. + ////public bool FromModule + ////{ + //// get { return this.fromModule; } + //// set { this.fromModule = value; } + ////} + + /////// + /////// Gets or sets the MsiFileHash row created for this FileRow. + /////// + /////// Row for MsiFileHash table. + ////public Row HashRow + ////{ + //// get { return this.hashRow; } + //// set { this.hashRow = value; } + ////} + + /////// + /////// Gets or sets the set of MsiAssemblyName rows created for this FileRow. + /////// + /////// RowCollection of MsiAssemblyName table. + ////[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] + ////public List AssemblyNameRows + ////{ + //// get { return this.assemblyNameRows; } + //// set { this.assemblyNameRows = value; } + ////} + + /////// + /////// Gets or sets the patching attributes to the file. + /////// + /////// Patching attributes of the file. + ////public PatchAttributeType PatchAttributes + ////{ + //// get { return this.patchAttributes; } + //// set { this.patchAttributes = value; } + ////} + + /////// + /////// Gets or sets the delta patch retain-length list for the file. + /////// + /////// RetainLength list for the file. + ////public string RetainLengths + ////{ + //// get { return this.retainLengths; } + //// set { this.retainLengths = value; } + ////} + + /////// + /////// Gets or sets the delta patch ignore-offset list for the file. + /////// + /////// IgnoreOffset list for the file. + ////public string IgnoreOffsets + ////{ + //// get { return this.ignoreOffsets; } + //// set { this.ignoreOffsets = value; } + ////} + + /////// + /////// Gets or sets the delta patch ignore-length list for the file. + /////// + /////// IgnoreLength list for the file. + ////public string IgnoreLengths + ////{ + //// get { return this.ignoreLengths; } + //// set { this.ignoreLengths = value; } + ////} + + /////// + /////// Gets or sets the delta patch retain-offset list for the file. + /////// + /////// RetainOffset list for the file. + ////public string RetainOffsets + ////{ + //// get { return this.retainOffsets; } + //// set { this.retainOffsets = value; } + ////} + + /////// + /////// Gets or sets the delta patch retain-length list for the previous file. + /////// + /////// RetainLength list for the previous file. + ////public string PreviousRetainLengths + ////{ + //// get { return this.previousRetainLengths[0]; } + //// set { this.previousRetainLengths[0] = value; } + ////} + + /////// + /////// Gets the delta patch retain-length list for the previous files. + /////// + /////// RetainLength list for the previous files. + ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + ////public string[] PreviousRetainLengthsArray + ////{ + //// get { return this.previousRetainLengths; } + ////} + + /////// + /////// Gets or sets the delta patch ignore-offset list for the previous file. + /////// + /////// IgnoreOffset list for the previous file. + ////public string PreviousIgnoreOffsets + ////{ + //// get { return this.previousIgnoreOffsets[0]; } + //// set { this.previousIgnoreOffsets[0] = value; } + ////} + + /////// + /////// Gets the delta patch ignore-offset list for the previous files. + /////// + /////// IgnoreOffset list for the previous files. + ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + ////public string[] PreviousIgnoreOffsetsArray + ////{ + //// get { return this.previousIgnoreOffsets; } + ////} + + /////// + /////// Gets or sets the delta patch ignore-length list for the previous file. + /////// + /////// IgnoreLength list for the previous file. + ////public string PreviousIgnoreLengths + ////{ + //// get { return this.previousIgnoreLengths[0]; } + //// set { this.previousIgnoreLengths[0] = value; } + ////} + + /////// + /////// Gets the delta patch ignore-length list for the previous files. + /////// + /////// IgnoreLength list for the previous files. + ////[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + ////public string[] PreviousIgnoreLengthsArray + ////{ + //// get { return this.previousIgnoreLengths; } + ////} + + /////// + /////// Gets or sets the delta patch retain-offset list for the previous file. + /////// + /////// RetainOffset list for the previous file. + ////public string PreviousRetainOffsets + ////{ + //// get { return this.previousRetainOffsets[0]; } + //// set { this.previousRetainOffsets[0] = value; } + ////} + + /////// + /////// Gets the delta patch retain-offset list for the previous files. + /////// + /////// RetainOffset list for the previous files. + ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] + ////public string[] PreviousRetainOffsetsArray + ////{ + //// get { return this.previousRetainOffsets; } + ////} + + /////// + /////// Compares the current FileRow with another object of the same type. + /////// + /////// An object to compare with this instance. + /////// An integer that indicates the relative order of the comparands. + ////[SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String)")] + ////[SuppressMessage("Microsoft.Globalization", "CA1309:UseOrdinalStringComparison")] + ////public int CompareTo(object obj) + ////{ + //// if (this == obj) + //// { + //// return 0; + //// } + + //// FileRow fileRow = obj as FileRow; + //// if (null == fileRow) + //// { + //// throw new ArgumentException(WixDataStrings.EXP_OtherObjectIsNotFileRow); + //// } + + //// int compared = this.DiskId - fileRow.DiskId; + //// if (0 == compared) + //// { + //// compared = this.patchGroup - fileRow.patchGroup; + + //// if (0 == compared) + //// { + //// compared = String.Compare(this.File, fileRow.File, StringComparison.InvariantCulture); + //// } + //// } + + //// return compared; + ////} + + /////// + /////// Copies data from another FileRow object. + /////// + /////// An row to get data from. + ////public void CopyFrom(FileRow src) + ////{ + //// for (int i = 0; i < src.Fields.Length; i++) + //// { + //// this[i] = src[i]; + //// } + //// this.assemblyManifest = src.assemblyManifest; + //// this.assemblyType = src.assemblyType; + //// this.directory = src.directory; + //// this.diskId = src.diskId; + //// this.fromModule = src.fromModule; + //// this.isGeneratedShortFileName = src.isGeneratedShortFileName; + //// this.patchGroup = src.patchGroup; + //// this.processorArchitecture = src.processorArchitecture; + //// this.source = src.source; + //// this.PreviousSource = src.PreviousSource; + //// this.Operation = src.Operation; + //// this.symbols = src.symbols; + //// this.PreviousSymbols = src.PreviousSymbols; + //// this.patchAttributes = src.patchAttributes; + //// this.retainOffsets = src.retainOffsets; + //// this.retainLengths = src.retainLengths; + //// this.ignoreOffsets = src.ignoreOffsets; + //// this.ignoreLengths = src.ignoreLengths; + //// this.PreviousRetainOffsets = src.PreviousRetainOffsets; + //// this.PreviousRetainLengths = src.PreviousRetainLengths; + //// this.PreviousIgnoreOffsets = src.PreviousIgnoreOffsets; + //// this.PreviousIgnoreLengths = src.PreviousIgnoreLengths; + ////} + + /////// + /////// Appends previous data from another FileRow object. + /////// + /////// An row to get data from. + ////public void AppendPreviousDataFrom(FileRow src) + ////{ + //// AppendStringToArray(ref this.previousSource, src.previousSource[0]); + //// AppendStringToArray(ref this.previousSymbols, src.previousSymbols[0]); + //// AppendStringToArray(ref this.previousRetainOffsets, src.previousRetainOffsets[0]); + //// AppendStringToArray(ref this.previousRetainLengths, src.previousRetainLengths[0]); + //// AppendStringToArray(ref this.previousIgnoreOffsets, src.previousIgnoreOffsets[0]); + //// AppendStringToArray(ref this.previousIgnoreLengths, src.previousIgnoreLengths[0]); + ////} + + /////// + /////// Helper method for AppendPreviousDataFrom. + /////// + /////// Destination array. + /////// Source string. + ////private static void AppendStringToArray(ref string[] destination, string source) + ////{ + //// string[] result = new string[destination.Length + 1]; + //// destination.CopyTo(result, 0); + //// result[destination.Length] = source; + //// destination = result; + ////} + } +} diff --git a/src/WixToolset.Data/Rows/MediaRow.cs b/src/WixToolset.Data/Rows/MediaRow.cs new file mode 100644 index 00000000..f387a8d2 --- /dev/null +++ b/src/WixToolset.Data/Rows/MediaRow.cs @@ -0,0 +1,80 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the Media table. + /// + public sealed class MediaRow : Row + { + /// + /// Creates a Media row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public MediaRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the disk id for this media row. + /// + /// Disk id. + public int DiskId + { + get { return (int)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the last sequence number for this media row. + /// + /// Last sequence number. + public int LastSequence + { + get { return (int)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the disk prompt for this media row. + /// + /// Disk prompt. + public string DiskPrompt + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the cabinet name for this media row. + /// + /// Cabinet name. + public string Cabinet + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the volume label for this media row. + /// + /// Volume label. + public string VolumeLabel + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the source for this media row. + /// + /// Source. + public string Source + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/PatchAttributeType.cs b/src/WixToolset.Data/Rows/PatchAttributeType.cs new file mode 100644 index 00000000..b585e845 --- /dev/null +++ b/src/WixToolset.Data/Rows/PatchAttributeType.cs @@ -0,0 +1,27 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// PatchAttribute values + /// + [Flags] + public enum PatchAttributeType + { + None = 0, + + /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. + Ignore = 1, + + /// Set if the entire file should be installed rather than creating a binary patch. + IncludeWholeFile = 2, + + /// Set to indicate that the patch is non-vital. + AllowIgnoreOnError = 4, + + /// Allowed bits. + Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError + } +} diff --git a/src/WixToolset.Data/Rows/PropertyRow.cs b/src/WixToolset.Data/Rows/PropertyRow.cs new file mode 100644 index 00000000..558df760 --- /dev/null +++ b/src/WixToolset.Data/Rows/PropertyRow.cs @@ -0,0 +1,42 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// Specialization of a row for the upgrade table. + /// + public sealed class PropertyRow : Row + { + /// + /// Creates an Upgrade row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Upgrade row belongs to and should get its column definitions from. + public PropertyRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets and sets the upgrade code for the row. + /// + /// Property identifier for the row. + public string Property + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets and sets the value for the row. + /// + /// Property value for the row. + public string Value + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs b/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs new file mode 100644 index 00000000..bc931f15 --- /dev/null +++ b/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs @@ -0,0 +1,42 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Collections; + using System.Collections.ObjectModel; + + /// + /// Indexed container class for summary information rows. + /// + public sealed class SummaryInfoRowCollection : KeyedCollection + { + /// + /// Creates the keyed collection from existing rows in a table. + /// + /// The summary information table to index. + public SummaryInfoRowCollection(Table table) + { + if (0 != String.CompareOrdinal("_SummaryInformation", table.Name)) + { + string message = string.Format(WixDataStrings.EXP_UnsupportedTable, table.Name); + throw new ArgumentException(message, "table"); + } + + foreach (Row row in table.Rows) + { + this.Add(row); + } + } + + /// + /// Gets the summary property ID for the . + /// + /// The row to index. + /// The summary property ID for the . + protected override int GetKeyForItem(Row row) + { + return (int)row[0]; + } + } +} diff --git a/src/WixToolset.Data/Rows/SymbolPathType.cs b/src/WixToolset.Data/Rows/SymbolPathType.cs new file mode 100644 index 00000000..964e1caa --- /dev/null +++ b/src/WixToolset.Data/Rows/SymbolPathType.cs @@ -0,0 +1,17 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// The types that the WixDeltaPatchSymbolPaths table can hold. + /// + /// The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type. + public enum SymbolPathType + { + File, + Component, + Directory, + Media, + Product + }; +} diff --git a/src/WixToolset.Data/Rows/UpgradeRow.cs b/src/WixToolset.Data/Rows/UpgradeRow.cs new file mode 100644 index 00000000..807a9f93 --- /dev/null +++ b/src/WixToolset.Data/Rows/UpgradeRow.cs @@ -0,0 +1,90 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the upgrade table. + /// + public sealed class UpgradeRow : Row + { + /// + /// Creates an Upgrade row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Upgrade row belongs to and should get its column definitions from. + public UpgradeRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets and sets the upgrade code for the row. + /// + /// Upgrade code for the row. + public string UpgradeCode + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets and sets the version minimum for the row. + /// + /// Version minimum for the row. + public string VersionMin + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets and sets the version maximum for the row. + /// + /// Version maximum for the row. + public string VersionMax + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets and sets the language for the row. + /// + /// Language for the row. + public string Language + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets and sets the attributes for the row. + /// + /// Attributes for the row. + public int Attributes + { + get { return (int)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets and sets the remove code for the row. + /// + /// Remove code for the row. + public string Remove + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets and sets the action property for the row. + /// + /// Action property for the row. + public string ActionProperty + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixActionRow.cs b/src/WixToolset.Data/Rows/WixActionRow.cs new file mode 100644 index 00000000..3009e59d --- /dev/null +++ b/src/WixToolset.Data/Rows/WixActionRow.cs @@ -0,0 +1,374 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Globalization; + using System.Xml; + using System.Xml.Schema; + + /// + /// The Sequence tables that actions may belong to. + /// + public enum SequenceTable + { + /// AdminUISequence + AdminUISequence, + + /// AdminExecuteSequence + AdminExecuteSequence, + + /// AdvtExecuteSequence + AdvtExecuteSequence, + + /// InstallUISequence + InstallUISequence, + + /// InstallExecuteSequence + InstallExecuteSequence + } + + /// + /// Specialization of a row for the sequence tables. + /// + public sealed class WixActionRow : Row, IComparable + { + private WixActionRowCollection previousActionRows; + private WixActionRowCollection nextActionRows; + + /// + /// Instantiates an ActionRow that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Action row belongs to and should get its column definitions from. + public WixActionRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Instantiates a standard ActionRow. + /// + /// The sequence table of the standard action. + /// The name of the standard action. + /// The condition of the standard action. + /// The suggested sequence number of the standard action. + private WixActionRow(SequenceTable sequenceTable, string action, string condition, int sequence) : + base(null, WindowsInstallerStandard.GetTableDefinitions()["WixAction"]) + { + this.SequenceTable = sequenceTable; + this.Action = action; + this.Condition = condition; + this.Sequence = sequence; + this.Overridable = true; // all standard actions are overridable by default + } + + /// + /// Instantiates an ActionRow by copying data from another ActionRow. + /// + /// The row the data is copied from. + /// The previous and next action collections are not copied. + private WixActionRow(WixActionRow source) + : base(source) + { + } + + /// + /// Gets or sets the name of the action. + /// + /// The name of the action. + public string Action + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets the name of the action this action should be scheduled after. + /// + /// The name of the action this action should be scheduled after. + public string After + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets the name of the action this action should be scheduled before. + /// + /// The name of the action this action should be scheduled before. + public string Before + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the condition of the action. + /// + /// The condition of the action. + public string Condition + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets whether this action is overridable. + /// + /// Whether this action is overridable. + public bool Overridable + { + get { return (1 == Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture)); } + set { this.Fields[6].Data = (value ? 1 : 0); } + } + + /// + /// Gets or sets the sequence number of this action. + /// + /// The sequence number of this action. + public int Sequence + { + get { return Convert.ToInt32(this.Fields[3].Data, CultureInfo.InvariantCulture); } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets of sets the sequence table of this action. + /// + /// The sequence table of this action. + public SequenceTable SequenceTable + { + get { return (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[0].Data); } + set { this.Fields[0].Data = value.ToString(); } + } + + /// + /// Gets the actions that should be scheduled after this action. + /// + /// The actions that should be scheduled after this action. + public WixActionRowCollection NextActionRows + { + get + { + if (null == this.nextActionRows) + { + this.nextActionRows = new WixActionRowCollection(); + } + + return this.nextActionRows; + } + } + + /// + /// Gets the actions that should be scheduled before this action. + /// + /// The actions that should be scheduled before this action. + public WixActionRowCollection PreviousActionRows + { + get + { + if (null == this.previousActionRows) + { + this.previousActionRows = new WixActionRowCollection(); + } + + return this.previousActionRows; + } + } + + /// + /// Creates a clone of the action row. + /// + /// A shallow copy of the source object. + /// The previous and next action collections are not copied. + public WixActionRow Clone() + { + return new WixActionRow(this); + } + + /// + /// Compares the current instance with another object of the same type. + /// + /// Other reference to compare this one to. + /// Returns less than 0 for less than, 0 for equals, and greater than 0 for greater. + public int CompareTo(object obj) + { + WixActionRow otherActionRow = (WixActionRow)obj; + + return this.Sequence.CompareTo(otherActionRow.Sequence); + } + + /// + /// Parses ActionRows from the Xml reader. + /// + /// Xml reader that contains serialized ActionRows. + /// The parsed ActionRows. + internal static WixActionRow[] Parse(XmlReader reader) + { + Debug.Assert("action" == reader.LocalName); + + string id = null; + string condition = null; + bool empty = reader.IsEmptyElement; + int sequence = int.MinValue; + int sequenceCount = 0; + SequenceTable[] sequenceTables = new SequenceTable[Enum.GetValues(typeof(SequenceTable)).Length]; + + while (reader.MoveToNextAttribute()) + { + switch (reader.Name) + { + case "name": + id = reader.Value; + break; + case "AdminExecuteSequence": + if (reader.Value.Equals("yes")) + { + sequenceTables[sequenceCount] = SequenceTable.AdminExecuteSequence; + ++sequenceCount; + } + break; + case "AdminUISequence": + if (reader.Value.Equals("yes")) + { + sequenceTables[sequenceCount] = SequenceTable.AdminUISequence; + ++sequenceCount; + } + break; + case "AdvtExecuteSequence": + if (reader.Value.Equals("yes")) + { + sequenceTables[sequenceCount] = SequenceTable.AdvtExecuteSequence; + ++sequenceCount; + } + break; + case "condition": + condition = reader.Value; + break; + case "InstallExecuteSequence": + if (reader.Value.Equals("yes")) + { + sequenceTables[sequenceCount] = SequenceTable.InstallExecuteSequence; + ++sequenceCount; + } + break; + case "InstallUISequence": + if (reader.Value.Equals("yes")) + { + sequenceTables[sequenceCount] = SequenceTable.InstallUISequence; + ++sequenceCount; + } + break; + case "sequence": + sequence = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + } + } + + if (null == id) + { + throw new XmlException(); + } + + if (int.MinValue == sequence) + { + throw new XmlException(); + } + else if (1 > sequence) + { + throw new XmlException(); + } + + if (0 == sequenceCount) + { + throw new XmlException(); + } + + if (!empty && reader.Read() && XmlNodeType.EndElement != reader.MoveToContent()) + { + throw new XmlException(); + } + + // create the actions + WixActionRow[] actionRows = new WixActionRow[sequenceCount]; + for (int i = 0; i < sequenceCount; i++) + { + WixActionRow actionRow = new WixActionRow(sequenceTables[i], id, condition, sequence); + actionRows[i] = actionRow; + } + + return actionRows; + } + + /// + /// Determines whether this ActionRow contains the specified ActionRow as a child in its dependency tree. + /// + /// The possible child ActionRow. + /// true if the ActionRow is a child of this ActionRow; false otherwise. + public bool ContainsChildActionRow(WixActionRow actionRow) + { + if (null != this.previousActionRows) + { + if (this.previousActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) + { + return true; + } + } + + if (null != this.nextActionRows) + { + if (this.nextActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) + { + return true; + } + } + + return false; + } + + /// + /// Get all the actions scheduled before this one in a particular sequence table. + /// + /// The sequence table. + /// A RowCollection which will contain all the previous actions. + public void GetAllPreviousActionRows(SequenceTable sequenceTable, IList allPreviousActionRows) + { + if (null != this.previousActionRows) + { + foreach (WixActionRow actionRow in this.previousActionRows) + { + if (sequenceTable == actionRow.SequenceTable) + { + actionRow.GetAllPreviousActionRows(sequenceTable, allPreviousActionRows); + allPreviousActionRows.Add(actionRow); + actionRow.GetAllNextActionRows(sequenceTable, allPreviousActionRows); + } + } + } + } + + /// + /// Get all the actions scheduled after this one in a particular sequence table. + /// + /// The sequence table. + /// A RowCollection which will contain all the next actions. + public void GetAllNextActionRows(SequenceTable sequenceTable, IList allNextActionRows) + { + if (null != this.nextActionRows) + { + foreach (WixActionRow actionRow in this.nextActionRows) + { + if (sequenceTable == actionRow.SequenceTable) + { + actionRow.GetAllPreviousActionRows(sequenceTable, allNextActionRows); + allNextActionRows.Add(actionRow); + actionRow.GetAllNextActionRows(sequenceTable, allNextActionRows); + } + } + } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixActionRowCollection.cs b/src/WixToolset.Data/Rows/WixActionRowCollection.cs new file mode 100644 index 00000000..513a104f --- /dev/null +++ b/src/WixToolset.Data/Rows/WixActionRowCollection.cs @@ -0,0 +1,222 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Collections; + using System.Diagnostics; + using System.Xml; + + /// + /// A collection of action rows sorted by their sequence table and action name. + /// + public sealed class WixActionRowCollection : ICollection + { + private SortedList collection; + + /// + /// Creates a new action table object. + /// + public WixActionRowCollection() + { + this.collection = new SortedList(); + } + + /// + /// Gets the number of items in the collection. + /// + /// Number of items in collection. + public int Count + { + get { return this.collection.Count; } + } + + /// + /// Gets if the collection has been synchronized. + /// + /// True if the collection has been synchronized. + public bool IsSynchronized + { + get { return this.collection.IsSynchronized; } + } + + /// + /// Gets the object used to synchronize the collection. + /// + /// Oject used the synchronize the collection. + public object SyncRoot + { + get { return this; } + } + + /// + /// Get an ActionRow by its sequence table and action name. + /// + /// The sequence table of the ActionRow. + /// The action name of the ActionRow. + public WixActionRow this[SequenceTable sequenceTable, string action] + { + get { return (WixActionRow)this.collection[GetKey(sequenceTable, action)]; } + } + + /// + /// Add an ActionRow to the collection. + /// + /// The ActionRow to add. + /// true to overwrite an existing ActionRow; false otherwise. + public void Add(WixActionRow actionRow, bool overwrite) + { + string key = GetKey(actionRow.SequenceTable, actionRow.Action); + + if (overwrite) + { + this.collection[key] = actionRow; + } + else + { + this.collection.Add(key, actionRow); + } + } + + /// + /// Add an ActionRow to the collection. + /// + /// The ActionRow to add. + public void Add(WixActionRow actionRow) + { + this.Add(actionRow, false); + } + + /// + /// Determines if the collection contains an ActionRow with a specific sequence table and name. + /// + /// The sequence table of the ActionRow. + /// The action name of the ActionRow. + /// true if the ActionRow was found; false otherwise. + public bool Contains(SequenceTable sequenceTable, string action) + { + return this.collection.Contains(GetKey(sequenceTable, action)); + } + + /// + /// Copies the collection into an array. + /// + /// Array to copy the collection into. + /// Index to start copying from. + public void CopyTo(System.Array array, int index) + { + this.collection.Values.CopyTo(array, index); + } + + /// + /// Gets the enumerator for the collection. + /// + /// The enumerator for the collection. + public IEnumerator GetEnumerator() + { + return this.collection.Values.GetEnumerator(); + } + + /// + /// Remove an ActionRow from the collection. + /// + /// The sequence table of the ActionRow. + /// The action name of the ActionRow. + public void Remove(SequenceTable sequenceTable, string action) + { + this.collection.Remove(GetKey(sequenceTable, action)); + } + + /// + /// Load an action table from an XmlReader. + /// + /// Reader to get data from. + /// The ActionRowCollection represented by the xml. + internal static WixActionRowCollection Load(XmlReader reader) + { + reader.MoveToContent(); + + return Parse(reader); + } + + /// + /// Creates a new action table object and populates it from an Xml reader. + /// + /// Reader to get data from. + /// The parsed ActionTable. + private static WixActionRowCollection Parse(XmlReader reader) + { + if (!reader.LocalName.Equals("actions")) + { + throw new XmlException(); + } + + WixActionRowCollection actionRows = new WixActionRowCollection(); + bool empty = reader.IsEmptyElement; + + while (reader.MoveToNextAttribute()) + { + } + + if (!empty) + { + bool done = false; + + // loop through all the fields in a row + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "action": + WixActionRow[] parsedActionRows = WixActionRow.Parse(reader); + + foreach (WixActionRow actionRow in parsedActionRows) + { + actionRows.Add(actionRow); + } + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return actionRows; + } + + /// + /// Get the key for storing an ActionRow. + /// + /// The sequence table of the ActionRow. + /// The action name of the ActionRow. + /// The string key. + private static string GetKey(SequenceTable sequenceTable, string action) + { + return GetKey(sequenceTable.ToString(), action); + } + + /// + /// Get the key for storing an ActionRow. + /// + /// The sequence table of the ActionRow. + /// The action name of the ActionRow. + /// The string key. + private static string GetKey(string sequenceTable, string action) + { + return String.Concat(sequenceTable, '/', action); + } + } +} diff --git a/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs b/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs new file mode 100644 index 00000000..c10a39ab --- /dev/null +++ b/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs @@ -0,0 +1,79 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + + /// + /// Specialization of a row for the WixApprovedExeForElevation table. + /// + public class WixApprovedExeForElevationRow : Row + { + /// + /// Creates an ApprovedExeForElevation row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this ApprovedExeForElevation row belongs to and should get its column definitions from. + public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates an ApprovedExeForElevation row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this ApprovedExeForElevation row belongs to and should get its column definitions from. + public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the ApprovedExeForElevation identifier. + /// + /// The ApprovedExeForElevation identifier. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the Key path. + /// + /// The Key path. + public string Key + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the Value name. + /// + /// The Value name. + public string ValueName + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the attibutes. + /// + /// The BundleApprovedExeForElevationAttributes. + public BundleApprovedExeForElevationAttributes Attributes + { + get { return (BundleApprovedExeForElevationAttributes)this.Fields[3].Data; } + set { this.Fields[3].Data = (int)value; } + } + + /// + /// Gets whether this row is 64-bit. + /// + public bool Win64 + { + get { return BundleApprovedExeForElevationAttributes.Win64 == (this.Attributes & BundleApprovedExeForElevationAttributes.Win64); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs b/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs new file mode 100644 index 00000000..05c1e597 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs @@ -0,0 +1,50 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixCatalog table. + /// + public sealed class WixBundleCatalogRow : Row + { + /// + /// Creates a Catalog row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Catalog row belongs to and should get its column definitions from. + public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a Catalog row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Catalog row belongs to and should get its column definitions from. + public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the catalog identifier. + /// + /// The catalog identifier. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the payload identifier. + /// + /// The payload identifier. + public string Payload + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleContainerRow.cs b/src/WixToolset.Data/Rows/WixBundleContainerRow.cs new file mode 100644 index 00000000..7b03dcc5 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleContainerRow.cs @@ -0,0 +1,78 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the Container table. + /// + public class WixBundleContainerRow : Row + { + /// + /// Creates a ContainerRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a ContainerRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string Name + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public ContainerType Type + { + get { return (ContainerType)this.Fields[2].Data; } + set { this.Fields[2].Data = (int)value; } + } + + public string DownloadUrl + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + public long Size + { + get { return (long)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + public string Hash + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + public int AttachedContainerIndex + { + get { return (null == this.Fields[6].Data) ? -1 : (int)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + public string WorkingPath + { + get { return (string)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs new file mode 100644 index 00000000..1d4d7bbb --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs @@ -0,0 +1,12 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + [Flags] + public enum WixBundleExePackageAttributes + { + Repairable = 0x1, + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs b/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs new file mode 100644 index 00000000..5bca6029 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs @@ -0,0 +1,101 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixBundleExePackage table. + /// + public sealed class WixBundleExePackageRow : Row + { + /// + /// Creates a WixBundleExePackage row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixBundleExePackageRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the raw Exe attributes of a patch. + /// + public WixBundleExePackageAttributes Attributes + { + get { return (WixBundleExePackageAttributes)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the protcol for the executable package. + /// + public string DetectCondition + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the install command for the executable package. + /// + public string InstallCommand + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the repair command for the executable package. + /// + public string RepairCommand + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the uninstall command for the executable package. + /// + public string UninstallCommand + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the protcol for the executable package. + /// + public string ExeProtocol + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets whether the executable package is repairable. + /// + public bool Repairable + { + get { return 0 != (this.Attributes & WixBundleExePackageAttributes.Repairable); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs new file mode 100644 index 00000000..551eae20 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs @@ -0,0 +1,93 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the MsiFeature table. + /// + public class WixBundleMsiFeatureRow : Row + { + /// + /// Creates a MsiFeatureRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a MsiFeatureRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string Name + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public long Size + { + get { return (long)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + public string Parent + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + public string Title + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + public string Description + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + public int Display + { + get { return (int)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + public int Level + { + get { return (int)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + public string Directory + { + get { return (string)this.Fields[8].Data; } + set { this.Fields[8].Data = value; } + } + + public int Attributes + { + get { return (int)this.Fields[9].Data; } + set { this.Fields[9].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs new file mode 100644 index 00000000..fc038f81 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs @@ -0,0 +1,15 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + [Flags] + public enum WixBundleMsiPackageAttributes + { + DisplayInternalUI = 0x1, + EnableFeatureSelection = 0x4, + ForcePerMachine = 0x2, + SuppressLooseFilePayloadGeneration = 0x8, + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs new file mode 100644 index 00000000..22e66a7a --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs @@ -0,0 +1,137 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Globalization; + + /// + /// Specialization of a row for the WixBundleMsiPackage table. + /// + public sealed class WixBundleMsiPackageRow : Row + { + /// + /// Creates a WixBundleMsiPackage row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixBundleMsiPackageRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the raw MSI attributes of a package. + /// + public WixBundleMsiPackageAttributes Attributes + { + get { return (WixBundleMsiPackageAttributes)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the MSI package's product code. + /// + public string ProductCode + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the MSI package's upgrade code. + /// + public string UpgradeCode + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the product version of the MSI package. + /// + public string ProductVersion + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the language of the MSI package. + /// + public int ProductLanguage + { + get { return Convert.ToInt32(this.Fields[5].Data, CultureInfo.InvariantCulture); } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the product name of the MSI package. + /// + public string ProductName + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets the MSI package's manufacturer. + /// + public string Manufacturer + { + get { return (string)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + /// + /// Gets the display internal UI of a package. + /// + public bool DisplayInternalUI + { + get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.DisplayInternalUI); } + } + + /// + /// Gets the display internal UI of a package. + /// + public bool EnableFeatureSelection + { + get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection); } + } + + /// + /// Gets the display internal UI of a package. + /// + public bool ForcePerMachine + { + get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine); } + } + + /// + /// Gets the suppress loose file payload generation of a package. + /// + public bool SuppressLooseFilePayloadGeneration + { + get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.SuppressLooseFilePayloadGeneration); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs new file mode 100644 index 00000000..524f7929 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs @@ -0,0 +1,58 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixBundleMsiProperty table. + /// + public sealed class WixBundleMsiPropertyRow : Row + { + /// + /// Creates an WixBundleMsiProperty row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this WixBundleMsiProperty row belongs to and should get its column definitions from. + public WixBundleMsiPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets and sets the property identity. + /// + public string Name + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets and sets the value for the row. + /// + /// MsiProperty value for the row. + public string Value + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets and sets the condition for the row. + /// + /// MsiProperty condition for the row. + public string Condition + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs new file mode 100644 index 00000000..8f33e283 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs @@ -0,0 +1,14 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + [Flags] + public enum WixBundleMspPackageAttributes + { + DisplayInternalUI = 0x1, + Slipstream = 0x2, + TargetUnspecified = 0x4, + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs new file mode 100644 index 00000000..eccf0aea --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs @@ -0,0 +1,99 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the ChainMspPackage table. + /// + public sealed class WixBundleMspPackageRow : Row + { + /// + /// Creates a ChainMspPackage row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixBundleMspPackage row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the raw MSP attributes of a patch. + /// + public WixBundleMspPackageAttributes Attributes + { + get { return (WixBundleMspPackageAttributes)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the patch code. + /// + public string PatchCode + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the patch's manufacturer. + /// + public string Manufacturer + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the patch's xml. + /// + public string PatchXml + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets the display internal UI of a patch. + /// + public bool DisplayInternalUI + { + get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.DisplayInternalUI); } + } + + /// + /// Gets whether to slipstream the patch. + /// + public bool Slipstream + { + get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.Slipstream); } + } + + /// + /// Gets whether the patch targets an unspecified number of packages. + /// + public bool TargetUnspecified + { + get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs new file mode 100644 index 00000000..0df635c2 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs @@ -0,0 +1,57 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixBundleMsuPackage table. + /// + public sealed class WixBundleMsuPackageRow : Row + { + /// + /// Creates a WixBundleMsuPackage row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixBundleMsuPackage row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the detection condition the package. + /// + public string DetectCondition + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the KB of the package. + /// + public string MsuKB + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs new file mode 100644 index 00000000..5b88ea5b --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs @@ -0,0 +1,13 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + [Flags] + public enum WixBundlePackageAttributes + { + Permanent = 0x1, + Visible = 0x2, + } +} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs new file mode 100644 index 00000000..eba647d5 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs @@ -0,0 +1,82 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// Specialization of a row for the WixBundlePackageCommandLine table. + /// + public class WixBundlePackageCommandLineRow : Row + { + /// + /// Creates a WixBundlePackageCommandLineRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from. + public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates an WixBundlePackageCommandLineRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from. + public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the package identifier. + /// + /// The package identifier. + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the command-line argument for installation. + /// + /// The command-line argument. + public string InstallArgument + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the command-line argument for uninstallation. + /// + /// The command-line argument. + public string UninstallArgument + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the command-line argument for repair. + /// + /// The command-line argument. + public string RepairArgument + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the condition. + /// + /// The condition. + public string Condition + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs new file mode 100644 index 00000000..410c191e --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs @@ -0,0 +1,51 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the ExitCode table. + /// + public class WixBundlePackageExitCodeRow : Row + { + /// + /// Creates a ExitCodeRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a ExitCodeRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public int? Code + { + get { return (null == this.Fields[1].Data) ? (int?)null : (int?)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public ExitCodeBehaviorType Behavior + { + get { return (ExitCodeBehaviorType)this.Fields[2].Data; } + set { this.Fields[2].Data = (int)value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageRow.cs new file mode 100644 index 00000000..e278e9d8 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundlePackageRow.cs @@ -0,0 +1,226 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixBundlePackage table. + /// + public sealed class WixBundlePackageRow : Row + { + /// + /// Creates a WixBundlePackage row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixBundlePackage row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key to the WixChainItem. + /// + public string WixChainItemId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the item type. + /// + public WixBundlePackageType Type + { + get { return (WixBundlePackageType)this.Fields[1].Data; } + set { this.Fields[1].Data = (int)value; } + } + + /// + /// Gets or sets the indentifier of the package's payload. + /// + public string PackagePayload + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the raw attributes of a package. + /// + public WixBundlePackageAttributes Attributes + { + get { return (WixBundlePackageAttributes)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the install condition of the package. + /// + public string InstallCondition + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the language of the package. + /// + public YesNoAlwaysType Cache + { + get { return (null == this.Fields[5].Data) ? YesNoAlwaysType.NotSet : (YesNoAlwaysType)this.Fields[5].Data; } + set { this.Fields[5].Data = (int)value; } + } + + /// + /// Gets or sets the indentifier of the package's cache. + /// + public string CacheId + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets whether the package is vital. + /// + public YesNoType Vital + { + get { return (null == this.Fields[7].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[7].Data; } + set { this.Fields[7].Data = (int)value; } + } + + /// + /// Gets or sets whether the package is per-machine. + /// + public YesNoDefaultType PerMachine + { + get { return (null == this.Fields[8].Data) ? YesNoDefaultType.NotSet : (YesNoDefaultType)this.Fields[8].Data; } + set { this.Fields[8].Data = (int)value; } + } + + /// + /// Gets or sets the variable that points to the log for the package. + /// + public string LogPathVariable + { + get { return (string)this.Fields[9].Data; } + set { this.Fields[9].Data = value; } + } + + /// + /// Gets or sets the variable that points to the rollback log for the package. + /// + public string RollbackLogPathVariable + { + get { return (string)this.Fields[10].Data; } + set { this.Fields[10].Data = value; } + } + + /// + /// Gets or sets the size of the package. + /// + public long Size + { + get { return (long)this.Fields[11].Data; } + set { this.Fields[11].Data = value; } + } + + /// + /// Gets or sets the install size of the package. + /// + public long? InstallSize + { + get { return (long?)this.Fields[12].Data; } + set { this.Fields[12].Data = value; } + } + + /// + /// Gets or sets the version of the package. + /// + public string Version + { + get { return (string)this.Fields[13].Data; } + set { this.Fields[13].Data = value; } + } + + /// + /// Gets or sets the language of the package. + /// + public int Language + { + get { return (int)this.Fields[14].Data; } + set { this.Fields[14].Data = value; } + } + + /// + /// Gets or sets the display name of the package. + /// + public string DisplayName + { + get { return (string)this.Fields[15].Data; } + set { this.Fields[15].Data = value; } + } + + /// + /// Gets or sets the description of the package. + /// + public string Description + { + get { return (string)this.Fields[16].Data; } + set { this.Fields[16].Data = value; } + } + + /// + /// Gets or sets the rollback boundary identifier for the package. + /// + public string RollbackBoundary + { + get { return (string)this.Fields[17].Data; } + set { this.Fields[17].Data = value; } + } + + /// + /// Gets or sets the backward rollback boundary identifier for the package. + /// + public string RollbackBoundaryBackward + { + get { return (string)this.Fields[18].Data; } + set { this.Fields[18].Data = value; } + } + + /// + /// Gets or sets whether the package is x64. + /// + public YesNoType x64 + { + get { return (null == this.Fields[19].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[19].Data; } + set { this.Fields[19].Data = (int)value; } + } + + /// + /// Gets whether the package is permanent. + /// + public bool Permanent + { + get { return 0 != (this.Attributes & WixBundlePackageAttributes.Permanent); } + } + + /// + /// Gets whether the package is visible. + /// + public bool Visible + { + get { return 0 != (this.Attributes & WixBundlePackageAttributes.Visible); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageType.cs b/src/WixToolset.Data/Rows/WixBundlePackageType.cs new file mode 100644 index 00000000..a4277a8a --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundlePackageType.cs @@ -0,0 +1,15 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Types of bundle packages. + /// + public enum WixBundlePackageType + { + Exe, + Msi, + Msp, + Msu, + } +} diff --git a/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs b/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs new file mode 100644 index 00000000..e25f4a55 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs @@ -0,0 +1,81 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Collections.Generic; + using System.Text; + + /// + /// Attributes for the PatchTargetCode table. + /// + [Flags] + public enum WixBundlePatchTargetCodeAttributes : int + { + None = 0, + + /// + /// The transform targets a specific ProductCode. + /// + TargetsProductCode = 1, + + /// + /// The transform targets a specific UpgradeCode. + /// + TargetsUpgradeCode = 2, + } + + /// + /// Specialization of a row for the PatchTargetCode table. + /// + public class WixBundlePatchTargetCodeRow : Row + { + /// + /// Creates a PatchTargetCodeRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this PatchTargetCode row belongs to and should get its column definitions from. + public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a PatchTargetCodeRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this PatchTargetCode row belongs to and should get its column definitions from. + public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public string MspPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string TargetCode + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public WixBundlePatchTargetCodeAttributes Attributes + { + get { return (WixBundlePatchTargetCodeAttributes)this.Fields[2].Data; } + set { this.Fields[2].Data = (int)value; } + } + + public bool TargetsProductCode + { + get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsProductCode & this.Attributes); } + } + + public bool TargetsUpgradeCode + { + get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode & this.Attributes); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs b/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs new file mode 100644 index 00000000..8aac8aa0 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs @@ -0,0 +1,185 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.IO; + + /// + /// Specialization of a row for the PayloadInfo table. + /// + public class WixBundlePayloadRow : Row + { + /// + /// Creates a PayloadRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a PayloadRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string Name + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public string SourceFile + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + public string DownloadUrl + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + public YesNoDefaultType Compressed + { + get { return (YesNoDefaultType)this.Fields[4].Data; } + set { this.Fields[4].Data = (int)value; } + } + + public string UnresolvedSourceFile + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + public string DisplayName + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + public string Description + { + get { return (string)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + public bool EnableSignatureValidation + { + get { return (null != this.Fields[8].Data) && (1 == (int)this.Fields[8].Data); } + set { this.Fields[8].Data = value ? 1 : 0; } + } + + public int FileSize + { + get { return (int)this.Fields[9].Data; } + set { this.Fields[9].Data = value; } + } + + public string Version + { + get { return (string)this.Fields[10].Data; } + set { this.Fields[10].Data = value; } + } + + public string Hash + { + get { return (string)this.Fields[11].Data; } + set { this.Fields[11].Data = value; } + } + + public string PublicKey + { + get { return (string)this.Fields[12].Data; } + set { this.Fields[12].Data = value; } + } + + public string Thumbprint + { + get { return (string)this.Fields[13].Data; } + set { this.Fields[13].Data = value; } + } + + public string Catalog + { + get { return (string)this.Fields[14].Data; } + set { this.Fields[14].Data = value; } + } + + public string Container + { + get { return (string)this.Fields[15].Data; } + set { this.Fields[15].Data = value; } + } + + public string Package + { + get { return (string)this.Fields[16].Data; } + set { this.Fields[16].Data = value; } + } + + public bool ContentFile + { + get { return (null != this.Fields[17].Data) && (1 == (int)this.Fields[17].Data); } + set { this.Fields[17].Data = value ? 1 : 0; } + } + + public string EmbeddedId + { + get { return (string)this.Fields[18].Data; } + set { this.Fields[18].Data = value; } + } + + public bool LayoutOnly + { + get { return (null != this.Fields[19].Data) && (1 == (int)this.Fields[19].Data); } + set { this.Fields[19].Data = value ? 1 : 0; } + } + + public PackagingType Packaging + { + get + { + object data = this.Fields[20].Data; + return (null == data) ? PackagingType.Unknown : (PackagingType)data; + } + + set + { + if (PackagingType.Unknown == value) + { + this.Fields[20].Data = null; + } + else + { + this.Fields[20].Data = (int)value; + } + } + } + + public string ParentPackagePayload + { + get { return (string)this.Fields[21].Data; } + set { this.Fields[21].Data = value; } + } + + public string FullFileName + { + get { return String.IsNullOrEmpty(this.SourceFile) ? String.Empty : Path.GetFullPath(this.SourceFile); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs new file mode 100644 index 00000000..ea9ff99e --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs @@ -0,0 +1,87 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the RelatedPackage table. + /// + public class WixBundleRelatedPackageRow : Row + { + /// + /// Creates a RelatedPackageRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a RelatedPackageRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string Id + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public string MinVersion + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + public string MaxVersion + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + public string Languages + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + public bool MinInclusive + { + get { return 1 == (int)this.Fields[5].Data; } + set { this.Fields[5].Data = value ? 1 : 0; } + } + + public bool MaxInclusive + { + get { return 1 == (int)this.Fields[6].Data; } + set { this.Fields[6].Data = value ? 1 : 0; } + } + + public bool LangInclusive + { + get { return 1 == (int)this.Fields[7].Data; } + set { this.Fields[7].Data = value ? 1 : 0; } + } + + public bool OnlyDetect + { + get { return 1 == (int)this.Fields[8].Data; } + set { this.Fields[8].Data = value ? 1 : 0; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs b/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs new file mode 100644 index 00000000..d0a994c0 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs @@ -0,0 +1,59 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixBundleRollbackBoundary table. + /// + public sealed class WixBundleRollbackBoundaryRow : Row + { + /// + /// Creates a WixBundleRollbackBoundary row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a RollbackBoundaryRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets whether the package is vital. + /// + /// Vitality of the package. + public YesNoType Vital + { + get { return (null == this.Fields[1].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[1].Data; } + set { this.Fields[1].Data = (int)value; } + } + + /// + /// Gets or sets whether the rollback-boundary should be installed as an MSI transaction. + /// + /// Vitality of the package. + public YesNoType Transaction + { + get { return (null == this.Fields[2].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[2].Data; } + set { this.Fields[2].Data = (int)value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleRow.cs b/src/WixToolset.Data/Rows/WixBundleRow.cs new file mode 100644 index 00000000..4c96d6cc --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleRow.cs @@ -0,0 +1,228 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// Bundle info for binding Bundles. + /// + public class WixBundleRow : Row + { + /// + /// Creates a WixBundleRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this WixBundleRow row belongs to and should get its column definitions from. + public WixBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixBundleRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this WixBundleRow row belongs to and should get its column definitions from. + public WixBundleRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public string Version + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string Copyright + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public string Name + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + public string AboutUrl + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + public int DisableModify + { + get { return (null == this.Fields[4].Data) ? 0 : (int)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + public bool DisableRemove + { + get { return (null != this.Fields[5].Data && 0 != (int)this.Fields[5].Data); } + set { this.Fields[5].Data = value ? 1 : 0; } + } + + // There is no 6. It used to be DisableRepair. + + public string HelpTelephone + { + get { return (string)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + public string HelpLink + { + get { return (string)this.Fields[8].Data; } + set { this.Fields[8].Data = value; } + } + + public string Publisher + { + get { return (string)this.Fields[9].Data; } + set { this.Fields[9].Data = value; } + } + + public string UpdateUrl + { + get { return (string)this.Fields[10].Data; } + set { this.Fields[10].Data = value; } + } + + public YesNoDefaultType Compressed + { + get { return (null == this.Fields[11].Data) ? YesNoDefaultType.Default : (0 == (int)this.Fields[11].Data) ? YesNoDefaultType.No : YesNoDefaultType.Yes; } + set { this.Fields[11].Data = (int)value; } + } + + public PackagingType DefaultPackagingType + { + get { return (YesNoDefaultType.No == this.Compressed) ? PackagingType.External : PackagingType.Embedded; } + } + + public string LogPathPrefixExtension + { + get { return (string)this.Fields[12].Data ?? String.Empty; } + set { this.Fields[12].Data = value; } + } + + public string LogPathVariable + { + get + { + string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); + return logVariableAndPrefixExtension[0]; + } + } + + public string LogPrefix + { + get + { + string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); + if (2 > logVariableAndPrefixExtension.Length) + { + return String.Empty; + } + string logPrefixAndExtension = logVariableAndPrefixExtension[1]; + int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); + return logPrefixAndExtension.Substring(0, extensionIndex); + } + } + + public string LogExtension + { + get + { + string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); + if (2 > logVariableAndPrefixExtension.Length) + { + return String.Empty; + } + string logPrefixAndExtension = logVariableAndPrefixExtension[1]; + int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); + return logPrefixAndExtension.Substring(extensionIndex + 1); + } + } + + public string IconPath + { + get { return (string)this.Fields[13].Data; } + set { this.Fields[13].Data = value; } + } + + public string SplashScreenBitmapPath + { + get { return (string)this.Fields[14].Data; } + set { this.Fields[14].Data = value; } + } + + public string Condition + { + get { return (string)this.Fields[15].Data; } + set { this.Fields[15].Data = value; } + } + + public string Tag + { + get { return (string)this.Fields[16].Data; } + set { this.Fields[16].Data = value; } + } + + public Platform Platform + { + get { return (Platform)Enum.Parse(typeof(Platform), (string)this.Fields[17].Data); } + set { this.Fields[17].Data = value.ToString(); } + } + + public string ParentName + { + get { return (string)this.Fields[18].Data; } + set { this.Fields[18].Data = value; } + } + + public string UpgradeCode + { + get { return (string)this.Fields[19].Data; } + set { this.Fields[19].Data = value; } + } + + public Guid BundleId + { + get + { + if (null == this.Fields[20].Data) + { + this.Fields[20].Data = Guid.NewGuid().ToString("B"); + } + + return new Guid((string)this.Fields[20].Data); + } + + set { this.Fields[20].Data = value.ToString(); } + } + + public string ProviderKey + { + get + { + if (null == this.Fields[21].Data) + { + this.Fields[21].Data = this.BundleId.ToString("B"); + } + + return (string)this.Fields[21].Data; + } + + set { this.Fields[21].Data = value; } + } + + public bool PerMachine + { + get { return (null != this.Fields[22].Data && 0 != (int)this.Fields[22].Data); } + set { this.Fields[22].Data = value ? 1 : 0; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs b/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs new file mode 100644 index 00000000..d11b23ef --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs @@ -0,0 +1,48 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the SlipstreamMsp table. + /// + public class WixBundleSlipstreamMspRow : Row + { + /// + /// Creates a SlipstreamMspRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a SlipstreamMspRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row. + /// + public string ChainPackageId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the foreign key identifier to the ChainPackage row for the MSP package. + /// + public string MspPackageId + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs b/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs new file mode 100644 index 00000000..e0150685 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs @@ -0,0 +1,38 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// Bundle update info for binding Bundles. + /// + public class WixBundleUpdateRow : Row + { + /// + /// Creates a WixBundleUpdateRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this WixBundleUpdateRow row belongs to and should get its column definitions from. + public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixBundleUpdateRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this WixBundleUpdateRow row belongs to and should get its column definitions from. + public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public string Location + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixBundleVariableRow.cs b/src/WixToolset.Data/Rows/WixBundleVariableRow.cs new file mode 100644 index 00000000..e7ff1a4d --- /dev/null +++ b/src/WixToolset.Data/Rows/WixBundleVariableRow.cs @@ -0,0 +1,80 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the Variable table. + /// + public sealed class WixBundleVariableRow : Row + { + /// + /// Creates a Variable row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a Variable row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the variable identifier. + /// + /// The variable identifier. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the variable's value. + /// + /// The variable's value. + public string Value + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the variable's type. + /// + /// The variable's type. + public string Type + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets whether this variable is hidden. + /// + /// Whether this variable is hidden. + public bool Hidden + { + get { return (null == this.Fields[3].Data || 0 == ((int)this.Fields[3].Data)) ? false : true; } + set { this.Fields[3].Data = value ? 1 : 0; } + } + + /// + /// Gets or sets whether this variable is persisted. + /// + /// Whether this variable is persisted. + public bool Persisted + { + get { return (null == this.Fields[4].Data || 0 == ((int)this.Fields[4].Data)) ? false : true; } + set { this.Fields[4].Data = value ? 1 : 0; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixChainAttributes.cs b/src/WixToolset.Data/Rows/WixChainAttributes.cs new file mode 100644 index 00000000..017505bc --- /dev/null +++ b/src/WixToolset.Data/Rows/WixChainAttributes.cs @@ -0,0 +1,15 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + [Flags] + public enum WixChainAttributes + { + None = 0x0, + DisableRollback = 0x1, + DisableSystemRestore = 0x2, + ParallelCache = 0x4, + } +} diff --git a/src/WixToolset.Data/Rows/WixChainItemRow.cs b/src/WixToolset.Data/Rows/WixChainItemRow.cs new file mode 100644 index 00000000..12538d71 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixChainItemRow.cs @@ -0,0 +1,39 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixChainItem table. + /// + public sealed class WixChainItemRow : Row + { + /// + /// Creates a WixChainItem row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this ChainItem row belongs to and should get its column definitions from. + public WixChainItemRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixChainItem row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this ChainItem row belongs to and should get its column definitions from. + public WixChainItemRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the WixChainItem identifier. + /// + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixChainRow.cs b/src/WixToolset.Data/Rows/WixChainRow.cs new file mode 100644 index 00000000..94600efa --- /dev/null +++ b/src/WixToolset.Data/Rows/WixChainRow.cs @@ -0,0 +1,63 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixChain table. + /// + public sealed class WixChainRow : Row + { + /// + /// Creates a WixChain row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixChainRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixChainRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixChainRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the raw chain attributes. + /// + public WixChainAttributes Attributes + { + get { return (WixChainAttributes)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets the disable rollback state of a chain. + /// + public bool DisableRollback + { + get { return 0 != (this.Attributes & WixChainAttributes.DisableRollback); } + } + + /// + /// Gets disable system restore state of a chain. + /// + public bool DisableSystemRestore + { + get { return 0 != (this.Attributes & WixChainAttributes.DisableSystemRestore); } + } + + /// + /// Gets parallel cache of a chain. + /// + public bool ParallelCache + { + get { return 0 != (this.Attributes & WixChainAttributes.ParallelCache); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs b/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs new file mode 100644 index 00000000..b516c5e9 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs @@ -0,0 +1,208 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Diagnostics; + using System.Diagnostics.CodeAnalysis; + using System.Xml; + + /// + /// Specialization of a row for the WixComplexReference table. + /// + public sealed class WixComplexReferenceRow : Row, IComparable + { + /// + /// Creates a WixComplexReferenceRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixComplexReferenceRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets the parent type of the complex reference. + /// + /// Parent type of the complex reference. + public ComplexReferenceParentType ParentType + { + get { return (ComplexReferenceParentType)Enum.ToObject(typeof(ComplexReferenceParentType), (int)this.Fields[1].Data); } + set { this.Fields[1].Data = (int)value; } + } + + /// + /// Gets or sets the parent identifier of the complex reference. + /// + /// Parent identifier of the complex reference. + public string ParentId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets the parent language of the complex reference. + /// + /// Parent language of the complex reference. + public string ParentLanguage + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets the child type of the complex reference. + /// + /// Child type of the complex reference. + public ComplexReferenceChildType ChildType + { + get { return (ComplexReferenceChildType)Enum.ToObject(typeof(ComplexReferenceChildType), (int)this.Fields[4].Data); } + set { this.Fields[4].Data = (int)value; } + } + + /// + /// Gets the child identifier of the complex reference. + /// + /// Child identifier of the complex reference. + public string ChildId + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets if this is the primary complex reference. + /// + /// true if primary complex reference. + public bool IsPrimary + { + get + { + return (0x1 == ((int)this.Fields[5].Data & 0x1)); + } + + set + { + if (null == this.Fields[5].Data) + { + this.Fields[5].Data = 0; + } + + if (value) + { + this.Fields[5].Data = (int)this.Fields[5].Data | 0x1; + } + else + { + this.Fields[5].Data = (int)this.Fields[5].Data & ~0x1; + } + } + } + + /// + /// Determines if two complex references are equivalent. + /// + /// Complex reference to compare. + /// True if complex references are equivalent. + public override bool Equals(object obj) + { + return 0 == this.CompareTo(obj); + } + + /// + /// Gets the hash code for the complex reference. + /// + /// Hash code for the complex reference. + public override int GetHashCode() + { + return this.ChildType.GetHashCode() ^ this.ChildId.GetHashCode() ^ this.ParentType.GetHashCode() ^ this.ParentLanguage.GetHashCode() ^ this.ParentId.GetHashCode() ^ this.IsPrimary.GetHashCode(); + } + + /// + /// Compares two complex references. + /// + /// Complex reference to compare to. + /// Zero if the objects are equivalent, negative number if the provided object is less, positive if greater. + public int CompareTo(object obj) + { + int comparison = this.CompareToWithoutConsideringPrimary(obj); + if (0 == comparison) + { + comparison = ((WixComplexReferenceRow)obj).IsPrimary.CompareTo(this.IsPrimary); // Note: the order of these is purposely switched to ensure that "Yes" is lower than "No" and "NotSet" + } + return comparison; + } + + /// + /// Compares two complex references without considering the primary bit. + /// + /// Complex reference to compare to. + /// Zero if the objects are equivalent, negative number if the provided object is less, positive if greater. + [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")] + public int CompareToWithoutConsideringPrimary(object obj) + { + WixComplexReferenceRow other = obj as WixComplexReferenceRow; + if (null == other) + { + throw new ArgumentException(WixDataStrings.EXP_ExpectedComplexReferenceType, "obj"); + } + + int comparison = this.ChildType - other.ChildType; + if (0 == comparison) + { + comparison = String.Compare(this.ChildId, other.ChildId, StringComparison.Ordinal); + if (0 == comparison) + { + comparison = this.ParentType - other.ParentType; + if (0 == comparison) + { + string thisParentLanguage = null == this.ParentLanguage ? String.Empty : this.ParentLanguage; + string otherParentLanguage = null == other.ParentLanguage ? String.Empty : other.ParentLanguage; + comparison = String.Compare(thisParentLanguage, otherParentLanguage, StringComparison.Ordinal); + if (0 == comparison) + { + comparison = String.Compare(this.ParentId, other.ParentId, StringComparison.Ordinal); + } + } + } + } + + return comparison; + } + + /// + /// Creates a shallow copy of the ComplexReference. + /// + /// A shallow copy of the ComplexReference. + public WixComplexReferenceRow Clone() + { + WixComplexReferenceRow wixComplexReferenceRow = new WixComplexReferenceRow(this.SourceLineNumbers, this.Table); + wixComplexReferenceRow.ParentType = this.ParentType; + wixComplexReferenceRow.ParentId = this.ParentId; + wixComplexReferenceRow.ParentLanguage = this.ParentLanguage; + wixComplexReferenceRow.ChildType = this.ChildType; + wixComplexReferenceRow.ChildId = this.ChildId; + wixComplexReferenceRow.IsPrimary = this.IsPrimary; + + return wixComplexReferenceRow; + } + + /// + /// Changes all of the parent references to point to the passed in parent reference. + /// + /// New parent complex reference. + public void Reparent(WixComplexReferenceRow parent) + { + this.ParentId = parent.ParentId; + this.ParentLanguage = parent.ParentLanguage; + this.ParentType = parent.ParentType; + + if (!this.IsPrimary) + { + this.IsPrimary = parent.IsPrimary; + } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs b/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs new file mode 100644 index 00000000..000779d9 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs @@ -0,0 +1,142 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixDeltaPatchFile table. + /// + public sealed class WixDeltaPatchFileRow : Row + { + /// + /// Creates a WixDeltaPatchFile row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixDeltaPatchFile row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this File row belongs to and should get its column definitions from. + public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the primary key of the file row. + /// + /// Primary key of the file row. + public string File + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the delta patch retain-length list for the file. + /// + /// RetainLength list for the file. + public string RetainLengths + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the previous delta patch retain-length list for the file. + /// + /// Previous RetainLength list for the file. + public string PreviousRetainLengths + { + get { return this.Fields[1].PreviousData; } + set { this.Fields[1].PreviousData = value; } + } + + /// + /// Gets or sets the delta patch ignore-offset list for the file. + /// + /// IgnoreOffset list for the file. + public string IgnoreOffsets + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the previous delta patch ignore-offset list for the file. + /// + /// Previous IgnoreOffset list for the file. + public string PreviousIgnoreOffsets + { + get { return this.Fields[2].PreviousData; } + set { this.Fields[2].PreviousData = value; } + } + + /// + /// Gets or sets the delta patch ignore-length list for the file. + /// + /// IgnoreLength list for the file. + public string IgnoreLengths + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the previous delta patch ignore-length list for the file. + /// + /// Previous IgnoreLength list for the file. + public string PreviousIgnoreLengths + { + get { return this.Fields[3].PreviousData; } + set { this.Fields[3].PreviousData = value; } + } + + /// + /// Gets or sets the delta patch retain-offset list for the file. + /// + /// RetainOffset list for the file. + public string RetainOffsets + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the previous delta patch retain-offset list for the file. + /// + /// PreviousRetainOffset list for the file. + public string PreviousRetainOffsets + { + get { return this.Fields[4].PreviousData; } + set { this.Fields[4].PreviousData = value; } + } + + /// + /// Gets or sets the symbol paths for the file. + /// + /// SymbolPath list for the file. + /// This is set during binding. + public string Symbols + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the previous symbol paths for the file. + /// + /// PreviousSymbolPath list for the file. + /// This is set during binding. + public string PreviousSymbols + { + get { return (string)this.Fields[5].PreviousData; } + set { this.Fields[5].PreviousData = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs b/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs new file mode 100644 index 00000000..b6c0b840 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs @@ -0,0 +1,58 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixDeltaPatchSymbolPaths table. + /// + public sealed class WixDeltaPatchSymbolPathsRow : Row + { + /// + /// Creates a WixDeltaPatchSymbolPaths row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixDeltaPatchSymbolPaths row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the identifier the symbol paths apply to. + /// + /// RetainLength list for the file. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the type of the identifier. + /// + public SymbolPathType Type + { + get { return (SymbolPathType)this.Fields[1].AsInteger(); } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the delta patch symbol paths. + /// + public string SymbolPaths + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixFileRow.cs b/src/WixToolset.Data/Rows/WixFileRow.cs new file mode 100644 index 00000000..52723f88 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixFileRow.cs @@ -0,0 +1,161 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixFile table. + /// + public sealed class WixFileRow : Row + { + /// + /// Creates a WixFile row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row belongs to and should get its column definitions from. + public WixFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixFile row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixFileRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the primary key of the file row. + /// + /// Primary key of the file row. + public string File + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the assembly type of the file row. + /// + /// Assembly type of the file row. + public FileAssemblyType AssemblyType + { + get { return (null == this.Fields[1]) ? FileAssemblyType.NotAnAssembly : (FileAssemblyType)this.Fields[1].AsInteger(); } + set { this.Fields[1].Data = (int)value; } + } + + /// + /// Gets or sets the identifier for the assembly manifest. + /// + /// Identifier for the assembly manifest. + public string AssemblyManifest + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the application for the assembly. + /// + /// Application for the assembly. + public string AssemblyApplication + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the directory of the file. + /// + /// Directory of the file. + public string Directory + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the disk id for this file. + /// + /// Disk id for the file. + public int DiskId + { + get { return (int)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the source location to the file. + /// + /// Source location to the file. + public string Source + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets the source location to the file. + /// + /// Source location to the file. + public string PreviousSource + { + get { return (string)this.Fields[6].PreviousData; } + set { this.Fields[6].PreviousData = value; } + } + + /// + /// Gets or sets the architecture the file executes on. + /// + /// Architecture the file executes on. + public string ProcessorArchitecture + { + get { return (string)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + /// + /// Gets or sets the patch group of a patch-added file. + /// + /// The patch group of a patch-added file. + public int PatchGroup + { + get { return (null == this.Fields[8].Data) ? 0 : (int)this.Fields[8].Data; } + set { this.Fields[8].Data = value; } + } + + /// + /// Gets or sets the attributes on a file. + /// + /// Attributes on a file. + public int Attributes + { + get { return (int)this.Fields[9].Data; } + set { this.Fields[9].Data = value; } + } + + /// + /// Gets or sets the patching attributes to the file. + /// + /// Patching attributes of the file. + public PatchAttributeType PatchAttributes + { + get { return (PatchAttributeType)this.Fields[10].AsInteger(); } + set { this.Fields[10].Data = (int)value; } + } + + /// + /// Gets or sets the path to the delta patch header. + /// + /// Patch header path. + /// Set by the binder only when doing delta patching. + public string DeltaPatchHeaderSource + { + get { return (string)this.Fields[11].Data; } + set { this.Fields[11].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixGroupRow.cs b/src/WixToolset.Data/Rows/WixGroupRow.cs new file mode 100644 index 00000000..d36338d1 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixGroupRow.cs @@ -0,0 +1,62 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// Specialization of a row for the WixGroup table. + /// + public sealed class WixGroupRow : Row + { + /// + /// Creates a WixGroupRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixGroupRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the parent identifier of the complex reference. + /// + /// Parent identifier of the complex reference. + public string ParentId + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets the parent type of the complex reference. + /// + /// Parent type of the complex reference. + public ComplexReferenceParentType ParentType + { + get { return (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[1].Data); } + set { this.Fields[1].Data = value.ToString(); } + } + + /// + /// Gets the child identifier of the complex reference. + /// + /// Child identifier of the complex reference. + public string ChildId + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets the child type of the complex reference. + /// + /// Child type of the complex reference. + public ComplexReferenceChildType ChildType + { + get { return (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[3].Data); } + set { this.Fields[3].Data = value.ToString(); } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixMediaRow.cs b/src/WixToolset.Data/Rows/WixMediaRow.cs new file mode 100644 index 00000000..c1b3e155 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixMediaRow.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixMedia table. + /// + public sealed class WixMediaRow : Row + { + /// + /// Creates a WixMedia row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public WixMediaRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixMedia row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public WixMediaRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the disk id for this media. + /// + /// Disk id for the media. + public int DiskId + { + get { return (int)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the compression level for this media row. + /// + /// Compression level. + public CompressionLevel? CompressionLevel + { + get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the layout location for this media row. + /// + /// Layout location to the root of the media. + public string Layout + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs b/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs new file mode 100644 index 00000000..27c5ccce --- /dev/null +++ b/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs @@ -0,0 +1,81 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the MediaTemplate table. + /// + public sealed class WixMediaTemplateRow : Row + { + /// + /// Creates a MediaTemplate row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this MediaTeplate row belongs to and should get its column definitions from. + public WixMediaTemplateRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the cabinet template name for this media template row. + /// + /// Cabinet name. + public string CabinetTemplate + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the compression level for this media template row. + /// + /// Compression level. + public CompressionLevel? CompressionLevel + { + get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the disk prompt for this media template row. + /// + /// Disk prompt. + public string DiskPrompt + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + + /// + /// Gets or sets the volume label for this media template row. + /// + /// Volume label. + public string VolumeLabel + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the maximum uncompressed media size for this media template row. + /// + /// Disk id. + public int MaximumUncompressedMediaSize + { + get { return (int)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the Maximum Cabinet Size For Large File Splitting for this media template row. + /// + /// Disk id. + public int MaximumCabinetSizeForLargeFileSplitting + { + get { return (int)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixMergeRow.cs b/src/WixToolset.Data/Rows/WixMergeRow.cs new file mode 100644 index 00000000..54f2125c --- /dev/null +++ b/src/WixToolset.Data/Rows/WixMergeRow.cs @@ -0,0 +1,149 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Globalization; + using System.Text; + using System.Xml; + + /// + /// Specialization of a row for tracking merge statements. + /// + public sealed class WixMergeRow : Row + { + /// + /// Creates a Merge row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Merge row belongs to and should get its column definitions from. + public WixMergeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// Creates a Merge row that belongs to a table. + /// Original source lines for this row. + /// Table this Merge row belongs to and should get its column definitions from. + public WixMergeRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets and sets the id for a merge row. + /// + /// Id for the row. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets and sets the language for a merge row. + /// + /// Language for the row. + public string Language + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets and sets the directory for a merge row. + /// + /// Direcotory for the row. + public string Directory + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets and sets the path to the merge module for a merge row. + /// + /// Source path for the row. + public string SourceFile + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets and sets the disk id the merge module should be placed on for a merge row. + /// + /// Disk identifier for row. + public int DiskId + { + get { return (int)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets and sets the compression value for a merge row. + /// + /// Compression for a merge row. + public YesNoType FileCompression + { + get + { + if (null == this.Fields[5].Data) + { + return YesNoType.NotSet; + } + else if (1 == (int)this.Fields[5].Data) + { + return YesNoType.Yes; + } + else if (0 == (int)this.Fields[5].Data) + { + return YesNoType.No; + } + else + { + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_MergeTableFileCompressionColumnContainsInvalidValue, this.Fields[5].Data)); + } + } + set + { + if (YesNoType.Yes == value) + { + this.Fields[5].Data = 1; + } + else if (YesNoType.No == value) + { + this.Fields[5].Data = 0; + } + else if (YesNoType.NotSet == value) + { + this.Fields[5].Data = null; + } + else + { + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue, value)); + } + } + } + + /// + /// Gets and sets the configuration data for a merge row. + /// + /// Comma delimited string of "name=value" pairs. + public string ConfigurationData + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets and sets the primary feature for a merge row. + /// + /// The primary feature for a merge row. + public string Feature + { + get { return (string)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs b/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs new file mode 100644 index 00000000..2e5f53ad --- /dev/null +++ b/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs @@ -0,0 +1,81 @@ +//------------------------------------------------------------------------------------------------- +// +// Copyright (c) 2004, Outercurve Foundation. +// This software is released under Microsoft Reciprocal License (MS-RL). +// The license and further copyright text can be found in the file +// LICENSE.TXT at the root directory of the distribution. +// +//------------------------------------------------------------------------------------------------- + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// Specialization of a row for the WixPayloadProperties table. + /// + public class WixPayloadPropertiesRow : Row + { + /// + /// Creates a WixPayloadProperties row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this WixPayloadProperties row belongs to and should get its column definitions from. + public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixPayloadProperties row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this WixPayloadProperties row belongs to and should get its column definitions from. + public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string Package + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public string Container + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + public string Name + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + public string Size + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + public string DownloadUrl + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + public string LayoutOnly + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixPropertyRow.cs b/src/WixToolset.Data/Rows/WixPropertyRow.cs new file mode 100644 index 00000000..5285195c --- /dev/null +++ b/src/WixToolset.Data/Rows/WixPropertyRow.cs @@ -0,0 +1,118 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Globalization; + + /// + /// Specialization of a row for the WixProperty table. + /// + public sealed class WixPropertyRow : Row + { + /// Creates a WixProperty row that belongs to a table. + /// Original source lines for this row. + /// Table this WixProperty row belongs to and should get its column definitions from. + public WixPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + /// + /// Gets and sets the id for this property row. + /// + /// Id for the property. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets and sets if this is an admin property row. + /// + /// Flag if this is an admin property. + public bool Admin + { + get + { + return (0x1 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x1)); + } + + set + { + if (null == this.Fields[1].Data) + { + this.Fields[1].Data = 0; + } + + if (value) + { + this.Fields[1].Data = (int)this.Fields[1].Data | 0x1; + } + else + { + this.Fields[1].Data = (int)this.Fields[1].Data & ~0x1; + } + } + } + + /// + /// Gets and sets if this is a hidden property row. + /// + /// Flag if this is a hidden property. + public bool Hidden + { + get + { + return (0x2 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x2)); + } + + set + { + if (null == this.Fields[1].Data) + { + this.Fields[1].Data = 0; + } + + if (value) + { + this.Fields[1].Data = (int)this.Fields[1].Data | 0x2; + } + else + { + this.Fields[1].Data = (int)this.Fields[1].Data & ~0x2; + } + } + } + + /// + /// Gets and sets if this is a secure property row. + /// + /// Flag if this is a secure property. + public bool Secure + { + get + { + return (0x4 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x4)); + } + + set + { + if (null == this.Fields[1].Data) + { + this.Fields[1].Data = 0; + } + + if (value) + { + this.Fields[1].Data = (int)this.Fields[1].Data | 0x4; + } + else + { + this.Fields[1].Data = (int)this.Fields[1].Data & ~0x4; + } + } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs b/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs new file mode 100644 index 00000000..95fffde5 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using Serialize = WixToolset.Data.Serialize; + + /// + /// Specialization of a row for the RelatedBundle table. + /// + public sealed class WixRelatedBundleRow : Row + { + /// + /// Creates a RelatedBundle row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this RelatedBundle row belongs to and should get its column definitions from. + public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a RelatedBundle row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this RelatedBundle row belongs to and should get its column definitions from. + public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the related bundle identifier. + /// + /// The related bundle identifier. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the related bundle action. + /// + /// The related bundle action. + public Serialize.RelatedBundle.ActionType Action + { + get { return (Serialize.RelatedBundle.ActionType)this.Fields[1].Data; } + set { this.Fields[1].Data = (int)value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs b/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs new file mode 100644 index 00000000..3a2cf8f1 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs @@ -0,0 +1,63 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Diagnostics; + using System.Xml; + + /// + /// Specialization of a row for the WixSimpleReference table. + /// + public sealed class WixSimpleReferenceRow : Row + { + /// + /// Creates a WixSimpleReferenceRow that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Creates a WixSimpleReferenceRow that belongs to a table. + /// + /// Original source lines for this row. + /// Table definitions for this row. + public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinitions) + : base(sourceLineNumbers, tableDefinitions) + { + } + + /// + /// Gets or sets the primary keys of the simple reference. + /// + /// The primary keys of the simple reference. + public string PrimaryKeys + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets the symbolic name. + /// + /// Symbolic name. + public string SymbolicName + { + get { return String.Concat(this.TableName, ":", this.PrimaryKeys); } + } + + /// + /// Gets or sets the table name of the simple reference. + /// + /// The table name of the simple reference. + public string TableName + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs b/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs new file mode 100644 index 00000000..8d86f970 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs @@ -0,0 +1,62 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + + /// + /// Update registration information for Binding. + /// + public class WixUpdateRegistrationRow : Row + { + /// + /// Creates a WixUpdateRegistrationRow row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this WixUpdateRegistrationRow row belongs to and should get its column definitions from. + public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixUpdateRegistrationRow row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this WixUpdateRegistrationRow row belongs to and should get its column definitions from. + public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public string Manufacturer + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + public string Department + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + public string ProductFamily + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + public string Name + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + public string Classification + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + } +} diff --git a/src/WixToolset.Data/Rows/WixVariableRow.cs b/src/WixToolset.Data/Rows/WixVariableRow.cs new file mode 100644 index 00000000..241c9257 --- /dev/null +++ b/src/WixToolset.Data/Rows/WixVariableRow.cs @@ -0,0 +1,81 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + using System; + using System.Globalization; + + /// + /// Specialization of a row for the WixVariable table. + /// + public sealed class WixVariableRow : Row + { + /// + /// Creates a WixVariable row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this WixVariable row belongs to and should get its column definitions from. + public WixVariableRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : + base(sourceLineNumbers, tableDef) + { + } + + /// + /// Creates a WixVariable row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this WixVariable row belongs to and should get its column definitions from. + public WixVariableRow(SourceLineNumber sourceLineNumbers, Table table) : base(sourceLineNumbers, table) + { + } + + /// + /// Gets or sets the variable identifier. + /// + /// The variable identifier. + public string Id + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the variable's value. + /// + /// The variable's value. + public string Value + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets whether this variable is overridable. + /// + /// Whether this variable is overridable. + public bool Overridable + { + get + { + return (0x1 == (Convert.ToInt32(this.Fields[2].Data, CultureInfo.InvariantCulture) & 0x1)); + } + + set + { + if (null == this.Fields[2].Data) + { + this.Fields[2].Data = 0; + } + + if (value) + { + this.Fields[2].Data = (int)this.Fields[2].Data | 0x1; + } + else + { + this.Fields[2].Data = (int)this.Fields[2].Data & ~0x1; + } + } + } + } +} diff --git a/src/WixToolset.Data/Section.cs b/src/WixToolset.Data/Section.cs new file mode 100644 index 00000000..6757aa77 --- /dev/null +++ b/src/WixToolset.Data/Section.cs @@ -0,0 +1,240 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Globalization; + using System.Linq; + using System.Xml; + + /// + /// Section in an object file. + /// + public sealed class Section + { + /// + /// Creates a new section as part of an intermediate. + /// + /// Identifier for section. + /// Type of section. + /// Codepage for resulting database. + public Section(string id, SectionType type, int codepage) + { + this.Id = id; + this.Type = type; + this.Codepage = codepage; + + this.Tables = new TableIndexedCollection(); + } + + /// + /// Gets the identifier for the section. + /// + /// Section identifier. + public string Id { get; private set; } + + /// + /// Gets the type of the section. + /// + /// Type of section. + public SectionType Type { get; private set; } + + /// + /// Gets the codepage for the section. + /// + /// Codepage for the section. + public int Codepage { get; private set; } + + /// + /// Gets the tables in the section. + /// + /// Tables in section. + public TableIndexedCollection Tables { get; private set; } + + /// + /// Gets the source line information of the file containing this section. + /// + /// The source line information of the file containing this section. + public SourceLineNumber SourceLineNumbers { get; private set; } + + /// + /// Gets the identity of the intermediate the section is contained within. + /// + public string IntermediateId { get; internal set; } + + /// + /// Gets the identity of the library when the section is contained within one. + /// + public string LibraryId { get; internal set; } + + /// + /// Ensures a table is added to the section's table collection. + /// + /// Table definition for the table. + /// Table in the section. + public Table EnsureTable(TableDefinition tableDefinition) + { + Table table; + if (!this.Tables.TryGetTable(tableDefinition.Name, out table)) + { + table = new Table(this, tableDefinition); + this.Tables.Add(table); + } + + return table; + } + + /// + /// Parse a section from the xml. + /// + /// XmlReader where the intermediate is persisted. + /// TableDefinitions to use in the intermediate. + /// The parsed Section. + internal static Section Read(XmlReader reader, TableDefinitionCollection tableDefinitions) + { + Debug.Assert("section" == reader.LocalName); + + int codepage = 0; + bool empty = reader.IsEmptyElement; + string id = null; + SectionType type = SectionType.Unknown; + + while (reader.MoveToNextAttribute()) + { + switch (reader.Name) + { + case "codepage": + codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); + break; + case "id": + id = reader.Value; + break; + case "type": + switch (reader.Value) + { + case "bundle": + type = SectionType.Bundle; + break; + case "fragment": + type = SectionType.Fragment; + break; + case "module": + type = SectionType.Module; + break; + case "patchCreation": + type = SectionType.PatchCreation; + break; + case "product": + type = SectionType.Product; + break; + case "patch": + type = SectionType.Patch; + break; + default: + throw new XmlException(); + } + break; + } + } + + if (null == id && (SectionType.Unknown != type && SectionType.Fragment != type)) + { + throw new XmlException(); + } + + if (SectionType.Unknown == type) + { + throw new XmlException(); + } + + Section section = new Section(id, type, codepage); + section.SourceLineNumbers = SourceLineNumber.CreateFromUri(reader.BaseURI); + + List
tables = new List
(); + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "table": + tables.Add(Table.Read(reader, section, tableDefinitions)); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + section.Tables = new TableIndexedCollection(tables); + + return section; + } + + /// + /// Persist the Section to an XmlWriter. + /// + /// XmlWriter which reference will be persisted to. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("section", Intermediate.XmlNamespaceUri); + + if (null != this.Id) + { + writer.WriteAttributeString("id", this.Id); + } + + switch (this.Type) + { + case SectionType.Bundle: + writer.WriteAttributeString("type", "bundle"); + break; + case SectionType.Fragment: + writer.WriteAttributeString("type", "fragment"); + break; + case SectionType.Module: + writer.WriteAttributeString("type", "module"); + break; + case SectionType.Product: + writer.WriteAttributeString("type", "product"); + break; + case SectionType.PatchCreation: + writer.WriteAttributeString("type", "patchCreation"); + break; + case SectionType.Patch: + writer.WriteAttributeString("type", "patch"); + break; + } + + if (0 != this.Codepage) + { + writer.WriteAttributeString("codepage", this.Codepage.ToString()); + } + + // save the rows in table order + foreach (Table table in this.Tables.OrderBy(t => t.Name)) + { + table.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/SectionType.cs b/src/WixToolset.Data/SectionType.cs new file mode 100644 index 00000000..3322ba1a --- /dev/null +++ b/src/WixToolset.Data/SectionType.cs @@ -0,0 +1,31 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Type of section. + /// + public enum SectionType + { + /// Unknown section type, default and invalid. + Unknown, + + /// Bundle section type. + Bundle, + + /// Fragment section type. + Fragment, + + /// Module section type. + Module, + + /// Product section type. + Product, + + /// Patch creation section type. + PatchCreation, + + /// Patch section type. + Patch + } +} diff --git a/src/WixToolset.Data/Serialize/CodeDomInterfaces.cs b/src/WixToolset.Data/Serialize/CodeDomInterfaces.cs new file mode 100644 index 00000000..36a05202 --- /dev/null +++ b/src/WixToolset.Data/Serialize/CodeDomInterfaces.cs @@ -0,0 +1,96 @@ +// 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. + +namespace WixToolset.Data.Serialize +{ + using System; + using System.Collections; + using System.Xml; + + /// + /// Interface for generated schema elements. + /// + public interface ISchemaElement + { + /// + /// Gets and sets the parent of this element. May be null. + /// + /// An ISchemaElement that has this element as a child. + ISchemaElement ParentElement + { + get; + set; + } + + /// + /// Outputs xml representing this element, including the associated attributes + /// and any nested elements. + /// + /// XmlWriter to be used when outputting the element. + void OutputXml(XmlWriter writer); + } + + /// + /// Interface for generated schema elements. Implemented by elements that have child + /// elements. + /// + public interface IParentElement + { + /// + /// Gets an enumerable collection of the children of this element. + /// + /// An enumerable collection of the children of this element. + IEnumerable Children + { + get; + } + + /// + /// Gets an enumerable collection of the children of this element, filtered + /// by the passed in type. + /// + /// The type of children to retrieve. + IEnumerable this[Type childType] + { + get; + } + + /// + /// Adds a child to this element. + /// + /// Child to add. + void AddChild(ISchemaElement child); + + /// + /// Removes a child from this element. + /// + /// Child to remove. + void RemoveChild(ISchemaElement child); + } + + /// + /// Interface for generated schema elements. Implemented by classes with attributes. + /// + public interface ISetAttributes + { + /// + /// Sets the attribute with the given name to the given value. The value here is + /// a string, and is converted to the strongly-typed version inside this method. + /// + /// The name of the attribute to set. + /// The value to assign to the attribute. + void SetAttribute(string name, string value); + } + + /// + /// Interface for generated schema elements. Implemented by classes with children. + /// + public interface ICreateChildren + { + /// + /// Creates an instance of the child with the passed in name. + /// + /// String matching the element name of the child when represented in XML. + /// An instance of that child. + ISchemaElement CreateChild(string childName); + } +} diff --git a/src/WixToolset.Data/Serialize/CodeDomReader.cs b/src/WixToolset.Data/Serialize/CodeDomReader.cs new file mode 100644 index 00000000..76013936 --- /dev/null +++ b/src/WixToolset.Data/Serialize/CodeDomReader.cs @@ -0,0 +1,161 @@ +// 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. + +namespace WixToolset.Data.Serialize +{ + using System; + using System.Diagnostics.CodeAnalysis; + using System.Globalization; + using System.Reflection; + using System.Xml; + + /// + /// Class used for reading XML files in to the CodeDom. + /// + public class CodeDomReader + { + private Assembly[] assemblies; + + /// + /// Creates a new CodeDomReader, using the current assembly. + /// + public CodeDomReader() + { + this.assemblies = new Assembly[] { Assembly.GetExecutingAssembly() }; + } + + /// + /// Creates a new CodeDomReader, and takes in a list of assemblies in which to + /// look for elements. + /// + /// Assemblies in which to look for types that correspond + /// to elements. + public CodeDomReader(Assembly[] assemblies) + { + this.assemblies = assemblies; + } + + /// + /// Loads an XML file into a strongly-typed code dom. + /// + /// File to load into the code dom. + /// The strongly-typed object at the root of the tree. + [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")] + public ISchemaElement Load(string filePath) + { + XmlDocument document = new XmlDocument(); + document.Load(filePath); + ISchemaElement schemaElement = null; + + foreach (XmlNode node in document.ChildNodes) + { + XmlElement element = node as XmlElement; + if (element != null) + { + if (schemaElement != null) + { + throw new InvalidOperationException(WixDataStrings.EXP_MultipleRootElementsFoundInFile); + } + + schemaElement = this.CreateObjectFromElement(element); + this.ParseObjectFromElement(schemaElement, element); + } + } + return schemaElement; + } + + /// + /// Sets an attribute on an ISchemaElement. + /// + /// Schema element to set attribute on. + /// Name of the attribute to set. + /// Value to set on the attribute. + [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")] + private static void SetAttributeOnObject(ISchemaElement schemaElement, string name, string value) + { + ISetAttributes setAttributes = schemaElement as ISetAttributes; + if (setAttributes == null) + { + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_ISchemaElementDoesnotImplementISetAttribute, schemaElement.GetType().FullName)); + } + else + { + setAttributes.SetAttribute(name, value); + } + } + + /// + /// Parses an ISchemaElement from the XmlElement. + /// + /// ISchemaElement to fill in. + /// XmlElement to parse from. + [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")] + private void ParseObjectFromElement(ISchemaElement schemaElement, XmlElement element) + { + foreach (XmlAttribute attribute in element.Attributes) + { + SetAttributeOnObject(schemaElement, attribute.LocalName, attribute.Value); + } + + foreach (XmlNode node in element.ChildNodes) + { + XmlElement childElement = node as XmlElement; + if (childElement != null) + { + ISchemaElement childSchemaElement = null; + ICreateChildren createChildren = schemaElement as ICreateChildren; + if (createChildren == null) + { + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_ISchemaElementDoesnotImplementICreateChildren, element.LocalName)); + } + else + { + childSchemaElement = createChildren.CreateChild(childElement.LocalName); + } + + if (childSchemaElement == null) + { + childSchemaElement = this.CreateObjectFromElement(childElement); + if (childSchemaElement == null) + { + throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_XmlElementDoesnotHaveISchemaElement, childElement.LocalName)); + } + } + + this.ParseObjectFromElement(childSchemaElement, childElement); + IParentElement parentElement = (IParentElement)schemaElement; + parentElement.AddChild(childSchemaElement); + } + else + { + XmlText childText = node as XmlText; + if (childText != null) + { + SetAttributeOnObject(schemaElement, "Content", childText.Value); + } + } + } + } + + /// + /// Creates an object from an XML element by digging through the assembly list. + /// + /// XML Element to create an ISchemaElement from. + /// A constructed ISchemaElement. + private ISchemaElement CreateObjectFromElement(XmlElement element) + { + ISchemaElement schemaElement = null; + foreach (Assembly assembly in this.assemblies) + { + foreach (Type type in assembly.GetTypes()) + { + if (type.FullName.EndsWith(element.LocalName, StringComparison.Ordinal) + && typeof(ISchemaElement).IsAssignableFrom(type)) + { + schemaElement = (ISchemaElement)Activator.CreateInstance(type); + } + } + } + return schemaElement; + } + } +} diff --git a/src/WixToolset.Data/Serialize/ElementCollection.cs b/src/WixToolset.Data/Serialize/ElementCollection.cs new file mode 100644 index 00000000..1d64c5eb --- /dev/null +++ b/src/WixToolset.Data/Serialize/ElementCollection.cs @@ -0,0 +1,617 @@ +// 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. + +namespace WixToolset.Data.Serialize +{ + using System; + using System.Collections; + using System.Globalization; + + /// + /// Collection used in the CodeDOM for the children of a given element. Provides type-checking + /// on the allowed children to ensure that only allowed types are added. + /// + public class ElementCollection : ICollection, IEnumerable + { + private CollectionType collectionType; + private int totalContainedItems; + private int containersUsed; + private ArrayList items; + + /// + /// Creates a new element collection. + /// + /// Type of the collection to create. + public ElementCollection(CollectionType collectionType) + { + this.collectionType = collectionType; + this.items = new ArrayList(); + } + + /// + /// Enum representing types of XML collections. + /// + public enum CollectionType + { + /// + /// A choice type, corresponding to the XSD choice element. + /// + Choice, + + /// + /// A sequence type, corresponding to the XSD sequence element. + /// + Sequence + } + + /// + /// Gets the type of collection. + /// + /// The type of collection. + public CollectionType Type + { + get { return this.collectionType; } + } + + /// + /// Gets the count of child elements in this collection (counts ISchemaElements, not nested collections). + /// + /// The count of child elements in this collection (counts ISchemaElements, not nested collections). + public int Count + { + get { return this.totalContainedItems; } + } + + /// + /// Gets the flag specifying whether this collection is synchronized. Always returns false. + /// + /// The flag specifying whether this collection is synchronized. Always returns false. + public bool IsSynchronized + { + get { return false; } + } + + /// + /// Gets an object external callers can synchronize on. + /// + /// An object external callers can synchronize on. + public object SyncRoot + { + get { return this; } + } + + /// + /// Adds a child element to this collection. + /// + /// The element to add. + /// Thrown if the child is not of an allowed type. + public void AddElement(ISchemaElement element) + { + foreach (object obj in this.items) + { + bool containerUsed; + + CollectionItem collectionItem = obj as CollectionItem; + if (collectionItem != null) + { + containerUsed = collectionItem.Elements.Count != 0; + if (collectionItem.ElementType.IsAssignableFrom(element.GetType())) + { + collectionItem.AddElement(element); + + if (!containerUsed) + { + this.containersUsed++; + } + + this.totalContainedItems++; + return; + } + + continue; + } + + ElementCollection collection = obj as ElementCollection; + if (collection != null) + { + containerUsed = collection.Count != 0; + + try + { + collection.AddElement(element); + + if (!containerUsed) + { + this.containersUsed++; + } + + this.totalContainedItems++; + return; + } + catch (ArgumentException) + { + // Eat the exception and keep looking. We'll throw our own if we can't find its home. + } + + continue; + } + } + + throw new ArgumentException(String.Format( + CultureInfo.InvariantCulture, + WixDataStrings.EXP_ElementOfTypeIsNotValidForThisCollection, + element.GetType().Name)); + } + + /// + /// Removes a child element from this collection. + /// + /// The element to remove. + /// Thrown if the element is not of an allowed type. + public void RemoveElement(ISchemaElement element) + { + foreach (object obj in this.items) + { + CollectionItem collectionItem = obj as CollectionItem; + if (collectionItem != null) + { + if (collectionItem.ElementType.IsAssignableFrom(element.GetType())) + { + if (collectionItem.Elements.Count == 0) + { + return; + } + + collectionItem.RemoveElement(element); + + if (collectionItem.Elements.Count == 0) + { + this.containersUsed--; + } + + this.totalContainedItems--; + return; + } + + continue; + } + + ElementCollection collection = obj as ElementCollection; + if (collection != null) + { + if (collection.Count == 0) + { + continue; + } + + try + { + collection.RemoveElement(element); + + if (collection.Count == 0) + { + this.containersUsed--; + } + + this.totalContainedItems--; + return; + } + catch (ArgumentException) + { + // Eat the exception and keep looking. We'll throw our own if we can't find its home. + } + + continue; + } + } + + throw new ArgumentException(String.Format( + CultureInfo.InvariantCulture, + WixDataStrings.EXP_ElementOfTypeIsNotValidForThisCollection, + element.GetType().Name)); + } + + /// + /// Copies this collection to an array. + /// + /// Array to copy to. + /// Offset into the array. + public void CopyTo(Array array, int index) + { + int item = 0; + foreach (ISchemaElement element in this) + { + array.SetValue(element, (long)(item + index)); + item++; + } + } + + /// + /// Creates an enumerator for walking the elements in this collection. + /// + /// A newly created enumerator. + public IEnumerator GetEnumerator() + { + return new ElementCollectionEnumerator(this); + } + + /// + /// Gets an enumerable collection of children of a given type. + /// + /// Type of children to get. + /// A collection of children. + /// Thrown if the type isn't a valid child type. + public IEnumerable Filter(Type childType) + { + foreach (object container in this.items) + { + CollectionItem collectionItem = container as CollectionItem; + if (collectionItem != null) + { + if (collectionItem.ElementType.IsAssignableFrom(childType)) + { + return collectionItem.Elements; + } + + continue; + } + + ElementCollection elementCollection = container as ElementCollection; + if (elementCollection != null) + { + IEnumerable nestedFilter = elementCollection.Filter(childType); + if (nestedFilter != null) + { + return nestedFilter; + } + + continue; + } + } + + throw new ArgumentException(String.Format( + CultureInfo.InvariantCulture, + WixDataStrings.EXP_TypeIsNotValidForThisCollection, + childType.Name)); + } + + /// + /// Adds a type to this collection. + /// + /// CollectionItem representing the type to add. + public void AddItem(CollectionItem collectionItem) + { + this.items.Add(collectionItem); + } + + /// + /// Adds a nested collection to this collection. + /// + /// ElementCollection to add. + public void AddCollection(ElementCollection collection) + { + this.items.Add(collection); + } + + /// + /// Class used to represent a given type in the child collection of an element. Abstract, + /// has subclasses for choice and sequence (which can do cardinality checks). + /// + public abstract class CollectionItem + { + private Type elementType; + private ArrayList elements; + + /// + /// Creates a new CollectionItem for the given element type. + /// + /// Type of the element for this collection item. + protected CollectionItem(Type elementType) + { + this.elementType = elementType; + this.elements = new ArrayList(); + } + + /// + /// Gets the type of this collection's items. + /// + /// The type of this collection's items. + public Type ElementType + { + get { return this.elementType; } + } + + /// + /// Gets the elements of this collection. + /// + /// The elements of this collection. + public ArrayList Elements + { + get { return this.elements; } + } + + /// + /// Adds an element to this collection. Must be of an assignable type to the collection's + /// type. + /// + /// The element to add. + /// Thrown if the type isn't assignable to the collection's type. + public void AddElement(ISchemaElement element) + { + if (!this.elementType.IsAssignableFrom(element.GetType())) + { + throw new ArgumentException( + String.Format( + CultureInfo.InvariantCulture, + WixDataStrings.EXP_ElementIsSubclassOfDifferentType, + this.elementType.Name, + element.GetType().Name), + "element"); + } + + this.elements.Add(element); + } + + /// + /// Removes an element from this collection. + /// + /// The element to remove. + /// Thrown if the element's type isn't assignable to the collection's type. + public void RemoveElement(ISchemaElement element) + { + if (!this.elementType.IsAssignableFrom(element.GetType())) + { + throw new ArgumentException( + String.Format( + CultureInfo.InvariantCulture, + WixDataStrings.EXP_ElementIsSubclassOfDifferentType, + this.elementType.Name, + element.GetType().Name), + "element"); + } + + this.elements.Remove(element); + } + } + + /// + /// Class representing a choice item. Doesn't do cardinality checks. + /// + public class ChoiceItem : CollectionItem + { + /// + /// Creates a new choice item. + /// + /// Type of the created item. + public ChoiceItem(Type elementType) + : base(elementType) + { + } + } + + /// + /// Class representing a sequence item. Can do cardinality checks, if required. + /// + public class SequenceItem : CollectionItem + { + /// + /// Creates a new sequence item. + /// + /// Type of the created item. + public SequenceItem(Type elementType) + : base(elementType) + { + } + } + + /// + /// Enumerator for the ElementCollection. + /// + private class ElementCollectionEnumerator : IEnumerator + { + private ElementCollection collection; + private Stack collectionStack; + + /// + /// Creates a new ElementCollectionEnumerator. + /// + /// The collection to create an enumerator for. + public ElementCollectionEnumerator(ElementCollection collection) + { + this.collection = collection; + } + + /// + /// Gets the current object from the enumerator. + /// + public object Current + { + get + { + if (this.collectionStack != null && this.collectionStack.Count > 0) + { + CollectionTuple tuple = (CollectionTuple)this.collectionStack.Peek(); + object container = tuple.Collection.items[tuple.ContainerIndex]; + + CollectionItem collectionItem = container as CollectionItem; + if (collectionItem != null) + { + return collectionItem.Elements[tuple.ItemIndex]; + } + + throw new InvalidOperationException(String.Format( + CultureInfo.InvariantCulture, + WixDataStrings.EXP_ElementMustBeChoiceItemOrSequenceItem, + container.GetType().Name)); + } + + return null; + } + } + + /// + /// Resets the enumerator to the beginning. + /// + public void Reset() + { + if (this.collectionStack != null) + { + this.collectionStack.Clear(); + this.collectionStack = null; + } + } + + /// + /// Moves the enumerator to the next item. + /// + /// True if there is a next item, false otherwise. + public bool MoveNext() + { + if (this.collectionStack == null) + { + if (this.collection.Count == 0) + { + return false; + } + + this.collectionStack = new Stack(); + this.collectionStack.Push(new CollectionTuple(this.collection)); + } + + CollectionTuple tuple = (CollectionTuple)this.collectionStack.Peek(); + + if (this.FindNext(tuple)) + { + return true; + } + + this.collectionStack.Pop(); + if (this.collectionStack.Count == 0) + { + return false; + } + + return this.MoveNext(); + } + + /// + /// Pushes a collection onto the stack. + /// + /// The collection to push. + private void PushCollection(ElementCollection elementCollection) + { + if (elementCollection.Count <= 0) + { + throw new ArgumentException(String.Format( + CultureInfo.InvariantCulture, + WixDataStrings.EXP_CollectionMustHaveAtLeastOneElement, + elementCollection.Count)); + } + + CollectionTuple tuple = new CollectionTuple(elementCollection); + this.collectionStack.Push(tuple); + this.FindNext(tuple); + } + + /// + /// Finds the next item from a given tuple. + /// + /// The tuple to start looking from. + /// True if a next element is found, false otherwise. + private bool FindNext(CollectionTuple tuple) + { + object container = tuple.Collection.items[tuple.ContainerIndex]; + + CollectionItem collectionItem = container as CollectionItem; + if (collectionItem != null) + { + if (tuple.ItemIndex + 1 < collectionItem.Elements.Count) + { + tuple.ItemIndex++; + return true; + } + } + + ElementCollection elementCollection = container as ElementCollection; + if (elementCollection != null && elementCollection.Count > 0 && tuple.ItemIndex == -1) + { + tuple.ItemIndex++; + this.PushCollection(elementCollection); + return true; + } + + tuple.ItemIndex = 0; + + for (int i = tuple.ContainerIndex + 1; i < tuple.Collection.items.Count; ++i) + { + object nestedContainer = tuple.Collection.items[i]; + + CollectionItem nestedCollectionItem = nestedContainer as CollectionItem; + if (nestedCollectionItem != null) + { + if (nestedCollectionItem.Elements.Count > 0) + { + tuple.ContainerIndex = i; + return true; + } + } + + ElementCollection nestedElementCollection = nestedContainer as ElementCollection; + if (nestedElementCollection != null && nestedElementCollection.Count > 0) + { + tuple.ContainerIndex = i; + this.PushCollection(nestedElementCollection); + return true; + } + } + + return false; + } + + /// + /// Class representing a single point in the collection. Consists of an ElementCollection, + /// a container index, and an index into the container. + /// + private class CollectionTuple + { + private ElementCollection collection; + private int containerIndex; + private int itemIndex = -1; + + /// + /// Creates a new CollectionTuple. + /// + /// The collection for the tuple. + public CollectionTuple(ElementCollection collection) + { + this.collection = collection; + } + + /// + /// Gets the collection for the tuple. + /// + public ElementCollection Collection + { + get { return this.collection; } + } + + /// + /// Gets and sets the index of the container in the collection. + /// + public int ContainerIndex + { + get { return this.containerIndex; } + set { this.containerIndex = value; } + } + + /// + /// Gets and sets the index of the item in the container. + /// + public int ItemIndex + { + get { return this.itemIndex; } + set { this.itemIndex = value; } + } + } + } + } +} diff --git a/src/WixToolset.Data/SourceLineNumber.cs b/src/WixToolset.Data/SourceLineNumber.cs new file mode 100644 index 00000000..87a36132 --- /dev/null +++ b/src/WixToolset.Data/SourceLineNumber.cs @@ -0,0 +1,205 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.IO; + using System.Text; + using System.Xml; + using System.Xml.Linq; + + /// + /// Represents file name and line number for source file + /// + public sealed class SourceLineNumber + { + /// + /// Constructor for a source with no line information. + /// + /// File name of the source. + public SourceLineNumber(string fileName) + { + this.FileName = fileName; + } + + /// + /// Constructor for a source with line information. + /// + /// File name of the source. + /// Line number of the source. + public SourceLineNumber(string fileName, int lineNumber) + { + this.FileName = fileName; + this.LineNumber = lineNumber; + } + + /// + /// Gets the file name of the source. + /// + /// File name for the source. + public string FileName { get; private set; } + + /// + /// Gets or sets the line number of the source. + /// + /// Line number of the source. + public int? LineNumber { get; set; } + + /// + /// Gets or sets the parent source line number that included this source line number. + /// + public SourceLineNumber Parent { get; set; } + + /// + /// Gets the file name and line information. + /// + /// File name and line information. + public string QualifiedFileName + { + get + { + return this.LineNumber.HasValue ? String.Concat(this.FileName, "*", this.LineNumber) : this.FileName; + } + } + + /// + /// Creates a source line number from an encoded string. + /// + /// Encoded string to parse. + public static SourceLineNumber CreateFromEncoded(string encodedSourceLineNumbers) + { + string[] linesSplit = encodedSourceLineNumbers.Split('|'); + + SourceLineNumber first = null; + SourceLineNumber parent = null; + for (int i = 0; i < linesSplit.Length; ++i) + { + string[] filenameSplit = linesSplit[i].Split('*'); + SourceLineNumber source; + + if (2 == filenameSplit.Length) + { + source = new SourceLineNumber(filenameSplit[0], Convert.ToInt32(filenameSplit[1])); + } + else + { + source = new SourceLineNumber(filenameSplit[0]); + } + + if (null != parent) + { + parent.Parent = source; + } + + parent = source; + if (null == first) + { + first = parent; + } + } + + return first; + } + + /// + /// Creates a source line number from a URI. + /// + /// Uri to convert into source line number + public static SourceLineNumber CreateFromUri(string uri) + { + if (String.IsNullOrEmpty(uri)) + { + return null; + } + + // make the local path look like a normal local path + string localPath = new Uri(uri).LocalPath; + localPath = localPath.TrimStart(Path.AltDirectorySeparatorChar).Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar); + + return new SourceLineNumber(localPath); + } + + /// + /// Creates a source line number from an XObject. + /// + /// XML node to create source line number from. + /// Optional line number offset into XML file not already included in the line information. + public static SourceLineNumber CreateFromXObject(XObject node, int offset = 0) + { + string uri = node.BaseUri; + IXmlLineInfo lineInfo = node as IXmlLineInfo; + + SourceLineNumber result = CreateFromUri(uri); + if (null != result && null != lineInfo) + { + result.LineNumber = lineInfo.LineNumber + offset; + } + + return result; + } + + /// + /// Get the source line information for the current element. Typically this information + /// is set by the precompiler for each element that it encounters. + /// + /// Element to get source line information for. + /// + /// The source line number used to author the element being processed or + /// null if the preprocessor did not process the element or the node is + /// not an element. + /// + public static SourceLineNumber GetFromXAnnotation(XObject node) + { + return node.Annotation(); + } + + /// + /// Returns the SourceLineNumber and parents encoded as a string. + /// + public string GetEncoded() + { + StringBuilder sb = new StringBuilder(this.QualifiedFileName); + + for (SourceLineNumber source = this.Parent; null != source; source = source.Parent) + { + sb.Append("|"); + sb.Append(source.QualifiedFileName); + } + + return sb.ToString(); + } + + /// + /// Determines if two SourceLineNumbers are equivalent. + /// + /// Object to compare. + /// True if SourceLineNumbers are equivalent. + public override bool Equals(object obj) + { + SourceLineNumber other = obj as SourceLineNumber; + return null != other && + this.LineNumber.HasValue == other.LineNumber.HasValue && + (!this.LineNumber.HasValue || this.LineNumber == other.LineNumber) && + this.FileName.Equals(other.FileName, StringComparison.OrdinalIgnoreCase) && + (null == this.Parent && null == other.Parent || this.Parent.Equals(other.Parent)); + } + + /// + /// Serves as a hash code for a particular type. + /// + /// The hash code. + public override int GetHashCode() + { + return this.GetEncoded().GetHashCode(); + } + + /// + /// Shows a string representation of a source line number. + /// + /// String representation of a source line number. + public override string ToString() + { + return this.LineNumber.HasValue && !String.IsNullOrEmpty(this.FileName) ? String.Concat(this.FileName, "(", this.LineNumber, ")") : this.FileName ?? String.Empty; + } + } +} diff --git a/src/WixToolset.Data/SubStorage.cs b/src/WixToolset.Data/SubStorage.cs new file mode 100644 index 00000000..e136bfe9 --- /dev/null +++ b/src/WixToolset.Data/SubStorage.cs @@ -0,0 +1,109 @@ +// 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. + +namespace WixToolset.Data +{ + using System.Xml; + + /// + /// Substorage inside an output. + /// + public sealed class SubStorage + { + /// + /// Instantiate a new substorage. + /// + /// The substorage name. + /// The substorage data. + public SubStorage(string name, Output data) + { + this.Name = name; + this.Data = data; + } + + /// + /// Gets the substorage name. + /// + /// The substorage name. + public string Name { get; private set; } + + /// + /// Gets the substorage data. + /// + /// The substorage data. + public Output Data { get; private set; } + + /// + /// Creates a SubStorage from the XmlReader. + /// + /// Reader to get data from. + /// New SubStorage object. + internal static SubStorage Read(XmlReader reader) + { + if (!reader.LocalName.Equals("subStorage" == reader.LocalName)) + { + throw new XmlException(); + } + + Output data = null; + bool empty = reader.IsEmptyElement; + string name = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "name": + name = reader.Value; + break; + } + } + + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "wixOutput": + data = Output.Read(reader, true); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return new SubStorage(name, data); + } + + /// + /// Persists a SubStorage in an XML format. + /// + /// XmlWriter where the SubStorage should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("subStorage", Output.XmlNamespaceUri); + + writer.WriteAttributeString("name", this.Name); + + this.Data.Write(writer); + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/Symbol.cs b/src/WixToolset.Data/Symbol.cs new file mode 100644 index 00000000..a96f9382 --- /dev/null +++ b/src/WixToolset.Data/Symbol.cs @@ -0,0 +1,89 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Linq; + + /// + /// Symbol representing a single row in a database. + /// + public sealed class Symbol + { + private HashSet possibleConflictSymbols; + private HashSet redundantSymbols; + + /// + /// Creates a symbol for a row. + /// + /// Row for the symbol + public Symbol(Row row) + { + this.Row = row; + this.Name = String.Concat(this.Row.TableDefinition.Name, ":", this.Row.GetPrimaryKey()); + } + + /// + /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. + /// + /// Accessbility of the symbol. + public AccessModifier Access { get { return this.Row.Access; } } + + /// + /// Gets the name of the symbol. + /// + /// Name of the symbol. + public string Name { get; private set; } + + /// + /// Gets the row for this symbol. + /// + /// Row for this symbol. + public Row Row { get; private set; } + + /// + /// Gets the section for the symbol. + /// + /// Section for the symbol. + public Section Section { get { return this.Row.Section; } } + + /// + /// Gets any duplicates of this symbol that are possible conflicts. + /// + public IEnumerable PossiblyConflictingSymbols { get { return this.possibleConflictSymbols ?? Enumerable.Empty(); } } + + /// + /// Gets any duplicates of this symbol that are redundant. + /// + public IEnumerable RedundantSymbols { get { return this.redundantSymbols ?? Enumerable.Empty(); } } + + /// + /// Adds a duplicate symbol that is a possible conflict. + /// + /// Symbol that is a possible conflict of this symbol. + public void AddPossibleConflict(Symbol symbol) + { + if (null == this.possibleConflictSymbols) + { + this.possibleConflictSymbols = new HashSet(); + } + + this.possibleConflictSymbols.Add(symbol); + } + + /// + /// Adds a duplicate symbol that is redundant. + /// + /// Symbol that is redundant of this symbol. + public void AddRedundant(Symbol symbol) + { + if (null == this.redundantSymbols) + { + this.redundantSymbols = new HashSet(); + } + + this.redundantSymbols.Add(symbol); + } + } +} diff --git a/src/WixToolset.Data/Table.cs b/src/WixToolset.Data/Table.cs new file mode 100644 index 00000000..19a3a67d --- /dev/null +++ b/src/WixToolset.Data/Table.cs @@ -0,0 +1,446 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Diagnostics.CodeAnalysis; + using System.Globalization; + using System.IO; + using System.Text; + using System.Xml; + using WixToolset.Data.Rows; + + /// + /// Object that represents a table in a database. + /// + public sealed class Table + { + /// + /// Creates a table in a section. + /// + /// Section to add table to. + /// Definition of the table. + public Table(Section section, TableDefinition tableDefinition) + { + this.Section = section; + this.Definition = tableDefinition; + this.Rows = new List(); + } + + /// + /// Gets the section for the table. + /// + /// Section for the table. + public Section Section { get; private set; } + + /// + /// Gets the table definition. + /// + /// Definition of the table. + public TableDefinition Definition { get; private set; } + + /// + /// Gets the name of the table. + /// + /// Name of the table. + public string Name + { + get { return this.Definition.Name; } + } + + /// + /// Gets or sets the table transform operation. + /// + /// The table transform operation. + public TableOperation Operation { get; set; } + + /// + /// Gets the rows contained in the table. + /// + /// Rows contained in the table. + public IList Rows { get; private set; } + + /// + /// Creates a new row in the table. + /// + /// Original source lines for this row. + /// Specifies whether to only create the row or add it to the table automatically. + /// Row created in table. + public Row CreateRow(SourceLineNumber sourceLineNumbers, bool add = true) + { + Row row; + + switch (this.Name) + { + case "BBControl": + row = new BBControlRow(sourceLineNumbers, this); + break; + case "WixBundlePackage": + row = new WixBundlePackageRow(sourceLineNumbers, this); + break; + case "WixBundleExePackage": + row = new WixBundleExePackageRow(sourceLineNumbers, this); + break; + case "WixBundleMsiPackage": + row = new WixBundleMsiPackageRow(sourceLineNumbers, this); + break; + case "WixBundleMspPackage": + row = new WixBundleMspPackageRow(sourceLineNumbers, this); + break; + case "WixBundleMsuPackage": + row = new WixBundleMsuPackageRow(sourceLineNumbers, this); + break; + case "Component": + row = new ComponentRow(sourceLineNumbers, this); + break; + case "WixBundleContainer": + row = new WixBundleContainerRow(sourceLineNumbers, this); + break; + case "Control": + row = new ControlRow(sourceLineNumbers, this); + break; + case "File": + row = new FileRow(sourceLineNumbers, this); + break; + case "WixBundleMsiFeature": + row = new WixBundleMsiFeatureRow(sourceLineNumbers, this); + break; + case "WixBundleMsiProperty": + row = new WixBundleMsiPropertyRow(sourceLineNumbers, this); + break; + case "Media": + row = new MediaRow(sourceLineNumbers, this); + break; + case "WixBundlePayload": + row = new WixBundlePayloadRow(sourceLineNumbers, this); + break; + case "Property": + row = new PropertyRow(sourceLineNumbers, this); + break; + case "WixRelatedBundle": + row = new WixRelatedBundleRow(sourceLineNumbers, this); + break; + case "WixBundleRelatedPackage": + row = new WixBundleRelatedPackageRow(sourceLineNumbers, this); + break; + case "WixBundleRollbackBoundary": + row = new WixBundleRollbackBoundaryRow(sourceLineNumbers, this); + break; + case "Upgrade": + row = new UpgradeRow(sourceLineNumbers, this); + break; + case "WixBundleVariable": + row = new WixBundleVariableRow(sourceLineNumbers, this); + break; + case "WixAction": + row = new WixActionRow(sourceLineNumbers, this); + break; + case "WixApprovedExeForElevation": + row = new WixApprovedExeForElevationRow(sourceLineNumbers, this); + break; + case "WixBundle": + row = new WixBundleRow(sourceLineNumbers, this); + break; + case "WixBundlePackageExitCode": + row = new WixBundlePackageExitCodeRow(sourceLineNumbers, this); + break; + case "WixBundlePatchTargetCode": + row = new WixBundlePatchTargetCodeRow(sourceLineNumbers, this); + break; + case "WixBundleSlipstreamMsp": + row = new WixBundleSlipstreamMspRow(sourceLineNumbers, this); + break; + case "WixBundleUpdate": + row = new WixBundleUpdateRow(sourceLineNumbers, this); + break; + case "WixBundleCatalog": + row = new WixBundleCatalogRow(sourceLineNumbers, this); + break; + case "WixChain": + row = new WixChainRow(sourceLineNumbers, this); + break; + case "WixChainItem": + row = new WixChainItemRow(sourceLineNumbers, this); + break; + case "WixBundlePackageCommandLine": + row = new WixBundlePackageCommandLineRow(sourceLineNumbers, this); + break; + case "WixComplexReference": + row = new WixComplexReferenceRow(sourceLineNumbers, this); + break; + case "WixDeltaPatchFile": + row = new WixDeltaPatchFileRow(sourceLineNumbers, this); + break; + case "WixDeltaPatchSymbolPaths": + row = new WixDeltaPatchSymbolPathsRow(sourceLineNumbers, this); + break; + case "WixFile": + row = new WixFileRow(sourceLineNumbers, this); + break; + case "WixGroup": + row = new WixGroupRow(sourceLineNumbers, this); + break; + case "WixMedia": + row = new WixMediaRow(sourceLineNumbers, this); + break; + case "WixMediaTemplate": + row = new WixMediaTemplateRow(sourceLineNumbers, this); + break; + case "WixMerge": + row = new WixMergeRow(sourceLineNumbers, this); + break; + case "WixPayloadProperties": + row = new WixPayloadPropertiesRow(sourceLineNumbers, this); + break; + case "WixProperty": + row = new WixPropertyRow(sourceLineNumbers, this); + break; + case "WixSimpleReference": + row = new WixSimpleReferenceRow(sourceLineNumbers, this); + break; + case "WixUpdateRegistration": + row = new WixUpdateRegistrationRow(sourceLineNumbers, this); + break; + case "WixVariable": + row = new WixVariableRow(sourceLineNumbers, this); + break; + + default: + row = new Row(sourceLineNumbers, this); + break; + } + + if (add) + { + this.Rows.Add(row); + } + + return row; + } + + /// + /// Parse a table from the xml. + /// + /// XmlReader where the intermediate is persisted. + /// Section to populate with persisted data. + /// TableDefinitions to use in the intermediate. + /// The parsed table. + internal static Table Read(XmlReader reader, Section section, TableDefinitionCollection tableDefinitions) + { + Debug.Assert("table" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + TableOperation operation = TableOperation.None; + string name = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "name": + name = reader.Value; + break; + case "op": + switch (reader.Value) + { + case "add": + operation = TableOperation.Add; + break; + case "drop": + operation = TableOperation.Drop; + break; + default: + throw new XmlException(); + } + break; + } + } + + if (null == name) + { + throw new XmlException(); + } + + TableDefinition tableDefinition = tableDefinitions[name]; + Table table = new Table(section, tableDefinition); + table.Operation = operation; + + if (!empty) + { + bool done = false; + + // loop through all the rows in a table + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "row": + Row.Read(reader, table); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return table; + } + + /// + /// Modularize the table. + /// + /// String containing the GUID of the Merge Module, if appropriate. + /// Optional collection of identifiers that should not be modularized. + public void Modularize(string modularizationGuid, ISet suppressModularizationIdentifiers) + { + List modularizedColumns = new List(); + + // find the modularized columns + for (int i = 0; i < this.Definition.Columns.Count; i++) + { + if (ColumnModularizeType.None != this.Definition.Columns[i].ModularizeType) + { + modularizedColumns.Add(i); + } + } + + if (0 < modularizedColumns.Count) + { + foreach (Row row in this.Rows) + { + foreach (int modularizedColumn in modularizedColumns) + { + Field field = row.Fields[modularizedColumn]; + + if (null != field.Data) + { + field.Data = row.GetModularizedValue(field, modularizationGuid, suppressModularizationIdentifiers); + } + } + } + } + } + + /// + /// Persists a row in an XML format. + /// + /// XmlWriter where the Row should persist itself as XML. + [SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "Changing the way this string normalizes would result " + + "in a change to the way the intermediate files are generated, potentially causing extra churn in patches on an MSI built from an older version of WiX. " + + "Furthermore, there is no security hole here, as the strings won't need to make a round trip")] + internal void Write(XmlWriter writer) + { + if (null == writer) + { + throw new ArgumentNullException("writer"); + } + + writer.WriteStartElement("table", Intermediate.XmlNamespaceUri); + writer.WriteAttributeString("name", this.Name); + + if (TableOperation.None != this.Operation) + { + writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); + } + + foreach (Row row in this.Rows) + { + row.Write(writer); + } + + writer.WriteEndElement(); + } + + /// + /// Writes the table in IDT format to the provided stream. + /// + /// Stream to write the table to. + /// Whether to keep columns added in a transform. + public void ToIdtDefinition(StreamWriter writer, bool keepAddedColumns) + { + if (this.Definition.Unreal) + { + return; + } + + if (TableDefinition.MaxColumnsInRealTable < this.Definition.Columns.Count) + { + throw new WixException(WixDataErrors.TooManyColumnsInRealTable(this.Definition.Name, this.Definition.Columns.Count, TableDefinition.MaxColumnsInRealTable)); + } + + // Tack on the table header, and flush before we start writing bytes directly to the stream. + writer.Write(this.Definition.ToIdtDefinition(keepAddedColumns)); + writer.Flush(); + + using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(writer.BaseStream)) + using (BufferedStream buffStream = new BufferedStream(wrapper)) + { + // Create an encoding that replaces characters with question marks, and doesn't throw. We'll + // use this in case of errors + Encoding convertEncoding = Encoding.GetEncoding(writer.Encoding.CodePage); + + foreach (Row row in this.Rows) + { + if (row.Redundant) + { + continue; + } + + string rowString = row.ToIdtDefinition(keepAddedColumns); + byte[] rowBytes; + + try + { + // GetBytes will throw an exception if any character doesn't match our current encoding + rowBytes = writer.Encoding.GetBytes(rowString); + } + catch (EncoderFallbackException) + { + Messaging.Instance.OnMessage(WixDataErrors.InvalidStringForCodepage(row.SourceLineNumbers, Convert.ToString(writer.Encoding.WindowsCodePage, CultureInfo.InvariantCulture))); + + rowBytes = convertEncoding.GetBytes(rowString); + } + + buffStream.Write(rowBytes, 0, rowBytes.Length); + } + } + } + + /// + /// Validates the rows of this OutputTable and throws if it collides on + /// primary keys. + /// + public void ValidateRows() + { + Dictionary primaryKeys = new Dictionary(); + + foreach (Row row in this.Rows) + { + string primaryKey = row.GetPrimaryKey(); + + SourceLineNumber collisionSourceLineNumber; + if (primaryKeys.TryGetValue(primaryKey, out collisionSourceLineNumber)) + { + throw new WixException(WixDataErrors.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); + } + + primaryKeys.Add(primaryKey, row.SourceLineNumbers); + } + } + } +} diff --git a/src/WixToolset.Data/TableDefinition.cs b/src/WixToolset.Data/TableDefinition.cs new file mode 100644 index 00000000..40aaac84 --- /dev/null +++ b/src/WixToolset.Data/TableDefinition.cs @@ -0,0 +1,334 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Text; + using System.Xml; + + /// + /// Definition of a table in a database. + /// + public sealed class TableDefinition : IComparable + { + /// + /// Tracks the maximum number of columns supported in a real table. + /// This is a Windows Installer limitation. + /// + public const int MaxColumnsInRealTable = 32; + + /// + /// Creates a table definition. + /// + /// Name of table to create. + /// Flag if rows in this table create symbols. + /// Flag if table is unreal. + /// Flag if table is part of UX Manifest. + public TableDefinition(string name, IList columns, bool createSymbols, bool unreal, bool bootstrapperApplicationData = false) + { + this.Name = name; + this.CreateSymbols = createSymbols; + this.Unreal = unreal; + this.BootstrapperApplicationData = bootstrapperApplicationData; + + this.Columns = new ReadOnlyCollection(columns); + } + + /// + /// Gets if rows in this table create symbols. + /// + /// Flag if rows in this table create symbols. + public bool CreateSymbols { get; private set; } + + /// + /// Gets the name of the table. + /// + /// Name of the table. + public string Name { get; private set; } + + /// + /// Gets if the table is unreal. + /// + /// Flag if table is unreal. + public bool Unreal { get; private set; } + + /// + /// Gets if the table is a part of the bootstrapper application data manifest. + /// + /// Flag if table is a part of the bootstrapper application data manifest. + public bool BootstrapperApplicationData { get; private set; } + + /// + /// Gets the collection of column definitions for this table. + /// + /// Collection of column definitions for this table. + public IList Columns { get; private set; } + + /// + /// Gets the column definition in the table by index. + /// + /// Index of column to locate. + /// Column definition in the table by index. + public ColumnDefinition this[int columnIndex] + { + get { return this.Columns[columnIndex]; } + } + + /// + /// Gets the table definition in IDT format. + /// + /// Whether to keep columns added in a transform. + /// Table definition in IDT format. + public string ToIdtDefinition(bool keepAddedColumns) + { + bool first = true; + StringBuilder columnString = new StringBuilder(); + StringBuilder dataString = new StringBuilder(); + StringBuilder tableString = new StringBuilder(); + + tableString.Append(this.Name); + foreach (ColumnDefinition column in this.Columns) + { + // conditionally keep columns added in a transform; otherwise, + // break because columns can only be added at the end + if (column.Added && !keepAddedColumns) + { + break; + } + + if (!first) + { + columnString.Append('\t'); + dataString.Append('\t'); + } + + columnString.Append(column.Name); + dataString.Append(column.IdtType); + + if (column.PrimaryKey) + { + tableString.AppendFormat("\t{0}", column.Name); + } + + first = false; + } + columnString.Append("\r\n"); + columnString.Append(dataString); + columnString.Append("\r\n"); + columnString.Append(tableString); + columnString.Append("\r\n"); + + return columnString.ToString(); + } + + /// + /// Adds the validation rows to the _Validation table. + /// + /// The _Validation table. + public void AddValidationRows(Table validationTable) + { + foreach (ColumnDefinition columnDef in this.Columns) + { + Row row = validationTable.CreateRow(null); + + row[0] = this.Name; + + row[1] = columnDef.Name; + + if (columnDef.Nullable) + { + row[2] = "Y"; + } + else + { + row[2] = "N"; + } + + if (columnDef.IsMinValueSet) + { + row[3] = columnDef.MinValue; + } + + if (columnDef.IsMaxValueSet) + { + row[4] = columnDef.MaxValue; + } + + row[5] = columnDef.KeyTable; + + if (columnDef.IsKeyColumnSet) + { + row[6] = columnDef.KeyColumn; + } + + if (ColumnCategory.Unknown != columnDef.Category) + { + row[7] = columnDef.Category.ToString(); + } + + row[8] = columnDef.Possibilities; + + row[9] = columnDef.Description; + } + } + + /// + /// Compares this table definition to another table definition. + /// + /// + /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. + /// + /// The updated to compare with this target definition. + /// 0 if the tables' core properties are the same; otherwise, non-0. + public int CompareTo(TableDefinition updated) + { + // by definition, this object is greater than null + if (null == updated) + { + return 1; + } + + // compare the table names + int ret = String.Compare(this.Name, updated.Name, StringComparison.Ordinal); + + // compare the column count + if (0 == ret) + { + // transforms can only add columns + ret = Math.Min(0, updated.Columns.Count - this.Columns.Count); + + // compare name, type, and length of each column + for (int i = 0; 0 == ret && this.Columns.Count > i; i++) + { + ColumnDefinition thisColumnDef = this.Columns[i]; + ColumnDefinition updatedColumnDef = updated.Columns[i]; + + ret = thisColumnDef.CompareTo(updatedColumnDef); + } + } + + return ret; + } + + /// + /// Parses table definition from xml reader. + /// + /// Reader to get data from. + /// The TableDefintion represented by the Xml. + internal static TableDefinition Read(XmlReader reader) + { + bool empty = reader.IsEmptyElement; + bool createSymbols = false; + string name = null; + bool unreal = false; + bool bootstrapperApplicationData = false; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "createSymbols": + createSymbols = reader.Value.Equals("yes"); + break; + case "name": + name = reader.Value; + break; + case "unreal": + unreal = reader.Value.Equals("yes"); + break; + case "bootstrapperApplicationData": + bootstrapperApplicationData = reader.Value.Equals("yes"); + break; + } + } + + if (null == name) + { + throw new XmlException(); + } + + List columns = new List(); + bool hasPrimaryKeyColumn = false; + + // parse the child elements + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "columnDefinition": + ColumnDefinition columnDefinition = ColumnDefinition.Read(reader); + columns.Add(columnDefinition); + + if (columnDefinition.PrimaryKey) + { + hasPrimaryKeyColumn = true; + } + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!unreal && !bootstrapperApplicationData && !hasPrimaryKeyColumn) + { + throw new WixException(WixDataErrors.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); + } + + if (!done) + { + throw new XmlException(); + } + } + + TableDefinition tableDefinition = new TableDefinition(name, columns, createSymbols, unreal, bootstrapperApplicationData); + return tableDefinition; + } + + /// + /// Persists an output in an XML format. + /// + /// XmlWriter where the Output should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("tableDefinition", TableDefinitionCollection.XmlNamespaceUri); + + writer.WriteAttributeString("name", this.Name); + + if (this.CreateSymbols) + { + writer.WriteAttributeString("createSymbols", "yes"); + } + + if (this.Unreal) + { + writer.WriteAttributeString("unreal", "yes"); + } + + if (this.BootstrapperApplicationData) + { + writer.WriteAttributeString("bootstrapperApplicationData", "yes"); + } + + foreach (ColumnDefinition columnDefinition in this.Columns) + { + columnDefinition.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/TableDefinitionCollection.cs b/src/WixToolset.Data/TableDefinitionCollection.cs new file mode 100644 index 00000000..553f0eaa --- /dev/null +++ b/src/WixToolset.Data/TableDefinitionCollection.cs @@ -0,0 +1,229 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + using System.Xml; + + /// + /// Collection for table definitions indexed by table name. + /// + public sealed class TableDefinitionCollection : ICollection + { + public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wi/tables"; + + private Dictionary collection; + + /// + /// Instantiate a new TableDefinitionCollection class. + /// + public TableDefinitionCollection() + { + this.collection = new Dictionary(); + } + + /// + /// Creates a shallow copy of the provided table definition collection. + /// + public TableDefinitionCollection(TableDefinitionCollection tableDefinitions) + { + this.collection = new Dictionary(tableDefinitions.collection); + } + + /// + /// Gets the number of items in the collection. + /// + /// Number of items in collection. + public int Count + { + get { return this.collection.Count; } + } + + /// + /// Table definition collections are never read-only. + /// + public bool IsReadOnly + { + get { return false; } + } + + /// + /// Gets a table definition by name. + /// + /// Name of table to locate. + public TableDefinition this[string tableName] + { + get + { + TableDefinition table; + if (!this.collection.TryGetValue(tableName, out table)) + { + throw new WixMissingTableDefinitionException(WixDataErrors.MissingTableDefinition(tableName)); + } + + return table; + } + } + + /// + /// Load a table definition collection from an XmlReader. + /// + /// Reader to get data from. + /// Suppress xml schema validation while loading. + /// The TableDefinitionCollection represented by the xml. + public static TableDefinitionCollection Load(XmlReader reader) + { + reader.MoveToContent(); + + return Read(reader); + } + + /// + /// Adds a table definition to the collection. + /// + /// Table definition to add to the collection. + /// Indexes by table definition name. + public void Add(TableDefinition tableDefinition) + { + this.collection.Add(tableDefinition.Name, tableDefinition); + } + + /// + /// Removes all table definitions from the collection. + /// + public void Clear() + { + this.collection.Clear(); + } + + /// + /// Checks if the collection contains a table name. + /// + /// The table to check in the collection. + /// True if collection contains the table. + public bool Contains(string tableName) + { + return this.collection.ContainsKey(tableName); + } + + /// + /// Checks if the collection contains a table. + /// + /// The table to check in the collection. + /// True if collection contains the table. + public bool Contains(TableDefinition table) + { + return this.collection.ContainsKey(table.Name); + } + + /// + /// Copies table definitions to an arry. + /// + /// Array to copy the table definitions to. + /// Index in the array to start copying at. + public void CopyTo(TableDefinition[] array, int index) + { + this.collection.Values.CopyTo(array, index); + } + + /// + /// Removes a table definition from the collection. + /// + /// Table to remove from the collection. + /// True if the table definition existed in the collection and was removed. + public bool Remove(TableDefinition table) + { + return this.collection.Remove(table.Name); + } + + /// + /// Gets enumerator for the collection. + /// + /// Enumerator for the collection. + public IEnumerator GetEnumerator() + { + return this.collection.Values.GetEnumerator(); + } + + /// + /// Gets the untyped enumerator for the collection. + /// + /// Untyped enumerator for the collection. + IEnumerator IEnumerable.GetEnumerator() + { + return this.collection.Values.GetEnumerator(); + } + + /// + /// Loads a collection of table definitions from a XmlReader in memory. + /// + /// Reader to get data from. + /// The TableDefinitionCollection represented by the xml. + internal static TableDefinitionCollection Read(XmlReader reader) + { + if ("tableDefinitions" != reader.LocalName) + { + throw new XmlException(); + } + + bool empty = reader.IsEmptyElement; + TableDefinitionCollection tableDefinitionCollection = new TableDefinitionCollection(); + + while (reader.MoveToNextAttribute()) + { + } + + // parse the child elements + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "tableDefinition": + tableDefinitionCollection.Add(TableDefinition.Read(reader)); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return tableDefinitionCollection; + } + + /// + /// Persists a TableDefinitionCollection in an XML format. + /// + /// XmlWriter where the TableDefinitionCollection should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("tableDefinitions", XmlNamespaceUri); + + foreach (TableDefinition tableDefinition in this.collection.Values.OrderBy(t => t.Name)) + { + tableDefinition.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/TableExtensions.cs b/src/WixToolset.Data/TableExtensions.cs new file mode 100644 index 00000000..1be64ffe --- /dev/null +++ b/src/WixToolset.Data/TableExtensions.cs @@ -0,0 +1,23 @@ +// 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. + +namespace WixToolset.Data +{ + using System.Collections.Generic; + using System.Linq; + + /// + /// Methods that extend . + /// + public static class TableExtensions + { + /// + /// Gets the rows contained in the table as a particular row type. + /// + /// Table to get rows from. + /// If the is null, an empty enumerable will be returned. + public static IEnumerable RowsAs(this Table table) where T : Row + { + return (null == table) ? Enumerable.Empty() : table.Rows.Cast(); + } + } +} diff --git a/src/WixToolset.Data/TableIndexedCollection.cs b/src/WixToolset.Data/TableIndexedCollection.cs new file mode 100644 index 00000000..9f85efff --- /dev/null +++ b/src/WixToolset.Data/TableIndexedCollection.cs @@ -0,0 +1,153 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Linq; + + /// + /// Collection for tables. + /// + public sealed class TableIndexedCollection : ICollection
+ { + private Dictionary collection; + + /// + /// Instantiate a new empty collection. + /// + public TableIndexedCollection() + { + this.collection = new Dictionary(); + } + + /// + /// Instantiate a new collection populated with a set of tables. + /// + /// Set of tables. + public TableIndexedCollection(IEnumerable
tables) + { + this.collection = tables.ToDictionary(t => t.Name); + } + + /// + /// Gets the number of items in the collection. + /// + /// Number of items in collection. + public int Count + { + get { return this.collection.Count; } + } + + /// + /// Table indexed collection is never read only. + /// + public bool IsReadOnly + { + get { return false; } + } + + /// + /// Adds a table to the collection. + /// + /// Table to add to the collection. + /// Indexes the table by name. + public void Add(Table table) + { + this.collection.Add(table.Name, table); + } + + /// + /// Clear the tables from the collection. + /// + public void Clear() + { + this.collection.Clear(); + } + + /// + /// Determines if a table is in the collection. + /// + /// Table to check if it is in the collection. + /// True if the table name is in the collection, otherwise false. + public bool Contains(Table table) + { + return this.collection.ContainsKey(table.Name); + } + + /// + /// Copies the collection into an array. + /// + /// Array to copy the collection into. + /// Index to start copying from. + public void CopyTo(Table[] array, int arrayIndex) + { + this.collection.Values.CopyTo(array, arrayIndex); + } + + /// + /// Remove a table from the collection by name. + /// + /// Table name to remove from the collection. + public void Remove(string tableName) + { + this.collection.Remove(tableName); + } + + /// + /// Remove a table from the collection. + /// + /// Table with matching name to remove from the collection. + public bool Remove(Table table) + { + return this.collection.Remove(table.Name); + } + + /// + /// Gets an enumerator over the whole collection. + /// + /// Collection enumerator. + public IEnumerator
GetEnumerator() + { + return this.collection.Values.GetEnumerator(); + } + + /// + /// Gets an untyped enumerator over the whole collection. + /// + /// Untyped collection enumerator. + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return this.collection.Values.GetEnumerator(); + } + + /// + /// Gets a table by name. + /// + /// Name of table to locate. + public Table this[string tableName] + { + get + { + Table table; + return this.collection.TryGetValue(tableName, out table) ? table : null; + } + + set + { + this.collection[tableName] = value; + } + } + + /// + /// Tries to find a table by name. + /// + /// Table name to locate. + /// Found table. + /// True if table with table name was found, otherwise false. + public bool TryGetTable(string tableName, out Table table) + { + return this.collection.TryGetValue(tableName, out table); + } + } +} diff --git a/src/WixToolset.Data/TableOperation.cs b/src/WixToolset.Data/TableOperation.cs new file mode 100644 index 00000000..8df44e73 --- /dev/null +++ b/src/WixToolset.Data/TableOperation.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// The table transform operations. + /// + public enum TableOperation + { + /// + /// No operation. + /// + None, + + /// + /// Added table. + /// + Add, + + /// + /// Dropped table. + /// + Drop, + } +} diff --git a/src/WixToolset.Data/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstallerStandard.cs new file mode 100644 index 00000000..1060d11b --- /dev/null +++ b/src/WixToolset.Data/WindowsInstallerStandard.cs @@ -0,0 +1,444 @@ +// 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. + +namespace WixToolset.Data +{ + using System.Collections.Generic; + using System.Reflection; + using System.Xml; + using WixToolset.Data.Rows; + + /// + /// Represents the Windows Installer standard objects. + /// + public static class WindowsInstallerStandard + { + private static readonly object lockObject = new object(); + + private static TableDefinitionCollection tableDefinitions; + private static WixActionRowCollection standardActions; + + private static HashSet standardActionNames; + private static HashSet standardDirectories; + private static HashSet standardProperties; + + + /// + /// Gets the table definitions stored in this assembly. + /// + /// Table definition collection for tables stored in this assembly. + public static TableDefinitionCollection GetTableDefinitions() + { + lock (lockObject) + { + if (null == WindowsInstallerStandard.tableDefinitions) + { + using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.Data.tables.xml"))) + { + tableDefinitions = TableDefinitionCollection.Load(reader); + } + } + } + + return WindowsInstallerStandard.tableDefinitions; + } + + /// + /// Gets the standard actions stored in this assembly. + /// + /// Collection of standard actions in this assembly. + public static WixActionRowCollection GetStandardActions() + { + lock (lockObject) + { + if (null == standardActions) + { + using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.Data.actions.xml"))) + { + standardActions = WixActionRowCollection.Load(reader); + } + } + } + + return standardActions; + } + + + /// + /// Gets (and loads if not yet loaded) the list of standard MSI directories. + /// + /// The list of standard MSI directories. + public static HashSet GetStandardDirectories() + { + lock (lockObject) + { + if (null == standardDirectories) + { + LoadStandardDirectories(); + } + } + + return standardDirectories; + } + + /// + /// Find out if an action is a standard action. + /// + /// Name of the action. + /// true if the action is standard, false otherwise. + public static bool IsStandardAction(string actionName) + { + lock (lockObject) + { + if (null == standardActionNames) + { + standardActionNames = new HashSet(); + standardActionNames.Add("AllocateRegistrySpace"); + standardActionNames.Add("AppSearch"); + standardActionNames.Add("BindImage"); + standardActionNames.Add("CCPSearch"); + standardActionNames.Add("CostFinalize"); + standardActionNames.Add("CostInitialize"); + standardActionNames.Add("CreateFolders"); + standardActionNames.Add("CreateShortcuts"); + standardActionNames.Add("DeleteServices"); + standardActionNames.Add("DisableRollback"); + standardActionNames.Add("DuplicateFiles"); + standardActionNames.Add("ExecuteAction"); + standardActionNames.Add("FileCost"); + standardActionNames.Add("FindRelatedProducts"); + standardActionNames.Add("ForceReboot"); + standardActionNames.Add("InstallAdminPackage"); + standardActionNames.Add("InstallExecute"); + standardActionNames.Add("InstallExecuteAgain"); + standardActionNames.Add("InstallFiles"); + standardActionNames.Add("InstallFinalize"); + standardActionNames.Add("InstallInitialize"); + standardActionNames.Add("InstallODBC"); + standardActionNames.Add("InstallServices"); + standardActionNames.Add("InstallSFPCatalogFile"); + standardActionNames.Add("InstallValidate"); + standardActionNames.Add("IsolateComponents"); + standardActionNames.Add("LaunchConditions"); + standardActionNames.Add("MigrateFeatureStates"); + standardActionNames.Add("MoveFiles"); + standardActionNames.Add("MsiConfigureServices"); + standardActionNames.Add("MsiPublishAssemblies"); + standardActionNames.Add("MsiUnpublishAssemblies"); + standardActionNames.Add("PatchFiles"); + standardActionNames.Add("ProcessComponents"); + standardActionNames.Add("PublishComponents"); + standardActionNames.Add("PublishFeatures"); + standardActionNames.Add("PublishProduct"); + standardActionNames.Add("RegisterClassInfo"); + standardActionNames.Add("RegisterComPlus"); + standardActionNames.Add("RegisterExtensionInfo"); + standardActionNames.Add("RegisterFonts"); + standardActionNames.Add("RegisterMIMEInfo"); + standardActionNames.Add("RegisterProduct"); + standardActionNames.Add("RegisterProgIdInfo"); + standardActionNames.Add("RegisterTypeLibraries"); + standardActionNames.Add("RegisterUser"); + standardActionNames.Add("RemoveDuplicateFiles"); + standardActionNames.Add("RemoveEnvironmentStrings"); + standardActionNames.Add("RemoveExistingProducts"); + standardActionNames.Add("RemoveFiles"); + standardActionNames.Add("RemoveFolders"); + standardActionNames.Add("RemoveIniValues"); + standardActionNames.Add("RemoveODBC"); + standardActionNames.Add("RemoveRegistryValues"); + standardActionNames.Add("RemoveShortcuts"); + standardActionNames.Add("ResolveSource"); + standardActionNames.Add("RMCCPSearch"); + standardActionNames.Add("ScheduleReboot"); + standardActionNames.Add("SelfRegModules"); + standardActionNames.Add("SelfUnregModules"); + standardActionNames.Add("SetODBCFolders"); + standardActionNames.Add("StartServices"); + standardActionNames.Add("StopServices"); + standardActionNames.Add("UnpublishComponents"); + standardActionNames.Add("UnpublishFeatures"); + standardActionNames.Add("UnregisterClassInfo"); + standardActionNames.Add("UnregisterComPlus"); + standardActionNames.Add("UnregisterExtensionInfo"); + standardActionNames.Add("UnregisterFonts"); + standardActionNames.Add("UnregisterMIMEInfo"); + standardActionNames.Add("UnregisterProgIdInfo"); + standardActionNames.Add("UnregisterTypeLibraries"); + standardActionNames.Add("ValidateProductID"); + standardActionNames.Add("WriteEnvironmentStrings"); + standardActionNames.Add("WriteIniValues"); + standardActionNames.Add("WriteRegistryValues"); + } + } + + return standardActionNames.Contains(actionName); + } + + /// + /// Find out if a directory is a standard directory. + /// + /// Name of the directory. + /// true if the directory is standard, false otherwise. + public static bool IsStandardDirectory(string directoryName) + { + lock (lockObject) + { + if (null == standardDirectories) + { + LoadStandardDirectories(); + } + } + + return standardDirectories.Contains(directoryName); + } + + /// + /// Find out if a property is a standard property. + /// References: + /// Title: Property Reference [Windows Installer]: + /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp + /// + /// Name of the property. + /// true if a property is standard, false otherwise. + public static bool IsStandardProperty(string propertyName) + { + lock (lockObject) + { + if (null == standardProperties) + { + standardProperties = new HashSet(); + standardProperties.Add("~"); // REG_MULTI_SZ/NULL marker + standardProperties.Add("ACTION"); + standardProperties.Add("ADDDEFAULT"); + standardProperties.Add("ADDLOCAL"); + standardProperties.Add("ADDDSOURCE"); + standardProperties.Add("AdminProperties"); + standardProperties.Add("AdminUser"); + standardProperties.Add("ADVERTISE"); + standardProperties.Add("AFTERREBOOT"); + standardProperties.Add("AllowProductCodeMismatches"); + standardProperties.Add("AllowProductVersionMajorMismatches"); + standardProperties.Add("ALLUSERS"); + standardProperties.Add("Alpha"); + standardProperties.Add("ApiPatchingSymbolFlags"); + standardProperties.Add("ARPAUTHORIZEDCDFPREFIX"); + standardProperties.Add("ARPCOMMENTS"); + standardProperties.Add("ARPCONTACT"); + standardProperties.Add("ARPHELPLINK"); + standardProperties.Add("ARPHELPTELEPHONE"); + standardProperties.Add("ARPINSTALLLOCATION"); + standardProperties.Add("ARPNOMODIFY"); + standardProperties.Add("ARPNOREMOVE"); + standardProperties.Add("ARPNOREPAIR"); + standardProperties.Add("ARPPRODUCTIONICON"); + standardProperties.Add("ARPREADME"); + standardProperties.Add("ARPSIZE"); + standardProperties.Add("ARPSYSTEMCOMPONENT"); + standardProperties.Add("ARPULRINFOABOUT"); + standardProperties.Add("ARPURLUPDATEINFO"); + standardProperties.Add("AVAILABLEFREEREG"); + standardProperties.Add("BorderSize"); + standardProperties.Add("BorderTop"); + standardProperties.Add("CaptionHeight"); + standardProperties.Add("CCP_DRIVE"); + standardProperties.Add("ColorBits"); + standardProperties.Add("COMPADDLOCAL"); + standardProperties.Add("COMPADDSOURCE"); + standardProperties.Add("COMPANYNAME"); + standardProperties.Add("ComputerName"); + standardProperties.Add("CostingComplete"); + standardProperties.Add("Date"); + standardProperties.Add("DefaultUIFont"); + standardProperties.Add("DISABLEADVTSHORTCUTS"); + standardProperties.Add("DISABLEMEDIA"); + standardProperties.Add("DISABLEROLLBACK"); + standardProperties.Add("DiskPrompt"); + standardProperties.Add("DontRemoveTempFolderWhenFinished"); + standardProperties.Add("EnableUserControl"); + standardProperties.Add("EXECUTEACTION"); + standardProperties.Add("EXECUTEMODE"); + standardProperties.Add("FASTOEM"); + standardProperties.Add("FILEADDDEFAULT"); + standardProperties.Add("FILEADDLOCAL"); + standardProperties.Add("FILEADDSOURCE"); + standardProperties.Add("IncludeWholeFilesOnly"); + standardProperties.Add("Installed"); + standardProperties.Add("INSTALLLEVEL"); + standardProperties.Add("Intel"); + standardProperties.Add("Intel64"); + standardProperties.Add("IsAdminPackage"); + standardProperties.Add("LeftUnit"); + standardProperties.Add("LIMITUI"); + standardProperties.Add("ListOfPatchGUIDsToReplace"); + standardProperties.Add("ListOfTargetProductCode"); + standardProperties.Add("LOGACTION"); + standardProperties.Add("LogonUser"); + standardProperties.Add("Manufacturer"); + standardProperties.Add("MEDIAPACKAGEPATH"); + standardProperties.Add("MediaSourceDir"); + standardProperties.Add("MinimumRequiredMsiVersion"); + standardProperties.Add("MsiAMD64"); + standardProperties.Add("MSIAPRSETTINGSIDENTIFIER"); + standardProperties.Add("MSICHECKCRCS"); + standardProperties.Add("MSIDISABLERMRESTART"); + standardProperties.Add("MSIENFORCEUPGRADECOMPONENTRULES"); + standardProperties.Add("MSIFASTINSTALL"); + standardProperties.Add("MsiFileToUseToCreatePatchTables"); + standardProperties.Add("MsiHiddenProperties"); + standardProperties.Add("MSIINSTALLPERUSER"); + standardProperties.Add("MSIINSTANCEGUID"); + standardProperties.Add("MsiLogFileLocation"); + standardProperties.Add("MsiLogging"); + standardProperties.Add("MsiNetAssemblySupport"); + standardProperties.Add("MSINEWINSTANCE"); + standardProperties.Add("MSINODISABLEMEDIA"); + standardProperties.Add("MsiNTProductType"); + standardProperties.Add("MsiNTSuiteBackOffice"); + standardProperties.Add("MsiNTSuiteDataCenter"); + standardProperties.Add("MsiNTSuiteEnterprise"); + standardProperties.Add("MsiNTSuiteSmallBusiness"); + standardProperties.Add("MsiNTSuiteSmallBusinessRestricted"); + standardProperties.Add("MsiNTSuiteWebServer"); + standardProperties.Add("MsiNTSuitePersonal"); + standardProperties.Add("MsiPatchRemovalList"); + standardProperties.Add("MSIPATCHREMOVE"); + standardProperties.Add("MSIRESTARTMANAGERCONTROL"); + standardProperties.Add("MsiRestartManagerSessionKey"); + standardProperties.Add("MSIRMSHUTDOWN"); + standardProperties.Add("MsiRunningElevated"); + standardProperties.Add("MsiUIHideCancel"); + standardProperties.Add("MsiUIProgressOnly"); + standardProperties.Add("MsiUISourceResOnly"); + standardProperties.Add("MsiSystemRebootPending"); + standardProperties.Add("MsiWin32AssemblySupport"); + standardProperties.Add("NOCOMPANYNAME"); + standardProperties.Add("NOUSERNAME"); + standardProperties.Add("OLEAdvtSupport"); + standardProperties.Add("OptimizePatchSizeForLargeFiles"); + standardProperties.Add("OriginalDatabase"); + standardProperties.Add("OutOfDiskSpace"); + standardProperties.Add("OutOfNoRbDiskSpace"); + standardProperties.Add("ParentOriginalDatabase"); + standardProperties.Add("ParentProductCode"); + standardProperties.Add("PATCH"); + standardProperties.Add("PATCH_CACHE_DIR"); + standardProperties.Add("PATCH_CACHE_ENABLED"); + standardProperties.Add("PatchGUID"); + standardProperties.Add("PATCHNEWPACKAGECODE"); + standardProperties.Add("PATCHNEWSUMMARYCOMMENTS"); + standardProperties.Add("PATCHNEWSUMMARYSUBJECT"); + standardProperties.Add("PatchOutputPath"); + standardProperties.Add("PatchSourceList"); + standardProperties.Add("PhysicalMemory"); + standardProperties.Add("PIDKEY"); + standardProperties.Add("PIDTemplate"); + standardProperties.Add("Preselected"); + standardProperties.Add("PRIMARYFOLDER"); + standardProperties.Add("PrimaryVolumePath"); + standardProperties.Add("PrimaryVolumeSpaceAvailable"); + standardProperties.Add("PrimaryVolumeSpaceRemaining"); + standardProperties.Add("PrimaryVolumeSpaceRequired"); + standardProperties.Add("Privileged"); + standardProperties.Add("ProductCode"); + standardProperties.Add("ProductID"); + standardProperties.Add("ProductLanguage"); + standardProperties.Add("ProductName"); + standardProperties.Add("ProductState"); + standardProperties.Add("ProductVersion"); + standardProperties.Add("PROMPTROLLBACKCOST"); + standardProperties.Add("REBOOT"); + standardProperties.Add("REBOOTPROMPT"); + standardProperties.Add("RedirectedDllSupport"); + standardProperties.Add("REINSTALL"); + standardProperties.Add("REINSTALLMODE"); + standardProperties.Add("RemoveAdminTS"); + standardProperties.Add("REMOVE"); + standardProperties.Add("ReplacedInUseFiles"); + standardProperties.Add("RestrictedUserControl"); + standardProperties.Add("RESUME"); + standardProperties.Add("RollbackDisabled"); + standardProperties.Add("ROOTDRIVE"); + standardProperties.Add("ScreenX"); + standardProperties.Add("ScreenY"); + standardProperties.Add("SecureCustomProperties"); + standardProperties.Add("ServicePackLevel"); + standardProperties.Add("ServicePackLevelMinor"); + standardProperties.Add("SEQUENCE"); + standardProperties.Add("SharedWindows"); + standardProperties.Add("ShellAdvtSupport"); + standardProperties.Add("SHORTFILENAMES"); + standardProperties.Add("SourceDir"); + standardProperties.Add("SOURCELIST"); + standardProperties.Add("SystemLanguageID"); + standardProperties.Add("TARGETDIR"); + standardProperties.Add("TerminalServer"); + standardProperties.Add("TextHeight"); + standardProperties.Add("Time"); + standardProperties.Add("TRANSFORMS"); + standardProperties.Add("TRANSFORMSATSOURCE"); + standardProperties.Add("TRANSFORMSSECURE"); + standardProperties.Add("TTCSupport"); + standardProperties.Add("UILevel"); + standardProperties.Add("UpdateStarted"); + standardProperties.Add("UpgradeCode"); + standardProperties.Add("UPGRADINGPRODUCTCODE"); + standardProperties.Add("UserLanguageID"); + standardProperties.Add("USERNAME"); + standardProperties.Add("UserSID"); + standardProperties.Add("Version9X"); + standardProperties.Add("VersionDatabase"); + standardProperties.Add("VersionMsi"); + standardProperties.Add("VersionNT"); + standardProperties.Add("VersionNT64"); + standardProperties.Add("VirtualMemory"); + standardProperties.Add("WindowsBuild"); + standardProperties.Add("WindowsVolume"); + } + } + + return standardProperties.Contains(propertyName); + } + + /// + /// Sets up a hashtable with the set of standard MSI directories + /// + private static void LoadStandardDirectories() + { + lock (lockObject) + { + if (null == standardDirectories) + { + standardDirectories = new HashSet(); + standardDirectories.Add("TARGETDIR"); + standardDirectories.Add("AdminToolsFolder"); + standardDirectories.Add("AppDataFolder"); + standardDirectories.Add("CommonAppDataFolder"); + standardDirectories.Add("CommonFilesFolder"); + standardDirectories.Add("DesktopFolder"); + standardDirectories.Add("FavoritesFolder"); + standardDirectories.Add("FontsFolder"); + standardDirectories.Add("LocalAppDataFolder"); + standardDirectories.Add("MyPicturesFolder"); + standardDirectories.Add("PersonalFolder"); + standardDirectories.Add("ProgramFilesFolder"); + standardDirectories.Add("ProgramMenuFolder"); + standardDirectories.Add("SendToFolder"); + standardDirectories.Add("StartMenuFolder"); + standardDirectories.Add("StartupFolder"); + standardDirectories.Add("System16Folder"); + standardDirectories.Add("SystemFolder"); + standardDirectories.Add("TempFolder"); + standardDirectories.Add("TemplateFolder"); + standardDirectories.Add("WindowsFolder"); + standardDirectories.Add("CommonFiles64Folder"); + standardDirectories.Add("ProgramFiles64Folder"); + standardDirectories.Add("System64Folder"); + standardDirectories.Add("NetHoodFolder"); + standardDirectories.Add("PrintHoodFolder"); + standardDirectories.Add("RecentFolder"); + standardDirectories.Add("WindowsVolume"); + } + } + } + } +} diff --git a/src/WixToolset.Data/WixCorruptFileException.cs b/src/WixToolset.Data/WixCorruptFileException.cs new file mode 100644 index 00000000..f663b92d --- /dev/null +++ b/src/WixToolset.Data/WixCorruptFileException.cs @@ -0,0 +1,29 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Exception when file does not match the expected format. + /// + public class WixCorruptFileException : WixException + { + public WixCorruptFileException(string path, FileFormat format, Exception innerException = null) + : base(WixDataErrors.CorruptFileFormat(path, format.ToString().ToLowerInvariant()), innerException) + { + this.Path = path; + this.FileFormat = format; + } + + /// + /// Gets the actual file format found in the file. + /// + public FileFormat FileFormat { get; private set; } + + /// + /// Gets the path to the file with unexpected format. + /// + public string Path { get; set; } + } +} diff --git a/src/WixToolset.Data/WixDataStrings.Designer.cs b/src/WixToolset.Data/WixDataStrings.Designer.cs new file mode 100644 index 00000000..27c2b22c --- /dev/null +++ b/src/WixToolset.Data/WixDataStrings.Designer.cs @@ -0,0 +1,307 @@ +// 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. + +namespace WixToolset.Data { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class WixDataStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal WixDataStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WixToolset.Data.WixDataStrings", typeof(WixDataStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cannot index into a FileRowCollection that allows duplicate FileIds. + /// + internal static string EXP_CannotIndexIntoFileRowCollection { + get { + return ResourceManager.GetString("EXP_CannotIndexIntoFileRowCollection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The value '{0}' is not a legal identifier and therefore cannot be modularized.. + /// + internal static string EXP_CannotModularizeIllegalID { + get { + return ResourceManager.GetString("EXP_CannotModularizeIllegalID", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A Merge table FileCompression column cannot be set to the invalid value '{0}'.. + /// + internal static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue { + get { + return ResourceManager.GetString("EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Collection has {0} elements. Must have at least one.. + /// + internal static string EXP_CollectionMustHaveAtLeastOneElement { + get { + return ResourceManager.GetString("EXP_CollectionMustHaveAtLeastOneElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Didn't find duplicated symbol.. + /// + internal static string EXP_DidnotFindDuplicateSymbol { + get { + return ResourceManager.GetString("EXP_DidnotFindDuplicateSymbol", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Element must be a subclass of {0}, but was of type {1}.. + /// + internal static string EXP_ElementIsSubclassOfDifferentType { + get { + return ResourceManager.GetString("EXP_ElementIsSubclassOfDifferentType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Element of type {0} found in enumerator. Must be ChoiceItem or SequenceItem.. + /// + internal static string EXP_ElementMustBeChoiceItemOrSequenceItem { + get { + return ResourceManager.GetString("EXP_ElementMustBeChoiceItemOrSequenceItem", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Element of type {0} is not valid for this collection.. + /// + internal static string EXP_ElementOfTypeIsNotValidForThisCollection { + get { + return ResourceManager.GetString("EXP_ElementOfTypeIsNotValidForThisCollection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Expected ComplexReference type.. + /// + internal static string EXP_ExpectedComplexReferenceType { + get { + return ResourceManager.GetString("EXP_ExpectedComplexReferenceType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ISchemaElement with name {0} does not implement ICreateChildren.. + /// + internal static string EXP_ISchemaElementDoesnotImplementICreateChildren { + get { + return ResourceManager.GetString("EXP_ISchemaElementDoesnotImplementICreateChildren", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ISchemaElement with name {0} does not implement ISetAttributes.. + /// + internal static string EXP_ISchemaElementDoesnotImplementISetAttribute { + get { + return ResourceManager.GetString("EXP_ISchemaElementDoesnotImplementISetAttribute", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A Merge table FileCompression column contains an invalid value '{0}'.. + /// + internal static string EXP_MergeTableFileCompressionColumnContainsInvalidValue { + get { + return ResourceManager.GetString("EXP_MergeTableFileCompressionColumnContainsInvalidValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple root elements found in file.. + /// + internal static string EXP_MultipleRootElementsFoundInFile { + get { + return ResourceManager.GetString("EXP_MultipleRootElementsFoundInFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The other object is not a FileRow.. + /// + internal static string EXP_OtherObjectIsNotFileRow { + get { + return ResourceManager.GetString("EXP_OtherObjectIsNotFileRow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type {0} is not valid for this collection.. + /// + internal static string EXP_TypeIsNotValidForThisCollection { + get { + return ResourceManager.GetString("EXP_TypeIsNotValidForThisCollection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unexpected entry section type: {0}. + /// + internal static string EXP_UnexpectedEntrySectionType { + get { + return ResourceManager.GetString("EXP_UnexpectedEntrySectionType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown column type: {0}. + /// + internal static string EXP_UnknownColumnType { + get { + return ResourceManager.GetString("EXP_UnknownColumnType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown compression level type: {0}. + /// + internal static string EXP_UnknownCompressionLevelType { + get { + return ResourceManager.GetString("EXP_UnknownCompressionLevelType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The table {0} is not supported.. + /// + internal static string EXP_UnsupportedTable { + get { + return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XmlElement with name {0} does not have a corresponding ISchemaElement.. + /// + internal static string EXP_XmlElementDoesnotHaveISchemaElement { + get { + return ResourceManager.GetString("EXP_XmlElementDoesnotHaveISchemaElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}({1}). + /// + internal static string Format_FirstLineNumber { + get { + return ResourceManager.GetString("Format_FirstLineNumber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}. + /// + internal static string Format_InfoMessage { + get { + return ResourceManager.GetString("Format_InfoMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}: line {1}. + /// + internal static string Format_LineNumber { + get { + return ResourceManager.GetString("Format_LineNumber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} : {1} {2}{3:0000} : {4}. + /// + internal static string Format_NonInfoMessage { + get { + return ResourceManager.GetString("Format_NonInfoMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Source trace:{0}. + /// + internal static string INF_SourceTrace { + get { + return ResourceManager.GetString("INF_SourceTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to at {0}{1}. + /// + internal static string INF_SourceTraceLocation { + get { + return ResourceManager.GetString("INF_SourceTraceLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to error. + /// + internal static string MessageType_Error { + get { + return ResourceManager.GetString("MessageType_Error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to warning. + /// + internal static string MessageType_Warning { + get { + return ResourceManager.GetString("MessageType_Warning", resourceCulture); + } + } + } +} diff --git a/src/WixToolset.Data/WixDataStrings.resx b/src/WixToolset.Data/WixDataStrings.resx new file mode 100644 index 00000000..16b70d83 --- /dev/null +++ b/src/WixToolset.Data/WixDataStrings.resx @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Unexpected entry section type: {0} + + + The table {0} is not supported. + + + A Merge table FileCompression column contains an invalid value '{0}'. + + + The other object is not a FileRow. + + + Cannot index into a FileRowCollection that allows duplicate FileIds + + + A Merge table FileCompression column cannot be set to the invalid value '{0}'. + + + Expected ComplexReference type. + + + The value '{0}' is not a legal identifier and therefore cannot be modularized. + + + Didn't find duplicated symbol. + + + Unknown column type: {0} + + + Unknown compression level type: {0} + + + {0}({1}) + + + {0} + + + {0}: line {1} + + + {0} : {1} {2}{3:0000} : {4} + + + Source trace:{0} + + + at {0}{1} + + + error + + + warning + + + Multiple root elements found in file. + + + ISchemaElement with name {0} does not implement ICreateChildren. + + + ISchemaElement with name {0} does not implement ISetAttributes. + + + XmlElement with name {0} does not have a corresponding ISchemaElement. + + + Collection has {0} elements. Must have at least one. + + + Element must be a subclass of {0}, but was of type {1}. + + + Element of type {0} is not valid for this collection. + + + Type {0} is not valid for this collection. + + + Element of type {0} found in enumerator. Must be ChoiceItem or SequenceItem. + + \ No newline at end of file diff --git a/src/WixToolset.Data/WixException.cs b/src/WixToolset.Data/WixException.cs new file mode 100644 index 00000000..1254e090 --- /dev/null +++ b/src/WixToolset.Data/WixException.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Base class for all WiX exceptions. + /// + [Serializable] + public class WixException : Exception + { + private MessageEventArgs error; + + /// + /// Instantiate a new WixException with a given WixError. + /// + /// The localized error information. + public WixException(MessageEventArgs error) + : this(error, null) + { + } + + /// + /// Instantiate a new WixException with a given WixError. + /// + /// The localized error information. + /// Original exception. + public WixException(MessageEventArgs error, Exception exception) : + base(error.GenerateMessageString(), exception) + { + this.error = error; + } + + /// + /// Gets the error message. + /// + /// The error message. + public MessageEventArgs Error + { + get { return this.error; } + } + } +} diff --git a/src/WixToolset.Data/WixInvalidIdtException.cs b/src/WixToolset.Data/WixInvalidIdtException.cs new file mode 100644 index 00000000..33fd0591 --- /dev/null +++ b/src/WixToolset.Data/WixInvalidIdtException.cs @@ -0,0 +1,32 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// WiX invalid idt exception. + /// + [Serializable] + public sealed class WixInvalidIdtException : WixException + { + /// + /// Instantiate a new WixInvalidIdtException. + /// + /// The invalid idt file. + public WixInvalidIdtException(string idtFile) : + base(WixDataErrors.InvalidIdt(new SourceLineNumber(idtFile), idtFile)) + { + } + + /// + /// Instantiate a new WixInvalidIdtException. + /// + /// The invalid idt file. + /// The table name of the invalid idt file. + public WixInvalidIdtException(string idtFile, string tableName) : + base(WixDataErrors.InvalidIdt(new SourceLineNumber(idtFile), idtFile, tableName)) + { + } + } +} diff --git a/src/WixToolset.Data/WixMissingTableDefinitionException.cs b/src/WixToolset.Data/WixMissingTableDefinitionException.cs new file mode 100644 index 00000000..6295813b --- /dev/null +++ b/src/WixToolset.Data/WixMissingTableDefinitionException.cs @@ -0,0 +1,22 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Exception thrown when a table definition is missing. + /// + [Serializable] + public class WixMissingTableDefinitionException : WixException + { + /// + /// Instantiate new WixMissingTableDefinitionException. + /// + /// Localized error information. + public WixMissingTableDefinitionException(MessageEventArgs error) + : base(error) + { + } + } +} diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj new file mode 100644 index 00000000..dd14bfae --- /dev/null +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -0,0 +1,195 @@ + + + + + + + + netstandard2.0 + WiX Toolset Data + + + + + + + + $(RootNamespace).Data.messages.resources + + + WixToolset.Data.Serialize + + + + + + + + + + diff --git a/src/WixToolset.Data/WixUnexpectedFileFormatException.cs b/src/WixToolset.Data/WixUnexpectedFileFormatException.cs new file mode 100644 index 00000000..4d1e39e9 --- /dev/null +++ b/src/WixToolset.Data/WixUnexpectedFileFormatException.cs @@ -0,0 +1,35 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Exception when file does not match the expected format. + /// + public class WixUnexpectedFileFormatException : WixException + { + public WixUnexpectedFileFormatException(string path, FileFormat expectedFormat, FileFormat format, Exception innerException = null) + : base(WixDataErrors.UnexpectedFileFormat(path, expectedFormat.ToString().ToLowerInvariant(), format.ToString().ToLowerInvariant()), innerException) + { + this.Path = path; + this.ExpectedFileFormat = expectedFormat; + this.FileFormat = format; + } + + /// + /// Gets the expected file format. + /// + public FileFormat ExpectedFileFormat { get; private set; } + + /// + /// Gets the actual file format found in the file. + /// + public FileFormat FileFormat { get; private set; } + + /// + /// Gets the path to the file with unexpected format. + /// + public string Path { get; set; } + } +} diff --git a/src/WixToolset.Data/Xsd/wix.xsd b/src/WixToolset.Data/Xsd/wix.xsd new file mode 100644 index 00000000..cff3c219 --- /dev/null +++ b/src/WixToolset.Data/Xsd/wix.xsd @@ -0,0 +1,13036 @@ + + + + + + + + Schema for describing Windows Installer database files (.msi/.msm/.pcp). + + + + + + + + + + This is the top-level container element for every wxs file. Among the possible children, + the Bundle, Product, Module, Patch, and PatchCreation elements are analogous to the main function in a C program. + There can only be one of these present when linking occurs. Product compiles into an msi file, + Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element + is an atomic unit which ultimately links into either a Product, Module, or PatchCreation. The + Fragment can either be completely included or excluded during linking. + + + + + + + + + + + + + + + + + + Required version of the WiX toolset to compile this input file. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema. + + + + + + + + + This is the top-level container element for every wxi file. + + + + + + + + + + + The root element for creating bundled packages. + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + A URL for more information about the bundle to display in Programs and Features (also + known as Add/Remove Programs). + + + + + + + The legal copyright found in the version resources of final bundle executable. If + this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.". + + + + + + Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes. + + + + + + Determines whether the bundle can be modified via the Programs and Features (also known as + Add/Remove Programs). If the value is "button" then Programs and Features will show a single + "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show + the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown. + See the DisableRemove attribute for information how to not display the bundle in Programs + and Features. + + + + + + + Determines whether the bundle can be removed via the Programs and Features (also + known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will + not be displayed. The default is "no" which ensures there is an "Uninstall" button to + remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the + bundle will not be displayed in Progams and Features and another mechanism (such as + registering as a related bundle addon) must be used to ensure the bundle can be removed. + + + + + + + + + + + + + + A telephone number for help to display in Programs and Features (also known as + Add/Remove Programs). + + + + + + + A URL to the help for the bundle to display in Programs and Features (also known as + Add/Remove Programs). + + + + + + + Path to an icon that will replace the default icon in the final Bundle executable. + This icon will also be displayed in Programs and Features (also known as Add/Remove + Programs). + + + + + + + The publisher of the bundle to display in Programs and Features (also known as + Add/Remove Programs). + + + + + + + The name of the bundle to display in Programs and Features (also known as Add/Remove + Programs). This name can be accessed and overwritten by a BootstrapperApplication + using the WixBundleName bundle variable. + + + + + + + The name of the parent bundle to display in Installed Updates (also known as Add/Remove + Programs). This name is used to nest or group bundles that will appear as updates. + If the parent name does not actually exist, a virtual parent is created automatically. + + + + + + Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed. + + + + + Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality. + + + + + + A URL for updates of the bundle to display in Programs and Features (also + known as Add/Remove Programs). + + + + + + + Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the + bundle with the highest version will be installed. + + + + + + + The version of the bundle. Newer versions upgrade earlier versions of the bundles + with matching UpgradeCodes. If the bundle is registered in Programs and Features + then this attribute will be displayed in the Programs and Features user interface. + + + + + + + The condition of the bundle. If the condition is not met, the bundle will + refuse to run. Conditions are checked before the bootstrapper application is loaded + (before detect), and thus can only reference built-in variables such as + variables which indicate the version of the OS. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location. + + + + + + + + The identifier of the ApprovedExeForElevation element. + + + + + + The key path. + For security purposes, the root key will be HKLM and Variables are not supported. + + + + + + + The value name. + For security purposes, Variables are not supported. + + + + + + + Instructs the search to look in the 64-bit registry when the value is 'yes'. + When the value is 'no', the search looks in the 32-bit registry. + The default value is 'no'. + + + + + + + + Overrides the default log settings for a bundle. + + + + + + + + + Disables the default logging in the Bundle. The end user can still generate a + log file by specifying the "-l" command-line argument when installing the + Bundle. + + + + + + + Name of a Variable that will hold the path to the log file. An empty value + will cause the variable to not be set. The default is "WixBundleLog". + + + + + + + File name and optionally a relative path to use as the prefix for the log file. The + default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value + "Setup". + + + + + + The extension to use for the log. The default is ".log". + + + + + + + Specify one or more catalog files that will be used to verify the contents of the bundle. + + + + + + + + The identifier of the catalog element. + + + + + The catalog file + + + + + + + Contains all the relevant information about the setup UI. + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element. + + + + + The DLL with the bootstrapper application entry function. + + + + + The relative destination path and file name for the bootstrapper application DLL. The default is the source file name. Use this attribute to rename the bootstrapper application DLL or extract it into a subfolder. The use of '..' directories is not allowed. + + + + + + + Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application. + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + The identifier of the BootstrapperApplication element to reference. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + This element has been deprecated. Use the BootstrapperApplication element instead. + + + + + + + + + + + + + + See the BootstrapperApplication instead. + + + + + See the BootstrapperApplication instead. + + + + + See the BootstrapperApplication instead. + + + + + + + Writes additional information to the Windows registry that can be used to detect the bundle. + This registration is intended primarily for update to an existing product. + + + The attributes are used to write the following registry values to the key: + SOFTWARE\[Manufacturer]\Updates\[ProductFamily]\[Name] + + ThisVersionInstalled: Y + PackageName: >bundle name< + PackageVersion: >bundle version< + Publisher: [Manufacturer] + PublishingGroup: [Department] + ReleaseType: [Classification] + InstalledBy: [LogonUser] + InstalledDate: [Date] + InstallerName: >installer name< + InstallerVersion: >installer version< + + + + + + + + The name of the manufacturer. The default is the Bundle/@Manufacturer attribute, + but may also be a short form, ex: Acme instead of Acme Corporation. + An error is generated at build time if neither attribute is specified. + + + + + The name of the department or division publishing the update bundle. + The PublishingGroup registry value is not written if this attribute is not specified. + + + + + The name of the family of products being updated. The default is the Bundle/@ParentName attribute. + The corresponding registry key is not created if neither attribute is specified. + + + + + The name of the bundle. The default is the Bundle/@Name attribute, + but may also be a short form, ex: KB12345 instead of Update to Product (KB12345). + An error is generated at build time if neither attribute is specified. + + + + + The release type of the update bundle, such as Update, Security Update, Service Pack, etc. + The default value is Update. + + + + + + + Contains the chain of packages to install. + + + + + + + + + + + + + + + + + Specifies whether the bundle will attempt to rollback packages + executed in the chain. If "yes" is specified then when a vital + package fails to install only that package will rollback and the + chain will stop with the error. The default is "no" which + indicates all packages executed during the chain will be + rolledback to their previous state when a vital package fails. + + + + + + + Specifies whether the bundle will attempt to create a system + restore point when executing the chain. If "yes" is specified then + a system restore point will not be created. The default is "no" which + indicates a system restore point will be created when the bundle is + installed, uninstalled, repaired, modified, etc. If the system restore + point cannot be created, the bundle will log the issue and continue. + + + + + + + Specifies whether the bundle will start installing packages + while other packages are still being cached. If "yes", + packages will start executing when a rollback boundary is + encountered. The default is "no" which dictates all packages + must be cached before any packages will start to be installed. + + + + + + + + Describes a single msi package to install. + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. The extension's + CompilerExtension.ParseElement() + method will be called with the package identifier as the first value in + contextValues. + + + + + + + + + Specifies whether the bundle will show the UI authored into the msi package. The default is "no" + which means all information is routed to the bootstrapper application to provide a unified installation + experience. If "yes" is specified the UI authored into the msi package will be displayed on top of + any bootstrapper application UI. + + + + + + + Specifies whether the bundle will allow individual control over the installation state of Features inside + the msi package. Managing feature selection requires special care to ensure the install, modify, update and + uninstall behavior of the package is always correct. The default is "no". + + + + + + + Override the automatic per-machine detection of MSI packages and force the package to be per-machine. + The default is "no", which allows the tools to detect the expected value. + + + + + + + This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package + to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads. + The resulting Bundle may not be able to install the MSI package correctly. The default is "no". + + + + + + + Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is + specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI + will not be displayed. + + + + + + + + Describes a single msp package to install. + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. The extension's + CompilerExtension.ParseElement() + method will be called with the package identifier as the first value in + contextValues. + + + + + + + + + Specifies whether the bundle will show the UI authored into the msp package. The default is "no" + which means all information is routed to the bootstrapper application to provide a unified installation + experience. If "yes" is specified the UI authored into the msp package will be displayed on top of + any bootstrapper application UI. + + + + + + Indicates the package must be executed elevated. The default is "no". + + + + + + Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no". + Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired. + + + + + + + + Describes a single msu package to install. + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. The extension's + CompilerExtension.ParseElement() + method will be called with the package identifier as the first value in + contextValues. + + + + + + + + + A condition that determines if the package is present on the target system. This condition can use built-in + variables and variables returned by searches. This condition is necessary because Windows doesn't provide a + method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this + package during a bundle action; for example, if this condition is false or omitted and the bundle is being + installed, Burn will install this package. + + + + + + + The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to + be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute + is specified, the Permanent attribute will the control whether the package is uninstalled. + + + + + + + + Describes a single exe package to install. + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. The extension's + CompilerExtension.ParseElement() + method will be called with the package identifier as the first value in + contextValues. + + + + + + + + + A condition that determines if the package is present on the target system. This condition can use built-in + variables and variables returned by searches. This condition is necessary because Windows doesn't provide a + method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this + package during a bundle action; for example, if this condition is false or omitted and the bundle is being + installed, Burn will install this package. + + + + + + The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments. + + + + + + The command-line arguments to specify to indicate a repair. If the executable package can be repaired but + does not require any special command-line arguments to do so then set the attribute's value to blank. To + indicate that the package does not support repair, omit this attribute. + + + + + + The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes". + + + + + Indicates the package must be executed elevated. The default is "no". + + + + + Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none". + + + + + + + Describes a rollback boundary in the chain. + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. The extension's + CompilerExtension.ParseElement() + method will be called with the rollback boundary identifier as the 'RollbackBoundaryId' key in + contextValues. + + + + + + + + Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is + not provided a stable identifier will be generated. + + + + + + + Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if + the rollback boundary is encountered then the chain will fail and rollback or stop. If "no" + is specified then the chain should continue successfuly at the next rollback boundary. + + + + + + + Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no" + + + + + + + + + + Location of the package to add to the bundle. The default value is the Name attribute, if provided. + At a minimum, the SourceFile or Name attribute must be specified. + + + + + + + The destination path and file name for this chain payload. Use this attribute to rename the + chain entry point or extract it into a subfolder. The default value is the file name from the + SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. + The use of '..' directories is not allowed. + + + + + + + The URL to use to download the package. The following substitutions are supported: + + {0} is replaced by the package Id. + {1} is replaced by the payload Id. + {2} is replaced by the payload file name. + + + + + + + + Identifier for this package, for ordering and cross-referencing. The default is the Name attribute + modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). + + + + + + + The identifier of another package that this one should be installed after. By default the After + attribute is set to the previous sibling package in the Chain or PackageGroup element. If this + attribute is specified ensure that a cycle is not created explicitly or implicitly. + + + + + + + The size this package will take on disk in bytes after it is installed. By default, the binder will + calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) + and use the total for the install size of the package. + + + + + + A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. + + + + + Whether to cache the package. The default is "yes". + + + + + The identifier to use when caching the package. + + + + + + Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages + use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use + the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the + bootstrapper application data manifest. + + + + + + + Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages + use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use + the Description patch metadata property. Other package types must use this attribute to define a description in the + bootstrapper application data manifest. + + + + + + + Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not + be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. + + + + + + + Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause + the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which + default to no logging. + + + + + + + Specifies whether the package can be uninstalled. The default is "no". + + + + + + + Specifies whether the package must succeed for the chain to continue. The default "yes" + indicates that if the package fails then the chain will fail and rollback or stop. If + "no" is specified then the chain will continue even if the package reports failure. + + + + + + Whether the package payload should be embedded in a container or left as an external payload. + + + + + + By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" + and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the + signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. + Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. The extension's + CompilerExtension.ParseAttribute() + method will be called with the package identifier in + contextValues["PackageId"]. + + + + + + + Describes a package group to a bootstrapper. + + + + + + + + + + + + + + + + Identifier for package group. + + + + + + + Create a reference to PackageGroup element that exists inside a Bundle or Fragment element. + + + + + + + + + + + The identifier of the PackageGroup element to reference. + + + + + The identifier of a package that this group should be installed after. + + + + + + + Allows an MSI property to be set based on the value of a burn engine expression. + + + + + + + + The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE + + + + + The value to set the property to. This string is evaluated by the burn engine and can be as simple as a burn engine variable reference or as complex as a full expression. + + + + + + + Specifies a patch included in the same bundle that is installed when the parent MSI package is installed. + + + + + You can also specify that any MspPackage elements in the chain are automatically slipstreamed by setting the Slipstream attribute of an MspPackage to "yes". This will reduce the amount of authoring you need to write and will determine which msi packages can slipstream patches when building a bundle. + + + + + + + The identifier for a MspPackage in the bundle. + + + + + + + Describes a burn engine variable to define. + + + + + + + + + Whether the value of the variable should be hidden. + + + + + The name for the variable. + + + + + Whether the variable should be persisted. + + + + + Starting value for the variable. + + + + + Type of the variable, inferred from the value if not specified. + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Representation of a file that contains one or more files. + + + + + + + + + + + + The URL to use to download the container. This attribute is only valid when the container is detached. The + following substitutions are supported: + + {0} is always null. + {1} is replaced by the container Id. + {2} is replaced by the container file name. + + + + + + + The unique identifier for the container. If this attribute is not specified the Name attribute will be used. + + + + + The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle. + + + + + + Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If + this attribute is not specified, the default is to create a detached container. + + + + + + + + Create a reference to an existing Container element. + + + + + + + + + The identifier of Container element to reference. + + + + + + + Describes map of exit code returned from executable package to a bootstrapper behavior. + + + + + + + + Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior. + + + + + Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot. + + + + + + + + + + + + + + + Describes additional, conditional command-line arguments for an ExePackage. + + + + + Additional command-line arguments to apply during package installation if Condition is true. + + + + + Additional command-line arguments to apply during package uninstallation if Condition is true. + + + + + Additional command-line arguments to apply during package repair if Condition is true. + + + + + + The condition that controls whether the command-line arguments specified in the + InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the + command line passed to the ExePackage. Which attribute is used depends on the + action being applied to the ExePackage. For example, when the ExePackage is + being installed, the InstallArgument attribute value is appended to the command + line when the ExePackage is executed. + + + + + + + + Describes a payload to a bootstrapper. + + + + + + + + + + + + + The identifier of Payload element. + + + + + Whether the payload should be embedded in a container or left as an external payload. + + + + + Location of the source file. + + + + + The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed. + + + + + + The URL to use to download the package. The following substitutions are supported: + + {0} is replaced by the package Id. + {1} is replaced by the payload Id. + {2} is replaced by the payload file name. + + + + + + + + By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" + and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the + signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. + Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". + + + + + + + + Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle. + PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage. + It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it. + + + + + + + + + + + + Identifier for payload group. + + + + + + + Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element. + + + + + + + + + + + The identifier of the PayloadGroup element to reference. + + + + + + + Describes information about a remote file payload that is not available at the time of building the bundle. + The parent must specify DownloadUrl and must not specify SourceFile when using this element. + + + + + + + + + Public key of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. + + + + + Thumbprint of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. + + + + + Description of the file from version resources. + + + + + SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes. + + + + + Product name of the file from version resouces. + + + + + Size of the remote file in bytes. + + + + + Version of the remote file + + + + + + + Create a RelatedBundle element. + + + + + + + + + The identifier of the RelatedBundle group. + + + + + The action to take on bundles related to this one. Detect is the default. + + + + + + + + + + + + + + + Defines the update for a Bundle. + + + + + + + + + + The absolute path or URL to check for an update bundle. Currently the engine provides this value + in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the + future the engine will be able to acquire an update bundle from the location and determine if it + is newer than the current executing bundle. + + + + + + + + + The Product element is analogous to the main function in a C program. When linking, only one Product section + can be given to the linker to produce a successful result. Using this element creates an msi file. + + + + You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + The product code GUID for the product. + + + + + The code page integer value or web name for the resulting MSI. See remarks for more information. + + + + + The decimal language ID (LCID) for the product. + + + + + The manufacturer of the product. + + + + + The descriptive name of the product. + + + + + The upgrade code GUID for the product. + + + + + The product's version string. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + The Module element is analogous to the main function in a C program. When linking, only + one Module section can be given to the linker to produce a successful result. Using this + element creates an msm file. + + + + You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + The name of the merge module (not the file name). + + + + + The code page integer value or web name for the resulting MSM. See remarks for more information. + + + + + This attribute is deprecated. Use the Package/@Id attribute instead. + + + + + The decimal language ID (LCID) of the merge module. + + + + + The major and minor versions of the merge module. + + + + + + + Declares a dependency on another merge module. + + + + + Identifier of the merge module required by the merge module. + + + + + Numeric language ID of the merge module in RequiredID. + + + + + Version of the merge module in RequiredID. + + + + + + + Declares a merge module with which this merge module is incompatible. + + + + + Identifier of the merge module that is incompatible. + + + + + Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. + + + + + Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. + + + + + Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version. + + + + + Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version. + + + + + + + Defines the configurable attributes of merge module. + + + + + Defines the name of the configurable item. + + + + + Specifies the format of the data being changed. + + + + + + + + + + + + + Specifies the type of the data being changed. + + + + + Specifies a semantic context for the requested data. + + + + + Specifies a default value for the item in this record if the merge tool declines to provide a value. + + + + + Does not merge rule according to rules in MSI SDK. + + + + + If yes, null is not a valid entry. + + + + + Display name for authoring. + + + + + Description for authoring. + + + + + Location of chm file for authoring. + + + + + Keyword into chm file for authoring. + + + + + + + Specifies the configurable fields of a module database and provides a template for the configuration of each field. + + + + + Specifies the name of the table being modified in the module database. + + + + + Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons. + + + + + Specifies the target column in the row named in the Row column. + + + + + Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. + + + + + + + + Specifies a table from the merge module that is not merged into an .msi file. + If the table already exists in an .msi file, it is not modified by the merge. + The specified table can therefore contain data that is unneeded after the merge. + To minimize the size of the .msm file, it is recommended that developers remove + unused tables from modules intended for redistribution rather than creating + IgnoreTable elements for those tables. + + + + + + + The name of the table in the merge module that is not to be merged into the .msi file. + + + + + + + + + The Fragment element is the building block of creating an installer database in WiX. Once defined, + the Fragment becomes an immutable, atomic unit which can either be completely included or excluded + from a product. The contents of a Fragment element can be linked into a product by utilizing one + of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its + individual units. For instance, if a given Fragment contains two Component elements, you must link + both under features using ComponentRef for each linked Component. Otherwise, you will get a linker + warning and have a floating Component that does not appear under any Feature. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Optional identifier for a Fragment. Should only be set by advanced users to tag sections. + + + + + + + + + The Patch element is analogous to the main function in a C program. When linking, only one Patch section + can be given to the linker to produce a successful result. Using this element creates an MSP file. + + + + You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. + The ClientPatchId attribute allows you to specify an easily referenced identity that you can use in product authoring. This identity prefixes properties added by WiX to a patch transform, such as ClientPatchId.PatchCode and ClientPatchId.AllowRemoval. If the patch code GUID is auto-generated you could not reference any properties using this auto-generated prefix. + For example, if you were planning to ship a patch referred to as "QFE1" and needed to write your own registry values for Add/Remove Programs in product authoring such as the UninstallString for this patch, you could author a RegistryValue with the name UninstallString and the value [SystemFolder]msiexec.exe /package [ProductCode] /uninstall [QFE1.PatchCode]. In your patch authoring you would then set ClientPatchId to "QFE1" and WiX will add the QFE1.PatchCode property to the patch transform when the patch is created. If the Id attribute specified the patch code to be generated automatically, you could not reference the prefix.PatchCode property as shown above. + The summary information is automatically populated from attribute values of the Patch element including the code page. If you want to override some of these summary information properties or use a different code page for the summary information itself, author the PatchInformation element. + + + + + + + + + Optional element that allows overriding summary information properties. + + + + + + Indicates whether custom actions can be skipped when applying the patch. + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Patch code for this patch. + + + + + The code page integer value or web name for the resulting MSP. See remarks for more information. + + + + + Whether this is an uninstallable patch. + + + + + Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. + + + + + An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information. + + + + + Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll. + + + + + Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures. + + + + + Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names. + + + + + Description of the patch. + + + + + A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. + + + + + Optional comments for browsing. + + + + + Vendor releasing the package + + + + + + Indicates that the patch targets the RTM version of the product or the most recent major + upgrade patch. Author this optional property in minor update patches that contain sequencing + information to indicate that the patch removes all patches up to the RTM version of the + product, or up to the most recent major upgrade patch. This property is available beginning + with Windows Installer 3.1. + + + + + + A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. + + + + + + If this attribute is set to 'yes' in all the patches to be applied in a transaction, the + application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. + + + + + + Name of the application or target product suite. + + + + + When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller. + + + + + + + Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform. + + + A transform contains the differences between the target product and the upgraded product. When a transform or a patch (which contains transforms) is applied, the following properties of the installed product are validated against the properties of the target product stored in a transform. + + ProductCode + ProductLanguage + ProductVersion + UpgradeCode + + Windows Installer simply validates that the ProductCode, ProductLanguage, and UpgradeCode of an installed product are equivalent to those propeties of the target product used to create the transform; however, the ProductVersion can be validated with a greater range of comparisons. + You can compare up to the first three fields of the ProductVersion. Changes to the fourth field are not validated and are useful for small updates. You can also choose how to compare the target ProductVersion used to create the transform with the installed ProductVersion. For example, while the default value of 'Equals' is recommended, if you wanted a minor upgrade patch to apply to the target ProductVersion and all older products with the same ProductCode, you would use 'LesserOrEqual'. + + + + + + + Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'. + + + + + Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'. + + + + + Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'. + + + + + + Checks the major version. + + + + + Checks the major and minor versions. + + + + + Checks the major, minor, and update versions. + + + + + + + + Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'. + + + + + + Installed ProductVersion < target ProductVersion. + + + + + Installed ProductVersion <= target ProductVersion. + + + + + Installed ProductVersion = target ProductVersion. + + + + + Installed ProductVersion >= target ProductVersion. + + + + + Installed ProductVersion > target ProductVersion. + + + + + + + + Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'. + + + + + Ignore errors when adding existing rows. The default is 'yes'. + + + + + Ignore errors when adding existing tables. The default is 'yes'. + + + + + Ignore errors when deleting missing rows. The default is 'yes'. + + + + + Ignore errors when deleting missing tables. The default is 'yes'. + + + + + Ignore errors when updating missing rows. The default is 'yes'. + + + + + Ignore errors when changing the database code page. The default is 'no'. + + + + + + + Indicates whether custom actions can be skipped when applying the patch. + + + + + + + + Skip property (type 51) and directory (type 35) assignment custom actions. + + + + + Skip immediate custom actions that are not property or directory assignment custom actions. + + + + + Skip custom actions that run within the script. + + + + + + + Identifies a set of product versions. + + + + + + + + Identifier for a set of product versions. + + + + + + + Collection of items that should be kept from the differences between two products. + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Identifier which indicates a sequence family to which this patch belongs. + + + + + + Specifies the ProductCode of the product that this family applies to. + + + + + + Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. + + + + + + Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. + The default value is 'no'. + + + + + + + + + Groups together multiple patch families to be used in other locations. + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + Identifier for the PatchFamilyGroup. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Create a reference to a PatchFamilyGroup in another Fragment. + + + + + + + + The identifier of the PatchFamilyGroup to reference. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section + can be given to the linker to produce a successful result. Using this element creates a pcp file. + + + + You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. + + + + + + + + + + + + + + + + + + PatchCreation identifier; this is the primary key for identifying patches. + + + + + Use this to set whether the major versions between the upgrade and target images match. See AllowProductVersionMajorMismatches for more information. + + + + + Use this to set whether the product code between the upgrade and target images match. See AllowProductCodeMismatches for more information. + + + + + Use this to set whether Patchwiz should clean the temp folder when finished. See DontRemoveTempFolderWhenFinished for more information. + + + + + The code page integer value or web name for the resulting PCP. See remarks for more information. + + + + + The full path, including file name, of the patch package file that is to be generated. See PatchOutputPath for more information. + + + + + Used to locate the .msp file for the patch if the cached copy is unavailable. See PatchSourceList for more information. + + + + + An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See ApiPatchingSymbolFlags for more information. + + + + + Use this to set whether changing files should be included in their entirety. See IncludeWholeFilesOnly for more information. + + + + + + + Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. + + + You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. + + + + + + + A short description of the patch that includes the name of the product. + + + + + + + + + + + + + + + + + + + The name of the manufacturer of the patch package. + + + + + A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database". + + + + + General purpose of the patch package. For example, "This patch contains the logic and data required to install <product>." + + + + + + The value of this attribute conveys whether the package should be opened as read-only. + A database editing tool should not modify a read-only enforced database and should + issue a warning at attempts to modify a read-only recommended database. + + + + + + The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Properties about the patch to be placed in the PatchMetadata table. + + + + + + + + + + A custom property that extends the standard set. + + + + + Indicates whether custom actions can be skipped when applying the patch. + + + + + + + Whether this is an uninstallable patch. + + + + + Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. + + + + + Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute). + + + + + Description of the patch. + + + + + A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. + + + + + Name of the manufacturer. + + + + + + Indicates that the patch targets the RTM version of the product or the most recent major + upgrade patch. Author this optional property in minor update patches that contain sequencing + information to indicate that the patch removes all patches up to the RTM version of the + product, or up to the most recent major upgrade patch. This property is available beginning + with Windows Installer 3.1. + + + + + + A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. + + + + + + If this attribute is set to 'yes' in all the patches to be applied in a transaction, the + application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. + + + + + + Name of the application or target product suite. + + + + + + + A custom property for the PatchMetadata table. + + + + + The name of the company. + + + + + The name of the metadata property. + + + + + Value of the metadata property. + + + + + + + A patch that is deprecated by this patch. + + + + + Patch GUID to be unregistered if it exists on the machine targeted by this patch. + + + + + + + + The product codes for products that can accept the patch. + + + + + + + + + Whether to replace the product codes that can accept the patch from the target packages with the child elements. + + + + + + + + A product code for a product that can accept the patch. + + + + When using the PatchCreation element, if the Id attribute value is '*' or this element is not authored, the product codes of all products referenced by the TargetImages element are used. + When using the Patch element, the Id attribute value must not be '*'. Use the TargetProductCodes/@Replace attribute instead. + + + + + + + + The product code for a product that can accept the patch. This can be '*'. See remarks for more information. + + + + + + + + A property for this patch database. + + + + When authored under the Patch element, the PatchProperty defines entries in the MsiPatchMetadata table. + + + + + + + Name of the company for a custom metadata property. + + + + + Name of the patch property. + + + + + Value of the patch property. + + + + + + + Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly. + + + + + + + + Identifier which indicates a sequence family to which this patch belongs. + + + + + + Specifies the ProductCode of the product that this family applies to. + This attribute cannot the specified if the TargetImage attribute is specified. + + + + + + Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. + + + + + + Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. + The default value is 'no'. + + + + + + + + + + + + + + Specifies the TargetImage that this family applies to. + This attribute cannot the specified if the ProductCode attribute is specified. + + + + + + + + Group of one or more upgraded images of a product. + + + + + + + + + + + + Entered into the DiskId field of the new Media table record. + + + + + Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. + + + + + Entered into the Source field of the new Media table entry of the upgraded image. + + + + + Identifier for the family. + + + + + Sequence number for the starting file. + + + + + Entered into the VolumeLabel field of the new Media table record. + + + + + + + Contains information about the upgraded images of the product. + + + + + + + + + + + + Identifier to connect target images with upgraded image. + + + + + Full path to location of msi file for upgraded image. + + + + + + + + + + + + Modified copy of the upgraded installation database that contains additional authoring specific to patching. + + + + + + + + + + + + + + Contains information about the target images of the product. + + + + + + + + + Identifier for the target image. + + + + + Full path to the location of the msi file for the target image. + + + + + + + + + + + + Relative order of the target image. + + + + + Product checking to avoid applying irrelevant transforms. + + + + + Files missing from the target image are ignored by the installer. + + + + + + + Information about specific files in a target image. + + + + + + + + + + + + Foreign key into the File table. + + + + + + + Specifies part of a file that is to be ignored during patching. + + + + + Offset of the start of the range. + + + + + Length of the range. + + + + + + + Specifies part of a file that cannot be overwritten during patching. + + + + + Offset of the start of the range. + + + + + Length of the range. + + + + + + + Specifies a file to be protected. + + + + + + + + Foreign key into the File table. + + + + + + + Contains information about specific files that are not part of a regular target image. + + + + + + + + + + + + Foreign key into the File table. + + + + + Full path of the external file. + + + + + + + + + + + + Specifies the order of the external files to use when creating the patch. + + + + + + + Specifies files to either ignore or to specify optional data about a file. + + + + + + + + Foreign key into the File table. + + + + + If yes, the file is ignored during patching, and the next two attributes are ignored. + + + + + Specifies whether patching this file is vital. + + + + + Whether the whole file should be installed, rather than creating a binary patch. + + + + + + + A path to symbols. + + + + + The path. + + + + + + + + Properties about the package to be placed in the Summary Information Stream. These are + visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. + + + + You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. + + + + + + + + The package code GUID for a product or merge module. + When compiling a product, this attribute should not be set in order to allow the package + code to be generated for each build. + When compiling a merge module, this attribute must be set to the modularization guid. + + + + + + Set to 'yes' if the source is an admin image. + + + + + Optional comments for browsing. + + + + + + Set to 'yes' to have compressed files in the source. + This attribute cannot be set for merge modules. + + + + + + The product full name or description. + + + + + Use this attribute to specify the priviliges required to install the package on Windows Vista and above. + + + + + + + Set this value to declare that the package does not require elevated privileges to install. + + + + + + + Set this value to declare that the package requires elevated privileges to install. + This is the default value. + + + + + + + + + Use this attribute to specify the installation scope of this package: per-machine or per-user. + + + + + + + Set this value to declare that the package is a per-machine installation and requires elevated privileges to install. + Sets the ALLUSERS property to 1. + + + + + + + Set this value to declare that the package is a per-user installation and does not require elevated privileges to install. + Sets the package's InstallPrivileges attribute to "limited." + + + + + + + + + + The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer + and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and + "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as + Windows Installer 2.0 was the first version to support 64-bit packages. + + + + + + Optional keywords for browsing. + + + + + The list of language IDs (LCIDs) supported in the package. + + + + + The vendor releasing the package. + + + + + + The list of platforms supported by the package. This attribute has been deprecated. + Specify the -arch switch at the candle.exe command line or the InstallerPlatform + property in a .wixproj MSBuild project. + + + + + + + The platform supported by the package. Use of this attribute is discouraged; instead, + specify the -arch switch at the candle.exe command line or the InstallerPlatform + property in a .wixproj MSBuild project. + + + + + + + + Set this value to declare that the package is an x86 package. + + + + + + + Set this value to declare that the package is an ia64 package. + This value requires that the InstallerVersion property be set to 200 or greater. + + + + + + + Set this value to declare that the package is an x64 package. + This value requires that the InstallerVersion property be set to 200 or greater. + + + + + + + Set this value to declare that the package is an arm package. + This value requires that the InstallerVersion property be set to 500 or greater. + + + + + + + This value has been deprecated. Use "x86" instead. + + + + + + + This value has been deprecated. Use "ia64" instead. + + + + + + + + + + The value of this attribute conveys whether the package should be opened as read-only. + A database editing tool should not modify a read-only enforced database and should + issue a warning at attempts to modify a read-only recommended database. + + + + + + Set to 'yes' to have short filenames in the source. + + + + + The code page integer value or web name for summary info strings only. See remarks for more information. + + + + + + + + The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. + Consider using the Assembly attribute on File element to have the toolset populate these entries automatically. + + + + + + + + + Name of the attribute associated with the value specified in the Value column. + + + + + Value associated with the name specified in the Name column. + + + + + + + + Identifies the possible signer certificates used to digitally sign patches. + + + + + + + + + + + + + + + Digital signatures that identify installation packages in a multi-product transaction. + + + + + + + + + + + + + + + Adds a digital certificate. + + + + + + + + + Identifier for a certificate file. + + + + + The path to the certificate file. + + + + + + + + Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents + to be included in the installer database. This is only used for references when patching. + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Adds a digital signature. + + + + + + + + + + + + The path to signature's optional hash file. + + + + + + + + Adds a system file protection update catalog file + + + + + + + + + + + Primary Key to File Table. + + + + + + Filename for catalog file when installed. + + + + + Used to define dependency outside of the package. + + + + + Path to catalog file in binary. + + + + + + + + Provides a many-to-many mapping from the SFPCatalog table to the File table + + + + + + + + + Primary Key to File Table. + + + + + + + + Adds or removes .ini file entries. + + + + + + + + + + Identifier for ini file. + + + + + The type of modification to be made. + + + + + + Creates or updates an .ini entry. + + + + + Creates a new entry or appends a new comma-separated value to an existing entry. + + + + + Creates an .ini entry only if the entry does no already exist. + + + + + Removes an .ini entry. + + + + + Removes a tag from an .ini entry. + + + + + + + + Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path. + + + + + The localizable .ini file key within the section. + + + + + + In prior versions of the WiX toolset, this attribute specified the short name. + This attribute's value may now be either a short or long name. + If a short name is specified, the ShortName attribute may not be specified. + Also, if this value is a long name, the ShortName attribute may be omitted to + allow WiX to attempt to generate a unique short name. + However, if this name collides with another file or you wish to manually specify + the short name, then the ShortName attribute may be specified. + + + + + + The localizable .ini file section. + + + + + + The short name of the in 8.3 format. + This attribute should only be set if there is a conflict between generated short names + or the user wants to manually specify the short name. + + + + + + + The localizable value to be written or deleted. This attribute must be set if + the Action attribute's value is "addLine", "addTag", or "createLine". + + + + + + + + + ODBCDataSource for a Component + + + + + + + + + + Translates into ODBCSourceAttributes + + + + + + Identifier of the data source. + + + + + Name for the data source. + + + + + Required if not found as child of ODBCDriver element + + + + + Scope for which the data source should be registered. + + + + + + + Data source is registered per machine. + + + + + + + Data source is registered per user. + + + + + + + + + Set 'yes' to force this file to be key path for parent Component + + + + + + + + ODBCDriver for a Component + + + + + + + + + + Translates into ODBCSourceAttributes + + + + + + + Identifier for the driver. + + + + + Name for the driver. + + + + + Required if not found as child of File element + + + + + Required if not found as child of File element or different from File attribute above + + + + + + + + ODBCTranslator for a Component + + + + + + + + + Identifier for the translator. + + + + + Name for the translator. + + + + + Required if not found as child of File element + + + + + Required if not found as child of File element or different from File attribute above + + + + + + + + + + + + + + + + How To: Check the version number of a file during installation + + When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. + + + Searches for file and assigns to fullpath value of parent Property + + + + + Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used. + + + + + + In prior versions of the WiX toolset, this attribute specified the short file name. + This attribute's value may now be either a short or long file name. + If a short file name is specified, the ShortName attribute may not be specified. + If you wish to manually specify the short file name, then the ShortName + attribute may be specified. + + + + + + + The short file name of the file in 8.3 format. + There is a Windows Installer bug which prevents the FileSearch functionality from working + if both a short and long file name are specified. Since the Name attribute allows either + a short or long name to be specified, it is the only attribute related to file names which + should be specified. + + + + + + The minimum size of the file. + + + + + The maximum size of the file. + + + + + The minimum version of the file. + + + + + The maximum version of the file. + + + + + The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. + + + + + The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. + + + + + The languages supported by the file. + + + + + + + + + + A reference to another FileSearch element must reference the same Id and the same Parent Id. If any of these attribute values are different you must instead use a FileSearch element. + + + References an existing FileSearch element. + + + + + Specify the Id to the FileSearch to reference. + + + + + + + + + + + + + How To: Check the version number of a file during installation + How To: Reference another DirectorySearch element + How To: Get the parent directory of a file search + + Use the AssignToProperty attribute to search for a file but set the outer property to the directory containing the file. When this attribute is set to 'yes', you may only nest a FileSearch element with a unique Id or define no child element. + When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. + + + Searches for directory and assigns to value of parent Property. + + + + + + + + + + + Unique identifier for the directory search. + + + + + Path on the user's system. Either absolute, or relative to containing directories. + + + + + + Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information. + + + + + + Set the value of the outer Property to the result of this search. See remarks for more information. + + + + + + + + + + + How To: Reference another DirectorySearch element + + A reference to another DirectorySearch element must reference the same Id, the same Parent Id, and the same Path. If any of these attribute values are different you must instead use a DirectorySearch element. + + + References an existing DirectorySearch element. + + + + + + + + + + + Id of the search being referred to. + + + + + This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables. + + + + + Path on the user's system. Either absolute, or relative to containing directories. + + + + + + + + + + + + + Searches for file or directory and assigns to value of parent Property. + + + + + + + + + + + + The component ID of the component whose key path is to be used for the search. + + + + + Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. + + + + + + + The key path of the component is a directory. + + + + + + + The key path of the component is a file. This is the default value. + + + + + + + + + + + + + + + + + Searches for file, directory or registry key and assigns to value of parent Property + + + + + + + + + + + External key into the Signature table. + + + + + The field in the .ini line. If field is Null or 0, the entire line is read. + + + + + The key value within the section. + + + + + + In prior versions of the WiX toolset, this attribute specified the short name. + This attribute's value may now be either a short or long name. + If a short name is specified, the ShortName attribute may not be specified. + Also, if this value is a long name, the ShortName attribute may be omitted to + allow WiX to attempt to generate a unique short name. + However, if you wish to manually specify the short name, then the ShortName + attribute may be specified. + + + + + + The localizable .ini file section. + + + + + + The short name of the file in 8.3 format. + This attribute should only be set if the user wants to manually specify the short name. + + + + + + Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. + + + + + + A directory location. + + + + + A file location. This is the default value. + + + + + A raw .ini value. + + + + + + + + + + + + + + + How To: Read a registry entry during installation + + + When the Type attribute value is 'directory' the registry value must specify the path to a directory excluding the file name. + When the Type attribute value is 'file' the registry value must specify the path to a file including the file name; + however, if there is no child FileSearch element the parent directory of the file is returned. The FileSearch element requires + that you author the name of the file you are searching for. If you do not know the file name + you must set the Type attribute to 'raw' to return the full file path including the file name. + + + + Searches for file, directory or registry key and assigns to value of parent Property + + + + + + + + + + + Signature to be used for the file, directory or registry key being searched for. + + + + + Root key for the registry value. + + + + + + + HKEY_CLASSES_ROOT + + + + + + + HKEY_CURRENT_USER + + + + + + + HKEY_LOCAL_MACHINE + + + + + + + HKEY_USERS + + + + + + + + + Key for the registry value. + + + + + Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved. + + + + + + The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element. + + + + + + + + The registry value contains the path to a directory. + + + + + + + The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned. + + + + + + + Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:DWORDStarts with '#' optionally followed by '+' or '-'.REG_BINARYStarts with '#x' and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by '#x'.REG_EXPAND_SZStarts with '#%'.REG_MULTI_SZStarts with '[~]' and ends with '[~]'.REG_SZNo prefix, but if the first character of the registry value is '#', the installer escapes the character by prefixing it with another '#'. + + + + + + + + Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. + The default value is based on the platform set by the -arch switch to candle.exe + or the InstallerPlatform property in a .wixproj MSBuild project: + For x86 and ARM, the default value is 'no'. + For x64 and IA64, the default value is 'yes'. + + + + + + + + + + + References an existing RegistrySearch element. + + + + + Specify the Id of the RegistrySearch to reference. + + + + + + + Sets the parent of a nested DirectorySearch element to CCP_DRIVE. + + + + + + + + + + + + + + + + Adds a row to the CCPSearch table. + + + + + + + Starts searches from the CCP_DRIVE. + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + How To: Check the version number of a file during installation + + Property value for a Product or Module. + + + + + + + Starts searches from the CCP_DRIVE. + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + Unique identifier for Property. + + + + + Sets a default value for the property. The value will be overwritten if the Property is used for a search. + + + + + Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element. + + + + + Denotes that the Property is saved during admininistrative installation. See the AdminProperties Property for more information. + + + + + Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the SecureCustomProperties Property for more information. + + + + + Denotes that the Property is not logged during installation. See the MsiHiddenProperties Property for more information. + + + + + + Use to suppress modularization of this property identifier in merge modules. + Using this functionality is strongly discouraged; it should only be + necessary as a workaround of last resort in rare scenarios. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + How To: Check for .NET Framework versions + + Reference to a Property value. + + + + + Identifier of Property to reference. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Shortcut, default target is parent File, CreateFolder, or Component's Directory + + + + How To: Create a shortcut on the Start Menu + + + + + + + + + + Unique identifier for the shortcut. This value will serve as the primary key for the row. + + + + + Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required. + + + + + + In prior versions of the WiX toolset, this attribute specified the short name. + This attribute's value may now be either a short or long name. + If a short name is specified, the ShortName attribute may not be specified. + Also, if this value is a long name, the ShortName attribute may be omitted to + allow WiX to attempt to generate a unique short name. + However, if this name collides with another shortcut or you wish to manually specify + the short name, then the ShortName attribute may be specified. + + + + + + + The short name of the shortcut in 8.3 format. + This attribute should only be set if there is a conflict between generated short names + or the user wants to manually specify the short name. + + + + + + + This attribute can only be set if this Shortcut element is nested under a Component element. + When nested under a Component element, this attribute's value will default to the parent directory. + This attribute's value is the target for a non-advertised shortcut. + This attribute is not valid for advertised shortcuts. + If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut. + + + + + + The localizable description for the shortcut. + + + + + The command-line arguments for the shortcut. Note that the resolution of properties + in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the + property already has the intended value when the component owning the shortcut is installed. For example, for the + argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and + the component that owns the shortcut. + + + + + The hotkey for the shortcut. The low-order byte contains the virtual-key code for + the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of + installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a + users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys + for accessibility. + + + + + Identifier reference to Icon element. The Icon identifier should have the same extension + as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier + like "MyIcon.exe" + + + + + Identifier reference to Icon element. + + + + + + + + + The shortcut target will be displayed using the SW_SHOWNORMAL attribute. + + + + + + + The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute. + + + + + + + The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute. + + + + + + + + + Directory identifier (or Property identifier that resolves to a directory) that resolves + to the path of the working directory for the shortcut. + + + + + Specifies if the shortcut should be advertised or not. Note that advertised shortcuts + always point at a particular application, identified by a ProductCode, and should not be shared between applications. + Advertised shortcuts only work for the most recently installed application, and are removed when that application is + removed. The default value is 'no'. + + + + + + The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally + authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also + be provided. + + This attribute is only used on Windows Vista and above. If this attribute is not populated and the install + is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and + the install is running on Vista and above, the value in the Name attribute is ignored. + + + + + + + The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the + DisplayResourceDll attribute must also be provided. + + This attribute is only used on Windows Vista and above. If this attribute is not specified and the install + is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and + the install is running on Vista and above, the value in the Name attribute is ignored. + + + + + + + The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally + authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also + be provided. + + This attribute is only used on Windows Vista and above. If this attribute is not specified and the install + is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and + the install is running on Vista and above, the value in the Name attribute is ignored. + + + + + + + The description name index for the shortcut. This must be a non-negative number. When this attribute is specified, + the DescriptionResourceDll attribute must also be populated. + + This attribute is only used on Windows Vista and above. If this attribute is not specified and the install + is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the + install is running on Vista and above, the value in the Name attribute is ignored. + + + + + + + + + + + + Property values for a shortcut. This element's functionality is available starting with MSI 5.0. + + + + + Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value. + + + + + A formatted string identifying the property to be set. + + + + + A formatted string supplying the value of the property. + + + + + + + + Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used + if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute. + The table and key are taken from the parent element. + + + + + + + + + + + + + + + + + Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF). + + + + + + + + + + + + For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent. + + + + + For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent. + + + + + For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent. + + + + + For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent. + + + + + + + + Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF). + + + + + + + + + + + + + + + + specifying this will fail to grant read access + + + + + + + + Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used + if the Action attribute's value is remove or removeKeyOnInstall. This element is only available + when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the + WixUtilExtension. + + + + + + + + + + + Optional condition that controls whether the permissions are applied. + + + + + + + + Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute + will be used instead. + + + + + + + Security descriptor to apply to parent object. + + + + + + + + + + + + + + Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When + this element is nested under a File element, the parent file will be installed, then copied to the specified destination + if the parent component of the file is selected for installation or removal. When this element is nested under + a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine. + When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed, + then copied to the specified destination if the parent component is selected for installation or removal (use + this option to control the copy of a file in a different component by the parent component's installation state). If the + specified destination directory is the same as the directory containing the original file and the name for the proposed source + file is the same as the original, then no action takes place. + + + + + + Primary key used to identify this particular entry. + + + + + + This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier + of a file from a different component to copy it based on the install state of the parent component. + + + + + + + This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set + this value to the source directory from which to copy or move an existing file on the target machine. This Directory must + exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty. + + + + + + + This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set + this value to a property that will have a value that resolves to the full path of the source directory (or full path + including file name if SourceName is not specified). The property does not have to exist in the installer database at + creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute + cannot be specified in conjunction with SourceDirectory. + + + + + + + This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set + this value to the localizable name of the file(s) to be copied or moved. All of the files that + match the wild card will be removed from the specified directory. The value is a filename that may also + contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this + attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the + SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename. + If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied + files retain the file names from their sources. + + + + + + + Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This + Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with + DestinationProperty. + + + + + + + Set this value to a property that will have a value that resolves to the full path of the destination directory. The property + does not have to exist in the installer database at creation time; it could be created at installation time by a custom + action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory. + + + + + + + In prior versions of the WiX toolset, this attribute specified the short file name. + Now set this value to the localizable name to be given to the original file after it is moved or copied. + If this attribute is not specified, then the destination file is given the same name as the source file. + If a short file name is specified, the DestinationShortName attribute may not be specified. + Also, if this value is a long file name, the DestinationShortName attribute may be omitted to + allow WiX to attempt to generate a unique short file name. + However, if this name collides with another file or you wish to manually specify + the short file name, then the DestinationShortName attribute may be specified. + + + + + + + The short file name of the file in 8.3 format. + This attribute should only be set if there is a conflict between generated short file names + or you wish to manually specify the short file name. + + + + + + + This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other + cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes" + in order to move the file (thus deleting the source file) instead of copying it. + + + + + + + + + File specification for File table, must be child node of Component. + + + + How To: Add a file to your installer + + + + + + + + Used to configure the ACLs for this file. + + + + + Can also configure the ACLs for this file. + + + + + Used to create a duplicate of this file elsewhere. + + + + + Target of the shortcut will be set to this file. + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value]. + + + + + + Set this attribute to make this file a companion child of another file. The installation + state of a companion file depends not on its own file versioning information, but on the versioning of its + companion parent. A file that is the key path for its component can not be a companion file (that means + this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along + with this attribute since companion files are not installed based on their own version. + + + + + + In prior versions of the WiX toolset, this attribute specified the short file name. + This attribute's value may now be either a short or long file name. + If a short file name is specified, the ShortName attribute may not be specified. + Also, if this value is a long file name, the ShortName attribute may be omitted to + allow WiX to attempt to generate a unique short file name. + However, if this name collides with another file or you wish to manually specify + the short file name, then the ShortName attribute may be specified. + Finally, if this attribute is omitted then its default value is the file name portion + of the Source attribute, if one is specified, or the value of the Id attribute, if + the Source attribute is omitted or doesn't contain a file name. + + + + + + Set to yes in order to force this file to be the key path for the parent component. + + + + + + The short file name of the file in 8.3 format. + This attribute should only be set if there is a conflict between generated short file names + or the user wants to manually specify the short file name. + + + + + + + Set to yes in order to have the file's read-only attribute set when it is installed on the target machine. + + + + + Set to yes in order to have the file's hidden attribute set when it is installed on the target machine. + + + + + Set to yes in order to have the file's system attribute set when it is installed on the target machine. + + + + + If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used. + + + + + This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall. + + + + + Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property. + + + + + A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table. + + + + + The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table. + + + + + Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font. + + + + + Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font. + + + + + This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used. + + + + + This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used. + + + + + This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used. + + + + + + + Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the + Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component. + + + + + + + + The file is a .NET Framework assembly. + + + + + + + The file is not a .NET Framework or Win32 assembly. This is the default value. + + + + + + + The file is a Win32 assembly. + + + + + + + + + + Specifies the file identifier of the manifest file that describes this assembly. + The manifest file should be in the same component as the assembly it describes. + This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. + + + + + + + Specifies the file identifier of the application file. This assembly will be isolated + to the same directory as the application file. + If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC). + This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. + + + + + + Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies. + + + + + + + The file is a .NET Framework assembly that is processor-neutral. + + + + + + + The file is a .NET Framework assembly for the x86 processor. + + + + + + + The file is a .NET Framework assembly for the x64 processor. + + + + + + + The file is a .NET Framework assembly for the ia64 processor. + + + + + + + + + + The value of this attribute should correspond to the Id attribute of a Media + element authored elsewhere. By creating this connection between a file and + its media, you set the packaging options to the values specified in the Media + element (values such as compression level, cab embedding, etc...). Specifying + the DiskId attribute on the File element overrides the default DiskId attribute + from the parent Component element. If no DiskId attribute is specified, + the default is "1". This DiskId attribute is ignored when creating a merge module + because merge modules do not have media. + + + + + + Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see Specifying source files. + + + + + + + + + + + + + This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups + numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the + second patch will have PatchGroup='2', etc... + + + + + + Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. + + + + + Set to indicate that the patch is non-vital. + + + + + Set if the entire file should be installed rather than creating a binary patch. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Use several of these elements to specify each registry value in a multiString registry value. This element + cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The + values should go in the text area of the MultiStringValue element. + + + + + + + + + + Used for organization of child RegistryValue elements or to create a registry key + (and optionally remove it during uninstallation). + + + + How To: Read a registry entry during installation + How To: Write a registry entry during installation + + + + + + + + + ACL permission + + + + + Can also configure the ACLs for this registry key. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + generated by hashing the parent Component identifier, Root, Key, and Name. + + + + + + + The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer + to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. + + + + + + + + Creates the key, if absent, when the parent component is installed. + + + + + + + Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. + Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already + removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. + + + + + + + Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output. + This is the default value. + + + + + + + + + + Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed. + This value is needed only to create an empty key with no subkeys or values. Windows Installer creates + keys as needed to store subkeys and values. The default is "no". + + + + + + + Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled. + Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already + removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. + The default is "no". + + + + + + + The localizable key for the registry value. + If the parent element is a RegistryKey, this value may be omitted to use the + path of the parent, or if its specified it will be appended to the path of the parent. + + + + + + + The predefined root key for the registry value. + + + + + + + + + Used to create a registry value. For multi-string values, this can be used to prepend or append values. + + For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element + cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The + values should go in the text area of the RegistryValue element. + + + + How To: Write a registry entry during installation + + + + + + + + Can also configure the ACLs for this registry value. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + generated by hashing the parent Component identifier, Root, Key, and Name. + + + + + + + The predefined root key for the registry value. + + + + + + + The localizable key for the registry value. + If the parent element is a RegistryKey, this value may be omitted to use the + path of the parent, or if its specified it will be appended to the path of the parent. + + + + + + + The localizable registry value name. If this attribute is not provided the default value for the registry key will + be set instead. The Windows Installer allows several special values to be set for this attribute. You should not + use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. + + + + + + + Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows + several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate + values in the Type attribute to get the desired behavior. + + + + + + + + Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value + attribute or a child RegistryValue element is specified. This attribute + should only be set when the value of the Action attribute does not include the word 'remove'. + + + + + + + + The value is interpreted and stored as a string (REG_SZ). + + + + + + + The value is interpreted and stored as an integer (REG_DWORD). + + + + + + + The value is interpreted and stored as a hexadecimal value (REG_BINARY). + + + + + + + The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). + + + + + + + The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). + Please note that this value will only result in a multi-string value if there is more than one registry value + or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. + + + + + + + + + + This is the action that will be taken for this registry value. + + + + + + + + Appends the specified value(s) to a multiString registry value. + + + + + + + Prepends the specified value(s) to a multiString registry value. + + + + + + + Writes a registry value. This is the default value. + + + + + + + + + + Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. + Only one resource (registry, file, etc) can be the KeyPath of a component. + + + + + + + + + Used for removing registry keys and all child keys either during install or uninstall. + + + + + + + + + + + Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + generated by hashing the parent Component identifier, Root, Key, and Name. + + + + + + + This is the action that will be taken for this registry value. + + + + + + + + Removes a key with all its values and subkeys when the parent component is installed. + + + + + + + Removes a key with all its values and subkeys when the parent component is uninstalled. + + + + + + + + + + The localizable key for the registry value. + + + + + + + The predefined root key for the registry value. + + + + + + + + + Used to remove a registry value during installation. + There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey). + + + + + + + + + + Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + generated by hashing the parent Component identifier, Root, Key, and Name. + + + + + + + The localizable key for the registry value. + If the parent element is a RegistryKey, this value may be omitted to use the + path of the parent, or if its specified it will be appended to the path of the parent. + + + + + + + The localizable registry value name. If this attribute is not provided the default value for the registry key will + be set instead. The Windows Installer allows several special values to be set for this attribute. You should not + use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. + + + + + + + The predefined root key for the registry value. + + + + + + + + + + + + + + + + + + Can also configure the ACLs for this registry key. + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + generated by hashing the parent Component identifier, Root, Key, and Name. + + + + + + + This is the action that will be taken for this registry key. + + + + + + + + Appends the specified value(s) to a multiString registry key. + + + + + + + Creates the key, if absent, when the parent component is installed. + + + + + + + Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. + + + + + + + Prepends the specified value(s) to a multiString registry key. + + + + + + + Removes a registry name when the parent component is installed. + + + + + + + Removes a key with all its values and subkeys when the parent component is installed. + + + + + + + Removes a key with all its values and subkeys when the parent component is uninstalled. + + + + + + + Writes a registry value. + + + + + + + + + The localizable key for the registry value. + + + + + + Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry, + file, etc) can be the KeyPath of a component. + + + + + + + The localizable registry value name. If this attribute is not provided the default value for the registry key will + be set instead. The Windows Installer allows several special values to be set for this attribute. You should not + use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. + + + + + + + The predefined root key for the registry value. + + + + + + + Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value + attribute or a child RegistryValue element is specified. This attribute + should only be set when the value of the Action attribute does not include the word 'remove'. + + + + + + + + The value is interpreted and stored as a string (REG_SZ). + + + + + + + The value is interpreted and stored as an integer (REG_DWORD). + + + + + + + The value is interpreted and stored as a hexadecimal value (REG_BINARY). + + + + + + + The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). + + + + + + + The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). + Please note that this value will only result in a multi-string value if there is more than one registry value + or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. + + + + + + + + + + Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows + several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate + values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action + attribute's value contains the word 'remove'. + + + + + + + + + + + + + Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed + by specifying a wildcard for the value of the Name attribute. By default, the source + directory of the file is the directory of the parent component. This can be overridden by specifying the + Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property + attribute with a value corresponding to a property that will have a value that resolves to the full path + to the source directory. + + + + + + Primary key used to identify this particular entry. + + + + + + Overrides the directory of the parent component with a specific Directory. This Directory must exist in the + installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. + + + + + + + Overrides the directory of the parent component with the value of the specified property. The property + should have a value that resolves to the full path of the source directory. The property does not have + to exist in the installer database at creation time; it could be created at installation time by a custom + action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. + + + + + + + This value should be set to the localizable name of the file(s) to be removed. All of the files that + match the wild card will be removed from the specified directory. The value is a filename that may also + contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. + In prior versions of the WiX toolset, this attribute specified the short file name. + This attribute's value may now be either a short or long file name. + If a short file name is specified, the ShortName attribute may not be specified. + Also, if this value is a long file name, the ShortName attribute may be omitted to + allow WiX to attempt to generate a unique short file name. + However, if you wish to manually specify the short file name, then the ShortName attribute may be specified. + + + + + + + The short file name of the file in 8.3 format. + This attribute should only be set if you want to manually specify the short file name. + + + + + + + This value determines the time at which the file(s) may be removed. For 'install', the file will + be removed only when the parent component is being installed (msiInstallStateLocal or + msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component + is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases. + + + + + + + + + + + + + Remove an empty folder if the parent component is selected for installation or removal. By default, the folder + is the directory of the parent component. This can be overridden by specifying the Directory attribute + with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value + corresponding to a property that will have a value that resolves to the full path of the folder. + + + + + + Primary key used to identify this particular entry. + + + + + + Overrides the directory of the parent component with a specific Directory. This Directory must exist in the + installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. + + + + + + + Overrides the directory of the parent component with the value of the specified property. The property + should have a value that resolves to the full path of the source directory. The property does not have + to exist in the installer database at creation time; it could be created at installation time by a custom + action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. + + + + + + + This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component. + For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or + msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component + is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases. + + + + + + + + + + + + Create folder as part of parent Component. + + + + + + Non-advertised shortcut to this folder, Shortcut Target is preset to the folder + + + + + ACL permission + + + + + Can also configure the ACLs for this folder. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + Identifier of Directory to create. Defaults to Directory of parent Component. + + + + + + + Optional way for defining AppData, generally used for complex CDATA. + + + + + + Qualified published component for parent Component + + + + + + + + + + + + A string GUID that represents the category of components being grouped together. + + + + + A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages. + + + + + An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category. + + + + + Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component . + + + + + + + + MIME content-type for an Extension + + + + + + + + + Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either. + + + + + This is the identifier for the MIME content. It is commonly written in the form of type/format. + + + + + Class ID for the COM server that is to be associated with the MIME content. + + + + + If 'yes', become the content type for the parent Extension. The default value is 'no'. + + + + + + + + Verb definition for an Extension. When advertised, this element creates a row in the + Verb table. + When not advertised, this element creates the appropriate rows in Registry table. + + + + + + + + + + The verb for the command. + + + + + The localized text displayed on the context menu. + + + + + Value for the command arguments. Note that the resolution of properties in the + Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property + already has the intended value when the component owning the verb is installed. For example, for the argument + "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the + component that owns the verb. + + + + + The sequence of the commands. Only verbs for which the Sequence is specified + are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this + column becomes the default verb. Used only for Advertised verbs. + + + + + + + + + + + + + Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb. + The value should be the identifier of the target file to be executed for the verb. + + + + + + + Either this attribute or the TargetFile attribute must be specified for a non-advertised verb. + The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb. + + + + + + + + + Extension for a Component + + + + + + + + + + + MIME and Verbs can be associated with Extensions + + + + + + + This is simply the file extension, like "doc" or "xml". Do not include the preceding period. + + + + + The MIME type that is to be written. + + + + + Whether this extension is to be advertised. The default is "no". + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Register a type library (TypeLib). Please note that in order to properly use this + non-advertised, you will need use this element with Advertise='no' and also author the + appropriate child Interface elements by extracting them from the type library itself. + + + + + + + + + + + + + + + The GUID that identifes the type library. + + + + + + Value of 'yes' will create a row in the TypeLib table. + Value of 'no' will create rows in the Registry table. + The default value is 'no'. + + + + + + + Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects. + This attribute can only be set if Advertise='no'. + + + + + + + The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'. + + + + + + The localizable description of the type library. + + + + + + Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'. + + + + + + The identifier of the Directory element for the help directory. + + + + + + Value of 'yes' means the type library should not be displayed to users, although its use is not restricted. + Should be used by controls. Hosts should create a new type library that wraps the control with extended properties. + This attribute can only be set if Advertise='no'. + + + + + + The language of the type library. This must be a non-negative integer. + + + + + The major version of the type library. The value should be an integer from 0 - 255. + + + + + The minor version of the type library. The value should be an integer from 0 - 255. + + + + + The resource id of a typelib. The value is appended to the end of the typelib path in the registry. + + + + + + Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'. + + + + + + + + + ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element. + + + + + + + + + + + + + The version-independent ProgId must be the first child element of actual ProgId. Nesting other ProgId elements within the Version-independent ProgId will create COM+ aliases, see http://support.microsoft.com/kb/305745 for more information. + + + + + Extensions that refer to this ProgId + + + + + + + + For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource. + + + + + + + Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute. + + + + + + + + Application ID containing DCOM information for the associated application GUID. + If this element is nested under a Fragment, Module, or Product element, it must be + advertised. + + + + + + When being used in unadvertised mode, the attributes in the AppId element correspond to registry keys + as follows (values that can be specified in authoring are in bold): + IdIn General + [HKCR\AppID\{Id}]Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ActivateAtStorageIn General + [HKCR\AppID\{Id}] + ActivateAtStorage="ActivateAtStorage" + Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + ActivateAtStorage="Y" + DescriptionIn General + [HKCR\AppID\{Id}] + @="Description" + Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + @="My AppId Description" + DllSurrogateIn General + [HKCR\AppID\{Id}] + DllSurrogate="DllSurrogate" + Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + DllSurrogate="C:\surrogate.exe" + LocalServiceIn General + [HKCR\AppID\{Id}] + LocalService="LocalService" + Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + LocalService="MyServiceName" + RemoteServerNameIn General + [HKCR\AppID\{Id}] + RemoteServerName="RemoteServerName" + Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + RemoteServerName="MyRemoteServer" + RunAsInteractiveUserIn General + [HKCR\AppID\{Id}] + RunAs="RunAsInteractiveUser" + Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + RunAs="Interactive User" + ServiceParametersIn General + [HKCR\AppID\{Id}] + ServiceParameters="ServiceParameters" + Specific Example + [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + ServiceParameters="-param" + + + + + + + + + + + Set this value to 'yes' to configure the client to activate on the same system as persistent storage. + + + + + + + Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to + generate Registry rows that perform similar registration (without the often problematic Windows Installer + advertising behavior). + + + + + + + Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised. + + + + + + + Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE + process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value. + + + + + + + Set this value to the AppID GUID that corresponds to the named executable. + + + + + + + Set this value to the name of a service to allow the object to be installed as a Win32 service. + + + + + + + Set this value to the name of the remote server to configure the client to request the object + be run at a particular machine whenever an activation function is called for which a COSERVERINFO + structure is not specified. + + + + + + + Set this value to 'yes' to configure a class to run under the identity of the user currently + logged on and connected to the interactive desktop when activated by a remote client without + being written as a Win32 service. + + + + + + + Set this value to the parameters to be passed to a LocalService on invocation. + + + + + + + + COM Class registration for parent Component. + + + + + + + + When being used in unadvertised mode, the attributes in the Class element correspond to registry keys + as follows (values that can be specified in authoring are in bold): + Id/Context/ServerIn General + [HKCR\CLSID\{Id}\Context1] + @="[!Server]" + [HKCR\CLSID\{Id}\Context2] + @="[!Server]" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer] + @="[!comserv.dll]" + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] + @="[!comserv.dll]" + Id/Context/ForeignServerIn General + [HKCR\CLSID\{Id}\Context1] + @="ForeignServer" + [HKCR\CLSID\{Id}\Context2] + @="ForeignServer" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer] + @="mscoree.dll" + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] + @="mscoree.dll" + AppIdIn General + [HKCR\CLSID\{Id}] + AppId="{AppId}" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + AppId="{00000000-89AB-0000-0123-000000000000}" + ArgumentIn General + [HKCR\CLSID\{Id}\Context] + @="[!Server] Argument" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] + @="[!comserv.dll] /arg1 /arg2 /arg3"ControlIn General + Value "yes" specified: + [HKCR\CLSID\{Id}\Control] + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control] + DescriptionIn General + [HKCR\CLSID\{Id}] + @="Description" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}] + @="Description of Example COM Component" + HandlerIn General + Value "1" specified: + [HKCR\CLSID\{Id}\InprocHandler] + @="ole.dll" + Value "2" specified: + [HKCR\CLSID\{Id}\InprocHandler32] + @="ole32.dll" + Value "3" specified: + [HKCR\CLSID\{Id}\InprocHandler] + @="ole.dll" + [HKCR\CLSID\{Id}\InprocHandler32] + @="ole32.dll" + Other value specified: + [HKCR\CLSID\{Id}\InprocHandler32] + @="Handler" + Specific Example (for other value) + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32] + @="handler.dll" + Icon/IconIndexThis is not currently handled properly.InsertableIn General + Value "no" specified: + [HKCR\CLSID\{Id}\NotInsertable] + Value "yes" specified: + [HKCR\CLSID\{Id}\Insertable] + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable] + ProgrammableIn General + Value "yes" specified: + [HKCR\CLSID\{Id}\Programmable] + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable] + RelativePathUnsupported. Please contribute this back to WiX if you know.SafeForInitializingIn General + Value "yes" specified: + [HKCR\CLSID\{Id}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] + SafeForScriptingIn General + Value "yes" specified: + [HKCR\CLSID\{Id}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] + ThreadingModelIn General + [HKCR\CLSID\{Id}\Context] + ThreadingModel="ThreadingModel" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] + ThreadingModel="Apartment" + TypeLibId (from parent TypeLib/@Id)In General + [HKCR\CLSID\{Id}\TypeLib] + @="{TypeLibId}" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib] + @="{11111111-89AB-1111-0123-111111111111}" + VersionIn General + [HKCR\CLSID\{Id}\Version] + @="Version" + Specific Example + [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version] + @="1.0.0.0" + + + + + + + + A ProgId associated with Class must be a child element of the Class element + + + + + + These Interfaces will be registered with the parent Class and TypeLib (if present). + + + + + + The Class identifier (CLSID) of a COM server. + + + + + + The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable". + Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value + for the Context attribute. + + + + + + + + + + A 16-bit local server application. + + + + + + + A 32-bit local server application. + + + + + + + A 16-bit in-process server DLL. + + + + + + + A 32-bit in-process server DLL. + + + + + + + + + + + Localized description associated with the Class ID and Program ID. + + + + + + This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID + containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an + AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised + class, nest the class within a parent AppId element. + + + + + + + The file providing the icon associated with this CLSID. Reference to an Icon element + (should match the Id attribute of an Icon element). This is currently not supported if the + value of the Advertise attribute is "no". + + + + + + Icon index into the icon file. + + + + + + The default inproc handler. May be optionally provided only for Context = LocalServer or + LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler + value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value). + Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated + as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value). + + + + + + + This column is optional only when the Context column is set to "LocalServer" + or "LocalServer32" server context. The text is registered as the argument against + the OLE server and is used by OLE for invoking the server. Note that the resolution + of properties in the Argument field is limited. A property formatted as [Property] in + this field can only be resolved if the property already has the intended value when + the component owning the class is installed. For example, for the argument "[#MyDoc.doc]" + to resolve to the correct value, the same process must be installing the file MyDoc.doc and the + component that owns the class. + + + + + + + When the value is "yes", the bare file name can be used for COM servers. The installer + registers the file name only instead of the complete path. This enables the server in + the current directory to take precedence and allows multiple copies of the same component. + + + + + + + Set this value to "yes" in order to create a normal Class table row. Set this value to + "no" in order to generate Registry rows that perform similar registration (without the + often problematic Windows Installer advertising behavior). + + + + + + + + Threading model for the CLSID. + + + + + + + + + + + + + + + + + Version for the CLSID. + + + + + + + Specifies the CLSID may be insertable. + + + + + + + Specifies the CLSID may be programmable. + + + + + + + May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only + be used when the Class element is directly under the Component element. The value can be + that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed. + + + + + + + May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the + COM server file. If this element is nested under a File element, this value defaults to + the value of the parent File/@Id. + + + + + + + Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server. + + + + + + + May only be specified if the value of the Advertise attribute is "no". + + + + + + + May only be specified if the value of the Advertise attribute is "no". + + + + + + + Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'. + + + + + + + + COM Interface registration for parent TypeLib. + + + + + + + + GUID identifier for COM Interface. + + + + + Name for COM Interface. + + + + + Identifies the interface from which the current interface is derived. + + + + + GUID CLSID for proxy stub to COM Interface. + + + + + GUID CLSID for 32-bit proxy stub to COM Interface. + + + + + Number of methods implemented on COM Interface. + + + + + Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'. + + + + + + + FileType data for class Id registration. + + + + + Offset into file. If positive, offset is from the beginning; if negative, offset is from the end. + + + + + Hex value that is AND'd against the bytes in the file at Offset. + + + + + If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type. + + + + + + + + Service or group of services that must start before the parent service. + + + + + + + + + + The value of this attribute should be one of the following: + The name (not the display name) of a previously installed service.The name of a service group (in which case the Group attribute must be set to 'yes'). + + + + + + Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. + + + + + + + + + Adds services for parent Component. Use the ServiceControl element to remove services. + + + + + The service executable installed will point to the KeyPath for the Component. + Therefore, you must ensure that the correct executable is either the first child + File element under this Component or explicitly mark the appropriate File element + as KeyPath='yes'. + + + + + + + + Configures the ACLs for this service. + + + + + Ordered list of dependencies when installing services. + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Unique identifier for this service configuration. This value will default to the Name attribute if not + specified. + + + + + + This column is the string that gives the service name to install. + + + + + This column is the localizable string that user interface programs use to identify the service. + + + + + The Windows Installer does not currently support kernelDriver or systemDriver. + + + + + + + A Win32 service that runs its own process. + + + + + + + A Win32 service that shares a process. + + + + + + + A kernel driver service. This value is not currently supported by the Windows Installer. + + + + + + + A file system driver service. This value is not currently supported by the Windows Installer. + + + + + + + + + Whether or not the service interacts with the desktop. + + + + + Determines when the service should be started. The Windows Installer does not support boot or system. + + + + + + + The service will start during startup of the system. + + + + + + + The service will start when the service control manager calls the StartService function. + + + + + + + The service can no longer be started. + + + + + + + The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer. + + + + + + + The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer. + + + + + + + + + Determines what action should be taken on an error. + + + + + + + Logs the error and continues with the startup operation. + + + + + + + Logs the error, displays a message box and continues the startup operation. + + + + + + + Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails. + + + + + + + + + The overall install should fail if this service fails to install. + + + + + The load ordering group that this service should be a part of. + + + + + Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess. + + + + + The password for the account. Valid only when the account has a password. + + + + + Contains any command line arguments or properties required to run the service. + + + + + Sets the description of the service. + + + + + Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set. + + + + + + + + Argument used in ServiceControl parent + + + + + + + + + + Starts, stops, and removes services for parent Component. This element is used to control the state + of a service installed by the MSI or MSM file by using the start, stop and remove attributes. + For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install, + remove the service when the product is uninstalled, and stop the service both on install and uninstall. + + + + + + + + + + Ordered list of arguments used when modifying services. + + + + + + + Name of the service. + + + + + + Specifies whether the service should be started by the StartServices action on install, uninstall or both. + For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or + msiInstallStateSource); for 'uninstall', the service will be started only when the parent component + is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases. + + + + + + + Specifies whether the service should be stopped by the StopServices action on install, uninstall or both. + For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or + msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component + is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases. + + + + + + + Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both. + For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or + msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component + is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases. + + + + + + Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'. + + + + + + + + Privilege required by service configured by ServiceConfig parent. Valid values are a privilege constant or a + Formatted property that resolves to a privilege constant. + + + + + + + + + + Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. + + + + + + + + + + List of privileges to apply to service. + + + + + + + Unique identifier for this service configuration. This value will default to the ServiceName attribute if not + specified. + + + + + + + This attribute specifies whether an auto-start service should delay its start until after all other auto-start + services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that + resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured. + + + + + + + This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError" + or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute + is not present the setting is not configured. + + + + + + + This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system + shutdown. If this attribute is not present the default value, 3 minutes, is used. + + + + + + + Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall + and OnUninstall. + + + + + + + Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall + and OnUninstall. + + + + + + + Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall + and OnReinstall. + + + + + + + Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under + a ServiceInstall element. + + + + + + + Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property + that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the + setting is not configured. + + + + + + + + Failure action for a ServiceConfigFailureActions element. + + + + + + Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property + that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand"). + + + + + + + Specifies the time in milliseconds to wait before performing the value from the Action attribute. + + + + + + + + + Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. + + + + + + + + + + Ordered list of failure actions to apply to service. + + + + + + + Unique identifier for this service configuration. This value will default to the ServiceName attribute if not + specified. + + + + + + + This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears + the existing command. If this attribute is not present the setting is not changed. + + + + + + + Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall + and OnUninstall. + + + + + + + Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall + and OnUninstall. + + + + + + + Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall + and OnReinstall. + + + + + + + Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this + attribute is not present the setting is not changed. + + + + + + + Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset. + + + + + + + Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under + a ServiceInstall element. + + + + + + + + + Environment variables added or removed for the parent component. + + + + + + + + + Unique identifier for environment entry. + + + + + Name of the environment variable. + + + + + + The value to set into the environment variable. + If this attribute is not set, the environment variable is removed during installation if it exists on the machine. + + + + + + Optional attribute to change the separator used between values. By default a semicolon is used. + + + + + Specfies whether the environmental variable should be created, set or removed when the parent component is installed. + + + + + + Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists. + + + + + Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation. + + + + + + Removes the environment variable during an installation. + The installer only removes an environment variable during an installation if the name and value + of the variable match the entries in the Name and Value attributes. + If you want to remove an environment variable, regardless of its value, do not set the Value attribute. + + + + + + + + + + + + + This value is the entire environmental variable. This is the default. + + + + + + + This value is prefixed. + + + + + + + This value is appended. + + + + + + + + + Specifies that the environment variable should not be removed on uninstall. + + + + + + Specifies that the environment variable should be added to the system environment space. The default + is 'no' which indicates the environment variable is added to the user environment space. + + + + + + + + + Conditions for components, controls, features, and products. The condition is specified in the inner text of the element. + + + + + + + How To: Block installation based on OS version + How To: Check the version number of a file during installation + + + + + + + + Under a Component element, the condition becomes the condition of the component. Under a Control element, + the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition + entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry. + + + + + + Used only under Control elements and is required. Allows specific actions to be applied to a control based + on the result of this condition. + + + + + + + + Set the Control as the default. Only used under Control elements. + + + + + + + Enable the Control. Only used under Control elements. + + + + + + + Disable the Control. Only used under Control elements. + + + + + + + Hide the Control. Only used under Control elements. + + + + + + + Display the Control. Only used under Control elements. + + + + + + + + + + Used only under Feature elements and is required. Allows modifying the level of a Feature based on the + result of this condition. + + + + + + + Used only under Fragment or Product elements and is required. Set the value to the text to display when the + condition fails and the installation must be terminated. + + + + + + + + + + + Shared Component to be privately replicated in folder of parent Component + + + + + + + + + Shared Component for this application Component. + + + + + + + + Disk cost to reserve in a folder for running locally and/or from source. + + + + + + + + + A primary key that uniquely identifies this ReserveCost entry. + + + + + + Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory. + If this attribute is not set, it will default to the directory of parent component. + + + + + + The number of bytes of disk space to reserve if the component is installed to run from source. + + + + + The number of bytes of disk space to reserve if the component is installed to run locally. + + + + + + + Component for parent Directory + + + + + + + How To: Add a file to your installer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Component identifier; this is the primary key for identifying components. If omitted, + the compiler defaults the identifier to the identifier of the resource that is the + explicit keypath of the component (for example, a child File element with KeyPath + attribute with value 'yes'. + + + + + + + Set this attribute to create a ComPlus entry. The value should be the export flags used + during the generation of the .msi file. For more information see the COM+ documentation + in the Platform SDK. + + + + + + + Set this attribute to 'yes' in order to disable registry reflection on all existing and + new registry keys affected by this component. + When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key + being accessed by the component. + This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems. + + + + + + + Sets the Directory of the Component. If this element is nested under a Directory element, + this value defaults to the value of the parent Directory/@Id. + + + + + + + This attribute provides a default DiskId attribute for all child File elements. Specifying + the DiskId on a Component element will override any DiskId attributes set by parent Directory + or DirectoryRef elements. See the File element's DiskId attribute for more information about + the purpose of the DiskId. + + + + + + + Identifies a feature to which this component belongs, as a shorthand for a child + ComponentRef element of the Feature element. The value of this attribute should + correspond to the Id attribute of a Feature element authored elsewhere. Note that + a single component can belong to multiple features but this attribute allows you + to specify only a single feature. + + + + + + + This value should be a guid that uniquely identifies this component's contents, language, platform, and version. + If omitted, the default value is '*' which indicates that the linker should generate a stable guid. + Generatable guids are supported only for components with a single file as the component's keypath + or no files and a registry value as the keypath. + It's also possible to set the value to an empty string to specify an unmanaged component. + Unmanaged components are a security vulnerability because the component cannot be removed or repaired + by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should + always be specified for any component which contains resources that may need to be patched in the future. + + + + + + + If this attribute's value is set to 'yes', then the Directory of this Component is used + as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the + KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the + Component or for a child Registry value or File, WiX will look at the child elements under the + Component in sequential order and try to automatically select one of them as a key path. Allowing + WiX to automatically select a key path can be dangerous because adding or removing child elements + under the Component can inadvertantly cause the key path to change, which can lead to + installation problems. + + + + + + + Optional value that specifies the location that the component can be run from. + + + + + + + + Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set). + + + + + + + Enforces that the component can only be run from the source (it cannot be run from the user's computer). + + + + + + + Allows the component to run from source or locally. + + + + + + + + + + If this attribute is set to 'yes', a new Component/@Guid will be generated for each + instance transform. Ensure that all of the resources contained in a multi-instance + Component will be installed to different paths based on the instance Property; otherwise, + the Component Rules will be violated. + + + + + + + If this attribute is set to 'yes', the installer does not install or reinstall the + component if a key path file or a key path registry entry for the component already + exists. The application does register itself as a client of the component. Use this + flag only for components that are being registered by the Registry table. Do not use + this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and + Verb tables. + + + + + + + If this attribute is set to 'yes', the installer does not remove the component during + an uninstall. The installer registers an extra system client for the component in + the Windows Installer registry settings (which basically just means that at least one + product is always referencing this component). Note that this option differs from the + behavior of not setting a guid because although the component is permanent, it is still + patchable (because Windows Installer still tracks it), it's just not uninstallable. + + + + + + + If this attribute's value is set to 'yes', enables advanced patching semantics for + Components that are shared across multiple Products. Specifically, the Windows Installer + will cache the shared files to improve patch uninstall. This functionality is available + in Windows Installer 4.5 and later. + + + + + + + If this attribute's value is set to 'yes', the installer increments the reference count + in the shared DLL registry of the component's key file. If this bit is not set, the + installer increments the reference count only if the reference count already exists. + + + + + + + If this attribute is set to 'yes', the installer reevaluates the value of the statement + in the Condition upon a reinstall. If the value was previously False and has changed to + True, the installer installs the component. If the value was previously True and has + changed to False, the installer removes the component even if the component has other + products as clients. + + + + + + + If this attribute is set to 'yes', the installer will uninstall the Component's files + and registry keys when it is superseded by a patch. This functionality is available in + Windows Installer 4.5 and later. + + + + + + + Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates + the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit + component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute. + The default value is based on the platform set by the -arch switch to candle.exe + or the InstallerPlatform property in a .wixproj MSBuild project: + For x86 and ARM, the default value is 'no'. + For x64 and IA64, the default value is 'yes'. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Groups together multiple components to be used in other locations. + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + Identifier for the ComponentGroup. + + + + + + Sets the default directory identifier for child Component elements. + + + + + + + Used to set the default file system source for child Component elements. For more information, see + Specifying source files. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Create a reference to a ComponentGroup in another Fragment. + + + + + + + + The identifier of the ComponentGroup to reference. + + + + + + Set this attribute to 'yes' in order to make the parent feature of this component + the primary feature for this component. Components may belong to multiple features. + By designating a feature as the primary feature of a component, you ensure that + whenever a component is selected for install-on-demand (IOD), the primary feature + will be the one to install it. This attribute should only be set if a component + actually nests under multiple features. If a component nests under only one feature, + that feature is the primary feature for the component. You cannot set more than one + feature as the primary feature of a given component. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. + + + Warning: this is intended for testing purposes only. Shipping a patch with all changes negates the benefits of using patch families for including only specific changes. + Because changing the ProductCode is not supported in a patch, the ProductCode property is automatically removed from the transform. + + + + + + + Used only for PatchFamilies to include only a binary table entry in a patch. + + + + + The identifier of the Binary element to reference. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Used only for PatchFamilies to include only a icon table entry in a patch. + + + + + The identifier of the Icon element to reference. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Create a reference to a Feature element in another Fragment. + + + How To: Add a file to your installer + + + + + + The identifier of the Component element to reference. + + + + + + Set this attribute to 'yes' in order to make the parent feature of this component + the primary feature for this component. Components may belong to multiple features. + By designating a feature as the primary feature of a component, you ensure that + whenever a component is selected for install-on-demand (IOD), the primary feature + will be the one to install it. This attribute should only be set if a component + actually nests under multiple features. If a component nests under only one feature, + that feature is the primary feature for the component. You cannot set more than one + feature as the primary feature of a given component. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + How To: Install the Visual C++ Redistributable with your installer + + Merge directive to bring in a merge module that will be redirected to the parent directory. + + + + + + Data to use as input to a configurable merge module. + + + + + + The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id. + + + + + The value of this attribute should correspond to the Id attribute of a + Media element authored elsewhere. By creating this connection between the merge module and Media + element, you set the packaging options to the values specified in the Media + element (values such as compression level, cab embedding, etc...). + + + + + Specifies if the files in the merge module should be compressed. + + + + + Specifies the decimal LCID or localization token for the language to merge the Module in as. + + + + + Path to the source location of the merge module. + + + + + + + + + + + + + + + + How To: Install the Visual C++ Redistributable with your installer + + Merge reference to connect a Merge Module to parent Feature + + + + + The unique identifier for the Merge element to be referenced. + + + + + Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Data to use as input to a configurable merge module. + + + + + Name of the item in the ModuleConfiguration table. + + + + + Value to be passed to configurable merge module. + + + + + + + Directory layout for the product. Also specifies the mappings between source and target directories. + + + + How To: Add a file to your installer + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + This value is the unique identifier of the directory entry. + + + + + + The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*") + is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder). + It is recommended that this attribute be avoided and that developers install their Components under standard + directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is + important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until + (and must be changed when) the path to that directory, including itself and all parent directories, changes. + + + + + + + Sets the default disk identifier for the files contained in this directory. + This attribute's value may be overridden by a child Component, Directory, + Merge or File element. See the File or Merge elements' DiskId attribute for + more information. + + + + + + Used to set the file system source for this directory's child elements. For more information, see Specifying source files. + + + + + + The name of the directory. + + Do not specify this attribute if this directory represents + the same directory as the parent (see the Windows Installer SDK's + Directory table + topic for more information about the "." operator). + + This attribute's value may either a short or long directory name. If a short directory + name is specified, the ShortName attribute may not be specified. If this value is a long + directory name, the ShortName attribute may be omitted to + allow WiX to attempt to generate a unique short directory name. + However, if this name collides with another directory or you wish to manually specify + the short directory name, then the ShortName attribute may be specified. + + This Name attribute may also define multiple directories using the inline directory syntax. + For example, "ProgramFilesFolder:\My Company\My Product\bin" would create a reference to a + Directory element with Id="ProgramFilesFolder" then create directories named "My Company" then + "My Product" then "bin" nested beneath each other. This syntax is a shortcut to defining + each directory in an individual Directory element. + + + + + + + The short name of the directory in 8.3 format. + This attribute should only be set if there is a conflict between generated short directory names + or the user wants to manually specify the short directory name. + + + + + + + The short name of the directory on the source media in 8.3 format. + This attribute should only be set if there is a conflict between generated short directory names + or the user wants to manually specify the short source directory name. + + + + + + + The name of the directory on the source media. + If this attribute is not specified, Windows Installer will default to the Name attribute. + + In prior versions of the WiX toolset, this attribute specified the short source directory name. + This attribute's value may now be either a short or long directory name. + If a short directory name is specified, the ShortSourceName attribute may not be specified. + If a long directory name is specified, the LongSource attribute may not be specified. + Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to + allow WiX to attempt to generate a unique short directory name. + However, if this name collides with another directory or you wish to manually specify + the short directory name, then the ShortSourceName attribute may be specified. + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Create a reference to a Directory element in another Fragment. + + + How To: Add a file to your installer + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + The identifier of the Directory element to reference. + + + + + + Sets the default disk identifier for the files contained in this directory. + This attribute's value may be overridden by a child Component, Directory, + Merge or File element. See the File or Merge elements' DiskId attribute for + more information. + + + + + + Used to set the file system source for this DirectoryRef's child elements. For more information, see Specifying source files. + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + + + + + + Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. + + + + + Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. + + + + + Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. + + + + + The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty. + + + + + When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the Upgrade table states that the property specified in this field must be a public property and must be added to the SecureCustomProperties property. WiX automatically appends the property specified in this field to the SecureCustomProperties property when creating an MSI. Each UpgradeVersion must have a unique Property value. After the FindRelatedProducts action is run, the value of this property is a list of product codes, separated by semicolons (;), detected on the system. + + + + + Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action. + + + + + Set to "yes" to detect products and applications but do not uninstall. + + + + + Set to "yes" to continue installation upon failure to remove a product or application. + + + + + Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. + + + + + Set to "yes" to make the range of versions detected include the value specified in Maximum. + + + + + Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + Upgrade info for a particular UpgradeCode + + + + + + + + + + + + Nesting a Property element under an Upgrade element has been deprecated. + Please nest Property elements in any of the other supported locations. + + + + + + + This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. + + + + + + + + A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more + detailed information on the myriad installation options for a feature. + + + + + How To: Add a file to your installer + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + Unique identifier of the feature. + + + + + + This attribute determines if a user will have the option to set a feature to absent in the user interface. + + + + + + + + Allows the user interface to display an option to change the feature state to Absent. + + + + + + + Prevents the user interface from displaying an option to change the feature state + to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature + to the installation state, whether or not the feature is visible in the UI. + + + + + + + + + + This attribute determines the possible advertise states for this feature. + + + + + + + + Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute. + + + + + + + Prevents advertising for this feature if the operating system shell does not support Windows Installer + descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute. + + + + + + + Allows the feature to be advertised. + + + + + + + + + + Specify the Id of a Directory that can be configured by the user at installation time. This identifier + must be a public property and therefore completely uppercase. + + + + + + + Longer string of text describing the feature. This localizable string is displayed by the + Text Control of the Selection Dialog. + + + + + + + Determines the initial display of this feature in the feature tree. + This attribute's value should be one of the following: + collapseInitially shows the feature collapsed. This is the default value.expandInitially shows the feature expanded.hiddenPrevents the feature from displaying in the user interface.<an explicit integer value> + For advanced users only, it is possible to directly set the integer value + of the display value that will appear in the Feature row. + + + + + + + This attribute determines the default install/run location of a feature. This attribute cannot be specified + if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature + to follow the parent installation state and simultaneously favor a particular installation state just for this feature. + + + + + + + + Forces the feature to follow the same installation state as its parent feature. + + + + + + + Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute. + + + + + + + Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute. + + + + + + + + + + Sets the install level of this feature. A value of 0 will disable the feature. Processing the + Condition Table can modify the level value (this is set via the Condition child element). The + default value is "1". + + + + + + + Short string of text identifying the feature. This string is listed as an item by the + SelectionTree control of the Selection Dialog. + + + + + + + This attribute determines the default advertise state of the feature. + + + + + + + + Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute. + This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to + disallow the advertised state for this feature while at the same time favoring it. + + + + + + + Sets the feature to the default non-advertised installation option. + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Groups together multiple components, features, and merges to be used in other locations. + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + Identifier for the FeatureGroup. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Create a reference to a FeatureGroup in another Fragment. + + + + + + + + The identifier of the FeatureGroup to reference. + + + + + + Normally feature group references that end up nested under a parent element create a + connection to that parent. This behavior is undesirable when trying to simply reference + to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group + reference not create a connection to its parent. The default is 'no'. + + + + + + + Set this attribute to 'yes' in order to make the parent feature of this group + the primary feature for any components and merges contained in the group. + Features may belong to multiple features. By designating a feature as the + primary feature of a component or merge, you ensure that whenever a component is + selected for install-on-demand (IOD), the primary feature will be the one to install + it. This attribute should only be set if a component actually nests under multiple + features. If a component nests under only one feature, that feature is the primary + feature for the component. You cannot set more than one feature as the primary + feature of a given component. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Create a reference to a Feature element in another Fragment. + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + The identifier of the Feature element to reference. + + + + + + Normally feature references that are nested under a parent element create a connection to that + parent. This behavior is undesirable when trying to simply reference a Feature in a different + Fragment. Specify 'yes' to have this feature reference not create a connection to its parent. + The default is 'no'. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Media element describes a disk that makes up the source media for the installation. + + + + + + + + + + + + + + + Disk identifier for Media table. This number must be equal to or greater than 1. + + + + + The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set. + + + + + + Indicates the compression level for the Media's cabinet. This attribute can + only be used in conjunction with the Cabinet attribute. The default is 'mszip'. + + + + + + The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. + + + + + Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute. + + + + + + This attribute specifies the root directory for the uncompressed files that + are a part of this Media element. By default, the src will be the output + directory for the final image. The default value ensures the binder generates + an installable image. If a relative path is specified in the src attribute, + the value will be appended to the image's output directory. If an absolute + path is provided, that path will be used without modification. The latter two + options are provided to ease the layout of an image onto multiple medias (CDs/DVDs). + + + + + + + + + + + + + + The label attributed to the volume. This is the volume label returned + by the GetVolumeInformation function. If the SourceDir property refers + to a removable (floppy or CD-ROM) volume, then this volume label is + used to verify that the proper disk is in the drive before attempting + to install files. The entry in this column must match the volume label + of the physical media. + + + + + + + Optional property that identifies the source of the embedded cabinet. + If a cabinet is specified for a patch, this property should be defined + and unique to each patch so that the embedded cabinet containing patched + and new files can be located in the patch package. If the cabinet is not + embedded - this is not typical - the cabinet can be found in the directory + referenced in this column. If empty, the external cabinet must be located + in the SourceDir directory. + + + + + + + + + MediaTeplate element describes information to automatically assign files to cabinets. + A maximumum number of cabinets created is 999. + + + + + + + Templated name of the cabinet if some or all of the files stored on the media are in + a cabinet file. This name must begin with either a letter or an underscore, contain + maximum of five characters and {0} in the cabinet name part and must end three character extension. + The default is cab{0}.cab. + + + + + + + Indicates the compression level for the Media's cabinet. This attribute can + only be used in conjunction with the Cabinet attribute. The default is 'mszip'. + + + + + + + + + + + + + + + + The disk name, which is usually the visible text printed on the disk. This localizable text is used + to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the + DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. + + + + + + Instructs the binder to embed the cabinets in the product if 'yes'. + + + + + + The label attributed to the volume. This is the volume label returned + by the GetVolumeInformation function. If the SourceDir property refers + to a removable (floppy or CD-ROM) volume, then this volume label is + used to verify that the proper disk is in the drive before attempting + to install files. The entry in this column must match the volume label + of the physical media. + + + + + + + Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable + can be used to override this value. Default value is 200 MB. + + + + + + + Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging + files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size + exceed this value, then setting this attribute will cause the file to be split into multiple + cabinets of this maximum size. For simply controlling cabinet size without file splitting use + MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature + for this Fragment / Product. Setting WIX_MCSLFS environment variable can be used to override this + value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default + value of this attribute is 2048 MB (2 GB). + + + + + + + + + This element has been deprecated. + Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead. + + + + + + + The name of the item to ignore modularization for. + + + + + + + The type of the item to ignore modularization for. + + + + + + + + + + + + + + + + + + + + + Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element + correspond to different custom action types. For more information about custom actions see the + + Custom Action Types topic on MSDN. + + + + + + + + The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed. + + + + + + The identifier of the custom action. + + + + + + + + This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains + the custom action for use during install. The custom action will not be installed into a target directory. This attribute is + typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand + attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes + to specify a type 5 or 6 custom action. + + + + + + + This attribute specifies a reference to a File element with matching Id attribute that + will execute the custom action code in the file after the file is installed. This + attribute is typically used with the ExeCommand attribute to specify a type 18 custom action + that runs an installed executable, with the DllEntry attribute to specify an installed custom + action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall + attributes to specify a type 21 or 22 custom action. + + + + + + + This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property + to be used or updated on execution of this custom action. This attribute is + typically used with the Value attribute to create a type 51 custom action that parses + the text in Value and places it into the specified Property. This attribute is also used with + the ExeCommand attribute to create a type 50 custom action that uses the value of the + given property to specify the path to the executable. Type 51 custom actions are often useful to + pass values to a deferred custom action. + See + http://msdn.microsoft.com/library/aa370543.aspx + for more information. + + + + + + + This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. + This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34 + custom action, or with the Value attribute to specify a formatted string to place in the specified Directory + table entry in a type 35 custom action. + + + + + + + + This attribute specifies the name of a function in a custom action to execute. + This attribute is used with the BinaryKey attribute to create a type 1 custom + action, or with the FileKey attribute to create a type 17 custom action. + + + + + + + This attribute specifies the command line parameters to supply to an externally + run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action, + the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action, + or the Directory attribute for a type 34 custom action that specify the executable to run. + + + + + + + This attribute specifies the name of the JScript function to execute in a script. The script must be + provided in a Binary element identified by the BinaryKey attribute described above. In other words, this + attribute must be specified in conjunction with the BinaryKey attribute. + + + + + + + This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be + provided in a Binary element identified by the BinaryKey attribute described above. In other words, this + attribute must be specified in conjunction with the BinaryKey attribute. + + + + + + + Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package. + + + + + + + + + + + + + Use to suppress modularization of this custom action name in merge modules. + This should only be necessary for table-driven custom actions because the + table name which they interact with cannot be modularized, so there can only + be one instance of the table. + + + + + + + This attribute specifies a string value to use in the custom action. This attribute + must be used with the Property attribute to set the property as part of a + type 51 custom action or with the Directory attribute to set a directory path in that + table in a type 35 custom action. The value can be a literal value or derived from a + Property element using the Formatted + syntax. + + + + + + + This attribute specifies an index in the MSI Error table to use as an error message for a + type 19 custom action that displays the error message and aborts a product's installation. + + + + + + + + Set this attribute to set the return behavior of the custom action. + + + + + + + + Indicates that the custom action will run asyncronously and execution may continue after the installer terminates. + + + + + + + Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end. + + + + + + + Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default. + + + + + + + Indicates that the custom action will run synchronously and the return code will not be checked. + + + + + + + + + + This attribute indicates the scheduling of the custom action. + + + + + + + + Indicates that the custom action will run after successful completion of the installation script (at the end of the installation). + + + + + + + Indicates that the custom action runs in-script (possibly with elevated privileges). + + + + + + + Indicates that the custom action will only run in the first sequence that runs it. + + + + + + + Indicates that the custom action will run during normal processing time with user privileges. This is the default. + + + + + + + Indicates that the custom action will only run in the first sequence that runs it in the same process. + + + + + + + Indicates that a custom action will run in the rollback sequence when a failure + occurs during installation, usually to undo changes made by a deferred custom action. + + + + + + + Indicates that a custom action should be run a second time if it was previously run in an earlier sequence. + + + + + + + + + + This attribute specifies whether the Windows Installer, which executes as LocalSystem, + should impersonate the user context of the installing user when executing this custom action. + Typically the value should be 'yes', except when the custom action needs elevated privileges + to apply changes to the machine. + + + + + + + This attribute specifies that the Windows Installer, execute the custom action only when + a patch is being uninstalled. These custom actions should also be conditioned using the + MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5) + behavior. + + + + + + + Specifies that a script custom action targets a 64-bit platform. Valid only when used with + the Script, VBScriptCall, and JScriptCall attributes. + The default value is based on the platform set by the -arch switch to candle.exe + or the InstallerPlatform property in a .wixproj MSBuild project: + For x86 and ARM, the default value is 'no'. + For x64 and IA64, the default value is 'yes'. + + + + + + + This attribute specifies controls whether the custom action will impersonate the + installing user during per-machine installs on Terminal Server machines. + Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no', + will run with no user impersonation on Terminal Server machines during + per-machine installations. This attribute is only applicable when installing on the + Windows Server 2003 family. + + + + + + Ensures the installer does not log the CustomActionData for the deferred custom action. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + + + This will cause the entire contents of the Fragment containing the referenced CustomAction to be + included in the installer database. + + + + + + The identifier of the CustomAction to reference. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + + + + + Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in + the InstallUISequence and InstallExecuteSequence. + + + + + + + + The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped. + + + + + + By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case + where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions). + + + + + + + This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to + the Value attribute. + + + + + + + Controls which sequences the Directory assignment is sequenced in. + For 'execute', the assignment is scheduled in the InstallExecuteSequence. + For 'ui', the assignment is scheduled in the InstallUISequence. + For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. + For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. + The default is 'both'. + + + + + + + This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a + Property element using the Formatted + syntax. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + + + + + + + Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in + the InstallUISequence and InstallExecuteSequence. + + + + + + + + The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped. + + + + + + By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case + where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions). + + + + + + The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property. + + + + + The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property. + + + + + + This attribute specifies the Property to set to the Value. + + + + + + + Controls which sequences the Property assignment is sequenced in. + For 'execute', the assignment is scheduled in the InstallExecuteSequence. + For 'ui', the assignment is scheduled in the InstallUISequence. + For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. + For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. + The default is 'both'. + + + + + + + This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a + Property element using the Formatted + syntax. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + + + This will cause the entire contents of the Fragment containing the referenced PatchFamily to be + used in the process of creating a patch. + + + + + + The identifier of the PatchFamily to reference. + + + + + Specifies the ProductCode of the product that this family applies to. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text. + + + + + + + + + + Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text. + + + + + + + + + + Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text. + + + + + + + + + Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text. + + + + + + + + + + Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text. + + + + + + + + Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text. + + + + + + + + Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text. + + + + + + + + Initiates the execution sequence. The condition for this action may be specified in the element's inner text. + + + + + + + + Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text. + + + + + + + + + Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text. + + + + + + + + Stops system services. The condition for this action may be specified in the element's inner text. + + + + + + + + Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text. + + + + + + + + Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text. + + + + + + + + Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text. + + + + + + + + Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. + + + + + + + + Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. + + + + + + + + Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text. + + + + + + + + Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text. + + + + + + + + + Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text. + + + + + + + + Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. + + + + + + + + Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text. + + + + + + + + Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. + + + + + + + + Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text. + + + + + + + + + Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Sets up an application's registry information. The condition for this action may be specified in the element's inner text. + + + + + + + + Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text. + + + + + + + + Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers installed fonts with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers type libraries with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers COM+ applications. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers a service for the system. The condition for this action may be specified in the element's inner text. + + + + + + + + Starts system services. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text. + + + + + + + + Registers the product information with the installer. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text. + + + + + + + + Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text. + + + + + + + + Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text. + + + + + + + + + Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. + + + + + + + + + + + + + Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text. + + + + + + + + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text. + + + + + + + + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text. + + + + + + + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text. + + + + + + + + + Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text. + + + + + + + + Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + + + + + + + + Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + + + + + + + + Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + + + + + + + + Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + + + + + + + + Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + + + + + + + + Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + + + + + + + + Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + + + + + + + + + Use to sequence a custom action. + + + + + + Text node specifies the condition of the action. + + + + The action to which the Custom element applies. + + + + + Mutually exclusive with Before, After, and Sequence attributes + + + + + The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes + + + + + The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes + + + + + + If "yes", the sequencing of this action may be overridden by sequencing elsewhere. + + + + + + The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes + + + + + + + + + + + + + + mutually exclusive with Before, After, and Sequence attributes + + + + + + + + If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. + + + + + + + + + + + + + + + + + + + + Use to sequence a custom action. + + + + + Displays a Dialog. + + + + + Prompts the user to restart the system at the end of installation. Not fixed sequence. + + + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + + + Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. + + + + + Uses file signatures to search for existing versions of products. + + + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + + + Sets the ProductID property to the full product identifier. + + + + + Initiates the internal installation costing process. + + + + + Initiates dynamic costing of standard installation actions. + + + + + Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). + + + + + Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. + + + + + Ends the internal installation costing process begun by the CostInitialize action. + + + + + Used for upgrading or installing over an existing application. + + + + + Initiates the execution sequence. + + + + + + + + + + + + + + + + + Use to sequence a custom action. + + + + + Prompts the user to restart the system at the end of installation. Not fixed sequence. + + + + + Prompts the user for a restart of the system during the installation. Not fixed sequence. + + + + + Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Not fixed sequence. + + + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + + + Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. + + + + + Uses file signatures to search for existing versions of products. + + + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + + + Sets the ProductID property to the full product identifier. + + + + + Initiates the internal installation costing process. + + + + + Initiates dynamic costing of standard installation actions. + + + + + Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). + + + + + Ends the internal installation costing process begun by the CostInitialize action. + + + + + Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. + + + + + Used for upgrading or installing over an existing application. + + + + + Verifies that all costed volumes have enough space for the installation. + + + + + Marks the beginning of a sequence of actions that change the system. + + + + + Ensures the needed amount of space exists in the registry. + + + + + Registers and unregisters components, their key paths, and the component clients. + + + + + Manages the unadvertisement of components listed in the PublishComponent table. + + + + + Removes selection-state and feature-component mapping information from the registry. + + + + + Stops system services. + + + + + Stops a service and removes its registration from the system. + + + + + Removes COM+ applications from the registry. + + + + + Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. + + + + + Unregisters type libraries from the system. + + + + + Removes the data sources, translators, and drivers listed for removal during the installation. + + + + + Removes registration information about installed fonts from the system. + + + + + Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. + + + + + Manages the removal of COM class information from the system registry. + + + + + Manages the removal of extension-related information from the system registry. + + + + + Manages the unregistration of OLE ProgId information with the system. + + + + + Unregisters MIME-related registry information from the system. + + + + + Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. + + + + + Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. + + + + + Modifies the values of environment variables. + + + + + Deletes files installed by the DuplicateFiles action. + + + + + Removes files previously installed by the InstallFiles action. + + + + + Removes any folders linked to components set to be removed or run from source. + + + + + Creates empty folders for components that are set to be installed. + + + + + Locates existing files on the system and moves or copies those files to a new location. + + + + + Copies files specified in the File table from the source directory to the destination directory. + + + + + Duplicates files installed by the InstallFiles action. + + + + + Queries the Patch table to determine which patches are to be applied. + + + + + Binds each executable or DLL that must be bound to the DLLs imported by it. + + + + + Manages the creation of shortcuts. + + + + + Manages the registration of COM class information with the system. + + + + + Manages the registration of extension related information with the system. + + + + + Manages the registration of OLE ProgId information with the system. + + + + + Registers MIME-related registry information with the system. + + + + + Sets up an application's registry information. + + + + + Writes the .ini file information that the application needs written to its .ini files. + + + + + Modifies the values of environment variables. + + + + + Registers installed fonts with the system. + + + + + Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. + + + + + Registers type libraries with the system. + + + + + Processes all modules listed in the SelfReg table and registers all installed modules with the system. + + + + + Registers COM+ applications. + + + + + Registers a service for the system. + + + + + Starts system services. + + + + + Registers the user information with the installer to identify the user of a product. + + + + + Registers the product information with the installer. + + + + + Manages the advertisement of the components from the PublishComponent table. + + + + + Writes each feature's state into the system registry. + + + + + Manages the advertisement of the product information with the system. + + + + + Marks the end of a sequence of actions that change the system. + + + + + Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. + + + + + Disables rollback for the remainder of the installation. + + + + + + Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. + + + + + Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. + + + + + + Manages the advertisement of CLR and Win32 assemblies. + + + + + Manages the unadvertisement of CLR and Win32 assemblies that are being removed. + + + + + + + + + + + + + + + + Use to sequence a custom action. + + + + + + Initiates the internal installation costing process. + + + + + Initiates dynamic costing of standard installation actions. + + + + + Ends the internal installation costing process begun by the CostInitialize action. + + + + + Initiates the execution sequence. + + + + + Verifies that all costed volumes have enough space for the installation. + + + + + Marks the beginning of a sequence of actions that change the system. + + + + + Copies the product database to the administrative installation point. + + + + + Copies files specified in the File table from the source directory to the destination directory. + + + + + Marks the end of a sequence of actions that change the system. + + + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + + + + + + + + + + + + + + Use to sequence a custom action. + + + + + Initiates the internal installation costing process. + + + + + Initiates dynamic costing of standard installation actions. + + + + + Ends the internal installation costing process begun by the CostInitialize action. + + + + + Verifies that all costed volumes have enough space for the installation. + + + + + Marks the beginning of a sequence of actions that change the system. + + + + + Copies the product database to the administrative installation point. + + + + + Copies files specified in the File table from the source directory to the destination directory. + + + + + Queries the Patch table to determine which patches are to be applied. + + + + + Marks the end of a sequence of actions that change the system. + + + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + + + Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. + + + + + + + + + + + + + + + + Initiates the internal installation costing process. + + + + + Ends the internal installation costing process begun by the CostInitialize action. + + + + + Use to sequence a custom action. The only custom actions that are allowed in the AdvtExecuteSequence are type 19 (0x013) type 35 (0x023) and type 51 (0x033). + + + + + Verifies that all costed volumes have enough space for the installation. + + + + + Marks the beginning of a sequence of actions that change the system. + + + + + Manages the creation of shortcuts. + + + + + Manages the registration of COM class information with the system. + + + + + Manages the registration of extension related information with the system. + + + + + Registers MIME-related registry information with the system. + + + + + Manages the registration of OLE ProgId information with the system. + + + + + Manages the advertisement of the components from the PublishComponent table. + + + + + Writes each feature's state into the system registry. + + + + + Manages the advertisement of the product information with the system. + + + + + Marks the end of a sequence of actions that change the system. + + + + + + Manages the advertisement of CLR and Win32 assemblies. + + + + + + + + + + Binary data used for CustomAction elements and UI controls. + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. + + + + + Path to the binary file. + + + + + + + + + + + + + Use to suppress modularization of this Binary identifier in merge modules. + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Icon used for Shortcut, ProgId, or Class elements (but not UI controls) + + + + How To: Set your installer's icon in Add/Remove Programs + How To: Create a shortcut on the Start Menu + + + + + + The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. + + + + + Path to the icon file. + + + + + + + + + + + + + + + + + + + + + + + + + + + Element value is the condition. CDATA may be used to when a condition contains many XML characters + that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition + to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer + that executes is undeterministic. + + + + + Unique identifier for embedded chainer. + + + + + Value to append to the transaction handle and passed to the chainer executable. + + + + + + Reference to the Binary element that contains the chainer executable. Mutually exclusive with + the FileSource and PropertySource attributes. + + + + + + + Reference to the File element that is the chainer executable. Mutually exclusive with + the BinarySource and PropertySource attributes. + + + + + + + Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with + the BinarySource and FileSource attributes. + + + + + + + + + + + Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents + to be included in the installer database. + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + Element value is the condition. Use CDATA if message contains delimiter characters. + + + + + + Specifies extra files to be extracted for use by the embedded UI, such as language resources. + + + + + + + Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name + portion of the SourceFile attribute will be used. + + + + + + Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_USER messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_INFO messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages. + + + + + Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages. + + + + + + The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer + does not support the typical short filename and long filename combination for embedded UI files as it + does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile + attribute will be used. + + + + + + + Path to the binary file that is the embedded UI. This must be a DLL that exports the following + three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI. + + + + + + Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation. + + + + + + + + Defines a resource for use by the embedded UI. + + + + + + + + + + Identifier for the embedded UI resource. + + + + + + The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows + Installer does not support the typical short filename and long filename combination for embedded UI files + as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used. + + + + + + Path to the binary file that is the embedded UI resource. + + + + + + + + + + + + + + + Element value is Message, use CDATA if message contains delimiter characters + + + + Number of the error for which a message is being provided. See MSI SDK for error definitions. + + + + + + + + + + + + + + + + + The element value is the optional Condition expression. + + + + + The parent Control for this Publish element, should only be specified when this element is a child of the UI element. + + + + + + + The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element. + This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary. + + + + + + + Set this attribute's value to one of the standard control events to trigger that event. + Either this attribute or the Property attribute must be set, but not both at the same time. + + + + + + + This attribute should only need to be set if this element is nested under a UI element in order to + control the order in which this publish event will be started. + If this element is nested under a Control element, the default value will be one greater than any + previous Publish element's order (the first element's default value is 1). + If this element is nested under a UI element, the default value is always 1 (it does not get a + default value based on any previous Publish elements). + + + + + + + Set this attribute's value to a property name to set that property. + Either this attribute or the Event attribute must be set, but not both at the same time. + + + + + + + If the Property attribute is specified, set the value of this attribute to the new value for the property. + To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}'). + Otherwise, this attribute's value should be the argument for the event specified in the Event attribute. + If the event doesn't take an attribute, a common value to use is "0". + + + + + + + + + + + Sets attributes for events in the EventMapping table + + + + + + + + + must be one of the standard control events' + + + + + if not present can only handle enable, disable, hide, unhide events + + + + + + + + An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. + + + + + + + + Instructs the text to be imported from a file instead of the element value during the binding process. + + + + + + + + + + + + + + + + + + + + + + + + Contains the controls that appear on each dialog. + + + + + + alternative to Text attribute when CDATA is needed to escape XML delimiters + + + + + ComboBox table with ListItem children + + + + + ListBox table with ListItem children + + + + + ListView table with ListItem children + + + + + RadioButton table with RadioButton children + + + + + Property table entry for the Property table column associated with this control + + + + + Icon referenced in icon column of row + + + + + child elements affecting operation of this control + + + + Condition to specify actions for this control based on the outcome of the condition. + + + + + + + + + Combined with the Dialog Id to make up the primary key of the Control table. + + + + + The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo + + + + + Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. + + + + + Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. + + + + + Width of the rectangular boundary of the control. This must be a non-negative number. + + + + + Height of the rectangular boundary of the control. This must be a non-negative number. + + + + + The name of a defined property to be linked to this control. This column is required for active controls. + + + + + A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see Formatted for details. + + + + + This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something. + + + + + The string used for the Tooltip. + + + + + This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked. + + + + + This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property. + + + + + + Set this attribute to "yes" to cause this Control to be skipped in the tab sequence. + + + + + Set this attribute to "yes" to cause this Control to be invoked by the return key. + + + + + Set this attribute to "yes" to cause this Control to be invoked by the escape key. + + + + + + Set this attribute to "yes" to cause the Control to be hidden. + + + + + Set this attribute to "yes" to cause the Control to be disabled. + + + + + Set this attribute to "yes" to cause the Control to be sunken. + + + + + Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table. + + + + + Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string. + + + + + Set this attribute to "yes" to cause the Control to display from right to left. + + + + + Set this attribute to "yes" to cause the Control to be right aligned. + + + + + Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. + + + + + + This attribute is only valid for Text Controls. + + + + + This attribute is only valid for Text Controls. + + + + + This attribute is only valid for Text Controls. + + + + + This attribute is only valid for Text Controls. + + + + + This attribute is only valid for Text Controls. + + + + + This attribute is only valid for Edit Controls. + + + + + This attribute is only valid for Edit Controls. + + + + + This attribute is only valid for ProgressBar Controls. + + + + + This attribute is only valid for Volume and Directory Controls. + + + + + This attribute is only valid for Volume and Directory Controls. + + + + + This attribute is only valid for Volume and Directory Controls. + + + + + This attribute is only valid for Volume and Directory Controls. + + + + + This attribute is only valid for Volume and Directory Controls. + + + + + This attribute is only valid for Volume and Directory Controls. + + + + + This attribute is only valid for VolumeCostList Controls. + + + + + This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set + the value of this attribute to "yes" to have entries appear in the order specified under the Control. + If the attribute value is "no" or absent the entries in the control will appear in alphabetical order. + + + + + + This attribute is only valid for ComboBox Controls. + + + + + This attribute is only valid for RadioButton, PushButton, and Icon Controls. + + + + + This attribute is only valid for RadioButton, PushButton, and Icon Controls. + + + + + + + + + + + + This attribute is only valid for RadioButton, PushButton, and Icon Controls. + + + + + This attribute is only valid for RadioButton and PushButton Controls. + + + + + This attribute is only valid for RadioButton and PushButton Controls. + + + + + This attribute is only valid for RadioButton and Checkbox Controls. + + + + + This attribute is only valid for RadioButton Controls. + + + + + + This attribute is only valid for PushButton controls. + Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control. + If this attribute's value is "yes" and the installation is not yet running with elevated privileges, + the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon). + If this attribute's value is "yes" and the installation is already running with elevated privileges, + the pushbutton control is created using the other icon attributes. + Otherwise, the pushbutton control is created using the other icon attributes. + + + + + + + + + Billboard to display during install of a Feature + + + + + + + + + + + Only controls of static type such as: Text, Bitmap, Icon, or custom control can be placed on a billboard. + + + + + + Unique identifier for the Billboard. + + + + + Feature whose state determines if the Billboard is shown. + + + + + + + + Billboard action during which child Billboards are displayed + + + + + + + + + + + Order of Billboard elements determines order of display + + + + + + Action name that determines when the Billboard should be shown. + + + + + + + + + + + + + + + + Defines a dialog box in the Dialog Table. + + + + + + + Control elements belonging to this dialog. + + + + + + Unique identifier for the dialog. + + + + + Horizontal placement of the dialog box as a percentage of screen width. The default value is 50. + + + + + Vertical placement of the dialog box as a percentage of screen height. The default value is 50. + + + + + The width of the dialog box in dialog units. + + + + + The height of the dialog box in dialog units. + + + + + The title of the dialog box. + + + + + + Used to hide the dialog. + + + + + Used to set the dialog as modeless. + + + + + Used to specify if the dialog can be minimized. + + + + + Used to set the dialog as system modal. + + + + + Keep modeless dialogs alive when this dialog is created through DoAction. + + + + + Have the dialog periodically call the installer to check if available disk space has changed. + + + + + Used to specify if pictures in the dialog box are rendered with a custom palette. + + + + + Used to specify if the text in the dialog should be displayed in right to left reading order. + + + + + Align text on the right. + + + + + Used to align the scroll bar on the left. + + + + + Specifies this dialog as an error dialog. + + + + + + + + + + + Reference to a Dialog. This will cause the entire referenced section's contents + to be included in the installer database. + + + + + + The identifier of the Dialog to reference. + + + + + + + + + + + + + + + Element value is progress message text for action + + + + + used to format ActionData messages from action processing + + + + + + + + + + + + + + + + + + + 0 to 255 + + + + + 0 to 255 + + + + + 0 to 255 + + + + + + + + + + + + The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. + + + + + + + + + + + + The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected. + + + + + + + The localizable, visible text to be assigned to the item. + If not specified, this will default to the value of the Value attribute. + + + + + + + The identifier of the Binary (not Icon) element containing the icon to associate with this item. + This value is only valid when nested under a ListView element. + + + + + + + + + Set of items for a particular ListBox control tied to an install Property + + + + + + + + + + + + entry for ListBox table + + + + + + Property tied to this group + + + + + + + + Set of items for a particular ComboBox control tied to an install Property + + + + + + + + + + + + entry for ComboBox table + + + + + + Property tied to this group + + + + + + + + Set of items for a particular ListView control tied to an install Property + + + + + + + + + + + + entry for ListView table + + + + + + Property tied to this group + + + + + + + + + + + + + Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). + + + + + + This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference + to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text + attributes. + + + + + + + + + This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference + to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text + attributes. + + + + + + Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes. + + + + + + Value assigned to the associated control Property when this radio button is selected. + + + + + + + + + + + Set of radio buttons tied to the specified Property + + + + + + + + + + + + + + Property tied to this group. + + + + + + + + Text associated with certain controls + + + + + + + + + + Element value is text, may use CDATA if needed to escape XML delimiters + + + + + + + + + + Reference to a UI element. This will force the entire referenced Fragment's contents + to be included in the installer database. + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + Enclosing element to compartmentalize UI specifications. + + + + + + + + + + Embedded UI definition with EmbeddedResource children. + + + + + Error text associated with install error + + + + + ActionText entry associated with an action + + + + + Billboard table item with child Controls + + + + + ComboBox table with ListItem children + + + + + ListBox table with ListItem children + + + + + ListView table with ListItem children + + + + + RadioButton table with RadioButton children + + + + + TextStyle entry for use in control text + + + + + values for UIText property, not installer Property + + + + + Dialog specification, called from Sequence + + + + + Reference to a Dialog specification. + + + + + + + + + + + + + + + + + + + + Defines a custom table for use from a custom action. + + + + + + Column definition for the custom table. + + + + + Row definition for the custom table. + + + + + + Identifier for the custom table. + + + + + Indicates the table data is transformed into the bootstrapper application data manifest. + + + + + + + Column definition for a Custom Table + + + + + Identifier for the column. + + + + + Whether this column is a primary key. + + + + + The type of this column. + + + + + + + Column contains a path to a file that will be inserted into the column as a binary object. + If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation. + + + + + + + Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set). + + + + + + + Column contains a non-localizable string value. + + + + + + + + + Width of this column. + + + + + Whether this column can be left null. + + + + + Whether this column can be localized. + + + + + Minimum value for a numeric value, date or version in this column. + + + + + Maximum value for a numeric value, date or version in this column. + + + + + Table in which this column is an external key. Can be semicolon delimited. + + + + + Column in the table in KeyTable attribute. + + + + + + Category of this column. + This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Semicolon delimited list of permissible values. + + + + + Description of this column. + + + + + How this column should be modularized, if at all. + + + + + + + Column should not be modularized. This is the default value. + + + + + + + Column should be modularized. + + + + + + + Column is a condition and should be modularized. + + + + + + + When the column is an primary or foreign key to the Icon table it should be modularized special. + + + + + + + Any Properties in the column should be modularized. + + + + + + + Semi-colon list of keys, all of which need to be modularized. + + + + + + + + + + + Row data for a Custom Table + + + + + + + + + + Used for a Custom Table. Specifies the data for the parent Row and specified Column. + + + + + + A data value + + + + Specifies in which column to insert this data. + + + + + + + + + + + Use this element to ensure that a table appears in the installer database, even if its empty. + + + + This element is particularly useful for two problems that may occur while merging merge modules: + + The first likely problem is that in order to properly merge you need to have certain + tables present prior to merging. Using this element is one way to ensure those tables + are present prior to the merging. + + The other common problem is that a merge module has incorrect validation information + about some tables. By ensuring these tables prior to merging, you can avoid this + problem because the correct validation information will go into the installer database + before the merge module has a chance to set it incorrectly. + + + + + + + The name of the table. + + + + + + + + This element exposes advanced WiX functionality. Use this element to declare WiX variables + from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp + file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot + be used when an MSI file is being installed; it's a WiX-only concept. + + + + + + The name of the variable. + + + + + + Set this value to 'yes' in order to make the variable's value overridable either by + another WixVariable entry or via the command-line option -d<name>=<value> + for light.exe. If the same variable is declared overridable in multiple places it + will cause an error (since WiX won't know which value is correct). The default value + is 'no'. + + + + + + + The value of the variable. The value cannot be an empty string because that would + make it possible to accidentally set a column to null. + + + + + + + + + Use this element to contain definitions for instance transforms. + + + + + + + + + The Id of the Property who's value should change for each instance. + + + + + + + + Defines an instance transform for your product. + + + + + + + The identity of the instance transform. This value will define the name by which the instance + should be referred to on the command line. In addition, the value of the this attribute will + determine what the value of the property specified in Property attribute on InstanceTransforms + will change to for each instance. + + + + + + The ProductCode for this instance. + + + + + The ProductName for this instance. + + + + + The UpgradeCode for this instance. + + + + + + + + Simplifies authoring for major upgrades, including support for preventing downgrades. + + The parent Product element must have valid UpgradeCode and Version attributes. + + When the FindRelatedProducts action detects a related product installed on the system, + it appends the product code to the property named WIX_UPGRADE_DETECTED. After the + FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a + list of product codes, separated by semicolons (;), detected on the system. + + + + + + + + + + When set to no (the default), products with lower version numbers are blocked from + installing when a product with a higher version is installed; the DowngradeErrorMessage + attribute must also be specified. + + When set to yes, any version can be installed over any other version. + + + + + + + When set to no (the default), installing a product with the same version and upgrade code + (but different product code) is allowed and treated by MSI as two products. When set to yes, + WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat + a product with the same version as a major upgrade. + + This is useful when two product versions differ only in the fourth version field. MSI + specifically ignores that field when comparing product versions, so two products that + differ only in the fourth version field are the same product and need this attribute set to + yes to be detected. + + Note that because MSI ignores the fourth product version field, setting this attribute to + yes also allows downgrades when the first three product version fields are identical. + For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the + same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change + the first three version fields and omit this attribute to get the default of no. + + This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades + already allows two products with the same version number to upgrade each other. + + + + + + + When set to yes, products with higer version numbers are blocked from + installing when a product with a lower version is installed; the UpgradeErrorMessage + attribute must also be specified. + + When set to no (the default), any version can be installed over any lower version. + + + + + + + The message displayed if users try to install a product with a lower version number + when a product with a higher version is installed. Used only when AllowDowngrades + is no (the default). + + + + + + + The message displayed if users try to install a product with a higer version number + when a product with a lower version is installed. Used only when Disallow + is yes. + + + + + + + When set to yes (the default), the MigrateFeatureStates standard action will set the + feature states of the upgrade product to those of the installed product. + + When set to no, the installed features have no effect on the upgrade installation. + + + + + + + When set to yes, the Upgrade table rows will match any product with the same UpgradeCode. + + When set to no (the default), the Upgrade table rows will match only products with the + same UpgradeCode and ProductLanguage. + + + + + + + When set to yes, failures removing the installed product during the upgrade will be + ignored. + + When set to no (the default), failures removing the installed product during the upgrade + will be considered a failure and, depending on the scheduling, roll back the upgrade. + + + + + + + A formatted string that contains the list of features to remove from the installed + product. The default is to remove all features. Note that if you use formatted property + values that evaluate to an empty string, no features will be removed; only omitting + this attribute defaults to removing all features. + + + + + + + Determines the scheduling of the RemoveExistingProducts standard action, which is when + the installed product is removed. The default is "afterInstallValidate" which removes + the installed product entirely before installing the upgrade product. It's slowest but + gives the most flexibility in changing components and features in the upgrade product. + + For more information, see RemoveExistingProducts. + + + + + + + + (Default) Schedules RemoveExistingProducts after the InstallValidate standard + action. This scheduling removes the installed product entirely before installing + the upgrade product. It's slowest but gives the most flexibility in changing + components and features in the upgrade product. Note that if the installation + of the upgrade product fails, the machine will have neither version installed. + + + + + + + Schedules RemoveExistingProducts after the InstallInitialize standard action. + This is similar to the afterInstallValidate scheduling, but if the installation + of the upgrade product fails, Windows Installer also rolls back the removal of + the installed product -- in other words, reinstalls it. + + + + + + + Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions. + This scheduling installs the upgrade product "on top of" the installed product then lets + RemoveExistingProducts uninstall any components that don't also exist in the upgrade product. + Note that this scheduling requires strict adherence to the component rules because it relies + on component reference counts to be accurate during installation of the upgrade product and + removal of the installed product. For more information, see + + Bob Arnson's blog post "Paying for Upgrades" + for details. If installation of the upgrade product fails, Windows Installer + also rolls back the removal of the installed product -- in other words, reinstalls it. + + + + + + + Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions. + This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard + action instead of InstallExecute. + + + + + + + Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the + afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the + installation transaction so if installation of the upgrade product fails, Windows Installer does + not roll back the removal of the installed product, so the machine will have both versions + installed. + + + + + + + + + + + + + + + + + + + + Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. + + + + + Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. + + + + + Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. + + + + + Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. + + + + + Set to "yes" to make the range of versions detected include the value specified in Maximum. + + + + + Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. + + + + + This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + + + + + + Text node specifies the condition of the action. + + + + The name of an action that this action should come after. + + + + + The name of an action that this action should come before. + + + + + + If "yes", the sequencing of this action may be overridden by sequencing elsewhere. + + + + + + A value used to indicate the position of this action in a sequence. + + + + + If yes, this action will not occur. + + + + + + + + + + + A value used to indicate the position of this action in a sequence. + + + + + If yes, this action will not occur. + + + + + + + + + Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". Also allows "PUT-GUID-HERE" for use in examples. + + + + + + + + Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". A GUID can be auto-generated by setting the value to "*". Also allows "PUT-GUID-HERE" for use in examples. + + + + + + + + Values of this type will either be "attached" or "detached". + + + + + + + + + The list of communcation protocols with executable packages Burn supports. + + + + + + + The executable package does not support a communication protocol. + + + + + + + The executable package is another Burn bundle and supports the Burn communication protocol. + + + + + + + The executable package implements the .NET Framework v4.0 communication protocol. + + + + + + + + Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}", but also allows "PUT-GUID-HERE" for use in examples. It's also possible to have an empty value "". + + + + + + + + Values of this type must be an integer or the value can be a localization variable with the format !(loc.Variable) where "Variable" is the name of the variable. + + + + + + + + Values of this type will look like: "FileName.ext". Only one period is allowed. The following characters are not allowed: \ ? | > : / * " + , ; = [ ] less-than, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE). + + + + + + + + Values of this type will look like: "Long File Name.extension". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ ? | > : / * " or less-than. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE). + + + + + + + + Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534. + + + + + + + + Values of this type will look like: "File?.*". Only one period is allowed. The following characters are not allowed: \ | > : / " + , ; = [ ] less-than, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE). + + + + + + + + Values of this type will look like: "Long File N?me.extension*". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ | > : / " or less-than. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE). + + + + + + + + This type supports any hexadecimal number. Both upper and lower case is acceptable for letters appearing in the number. This type also includes the empty string: "". + + + + + + + + Values of this type will either be "yes" or "no". + + + + + + Values of this type will either be "yes" or "no". + + + + + + + + + Values of this type will either be "button", "yes" or "no". + + + + + + Values of this type will either be "button", "yes" or "no". + + + + + + + + + + Values of this type will either be "default", "yes", or "no". + + + + + + Values of this type will either be "default", "yes", or "no". + + + + + + + + + + Values of this type will either be "always", "yes", or "no". + + + + + + Values of this type will either be "always", "yes", or "no". + + + + + + + + + + Values of this type represent possible registry roots. + + + + + + A per-user installation will make the operation occur under HKEY_CURRENT_USER. + A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE. + + + + + + + Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value + from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems, + the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations. + + + + + + + Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values + in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer. + + + + + + + Operation occurs under HKEY_LOCAL_MACHINE. + + + + + + + Operation occurs under HKEY_USERS. + + + + + + + + Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action. + Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes. + + + + + + + + + + + Specifies whether an action occur on install, uninstall or both. + + + + + + The action should happen during install (msiInstallStateLocal or msiInstallStateSource). + + + + + + + The action should happen during uninstall (msiInstallStateAbsent). + + + + + + + The action should happen during both install and uninstall. + + + + + + + + + Controls which sequences the item assignment is sequenced in. + + + + + + + Schedules the assignment in the InstallUISequence and the InstallExecuteSequence. + + + + + + + Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped. + + + + + + + Schedules the assignment only in the the InstallExecuteSequence. + + + + + + + Schedules the assignment only in the the InstallUISequence. + + + + + + + + + Indicates the compression level for a cabinet. + + + + + + + + Indicates the compression level for a cabinet. + + + + + + + + + + + + + A type that represents that 1 or more preprocessor variables (as they appear in sources on disk, before preprocessor has run). + + + + + + + + Values of this type must be an integer or the value of one or more preprocessor variables with the format $(var.Variable) where "Variable" is the name of the preprocessor variable. + + + + + + diff --git a/src/WixToolset.Data/Xsd/wixloc.xsd b/src/WixToolset.Data/Xsd/wixloc.xsd new file mode 100644 index 00000000..9f1814c4 --- /dev/null +++ b/src/WixToolset.Data/Xsd/wixloc.xsd @@ -0,0 +1,134 @@ + + + + + + + + Schema for describing WiX Localization files (.wxl). + + + + + + + + You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252 or iso-8859-1. See Code Pages for more information. + + How To: Build a localized version of your installer + How To: Make your installer localizable + + + + + + + + + + The code page integer value or web name for the resulting database. You can also specify -1 which will not reset the database code page. See remarks for more information. + + + + + Culture of the localization strings. + + + + + The decimal language ID (LCID) for the culture. + + + + + + + + + How To: Build a localized version of your installer + How To: Make your installer localizable + + + + + + Identity of the resource. + + + + + Determines if the localized string may be overridden. + + + + + Indicates whether the string is localizable text or a non-localizable string that must be unique per locale. No WiX tools are affected by the value of this attribute; it used as documentation for localizers to ignore things like GUIDs or identifiers that look like text. + + + + + + + + Allows a localization to override the position, size, and text of dialogs and controls. Override the text by specifying the replacement text in the inner text of the UI element. + + + + + Identifies the dialog to localize or the dialog that a control to localize is in. + + + + + Combined with the Dialog attribute, identifies the control to localize. + + + + + For a dialog, overrides the authored horizontal centering. For a control, overrides the authored horizontal coordinate of the upper-left corner of the rectangular boundary. This must be a non-negative number. + + + + + For a dialog, overrides the authored vertical centering. For a control, overrides the authored vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. + + + + + For a dialog, overrides the authored width in dialog units. For a control, overrides the authored width of the rectangular boundary of the control. This must be a non-negative number. + + + + + For a dialog, overrides the authored height in dialog units. For a control, overrides the authored height of the rectangular boundary of the control. This must be a non-negative number. + + + + + Set this attribute to "yes" to cause the Control to display from right to left. Not valid for a dialog. + + + + + Set this attribute to "yes" to cause the Control to be right aligned. Not valid for a dialog. + + + + + Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. Not valid for a dialog. + + + + + + + + + + + + diff --git a/src/WixToolset.Data/YesNoAlwaysType.cs b/src/WixToolset.Data/YesNoAlwaysType.cs new file mode 100644 index 00000000..3b4ca5d7 --- /dev/null +++ b/src/WixToolset.Data/YesNoAlwaysType.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Yes, No, Always xml simple type. + /// + public enum YesNoAlwaysType + { + /// Not a valid yes, no or always value. + IllegalValue = -2, + + /// Value not set; equivalent to null for reference types. + NotSet = -1, + + /// The no value. + No, + + /// The yes value. + Yes, + + /// The always value. + Always, + } +} diff --git a/src/WixToolset.Data/YesNoDefaultType.cs b/src/WixToolset.Data/YesNoDefaultType.cs new file mode 100644 index 00000000..fd782d46 --- /dev/null +++ b/src/WixToolset.Data/YesNoDefaultType.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Yes, No, Default xml simple type. + /// + public enum YesNoDefaultType + { + /// Not a valid yes, no or default value. + IllegalValue = -2, + + /// Value not set; equivalent to null for reference types. + NotSet = -1, + + /// The no value. + No, + + /// The yes value. + Yes, + + /// The default value. + Default, + } +} diff --git a/src/WixToolset.Data/YesNoType.cs b/src/WixToolset.Data/YesNoType.cs new file mode 100644 index 00000000..9c1cc9a7 --- /dev/null +++ b/src/WixToolset.Data/YesNoType.cs @@ -0,0 +1,22 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Yes/no type (kinda like a boolean). + /// + public enum YesNoType + { + /// Not a valid yes or no value. + IllegalValue = -2, + + /// Value not set; equivalent to null for reference types. + NotSet = -1, + + /// The no value. + No, + + /// The yes value. + Yes, + } +} diff --git a/src/nuget.config b/src/nuget.config new file mode 100644 index 00000000..d040e229 --- /dev/null +++ b/src/nuget.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/version.json b/src/version.json new file mode 100644 index 00000000..fba429f7 --- /dev/null +++ b/src/version.json @@ -0,0 +1,11 @@ +{ + "version": "4.0-preview", + "publicReleaseRefSpec": [ + "^refs/heads/master$" + ], + "cloudBuild": { + "buildNumber": { + "enabled": true + } + } +} -- cgit v1.2.3-55-g6feb From 7ad5748abaa2f61edc3eff2f3a02f2ef51eef196 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 20 Aug 2017 00:03:07 -0700 Subject: Move configuration files to the root --- nuget.config | 8 ++++++++ src/nuget.config | 11 ----------- src/version.json | 11 ----------- version.json | 11 +++++++++++ 4 files changed, 19 insertions(+), 22 deletions(-) create mode 100644 nuget.config delete mode 100644 src/nuget.config delete mode 100644 src/version.json create mode 100644 version.json (limited to 'src') diff --git a/nuget.config b/nuget.config new file mode 100644 index 00000000..8f1e24be --- /dev/null +++ b/nuget.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/nuget.config b/src/nuget.config deleted file mode 100644 index d040e229..00000000 --- a/src/nuget.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/version.json b/src/version.json deleted file mode 100644 index fba429f7..00000000 --- a/src/version.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "4.0-preview", - "publicReleaseRefSpec": [ - "^refs/heads/master$" - ], - "cloudBuild": { - "buildNumber": { - "enabled": true - } - } -} diff --git a/version.json b/version.json new file mode 100644 index 00000000..fba429f7 --- /dev/null +++ b/version.json @@ -0,0 +1,11 @@ +{ + "version": "4.0-preview", + "publicReleaseRefSpec": [ + "^refs/heads/master$" + ], + "cloudBuild": { + "buildNumber": { + "enabled": true + } + } +} -- cgit v1.2.3-55-g6feb From ce7c5d6a918069d5a5dcd7650a4260b30dc3a8f7 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 20 Aug 2017 10:40:19 -0700 Subject: Standardize Directory.Build.props --- src/Directory.Build.props | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 0f9c550d..0ea54cfe 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,4 +1,6 @@ + + Debug @@ -9,4 +11,8 @@ WiX Toolset Copyright (c) .NET Foundation and contributors. All rights reserved. + + + $(MSBuildThisFileDirectory)..\..\ + -- cgit v1.2.3-55-g6feb From a77ee1d51a3683542abd10aff768ad1c14554a98 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 17 Sep 2017 15:31:25 -0700 Subject: Add missing data XML files as resource streams --- src/WixToolset.Data/WixToolset.Data.csproj | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index dd14bfae..99c24e6e 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -10,6 +10,11 @@ + + + + + - - - - - - - Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided. - - - - - - - - Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified. - - - - - - - The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. - - - - - - The system cannot find the file '{0}'. - - - - The system cannot find the file '{0}' with type '{1}'. - - - - - - - The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision. - - - - - - - There was an error importing the file '{0}'. - - - - There was an error importing table '{1}' from file '{0}'. - - - - - - - The {0} file format version {1} is not compatible with the expected {0} file format version {2}. - - - - - - - Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column. - - - - Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. - - - - - - The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched. - - - - - - A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. - - - - - - The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns. - - - - - - - diff --git a/src/WixToolset.Data/Data/messages.xml.old b/src/WixToolset.Data/Data/messages.xml.old new file mode 100644 index 00000000..986426c3 --- /dev/null +++ b/src/WixToolset.Data/Data/messages.xml.old @@ -0,0 +1,107 @@ + + + + + + + + + Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided. + + + + + + + + Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified. + + + + + + + Invalid file name '{0}'. + + + + + + The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. + + + + + + The system cannot find the file '{0}'. + + + + The system cannot find the file '{0}' with type '{1}'. + + + + + + + The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision. + + + + + + + There was an error importing the file '{0}'. + + + + There was an error importing table '{1}' from file '{0}'. + + + + + + + The {0} file format version {1} is not compatible with the expected {0} file format version {2}. + + + + + + + Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column. + + + + Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. + + + + + + The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched. + + + + + + '{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. + + + + + + A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. + + + + + + The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns. + + + + + + + diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index e421507a..e57f61ed 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -15,182 +15,17 @@ - - - - $(RootNamespace).Data.messages.resources - - - WixToolset.Data.Serialize - - - -- cgit v1.2.3-55-g6feb From 69b15d96cebdbb7201b1849b4f62786633d70b8d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 1 Nov 2017 10:56:09 -0700 Subject: Introduce WiX Intermediate Representation --- src/WixToolset.Data/AssemblyInfo.cs | 2 +- src/WixToolset.Data/Bind/BindPath.cs | 60 + src/WixToolset.Data/Bind/BindVariable.cs | 33 + src/WixToolset.Data/BindPath.cs | 60 - src/WixToolset.Data/ColumnDefinition.cs | 1032 ------ src/WixToolset.Data/Common.cs | 17 +- src/WixToolset.Data/CompressionLevel.cs | 5 +- src/WixToolset.Data/Data/actions.xml | 76 - src/WixToolset.Data/Data/tables.xml | 1962 ----------- src/WixToolset.Data/DuplicateSymbolsException.cs | 2 + src/WixToolset.Data/Field.cs | 266 -- src/WixToolset.Data/FileFormat.cs | 2 + src/WixToolset.Data/FileStructure.cs | 65 +- src/WixToolset.Data/ITupleDefinitionCreator.cs | 9 + src/WixToolset.Data/Identifier.cs | 10 + src/WixToolset.Data/Intermediate.cs | 189 +- src/WixToolset.Data/IntermediateField.cs | 70 + src/WixToolset.Data/IntermediateFieldContext.cs | 38 + src/WixToolset.Data/IntermediateFieldDefinition.cs | 25 + src/WixToolset.Data/IntermediateFieldExtensions.cs | 206 ++ src/WixToolset.Data/IntermediateFieldPathValue.cs | 27 + src/WixToolset.Data/IntermediateFieldValue.cs | 131 + .../IntermediateFieldValueExtensions.cs | 37 + src/WixToolset.Data/IntermediateSection.cs | 118 + src/WixToolset.Data/IntermediateTuple.cs | 70 + src/WixToolset.Data/IntermediateTupleDefinition.cs | 47 + src/WixToolset.Data/IntermediateTupleExtensions.cs | 41 + src/WixToolset.Data/Json/JsonObjectExtensions.cs | 29 + src/WixToolset.Data/Json/SimpleJson.cs | 2127 ++++++++++++ src/WixToolset.Data/Library.cs | 4 +- src/WixToolset.Data/Localization.cs | 42 +- src/WixToolset.Data/Msi/MsiInterop.cs | 44 +- src/WixToolset.Data/NonClosingStreamWrapper.cs | 91 +- src/WixToolset.Data/ObjectField.cs | 183 - src/WixToolset.Data/Output.cs | 394 --- src/WixToolset.Data/Pdb.cs | 163 - src/WixToolset.Data/Row.cs | 626 ---- src/WixToolset.Data/RowDictionary.cs | 84 - src/WixToolset.Data/RowIndexedList.cs | 301 -- src/WixToolset.Data/RowOperation.cs | 30 - src/WixToolset.Data/Rows/BBControlRow.cs | 113 - src/WixToolset.Data/Rows/ComponentRow.cs | 245 -- src/WixToolset.Data/Rows/ContainerType.cs | 13 - src/WixToolset.Data/Rows/ControlRow.cs | 143 - src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs | 13 - src/WixToolset.Data/Rows/FileAssemblyType.cs | 19 - src/WixToolset.Data/Rows/FileRow.cs | 640 ---- src/WixToolset.Data/Rows/MediaRow.cs | 80 - src/WixToolset.Data/Rows/PatchAttributeType.cs | 27 - src/WixToolset.Data/Rows/PropertyRow.cs | 42 - .../Rows/SummaryInfoRowCollection.cs | 42 - src/WixToolset.Data/Rows/SymbolPathType.cs | 17 - src/WixToolset.Data/Rows/UpgradeRow.cs | 90 - src/WixToolset.Data/Rows/WixActionRow.cs | 374 -- src/WixToolset.Data/Rows/WixActionRowCollection.cs | 222 -- .../Rows/WixApprovedExeForElevationRow.cs | 79 - src/WixToolset.Data/Rows/WixBundleCatalogRow.cs | 50 - src/WixToolset.Data/Rows/WixBundleContainerRow.cs | 78 - .../Rows/WixBundleExePackageAttributes.cs | 12 - src/WixToolset.Data/Rows/WixBundleExePackageRow.cs | 101 - src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs | 93 - .../Rows/WixBundleMsiPackageAttributes.cs | 15 - src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs | 137 - .../Rows/WixBundleMsiPropertyRow.cs | 58 - .../Rows/WixBundleMspPackageAttributes.cs | 14 - src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs | 99 - src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs | 57 - .../Rows/WixBundlePackageAttributes.cs | 13 - .../Rows/WixBundlePackageCommandLineRow.cs | 82 - .../Rows/WixBundlePackageExitCodeRow.cs | 51 - src/WixToolset.Data/Rows/WixBundlePackageRow.cs | 226 -- src/WixToolset.Data/Rows/WixBundlePackageType.cs | 15 - .../Rows/WixBundlePatchTargetCodeRow.cs | 81 - src/WixToolset.Data/Rows/WixBundlePayloadRow.cs | 185 - .../Rows/WixBundleRelatedPackageRow.cs | 87 - .../Rows/WixBundleRollbackBoundaryRow.cs | 59 - src/WixToolset.Data/Rows/WixBundleRow.cs | 228 -- .../Rows/WixBundleSlipstreamMspRow.cs | 48 - src/WixToolset.Data/Rows/WixBundleUpdateRow.cs | 38 - src/WixToolset.Data/Rows/WixBundleVariableRow.cs | 80 - src/WixToolset.Data/Rows/WixChainAttributes.cs | 15 - src/WixToolset.Data/Rows/WixChainItemRow.cs | 39 - src/WixToolset.Data/Rows/WixChainRow.cs | 63 - src/WixToolset.Data/Rows/WixComplexReferenceRow.cs | 208 -- src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs | 142 - .../Rows/WixDeltaPatchSymbolPathsRow.cs | 58 - src/WixToolset.Data/Rows/WixFileRow.cs | 161 - src/WixToolset.Data/Rows/WixGroupRow.cs | 62 - src/WixToolset.Data/Rows/WixMediaRow.cs | 60 - src/WixToolset.Data/Rows/WixMediaTemplateRow.cs | 81 - src/WixToolset.Data/Rows/WixMergeRow.cs | 149 - .../Rows/WixPayloadPropertiesRow.cs | 81 - src/WixToolset.Data/Rows/WixPropertyRow.cs | 118 - src/WixToolset.Data/Rows/WixRelatedBundleRow.cs | 52 - src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs | 63 - .../Rows/WixUpdateRegistrationRow.cs | 62 - src/WixToolset.Data/Rows/WixVariableRow.cs | 81 - src/WixToolset.Data/Section.cs | 2 + .../SimpleTupleDefinitionCreator.cs | 13 + src/WixToolset.Data/SubStorage.cs | 109 - src/WixToolset.Data/Symbol.cs | 13 +- src/WixToolset.Data/Table.cs | 446 --- src/WixToolset.Data/TableDefinition.cs | 334 -- src/WixToolset.Data/TableDefinitionCollection.cs | 229 -- src/WixToolset.Data/TableExtensions.cs | 23 - src/WixToolset.Data/TableIndexedCollection.cs | 153 - src/WixToolset.Data/TableOperation.cs | 25 - src/WixToolset.Data/Tuples/ActionTextTuple.cs | 60 + .../Tuples/AdminExecuteSequenceTuple.cs | 60 + src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs | 60 + .../Tuples/AdvtExecuteSequenceTuple.cs | 60 + src/WixToolset.Data/Tuples/AppIdTuple.cs | 92 + src/WixToolset.Data/Tuples/AppSearchTuple.cs | 52 + src/WixToolset.Data/Tuples/BBControlTuple.cs | 108 + src/WixToolset.Data/Tuples/BillboardTuple.cs | 68 + src/WixToolset.Data/Tuples/BinaryTuple.cs | 52 + src/WixToolset.Data/Tuples/BindImageTuple.cs | 52 + src/WixToolset.Data/Tuples/CCPSearchTuple.cs | 44 + src/WixToolset.Data/Tuples/CheckBoxTuple.cs | 52 + src/WixToolset.Data/Tuples/ClassTuple.cs | 140 + src/WixToolset.Data/Tuples/ComboBoxTuple.cs | 68 + src/WixToolset.Data/Tuples/CompLocatorTuple.cs | 60 + src/WixToolset.Data/Tuples/ComplusTuple.cs | 52 + src/WixToolset.Data/Tuples/ComponentTuple.cs | 84 + src/WixToolset.Data/Tuples/ConditionTuple.cs | 60 + .../Tuples/ControlConditionTuple.cs | 68 + src/WixToolset.Data/Tuples/ControlEventTuple.cs | 84 + src/WixToolset.Data/Tuples/ControlTuple.cs | 132 + src/WixToolset.Data/Tuples/CreateFolderTuple.cs | 52 + src/WixToolset.Data/Tuples/CustomActionTuple.cs | 76 + src/WixToolset.Data/Tuples/DialogTuple.cs | 116 + src/WixToolset.Data/Tuples/DirectoryTuple.cs | 60 + src/WixToolset.Data/Tuples/DrLocatorTuple.cs | 68 + src/WixToolset.Data/Tuples/DuplicateFileTuple.cs | 76 + src/WixToolset.Data/Tuples/EnvironmentTuple.cs | 68 + src/WixToolset.Data/Tuples/ErrorTuple.cs | 52 + src/WixToolset.Data/Tuples/EventMappingTuple.cs | 68 + src/WixToolset.Data/Tuples/ExtensionTuple.cs | 76 + src/WixToolset.Data/Tuples/ExternalFilesTuple.cs | 100 + .../Tuples/FamilyFileRangesTuple.cs | 68 + .../Tuples/FeatureComponentsTuple.cs | 52 + src/WixToolset.Data/Tuples/FeatureTuple.cs | 100 + src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs | 52 + src/WixToolset.Data/Tuples/FileTuple.cs | 140 + src/WixToolset.Data/Tuples/FontTuple.cs | 52 + src/WixToolset.Data/Tuples/IconTuple.cs | 52 + src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs | 84 + src/WixToolset.Data/Tuples/IniFileTuple.cs | 100 + src/WixToolset.Data/Tuples/IniLocatorTuple.cs | 84 + .../Tuples/InstallExecuteSequenceTuple.cs | 60 + .../Tuples/InstallUISequenceTuple.cs | 60 + .../Tuples/IsolatedComponentTuple.cs | 52 + src/WixToolset.Data/Tuples/LaunchConditionTuple.cs | 52 + src/WixToolset.Data/Tuples/ListBoxTuple.cs | 68 + src/WixToolset.Data/Tuples/ListViewTuple.cs | 76 + src/WixToolset.Data/Tuples/LockPermissionsTuple.cs | 76 + src/WixToolset.Data/Tuples/MIMETuple.cs | 60 + src/WixToolset.Data/Tuples/MediaTuple.cs | 84 + .../Tuples/ModuleAdminExecuteSequenceTuple.cs | 76 + .../Tuples/ModuleAdminUISequenceTuple.cs | 76 + .../Tuples/ModuleAdvtExecuteSequenceTuple.cs | 76 + .../Tuples/ModuleComponentsTuple.cs | 60 + .../Tuples/ModuleConfigurationTuple.cs | 116 + .../Tuples/ModuleDependencyTuple.cs | 76 + src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs | 84 + .../Tuples/ModuleIgnoreTableTuple.cs | 44 + .../Tuples/ModuleInstallExecuteSequenceTuple.cs | 76 + .../Tuples/ModuleInstallUISequenceTuple.cs | 76 + src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs | 60 + .../Tuples/ModuleSubstitutionTuple.cs | 68 + src/WixToolset.Data/Tuples/MoveFileTuple.cs | 92 + src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs | 60 + src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs | 76 + .../Tuples/MsiDigitalCertificateTuple.cs | 52 + .../Tuples/MsiDigitalSignatureTuple.cs | 68 + .../Tuples/MsiEmbeddedChainerTuple.cs | 76 + src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs | 76 + src/WixToolset.Data/Tuples/MsiFileHashTuple.cs | 84 + .../Tuples/MsiLockPermissionsExTuple.cs | 76 + .../Tuples/MsiPackageCertificateTuple.cs | 52 + .../Tuples/MsiPatchCertificateTuple.cs | 52 + src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs | 52 + .../Tuples/MsiPatchMetadataTuple.cs | 60 + .../Tuples/MsiPatchOldAssemblyFileTuple.cs | 52 + .../Tuples/MsiPatchOldAssemblyNameTuple.cs | 60 + .../Tuples/MsiPatchSequenceTuple.cs | 68 + .../Tuples/MsiServiceConfigFailureActionsTuple.cs | 108 + .../Tuples/MsiServiceConfigTuple.cs | 84 + .../Tuples/MsiShortcutPropertyTuple.cs | 68 + src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs | 60 + src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs | 76 + src/WixToolset.Data/Tuples/ODBCDriverTuple.cs | 76 + .../Tuples/ODBCSourceAttributeTuple.cs | 60 + src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs | 76 + src/WixToolset.Data/Tuples/PatchMetadataTuple.cs | 60 + src/WixToolset.Data/Tuples/PatchPackageTuple.cs | 52 + src/WixToolset.Data/Tuples/PatchSequenceTuple.cs | 68 + src/WixToolset.Data/Tuples/PatchTuple.cs | 84 + src/WixToolset.Data/Tuples/ProgIdTuple.cs | 84 + src/WixToolset.Data/Tuples/PropertiesTuple.cs | 52 + src/WixToolset.Data/Tuples/PropertyTuple.cs | 52 + .../Tuples/PublishComponentTuple.cs | 76 + src/WixToolset.Data/Tuples/RadioButtonTuple.cs | 108 + src/WixToolset.Data/Tuples/RegLocatorTuple.cs | 76 + src/WixToolset.Data/Tuples/RegistryTuple.cs | 84 + src/WixToolset.Data/Tuples/RemoveFileTuple.cs | 76 + src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs | 100 + src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | 76 + src/WixToolset.Data/Tuples/ReserveCostTuple.cs | 76 + src/WixToolset.Data/Tuples/SFPCatalogTuple.cs | 60 + src/WixToolset.Data/Tuples/SelfRegTuple.cs | 52 + src/WixToolset.Data/Tuples/ServiceControlTuple.cs | 84 + src/WixToolset.Data/Tuples/ServiceInstallTuple.cs | 140 + src/WixToolset.Data/Tuples/ShortcutTuple.cs | 164 + src/WixToolset.Data/Tuples/SignatureTuple.cs | 108 + .../Tuples/TargetFiles_OptionalDataTuple.cs | 84 + src/WixToolset.Data/Tuples/TargetImagesTuple.cs | 92 + src/WixToolset.Data/Tuples/TextStyleTuple.cs | 76 + src/WixToolset.Data/Tuples/TupleDefinitions.cs | 815 +++++ src/WixToolset.Data/Tuples/TypeLibTuple.cs | 100 + src/WixToolset.Data/Tuples/UITextTuple.cs | 52 + src/WixToolset.Data/Tuples/UpgradeTuple.cs | 92 + .../Tuples/UpgradedFilesToIgnoreTuple.cs | 52 + .../Tuples/UpgradedFiles_OptionalDataTuple.cs | 76 + src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs | 76 + src/WixToolset.Data/Tuples/VerbTuple.cs | 76 + src/WixToolset.Data/Tuples/WixActionTuple.cs | 103 + .../Tuples/WixApprovedExeForElevationTuple.cs | 68 + src/WixToolset.Data/Tuples/WixBBControlTuple.cs | 60 + .../Tuples/WixBindUpdatedFilesTuple.cs | 44 + .../Tuples/WixBootstrapperApplicationTuple.cs | 44 + src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs | 68 + .../Tuples/WixBundleCatalogTuple.cs | 52 + .../Tuples/WixBundleContainerTuple.cs | 111 + .../Tuples/WixBundleExePackageTuple.cs | 100 + .../Tuples/WixBundleMsiFeatureTuple.cs | 116 + .../Tuples/WixBundleMsiPackageTuple.cs | 111 + .../Tuples/WixBundleMsiPropertyTuple.cs | 68 + .../Tuples/WixBundleMspPackageTuple.cs | 86 + .../Tuples/WixBundleMsuPackageTuple.cs | 60 + .../Tuples/WixBundlePackageCommandLineTuple.cs | 76 + .../Tuples/WixBundlePackageExitCodeTuple.cs | 71 + .../Tuples/WixBundlePackageGroupTuple.cs | 44 + .../Tuples/WixBundlePackageTuple.cs | 216 ++ .../Tuples/WixBundlePatchTargetCodeTuple.cs | 60 + .../Tuples/WixBundlePayloadGroupTuple.cs | 44 + .../Tuples/WixBundlePayloadTuple.cs | 214 ++ .../Tuples/WixBundlePropertiesTuple.cs | 84 + .../Tuples/WixBundleRelatedPackageTuple.cs | 108 + .../Tuples/WixBundleRollbackBoundaryTuple.cs | 60 + .../Tuples/WixBundleSlipstreamMspTuple.cs | 52 + src/WixToolset.Data/Tuples/WixBundleTuple.cs | 220 ++ src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs | 52 + .../Tuples/WixBundleVariableTuple.cs | 76 + src/WixToolset.Data/Tuples/WixChainItemTuple.cs | 44 + src/WixToolset.Data/Tuples/WixChainTuple.cs | 55 + .../Tuples/WixComplexReferenceTuple.cs | 86 + .../Tuples/WixComponentGroupTuple.cs | 44 + .../Tuples/WixComponentSearchTuple.cs | 68 + src/WixToolset.Data/Tuples/WixControlTuple.cs | 60 + src/WixToolset.Data/Tuples/WixCustomRowTuple.cs | 52 + src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 148 + .../Tuples/WixDeltaPatchFileTuple.cs | 84 + .../Tuples/WixDeltaPatchSymbolPathsTuple.cs | 75 + src/WixToolset.Data/Tuples/WixDirectoryTuple.cs | 52 + src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs | 44 + src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs | 44 + .../Tuples/WixFeatureModulesTuple.cs | 52 + src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | 116 + src/WixToolset.Data/Tuples/WixFileTuple.cs | 170 + src/WixToolset.Data/Tuples/WixFragmentTuple.cs | 44 + src/WixToolset.Data/Tuples/WixGroupTuple.cs | 70 + .../Tuples/WixInstanceComponentTuple.cs | 44 + .../Tuples/WixInstanceTransformsTuple.cs | 76 + .../Tuples/WixMediaTemplateTuple.cs | 86 + src/WixToolset.Data/Tuples/WixMediaTuple.cs | 62 + src/WixToolset.Data/Tuples/WixMergeTuple.cs | 100 + src/WixToolset.Data/Tuples/WixOrderingTuple.cs | 68 + .../Tuples/WixPackageFeatureInfoTuple.cs | 116 + .../Tuples/WixPackagePropertiesTuple.cs | 180 + .../Tuples/WixPatchBaselineTuple.cs | 60 + .../Tuples/WixPatchFamilyGroupTuple.cs | 44 + src/WixToolset.Data/Tuples/WixPatchIdTuple.cs | 68 + .../Tuples/WixPatchMetadataTuple.cs | 52 + src/WixToolset.Data/Tuples/WixPatchRefTuple.cs | 52 + src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs | 44 + .../Tuples/WixPayloadPropertiesTuple.cs | 92 + .../Tuples/WixProductSearchTuple.cs | 60 + src/WixToolset.Data/Tuples/WixPropertyTuple.cs | 68 + .../Tuples/WixRegistrySearchTuple.cs | 76 + .../Tuples/WixRelatedBundleTuple.cs | 52 + .../Tuples/WixSearchRelationTuple.cs | 60 + src/WixToolset.Data/Tuples/WixSearchTuple.cs | 60 + .../Tuples/WixSimpleReferenceTuple.cs | 60 + .../Tuples/WixSuppressActionTuple.cs | 52 + .../Tuples/WixSuppressModularizationTuple.cs | 44 + src/WixToolset.Data/Tuples/WixUITuple.cs | 44 + .../Tuples/WixUpdateRegistrationTuple.cs | 76 + src/WixToolset.Data/Tuples/WixVariableTuple.cs | 60 + .../Tuples/_ByHandComponentTuple.cs | 55 + src/WixToolset.Data/Tuples/_ByHandFileTuple.cs | 88 + .../Tuples/_ByHandTupleDefinitions.cs | 55 + src/WixToolset.Data/Tuples/_StreamsTuple.cs | 52 + .../Tuples/_SummaryInformationTuple.cs | 52 + src/WixToolset.Data/Tuples/_TransformViewTuple.cs | 76 + src/WixToolset.Data/Tuples/_ValidationTuple.cs | 116 + src/WixToolset.Data/Tuples/tuples_new.json | 3604 ++++++++++++++++++++ src/WixToolset.Data/WindowsInstallerStandard.cs | 444 --- src/WixToolset.Data/WixDataStrings.Designer.cs | 14 +- src/WixToolset.Data/WixInvalidIdtException.cs | 32 - .../WixMissingTableDefinitionException.cs | 22 - src/WixToolset.Data/WixToolset.Data.csproj | 5 - .../WixToolsetTest.Data/TupleDefinitionFixture.cs | 135 + .../WixToolsetTest.Data/WixToolsetTest.Data.csproj | 19 + 314 files changed, 22857 insertions(+), 12737 deletions(-) create mode 100644 src/WixToolset.Data/Bind/BindPath.cs create mode 100644 src/WixToolset.Data/Bind/BindVariable.cs delete mode 100644 src/WixToolset.Data/BindPath.cs delete mode 100644 src/WixToolset.Data/ColumnDefinition.cs delete mode 100644 src/WixToolset.Data/Data/actions.xml delete mode 100644 src/WixToolset.Data/Data/tables.xml delete mode 100644 src/WixToolset.Data/Field.cs create mode 100644 src/WixToolset.Data/ITupleDefinitionCreator.cs create mode 100644 src/WixToolset.Data/IntermediateField.cs create mode 100644 src/WixToolset.Data/IntermediateFieldContext.cs create mode 100644 src/WixToolset.Data/IntermediateFieldDefinition.cs create mode 100644 src/WixToolset.Data/IntermediateFieldExtensions.cs create mode 100644 src/WixToolset.Data/IntermediateFieldPathValue.cs create mode 100644 src/WixToolset.Data/IntermediateFieldValue.cs create mode 100644 src/WixToolset.Data/IntermediateFieldValueExtensions.cs create mode 100644 src/WixToolset.Data/IntermediateSection.cs create mode 100644 src/WixToolset.Data/IntermediateTuple.cs create mode 100644 src/WixToolset.Data/IntermediateTupleDefinition.cs create mode 100644 src/WixToolset.Data/IntermediateTupleExtensions.cs create mode 100644 src/WixToolset.Data/Json/JsonObjectExtensions.cs create mode 100644 src/WixToolset.Data/Json/SimpleJson.cs delete mode 100644 src/WixToolset.Data/ObjectField.cs delete mode 100644 src/WixToolset.Data/Output.cs delete mode 100644 src/WixToolset.Data/Pdb.cs delete mode 100644 src/WixToolset.Data/Row.cs delete mode 100644 src/WixToolset.Data/RowDictionary.cs delete mode 100644 src/WixToolset.Data/RowIndexedList.cs delete mode 100644 src/WixToolset.Data/RowOperation.cs delete mode 100644 src/WixToolset.Data/Rows/BBControlRow.cs delete mode 100644 src/WixToolset.Data/Rows/ComponentRow.cs delete mode 100644 src/WixToolset.Data/Rows/ContainerType.cs delete mode 100644 src/WixToolset.Data/Rows/ControlRow.cs delete mode 100644 src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs delete mode 100644 src/WixToolset.Data/Rows/FileAssemblyType.cs delete mode 100644 src/WixToolset.Data/Rows/FileRow.cs delete mode 100644 src/WixToolset.Data/Rows/MediaRow.cs delete mode 100644 src/WixToolset.Data/Rows/PatchAttributeType.cs delete mode 100644 src/WixToolset.Data/Rows/PropertyRow.cs delete mode 100644 src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs delete mode 100644 src/WixToolset.Data/Rows/SymbolPathType.cs delete mode 100644 src/WixToolset.Data/Rows/UpgradeRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixActionRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixActionRowCollection.cs delete mode 100644 src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleCatalogRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleContainerRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleExePackageRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundlePackageRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundlePackageType.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundlePayloadRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleUpdateRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixBundleVariableRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixChainAttributes.cs delete mode 100644 src/WixToolset.Data/Rows/WixChainItemRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixChainRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixComplexReferenceRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixFileRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixGroupRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixMediaRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixMediaTemplateRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixMergeRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixPropertyRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixRelatedBundleRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs delete mode 100644 src/WixToolset.Data/Rows/WixVariableRow.cs create mode 100644 src/WixToolset.Data/SimpleTupleDefinitionCreator.cs delete mode 100644 src/WixToolset.Data/SubStorage.cs delete mode 100644 src/WixToolset.Data/Table.cs delete mode 100644 src/WixToolset.Data/TableDefinition.cs delete mode 100644 src/WixToolset.Data/TableDefinitionCollection.cs delete mode 100644 src/WixToolset.Data/TableExtensions.cs delete mode 100644 src/WixToolset.Data/TableIndexedCollection.cs delete mode 100644 src/WixToolset.Data/TableOperation.cs create mode 100644 src/WixToolset.Data/Tuples/ActionTextTuple.cs create mode 100644 src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/AppIdTuple.cs create mode 100644 src/WixToolset.Data/Tuples/AppSearchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/BBControlTuple.cs create mode 100644 src/WixToolset.Data/Tuples/BillboardTuple.cs create mode 100644 src/WixToolset.Data/Tuples/BinaryTuple.cs create mode 100644 src/WixToolset.Data/Tuples/BindImageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/CCPSearchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/CheckBoxTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ClassTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ComboBoxTuple.cs create mode 100644 src/WixToolset.Data/Tuples/CompLocatorTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ComplusTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ComponentTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ConditionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ControlConditionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ControlEventTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ControlTuple.cs create mode 100644 src/WixToolset.Data/Tuples/CreateFolderTuple.cs create mode 100644 src/WixToolset.Data/Tuples/CustomActionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/DialogTuple.cs create mode 100644 src/WixToolset.Data/Tuples/DirectoryTuple.cs create mode 100644 src/WixToolset.Data/Tuples/DrLocatorTuple.cs create mode 100644 src/WixToolset.Data/Tuples/DuplicateFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/EnvironmentTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ErrorTuple.cs create mode 100644 src/WixToolset.Data/Tuples/EventMappingTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ExtensionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ExternalFilesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs create mode 100644 src/WixToolset.Data/Tuples/FeatureTuple.cs create mode 100644 src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs create mode 100644 src/WixToolset.Data/Tuples/FileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/FontTuple.cs create mode 100644 src/WixToolset.Data/Tuples/IconTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/IniFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/IniLocatorTuple.cs create mode 100644 src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs create mode 100644 src/WixToolset.Data/Tuples/LaunchConditionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ListBoxTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ListViewTuple.cs create mode 100644 src/WixToolset.Data/Tuples/LockPermissionsTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MIMETuple.cs create mode 100644 src/WixToolset.Data/Tuples/MediaTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MoveFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiFileHashTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs create mode 100644 src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ODBCDriverTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs create mode 100644 src/WixToolset.Data/Tuples/PatchMetadataTuple.cs create mode 100644 src/WixToolset.Data/Tuples/PatchPackageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/PatchSequenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/PatchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ProgIdTuple.cs create mode 100644 src/WixToolset.Data/Tuples/PropertiesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/PropertyTuple.cs create mode 100644 src/WixToolset.Data/Tuples/PublishComponentTuple.cs create mode 100644 src/WixToolset.Data/Tuples/RadioButtonTuple.cs create mode 100644 src/WixToolset.Data/Tuples/RegLocatorTuple.cs create mode 100644 src/WixToolset.Data/Tuples/RegistryTuple.cs create mode 100644 src/WixToolset.Data/Tuples/RemoveFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ReserveCostTuple.cs create mode 100644 src/WixToolset.Data/Tuples/SFPCatalogTuple.cs create mode 100644 src/WixToolset.Data/Tuples/SelfRegTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ServiceControlTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ServiceInstallTuple.cs create mode 100644 src/WixToolset.Data/Tuples/ShortcutTuple.cs create mode 100644 src/WixToolset.Data/Tuples/SignatureTuple.cs create mode 100644 src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs create mode 100644 src/WixToolset.Data/Tuples/TargetImagesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/TextStyleTuple.cs create mode 100644 src/WixToolset.Data/Tuples/TupleDefinitions.cs create mode 100644 src/WixToolset.Data/Tuples/TypeLibTuple.cs create mode 100644 src/WixToolset.Data/Tuples/UITextTuple.cs create mode 100644 src/WixToolset.Data/Tuples/UpgradeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs create mode 100644 src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs create mode 100644 src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/VerbTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixActionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBBControlTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixChainItemTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixChainTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixControlTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixCustomRowTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixCustomTableTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixDirectoryTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixFileSearchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixFragmentTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixGroupTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixMediaTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixMergeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixOrderingTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPatchIdTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPatchRefTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixProductSearchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixPropertyTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixSearchTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixUITuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixVariableTuple.cs create mode 100644 src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs create mode 100644 src/WixToolset.Data/Tuples/_ByHandFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs create mode 100644 src/WixToolset.Data/Tuples/_StreamsTuple.cs create mode 100644 src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/_TransformViewTuple.cs create mode 100644 src/WixToolset.Data/Tuples/_ValidationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/tuples_new.json delete mode 100644 src/WixToolset.Data/WindowsInstallerStandard.cs delete mode 100644 src/WixToolset.Data/WixInvalidIdtException.cs delete mode 100644 src/WixToolset.Data/WixMissingTableDefinitionException.cs create mode 100644 src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs create mode 100644 src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj (limited to 'src') diff --git a/src/WixToolset.Data/AssemblyInfo.cs b/src/WixToolset.Data/AssemblyInfo.cs index 6512230a..b3740b2a 100644 --- a/src/WixToolset.Data/AssemblyInfo.cs +++ b/src/WixToolset.Data/AssemblyInfo.cs @@ -5,5 +5,5 @@ using System.Reflection; using System.Runtime.InteropServices; [assembly: AssemblyCulture("")] -[assembly:CLSCompliant(true)] +[assembly: CLSCompliant(true)] [assembly: ComVisible(false)] diff --git a/src/WixToolset.Data/Bind/BindPath.cs b/src/WixToolset.Data/Bind/BindPath.cs new file mode 100644 index 00000000..823a57c9 --- /dev/null +++ b/src/WixToolset.Data/Bind/BindPath.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using WixToolset.Data.Bind; + + /// + /// Bind path representation. + /// + public class BindPath + { + /// + /// Creates an unnamed bind path. + /// + /// Path for the bind path. + public BindPath(string path) : this(String.Empty, path, BindStage.Normal) + { + } + + /// + /// Creates a named bind path. + /// + /// Name of the bind path. + /// Path for the bind path. + /// Stage for the bind path. + public BindPath(string name, string path, BindStage stage = BindStage.Normal) + { + this.Name = name; + this.Path = path; + this.Stage = stage; + } + + /// + /// Name of the bind path or String.Empty if the path is unnamed. + /// + public string Name { get; set; } + + /// + /// Path for the bind path. + /// + public string Path { get; set; } + + /// + /// Stage for the bind path. + /// + public BindStage Stage { get; set; } + + /// + /// Parses a normal bind path from its string representation + /// + /// String representation of bind path that looks like: [name=]path + /// Parsed normal bind path. + public static BindPath Parse(string bindPath) + { + string[] namedPath = bindPath.Split(new char[] { '=' }, 2); + return (1 == namedPath.Length) ? new BindPath(namedPath[0]) : new BindPath(namedPath[0], namedPath[1]); + } + } +} diff --git a/src/WixToolset.Data/Bind/BindVariable.cs b/src/WixToolset.Data/Bind/BindVariable.cs new file mode 100644 index 00000000..06c004e1 --- /dev/null +++ b/src/WixToolset.Data/Bind/BindVariable.cs @@ -0,0 +1,33 @@ +// 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. + +namespace WixToolset.Data.Rows +{ + /// + /// Specialization of a row for the WixVariable table. + /// + public sealed class BindVariable + { + /// + /// Gets or sets the source line number. + /// + public SourceLineNumber SourceLineNumbers { get; set; } + + /// + /// Gets or sets the variable identifier. + /// + /// The variable identifier. + public string Id { get; set; } + + /// + /// Gets or sets the variable's value. + /// + /// The variable's value. + public string Value { get; set; } + + /// + /// Gets or sets whether this variable is overridable. + /// + /// Whether this variable is overridable. + public bool Overridable { get; set; } + } +} diff --git a/src/WixToolset.Data/BindPath.cs b/src/WixToolset.Data/BindPath.cs deleted file mode 100644 index 823a57c9..00000000 --- a/src/WixToolset.Data/BindPath.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using WixToolset.Data.Bind; - - /// - /// Bind path representation. - /// - public class BindPath - { - /// - /// Creates an unnamed bind path. - /// - /// Path for the bind path. - public BindPath(string path) : this(String.Empty, path, BindStage.Normal) - { - } - - /// - /// Creates a named bind path. - /// - /// Name of the bind path. - /// Path for the bind path. - /// Stage for the bind path. - public BindPath(string name, string path, BindStage stage = BindStage.Normal) - { - this.Name = name; - this.Path = path; - this.Stage = stage; - } - - /// - /// Name of the bind path or String.Empty if the path is unnamed. - /// - public string Name { get; set; } - - /// - /// Path for the bind path. - /// - public string Path { get; set; } - - /// - /// Stage for the bind path. - /// - public BindStage Stage { get; set; } - - /// - /// Parses a normal bind path from its string representation - /// - /// String representation of bind path that looks like: [name=]path - /// Parsed normal bind path. - public static BindPath Parse(string bindPath) - { - string[] namedPath = bindPath.Split(new char[] { '=' }, 2); - return (1 == namedPath.Length) ? new BindPath(namedPath[0]) : new BindPath(namedPath[0], namedPath[1]); - } - } -} diff --git a/src/WixToolset.Data/ColumnDefinition.cs b/src/WixToolset.Data/ColumnDefinition.cs deleted file mode 100644 index 7e5a07c5..00000000 --- a/src/WixToolset.Data/ColumnDefinition.cs +++ /dev/null @@ -1,1032 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Globalization; - using System.Xml; - - /// - /// Defines MSI column types. - /// - public enum ColumnType - { - /// Unknown column type, default and invalid. - Unknown, - - /// Column is a string. - String, - - /// Column is a localizable string. - Localized, - - /// Column is a number. - Number, - - /// Column is a binary stream. - Object, - - /// Column is a string that is preserved in transforms (like Object). - Preserved, - } - - /// - /// Specifies if the column should be modularized. - /// - public enum ColumnModularizeType - { - /// Column should not be modularized. - None, - - /// Column should be modularized. - Column, - - /// When the column is an primary or foreign key to the Icon table it should be modularized special. - Icon, - - /// When the column is a companion file it should be modularized. - CompanionFile, - - /// Column is a condition and should be modularized. - Condition, - - /// Special modularization type for the ControlEvent table's Argument column. - ControlEventArgument, - - /// Special modularization type for the Control table's Text column. - ControlText, - - /// Any Properties in the column should be modularized. - Property, - - /// Semi-colon list of keys, all of which need to be modularized. - SemicolonDelimited, - } - - /// - /// Column validation category type - /// - public enum ColumnCategory - { - /// Unknown category, default and invalid. - Unknown, - - /// Text category. - Text, - - /// UpperCase category. - UpperCase, - - /// LowerCase category. - LowerCase, - - /// Integer category. - Integer, - - /// DoubleInteger category. - DoubleInteger, - - /// TimeDate category. - TimeDate, - - /// Identifier category. - Identifier, - - /// Property category. - Property, - - /// Filename category. - Filename, - - /// WildCardFilename category. - WildCardFilename, - - /// Path category. - Path, - - /// Paths category. - Paths, - - /// AnyPath category. - AnyPath, - - /// DefaultDir category. - DefaultDir, - - /// RegPath category. - RegPath, - - /// Formatted category. - Formatted, - - /// Template category. - Template, - - /// Condition category. - Condition, - - /// Guid category. - Guid, - - /// Version category. - Version, - - /// Language category. - Language, - - /// Binary category. - Binary, - - /// CustomSource category. - CustomSource, - - /// Cabinet category. - Cabinet, - - /// Shortcut category. - Shortcut, - - /// Formatted SDDL category. - FormattedSDDLText, - } - - /// - /// Definition of a table's column. - /// - public sealed class ColumnDefinition : IComparable - { - private string name; - private ColumnType type; - private int length; - private bool primaryKey; - private bool nullable; - private ColumnModularizeType modularize; - private bool localizable; - private bool added; - - private bool minValueSet; - private long minValue; - private bool maxValueSet; - private long maxValue; - private string keyTable; - private bool keyColumnSet; - private int keyColumn; - private ColumnCategory category; - private string possibilities; - private string description; - private bool escapeIdtCharacters; - private bool useCData; - - /// - /// Creates a new column definition. - /// - /// Name of column. - /// Type of column - /// Length of column. - /// If column is primary key. - /// If column is nullable. - /// Type of modularization for column - /// If the column is localizable. - /// If the minimum of the value was set. - /// Minimum value for the column. - /// If the maximum value was set. - /// Maximum value for the colum. - /// Optional name of table for foreign key. - /// If the key column was set. - /// Optional name of column for foreign key. - /// Validation category for column. - /// Set of possible values for column. - /// Description of column in vaidation table. - /// If characters should be escaped in IDT. - /// If whitespace should be preserved in a CDATA node. - public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnModularizeType modularizeType, bool localizable, bool minValueSet, long minValue, bool maxValueSet, long maxValue, string keyTable, bool keyColumnSet, int keyColumn, ColumnCategory category, string possibilities, string description, bool escapeIdtCharacters, bool useCData) - { - this.name = name; - this.type = type; - this.length = length; - this.primaryKey = primaryKey; - this.nullable = nullable; - this.modularize = modularizeType; - this.localizable = localizable; - this.minValueSet = minValueSet; - this.minValue = minValue; - this.maxValueSet = maxValueSet; - this.maxValue = maxValue; - this.keyTable = keyTable; - this.keyColumnSet = keyColumnSet; - this.keyColumn = keyColumn; - this.category = category; - this.possibilities = possibilities; - this.description = description; - this.escapeIdtCharacters = escapeIdtCharacters; - this.useCData = useCData; - } - - /// - /// Gets whether this column was added via a transform. - /// - /// Whether this column was added via a transform. - public bool Added - { - get { return this.added; } - set { this.added = value; } - } - - /// - /// Gets the name of the column. - /// - /// Name of column. - public string Name - { - get { return this.name; } - } - - /// - /// Gets the type of the column. - /// - /// Type of column. - public ColumnType Type - { - get { return this.type; } - } - - /// - /// Gets the length of the column. - /// - /// Length of column. - public int Length - { - get { return this.length; } - } - - /// - /// Gets if the column is a primary key. - /// - /// true if column is primary key. - public bool PrimaryKey - { - get { return this.primaryKey; } - } - - /// - /// Gets if the column is nullable. - /// - /// true if column is nullable. - public bool Nullable - { - get { return this.nullable; } - } - - /// - /// Gets the type of modularization for this column. - /// - /// Column's modularization type. - public ColumnModularizeType ModularizeType - { - get { return this.modularize; } - } - - /// - /// Gets if the column is localizable. Can be because the type is localizable, or because the column - /// was explicitly set to be so. - /// - /// true if column is localizable. - public bool IsLocalizable - { - get { return this.localizable || ColumnType.Localized == this.Type; } - } - - /// - /// Gets if the minimum value of the column is set. - /// - /// true if minimum value is set. - public bool IsMinValueSet - { - get { return this.minValueSet; } - } - - /// - /// Gets the minimum value for the column, only valid if IsMinValueSet returns true. - /// - /// Minimum value for the column. - public long MinValue - { - get { return this.minValue; } - } - - /// - /// Gets if the maximum value of the column is set. - /// - /// true if maximum value is set. - public bool IsMaxValueSet - { - get { return this.maxValueSet; } - } - - /// - /// Gets the maximum value for the column, only valid if IsMinValueSet returns true. - /// - /// Maximum value for the column. - public long MaxValue - { - get { return this.maxValue; } - } - - /// - /// Gets the table that has the foreign key for this column - /// - /// Foreign key table name. - public string KeyTable - { - get { return this.keyTable; } - } - - /// - /// Gets if the key column is set. - /// - /// True if the key column is set. - public bool IsKeyColumnSet - { - get { return this.keyColumnSet; } - } - - /// - /// Gets the foreign key column that this column refers to. - /// - /// Foreign key column. - public int KeyColumn - { - get { return this.keyColumn; } - } - - /// - /// Gets the validation category for this column. - /// - /// Validation category. - public ColumnCategory Category - { - get { return this.category; } - } - - /// - /// Gets the set of possibilities for this column. - /// - /// Set of possibilities for this column. - public string Possibilities - { - get { return this.possibilities; } - } - - /// - /// Gets the description for this column. - /// - /// Description of column. - public string Description - { - get { return this.description; } - } - - /// - /// Gets if characters should be escaped to fit into IDT. - /// - /// true if data should be escaped when adding to IDT. - public bool EscapeIdtCharacters - { - get { return this.escapeIdtCharacters; } - } - - /// - /// Gets if whitespace should be preserved in a CDATA node. - /// - /// true if whitespace should be preserved in a CDATA node. - public bool UseCData - { - get { return this.useCData; } - } - - /// - /// Gets the type of the column in IDT format. - /// - /// IDT format for column type. - public string IdtType - { - get - { - char typeCharacter; - switch (this.type) - { - case ColumnType.Number: - typeCharacter = this.nullable ? 'I' : 'i'; - break; - case ColumnType.Preserved: - case ColumnType.String: - typeCharacter = this.nullable ? 'S' : 's'; - break; - case ColumnType.Localized: - typeCharacter = this.nullable ? 'L' : 'l'; - break; - case ColumnType.Object: - typeCharacter = this.nullable ? 'V' : 'v'; - break; - default: - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_UnknownColumnType, this.type)); - } - - return String.Concat(typeCharacter, this.length); - } - } - - /// - /// Parses a column definition in a table definition. - /// - /// Reader to get data from. - /// The ColumnDefintion represented by the Xml. - internal static ColumnDefinition Read(XmlReader reader) - { - if (!reader.LocalName.Equals("columnDefinition")) - { - throw new XmlException(); - } - - bool added = false; - ColumnCategory category = ColumnCategory.Unknown; - string description = null; - bool empty = reader.IsEmptyElement; - bool escapeIdtCharacters = false; - int keyColumn = -1; - bool keyColumnSet = false; - string keyTable = null; - int length = -1; - bool localizable = false; - long maxValue = 0; - bool maxValueSet = false; - long minValue = 0; - bool minValueSet = false; - ColumnModularizeType modularize = ColumnModularizeType.None; - string name = null; - bool nullable = false; - string possibilities = null; - bool primaryKey = false; - ColumnType type = ColumnType.Unknown; - bool useCData = false; - - // parse the attributes - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "added": - added = reader.Value.Equals("yes"); - break; - case "category": - switch (reader.Value) - { - case "anyPath": - category = ColumnCategory.AnyPath; - break; - case "binary": - category = ColumnCategory.Binary; - break; - case "cabinet": - category = ColumnCategory.Cabinet; - break; - case "condition": - category = ColumnCategory.Condition; - break; - case "customSource": - category = ColumnCategory.CustomSource; - break; - case "defaultDir": - category = ColumnCategory.DefaultDir; - break; - case "doubleInteger": - category = ColumnCategory.DoubleInteger; - break; - case "filename": - category = ColumnCategory.Filename; - break; - case "formatted": - category = ColumnCategory.Formatted; - break; - case "formattedSddl": - category = ColumnCategory.FormattedSDDLText; - break; - case "guid": - category = ColumnCategory.Guid; - break; - case "identifier": - category = ColumnCategory.Identifier; - break; - case "integer": - category = ColumnCategory.Integer; - break; - case "language": - category = ColumnCategory.Language; - break; - case "lowerCase": - category = ColumnCategory.LowerCase; - break; - case "path": - category = ColumnCategory.Path; - break; - case "paths": - category = ColumnCategory.Paths; - break; - case "property": - category = ColumnCategory.Property; - break; - case "regPath": - category = ColumnCategory.RegPath; - break; - case "shortcut": - category = ColumnCategory.Shortcut; - break; - case "template": - category = ColumnCategory.Template; - break; - case "text": - category = ColumnCategory.Text; - break; - case "timeDate": - category = ColumnCategory.TimeDate; - break; - case "upperCase": - category = ColumnCategory.UpperCase; - break; - case "version": - category = ColumnCategory.Version; - break; - case "wildCardFilename": - category = ColumnCategory.WildCardFilename; - break; - default: - throw new InvalidOperationException(); - } - break; - case "description": - description = reader.Value; - break; - case "escapeIdtCharacters": - escapeIdtCharacters = reader.Value.Equals("yes"); - break; - case "keyColumn": - keyColumnSet = true; - keyColumn = Convert.ToInt32(reader.Value, 10); - break; - case "keyTable": - keyTable = reader.Value; - break; - case "length": - length = Convert.ToInt32(reader.Value, 10); - break; - case "localizable": - localizable = reader.Value.Equals("yes"); - break; - case "maxValue": - maxValueSet = true; - maxValue = Convert.ToInt32(reader.Value, 10); - break; - case "minValue": - minValueSet = true; - minValue = Convert.ToInt32(reader.Value, 10); - break; - case "modularize": - switch (reader.Value) - { - case "column": - modularize = ColumnModularizeType.Column; - break; - case "companionFile": - modularize = ColumnModularizeType.CompanionFile; - break; - case "condition": - modularize = ColumnModularizeType.Condition; - break; - case "controlEventArgument": - modularize = ColumnModularizeType.ControlEventArgument; - break; - case "controlText": - modularize = ColumnModularizeType.ControlText; - break; - case "icon": - modularize = ColumnModularizeType.Icon; - break; - case "none": - modularize = ColumnModularizeType.None; - break; - case "property": - modularize = ColumnModularizeType.Property; - break; - case "semicolonDelimited": - modularize = ColumnModularizeType.SemicolonDelimited; - break; - default: - throw new XmlException(); - } - break; - case "name": - switch (reader.Value) - { - case "CREATE": - case "DELETE": - case "DROP": - case "INSERT": - throw new XmlException(); - default: - name = reader.Value; - break; - } - break; - case "nullable": - nullable = reader.Value.Equals("yes"); - break; - case "primaryKey": - primaryKey = reader.Value.Equals("yes"); - break; - case "set": - possibilities = reader.Value; - break; - case "type": - switch (reader.Value) - { - case "localized": - type = ColumnType.Localized; - break; - case "number": - type = ColumnType.Number; - break; - case "object": - type = ColumnType.Object; - break; - case "string": - type = ColumnType.String; - break; - case "preserved": - type = ColumnType.Preserved; - break; - default: - throw new XmlException(); - } - break; - case "useCData": - useCData = reader.Value.Equals("yes"); - break; - } - } - - // parse the child elements (there should be none) - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - throw new XmlException(); - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - ColumnDefinition columnDefinition = new ColumnDefinition(name, type, length, primaryKey, nullable, modularize, localizable, minValueSet, minValue, maxValueSet, maxValue, keyTable, keyColumnSet, keyColumn, category, possibilities, description, escapeIdtCharacters, useCData); - columnDefinition.Added = added; - - return columnDefinition; - } - - /// - /// Persists a ColumnDefinition in an XML format. - /// - /// XmlWriter where the Output should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("columnDefinition", TableDefinitionCollection.XmlNamespaceUri); - - writer.WriteAttributeString("name", this.name); - - switch (this.type) - { - case ColumnType.Localized: - writer.WriteAttributeString("type", "localized"); - break; - case ColumnType.Number: - writer.WriteAttributeString("type", "number"); - break; - case ColumnType.Object: - writer.WriteAttributeString("type", "object"); - break; - case ColumnType.String: - writer.WriteAttributeString("type", "string"); - break; - case ColumnType.Preserved: - writer.WriteAttributeString("type", "preserved"); - break; - } - - writer.WriteAttributeString("length", this.length.ToString(CultureInfo.InvariantCulture.NumberFormat)); - - if (this.primaryKey) - { - writer.WriteAttributeString("primaryKey", "yes"); - } - - if (this.nullable) - { - writer.WriteAttributeString("nullable", "yes"); - } - - if (this.localizable) - { - writer.WriteAttributeString("localizable", "yes"); - } - - if (this.added) - { - writer.WriteAttributeString("added", "yes"); - } - - switch (this.modularize) - { - case ColumnModularizeType.Column: - writer.WriteAttributeString("modularize", "column"); - break; - case ColumnModularizeType.CompanionFile: - writer.WriteAttributeString("modularize", "companionFile"); - break; - case ColumnModularizeType.Condition: - writer.WriteAttributeString("modularize", "condition"); - break; - case ColumnModularizeType.ControlEventArgument: - writer.WriteAttributeString("modularize", "controlEventArgument"); - break; - case ColumnModularizeType.ControlText: - writer.WriteAttributeString("modularize", "controlText"); - break; - case ColumnModularizeType.Icon: - writer.WriteAttributeString("modularize", "icon"); - break; - case ColumnModularizeType.None: - // this is the default value - break; - case ColumnModularizeType.Property: - writer.WriteAttributeString("modularize", "property"); - break; - case ColumnModularizeType.SemicolonDelimited: - writer.WriteAttributeString("modularize", "semicolonDelimited"); - break; - } - - if (this.minValueSet) - { - writer.WriteAttributeString("minValue", this.minValue.ToString(CultureInfo.InvariantCulture.NumberFormat)); - } - - if (this.maxValueSet) - { - writer.WriteAttributeString("maxValue", this.maxValue.ToString(CultureInfo.InvariantCulture.NumberFormat)); - } - - if (!String.IsNullOrEmpty(this.keyTable)) - { - writer.WriteAttributeString("keyTable", this.keyTable); - } - - if (this.keyColumnSet) - { - writer.WriteAttributeString("keyColumn", this.keyColumn.ToString(CultureInfo.InvariantCulture.NumberFormat)); - } - - switch (this.category) - { - case ColumnCategory.AnyPath: - writer.WriteAttributeString("category", "anyPath"); - break; - case ColumnCategory.Binary: - writer.WriteAttributeString("category", "binary"); - break; - case ColumnCategory.Cabinet: - writer.WriteAttributeString("category", "cabinet"); - break; - case ColumnCategory.Condition: - writer.WriteAttributeString("category", "condition"); - break; - case ColumnCategory.CustomSource: - writer.WriteAttributeString("category", "customSource"); - break; - case ColumnCategory.DefaultDir: - writer.WriteAttributeString("category", "defaultDir"); - break; - case ColumnCategory.DoubleInteger: - writer.WriteAttributeString("category", "doubleInteger"); - break; - case ColumnCategory.Filename: - writer.WriteAttributeString("category", "filename"); - break; - case ColumnCategory.Formatted: - writer.WriteAttributeString("category", "formatted"); - break; - case ColumnCategory.FormattedSDDLText: - writer.WriteAttributeString("category", "formattedSddl"); - break; - case ColumnCategory.Guid: - writer.WriteAttributeString("category", "guid"); - break; - case ColumnCategory.Identifier: - writer.WriteAttributeString("category", "identifier"); - break; - case ColumnCategory.Integer: - writer.WriteAttributeString("category", "integer"); - break; - case ColumnCategory.Language: - writer.WriteAttributeString("category", "language"); - break; - case ColumnCategory.LowerCase: - writer.WriteAttributeString("category", "lowerCase"); - break; - case ColumnCategory.Path: - writer.WriteAttributeString("category", "path"); - break; - case ColumnCategory.Paths: - writer.WriteAttributeString("category", "paths"); - break; - case ColumnCategory.Property: - writer.WriteAttributeString("category", "property"); - break; - case ColumnCategory.RegPath: - writer.WriteAttributeString("category", "regPath"); - break; - case ColumnCategory.Shortcut: - writer.WriteAttributeString("category", "shortcut"); - break; - case ColumnCategory.Template: - writer.WriteAttributeString("category", "template"); - break; - case ColumnCategory.Text: - writer.WriteAttributeString("category", "text"); - break; - case ColumnCategory.TimeDate: - writer.WriteAttributeString("category", "timeDate"); - break; - case ColumnCategory.UpperCase: - writer.WriteAttributeString("category", "upperCase"); - break; - case ColumnCategory.Version: - writer.WriteAttributeString("category", "version"); - break; - case ColumnCategory.WildCardFilename: - writer.WriteAttributeString("category", "wildCardFilename"); - break; - } - - if (!String.IsNullOrEmpty(this.possibilities)) - { - writer.WriteAttributeString("set", this.possibilities); - } - - if (!String.IsNullOrEmpty(this.description)) - { - writer.WriteAttributeString("description", this.description); - } - - if (this.escapeIdtCharacters) - { - writer.WriteAttributeString("escapeIdtCharacters", "yes"); - } - - if (this.useCData) - { - writer.WriteAttributeString("useCData", "yes"); - } - - writer.WriteEndElement(); - } - - /// - /// Validate a value for this column. - /// - /// The value to validate. - /// Validated value. - internal object ValidateValue(object value) - { - if (null == value) - { - if (!this.nullable) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with a null value because this is a required field.", this.name)); - } - } - else // check numerical values against their specified minimum and maximum values. - { - if (ColumnType.Number == this.type && !this.IsLocalizable) - { - // For now all enums in the tables can be represented by integers. This if statement would need to - // be enhanced if that ever changes. - if (value is int || value.GetType().IsEnum) - { - int intValue = (int)value; - - // validate the value against the minimum allowed value - if (this.minValueSet && this.minValue > intValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", this.name, intValue, this.minValue)); - } - - // validate the value against the maximum allowed value - if (this.maxValueSet && this.maxValue < intValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", this.name, intValue, this.maxValue)); - } - - return intValue; - } - else if (value is long) - { - long longValue = (long)value; - - // validate the value against the minimum allowed value - if (this.minValueSet && this.minValue > longValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", this.name, longValue, this.minValue)); - } - - // validate the value against the maximum allowed value - if (this.maxValueSet && this.maxValue < longValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", this.name, longValue, this.maxValue)); - } - - return longValue; - } - else - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set number column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); - } - } - else - { - if (!(value is string)) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set string column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); - } - } - } - - return value; - } - - /// - /// Compare this column definition to another column definition. - /// - /// - /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. - /// - /// The to compare with this one. - /// 0 if the columns' core propeties are the same; otherwise, non-0. - public int CompareTo(ColumnDefinition other) - { - // by definition, this object is greater than null - if (null == other) - { - return 1; - } - - // compare column names - int ret = String.Compare(this.Name, other.Name, StringComparison.Ordinal); - - // compare column types - if (0 == ret) - { - ret = this.Type == other.Type ? 0 : -1; - - // compare column lengths - if (0 == ret) - { - ret = this.Length == other.Length ? 0 : -1; - - // compare whether both are primary keys - if (0 == ret) - { - ret = this.PrimaryKey == other.PrimaryKey ? 0 : -1; - - // compare nullability - if (0 == ret) - { - ret = this.Nullable == other.Nullable ? 0 : -1; - } - } - } - } - - return ret; - } - } -} diff --git a/src/WixToolset.Data/Common.cs b/src/WixToolset.Data/Common.cs index 8d6ef7b4..f75ad33e 100644 --- a/src/WixToolset.Data/Common.cs +++ b/src/WixToolset.Data/Common.cs @@ -11,14 +11,12 @@ namespace WixToolset.Data internal static class Common { - public const int IntegerNotSet = int.MinValue; + public const int IntegerNotSet = Int32.MinValue; internal static readonly XNamespace W3SchemaPrefix = "http://www.w3.org/"; internal static readonly string[] ReservedFileNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" }; - private static readonly Regex LegalIdentifierCharacters = new Regex(@"^[_A-Za-z][0-9A-Za-z_\.]*$", RegexOptions.Compiled); - internal static string GetFileHash(FileInfo fileInfo) { byte[] hashBytes; @@ -38,18 +36,5 @@ namespace WixToolset.Data return sb.ToString(); } - - public static bool IsIdentifier(string value) - { - if (!String.IsNullOrEmpty(value)) - { - if (LegalIdentifierCharacters.IsMatch(value)) - { - return true; - } - } - - return false; - } } } diff --git a/src/WixToolset.Data/CompressionLevel.cs b/src/WixToolset.Data/CompressionLevel.cs index 13242051..c98eb9e1 100644 --- a/src/WixToolset.Data/CompressionLevel.cs +++ b/src/WixToolset.Data/CompressionLevel.cs @@ -1,8 +1,7 @@ -// 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. +// 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. namespace WixToolset.Data { - /// /// Compression level to use when creating cabinet. /// @@ -23,4 +22,4 @@ namespace WixToolset.Data /// Use ms-zip compression. Mszip } -} +} \ No newline at end of file diff --git a/src/WixToolset.Data/Data/actions.xml b/src/WixToolset.Data/Data/actions.xml deleted file mode 100644 index f65b792d..00000000 --- a/src/WixToolset.Data/Data/actions.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Data/Data/tables.xml b/src/WixToolset.Data/Data/tables.xml deleted file mode 100644 index 280d87a8..00000000 --- a/src/WixToolset.Data/Data/tables.xml +++ /dev/null @@ -1,1962 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Data/DuplicateSymbolsException.cs b/src/WixToolset.Data/DuplicateSymbolsException.cs index d0f8536c..6f14d049 100644 --- a/src/WixToolset.Data/DuplicateSymbolsException.cs +++ b/src/WixToolset.Data/DuplicateSymbolsException.cs @@ -5,6 +5,7 @@ namespace WixToolset.Data using System; using System.Collections; +#if false /// /// Duplicate symbols exception. /// @@ -32,4 +33,5 @@ namespace WixToolset.Data return this.duplicateSymbols; } } +#endif } diff --git a/src/WixToolset.Data/Field.cs b/src/WixToolset.Data/Field.cs deleted file mode 100644 index 74b78229..00000000 --- a/src/WixToolset.Data/Field.cs +++ /dev/null @@ -1,266 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Diagnostics; - using System.Globalization; - using System.Xml; - - /// - /// Field containing data for a column in a row. - /// - public class Field - { - private object data; - - /// - /// Instantiates a new Field. - /// - /// Column definition for this field. - protected Field(ColumnDefinition columnDefinition) - { - this.Column = columnDefinition; - } - - /// - /// Gets or sets the column definition for this field. - /// - /// Column definition. - public ColumnDefinition Column { get; private set; } - - /// - /// Gets or sets the data for this field. - /// - /// Data in the field. - public object Data - { - get - { - return this.data; - } - - set - { - // Validate the value before setting it. - this.data = this.Column.ValidateValue(value); - } - } - - /// - /// Gets or sets whether this field is modified. - /// - /// Whether this field is modified. - public bool Modified { get; set; } - - /// - /// Gets or sets the previous data. - /// - /// The previous data. - public string PreviousData { get; set; } - - /// - /// Instantiate a new Field object of the correct type. - /// - /// The column definition for the field. - /// The new Field object. - public static Field Create(ColumnDefinition columnDefinition) - { - return (ColumnType.Object == columnDefinition.Type) ? new ObjectField(columnDefinition) : new Field(columnDefinition); - } - - /// - /// Sets the value of a particular field in the row without validating. - /// - /// field index. - /// Value of a field in the row. - /// True if successful, false if validation failed. - public bool BestEffortSet(object value) - { - bool success = true; - object bestEffortValue = value; - - try - { - bestEffortValue = this.Column.ValidateValue(value); - } - catch (InvalidOperationException) - { - success = false; - } - - this.data = bestEffortValue; - return success; - } - - /// - /// Determine if this field is identical to another field. - /// - /// The other field to compare to. - /// true if they are equal; false otherwise. - public bool IsIdentical(Field field) - { - return (this.Column.Name == field.Column.Name && - ((null != this.data && this.data.Equals(field.data)) || (null == this.data && null == field.data))); - } - - /// - /// Overrides the built in object implementation to return the field's data as a string. - /// - /// Field's data as a string. - public override string ToString() - { - return this.AsString(); - } - - /// - /// Gets the field as an integer. - /// - /// Field's data as an integer. - public int AsInteger() - { - return (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); - } - - /// - /// Gets the field as an integer that could be null. - /// - /// Field's data as an integer that could be null. - public int? AsNullableInteger() - { - return (null == this.data) ? (int?)null : (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); - } - - /// - /// Gets the field as a string. - /// - /// Field's data as a string. - public string AsString() - { - return (null == this.data) ? null : Convert.ToString(this.data, CultureInfo.InvariantCulture); - } - - /// - /// Parse a field from the xml. - /// - /// XmlReader where the intermediate is persisted. - internal virtual void Read(XmlReader reader) - { - Debug.Assert("field" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "modified": - this.Modified = reader.Value.Equals("yes"); - break; - case "previousData": - this.PreviousData = reader.Value; - break; - } - } - - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - throw new XmlException(); - case XmlNodeType.CDATA: - case XmlNodeType.Text: - case XmlNodeType.SignificantWhitespace: - if (0 < reader.Value.Length) - { - if (ColumnType.Number == this.Column.Type && !this.Column.IsLocalizable) - { - // older wix files could persist data as a long value (which would overflow an int) - // since the Convert class always throws exceptions for overflows, read in integral - // values as a long to avoid the overflow, then cast it to an int (this operation can - // overflow without throwing an exception inside an unchecked block) - this.data = unchecked((int)Convert.ToInt64(reader.Value, CultureInfo.InvariantCulture)); - } - else - { - this.data = reader.Value; - } - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - } - - /// - /// Persists a field in an XML format. - /// - /// XmlWriter where the Field should persist itself as XML. - internal virtual void Write(XmlWriter writer) - { - writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); - - if (this.Modified) - { - writer.WriteAttributeString("modified", "yes"); - } - - if (null != this.PreviousData) - { - writer.WriteAttributeString("previousData", this.PreviousData); - } - - // Convert the data to a string that will persist nicely (nulls as String.Empty). - string text = Convert.ToString(this.data, CultureInfo.InvariantCulture); - if (this.Column.UseCData) - { - writer.WriteCData(text); - } - else - { - writer.WriteString(text); - } - - writer.WriteEndElement(); - } - - /// - /// Returns the field data in a format usable in IDT files. - /// - /// Field data in string IDT format. - internal string ToIdtValue() - { - if (null == this.data) - { - return null; - } - else - { - string fieldData = Convert.ToString(this.data, CultureInfo.InvariantCulture); - - // special idt-specific escaping - if (this.Column.EscapeIdtCharacters) - { - fieldData = fieldData.Replace('\t', '\x10'); - fieldData = fieldData.Replace('\r', '\x11'); - fieldData = fieldData.Replace('\n', '\x19'); - } - - return fieldData; - } - } - } -} diff --git a/src/WixToolset.Data/FileFormat.cs b/src/WixToolset.Data/FileFormat.cs index 9bb54fca..75eab3de 100644 --- a/src/WixToolset.Data/FileFormat.cs +++ b/src/WixToolset.Data/FileFormat.cs @@ -13,5 +13,7 @@ namespace WixToolset.Data Wixout, Wixpdb, + + WixIR, } } diff --git a/src/WixToolset.Data/FileStructure.cs b/src/WixToolset.Data/FileStructure.cs index 7265a51d..9ad9405a 100644 --- a/src/WixToolset.Data/FileStructure.cs +++ b/src/WixToolset.Data/FileStructure.cs @@ -7,6 +7,7 @@ namespace WixToolset.Data using System.Diagnostics; using System.IO; using System.Linq; + using System.Text; /// /// Class that understands the standard file structures in the WiX toolset. @@ -20,6 +21,8 @@ namespace WixToolset.Data private static readonly Dictionary SupportedFileFormats = new Dictionary() { + { "wir", FileFormat.WixIR }, + { "wixirf", FileFormat.WixIR }, { "wixobj", FileFormat.Wixobj }, { "wixlib", FileFormat.Wixlib }, { "wixout", FileFormat.Wixout }, @@ -36,7 +39,7 @@ namespace WixToolset.Data /// /// Count of embedded files in the file structure. /// - public int EmbeddedFileCount { get { return this.embeddedFileSizes.Length; } } + public int EmbeddedFileCount => this.embeddedFileSizes.Length; /// /// File format of the file structure. @@ -50,15 +53,15 @@ namespace WixToolset.Data /// File format for the file structure. /// Paths to files to embedd in the file structure. /// Newly created file structure. - public static FileStructure Create(Stream stream, FileFormat fileFormat, List embedFilePaths) + public static FileStructure Create(Stream stream, FileFormat fileFormat, IEnumerable embedFilePaths) { - FileStructure fs = new FileStructure(); - using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) - using (BinaryWriter writer = new BinaryWriter(wrapper)) + var fs = new FileStructure(); + + using (var writer = new BinaryWriter(stream, Encoding.UTF8, true)) { fs.WriteType(writer, fileFormat); - fs.WriteEmbeddedFiles(writer, embedFilePaths ?? new List()); + fs.WriteEmbeddedFiles(writer, embedFilePaths.ToArray()); // Remember the data stream offset, which is right after the embedded files have been written. fs.dataStreamOffset = stream.Position; @@ -76,13 +79,13 @@ namespace WixToolset.Data /// File structure populated from the stream. public static FileStructure Read(Stream stream) { - FileStructure fs = new FileStructure(); - using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) - using (BinaryReader reader = new BinaryReader(wrapper)) + var fs = new FileStructure(); + + using (var reader = new BinaryReader(stream, Encoding.UTF8, true)) { fs.FileFormat = FileStructure.ReadFileFormat(reader); - if (FileFormat.Unknown != fs.FileFormat) + if (fs.FileFormat != FileFormat.Unknown) { fs.embeddedFileSizes = FileStructure.ReadEmbeddedFileSizes(reader); @@ -107,8 +110,7 @@ namespace WixToolset.Data /// Best guess at file format. public static FileFormat GuessFileFormatFromExtension(string extension) { - FileFormat format; - return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out format) ? format : FileFormat.Unknown; + return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out var format) ? format : FileFormat.Unknown; } /// @@ -124,8 +126,7 @@ namespace WixToolset.Data try { - using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) - using (BinaryReader reader = new BinaryReader(wrapper)) + using (var reader = new BinaryReader(stream, Encoding.UTF8, true)) { format = FileStructure.ReadFileFormat(reader); } @@ -182,7 +183,21 @@ namespace WixToolset.Data } /// - /// Disposes of the internsl state of the file structure. + /// Gets the data of the file as a string. + /// + /// String contents data of the file. + public string GetData() + { + var bytes = new byte[this.stream.Length - this.dataStreamOffset]; + + this.stream.Seek(this.dataStreamOffset, SeekOrigin.Begin); + this.stream.Read(bytes, 0, bytes.Length); + + return Encoding.UTF8.GetString(bytes); + } + + /// + /// Disposes of the internal state of the file structure. /// public void Dispose() { @@ -217,7 +232,13 @@ namespace WixToolset.Data { FileFormat format = FileFormat.Unknown; - string type = new string(reader.ReadChars(6)); + string type = new string(reader.ReadChars(3)); + if (FileStructure.SupportedFileFormats.TryGetValue(type, out format)) + { + return format; + } + + type += new string(reader.ReadChars(3)); FileStructure.SupportedFileFormats.TryGetValue(type, out format); return format; @@ -256,21 +277,21 @@ namespace WixToolset.Data this.FileFormat = fileFormat; - Debug.Assert(6 == type.ToCharArray().Length); + Debug.Assert(3 == type.ToCharArray().Length || 6 == type.ToCharArray().Length); writer.Write(type.ToCharArray()); return writer; } - private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, List embedFilePaths) + private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, string[] embedFilePaths) { // First write the count of embedded files as a Uint32; - writer.Write((uint)embedFilePaths.Count); + writer.Write((uint)embedFilePaths.Length); - this.embeddedFileSizes = new long[embedFilePaths.Count]; + this.embeddedFileSizes = new long[embedFilePaths.Length]; // Next write out the size of each file as a Uint64 in order. - FileInfo[] files = new FileInfo[embedFilePaths.Count]; - for (int i = 0; i < embedFilePaths.Count; ++i) + FileInfo[] files = new FileInfo[embedFilePaths.Length]; + for (int i = 0; i < embedFilePaths.Length; ++i) { files[i] = new FileInfo(embedFilePaths[i]); diff --git a/src/WixToolset.Data/ITupleDefinitionCreator.cs b/src/WixToolset.Data/ITupleDefinitionCreator.cs new file mode 100644 index 00000000..63477314 --- /dev/null +++ b/src/WixToolset.Data/ITupleDefinitionCreator.cs @@ -0,0 +1,9 @@ +// 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. + +namespace WixToolset.Data +{ + public interface ITupleDefinitionCreator + { + bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition); + } +} diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs index 96acc997..38b12989 100644 --- a/src/WixToolset.Data/Identifier.cs +++ b/src/WixToolset.Data/Identifier.cs @@ -2,9 +2,13 @@ namespace WixToolset.Data { + using System; + using System.Diagnostics; + /// /// Class to define the identifier and access for a row. /// + [DebuggerDisplay("{Access} {Id,nq}")] public class Identifier { public static Identifier Invalid = new Identifier(null, AccessModifier.Private); @@ -15,6 +19,12 @@ namespace WixToolset.Data this.Access = access; } + public Identifier(int id, AccessModifier access) + { + this.Id = id.ToString(); + this.Access = access; + } + /// /// Access modifier for a row. /// diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index fd14f11b..b03492ce 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -5,7 +5,7 @@ namespace WixToolset.Data using System; using System.Collections.Generic; using System.IO; - using System.Xml; + using SimpleJson; /// /// Container class for an intermediate object. @@ -15,34 +15,192 @@ namespace WixToolset.Data public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixobj"; private static readonly Version CurrentVersion = new Version("4.0.0.0"); - private string id; - private List
sections; + private Dictionary localizationsByCulture; /// /// Instantiate a new Intermediate. /// public Intermediate() { - this.id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); - this.sections = new List
(); + this.Id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); + this.EmbedFilePaths = new List(); + this.localizationsByCulture = new Dictionary(StringComparer.OrdinalIgnoreCase); + this.Sections = new List(); } + public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture, IEnumerable embedFilePaths) + { + this.Id = id; + this.EmbedFilePaths = (embedFilePaths != null) ? new List(embedFilePaths) : new List(); + this.localizationsByCulture = (localizationsByCulture != null) ? new Dictionary(localizationsByCulture, StringComparer.OrdinalIgnoreCase) : new Dictionary(StringComparer.OrdinalIgnoreCase); + this.Sections = (sections != null) ? new List(sections) : new List(); + } + + /// + /// Get the id for the intermediate. + /// + public string Id { get; } + + /// + /// Get the embed file paths in this intermediate. + /// + public IList EmbedFilePaths { get; } + + /// + /// Get the localizations contained in this intermediate. + /// + public IEnumerable Localizations => this.localizationsByCulture.Values; + /// /// Get the sections contained in this intermediate. /// - /// Sections contained in this intermediate. - public IEnumerable
Sections { get { return this.sections; } } + public IList Sections { get; } /// - /// Adds a section to the intermediate. + /// Adds a localization to the intermediate. /// - /// Section to add to the intermediate. - public void AddSection(Section section) + /// Localization to add to the intermediate. + public void AddLocalization(Localization localization) + { + if (this.localizationsByCulture.TryGetValue(localization.Culture, out var existingCulture)) + { + existingCulture.Merge(localization); + } + else + { + this.localizationsByCulture.Add(localization.Culture, localization); + } + } + + /// + /// Gets localization files from this library that match the cultures passed in, in the order of the array of cultures. + /// + /// The list of cultures to get localizations for. + /// All localizations contained in this library that match the set of cultures provided, in the same order. + public IEnumerable GetLocalizationsForCultures(IEnumerable cultures) + { + foreach (string culture in cultures ?? Array.Empty()) + { + if (this.localizationsByCulture.TryGetValue(culture, out var localization)) + { + yield return localization; + } + } + } + + /// + /// Loads an intermediate from a path on disk. + /// + /// Path to intermediate file saved on disk. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(string path, bool suppressVersionCheck = false) + { + var creator = new SimpleTupleDefinitionCreator(); + return Intermediate.Load(path, creator, suppressVersionCheck); + } + + /// + /// Loads an intermediate from a path on disk. + /// + /// Path to intermediate file saved on disk. + /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(string path, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) { - section.IntermediateId = this.id; - this.sections.Add(section); + JsonObject jsonObject; + + using (FileStream stream = File.OpenRead(path)) + using (FileStructure fs = FileStructure.Read(stream)) + { + if (FileFormat.WixIR != fs.FileFormat) + { + throw new WixUnexpectedFileFormatException(path, FileFormat.WixIR, fs.FileFormat); + } + + var json = fs.GetData(); + jsonObject = SimpleJson.DeserializeObject(json) as JsonObject; + } + + if (!suppressVersionCheck) + { + var versionJson = jsonObject.GetValueOrDefault("version"); + + if (!Version.TryParse(versionJson, out var version) || !Intermediate.CurrentVersion.Equals(version)) + { + throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(path), "intermediate", versionJson, Intermediate.CurrentVersion.ToString())); + } + } + + var id = jsonObject.GetValueOrDefault("id"); + + var sections = new List(); + + var sectionsJson = jsonObject.GetValueOrDefault("sections"); + foreach (JsonObject sectionJson in sectionsJson) + { + var section = IntermediateSection.Deserialize(creator, sectionJson); + sections.Add(section); + } + + var localizations = new Dictionary(StringComparer.OrdinalIgnoreCase); + + //var localizationsJson = jsonObject.GetValueOrDefault("localizations") ?? new JsonArray(); + //foreach (JsonObject localizationJson in localizationsJson) + //{ + // var localization = Localization.Deserialize(localizationJson); + // localizations.Add(localization.Culture, localization); + //} + + return new Intermediate(id, sections, localizations, null); + } + + /// + /// Saves an intermediate to a path on disk. + /// + /// Path to save intermediate file to disk. + public void Save(string path) + { + Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); + + using (var stream = File.Create(path)) + using (var fs = FileStructure.Create(stream, FileFormat.WixIR, this.EmbedFilePaths)) + using (var writer = new StreamWriter(fs.GetDataStream())) + { + var jsonObject = new JsonObject + { + { "id", this.Id }, + { "version", Intermediate.CurrentVersion.ToString() } + }; + + var sectionsJson = new JsonArray(this.Sections.Count); + foreach (var section in this.Sections) + { + var sectionJson = section.Serialize(); + sectionsJson.Add(sectionJson); + } + + jsonObject.Add("sections", sectionsJson); + + //if (this.Localizations.Any()) + //{ + // var localizationsJson = new JsonArray(); + // foreach (var localization in this.Localizations) + // { + // var localizationJson = localization.Serialize(); + // localizationsJson.Add(localizationJson); + // } + + // jsonObject.Add("localizations", localizationsJson); + //} + + var json = SimpleJson.SerializeObject(jsonObject); + writer.Write(json); + } } +#if false /// /// Loads an intermediate from a path on disk. /// @@ -84,9 +242,9 @@ namespace WixToolset.Data { Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - using (FileStream stream = File.Create(path)) - using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixobj, null)) - using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) + using (var stream = File.Create(path)) + using (var fs = FileStructure.Create(stream, FileFormat.Wixobj, null)) + using (var writer = XmlWriter.Create(fs.GetDataStream())) { writer.WriteStartDocument(); this.Write(writer); @@ -185,5 +343,6 @@ namespace WixToolset.Data writer.WriteEndElement(); } +#endif } } diff --git a/src/WixToolset.Data/IntermediateField.cs b/src/WixToolset.Data/IntermediateField.cs new file mode 100644 index 00000000..eba0e1ab --- /dev/null +++ b/src/WixToolset.Data/IntermediateField.cs @@ -0,0 +1,70 @@ +// 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. + +namespace WixToolset.Data +{ + using System.Diagnostics; + using SimpleJson; + + [DebuggerDisplay("Name={Name,nq} Type={Type} Value={Value.AsString()}")] + public class IntermediateField + { + public IntermediateField(IntermediateFieldDefinition definition) + { + this.Definition = definition; + } + + public IntermediateFieldDefinition Definition { get; } + + public string Name => this.Definition.Name; + + public IntermediateFieldType Type => this.Definition.Type; + + public string Context => this.Value?.Context; + + public IntermediateFieldValue PreviousValue => this.Value?.PreviousValue; + + internal IntermediateFieldValue Value { get; set; } + + public static explicit operator bool(IntermediateField field) + { + return field.AsBool(); + } + + public static explicit operator bool? (IntermediateField field) + { + return field.AsNullableBool(); + } + + public static explicit operator int(IntermediateField field) + { + return field.AsNumber(); + } + + public static explicit operator int? (IntermediateField field) + { + return field.AsNullableNumber(); + } + + public static explicit operator string(IntermediateField field) + { + return field.AsString(); + } + + internal static IntermediateField Deserialize(IntermediateFieldDefinition definition, JsonObject jsonObject) + { + var field = new IntermediateField(definition); + + if (jsonObject != null) + { + field.Value = IntermediateFieldValue.Deserialize(jsonObject); + } + + return field; + } + + internal JsonObject Serialize() + { + return this.Value?.Serialize(); + } + } +} diff --git a/src/WixToolset.Data/IntermediateFieldContext.cs b/src/WixToolset.Data/IntermediateFieldContext.cs new file mode 100644 index 00000000..a29a63c4 --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldContext.cs @@ -0,0 +1,38 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public class IntermediateFieldContext : IDisposable + { + private string previous; + private bool disposed; + + public IntermediateFieldContext(string context) + { + this.previous = IntermediateFieldExtensions.valueContext; + + IntermediateFieldExtensions.valueContext = context; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + IntermediateFieldExtensions.valueContext = this.previous; + } + + this.disposed = true; + } + } + } +} diff --git a/src/WixToolset.Data/IntermediateFieldDefinition.cs b/src/WixToolset.Data/IntermediateFieldDefinition.cs new file mode 100644 index 00000000..c77a2ae8 --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldDefinition.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + public enum IntermediateFieldType + { + String, + Bool, + Number, + Path, + } + + public class IntermediateFieldDefinition + { + public IntermediateFieldDefinition(string name, IntermediateFieldType type) + { + this.Name = name; + this.Type = type; + } + + public string Name { get; } + + public IntermediateFieldType Type { get; } + } +} diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs new file mode 100644 index 00000000..c551b455 --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -0,0 +1,206 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public static class IntermediateFieldExtensions + { + [ThreadStatic] + internal static string valueContext; + + public static IntermediateField Set(this IntermediateField field, object value) + { + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + else if (value == null) + { + // Null is always allowed. + } + else if (field.Type == IntermediateFieldType.Bool && !(value is bool)) + { + throw new ArgumentException(nameof(value)); + } + else if (field.Type == IntermediateFieldType.Number && !(value is int)) + { + throw new ArgumentException(nameof(value)); + } + else if (field.Type == IntermediateFieldType.String && !(value is string)) + { + throw new ArgumentException(nameof(value)); + } + else if (field.Type == IntermediateFieldType.Path && !(value is IntermediateFieldPathValue || value is string)) + { + throw new ArgumentException(nameof(value)); + } + + if (field.Type == IntermediateFieldType.Path && value != null && value is string) + { + value = new IntermediateFieldPathValue { Path = (string)value }; + } + + field.Value = new IntermediateFieldValue + { + Context = valueContext, + Data = value, + PreviousValue = field.Value + }; + + return field; + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, object value) + { + if (field == null) + { + field = new IntermediateField(definition); + } + + return field.Set(value); + } + + public static bool AsBool(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return false; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool(); + + case IntermediateFieldType.Number: + return field.Value.AsNumber() != 0; + + case IntermediateFieldType.String: + return !String.IsNullOrEmpty(field.Value.AsString()); + + case IntermediateFieldType.Path: + return !String.IsNullOrEmpty(field.Value.AsPath()?.Path); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); + } + } + + public static bool? AsNullableBool(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool(); + + case IntermediateFieldType.Number: + return field.Value.AsNumber() != 0; + + case IntermediateFieldType.String: + return !System.String.IsNullOrEmpty(field.Value.AsString()); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); + } + } + + + public static int AsNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return 0; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; + + case IntermediateFieldType.Number: + return field.Value.AsNumber(); + + case IntermediateFieldType.String: + return Convert.ToInt32(field.Value.AsString()); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); + } + } + + public static int? AsNullableNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; + + case IntermediateFieldType.Number: + return field.Value.AsNumber(); + + case IntermediateFieldType.String: + return Convert.ToInt32(field.Value.AsString()); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); + } + } + + public static IntermediateFieldPathValue AsPath(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.String: + return new IntermediateFieldPathValue { Path = field.Value.AsString() }; + + case IntermediateFieldType.Path: + return field.Value.AsPath(); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); + } + } + + public static string AsString(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? "true" : "false"; + + case IntermediateFieldType.Number: + return field.Value.AsNumber().ToString(); + + case IntermediateFieldType.String: + return field.Value.AsString(); + + case IntermediateFieldType.Path: + return field.Value.AsPath()?.Path; + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); + } + } + } +} diff --git a/src/WixToolset.Data/IntermediateFieldPathValue.cs b/src/WixToolset.Data/IntermediateFieldPathValue.cs new file mode 100644 index 00000000..7d4fcdfe --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldPathValue.cs @@ -0,0 +1,27 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public class IntermediateFieldPathValue + { + /// + /// Gets or sets the index of the embedded file in a library. + /// + /// The index of the embedded file. + public int? EmbeddedFileIndex { get; set; } + + /// + /// Gets the base URI of the path field. + /// + /// The base URI of the path field. + public Uri BaseUri { get; set; } + + /// + /// Gets or sets the data for this field. + /// + /// Data in the field. + public string Path { get; set; } + } +} diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs new file mode 100644 index 00000000..2064afec --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldValue.cs @@ -0,0 +1,131 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using SimpleJson; + + [DebuggerDisplay("{Data}")] + public class IntermediateFieldValue + { + public string Context { get; internal set; } + + internal object Data { get; set; } + + public IntermediateFieldValue PreviousValue { get; internal set; } + + public static explicit operator bool(IntermediateFieldValue value) + { + return value.AsBool(); + } + + public static explicit operator bool? (IntermediateFieldValue value) + { + return value.AsNullableBool(); + } + + public static explicit operator int(IntermediateFieldValue value) + { + return value.AsNumber(); + } + + public static explicit operator int? (IntermediateFieldValue value) + { + return value.AsNullableNumber(); + } + + public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) + { + return value.AsPath(); + } + + public static explicit operator string(IntermediateFieldValue value) + { + return value.AsString(); + } + + internal static IntermediateFieldValue Deserialize(JsonObject jsonObject) + { + var context = jsonObject.GetValueOrDefault("context"); + if (!jsonObject.TryGetValue("data", out var data)) + { + throw new ArgumentException(); + } + + var value = data; + + if (data is JsonObject jsonData) + { + Uri baseUri = null; + + if (jsonData.TryGetValue("baseUri", out var baseUriValue) && baseUriValue is string) + { + baseUri = new Uri((string)baseUriValue); + } + jsonData.TryGetValue("embeddedIndex", out var embeddedIndex); + + value = new IntermediateFieldPathValue + { + BaseUri = baseUri, + EmbeddedFileIndex = (int?)embeddedIndex, + Path = jsonData.GetValueOrDefault("path"), + }; + } + + var previousValueJson = jsonObject.GetValueOrDefault("prev"); + var previousValue = (previousValueJson == null) ? null : IntermediateFieldValue.Deserialize(previousValueJson); + + return new IntermediateFieldValue + { + Context = context, + Data = value, + PreviousValue = previousValue + }; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject(); + + if (!String.IsNullOrEmpty(this.Context)) + { + jsonObject.Add("context", this.Context); + } + + if (this.Data is IntermediateFieldPathValue pathField) + { + var jsonData = new JsonObject(); + + if (pathField.BaseUri != null) + { + jsonData.Add("baseUri", pathField.BaseUri.AbsoluteUri); + } + + if (pathField.EmbeddedFileIndex.HasValue) + { + jsonData.Add("embeddedIndex", pathField.EmbeddedFileIndex.Value); + } + + if (!String.IsNullOrEmpty(pathField.Path)) + { + jsonData.Add("path", pathField.Path); + } + + jsonObject.Add("data", jsonData); + } + else + { + jsonObject.Add("data", this.Data); + } + + if (this.PreviousValue != null) + { + var previousValueJson = this.PreviousValue.Serialize(); + jsonObject.Add("prev", previousValueJson); + } + + return jsonObject; + } + } +} diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs new file mode 100644 index 00000000..bc106d4b --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs @@ -0,0 +1,37 @@ +// 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. + +namespace WixToolset.Data +{ + public static class IntermediateFieldValueExtensions + { + public static bool AsBool(this IntermediateFieldValue value) + { + return value?.Data == null ? false : (bool)value.Data; + } + + public static bool? AsNullableBool(this IntermediateFieldValue value) + { + return (bool?)value?.Data; + } + + public static int AsNumber(this IntermediateFieldValue value) + { + return value?.Data == null ? 0 : (int)value.Data; + } + + public static int? AsNullableNumber(this IntermediateFieldValue value) + { + return (int?)value?.Data; + } + + public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) + { + return (IntermediateFieldPathValue)value?.Data; + } + + public static string AsString(this IntermediateFieldValue value) + { + return (string)value?.Data; + } + } +} diff --git a/src/WixToolset.Data/IntermediateSection.cs b/src/WixToolset.Data/IntermediateSection.cs new file mode 100644 index 00000000..2b1f7375 --- /dev/null +++ b/src/WixToolset.Data/IntermediateSection.cs @@ -0,0 +1,118 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using SimpleJson; + + /// + /// Section in an intermediate file. + /// + public class IntermediateSection + { + /// + /// Creates a new section as part of an intermediate. + /// + /// Identifier for section. + /// Type of section. + /// Codepage for resulting database. + public IntermediateSection(string id, SectionType type, int codepage) + { + this.Id = id; + this.Type = type; + this.Codepage = codepage; + this.Tuples = new List(); + } + + /// + /// Gets the identifier for the section. + /// + /// Section identifier. + public string Id { get; } + + /// + /// Gets the type of the section. + /// + /// Type of section. + public SectionType Type { get; } + + /// + /// Gets the codepage for the section. + /// + /// Codepage for the section. + public int Codepage { get; set; } + + /// + /// Gets and sets the identifier of the compilation of the source file containing the section. + /// + public string CompilationId { get; set; } + + /// + /// Gets and sets the identifier of the library that combined the section. + /// + public string LibraryId { get; set; } + + /// + /// Tuples in the section. + /// + public IList Tuples { get; } + + /// + /// Parse a section from the JSON data. + /// + internal static IntermediateSection Deserialize(ITupleDefinitionCreator creator, JsonObject jsonObject) + { + var codepage = jsonObject.GetValueOrDefault("codepage", 0); + var id = jsonObject.GetValueOrDefault("id"); + var type = jsonObject.GetEnumOrDefault("type", SectionType.Unknown); + var tuplesJson = jsonObject.GetValueOrDefault("tuples"); + + if (null == id && (SectionType.Unknown != type && SectionType.Fragment != type)) + { + throw new ArgumentException("JSON object is not a valid section"); + } + + if (SectionType.Unknown == type) + { + throw new ArgumentException("JSON object is not a valid section", nameof(type)); + } + + var section = new IntermediateSection(id, type, codepage); + + foreach (JsonObject tupleJson in tuplesJson) + { + var tuple = IntermediateTuple.Deserialize(creator, tupleJson); + section.Tuples.Add(tuple); + } + + return section; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "type", this.Type.ToString().ToLowerInvariant() }, + { "codepage", this.Codepage } + }; + + if (!String.IsNullOrEmpty(this.Id)) + { + jsonObject.Add("id", this.Id); + } + + var tuplesJson = new JsonArray(this.Tuples.Count); + + foreach (var tuple in this.Tuples) + { + var tupleJson = tuple.Serialize(); + tuplesJson.Add(tupleJson); + } + + jsonObject.Add("tuples", tuplesJson); + + return jsonObject; + } + } +} diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs new file mode 100644 index 00000000..36cee2aa --- /dev/null +++ b/src/WixToolset.Data/IntermediateTuple.cs @@ -0,0 +1,70 @@ +// 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. + +namespace WixToolset.Data +{ + using SimpleJson; + + public class IntermediateTuple + { + //public IntermediateTuple(IntermediateTupleDefinition definition) : this(definition, null, null) + //{ + //} + + public IntermediateTuple(IntermediateTupleDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) + { + this.Definition = definition; + this.Fields = new IntermediateField[definition.FieldDefinitions.Length]; + this.SourceLineNumbers = sourceLineNumber; + this.Id = id; + } + + public IntermediateTupleDefinition Definition { get; } + + public IntermediateField[] Fields { get; } + + public SourceLineNumber SourceLineNumbers { get; set; } + + public Identifier Id { get; set; } + + public IntermediateField this[int index] => this.Fields[index]; + + internal static IntermediateTuple Deserialize(ITupleDefinitionCreator creator, JsonObject jsonObject) + { + var definitionName = jsonObject.GetValueOrDefault("def"); + var fieldsJson = jsonObject.GetValueOrDefault("fields"); + + creator.TryGetTupleDefinitionByName(definitionName, out var definition); // TODO: this isn't sufficient. + var tuple = definition.CreateTuple(); + + for (var i = 0; i < fieldsJson.Count; ++i) + { + if (tuple.Fields.Length > i && fieldsJson[i] is JsonObject fieldJson) + { + tuple.Fields[i] = IntermediateField.Deserialize(tuple.Definition.FieldDefinitions[i], fieldJson); + } + } + + return tuple; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "def", this.Definition.Name } + }; + + var fieldsJson = new JsonArray(this.Fields.Length); + + foreach (var field in this.Fields) + { + var fieldJson = field?.Serialize(); + fieldsJson.Add(fieldJson); + } + + jsonObject.Add("fields", fieldsJson); + + return jsonObject; + } + } +} diff --git a/src/WixToolset.Data/IntermediateTupleDefinition.cs b/src/WixToolset.Data/IntermediateTupleDefinition.cs new file mode 100644 index 00000000..5658cfe9 --- /dev/null +++ b/src/WixToolset.Data/IntermediateTupleDefinition.cs @@ -0,0 +1,47 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public class IntermediateTupleDefinition + { + public IntermediateTupleDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) + : this(TupleDefinitionType.MustBeFromAnExtension, name, fieldDefinitions, strongTupleType) + { + } + + internal IntermediateTupleDefinition(TupleDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) + : this(type, type.ToString(), fieldDefinitions, strongTupleType) + { + } + + private IntermediateTupleDefinition(TupleDefinitionType type, string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) + { + this.Type = type; + this.Name = name; + this.FieldDefinitions = fieldDefinitions; + this.StrongTupleType = strongTupleType ?? typeof(IntermediateTuple); +#if DEBUG + if (!this.StrongTupleType.IsSubclassOf(typeof(IntermediateTuple))) throw new ArgumentException(nameof(strongTupleType)); +#endif + } + + public TupleDefinitionType Type { get; } + + public string Name { get; } + + public IntermediateFieldDefinition[] FieldDefinitions { get; } + + private Type StrongTupleType { get; } + + public IntermediateTuple CreateTuple(SourceLineNumber sourceLineNumber = null, Identifier id = null) + { + var result = (this.StrongTupleType == typeof(IntermediateTuple)) ? (IntermediateTuple)Activator.CreateInstance(this.StrongTupleType, this) : (IntermediateTuple)Activator.CreateInstance(this.StrongTupleType); + result.SourceLineNumbers = sourceLineNumber; + result.Id = id; + + return result; + } + } +} diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs new file mode 100644 index 00000000..9865c06a --- /dev/null +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs @@ -0,0 +1,41 @@ +// 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. + +namespace WixToolset.Data +{ + public static class IntermediateTupleExtensions + { + public static IntermediateField Set(this IntermediateTuple tuple, int index, object value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); ; + + return tuple.Fields[index] = field; + } + + public static bool AsBool(this IntermediateTuple tuple, int index) + { + return tuple?.Fields[index].AsBool() ?? false; + } + + public static bool? AsNullableBool(this IntermediateTuple tuple, int index) + { + return tuple?.Fields[index].AsNullableBool(); + } + + public static int AsNumber(this IntermediateTuple tuple, int index) + { + return tuple?.Fields[index].AsNumber() ?? 0; + } + + public static int? AsNullableNumber(this IntermediateTuple tuple, int index) + { + return tuple?.Fields[index].AsNullableNumber(); + } + + public static string AsString(this IntermediateTuple tuple, int index) + { + return tuple?.Fields[index].AsString(); + } + } +} diff --git a/src/WixToolset.Data/Json/JsonObjectExtensions.cs b/src/WixToolset.Data/Json/JsonObjectExtensions.cs new file mode 100644 index 00000000..091d90f4 --- /dev/null +++ b/src/WixToolset.Data/Json/JsonObjectExtensions.cs @@ -0,0 +1,29 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using SimpleJson; + + internal static class JsonObjectExtensions + { + public static int GetValueOrDefault(this JsonObject jsonObject, string key, int defaultValue) + { + return jsonObject.TryGetValue(key, out var value) ? Convert.ToInt32(value) : defaultValue; + } + + public static T GetValueOrDefault(this JsonObject jsonObject, string key, T defaultValue = default(T)) where T : class + { + return jsonObject.TryGetValue(key, out var value) ? value as T: defaultValue; + } + + public static T GetEnumOrDefault(this JsonObject jsonObject, string key, T defaultValue) where T : struct + { +#if DEBUG + if (!typeof(T).IsEnum) throw new ArgumentException("This method is designed to only only support enums.", nameof(T)); +#endif + var value = jsonObject.GetValueOrDefault(key); + return Enum.TryParse(value, true, out T e) ? e : defaultValue; + } + } +} diff --git a/src/WixToolset.Data/Json/SimpleJson.cs b/src/WixToolset.Data/Json/SimpleJson.cs new file mode 100644 index 00000000..3d956f6e --- /dev/null +++ b/src/WixToolset.Data/Json/SimpleJson.cs @@ -0,0 +1,2127 @@ +//----------------------------------------------------------------------- +// +// Copyright (c) 2011, The Outercurve Foundation. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.opensource.org/licenses/mit-license.php +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Nathan Totten (ntotten.com), Jim Zimmerman (jimzimmerman.com) and Prabir Shrestha (prabir.me) +// https://github.com/facebook-csharp-sdk/simple-json +//----------------------------------------------------------------------- + +// VERSION: + +// NOTE: uncomment the following line to make SimpleJson class internal. +#define SIMPLE_JSON_INTERNAL + +// NOTE: uncomment the following line to make JsonArray and JsonObject class internal. +#define SIMPLE_JSON_OBJARRAYINTERNAL + +// NOTE: uncomment the following line to enable dynamic support. +//#define SIMPLE_JSON_DYNAMIC + +// NOTE: uncomment the following line to enable DataContract support. +//#define SIMPLE_JSON_DATACONTRACT + +// NOTE: uncomment the following line to enable IReadOnlyCollection and IReadOnlyList support. +//#define SIMPLE_JSON_READONLY_COLLECTIONS + +// NOTE: uncomment the following line to disable linq expressions/compiled lambda (better performance) instead of method.invoke(). +// define if you are using .net framework <= 3.0 or < WP7.5 +//#define SIMPLE_JSON_NO_LINQ_EXPRESSION + +// NOTE: uncomment the following line if you are compiling under Window Metro style application/library. +// usually already defined in properties +//#define NETFX_CORE; + +// If you are targetting WinStore, WP8 and NET4.5+ PCL make sure to #define SIMPLE_JSON_TYPEINFO; + +// original json parsing code from http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html + +#if NETFX_CORE +#define SIMPLE_JSON_TYPEINFO +#endif + +using System; +using System.CodeDom.Compiler; +using System.Collections; +using System.Collections.Generic; +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION +using System.Linq.Expressions; +#endif +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +#if SIMPLE_JSON_DYNAMIC +using System.Dynamic; +#endif +using System.Globalization; +using System.Reflection; +using System.Runtime.Serialization; +using System.Text; +using SimpleJson.Reflection; + +// ReSharper disable LoopCanBeConvertedToQuery +// ReSharper disable RedundantExplicitArrayCreation +// ReSharper disable SuggestUseVarKeywordEvident +namespace SimpleJson +{ + /// + /// Represents the json array. + /// + [GeneratedCode("simple-json", "1.0.0")] + [EditorBrowsable(EditorBrowsableState.Never)] + [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] +#if SIMPLE_JSON_OBJARRAYINTERNAL + internal +#else + public +#endif + class JsonArray : List + { + /// + /// Initializes a new instance of the class. + /// + public JsonArray() { } + + /// + /// Initializes a new instance of the class. + /// + /// The capacity of the json array. + public JsonArray(int capacity) : base(capacity) { } + + /// + /// The json representation of the array. + /// + /// The json representation of the array. + public override string ToString() + { + return SimpleJson.SerializeObject(this) ?? string.Empty; + } + } + + /// + /// Represents the json object. + /// + [GeneratedCode("simple-json", "1.0.0")] + [EditorBrowsable(EditorBrowsableState.Never)] + [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] +#if SIMPLE_JSON_OBJARRAYINTERNAL + internal +#else + public +#endif + class JsonObject : +#if SIMPLE_JSON_DYNAMIC + DynamicObject, +#endif + IDictionary + { + /// + /// The internal member dictionary. + /// + private readonly Dictionary _members; + + /// + /// Initializes a new instance of . + /// + public JsonObject() + { + _members = new Dictionary(); + } + + /// + /// Initializes a new instance of . + /// + /// The implementation to use when comparing keys, or null to use the default for the type of the key. + public JsonObject(IEqualityComparer comparer) + { + _members = new Dictionary(comparer); + } + + /// + /// Gets the at the specified index. + /// + /// + public object this[int index] + { + get { return GetAtIndex(_members, index); } + } + + internal static object GetAtIndex(IDictionary obj, int index) + { + if (obj == null) + throw new ArgumentNullException("obj"); + if (index >= obj.Count) + throw new ArgumentOutOfRangeException("index"); + int i = 0; + foreach (KeyValuePair o in obj) + if (i++ == index) return o.Value; + return null; + } + + /// + /// Adds the specified key. + /// + /// The key. + /// The value. + public void Add(string key, object value) + { + _members.Add(key, value); + } + + /// + /// Determines whether the specified key contains key. + /// + /// The key. + /// + /// true if the specified key contains key; otherwise, false. + /// + public bool ContainsKey(string key) + { + return _members.ContainsKey(key); + } + + /// + /// Gets the keys. + /// + /// The keys. + public ICollection Keys + { + get { return _members.Keys; } + } + + /// + /// Removes the specified key. + /// + /// The key. + /// + public bool Remove(string key) + { + return _members.Remove(key); + } + + /// + /// Tries the get value. + /// + /// The key. + /// The value. + /// + public bool TryGetValue(string key, out object value) + { + return _members.TryGetValue(key, out value); + } + + /// + /// Gets the values. + /// + /// The values. + public ICollection Values + { + get { return _members.Values; } + } + + /// + /// Gets or sets the with the specified key. + /// + /// + public object this[string key] + { + get { return _members[key]; } + set { _members[key] = value; } + } + + /// + /// Adds the specified item. + /// + /// The item. + public void Add(KeyValuePair item) + { + _members.Add(item.Key, item.Value); + } + + /// + /// Clears this instance. + /// + public void Clear() + { + _members.Clear(); + } + + /// + /// Determines whether [contains] [the specified item]. + /// + /// The item. + /// + /// true if [contains] [the specified item]; otherwise, false. + /// + public bool Contains(KeyValuePair item) + { + return _members.ContainsKey(item.Key) && _members[item.Key] == item.Value; + } + + /// + /// Copies to. + /// + /// The array. + /// Index of the array. + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + if (array == null) throw new ArgumentNullException("array"); + int num = Count; + foreach (KeyValuePair kvp in this) + { + array[arrayIndex++] = kvp; + if (--num <= 0) + return; + } + } + + /// + /// Gets the count. + /// + /// The count. + public int Count + { + get { return _members.Count; } + } + + /// + /// Gets a value indicating whether this instance is read only. + /// + /// + /// true if this instance is read only; otherwise, false. + /// + public bool IsReadOnly + { + get { return false; } + } + + /// + /// Removes the specified item. + /// + /// The item. + /// + public bool Remove(KeyValuePair item) + { + return _members.Remove(item.Key); + } + + /// + /// Gets the enumerator. + /// + /// + public IEnumerator> GetEnumerator() + { + return _members.GetEnumerator(); + } + + /// + /// Returns an enumerator that iterates through a collection. + /// + /// + /// An object that can be used to iterate through the collection. + /// + IEnumerator IEnumerable.GetEnumerator() + { + return _members.GetEnumerator(); + } + + /// + /// Returns a json that represents the current . + /// + /// + /// A json that represents the current . + /// + public override string ToString() + { + return SimpleJson.SerializeObject(this); + } + +#if SIMPLE_JSON_DYNAMIC + /// + /// Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. + /// + /// Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. + /// The result of the type conversion operation. + /// + /// Alwasy returns true. + /// + public override bool TryConvert(ConvertBinder binder, out object result) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + Type targetType = binder.Type; + + if ((targetType == typeof(IEnumerable)) || + (targetType == typeof(IEnumerable>)) || + (targetType == typeof(IDictionary)) || + (targetType == typeof(IDictionary))) + { + result = this; + return true; + } + + return base.TryConvert(binder, out result); + } + + /// + /// Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. + /// + /// Provides information about the deletion. + /// + /// Alwasy returns true. + /// + public override bool TryDeleteMember(DeleteMemberBinder binder) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + return _members.Remove(binder.Name); + } + + /// + /// Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + /// + /// Provides information about the operation. + /// The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3. + /// The result of the index operation. + /// + /// Alwasy returns true. + /// + public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) + { + if (indexes == null) throw new ArgumentNullException("indexes"); + if (indexes.Length == 1) + { + result = ((IDictionary)this)[(string)indexes[0]]; + return true; + } + result = null; + return true; + } + + /// + /// Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + /// + /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + /// The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + /// + /// Alwasy returns true. + /// + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + object value; + if (_members.TryGetValue(binder.Name, out value)) + { + result = value; + return true; + } + result = null; + return true; + } + + /// + /// Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + /// + /// Provides information about the operation. + /// The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + /// The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + /// + /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + /// + public override bool TrySetIndex(SetIndexBinder binder, object[] indexes, object value) + { + if (indexes == null) throw new ArgumentNullException("indexes"); + if (indexes.Length == 1) + { + ((IDictionary)this)[(string)indexes[0]] = value; + return true; + } + return base.TrySetIndex(binder, indexes, value); + } + + /// + /// Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + /// + /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + /// The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + /// + /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + /// + public override bool TrySetMember(SetMemberBinder binder, object value) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + _members[binder.Name] = value; + return true; + } + + /// + /// Returns the enumeration of all dynamic member names. + /// + /// + /// A sequence that contains dynamic member names. + /// + public override IEnumerable GetDynamicMemberNames() + { + foreach (var key in Keys) + yield return key; + } +#endif + } +} + +namespace SimpleJson +{ + /// + /// This class encodes and decodes JSON strings. + /// Spec. details, see http://www.json.org/ + /// + /// JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + /// All numbers are parsed to doubles. + /// + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + static class SimpleJson + { + private const int TOKEN_NONE = 0; + private const int TOKEN_CURLY_OPEN = 1; + private const int TOKEN_CURLY_CLOSE = 2; + private const int TOKEN_SQUARED_OPEN = 3; + private const int TOKEN_SQUARED_CLOSE = 4; + private const int TOKEN_COLON = 5; + private const int TOKEN_COMMA = 6; + private const int TOKEN_STRING = 7; + private const int TOKEN_NUMBER = 8; + private const int TOKEN_TRUE = 9; + private const int TOKEN_FALSE = 10; + private const int TOKEN_NULL = 11; + private const int BUILDER_CAPACITY = 2000; + + private static readonly char[] EscapeTable; + private static readonly char[] EscapeCharacters = new char[] { '"', '\\', '\b', '\f', '\n', '\r', '\t' }; + private static readonly string EscapeCharactersString = new string(EscapeCharacters); + + static SimpleJson() + { + EscapeTable = new char[93]; + EscapeTable['"'] = '"'; + EscapeTable['\\'] = '\\'; + EscapeTable['\b'] = 'b'; + EscapeTable['\f'] = 'f'; + EscapeTable['\n'] = 'n'; + EscapeTable['\r'] = 'r'; + EscapeTable['\t'] = 't'; + } + + /// + /// Parses the string json into a value + /// + /// A JSON string. + /// An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + public static object DeserializeObject(string json) + { + object obj; + if (TryDeserializeObject(json, out obj)) + return obj; + throw new SerializationException("Invalid JSON string"); + } + + /// + /// Try parsing the json string into a value. + /// + /// + /// A JSON string. + /// + /// + /// The object. + /// + /// + /// Returns true if successfull otherwise false. + /// + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + public static bool TryDeserializeObject(string json, out object obj) + { + bool success = true; + if (json != null) + { + char[] charArray = json.ToCharArray(); + int index = 0; + obj = ParseValue(charArray, ref index, ref success); + } + else + obj = null; + + return success; + } + + public static object DeserializeObject(string json, Type type, IJsonSerializerStrategy jsonSerializerStrategy) + { + object jsonObject = DeserializeObject(json); + return type == null || jsonObject != null && ReflectionUtils.IsAssignableFrom(jsonObject.GetType(), type) + ? jsonObject + : (jsonSerializerStrategy ?? CurrentJsonSerializerStrategy).DeserializeObject(jsonObject, type); + } + + public static object DeserializeObject(string json, Type type) + { + return DeserializeObject(json, type, null); + } + + public static T DeserializeObject(string json, IJsonSerializerStrategy jsonSerializerStrategy) + { + return (T)DeserializeObject(json, typeof(T), jsonSerializerStrategy); + } + + public static T DeserializeObject(string json) + { + return (T)DeserializeObject(json, typeof(T), null); + } + + /// + /// Converts a IDictionary<string,object> / IList<object> object into a JSON string + /// + /// A IDictionary<string,object> / IList<object> + /// Serializer strategy to use + /// A JSON encoded string, or null if object 'json' is not serializable + public static string SerializeObject(object json, IJsonSerializerStrategy jsonSerializerStrategy) + { + StringBuilder builder = new StringBuilder(BUILDER_CAPACITY); + bool success = SerializeValue(jsonSerializerStrategy, json, builder); + return (success ? builder.ToString() : null); + } + + public static string SerializeObject(object json) + { + return SerializeObject(json, CurrentJsonSerializerStrategy); + } + + public static string EscapeToJavascriptString(string jsonString) + { + if (string.IsNullOrEmpty(jsonString)) + return jsonString; + + StringBuilder sb = new StringBuilder(); + char c; + + for (int i = 0; i < jsonString.Length;) + { + c = jsonString[i++]; + + if (c == '\\') + { + int remainingLength = jsonString.Length - i; + if (remainingLength >= 2) + { + char lookahead = jsonString[i]; + if (lookahead == '\\') + { + sb.Append('\\'); + ++i; + } + else if (lookahead == '"') + { + sb.Append("\""); + ++i; + } + else if (lookahead == 't') + { + sb.Append('\t'); + ++i; + } + else if (lookahead == 'b') + { + sb.Append('\b'); + ++i; + } + else if (lookahead == 'n') + { + sb.Append('\n'); + ++i; + } + else if (lookahead == 'r') + { + sb.Append('\r'); + ++i; + } + } + } + else + { + sb.Append(c); + } + } + return sb.ToString(); + } + + static IDictionary ParseObject(char[] json, ref int index, ref bool success) + { + IDictionary table = new JsonObject(); + int token; + + // { + NextToken(json, ref index); + + bool done = false; + while (!done) + { + token = LookAhead(json, index); + if (token == TOKEN_NONE) + { + success = false; + return null; + } + else if (token == TOKEN_COMMA) + NextToken(json, ref index); + else if (token == TOKEN_CURLY_CLOSE) + { + NextToken(json, ref index); + return table; + } + else + { + // name + string name = ParseString(json, ref index, ref success); + if (!success) + { + success = false; + return null; + } + // : + token = NextToken(json, ref index); + if (token != TOKEN_COLON) + { + success = false; + return null; + } + // value + object value = ParseValue(json, ref index, ref success); + if (!success) + { + success = false; + return null; + } + table[name] = value; + } + } + return table; + } + + static JsonArray ParseArray(char[] json, ref int index, ref bool success) + { + JsonArray array = new JsonArray(); + + // [ + NextToken(json, ref index); + + bool done = false; + while (!done) + { + int token = LookAhead(json, index); + if (token == TOKEN_NONE) + { + success = false; + return null; + } + else if (token == TOKEN_COMMA) + NextToken(json, ref index); + else if (token == TOKEN_SQUARED_CLOSE) + { + NextToken(json, ref index); + break; + } + else + { + object value = ParseValue(json, ref index, ref success); + if (!success) + return null; + array.Add(value); + } + } + return array; + } + + static object ParseValue(char[] json, ref int index, ref bool success) + { + switch (LookAhead(json, index)) + { + case TOKEN_STRING: + return ParseString(json, ref index, ref success); + case TOKEN_NUMBER: + return ParseNumber(json, ref index, ref success); + case TOKEN_CURLY_OPEN: + return ParseObject(json, ref index, ref success); + case TOKEN_SQUARED_OPEN: + return ParseArray(json, ref index, ref success); + case TOKEN_TRUE: + NextToken(json, ref index); + return true; + case TOKEN_FALSE: + NextToken(json, ref index); + return false; + case TOKEN_NULL: + NextToken(json, ref index); + return null; + case TOKEN_NONE: + break; + } + success = false; + return null; + } + + static string ParseString(char[] json, ref int index, ref bool success) + { + StringBuilder s = new StringBuilder(BUILDER_CAPACITY); + char c; + + EatWhitespace(json, ref index); + + // " + c = json[index++]; + bool complete = false; + while (!complete) + { + if (index == json.Length) + break; + + c = json[index++]; + if (c == '"') + { + complete = true; + break; + } + else if (c == '\\') + { + if (index == json.Length) + break; + c = json[index++]; + if (c == '"') + s.Append('"'); + else if (c == '\\') + s.Append('\\'); + else if (c == '/') + s.Append('/'); + else if (c == 'b') + s.Append('\b'); + else if (c == 'f') + s.Append('\f'); + else if (c == 'n') + s.Append('\n'); + else if (c == 'r') + s.Append('\r'); + else if (c == 't') + s.Append('\t'); + else if (c == 'u') + { + int remainingLength = json.Length - index; + if (remainingLength >= 4) + { + // parse the 32 bit hex into an integer codepoint + uint codePoint; + if (!(success = UInt32.TryParse(new string(json, index, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out codePoint))) + return ""; + + // convert the integer codepoint to a unicode char and add to string + if (0xD800 <= codePoint && codePoint <= 0xDBFF) // if high surrogate + { + index += 4; // skip 4 chars + remainingLength = json.Length - index; + if (remainingLength >= 6) + { + uint lowCodePoint; + if (new string(json, index, 2) == "\\u" && UInt32.TryParse(new string(json, index + 2, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out lowCodePoint)) + { + if (0xDC00 <= lowCodePoint && lowCodePoint <= 0xDFFF) // if low surrogate + { + s.Append((char)codePoint); + s.Append((char)lowCodePoint); + index += 6; // skip 6 chars + continue; + } + } + } + success = false; // invalid surrogate pair + return ""; + } + s.Append(ConvertFromUtf32((int)codePoint)); + // skip 4 chars + index += 4; + } + else + break; + } + } + else + s.Append(c); + } + if (!complete) + { + success = false; + return null; + } + return s.ToString(); + } + + private static string ConvertFromUtf32(int utf32) + { + // http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Char.cs.htm + if (utf32 < 0 || utf32 > 0x10FFFF) + throw new ArgumentOutOfRangeException("utf32", "The argument must be from 0 to 0x10FFFF."); + if (0xD800 <= utf32 && utf32 <= 0xDFFF) + throw new ArgumentOutOfRangeException("utf32", "The argument must not be in surrogate pair range."); + if (utf32 < 0x10000) + return new string((char)utf32, 1); + utf32 -= 0x10000; + return new string(new char[] { (char)((utf32 >> 10) + 0xD800), (char)(utf32 % 0x0400 + 0xDC00) }); + } + + static object ParseNumber(char[] json, ref int index, ref bool success) + { + EatWhitespace(json, ref index); + int lastIndex = GetLastIndexOfNumber(json, index); + int charLength = (lastIndex - index) + 1; + object returnNumber; + string str = new string(json, index, charLength); + if (str.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || str.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1) + { + double number; + success = double.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); + returnNumber = number; + } + else + { + long number; + success = long.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); + returnNumber = number; + } + index = lastIndex + 1; + return returnNumber; + } + + static int GetLastIndexOfNumber(char[] json, int index) + { + int lastIndex; + for (lastIndex = index; lastIndex < json.Length; lastIndex++) + if ("0123456789+-.eE".IndexOf(json[lastIndex]) == -1) break; + return lastIndex - 1; + } + + static void EatWhitespace(char[] json, ref int index) + { + for (; index < json.Length; index++) + if (" \t\n\r\b\f".IndexOf(json[index]) == -1) break; + } + + static int LookAhead(char[] json, int index) + { + int saveIndex = index; + return NextToken(json, ref saveIndex); + } + + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + static int NextToken(char[] json, ref int index) + { + EatWhitespace(json, ref index); + if (index == json.Length) + return TOKEN_NONE; + char c = json[index]; + index++; + switch (c) + { + case '{': + return TOKEN_CURLY_OPEN; + case '}': + return TOKEN_CURLY_CLOSE; + case '[': + return TOKEN_SQUARED_OPEN; + case ']': + return TOKEN_SQUARED_CLOSE; + case ',': + return TOKEN_COMMA; + case '"': + return TOKEN_STRING; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '-': + return TOKEN_NUMBER; + case ':': + return TOKEN_COLON; + } + index--; + int remainingLength = json.Length - index; + // false + if (remainingLength >= 5) + { + if (json[index] == 'f' && json[index + 1] == 'a' && json[index + 2] == 'l' && json[index + 3] == 's' && json[index + 4] == 'e') + { + index += 5; + return TOKEN_FALSE; + } + } + // true + if (remainingLength >= 4) + { + if (json[index] == 't' && json[index + 1] == 'r' && json[index + 2] == 'u' && json[index + 3] == 'e') + { + index += 4; + return TOKEN_TRUE; + } + } + // null + if (remainingLength >= 4) + { + if (json[index] == 'n' && json[index + 1] == 'u' && json[index + 2] == 'l' && json[index + 3] == 'l') + { + index += 4; + return TOKEN_NULL; + } + } + return TOKEN_NONE; + } + + static bool SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, object value, StringBuilder builder) + { + bool success = true; + string stringValue = value as string; + if (stringValue != null) + success = SerializeString(stringValue, builder); + else + { + IDictionary dict = value as IDictionary; + if (dict != null) + { + success = SerializeObject(jsonSerializerStrategy, dict.Keys, dict.Values, builder); + } + else + { + IDictionary stringDictionary = value as IDictionary; + if (stringDictionary != null) + { + success = SerializeObject(jsonSerializerStrategy, stringDictionary.Keys, stringDictionary.Values, builder); + } + else + { + IEnumerable enumerableValue = value as IEnumerable; + if (enumerableValue != null) + success = SerializeArray(jsonSerializerStrategy, enumerableValue, builder); + else if (IsNumeric(value)) + success = SerializeNumber(value, builder); + else if (value is bool) + builder.Append((bool)value ? "true" : "false"); + else if (value == null) + builder.Append("null"); + else + { + object serializedObject; + success = jsonSerializerStrategy.TrySerializeNonPrimitiveObject(value, out serializedObject); + if (success) + SerializeValue(jsonSerializerStrategy, serializedObject, builder); + } + } + } + } + return success; + } + + static bool SerializeObject(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable keys, IEnumerable values, StringBuilder builder) + { + builder.Append("{"); + IEnumerator ke = keys.GetEnumerator(); + IEnumerator ve = values.GetEnumerator(); + bool first = true; + while (ke.MoveNext() && ve.MoveNext()) + { + object key = ke.Current; + object value = ve.Current; + if (!first) + builder.Append(","); + string stringKey = key as string; + if (stringKey != null) + SerializeString(stringKey, builder); + else + if (!SerializeValue(jsonSerializerStrategy, value, builder)) return false; + builder.Append(":"); + if (!SerializeValue(jsonSerializerStrategy, value, builder)) + return false; + first = false; + } + builder.Append("}"); + return true; + } + + static bool SerializeArray(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable anArray, StringBuilder builder) + { + builder.Append("["); + bool first = true; + foreach (object value in anArray) + { + if (!first) + builder.Append(","); + if (!SerializeValue(jsonSerializerStrategy, value, builder)) + return false; + first = false; + } + builder.Append("]"); + return true; + } + + static bool SerializeString(string aString, StringBuilder builder) + { + // Happy path if there's nothing to be escaped. IndexOfAny is highly optimized (and unmanaged) + if (aString.IndexOfAny(EscapeCharacters) == -1) + { + builder.Append('"'); + builder.Append(aString); + builder.Append('"'); + + return true; + } + + builder.Append('"'); + int safeCharacterCount = 0; + char[] charArray = aString.ToCharArray(); + + for (int i = 0; i < charArray.Length; i++) + { + char c = charArray[i]; + + // Non ascii characters are fine, buffer them up and send them to the builder + // in larger chunks if possible. The escape table is a 1:1 translation table + // with \0 [default(char)] denoting a safe character. + if (c >= EscapeTable.Length || EscapeTable[c] == default(char)) + { + safeCharacterCount++; + } + else + { + if (safeCharacterCount > 0) + { + builder.Append(charArray, i - safeCharacterCount, safeCharacterCount); + safeCharacterCount = 0; + } + + builder.Append('\\'); + builder.Append(EscapeTable[c]); + } + } + + if (safeCharacterCount > 0) + { + builder.Append(charArray, charArray.Length - safeCharacterCount, safeCharacterCount); + } + + builder.Append('"'); + return true; + } + + static bool SerializeNumber(object number, StringBuilder builder) + { + if (number is long) + builder.Append(((long)number).ToString(CultureInfo.InvariantCulture)); + else if (number is ulong) + builder.Append(((ulong)number).ToString(CultureInfo.InvariantCulture)); + else if (number is int) + builder.Append(((int)number).ToString(CultureInfo.InvariantCulture)); + else if (number is uint) + builder.Append(((uint)number).ToString(CultureInfo.InvariantCulture)); + else if (number is decimal) + builder.Append(((decimal)number).ToString(CultureInfo.InvariantCulture)); + else if (number is float) + builder.Append(((float)number).ToString(CultureInfo.InvariantCulture)); + else + builder.Append(Convert.ToDouble(number, CultureInfo.InvariantCulture).ToString("r", CultureInfo.InvariantCulture)); + return true; + } + + /// + /// Determines if a given object is numeric in any way + /// (can be integer, double, null, etc). + /// + static bool IsNumeric(object value) + { + if (value is sbyte) return true; + if (value is byte) return true; + if (value is short) return true; + if (value is ushort) return true; + if (value is int) return true; + if (value is uint) return true; + if (value is long) return true; + if (value is ulong) return true; + if (value is float) return true; + if (value is double) return true; + if (value is decimal) return true; + return false; + } + + private static IJsonSerializerStrategy _currentJsonSerializerStrategy; + public static IJsonSerializerStrategy CurrentJsonSerializerStrategy + { + get + { + return _currentJsonSerializerStrategy ?? + (_currentJsonSerializerStrategy = +#if SIMPLE_JSON_DATACONTRACT + DataContractJsonSerializerStrategy +#else + PocoJsonSerializerStrategy +#endif +); + } + set + { + _currentJsonSerializerStrategy = value; + } + } + + private static PocoJsonSerializerStrategy _pocoJsonSerializerStrategy; + [EditorBrowsable(EditorBrowsableState.Advanced)] + public static PocoJsonSerializerStrategy PocoJsonSerializerStrategy + { + get + { + return _pocoJsonSerializerStrategy ?? (_pocoJsonSerializerStrategy = new PocoJsonSerializerStrategy()); + } + } + +#if SIMPLE_JSON_DATACONTRACT + + private static DataContractJsonSerializerStrategy _dataContractJsonSerializerStrategy; + [System.ComponentModel.EditorBrowsable(EditorBrowsableState.Advanced)] + public static DataContractJsonSerializerStrategy DataContractJsonSerializerStrategy + { + get + { + return _dataContractJsonSerializerStrategy ?? (_dataContractJsonSerializerStrategy = new DataContractJsonSerializerStrategy()); + } + } + +#endif + } + + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + interface IJsonSerializerStrategy + { + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + bool TrySerializeNonPrimitiveObject(object input, out object output); + object DeserializeObject(object value, Type type); + } + + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + class PocoJsonSerializerStrategy : IJsonSerializerStrategy + { + internal IDictionary ConstructorCache; + internal IDictionary> GetCache; + internal IDictionary>> SetCache; + + internal static readonly Type[] EmptyTypes = new Type[0]; + internal static readonly Type[] ArrayConstructorParameterTypes = new Type[] { typeof(int) }; + + private static readonly string[] Iso8601Format = new string[] + { + @"yyyy-MM-dd\THH:mm:ss.FFFFFFF\Z", + @"yyyy-MM-dd\THH:mm:ss\Z", + @"yyyy-MM-dd\THH:mm:ssK" + }; + + public PocoJsonSerializerStrategy() + { + ConstructorCache = new ReflectionUtils.ThreadSafeDictionary(ContructorDelegateFactory); + GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); + SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); + } + + protected virtual string MapClrMemberNameToJsonFieldName(string clrPropertyName) + { + return clrPropertyName; + } + + internal virtual ReflectionUtils.ConstructorDelegate ContructorDelegateFactory(Type key) + { + return ReflectionUtils.GetContructor(key, key.IsArray ? ArrayConstructorParameterTypes : EmptyTypes); + } + + internal virtual IDictionary GetterValueFactory(Type type) + { + IDictionary result = new Dictionary(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanRead) + { + MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); + if (getMethod.IsStatic || !getMethod.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = ReflectionUtils.GetGetMethod(propertyInfo); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (fieldInfo.IsStatic || !fieldInfo.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = ReflectionUtils.GetGetMethod(fieldInfo); + } + return result; + } + + internal virtual IDictionary> SetterValueFactory(Type type) + { + IDictionary> result = new Dictionary>(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanWrite) + { + MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); + if (setMethod.IsStatic || !setMethod.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (fieldInfo.IsInitOnly || fieldInfo.IsStatic || !fieldInfo.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); + } + return result; + } + + public virtual bool TrySerializeNonPrimitiveObject(object input, out object output) + { + return TrySerializeKnownTypes(input, out output) || TrySerializeUnknownTypes(input, out output); + } + + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual object DeserializeObject(object value, Type type) + { + if (type == null) throw new ArgumentNullException("type"); + string str = value as string; + + if (type == typeof(Guid) && string.IsNullOrEmpty(str)) + return default(Guid); + + if (value == null) + return null; + + object obj = null; + + if (str != null) + { + if (str.Length != 0) // We know it can't be null now. + { + if (type == typeof(DateTime) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTime))) + return DateTime.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); + if (type == typeof(DateTimeOffset) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTimeOffset))) + return DateTimeOffset.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); + if (type == typeof(Guid) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid))) + return new Guid(str); + if (type == typeof(Uri)) + { + bool isValid = Uri.IsWellFormedUriString(str, UriKind.RelativeOrAbsolute); + + Uri result; + if (isValid && Uri.TryCreate(str, UriKind.RelativeOrAbsolute, out result)) + return result; + + return null; + } + + if (type == typeof(string)) + return str; + + return Convert.ChangeType(str, type, CultureInfo.InvariantCulture); + } + else + { + if (type == typeof(Guid)) + obj = default(Guid); + else if (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) + obj = null; + else + obj = str; + } + // Empty string case + if (!ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) + return str; + } + else if (value is bool) + return value; + + bool valueIsLong = value is long; + bool valueIsDouble = value is double; + if ((valueIsLong && type == typeof(long)) || (valueIsDouble && type == typeof(double))) + return value; + if ((valueIsDouble && type != typeof(double)) || (valueIsLong && type != typeof(long))) + { + obj = type == typeof(int) || type == typeof(long) || type == typeof(double) || type == typeof(float) || type == typeof(bool) || type == typeof(decimal) || type == typeof(byte) || type == typeof(short) + ? Convert.ChangeType(value, type, CultureInfo.InvariantCulture) + : value; + } + else + { + IDictionary objects = value as IDictionary; + if (objects != null) + { + IDictionary jsonObject = objects; + + if (ReflectionUtils.IsTypeDictionary(type)) + { + // if dictionary then + Type[] types = ReflectionUtils.GetGenericTypeArguments(type); + Type keyType = types[0]; + Type valueType = types[1]; + + Type genericType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType); + + IDictionary dict = (IDictionary)ConstructorCache[genericType](); + + foreach (KeyValuePair kvp in jsonObject) + dict.Add(kvp.Key, DeserializeObject(kvp.Value, valueType)); + + obj = dict; + } + else + { + if (type == typeof(object)) + obj = value; + else + { + obj = ConstructorCache[type](); + foreach (KeyValuePair> setter in SetCache[type]) + { + object jsonValue; + if (jsonObject.TryGetValue(setter.Key, out jsonValue)) + { + jsonValue = DeserializeObject(jsonValue, setter.Value.Key); + setter.Value.Value(obj, jsonValue); + } + } + } + } + } + else + { + IList valueAsList = value as IList; + if (valueAsList != null) + { + IList jsonObject = valueAsList; + IList list = null; + + if (type.IsArray) + { + list = (IList)ConstructorCache[type](jsonObject.Count); + int i = 0; + foreach (object o in jsonObject) + list[i++] = DeserializeObject(o, type.GetElementType()); + } + else if (ReflectionUtils.IsTypeGenericeCollectionInterface(type) || ReflectionUtils.IsAssignableFrom(typeof(IList), type)) + { + Type innerType = ReflectionUtils.GetGenericListElementType(type); + list = (IList)(ConstructorCache[type] ?? ConstructorCache[typeof(List<>).MakeGenericType(innerType)])(jsonObject.Count); + foreach (object o in jsonObject) + list.Add(DeserializeObject(o, innerType)); + } + obj = list; + } + } + return obj; + } + if (ReflectionUtils.IsNullableType(type)) + return ReflectionUtils.ToNullableType(obj, type); + return obj; + } + + protected virtual object SerializeEnum(Enum p) + { + return Convert.ToDouble(p, CultureInfo.InvariantCulture); + } + + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + protected virtual bool TrySerializeKnownTypes(object input, out object output) + { + bool returnValue = true; + if (input is DateTime) + output = ((DateTime)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); + else if (input is DateTimeOffset) + output = ((DateTimeOffset)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); + else if (input is Guid) + output = ((Guid)input).ToString("D"); + else if (input is Uri) + output = input.ToString(); + else + { + Enum inputEnum = input as Enum; + if (inputEnum != null) + output = SerializeEnum(inputEnum); + else + { + returnValue = false; + output = null; + } + } + return returnValue; + } + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + protected virtual bool TrySerializeUnknownTypes(object input, out object output) + { + if (input == null) throw new ArgumentNullException("input"); + output = null; + Type type = input.GetType(); + if (type.FullName == null) + return false; + IDictionary obj = new JsonObject(); + IDictionary getters = GetCache[type]; + foreach (KeyValuePair getter in getters) + { + if (getter.Value != null) + obj.Add(MapClrMemberNameToJsonFieldName(getter.Key), getter.Value(input)); + } + output = obj; + return true; + } + } + +#if SIMPLE_JSON_DATACONTRACT + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + class DataContractJsonSerializerStrategy : PocoJsonSerializerStrategy + { + public DataContractJsonSerializerStrategy() + { + GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); + SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); + } + + internal override IDictionary GetterValueFactory(Type type) + { + bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; + if (!hasDataContract) + return base.GetterValueFactory(type); + string jsonKey; + IDictionary result = new Dictionary(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanRead) + { + MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); + if (!getMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) + result[jsonKey] = ReflectionUtils.GetGetMethod(propertyInfo); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (!fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) + result[jsonKey] = ReflectionUtils.GetGetMethod(fieldInfo); + } + return result; + } + + internal override IDictionary> SetterValueFactory(Type type) + { + bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; + if (!hasDataContract) + return base.SetterValueFactory(type); + string jsonKey; + IDictionary> result = new Dictionary>(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanWrite) + { + MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); + if (!setMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) + result[jsonKey] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (!fieldInfo.IsInitOnly && !fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) + result[jsonKey] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); + } + // todo implement sorting for DATACONTRACT. + return result; + } + + private static bool CanAdd(MemberInfo info, out string jsonKey) + { + jsonKey = null; + if (ReflectionUtils.GetAttribute(info, typeof(IgnoreDataMemberAttribute)) != null) + return false; + DataMemberAttribute dataMemberAttribute = (DataMemberAttribute)ReflectionUtils.GetAttribute(info, typeof(DataMemberAttribute)); + if (dataMemberAttribute == null) + return false; + jsonKey = string.IsNullOrEmpty(dataMemberAttribute.Name) ? info.Name : dataMemberAttribute.Name; + return true; + } + } + +#endif + + namespace Reflection + { + // This class is meant to be copied into other libraries. So we want to exclude it from Code Analysis rules + // that might be in place in the target project. + [GeneratedCode("reflection-utils", "1.0.0")] +#if SIMPLE_JSON_REFLECTION_UTILS_PUBLIC + public +#else + internal +#endif + class ReflectionUtils + { + private static readonly object[] EmptyObjects = new object[] { }; + + public delegate object GetDelegate(object source); + public delegate void SetDelegate(object source, object value); + public delegate object ConstructorDelegate(params object[] args); + + public delegate TValue ThreadSafeDictionaryValueFactory(TKey key); + +#if SIMPLE_JSON_TYPEINFO + public static TypeInfo GetTypeInfo(Type type) + { + return type.GetTypeInfo(); + } +#else + public static Type GetTypeInfo(Type type) + { + return type; + } +#endif + + public static Attribute GetAttribute(MemberInfo info, Type type) + { +#if SIMPLE_JSON_TYPEINFO + if (info == null || type == null || !info.IsDefined(type)) + return null; + return info.GetCustomAttribute(type); +#else + if (info == null || type == null || !Attribute.IsDefined(info, type)) + return null; + return Attribute.GetCustomAttribute(info, type); +#endif + } + + public static Type GetGenericListElementType(Type type) + { + IEnumerable interfaces; +#if SIMPLE_JSON_TYPEINFO + interfaces = type.GetTypeInfo().ImplementedInterfaces; +#else + interfaces = type.GetInterfaces(); +#endif + foreach (Type implementedInterface in interfaces) + { + if (IsTypeGeneric(implementedInterface) && + implementedInterface.GetGenericTypeDefinition() == typeof(IList<>)) + { + return GetGenericTypeArguments(implementedInterface)[0]; + } + } + return GetGenericTypeArguments(type)[0]; + } + + public static Attribute GetAttribute(Type objectType, Type attributeType) + { + +#if SIMPLE_JSON_TYPEINFO + if (objectType == null || attributeType == null || !objectType.GetTypeInfo().IsDefined(attributeType)) + return null; + return objectType.GetTypeInfo().GetCustomAttribute(attributeType); +#else + if (objectType == null || attributeType == null || !Attribute.IsDefined(objectType, attributeType)) + return null; + return Attribute.GetCustomAttribute(objectType, attributeType); +#endif + } + + public static Type[] GetGenericTypeArguments(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetTypeInfo().GenericTypeArguments; +#else + return type.GetGenericArguments(); +#endif + } + + public static bool IsTypeGeneric(Type type) + { + return GetTypeInfo(type).IsGenericType; + } + + public static bool IsTypeGenericeCollectionInterface(Type type) + { + if (!IsTypeGeneric(type)) + return false; + + Type genericDefinition = type.GetGenericTypeDefinition(); + + return (genericDefinition == typeof(IList<>) + || genericDefinition == typeof(ICollection<>) + || genericDefinition == typeof(IEnumerable<>) +#if SIMPLE_JSON_READONLY_COLLECTIONS + || genericDefinition == typeof(IReadOnlyCollection<>) + || genericDefinition == typeof(IReadOnlyList<>) +#endif + ); + } + + public static bool IsAssignableFrom(Type type1, Type type2) + { + return GetTypeInfo(type1).IsAssignableFrom(GetTypeInfo(type2)); + } + + public static bool IsTypeDictionary(Type type) + { +#if SIMPLE_JSON_TYPEINFO + if (typeof(IDictionary<,>).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo())) + return true; +#else + if (typeof(System.Collections.IDictionary).IsAssignableFrom(type)) + return true; +#endif + if (!GetTypeInfo(type).IsGenericType) + return false; + + Type genericDefinition = type.GetGenericTypeDefinition(); + return genericDefinition == typeof(IDictionary<,>); + } + + public static bool IsNullableType(Type type) + { + return GetTypeInfo(type).IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>); + } + + public static object ToNullableType(object obj, Type nullableType) + { + return obj == null ? null : Convert.ChangeType(obj, Nullable.GetUnderlyingType(nullableType), CultureInfo.InvariantCulture); + } + + public static bool IsValueType(Type type) + { + return GetTypeInfo(type).IsValueType; + } + + public static IEnumerable GetConstructors(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetTypeInfo().DeclaredConstructors; +#else + return type.GetConstructors(); +#endif + } + + public static ConstructorInfo GetConstructorInfo(Type type, params Type[] argsType) + { + IEnumerable constructorInfos = GetConstructors(type); + int i; + bool matches; + foreach (ConstructorInfo constructorInfo in constructorInfos) + { + ParameterInfo[] parameters = constructorInfo.GetParameters(); + if (argsType.Length != parameters.Length) + continue; + + i = 0; + matches = true; + foreach (ParameterInfo parameterInfo in constructorInfo.GetParameters()) + { + if (parameterInfo.ParameterType != argsType[i]) + { + matches = false; + break; + } + } + + if (matches) + return constructorInfo; + } + + return null; + } + + public static IEnumerable GetProperties(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetRuntimeProperties(); +#else + return type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); +#endif + } + + public static IEnumerable GetFields(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetRuntimeFields(); +#else + return type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); +#endif + } + + public static MethodInfo GetGetterMethodInfo(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_TYPEINFO + return propertyInfo.GetMethod; +#else + return propertyInfo.GetGetMethod(true); +#endif + } + + public static MethodInfo GetSetterMethodInfo(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_TYPEINFO + return propertyInfo.SetMethod; +#else + return propertyInfo.GetSetMethod(true); +#endif + } + + public static ConstructorDelegate GetContructor(ConstructorInfo constructorInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetConstructorByReflection(constructorInfo); +#else + return GetConstructorByExpression(constructorInfo); +#endif + } + + public static ConstructorDelegate GetContructor(Type type, params Type[] argsType) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetConstructorByReflection(type, argsType); +#else + return GetConstructorByExpression(type, argsType); +#endif + } + + public static ConstructorDelegate GetConstructorByReflection(ConstructorInfo constructorInfo) + { + return delegate (object[] args) { return constructorInfo.Invoke(args); }; + } + + public static ConstructorDelegate GetConstructorByReflection(Type type, params Type[] argsType) + { + ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); + return constructorInfo == null ? null : GetConstructorByReflection(constructorInfo); + } + +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION + + public static ConstructorDelegate GetConstructorByExpression(ConstructorInfo constructorInfo) + { + ParameterInfo[] paramsInfo = constructorInfo.GetParameters(); + ParameterExpression param = Expression.Parameter(typeof(object[]), "args"); + Expression[] argsExp = new Expression[paramsInfo.Length]; + for (int i = 0; i < paramsInfo.Length; i++) + { + Expression index = Expression.Constant(i); + Type paramType = paramsInfo[i].ParameterType; + Expression paramAccessorExp = Expression.ArrayIndex(param, index); + Expression paramCastExp = Expression.Convert(paramAccessorExp, paramType); + argsExp[i] = paramCastExp; + } + NewExpression newExp = Expression.New(constructorInfo, argsExp); + Expression> lambda = Expression.Lambda>(newExp, param); + Func compiledLambda = lambda.Compile(); + return delegate (object[] args) { return compiledLambda(args); }; + } + + public static ConstructorDelegate GetConstructorByExpression(Type type, params Type[] argsType) + { + ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); + return constructorInfo == null ? null : GetConstructorByExpression(constructorInfo); + } + +#endif + + public static GetDelegate GetGetMethod(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetGetMethodByReflection(propertyInfo); +#else + return GetGetMethodByExpression(propertyInfo); +#endif + } + + public static GetDelegate GetGetMethod(FieldInfo fieldInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetGetMethodByReflection(fieldInfo); +#else + return GetGetMethodByExpression(fieldInfo); +#endif + } + + public static GetDelegate GetGetMethodByReflection(PropertyInfo propertyInfo) + { + MethodInfo methodInfo = GetGetterMethodInfo(propertyInfo); + return delegate (object source) { return methodInfo.Invoke(source, EmptyObjects); }; + } + + public static GetDelegate GetGetMethodByReflection(FieldInfo fieldInfo) + { + return delegate (object source) { return fieldInfo.GetValue(source); }; + } + +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION + + public static GetDelegate GetGetMethodByExpression(PropertyInfo propertyInfo) + { + MethodInfo getMethodInfo = GetGetterMethodInfo(propertyInfo); + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); + Func compiled = Expression.Lambda>(Expression.TypeAs(Expression.Call(instanceCast, getMethodInfo), typeof(object)), instance).Compile(); + return delegate (object source) { return compiled(source); }; + } + + public static GetDelegate GetGetMethodByExpression(FieldInfo fieldInfo) + { + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + MemberExpression member = Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo); + GetDelegate compiled = Expression.Lambda(Expression.Convert(member, typeof(object)), instance).Compile(); + return delegate (object source) { return compiled(source); }; + } + +#endif + + public static SetDelegate GetSetMethod(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetSetMethodByReflection(propertyInfo); +#else + return GetSetMethodByExpression(propertyInfo); +#endif + } + + public static SetDelegate GetSetMethod(FieldInfo fieldInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetSetMethodByReflection(fieldInfo); +#else + return GetSetMethodByExpression(fieldInfo); +#endif + } + + public static SetDelegate GetSetMethodByReflection(PropertyInfo propertyInfo) + { + MethodInfo methodInfo = GetSetterMethodInfo(propertyInfo); + return delegate (object source, object value) { methodInfo.Invoke(source, new object[] { value }); }; + } + + public static SetDelegate GetSetMethodByReflection(FieldInfo fieldInfo) + { + return delegate (object source, object value) { fieldInfo.SetValue(source, value); }; + } + +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION + + public static SetDelegate GetSetMethodByExpression(PropertyInfo propertyInfo) + { + MethodInfo setMethodInfo = GetSetterMethodInfo(propertyInfo); + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + ParameterExpression value = Expression.Parameter(typeof(object), "value"); + UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); + UnaryExpression valueCast = (!IsValueType(propertyInfo.PropertyType)) ? Expression.TypeAs(value, propertyInfo.PropertyType) : Expression.Convert(value, propertyInfo.PropertyType); + Action compiled = Expression.Lambda>(Expression.Call(instanceCast, setMethodInfo, valueCast), new ParameterExpression[] { instance, value }).Compile(); + return delegate (object source, object val) { compiled(source, val); }; + } + + public static SetDelegate GetSetMethodByExpression(FieldInfo fieldInfo) + { + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + ParameterExpression value = Expression.Parameter(typeof(object), "value"); + Action compiled = Expression.Lambda>( + Assign(Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo), Expression.Convert(value, fieldInfo.FieldType)), instance, value).Compile(); + return delegate (object source, object val) { compiled(source, val); }; + } + + public static BinaryExpression Assign(Expression left, Expression right) + { +#if SIMPLE_JSON_TYPEINFO + return Expression.Assign(left, right); +#else + MethodInfo assign = typeof(Assigner<>).MakeGenericType(left.Type).GetMethod("Assign"); + BinaryExpression assignExpr = Expression.Add(left, right, assign); + return assignExpr; +#endif + } + + private static class Assigner + { + public static T Assign(ref T left, T right) + { + return (left = right); + } + } + +#endif + + public sealed class ThreadSafeDictionary : IDictionary + { + private readonly object _lock = new object(); + private readonly ThreadSafeDictionaryValueFactory _valueFactory; + private Dictionary _dictionary; + + public ThreadSafeDictionary(ThreadSafeDictionaryValueFactory valueFactory) + { + _valueFactory = valueFactory; + } + + private TValue Get(TKey key) + { + if (_dictionary == null) + return AddValue(key); + TValue value; + if (!_dictionary.TryGetValue(key, out value)) + return AddValue(key); + return value; + } + + private TValue AddValue(TKey key) + { + TValue value = _valueFactory(key); + lock (_lock) + { + if (_dictionary == null) + { + _dictionary = new Dictionary(); + _dictionary[key] = value; + } + else + { + TValue val; + if (_dictionary.TryGetValue(key, out val)) + return val; + Dictionary dict = new Dictionary(_dictionary); + dict[key] = value; + _dictionary = dict; + } + } + return value; + } + + public void Add(TKey key, TValue value) + { + throw new NotImplementedException(); + } + + public bool ContainsKey(TKey key) + { + return _dictionary.ContainsKey(key); + } + + public ICollection Keys + { + get { return _dictionary.Keys; } + } + + public bool Remove(TKey key) + { + throw new NotImplementedException(); + } + + public bool TryGetValue(TKey key, out TValue value) + { + value = this[key]; + return true; + } + + public ICollection Values + { + get { return _dictionary.Values; } + } + + public TValue this[TKey key] + { + get { return Get(key); } + set { throw new NotImplementedException(); } + } + + public void Add(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void Clear() + { + throw new NotImplementedException(); + } + + public bool Contains(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public int Count + { + get { return _dictionary.Count; } + } + + public bool IsReadOnly + { + get { throw new NotImplementedException(); } + } + + public bool Remove(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public IEnumerator> GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + } + + } + } +} +// ReSharper restore LoopCanBeConvertedToQuery +// ReSharper restore RedundantExplicitArrayCreation +// ReSharper restore SuggestUseVarKeywordEvident \ No newline at end of file diff --git a/src/WixToolset.Data/Library.cs b/src/WixToolset.Data/Library.cs index d82e64e0..13a670b0 100644 --- a/src/WixToolset.Data/Library.cs +++ b/src/WixToolset.Data/Library.cs @@ -15,6 +15,7 @@ namespace WixToolset.Data public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixlib"; private static readonly Version CurrentVersion = new Version("4.0.0.0"); +#if false private string id; private List embedFilePaths; private Dictionary localizations; @@ -186,7 +187,7 @@ namespace WixToolset.Data switch (reader.LocalName) { case "localization": - Localization localization = Localization.Read(reader, tableDefinitions); + Localization localization = Localization.Read(reader); library.localizations.Add(localization.Culture, localization); break; case "section": @@ -237,5 +238,6 @@ namespace WixToolset.Data writer.WriteEndElement(); } +#endif } } diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index 658ce14a..a5e2ba14 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs @@ -3,17 +3,10 @@ namespace WixToolset.Data { using System; - using System.Collections; using System.Collections.Generic; using System.Diagnostics; - using System.Diagnostics.CodeAnalysis; using System.Globalization; - using System.IO; - using System.Linq; - using System.Reflection; using System.Xml; - using System.Xml.Linq; - using System.Xml.Schema; using WixToolset.Data.Msi; using WixToolset.Data.Rows; @@ -24,17 +17,17 @@ namespace WixToolset.Data { private static string XmlElementName = "localization"; - private Dictionary variables = new Dictionary(); + private Dictionary variables = new Dictionary(); private Dictionary localizedControls = new Dictionary(); /// /// Instantiates a new localization object. /// - public Localization(int codepage, string culture, IDictionary variables, IDictionary localizedControls) + public Localization(int codepage, string culture, IDictionary variables, IDictionary localizedControls) { this.Codepage = codepage; this.Culture = String.IsNullOrEmpty(culture) ? String.Empty : culture.ToLowerInvariant(); - this.variables = new Dictionary(variables); + this.variables = new Dictionary(variables); this.localizedControls = new Dictionary(localizedControls); } @@ -54,19 +47,13 @@ namespace WixToolset.Data /// Gets the variables. /// /// The variables. - public ICollection Variables - { - get { return this.variables.Values; } - } + public ICollection Variables => this.variables.Values; /// /// Gets the localized controls. /// /// The localized controls. - public ICollection> LocalizedControls - { - get { return this.localizedControls; } - } + public ICollection> LocalizedControls => this.localizedControls; /// /// Merge the information from another localization object into this one. @@ -74,10 +61,9 @@ namespace WixToolset.Data /// The localization object to be merged into this one. public void Merge(Localization localization) { - foreach (WixVariableRow wixVariableRow in localization.Variables) + foreach (BindVariable wixVariableRow in localization.Variables) { - WixVariableRow existingWixVariableRow; - if (!this.variables.TryGetValue(wixVariableRow.Id, out existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) + if (!this.variables.TryGetValue(wixVariableRow.Id, out BindVariable existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) { variables[wixVariableRow.Id] = wixVariableRow; } @@ -94,7 +80,7 @@ namespace WixToolset.Data /// XmlReader where the intermediate is persisted. /// Collection containing TableDefinitions to use when loading the localization file. /// Returns the loaded localization. - internal static Localization Read(XmlReader reader, TableDefinitionCollection tableDefinitions) + internal static Localization Read(XmlReader reader) { Debug.Assert("localization" == reader.LocalName); @@ -115,8 +101,7 @@ namespace WixToolset.Data } } - TableDefinition wixVariableTable = tableDefinitions["WixVariable"]; - Dictionary variables = new Dictionary(); + Dictionary variables = new Dictionary(); Dictionary localizedControls = new Dictionary(); if (!empty) @@ -131,7 +116,7 @@ namespace WixToolset.Data switch (reader.LocalName) { case "string": - WixVariableRow row = Localization.ReadString(reader, wixVariableTable); + BindVariable row = Localization.ReadString(reader); variables.Add(row.Id, row); break; @@ -177,7 +162,7 @@ namespace WixToolset.Data writer.WriteAttributeString("culture", this.Culture); } - foreach (WixVariableRow wixVariableRow in this.variables.Values) + foreach (BindVariable wixVariableRow in this.variables.Values) { writer.WriteStartElement("string", Library.XmlNamespaceUri); @@ -265,7 +250,7 @@ namespace WixToolset.Data /// XmlReader where the intermediate is persisted. /// Collection containing TableDefinitions to use when loading the localization file. /// Returns the loaded localization. - private static WixVariableRow ReadString(XmlReader reader, TableDefinition wixVariableTable) + private static BindVariable ReadString(XmlReader reader) { Debug.Assert("string" == reader.LocalName); @@ -302,7 +287,8 @@ namespace WixToolset.Data } } - WixVariableRow wixVariableRow = new WixVariableRow(SourceLineNumber.CreateFromUri(reader.BaseURI), wixVariableTable); + BindVariable wixVariableRow = new BindVariable(); + wixVariableRow.SourceLineNumbers = SourceLineNumber.CreateFromUri(reader.BaseURI); wixVariableRow.Id = id; wixVariableRow.Overridable = overridable; wixVariableRow.Value = value; diff --git a/src/WixToolset.Data/Msi/MsiInterop.cs b/src/WixToolset.Data/Msi/MsiInterop.cs index 1a8ebbf0..e4dad358 100644 --- a/src/WixToolset.Data/Msi/MsiInterop.cs +++ b/src/WixToolset.Data/Msi/MsiInterop.cs @@ -2,25 +2,25 @@ namespace WixToolset.Data.Msi { - class MsiInterop + public class MsiInterop { // Patching constants internal const int MsiMaxStreamNameLength = 62; // http://msdn2.microsoft.com/library/aa370551.aspx // Component.Attributes - internal const int MsidbComponentAttributesLocalOnly = 0; - internal const int MsidbComponentAttributesSourceOnly = 1; - internal const int MsidbComponentAttributesOptional = 2; - internal const int MsidbComponentAttributesRegistryKeyPath = 4; - internal const int MsidbComponentAttributesSharedDllRefCount = 8; - internal const int MsidbComponentAttributesPermanent = 16; - internal const int MsidbComponentAttributesODBCDataSource = 32; - internal const int MsidbComponentAttributesTransitive = 64; - internal const int MsidbComponentAttributesNeverOverwrite = 128; - internal const int MsidbComponentAttributes64bit = 256; - internal const int MsidbComponentAttributesDisableRegistryReflection = 512; - internal const int MsidbComponentAttributesUninstallOnSupersedence = 1024; - internal const int MsidbComponentAttributesShared = 2048; + public const int MsidbComponentAttributesLocalOnly = 0; + public const int MsidbComponentAttributesSourceOnly = 1; + public const int MsidbComponentAttributesOptional = 2; + public const int MsidbComponentAttributesRegistryKeyPath = 4; + public const int MsidbComponentAttributesSharedDllRefCount = 8; + public const int MsidbComponentAttributesPermanent = 16; + public const int MsidbComponentAttributesODBCDataSource = 32; + public const int MsidbComponentAttributesTransitive = 64; + public const int MsidbComponentAttributesNeverOverwrite = 128; + public const int MsidbComponentAttributes64bit = 256; + public const int MsidbComponentAttributesDisableRegistryReflection = 512; + public const int MsidbComponentAttributesUninstallOnSupersedence = 1024; + public const int MsidbComponentAttributesShared = 2048; // BBControl.Attributes & Control.Attributes internal const int MsidbControlAttributesVisible = 0x00000001; @@ -141,14 +141,14 @@ namespace WixToolset.Data.Msi internal const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; // File.Attributes - internal const int MsidbFileAttributesReadOnly = 1; - internal const int MsidbFileAttributesHidden = 2; - internal const int MsidbFileAttributesSystem = 4; - internal const int MsidbFileAttributesVital = 512; - internal const int MsidbFileAttributesChecksum = 1024; - internal const int MsidbFileAttributesPatchAdded = 4096; - internal const int MsidbFileAttributesNoncompressed = 8192; - internal const int MsidbFileAttributesCompressed = 16384; + public const int MsidbFileAttributesReadOnly = 1; + public const int MsidbFileAttributesHidden = 2; + public const int MsidbFileAttributesSystem = 4; + public const int MsidbFileAttributesVital = 512; + public const int MsidbFileAttributesChecksum = 1024; + public const int MsidbFileAttributesPatchAdded = 4096; + public const int MsidbFileAttributesNoncompressed = 8192; + public const int MsidbFileAttributesCompressed = 16384; // IniFile.Action & RemoveIniFile.Action internal const int MsidbIniFileActionAddLine = 0; diff --git a/src/WixToolset.Data/NonClosingStreamWrapper.cs b/src/WixToolset.Data/NonClosingStreamWrapper.cs index 53d17d4d..a2d3be6a 100644 --- a/src/WixToolset.Data/NonClosingStreamWrapper.cs +++ b/src/WixToolset.Data/NonClosingStreamWrapper.cs @@ -18,88 +18,67 @@ namespace WixToolset.Data this.stream = stream; } - public override bool CanRead { get { return this.stream.CanRead; } } + public override bool CanRead => this.stream.CanRead; - public override bool CanSeek { get { return this.stream.CanSeek; } } + public override bool CanSeek => this.stream.CanSeek; - public override bool CanTimeout { get { return this.stream.CanTimeout; } } + public override bool CanTimeout => this.stream.CanTimeout; - public override bool CanWrite { get { return this.stream.CanWrite; } } + public override bool CanWrite => this.stream.CanWrite; - public override long Length { get { return this.stream.Length; } } + public override long Length => this.stream.Length; - public override long Position { get { return this.stream.Position; } set { this.stream.Position = value; } } - - public override int ReadTimeout { get { return this.stream.ReadTimeout; } set { this.stream.ReadTimeout = value; } } - - public override int WriteTimeout { get { return this.stream.WriteTimeout; } set { this.stream.WriteTimeout = value; } } - - public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) + public override long Position { - return this.stream.BeginRead(buffer, offset, count, callback, state); + get => this.stream.Position; + set => this.stream.Position = value; } - public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) + public override int ReadTimeout { - return this.stream.BeginWrite(buffer, offset, count, callback, state); + get => this.stream.ReadTimeout; + set => this.stream.ReadTimeout = value; } - public override void Close() + public override int WriteTimeout { - // Do not pass through the call since this is what we are overriding. + get => this.stream.WriteTimeout; + set => this.stream.WriteTimeout = value; } - protected override void Dispose(bool disposing) - { - if (disposing) - { - this.stream.Flush(); - } - } + public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginRead(buffer, offset, count, callback, state); - public override int EndRead(IAsyncResult asyncResult) - { - return this.stream.EndRead(asyncResult); - } + public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginWrite(buffer, offset, count, callback, state); - public override void EndWrite(IAsyncResult asyncResult) - { - this.stream.EndWrite(asyncResult); - } + public override int EndRead(IAsyncResult asyncResult) => this.stream.EndRead(asyncResult); - public override void Flush() - { - this.stream.Flush(); - } + public override void EndWrite(IAsyncResult asyncResult) => this.stream.EndWrite(asyncResult); - public override int Read(byte[] buffer, int offset, int count) - { - return this.stream.Read(buffer, offset, count); - } + public override void Flush() => this.stream.Flush(); - public override int ReadByte() - { - return this.stream.ReadByte(); - } + public override int Read(byte[] buffer, int offset, int count) => this.stream.Read(buffer, offset, count); - public override long Seek(long offset, SeekOrigin origin) - { - return this.stream.Seek(offset, origin); - } + public override int ReadByte() => this.stream.ReadByte(); - public override void SetLength(long value) - { - this.stream.SetLength(value); - } + public override long Seek(long offset, SeekOrigin origin) => this.stream.Seek(offset, origin); + + public override void SetLength(long value) => this.stream.SetLength(value); - public override void Write(byte[] buffer, int offset, int count) + public override void Write(byte[] buffer, int offset, int count) => this.stream.Write(buffer, offset, count); + + public override void WriteByte(byte value) => this.stream.WriteByte(value); + + public override void Close() { - this.stream.Write(buffer, offset, count); + // Do not pass through the call since this is what we are overriding. } - public override void WriteByte(byte value) + protected override void Dispose(bool disposing) { - this.stream.WriteByte(value); + if (disposing) + { + this.stream.Flush(); + } } } } diff --git a/src/WixToolset.Data/ObjectField.cs b/src/WixToolset.Data/ObjectField.cs deleted file mode 100644 index 42ef111b..00000000 --- a/src/WixToolset.Data/ObjectField.cs +++ /dev/null @@ -1,183 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Diagnostics; - using System.Globalization; - using System.Xml; - - /// - /// Field containing data for an object column in a row. - /// - public sealed class ObjectField : Field - { - /// - /// Instantiates a new Field. - /// - /// Column definition for this field. - internal ObjectField(ColumnDefinition columnDefinition) : - base(columnDefinition) - { - } - - /// - /// Gets or sets the index of the embedded file in a library. - /// - /// The index of the embedded file. - public int? EmbeddedFileIndex { get; set; } - - /// - /// Gets or sets the previous index of the embedded file in the library. - /// - /// The previous index of the embedded file. - public int? PreviousEmbeddedFileIndex { get; set; } - - /// - /// Gets or sets the path to the embedded cabinet of the previous file. - /// - /// The path of the cabinet containing the previous file. - public Uri PreviousBaseUri { get; set; } - - /// - /// Gets the base URI of the object field. - /// - /// The base URI of the object field. - public Uri BaseUri { get; private set; } - - /// - /// Gets or sets the unresolved data for this field. - /// - /// Unresolved Data in the field. - public string UnresolvedData { get; set; } - - /// - /// Gets or sets the unresolved previous data. - /// - /// The unresolved previous data. - public string UnresolvedPreviousData { get; set; } - - /// - /// Parse a field from the xml. - /// - /// XmlReader where the intermediate is persisted. - internal override void Read(XmlReader reader) - { - Debug.Assert("field" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - - this.BaseUri = new Uri(reader.BaseURI); - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "cabinetFileId": - this.EmbeddedFileIndex = Convert.ToInt32(reader.Value); - break; - case "modified": - this.Modified = reader.Value.Equals("yes"); - break; - case "previousData": - this.PreviousData = reader.Value; - break; - case "unresolvedPreviousData": - this.UnresolvedPreviousData = reader.Value; - break; - case "unresolvedData": - this.UnresolvedData = reader.Value; - break; - case "previousCabinetFileId": - this.PreviousEmbeddedFileIndex = Convert.ToInt32(reader.Value); - break; - } - } - - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - throw new XmlException(); - case XmlNodeType.CDATA: - case XmlNodeType.Text: - if (0 < reader.Value.Length) - { - this.Data = reader.Value; - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - } - - /// - /// Persists a field in an XML format. - /// - /// XmlWriter where the Field should persist itself as XML. - internal override void Write(XmlWriter writer) - { - writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); - - if (this.EmbeddedFileIndex.HasValue) - { - writer.WriteStartAttribute("cabinetFileId"); - writer.WriteValue(this.EmbeddedFileIndex); - writer.WriteEndAttribute(); - } - - if (this.Modified) - { - writer.WriteAttributeString("modified", "yes"); - } - - if (null != this.UnresolvedPreviousData) - { - writer.WriteAttributeString("unresolvedPreviousData", this.UnresolvedPreviousData); - } - - if (null != this.PreviousData) - { - writer.WriteAttributeString("previousData", this.PreviousData); - } - - if (null != this.UnresolvedData) - { - writer.WriteAttributeString("unresolvedData", this.UnresolvedData); - } - - if (this.PreviousEmbeddedFileIndex.HasValue) - { - writer.WriteStartAttribute("previousCabinetFileId"); - writer.WriteValue(this.PreviousEmbeddedFileIndex); - writer.WriteEndAttribute(); - } - - // Convert the data to a string that will persist nicely (nulls as String.Empty). - string text = Convert.ToString(this.Data, CultureInfo.InvariantCulture); - if (this.Column.UseCData) - { - writer.WriteCData(text); - } - else - { - writer.WriteString(text); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/Output.cs b/src/WixToolset.Data/Output.cs deleted file mode 100644 index b2a21c6c..00000000 --- a/src/WixToolset.Data/Output.cs +++ /dev/null @@ -1,394 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Xml; - - /// - /// Output is generated by the linker. - /// - public sealed class Output - { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixout"; - private static readonly Version CurrentVersion = new Version("4.0.0.0"); - - private Section entrySection; - - /// - /// Creates a new empty output object. - /// - /// The source line information for the output. - public Output(SourceLineNumber sourceLineNumbers) - { - this.Sections = new List
(); - this.SourceLineNumbers = sourceLineNumbers; - this.SubStorages = new List(); - this.Tables = new TableIndexedCollection(); - } - - /// - /// Gets the entry section for the output - /// - /// Entry section for the output. - public Section EntrySection - { - get - { - return this.entrySection; - } - - set - { - this.entrySection = value; - this.Codepage = value.Codepage; - - switch (this.entrySection.Type) - { - case SectionType.Bundle: - this.Type = OutputType.Bundle; - break; - case SectionType.Product: - this.Type = OutputType.Product; - break; - case SectionType.Module: - this.Type = OutputType.Module; - break; - case SectionType.PatchCreation: - this.Type = OutputType.PatchCreation; - break; - case SectionType.Patch: - this.Type = OutputType.Patch; - break; - default: - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_UnexpectedEntrySectionType, this.entrySection.Type)); - } - } - } - - /// - /// Gets the type of the output. - /// - /// Type of the output. - public OutputType Type { get; set; } - - /// - /// Gets or sets the codepage for this output. - /// - /// Codepage of the output. - public int Codepage { get; set; } - - /// - /// Gets the sections contained in the output. - /// - /// Sections in the output. - public ICollection
Sections { get; private set; } - - /// - /// Gets the source line information for this output. - /// - /// The source line information for this output. - public SourceLineNumber SourceLineNumbers { get; private set; } - - /// - /// Gets the substorages in this output. - /// - /// The substorages in this output. - public ICollection SubStorages { get; private set; } - - /// - /// Gets the tables contained in this output. - /// - /// Collection of tables. - public TableIndexedCollection Tables { get; private set; } - - /// - /// Gets the output type corresponding to a given output filename extension. - /// - /// Case-insensitive output filename extension. - /// Output type for the extension. - public static OutputType GetOutputType(string extension) - { - if (extension.Equals(".exe", StringComparison.OrdinalIgnoreCase)) - { - return OutputType.Bundle; - } - if (extension.Equals(".msi", StringComparison.OrdinalIgnoreCase)) - { - return OutputType.Product; - } - else if (extension.Equals(".msm", StringComparison.OrdinalIgnoreCase)) - { - return OutputType.Module; - } - else if (extension.Equals(".msp", StringComparison.OrdinalIgnoreCase)) - { - return OutputType.Patch; - } - else if (extension.Equals(".mst", StringComparison.OrdinalIgnoreCase)) - { - return OutputType.Transform; - } - else if (extension.Equals(".pcp", StringComparison.OrdinalIgnoreCase)) - { - return OutputType.PatchCreation; - } - else - { - return OutputType.Unknown; - } - } - - /// - /// Gets the filename extension corresponding to a given output type. - /// - /// One of the WiX output types. - /// Filename extension for the output type, for example ".msi". - public static string GetExtension(OutputType type) - { - switch (type) - { - case OutputType.Bundle: - return ".exe"; - case OutputType.Product: - return ".msi"; - case OutputType.Module: - return ".msm"; - case OutputType.Patch: - return ".msp"; - case OutputType.Transform: - return ".mst"; - case OutputType.PatchCreation: - return ".pcp"; - default: - return ".wix"; - } - } - - /// - /// Loads an output from a path on disk. - /// - /// Path to output file saved on disk. - /// Suppresses wix.dll version mismatch check. - /// Output object. - public static Output Load(string path, bool suppressVersionCheck) - { - using (FileStream stream = File.OpenRead(path)) - using (FileStructure fs = FileStructure.Read(stream)) - { - if (FileFormat.Wixout != fs.FileFormat) - { - throw new WixUnexpectedFileFormatException(path, FileFormat.Wixout, fs.FileFormat); - } - - Uri uri = new Uri(Path.GetFullPath(path)); - using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) - { - try - { - reader.MoveToContent(); - return Output.Read(reader, suppressVersionCheck); - } - catch (XmlException xe) - { - throw new WixCorruptFileException(path, fs.FileFormat, xe); - } - } - } - } - - /// - /// Saves an output to a path on disk. - /// - /// Path to save output file to on disk. - public void Save(string path) - { - Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - - using (FileStream stream = File.Create(path)) - using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixout, null)) - using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) - { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); - } - } - - /// - /// Processes an XmlReader and builds up the output object. - /// - /// Reader to get data from. - /// Suppresses wix.dll version mismatch check. - /// The Output represented by the Xml. - internal static Output Read(XmlReader reader, bool suppressVersionCheck) - { - if (!reader.LocalName.Equals("wixOutput")) - { - throw new XmlException(); - } - - bool empty = reader.IsEmptyElement; - Output output = new Output(SourceLineNumber.CreateFromUri(reader.BaseURI)); - SectionType sectionType = SectionType.Unknown; - Version version = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "codepage": - output.Codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture.NumberFormat); - break; - case "type": - switch (reader.Value) - { - case "Bundle": - output.Type = OutputType.Bundle; - sectionType = SectionType.Bundle; - break; - case "Module": - output.Type = OutputType.Module; - sectionType = SectionType.Module; - break; - case "Patch": - output.Type = OutputType.Patch; - break; - case "PatchCreation": - output.Type = OutputType.PatchCreation; - sectionType = SectionType.PatchCreation; - break; - case "Product": - output.Type = OutputType.Product; - sectionType = SectionType.Product; - break; - case "Transform": - output.Type = OutputType.Transform; - break; - default: - throw new XmlException(); - } - break; - case "version": - version = new Version(reader.Value); - break; - } - } - - if (!suppressVersionCheck && null != version && !Output.CurrentVersion.Equals(version)) - { - throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString())); - } - - // create a section for all the rows to belong to - output.entrySection = new Section(null, sectionType, output.Codepage); - - // loop through the rest of the xml building up the Output object - TableDefinitionCollection tableDefinitions = null; - List
tables = new List
(); - if (!empty) - { - bool done = false; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "subStorage": - output.SubStorages.Add(SubStorage.Read(reader)); - break; - case "table": - if (null == tableDefinitions) - { - throw new XmlException(); - } - tables.Add(Table.Read(reader, output.entrySection, tableDefinitions)); - break; - case "tableDefinitions": - tableDefinitions = TableDefinitionCollection.Read(reader); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - output.Tables = new TableIndexedCollection(tables); - return output; - } - - /// - /// Ensure this output contains a particular table. - /// - /// Definition of the table that should exist. - /// Optional section to use for the table. If one is not provided, the entry section will be used. - /// The table in this output. - public Table EnsureTable(TableDefinition tableDefinition, Section section = null) - { - Table table; - if (!this.Tables.TryGetTable(tableDefinition.Name, out table)) - { - table = new Table(section ?? this.entrySection, tableDefinition); - this.Tables.Add(table); - } - - return table; - } - - /// - /// Persists an output in an XML format. - /// - /// XmlWriter where the Output should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("wixOutput", XmlNamespaceUri); - - writer.WriteAttributeString("type", this.Type.ToString()); - - if (0 != this.Codepage) - { - writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); - } - - writer.WriteAttributeString("version", Output.CurrentVersion.ToString()); - - // Collect all the table definitions and write them. - TableDefinitionCollection tableDefinitions = new TableDefinitionCollection(); - foreach (Table table in this.Tables) - { - tableDefinitions.Add(table.Definition); - } - tableDefinitions.Write(writer); - - foreach (Table table in this.Tables.OrderBy(t => t.Name)) - { - table.Write(writer); - } - - foreach (SubStorage subStorage in this.SubStorages) - { - subStorage.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/Pdb.cs b/src/WixToolset.Data/Pdb.cs deleted file mode 100644 index 03c3ddbb..00000000 --- a/src/WixToolset.Data/Pdb.cs +++ /dev/null @@ -1,163 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.IO; - using System.Xml; - - /// - /// Pdb generated by the binder. - /// - public sealed class Pdb - { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixpdb"; - private static readonly Version CurrentVersion = new Version("4.0.0.0"); - - /// - /// Creates a new empty pdb object. - /// - /// The source line information for the pdb. - public Pdb() - { - } - - /// - /// Gets or sets the output that is a part of this pdb. - /// - /// Type of the output. - public Output Output { get; set; } - - /// - /// Loads a pdb from a path on disk. - /// - /// Path to pdb file saved on disk. - /// Suppresses wix.dll version mismatch check. - /// Pdb pdb. - public static Pdb Load(string path, bool suppressVersionCheck) - { - using (FileStream stream = File.OpenRead(path)) - using (FileStructure fs = FileStructure.Read(stream)) - { - if (FileFormat.Wixpdb != fs.FileFormat) - { - throw new WixUnexpectedFileFormatException(path, FileFormat.Wixpdb, fs.FileFormat); - } - - Uri uri = new Uri(Path.GetFullPath(path)); - using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) - { - try - { - reader.MoveToContent(); - return Pdb.Read(reader, suppressVersionCheck); - } - catch (XmlException xe) - { - throw new WixCorruptFileException(path, fs.FileFormat, xe); - } - } - } - } - - /// - /// Saves a pdb to a path on disk. - /// - /// Path to save pdb file to on disk. - public void Save(string path) - { - Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - - using (FileStream stream = File.Create(path)) - using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixpdb, null)) - using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) - { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); - } - } - - /// - /// Processes an XmlReader and builds up the pdb object. - /// - /// Reader to get data from. - /// Suppresses wix.dll version mismatch check. - /// The Pdb represented by the Xml. - internal static Pdb Read(XmlReader reader, bool suppressVersionCheck) - { - if ("wixPdb" != reader.LocalName) - { - throw new XmlException(); - } - - bool empty = reader.IsEmptyElement; - Pdb pdb = new Pdb(); - Version version = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "version": - version = new Version(reader.Value); - break; - } - } - - if (!suppressVersionCheck && null != version && !Pdb.CurrentVersion.Equals(version)) - { - throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString())); - } - - // loop through the rest of the pdb building up the Output object - if (!empty) - { - bool done = false; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "wixOutput": - pdb.Output = Output.Read(reader, suppressVersionCheck); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return pdb; - } - - /// - /// Persists a pdb in an XML format. - /// - /// XmlWriter where the Pdb should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("wixPdb", XmlNamespaceUri); - - writer.WriteAttributeString("version", Pdb.CurrentVersion.ToString()); - - this.Output.Write(writer); - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/Row.cs b/src/WixToolset.Data/Row.cs deleted file mode 100644 index 4ebddc06..00000000 --- a/src/WixToolset.Data/Row.cs +++ /dev/null @@ -1,626 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; - using System.Text; - using System.Text.RegularExpressions; - using System.Xml; - - /// - /// Row containing data for a table. - /// - public class Row - { - private static long rowCount; - - private Field[] fields; - - /// - /// Creates a row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - /// The compiler should use this constructor exclusively. - public Row(SourceLineNumber sourceLineNumbers, Table table) - : this(sourceLineNumbers, table.Definition) - { - this.Table = table; - } - - /// - /// Creates a row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row should get its column definitions from. - /// This constructor is used in cases where there isn't a clear owner of the row. The linker uses this constructor for the rows it generates. - public Row(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) - { - this.Number = rowCount++; - this.SourceLineNumbers = sourceLineNumbers; - this.fields = new Field[tableDefinition.Columns.Count]; - this.TableDefinition = tableDefinition; - - for (int i = 0; i < this.fields.Length; ++i) - { - this.fields[i] = Field.Create(this.TableDefinition.Columns[i]); - } - } - - /// - /// Creates a shallow copy of a row from another row. - /// - /// The row the data is copied from. - protected Row(Row source) - { - this.Table = source.Table; - this.TableDefinition = source.TableDefinition; - this.Number = source.Number; - this.Access = source.Access; - this.Operation = source.Operation; - this.Redundant = source.Redundant; - this.SectionId = source.SectionId; - this.SourceLineNumbers = source.SourceLineNumbers; - this.fields = source.fields; - } - - /// - /// Gets or sets the access to the row's primary key. - /// - /// The row access modifier. - public AccessModifier Access { get; set; } - - /// - /// Gets or sets the row transform operation. - /// - /// The row transform operation. - public RowOperation Operation { get; set; } - - /// - /// Gets or sets wether the row is a duplicate of another row thus redundant. - /// - public bool Redundant { get; set; } - - /// - /// Gets the section for the row. - /// - /// Section for the row. - public Section Section { get { return (null == this.Table) ? null : this.Table.Section; } } - - /// - /// Gets or sets the SectionId property on the row. - /// - /// The SectionId property on the row. - public string SectionId { get; set; } - - /// - /// Gets the source file and line number for the row. - /// - /// Source file and line number. - public SourceLineNumber SourceLineNumbers { get; private set; } - - /// - /// Gets the table this row belongs to. - /// - /// null if Row does not belong to a Table, or owner Table otherwise. - public Table Table { get; private set; } - - /// - /// Gets the table definition for this row. - /// - /// A Row always has a TableDefinition, even if the Row does not belong to a Table. - /// TableDefinition for Row. - public TableDefinition TableDefinition { get; private set; } - - /// - /// Gets the fields contained by this row. - /// - /// Array of field objects - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - public Field[] Fields - { - get { return this.fields; } - } - - /// - /// Gets the unique number for the row. - /// - /// Number for row. - public long Number { get; private set; } - - /// - /// Gets or sets the value of a particular field in the row. - /// - /// field index. - /// Value of a field in the row. - public object this[int field] - { - get { return this.fields[field].Data; } - set { this.fields[field].Data = value; } - } - - /// - /// Gets the field as an integer. - /// - /// Field's data as an integer. - public int FieldAsInteger(int field) - { - return this.fields[field].AsInteger(); - } - - /// - /// Gets the field as an integer that could be null. - /// - /// Field's data as an integer that could be null. - public int? FieldAsNullableInteger(int field) - { - return this.fields[field].AsNullableInteger(); - } - - /// - /// Gets the field as a string. - /// - /// Field's data as a string. - public string FieldAsString(int field) - { - return this.fields[field].AsString(); - } - - /// - /// Sets the value of a particular field in the row without validating. - /// - /// field index. - /// Value of a field in the row. - /// True if successful, false if validation failed. - public bool BestEffortSetField(int field, object value) - { - return this.fields[field].BestEffortSet(value); - } - - /// - /// Get the value used to represent the row in a keyed row collection. - /// - /// Primary key or row number if no primary key is available. - public string GetKey() - { - return this.GetPrimaryKey() ?? Convert.ToString(this.Number, CultureInfo.InvariantCulture); - } - - /// - /// Get the primary key of this row. - /// - /// Delimiter character for multiple column primary keys. - /// The primary key or null if the row's table has no primary key columns. - public string GetPrimaryKey(char delimiter = '/') - { - return this.GetPrimaryKey(delimiter, String.Empty); - } - - /// - /// Get the primary key of this row. - /// - /// Delimiter character for multiple column primary keys. - /// String to represent null values in the primary key. - /// The primary key or null if the row's table has no primary key columns. - public string GetPrimaryKey(char delimiter, string nullReplacement) - { - bool foundPrimaryKey = false; - StringBuilder primaryKey = new StringBuilder(); - - foreach (Field field in this.fields) - { - if (field.Column.PrimaryKey) - { - if (foundPrimaryKey) - { - primaryKey.Append(delimiter); - } - - primaryKey.Append((null == field.Data) ? nullReplacement : Convert.ToString(field.Data, CultureInfo.InvariantCulture)); - - foundPrimaryKey = true; - } - else // primary keys must be the first columns of a row so the first non-primary key means we can stop looking. - { - break; - } - } - - return foundPrimaryKey ? primaryKey.ToString() : null; - } - - /// - /// Returns true if the specified field is null or an empty string. - /// - /// Index of the field to check. - /// true if the specified field is null or an empty string, false otherwise. - public bool IsColumnEmpty(int field) - { - if (null == this.fields[field].Data) - { - return true; - } - - string dataString = this.fields[field].Data as string; - if (null != dataString && 0 == dataString.Length) - { - return true; - } - - return false; - } - - /// - /// Tests if the passed in row is identical. - /// - /// Row to compare against. - /// True if two rows are identical. - public bool IsIdentical(Row row) - { - bool identical = (this.TableDefinition.Name == row.TableDefinition.Name && this.fields.Length == row.fields.Length); - - for (int i = 0; identical && i < this.fields.Length; ++i) - { - if (!(this.fields[i].IsIdentical(row.fields[i]))) - { - identical = false; - } - } - - return identical; - } - - /// - /// Returns a string representation of the Row. - /// - /// A string representation of the Row. - public override string ToString() - { - return String.Join("/", (object[])this.fields); - } - - /// - /// Creates a Row from the XmlReader. - /// - /// Reader to get data from. - /// Table for this row. - /// New row object. - internal static Row Read(XmlReader reader, Table table) - { - Debug.Assert("row" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - AccessModifier access = AccessModifier.Public; - RowOperation operation = RowOperation.None; - bool redundant = false; - string sectionId = null; - SourceLineNumber sourceLineNumbers = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "access": - access = (AccessModifier)Enum.Parse(typeof(AccessModifier), reader.Value, true); - break; - case "op": - operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); - break; - case "redundant": - redundant = reader.Value.Equals("yes"); - break; - case "sectionId": - sectionId = reader.Value; - break; - case "sourceLineNumber": - sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); - break; - } - } - - Row row = table.CreateRow(sourceLineNumbers); - row.Access = access; - row.Operation = operation; - row.Redundant = redundant; - row.SectionId = sectionId; - - // loop through all the fields in a row - if (!empty) - { - bool done = false; - int field = 0; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "field": - if (row.Fields.Length <= field) - { - if (!reader.IsEmptyElement) - { - throw new XmlException(); - } - } - else - { - row.fields[field].Read(reader); - } - ++field; - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return row; - } - - /// - /// Returns the row in a format usable in IDT files. - /// - /// Whether to keep columns added in a transform. - /// String with tab delimited field values. - internal string ToIdtDefinition(bool keepAddedColumns) - { - bool first = true; - StringBuilder sb = new StringBuilder(); - - foreach (Field field in this.fields) - { - // Conditionally keep columns added in a transform; otherwise, - // break because columns can only be added at the end. - if (field.Column.Added && !keepAddedColumns) - { - break; - } - - if (first) - { - first = false; - } - else - { - sb.Append('\t'); - } - - sb.Append(field.ToIdtValue()); - } - sb.Append("\r\n"); - - return sb.ToString(); - } - - /// - /// Gets the modularized version of the field data. - /// - /// The field to modularize. - /// String containing the GUID of the Merge Module to append the the field value, if appropriate. - /// Optional collection of identifiers that should not be modularized. - /// moduleGuid is expected to be null when not being used to compile a Merge Module. - /// The modularized version of the field data. - internal string GetModularizedValue(Field field, string modularizationGuid, ISet suppressModularizationIdentifiers) - { - Debug.Assert(null != field.Data && 0 < ((string)field.Data).Length); - string fieldData = Convert.ToString(field.Data, CultureInfo.InvariantCulture); - - if (null != modularizationGuid && ColumnModularizeType.None != field.Column.ModularizeType && !(WindowsInstallerStandard.IsStandardAction(fieldData) || WindowsInstallerStandard.IsStandardProperty(fieldData))) - { - StringBuilder sb; - int start; - ColumnModularizeType modularizeType = field.Column.ModularizeType; - - // special logic for the ControlEvent table's Argument column - // this column requires different modularization methods depending upon the value of the Event column - if (ColumnModularizeType.ControlEventArgument == field.Column.ModularizeType) - { - switch (this[2].ToString()) - { - case "CheckExistingTargetPath": // redirectable property name - case "CheckTargetPath": - case "DoAction": // custom action name - case "NewDialog": // dialog name - case "SelectionBrowse": - case "SetTargetPath": - case "SpawnDialog": - case "SpawnWaitDialog": - if (Common.IsIdentifier(fieldData)) - { - modularizeType = ColumnModularizeType.Column; - } - else - { - modularizeType = ColumnModularizeType.Property; - } - break; - default: // formatted - modularizeType = ColumnModularizeType.Property; - break; - } - } - else if (ColumnModularizeType.ControlText == field.Column.ModularizeType) - { - // icons are stored in the Binary table, so they get column-type modularization - if (("Bitmap" == this[2].ToString() || "Icon" == this[2].ToString()) && Common.IsIdentifier(fieldData)) - { - modularizeType = ColumnModularizeType.Column; - } - else - { - modularizeType = ColumnModularizeType.Property; - } - } - - switch (modularizeType) - { - case ColumnModularizeType.Column: - // ensure the value is an identifier (otherwise it shouldn't be modularized this way) - if (!Common.IsIdentifier(fieldData)) - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_CannotModularizeIllegalID, fieldData)); - } - - // if we're not supposed to suppress modularization of this identifier - if (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) - { - fieldData = String.Concat(fieldData, ".", modularizationGuid); - } - break; - - case ColumnModularizeType.Property: - case ColumnModularizeType.Condition: - Regex regex; - if (ColumnModularizeType.Property == modularizeType) - { - regex = new Regex(@"\[(?[#$!]?[a-zA-Z_][a-zA-Z0-9_\.]*)]", RegexOptions.Singleline | RegexOptions.ExplicitCapture); - } - else - { - Debug.Assert(ColumnModularizeType.Condition == modularizeType); - - // This heinous looking regular expression is actually quite an elegant way - // to shred the entire condition into the identifiers that need to be - // modularized. Let's break it down piece by piece: - // - // 1. Look for the operators: NOT, EQV, XOR, OR, AND, IMP (plus a space). Note that the - // regular expression is case insensitive so we don't have to worry about - // all the permutations of these strings. - // 2. Look for quoted strings. Quoted strings are just text and are ignored - // outright. - // 3. Look for environment variables. These look like identifiers we might - // otherwise be interested in but start with a percent sign. Like quoted - // strings these enviroment variable references are ignored outright. - // 4. Match all identifiers that are things that need to be modularized. Note - // the special characters (!, $, ?, &) that denote Component and Feature states. - regex = new Regex(@"NOT\s|EQV\s|XOR\s|OR\s|AND\s|IMP\s|"".*?""|%[a-zA-Z_][a-zA-Z0-9_\.]*|(?[!$\?&]?[a-zA-Z_][a-zA-Z0-9_\.]*)", RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); - - // less performant version of the above with captures showing where everything lives - // regex = new Regex(@"(?NOT|EQV|XOR|OR|AND|IMP)|(?"".*?"")|(?%[a-zA-Z_][a-zA-Z0-9_\.]*)|(?[!$\?&]?[a-zA-Z_][a-zA-Z0-9_\.]*)",RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); - } - - MatchCollection matches = regex.Matches(fieldData); - - sb = new StringBuilder(fieldData); - - // notice how this code walks backward through the list - // because it modifies the string as we through it - for (int i = matches.Count - 1; 0 <= i; i--) - { - Group group = matches[i].Groups["identifier"]; - if (group.Success) - { - string identifier = group.Value; - if (!WindowsInstallerStandard.IsStandardProperty(identifier) && (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(identifier))) - { - sb.Insert(group.Index + group.Length, '.'); - sb.Insert(group.Index + group.Length + 1, modularizationGuid); - } - } - } - - fieldData = sb.ToString(); - break; - - case ColumnModularizeType.CompanionFile: - // if we're not supposed to ignore this identifier and the value does not start with - // a digit, we must have a companion file so modularize it - if ((null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) && - 0 < fieldData.Length && !Char.IsDigit(fieldData, 0)) - { - fieldData = String.Concat(fieldData, ".", modularizationGuid); - } - break; - - case ColumnModularizeType.Icon: - if (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) - { - start = fieldData.LastIndexOf(".", StringComparison.Ordinal); - if (-1 == start) - { - fieldData = String.Concat(fieldData, ".", modularizationGuid); - } - else - { - fieldData = String.Concat(fieldData.Substring(0, start), ".", modularizationGuid, fieldData.Substring(start)); - } - } - break; - - case ColumnModularizeType.SemicolonDelimited: - string[] keys = fieldData.Split(';'); - for (int i = 0; i < keys.Length; ++i) - { - keys[i] = String.Concat(keys[i], ".", modularizationGuid); - } - fieldData = String.Join(";", keys); - break; - } - } - - return fieldData; - } - - /// - /// Persists a row in an XML format. - /// - /// XmlWriter where the Row should persist itself as XML. - [SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "Changing the way this string normalizes would result " + - "in a change to the way intermediate files are generated, potentially causing extra churn in patches on an MSI built from an older version of WiX. " + - "Furthermore, there is no security hole here, as the strings won't need to make a round trip")] - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("row", Intermediate.XmlNamespaceUri); - - if (AccessModifier.Public != this.Access) - { - writer.WriteAttributeString("access", this.Access.ToString().ToLowerInvariant()); - } - - if (RowOperation.None != this.Operation) - { - writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); - } - - if (this.Redundant) - { - writer.WriteAttributeString("redundant", "yes"); - } - - if (null != this.SectionId) - { - writer.WriteAttributeString("sectionId", this.SectionId); - } - - if (null != this.SourceLineNumbers) - { - writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); - } - - for (int i = 0; i < this.fields.Length; ++i) - { - this.fields[i].Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/RowDictionary.cs b/src/WixToolset.Data/RowDictionary.cs deleted file mode 100644 index a0cc5302..00000000 --- a/src/WixToolset.Data/RowDictionary.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - - /// - /// A dictionary of rows. Unlike the this - /// will throw when multiple rows with the same key are added. - /// - public sealed class RowDictionary : Dictionary where T : Row - { - /// - /// Creates an empty . - /// - public RowDictionary() - : base(StringComparer.InvariantCulture) - { - } - - /// - /// Creates and populates a with the rows from the given enumerator. - /// - /// Rows to add. - public RowDictionary(IEnumerable rows) - : this() - { - foreach (T row in rows) - { - this.Add(row); - } - } - - /// - /// Creates and populates a with the rows from the given . - /// - /// The table to index. - /// - /// Rows added to the index are not automatically added to the given . - /// - public RowDictionary(Table table) - : this() - { - if (null != table) - { - foreach (T row in table.Rows) - { - this.Add(row); - } - } - } - - /// - /// Adds a row to the dictionary using the row key. - /// - /// Row to add to the dictionary. - public void Add(T row) - { - this.Add(row.GetKey(), row); - } - - /// - /// Gets the row by integer key. - /// - /// Integer key to look up. - /// Row or null if key is not found. - public T Get(int key) - { - return this.Get(key.ToString()); - } - - /// - /// Gets the row by string key. - /// - /// String key to look up. - /// Row or null if key is not found. - public T Get(string key) - { - T result; - return this.TryGetValue(key, out result) ? result : null; - } - } -} diff --git a/src/WixToolset.Data/RowIndexedList.cs b/src/WixToolset.Data/RowIndexedList.cs deleted file mode 100644 index 27c43a81..00000000 --- a/src/WixToolset.Data/RowIndexedList.cs +++ /dev/null @@ -1,301 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - - /// - /// A list of rows indexed by their primary key. Unlike a - /// this indexed list will track rows in their added order and will allow rows with - /// duplicate keys to be added to the list, although only the first row will be indexed. - /// - public sealed class RowIndexedList : IList where T : Row - { - private Dictionary index; - private List rows; - private List duplicates; - - /// - /// Creates an empty . - /// - public RowIndexedList() - { - this.index = new Dictionary(StringComparer.InvariantCulture); - this.rows = new List(); - this.duplicates = new List(); - } - - /// - /// Creates and populates a with the rows from the given enumerator. - /// - /// Rows to index. - public RowIndexedList(IEnumerable rows) - : this() - { - foreach (T row in rows) - { - this.Add(row); - } - } - - /// - /// Creates and populates a with the rows from the given . - /// - /// The table to index. - /// - /// Rows added to the index are not automatically added to the given . - /// - public RowIndexedList(Table table) - : this() - { - if (null != table) - { - foreach (T row in table.Rows) - { - this.Add(row); - } - } - } - - /// - /// Gets the duplicates in the list. - /// - public IEnumerable Duplicates { get { return this.duplicates; } } - - /// - /// Gets the row by integer key. - /// - /// Integer key to look up. - /// Row or null if key is not found. - public T Get(int key) - { - return this.Get(key.ToString()); - } - - /// - /// Gets the row by string key. - /// - /// String key to look up. - /// Row or null if key is not found. - public T Get(string key) - { - T result; - return this.TryGet(key, out result) ? result : null; - } - - /// - /// Gets the row by string key if it exists. - /// - /// Key of row to get. - /// Row found. - /// True if key was found otherwise false. - public bool TryGet(string key, out T row) - { - return this.index.TryGetValue(key, out row); - } - - /// - /// Tries to add a row as long as it would not create a duplicate. - /// - /// Row to add. - /// True if the row as added otherwise false. - public bool TryAdd(T row) - { - try - { - this.index.Add(row.GetKey(), row); - } - catch (ArgumentException) // if the key already exists, bail. - { - return false; - } - - this.rows.Add(row); - return true; - } - - /// - /// Adds a row to the list. If a row with the same key is already index, the row is - /// is not in the index but will still be part of the list and added to the duplicates - /// list. - /// - /// - public void Add(T row) - { - this.rows.Add(row); - try - { - this.index.Add(row.GetKey(), row); - } - catch (ArgumentException) // if the key already exists, we have a duplicate. - { - this.duplicates.Add(row); - } - } - - /// - /// Gets the index of a row. - /// - /// Iterates through the list of rows to find the index of a particular row. - /// Index of row or -1 if not found. - public int IndexOf(T row) - { - return this.rows.IndexOf(row); - } - - /// - /// Inserts a row at a particular index of the list. - /// - /// Index to insert the row after. - /// Row to insert. - public void Insert(int index, T row) - { - this.rows.Insert(index, row); - try - { - this.index.Add(row.GetKey(), row); - } - catch (ArgumentException) // if the key already exists, we have a duplicate. - { - this.duplicates.Add(row); - } - } - - /// - /// Removes a row from a particular index. - /// - /// Index to remove the row at. - public void RemoveAt(int index) - { - T row = this.rows[index]; - - this.rows.RemoveAt(index); - - T indexRow; - if (this.index.TryGetValue(row.GetKey(), out indexRow) && indexRow == row) - { - this.index.Remove(row.GetKey()); - } - else // only try to remove from duplicates if the row was not indexed (if it was indexed, it wasn't a dupe). - { - this.duplicates.Remove(row); - } - } - - /// - /// Gets or sets a row at the specified index. - /// - /// Index to get the row. - /// Row at specified index. - public T this[int index] - { - get - { - return this.rows[index]; - } - set - { - this.rows[index] = value; - try - { - this.index.Add(value.GetKey(), value); - } - catch (ArgumentException) // if the key already exists, we have a duplicate. - { - this.duplicates.Add(value); - } - } - } - - /// - /// Empties the list and it's index. - /// - public void Clear() - { - this.index.Clear(); - this.rows.Clear(); - this.duplicates.Clear(); - } - - /// - /// Searches the list for a row without using the index. - /// - /// Row to look for in the list. - /// True if the row is in the list, otherwise false. - public bool Contains(T row) - { - return this.rows.Contains(row); - } - - /// - /// Copies the rows of the list to an array. - /// - /// Array to copy the list into. - /// Index to start copying at. - public void CopyTo(T[] array, int arrayIndex) - { - this.rows.CopyTo(array, arrayIndex); - } - - /// - /// Number of rows in the list. - /// - public int Count - { - get { return this.rows.Count; } - } - - /// - /// Indicates whether the list is read-only. Always false. - /// - public bool IsReadOnly - { - get { return false; } - } - - /// - /// Removes a row from the list. Indexed rows will be removed but the colleciton will NOT - /// promote duplicates to the index automatically. The duplicate would also need to be removed - /// and re-added to be indexed. - /// - /// - /// - public bool Remove(T row) - { - bool removed = this.rows.Remove(row); - if (removed) - { - T indexRow; - if (this.index.TryGetValue(row.GetKey(), out indexRow) && indexRow == row) - { - this.index.Remove(row.GetKey()); - } - else // only try to remove from duplicates if the row was not indexed (if it was indexed, it wasn't a dupe). - { - this.duplicates.Remove(row); - } - } - - return removed; - } - - /// - /// Gets an enumerator over the whole list. - /// - /// List enumerator. - public IEnumerator GetEnumerator() - { - return this.rows.GetEnumerator(); - } - - /// - /// Gets an untyped enumerator over the whole list. - /// - /// Untyped list enumerator. - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return this.rows.GetEnumerator(); - } - } -} diff --git a/src/WixToolset.Data/RowOperation.cs b/src/WixToolset.Data/RowOperation.cs deleted file mode 100644 index 30dadd4e..00000000 --- a/src/WixToolset.Data/RowOperation.cs +++ /dev/null @@ -1,30 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// The row transform operations. - /// - public enum RowOperation - { - /// - /// No operation. - /// - None, - - /// - /// Added row. - /// - Add, - - /// - /// Deleted row. - /// - Delete, - - /// - /// Modified row. - /// - Modify - } -} diff --git a/src/WixToolset.Data/Rows/BBControlRow.cs b/src/WixToolset.Data/Rows/BBControlRow.cs deleted file mode 100644 index d0f08662..00000000 --- a/src/WixToolset.Data/Rows/BBControlRow.cs +++ /dev/null @@ -1,113 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System.Diagnostics.CodeAnalysis; - - /// - /// Specialization of a row for the Control table. - /// - public sealed class BBControlRow : Row - { - /// - /// Creates a Control row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Control row belongs to and should get its column definitions from. - public BBControlRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the dialog of the Control row. - /// - /// Primary key of the Control row. - public string Billboard - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the identifier for this Control row. - /// - /// Identifier for this Control row. - public string BBControl - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the type of the BBControl. - /// - /// Name of the BBControl. - [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] - public string Type - { - get { return this.Fields[2].AsString(); } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the X location of the BBControl. - /// - /// X location of the BBControl. - public string X - { - get { return this.Fields[3].AsString(); } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the Y location of the BBControl. - /// - /// Y location of the BBControl. - public string Y - { - get { return this.Fields[4].AsString(); } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the width of the BBControl. - /// - /// Width of the BBControl. - public string Width - { - get { return this.Fields[5].AsString(); } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the height of the BBControl. - /// - /// Height of the BBControl. - public string Height - { - get { return this.Fields[6].AsString(); } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the attributes for the BBControl. - /// - /// Attributes for the BBControl. - public int Attributes - { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets or sets the text of the BBControl. - /// - /// Text of the BBControl. - public string Text - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/ComponentRow.cs b/src/WixToolset.Data/Rows/ComponentRow.cs deleted file mode 100644 index 3ff10175..00000000 --- a/src/WixToolset.Data/Rows/ComponentRow.cs +++ /dev/null @@ -1,245 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using WixToolset.Data.Msi; - - /// - /// Specialization of a row for the Component table. - /// - public sealed class ComponentRow : Row - { - private string sourceFile; - - /// - /// Creates a Control row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Component row belongs to and should get its column definitions from. - public ComponentRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the identifier for this Component row. - /// - /// Identifier for this Component row. - public string Component - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the ComponentId for this Component row. - /// - /// guid for this Component row. - public string Guid - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the Directory_ of the Component. - /// - /// Directory of the Component. - public string Directory - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the local only attribute of the Component. - /// - /// Local only attribute of the component. - public bool IsLocalOnly - { - get { return MsiInterop.MsidbComponentAttributesLocalOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesLocalOnly); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesLocalOnly; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesLocalOnly; - } - } - } - - /// - /// Gets or sets the source only attribute of the Component. - /// - /// Source only attribute of the component. - public bool IsSourceOnly - { - get { return MsiInterop.MsidbComponentAttributesSourceOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSourceOnly); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSourceOnly; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSourceOnly; - } - } - } - - /// - /// Gets or sets the optional attribute of the Component. - /// - /// Optional attribute of the component. - public bool IsOptional - { - get { return MsiInterop.MsidbComponentAttributesOptional == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesOptional); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesOptional; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesOptional; - } - } - } - - /// - /// Gets or sets the registry key path attribute of the Component. - /// - /// Registry key path attribute of the component. - public bool IsRegistryKeyPath - { - get { return MsiInterop.MsidbComponentAttributesRegistryKeyPath == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesRegistryKeyPath); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesRegistryKeyPath; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesRegistryKeyPath; - } - } - } - - /// - /// Gets or sets the shared dll ref count attribute of the Component. - /// - /// Shared dll ref countattribute of the component. - public bool IsSharedDll - { - get { return MsiInterop.MsidbComponentAttributesSharedDllRefCount == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSharedDllRefCount); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSharedDllRefCount; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSharedDllRefCount; - } - } - } - - /// - /// Gets or sets the permanent attribute of the Component. - /// - /// Permanent attribute of the component. - public bool IsPermanent - { - get { return MsiInterop.MsidbComponentAttributesPermanent == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesPermanent); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesPermanent; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesPermanent; - } - } - } - - /// - /// Gets or sets the ODBC data source key path attribute of the Component. - /// - /// ODBC data source key path attribute of the component. - public bool IsOdbcDataSourceKeyPath - { - get { return MsiInterop.MsidbComponentAttributesODBCDataSource == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesODBCDataSource); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesODBCDataSource; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesODBCDataSource; - } - } - } - - /// - /// Gets or sets the 64 bit attribute of the Component. - /// - /// 64-bitness of the component. - public bool Is64Bit - { - get { return MsiInterop.MsidbComponentAttributes64bit == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributes64bit); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributes64bit; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributes64bit; - } - } - } - - /// - /// Gets or sets the condition of the Component. - /// - /// Condition of the Component. - public string Condition - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the key path of the Component. - /// - /// Key path of the Component. - public string KeyPath - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the source location to the file to fill in the Text of the control. - /// - /// Source location to the file to fill in the Text of the control. - public string SourceFile - { - get { return this.sourceFile; } - set { this.sourceFile = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/ContainerType.cs b/src/WixToolset.Data/Rows/ContainerType.cs deleted file mode 100644 index 55a74235..00000000 --- a/src/WixToolset.Data/Rows/ContainerType.cs +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Types of bundle packages. - /// - public enum ContainerType - { - Attached, - Detached, - } -} diff --git a/src/WixToolset.Data/Rows/ControlRow.cs b/src/WixToolset.Data/Rows/ControlRow.cs deleted file mode 100644 index 8fa3f633..00000000 --- a/src/WixToolset.Data/Rows/ControlRow.cs +++ /dev/null @@ -1,143 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System.Diagnostics.CodeAnalysis; - - /// - /// Specialization of a row for the Control table. - /// - public sealed class ControlRow : Row - { - /// - /// Creates a Control row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Control row belongs to and should get its column definitions from. - public ControlRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the dialog of the Control row. - /// - /// Primary key of the Control row. - public string Dialog - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the identifier for this Control row. - /// - /// Identifier for this Control row. - public string Control - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the type of the control. - /// - /// Name of the control. - [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] - public string Type - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the X location of the control. - /// - /// X location of the control. - public string X - { - get { return this.Fields[3].AsString(); } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the Y location of the control. - /// - /// Y location of the control. - public string Y - { - get { return this.Fields[4].AsString(); } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the width of the control. - /// - /// Width of the control. - public string Width - { - get { return this.Fields[5].AsString(); } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the height of the control. - /// - /// Height of the control. - public string Height - { - get { return this.Fields[6].AsString(); } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the attributes for the control. - /// - /// Attributes for the control. - public int Attributes - { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets or sets the Property associated with the control. - /// - /// Property associated with the control. - public string Property - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - /// - /// Gets or sets the text of the control. - /// - /// Text of the control. - public string Text - { - get { return (string)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - /// - /// Gets or sets the next control. - /// - /// Next control. - public string Next - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - /// - /// Gets or sets the help for the control. - /// - /// Help for the control. - public string Help - { - get { return (string)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs b/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs deleted file mode 100644 index 07e66585..00000000 --- a/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - public enum ExitCodeBehaviorType - { - NotSet = -1, - Success, - Error, - ScheduleReboot, - ForceReboot, - } -} diff --git a/src/WixToolset.Data/Rows/FileAssemblyType.cs b/src/WixToolset.Data/Rows/FileAssemblyType.cs deleted file mode 100644 index 6e92a083..00000000 --- a/src/WixToolset.Data/Rows/FileAssemblyType.cs +++ /dev/null @@ -1,19 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Every file row has an assembly type. - /// - public enum FileAssemblyType - { - /// File is not an assembly. - NotAnAssembly, - - /// File is a Common Language Runtime Assembly. - DotNetAssembly, - - /// File is Win32 SxS assembly. - Win32Assembly, - } -} diff --git a/src/WixToolset.Data/Rows/FileRow.cs b/src/WixToolset.Data/Rows/FileRow.cs deleted file mode 100644 index de5d5652..00000000 --- a/src/WixToolset.Data/Rows/FileRow.cs +++ /dev/null @@ -1,640 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Diagnostics; - using System.Globalization; - using WixToolset.Data.Msi; - - /// - /// Specialization of a row for the file table. - /// - public sealed class FileRow : Row //, IComparable - { - //private string assemblyApplication; - //private string assemblyManifest; - //private FileAssemblyType assemblyType; - //private string directory; - //private int diskId; - //private bool fromModule; - //private bool isGeneratedShortFileName; - //private int patchGroup; - //private string processorArchitecture; - //private string source; - //private Row hashRow; - //private List assemblyNameRows; - //private string[] previousSource; - //private string symbols; - //private string[] previousSymbols; - //private PatchAttributeType patchAttributes; - //private string retainOffsets; - //private string retainLengths; - //private string ignoreOffsets; - //private string ignoreLengths; - //private string[] previousRetainOffsets; - //private string[] previousRetainLengths; - //private string[] previousIgnoreOffsets; - //private string[] previousIgnoreLengths; - //private string patch; - - /// - /// Creates a File row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this File row belongs to and should get its column definitions from. - public FileRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - //this.assemblyType = FileAssemblyType.NotAnAssembly; - //this.previousSource = new string[1]; - //this.previousSymbols = new string[1]; - //this.previousRetainOffsets = new string[1]; - //this.previousRetainLengths = new string[1]; - //this.previousIgnoreOffsets = new string[1]; - //this.previousIgnoreLengths = new string[1]; - } - - /// - /// Creates a File row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) - : base(sourceLineNumbers, tableDefinition) - { - //this.assemblyType = FileAssemblyType.NotAnAssembly; - //this.previousSource = new string[1]; - //this.previousSymbols = new string[1]; - //this.previousRetainOffsets = new string[1]; - //this.previousRetainLengths = new string[1]; - //this.previousIgnoreOffsets = new string[1]; - //this.previousIgnoreLengths = new string[1]; - } - - /// - /// Gets or sets the primary key of the file row. - /// - /// Primary key of the file row. - public string File - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the component this file row belongs to. - /// - /// Component this file row belongs to. - public string Component - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the name of the file. - /// - /// Name of the file. - public string FileName - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the real filesystem name of the file (without a pipe). This is typically the long name of the file. - /// However, if no long name is available, falls back to the short name. - /// - /// Long Name of the file - or if no long name is available, falls back to the short name. - public string LongFileName - { - get - { - string fileName = this.FileName; - int index = fileName.IndexOf('|'); - - // If it doesn't contain a pipe, just return the whole string - if (-1 == index) - { - return fileName; - } - else // otherwise, extract the part of the string after the pipe - { - return fileName.Substring(index + 1); - } - } - } - - /// - /// Gets or sets the size of the file. - /// - /// Size of the file. - public int FileSize - { - get { return (int)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the version of the file. - /// - /// Version of the file. - public string Version - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the LCID of the file. - /// - /// LCID of the file. - public string Language - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the attributes on a file. - /// - /// Attributes on a file. - public int Attributes - { - get { return Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture); } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets whether this file should be compressed. - /// - /// Whether this file should be compressed. - public YesNoType Compressed - { - get - { - bool compressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesCompressed)); - bool noncompressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesNoncompressed)); - - if (compressedFlag && noncompressedFlag) - { - throw new WixException(WixDataErrors.IllegalFileCompressionAttributes(this.SourceLineNumbers)); - } - else if (compressedFlag) - { - return YesNoType.Yes; - } - else if (noncompressedFlag) - { - return YesNoType.No; - } - else - { - return YesNoType.NotSet; - } - } - - set - { - if (YesNoType.Yes == value) - { - // these are mutually exclusive - this.Attributes |= MsiInterop.MsidbFileAttributesCompressed; - this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; - } - else if (YesNoType.No == value) - { - // these are mutually exclusive - this.Attributes |= MsiInterop.MsidbFileAttributesNoncompressed; - this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; - } - else // not specified - { - Debug.Assert(YesNoType.NotSet == value); - - // clear any compression bits - this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; - this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; - } - } - } - - /// - /// Gets or sets the sequence of the file row. - /// - /// Sequence of the file row. - public int Sequence - { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /////// - /////// Gets or sets the type of assembly of file row. - /////// - /////// Assembly type for file row. - ////public FileAssemblyType AssemblyType - ////{ - //// get { return this.assemblyType; } - //// set { this.assemblyType = value; } - ////} - - /////// - /////// Gets or sets the identifier for the assembly application. - /////// - /////// Identifier for the assembly application. - ////public string AssemblyApplication - ////{ - //// get { return this.assemblyApplication; } - //// set { this.assemblyApplication = value; } - ////} - - /////// - /////// Gets or sets the identifier for the assembly manifest. - /////// - /////// Identifier for the assembly manifest. - ////public string AssemblyManifest - ////{ - //// get { return this.assemblyManifest; } - //// set { this.assemblyManifest = value; } - ////} - - /////// - /////// Gets or sets the directory of the file. - /////// - /////// Directory of the file. - ////public string Directory - ////{ - //// get { return this.directory; } - //// set { this.directory = value; } - ////} - - /////// - /////// Gets or sets the disk id for this file. - /////// - /////// Disk id for the file. - ////public int DiskId - ////{ - //// get { return this.diskId; } - //// set { this.diskId = value; } - ////} - - /////// - /////// Gets or sets the source location to the file. - /////// - /////// Source location to the file. - ////public string Source - ////{ - //// get { return this.source; } - //// set { this.source = value; } - ////} - - /////// - /////// Gets or sets the source location to the previous file. - /////// - /////// Source location to the previous file. - ////public string PreviousSource - ////{ - //// get { return this.previousSource[0]; } - //// set { this.previousSource[0] = value; } - ////} - - /////// - /////// Gets the source location to the previous files. - /////// - /////// Source location to the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousSourceArray - ////{ - //// get { return this.previousSource; } - ////} - - /////// - /////// Gets or sets the architecture the file executes on. - /////// - /////// Architecture the file executes on. - ////public string ProcessorArchitecture - ////{ - //// get { return this.processorArchitecture; } - //// set { this.processorArchitecture = value; } - ////} - - /////// - /////// Gets of sets the patch group of a patch-added file. - /////// - /////// The patch group of a patch-added file. - ////public int PatchGroup - ////{ - //// get { return this.patchGroup; } - //// set { this.patchGroup = value; } - ////} - - /////// - /////// Gets or sets the patch header of the file. - /////// - /////// Patch header of the file. - ////public string Patch - ////{ - //// get { return this.patch; } - //// set { this.patch = value; } - ////} - - /////// - /////// Gets or sets the locations to find the file's symbols. - /////// - /////// Symbol paths for the file. - ////public string Symbols - ////{ - //// get { return this.symbols; } - //// set { this.symbols = value; } - ////} - - /////// - /////// Gets or sets the locations to find the file's previous symbols. - /////// - /////// Symbol paths for the previous file. - ////public string PreviousSymbols - ////{ - //// get { return this.previousSymbols[0]; } - //// set { this.previousSymbols[0] = value; } - ////} - - /////// - /////// Gets the locations to find the files' previous symbols. - /////// - /////// Symbol paths for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousSymbolsArray - ////{ - //// get { return this.previousSymbols; } - ////} - - /////// - /////// Gets or sets the generated short file name attribute. - /////// - /////// The generated short file name attribute. - ////public bool IsGeneratedShortFileName - ////{ - //// get { return this.isGeneratedShortFileName; } - - //// set { this.isGeneratedShortFileName = value; } - ////} - - /////// - /////// Gets or sets whether this row came from a merge module. - /////// - /////// Whether this row came from a merge module. - ////public bool FromModule - ////{ - //// get { return this.fromModule; } - //// set { this.fromModule = value; } - ////} - - /////// - /////// Gets or sets the MsiFileHash row created for this FileRow. - /////// - /////// Row for MsiFileHash table. - ////public Row HashRow - ////{ - //// get { return this.hashRow; } - //// set { this.hashRow = value; } - ////} - - /////// - /////// Gets or sets the set of MsiAssemblyName rows created for this FileRow. - /////// - /////// RowCollection of MsiAssemblyName table. - ////[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] - ////public List AssemblyNameRows - ////{ - //// get { return this.assemblyNameRows; } - //// set { this.assemblyNameRows = value; } - ////} - - /////// - /////// Gets or sets the patching attributes to the file. - /////// - /////// Patching attributes of the file. - ////public PatchAttributeType PatchAttributes - ////{ - //// get { return this.patchAttributes; } - //// set { this.patchAttributes = value; } - ////} - - /////// - /////// Gets or sets the delta patch retain-length list for the file. - /////// - /////// RetainLength list for the file. - ////public string RetainLengths - ////{ - //// get { return this.retainLengths; } - //// set { this.retainLengths = value; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-offset list for the file. - /////// - /////// IgnoreOffset list for the file. - ////public string IgnoreOffsets - ////{ - //// get { return this.ignoreOffsets; } - //// set { this.ignoreOffsets = value; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-length list for the file. - /////// - /////// IgnoreLength list for the file. - ////public string IgnoreLengths - ////{ - //// get { return this.ignoreLengths; } - //// set { this.ignoreLengths = value; } - ////} - - /////// - /////// Gets or sets the delta patch retain-offset list for the file. - /////// - /////// RetainOffset list for the file. - ////public string RetainOffsets - ////{ - //// get { return this.retainOffsets; } - //// set { this.retainOffsets = value; } - ////} - - /////// - /////// Gets or sets the delta patch retain-length list for the previous file. - /////// - /////// RetainLength list for the previous file. - ////public string PreviousRetainLengths - ////{ - //// get { return this.previousRetainLengths[0]; } - //// set { this.previousRetainLengths[0] = value; } - ////} - - /////// - /////// Gets the delta patch retain-length list for the previous files. - /////// - /////// RetainLength list for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousRetainLengthsArray - ////{ - //// get { return this.previousRetainLengths; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-offset list for the previous file. - /////// - /////// IgnoreOffset list for the previous file. - ////public string PreviousIgnoreOffsets - ////{ - //// get { return this.previousIgnoreOffsets[0]; } - //// set { this.previousIgnoreOffsets[0] = value; } - ////} - - /////// - /////// Gets the delta patch ignore-offset list for the previous files. - /////// - /////// IgnoreOffset list for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousIgnoreOffsetsArray - ////{ - //// get { return this.previousIgnoreOffsets; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-length list for the previous file. - /////// - /////// IgnoreLength list for the previous file. - ////public string PreviousIgnoreLengths - ////{ - //// get { return this.previousIgnoreLengths[0]; } - //// set { this.previousIgnoreLengths[0] = value; } - ////} - - /////// - /////// Gets the delta patch ignore-length list for the previous files. - /////// - /////// IgnoreLength list for the previous files. - ////[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousIgnoreLengthsArray - ////{ - //// get { return this.previousIgnoreLengths; } - ////} - - /////// - /////// Gets or sets the delta patch retain-offset list for the previous file. - /////// - /////// RetainOffset list for the previous file. - ////public string PreviousRetainOffsets - ////{ - //// get { return this.previousRetainOffsets[0]; } - //// set { this.previousRetainOffsets[0] = value; } - ////} - - /////// - /////// Gets the delta patch retain-offset list for the previous files. - /////// - /////// RetainOffset list for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousRetainOffsetsArray - ////{ - //// get { return this.previousRetainOffsets; } - ////} - - /////// - /////// Compares the current FileRow with another object of the same type. - /////// - /////// An object to compare with this instance. - /////// An integer that indicates the relative order of the comparands. - ////[SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String)")] - ////[SuppressMessage("Microsoft.Globalization", "CA1309:UseOrdinalStringComparison")] - ////public int CompareTo(object obj) - ////{ - //// if (this == obj) - //// { - //// return 0; - //// } - - //// FileRow fileRow = obj as FileRow; - //// if (null == fileRow) - //// { - //// throw new ArgumentException(WixDataStrings.EXP_OtherObjectIsNotFileRow); - //// } - - //// int compared = this.DiskId - fileRow.DiskId; - //// if (0 == compared) - //// { - //// compared = this.patchGroup - fileRow.patchGroup; - - //// if (0 == compared) - //// { - //// compared = String.Compare(this.File, fileRow.File, StringComparison.InvariantCulture); - //// } - //// } - - //// return compared; - ////} - - /////// - /////// Copies data from another FileRow object. - /////// - /////// An row to get data from. - ////public void CopyFrom(FileRow src) - ////{ - //// for (int i = 0; i < src.Fields.Length; i++) - //// { - //// this[i] = src[i]; - //// } - //// this.assemblyManifest = src.assemblyManifest; - //// this.assemblyType = src.assemblyType; - //// this.directory = src.directory; - //// this.diskId = src.diskId; - //// this.fromModule = src.fromModule; - //// this.isGeneratedShortFileName = src.isGeneratedShortFileName; - //// this.patchGroup = src.patchGroup; - //// this.processorArchitecture = src.processorArchitecture; - //// this.source = src.source; - //// this.PreviousSource = src.PreviousSource; - //// this.Operation = src.Operation; - //// this.symbols = src.symbols; - //// this.PreviousSymbols = src.PreviousSymbols; - //// this.patchAttributes = src.patchAttributes; - //// this.retainOffsets = src.retainOffsets; - //// this.retainLengths = src.retainLengths; - //// this.ignoreOffsets = src.ignoreOffsets; - //// this.ignoreLengths = src.ignoreLengths; - //// this.PreviousRetainOffsets = src.PreviousRetainOffsets; - //// this.PreviousRetainLengths = src.PreviousRetainLengths; - //// this.PreviousIgnoreOffsets = src.PreviousIgnoreOffsets; - //// this.PreviousIgnoreLengths = src.PreviousIgnoreLengths; - ////} - - /////// - /////// Appends previous data from another FileRow object. - /////// - /////// An row to get data from. - ////public void AppendPreviousDataFrom(FileRow src) - ////{ - //// AppendStringToArray(ref this.previousSource, src.previousSource[0]); - //// AppendStringToArray(ref this.previousSymbols, src.previousSymbols[0]); - //// AppendStringToArray(ref this.previousRetainOffsets, src.previousRetainOffsets[0]); - //// AppendStringToArray(ref this.previousRetainLengths, src.previousRetainLengths[0]); - //// AppendStringToArray(ref this.previousIgnoreOffsets, src.previousIgnoreOffsets[0]); - //// AppendStringToArray(ref this.previousIgnoreLengths, src.previousIgnoreLengths[0]); - ////} - - /////// - /////// Helper method for AppendPreviousDataFrom. - /////// - /////// Destination array. - /////// Source string. - ////private static void AppendStringToArray(ref string[] destination, string source) - ////{ - //// string[] result = new string[destination.Length + 1]; - //// destination.CopyTo(result, 0); - //// result[destination.Length] = source; - //// destination = result; - ////} - } -} diff --git a/src/WixToolset.Data/Rows/MediaRow.cs b/src/WixToolset.Data/Rows/MediaRow.cs deleted file mode 100644 index f387a8d2..00000000 --- a/src/WixToolset.Data/Rows/MediaRow.cs +++ /dev/null @@ -1,80 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the Media table. - /// - public sealed class MediaRow : Row - { - /// - /// Creates a Media row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public MediaRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the disk id for this media row. - /// - /// Disk id. - public int DiskId - { - get { return (int)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the last sequence number for this media row. - /// - /// Last sequence number. - public int LastSequence - { - get { return (int)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the disk prompt for this media row. - /// - /// Disk prompt. - public string DiskPrompt - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the cabinet name for this media row. - /// - /// Cabinet name. - public string Cabinet - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the volume label for this media row. - /// - /// Volume label. - public string VolumeLabel - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the source for this media row. - /// - /// Source. - public string Source - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/PatchAttributeType.cs b/src/WixToolset.Data/Rows/PatchAttributeType.cs deleted file mode 100644 index b585e845..00000000 --- a/src/WixToolset.Data/Rows/PatchAttributeType.cs +++ /dev/null @@ -1,27 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// PatchAttribute values - /// - [Flags] - public enum PatchAttributeType - { - None = 0, - - /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. - Ignore = 1, - - /// Set if the entire file should be installed rather than creating a binary patch. - IncludeWholeFile = 2, - - /// Set to indicate that the patch is non-vital. - AllowIgnoreOnError = 4, - - /// Allowed bits. - Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError - } -} diff --git a/src/WixToolset.Data/Rows/PropertyRow.cs b/src/WixToolset.Data/Rows/PropertyRow.cs deleted file mode 100644 index 558df760..00000000 --- a/src/WixToolset.Data/Rows/PropertyRow.cs +++ /dev/null @@ -1,42 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// Specialization of a row for the upgrade table. - /// - public sealed class PropertyRow : Row - { - /// - /// Creates an Upgrade row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Upgrade row belongs to and should get its column definitions from. - public PropertyRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets and sets the upgrade code for the row. - /// - /// Property identifier for the row. - public string Property - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the value for the row. - /// - /// Property value for the row. - public string Value - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs b/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs deleted file mode 100644 index bc931f15..00000000 --- a/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs +++ /dev/null @@ -1,42 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Collections; - using System.Collections.ObjectModel; - - /// - /// Indexed container class for summary information rows. - /// - public sealed class SummaryInfoRowCollection : KeyedCollection - { - /// - /// Creates the keyed collection from existing rows in a table. - /// - /// The summary information table to index. - public SummaryInfoRowCollection(Table table) - { - if (0 != String.CompareOrdinal("_SummaryInformation", table.Name)) - { - string message = string.Format(WixDataStrings.EXP_UnsupportedTable, table.Name); - throw new ArgumentException(message, "table"); - } - - foreach (Row row in table.Rows) - { - this.Add(row); - } - } - - /// - /// Gets the summary property ID for the . - /// - /// The row to index. - /// The summary property ID for the . - protected override int GetKeyForItem(Row row) - { - return (int)row[0]; - } - } -} diff --git a/src/WixToolset.Data/Rows/SymbolPathType.cs b/src/WixToolset.Data/Rows/SymbolPathType.cs deleted file mode 100644 index 964e1caa..00000000 --- a/src/WixToolset.Data/Rows/SymbolPathType.cs +++ /dev/null @@ -1,17 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// The types that the WixDeltaPatchSymbolPaths table can hold. - /// - /// The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type. - public enum SymbolPathType - { - File, - Component, - Directory, - Media, - Product - }; -} diff --git a/src/WixToolset.Data/Rows/UpgradeRow.cs b/src/WixToolset.Data/Rows/UpgradeRow.cs deleted file mode 100644 index 807a9f93..00000000 --- a/src/WixToolset.Data/Rows/UpgradeRow.cs +++ /dev/null @@ -1,90 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the upgrade table. - /// - public sealed class UpgradeRow : Row - { - /// - /// Creates an Upgrade row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Upgrade row belongs to and should get its column definitions from. - public UpgradeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets and sets the upgrade code for the row. - /// - /// Upgrade code for the row. - public string UpgradeCode - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the version minimum for the row. - /// - /// Version minimum for the row. - public string VersionMin - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets and sets the version maximum for the row. - /// - /// Version maximum for the row. - public string VersionMax - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets and sets the language for the row. - /// - /// Language for the row. - public string Language - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets and sets the attributes for the row. - /// - /// Attributes for the row. - public int Attributes - { - get { return (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets and sets the remove code for the row. - /// - /// Remove code for the row. - public string Remove - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets and sets the action property for the row. - /// - /// Action property for the row. - public string ActionProperty - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixActionRow.cs b/src/WixToolset.Data/Rows/WixActionRow.cs deleted file mode 100644 index 3009e59d..00000000 --- a/src/WixToolset.Data/Rows/WixActionRow.cs +++ /dev/null @@ -1,374 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Globalization; - using System.Xml; - using System.Xml.Schema; - - /// - /// The Sequence tables that actions may belong to. - /// - public enum SequenceTable - { - /// AdminUISequence - AdminUISequence, - - /// AdminExecuteSequence - AdminExecuteSequence, - - /// AdvtExecuteSequence - AdvtExecuteSequence, - - /// InstallUISequence - InstallUISequence, - - /// InstallExecuteSequence - InstallExecuteSequence - } - - /// - /// Specialization of a row for the sequence tables. - /// - public sealed class WixActionRow : Row, IComparable - { - private WixActionRowCollection previousActionRows; - private WixActionRowCollection nextActionRows; - - /// - /// Instantiates an ActionRow that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Action row belongs to and should get its column definitions from. - public WixActionRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Instantiates a standard ActionRow. - /// - /// The sequence table of the standard action. - /// The name of the standard action. - /// The condition of the standard action. - /// The suggested sequence number of the standard action. - private WixActionRow(SequenceTable sequenceTable, string action, string condition, int sequence) : - base(null, WindowsInstallerStandard.GetTableDefinitions()["WixAction"]) - { - this.SequenceTable = sequenceTable; - this.Action = action; - this.Condition = condition; - this.Sequence = sequence; - this.Overridable = true; // all standard actions are overridable by default - } - - /// - /// Instantiates an ActionRow by copying data from another ActionRow. - /// - /// The row the data is copied from. - /// The previous and next action collections are not copied. - private WixActionRow(WixActionRow source) - : base(source) - { - } - - /// - /// Gets or sets the name of the action. - /// - /// The name of the action. - public string Action - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets the name of the action this action should be scheduled after. - /// - /// The name of the action this action should be scheduled after. - public string After - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets the name of the action this action should be scheduled before. - /// - /// The name of the action this action should be scheduled before. - public string Before - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the condition of the action. - /// - /// The condition of the action. - public string Condition - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets whether this action is overridable. - /// - /// Whether this action is overridable. - public bool Overridable - { - get { return (1 == Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture)); } - set { this.Fields[6].Data = (value ? 1 : 0); } - } - - /// - /// Gets or sets the sequence number of this action. - /// - /// The sequence number of this action. - public int Sequence - { - get { return Convert.ToInt32(this.Fields[3].Data, CultureInfo.InvariantCulture); } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets of sets the sequence table of this action. - /// - /// The sequence table of this action. - public SequenceTable SequenceTable - { - get { return (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[0].Data); } - set { this.Fields[0].Data = value.ToString(); } - } - - /// - /// Gets the actions that should be scheduled after this action. - /// - /// The actions that should be scheduled after this action. - public WixActionRowCollection NextActionRows - { - get - { - if (null == this.nextActionRows) - { - this.nextActionRows = new WixActionRowCollection(); - } - - return this.nextActionRows; - } - } - - /// - /// Gets the actions that should be scheduled before this action. - /// - /// The actions that should be scheduled before this action. - public WixActionRowCollection PreviousActionRows - { - get - { - if (null == this.previousActionRows) - { - this.previousActionRows = new WixActionRowCollection(); - } - - return this.previousActionRows; - } - } - - /// - /// Creates a clone of the action row. - /// - /// A shallow copy of the source object. - /// The previous and next action collections are not copied. - public WixActionRow Clone() - { - return new WixActionRow(this); - } - - /// - /// Compares the current instance with another object of the same type. - /// - /// Other reference to compare this one to. - /// Returns less than 0 for less than, 0 for equals, and greater than 0 for greater. - public int CompareTo(object obj) - { - WixActionRow otherActionRow = (WixActionRow)obj; - - return this.Sequence.CompareTo(otherActionRow.Sequence); - } - - /// - /// Parses ActionRows from the Xml reader. - /// - /// Xml reader that contains serialized ActionRows. - /// The parsed ActionRows. - internal static WixActionRow[] Parse(XmlReader reader) - { - Debug.Assert("action" == reader.LocalName); - - string id = null; - string condition = null; - bool empty = reader.IsEmptyElement; - int sequence = int.MinValue; - int sequenceCount = 0; - SequenceTable[] sequenceTables = new SequenceTable[Enum.GetValues(typeof(SequenceTable)).Length]; - - while (reader.MoveToNextAttribute()) - { - switch (reader.Name) - { - case "name": - id = reader.Value; - break; - case "AdminExecuteSequence": - if (reader.Value.Equals("yes")) - { - sequenceTables[sequenceCount] = SequenceTable.AdminExecuteSequence; - ++sequenceCount; - } - break; - case "AdminUISequence": - if (reader.Value.Equals("yes")) - { - sequenceTables[sequenceCount] = SequenceTable.AdminUISequence; - ++sequenceCount; - } - break; - case "AdvtExecuteSequence": - if (reader.Value.Equals("yes")) - { - sequenceTables[sequenceCount] = SequenceTable.AdvtExecuteSequence; - ++sequenceCount; - } - break; - case "condition": - condition = reader.Value; - break; - case "InstallExecuteSequence": - if (reader.Value.Equals("yes")) - { - sequenceTables[sequenceCount] = SequenceTable.InstallExecuteSequence; - ++sequenceCount; - } - break; - case "InstallUISequence": - if (reader.Value.Equals("yes")) - { - sequenceTables[sequenceCount] = SequenceTable.InstallUISequence; - ++sequenceCount; - } - break; - case "sequence": - sequence = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - } - } - - if (null == id) - { - throw new XmlException(); - } - - if (int.MinValue == sequence) - { - throw new XmlException(); - } - else if (1 > sequence) - { - throw new XmlException(); - } - - if (0 == sequenceCount) - { - throw new XmlException(); - } - - if (!empty && reader.Read() && XmlNodeType.EndElement != reader.MoveToContent()) - { - throw new XmlException(); - } - - // create the actions - WixActionRow[] actionRows = new WixActionRow[sequenceCount]; - for (int i = 0; i < sequenceCount; i++) - { - WixActionRow actionRow = new WixActionRow(sequenceTables[i], id, condition, sequence); - actionRows[i] = actionRow; - } - - return actionRows; - } - - /// - /// Determines whether this ActionRow contains the specified ActionRow as a child in its dependency tree. - /// - /// The possible child ActionRow. - /// true if the ActionRow is a child of this ActionRow; false otherwise. - public bool ContainsChildActionRow(WixActionRow actionRow) - { - if (null != this.previousActionRows) - { - if (this.previousActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) - { - return true; - } - } - - if (null != this.nextActionRows) - { - if (this.nextActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) - { - return true; - } - } - - return false; - } - - /// - /// Get all the actions scheduled before this one in a particular sequence table. - /// - /// The sequence table. - /// A RowCollection which will contain all the previous actions. - public void GetAllPreviousActionRows(SequenceTable sequenceTable, IList allPreviousActionRows) - { - if (null != this.previousActionRows) - { - foreach (WixActionRow actionRow in this.previousActionRows) - { - if (sequenceTable == actionRow.SequenceTable) - { - actionRow.GetAllPreviousActionRows(sequenceTable, allPreviousActionRows); - allPreviousActionRows.Add(actionRow); - actionRow.GetAllNextActionRows(sequenceTable, allPreviousActionRows); - } - } - } - } - - /// - /// Get all the actions scheduled after this one in a particular sequence table. - /// - /// The sequence table. - /// A RowCollection which will contain all the next actions. - public void GetAllNextActionRows(SequenceTable sequenceTable, IList allNextActionRows) - { - if (null != this.nextActionRows) - { - foreach (WixActionRow actionRow in this.nextActionRows) - { - if (sequenceTable == actionRow.SequenceTable) - { - actionRow.GetAllPreviousActionRows(sequenceTable, allNextActionRows); - allNextActionRows.Add(actionRow); - actionRow.GetAllNextActionRows(sequenceTable, allNextActionRows); - } - } - } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixActionRowCollection.cs b/src/WixToolset.Data/Rows/WixActionRowCollection.cs deleted file mode 100644 index 513a104f..00000000 --- a/src/WixToolset.Data/Rows/WixActionRowCollection.cs +++ /dev/null @@ -1,222 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Collections; - using System.Diagnostics; - using System.Xml; - - /// - /// A collection of action rows sorted by their sequence table and action name. - /// - public sealed class WixActionRowCollection : ICollection - { - private SortedList collection; - - /// - /// Creates a new action table object. - /// - public WixActionRowCollection() - { - this.collection = new SortedList(); - } - - /// - /// Gets the number of items in the collection. - /// - /// Number of items in collection. - public int Count - { - get { return this.collection.Count; } - } - - /// - /// Gets if the collection has been synchronized. - /// - /// True if the collection has been synchronized. - public bool IsSynchronized - { - get { return this.collection.IsSynchronized; } - } - - /// - /// Gets the object used to synchronize the collection. - /// - /// Oject used the synchronize the collection. - public object SyncRoot - { - get { return this; } - } - - /// - /// Get an ActionRow by its sequence table and action name. - /// - /// The sequence table of the ActionRow. - /// The action name of the ActionRow. - public WixActionRow this[SequenceTable sequenceTable, string action] - { - get { return (WixActionRow)this.collection[GetKey(sequenceTable, action)]; } - } - - /// - /// Add an ActionRow to the collection. - /// - /// The ActionRow to add. - /// true to overwrite an existing ActionRow; false otherwise. - public void Add(WixActionRow actionRow, bool overwrite) - { - string key = GetKey(actionRow.SequenceTable, actionRow.Action); - - if (overwrite) - { - this.collection[key] = actionRow; - } - else - { - this.collection.Add(key, actionRow); - } - } - - /// - /// Add an ActionRow to the collection. - /// - /// The ActionRow to add. - public void Add(WixActionRow actionRow) - { - this.Add(actionRow, false); - } - - /// - /// Determines if the collection contains an ActionRow with a specific sequence table and name. - /// - /// The sequence table of the ActionRow. - /// The action name of the ActionRow. - /// true if the ActionRow was found; false otherwise. - public bool Contains(SequenceTable sequenceTable, string action) - { - return this.collection.Contains(GetKey(sequenceTable, action)); - } - - /// - /// Copies the collection into an array. - /// - /// Array to copy the collection into. - /// Index to start copying from. - public void CopyTo(System.Array array, int index) - { - this.collection.Values.CopyTo(array, index); - } - - /// - /// Gets the enumerator for the collection. - /// - /// The enumerator for the collection. - public IEnumerator GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } - - /// - /// Remove an ActionRow from the collection. - /// - /// The sequence table of the ActionRow. - /// The action name of the ActionRow. - public void Remove(SequenceTable sequenceTable, string action) - { - this.collection.Remove(GetKey(sequenceTable, action)); - } - - /// - /// Load an action table from an XmlReader. - /// - /// Reader to get data from. - /// The ActionRowCollection represented by the xml. - internal static WixActionRowCollection Load(XmlReader reader) - { - reader.MoveToContent(); - - return Parse(reader); - } - - /// - /// Creates a new action table object and populates it from an Xml reader. - /// - /// Reader to get data from. - /// The parsed ActionTable. - private static WixActionRowCollection Parse(XmlReader reader) - { - if (!reader.LocalName.Equals("actions")) - { - throw new XmlException(); - } - - WixActionRowCollection actionRows = new WixActionRowCollection(); - bool empty = reader.IsEmptyElement; - - while (reader.MoveToNextAttribute()) - { - } - - if (!empty) - { - bool done = false; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "action": - WixActionRow[] parsedActionRows = WixActionRow.Parse(reader); - - foreach (WixActionRow actionRow in parsedActionRows) - { - actionRows.Add(actionRow); - } - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return actionRows; - } - - /// - /// Get the key for storing an ActionRow. - /// - /// The sequence table of the ActionRow. - /// The action name of the ActionRow. - /// The string key. - private static string GetKey(SequenceTable sequenceTable, string action) - { - return GetKey(sequenceTable.ToString(), action); - } - - /// - /// Get the key for storing an ActionRow. - /// - /// The sequence table of the ActionRow. - /// The action name of the ActionRow. - /// The string key. - private static string GetKey(string sequenceTable, string action) - { - return String.Concat(sequenceTable, '/', action); - } - } -} diff --git a/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs b/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs deleted file mode 100644 index c10a39ab..00000000 --- a/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs +++ /dev/null @@ -1,79 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - - /// - /// Specialization of a row for the WixApprovedExeForElevation table. - /// - public class WixApprovedExeForElevationRow : Row - { - /// - /// Creates an ApprovedExeForElevation row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this ApprovedExeForElevation row belongs to and should get its column definitions from. - public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates an ApprovedExeForElevation row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this ApprovedExeForElevation row belongs to and should get its column definitions from. - public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the ApprovedExeForElevation identifier. - /// - /// The ApprovedExeForElevation identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the Key path. - /// - /// The Key path. - public string Key - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the Value name. - /// - /// The Value name. - public string ValueName - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the attibutes. - /// - /// The BundleApprovedExeForElevationAttributes. - public BundleApprovedExeForElevationAttributes Attributes - { - get { return (BundleApprovedExeForElevationAttributes)this.Fields[3].Data; } - set { this.Fields[3].Data = (int)value; } - } - - /// - /// Gets whether this row is 64-bit. - /// - public bool Win64 - { - get { return BundleApprovedExeForElevationAttributes.Win64 == (this.Attributes & BundleApprovedExeForElevationAttributes.Win64); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs b/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs deleted file mode 100644 index 05c1e597..00000000 --- a/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs +++ /dev/null @@ -1,50 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixCatalog table. - /// - public sealed class WixBundleCatalogRow : Row - { - /// - /// Creates a Catalog row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Catalog row belongs to and should get its column definitions from. - public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a Catalog row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Catalog row belongs to and should get its column definitions from. - public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the catalog identifier. - /// - /// The catalog identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the payload identifier. - /// - /// The payload identifier. - public string Payload - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleContainerRow.cs b/src/WixToolset.Data/Rows/WixBundleContainerRow.cs deleted file mode 100644 index 7b03dcc5..00000000 --- a/src/WixToolset.Data/Rows/WixBundleContainerRow.cs +++ /dev/null @@ -1,78 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the Container table. - /// - public class WixBundleContainerRow : Row - { - /// - /// Creates a ContainerRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a ContainerRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public ContainerType Type - { - get { return (ContainerType)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - - public string DownloadUrl - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public long Size - { - get { return (long)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public string Hash - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public int AttachedContainerIndex - { - get { return (null == this.Fields[6].Data) ? -1 : (int)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - public string WorkingPath - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs deleted file mode 100644 index 1d4d7bbb..00000000 --- a/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs +++ /dev/null @@ -1,12 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - [Flags] - public enum WixBundleExePackageAttributes - { - Repairable = 0x1, - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs b/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs deleted file mode 100644 index 5bca6029..00000000 --- a/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs +++ /dev/null @@ -1,101 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixBundleExePackage table. - /// - public sealed class WixBundleExePackageRow : Row - { - /// - /// Creates a WixBundleExePackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleExePackageRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the raw Exe attributes of a patch. - /// - public WixBundleExePackageAttributes Attributes - { - get { return (WixBundleExePackageAttributes)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the protcol for the executable package. - /// - public string DetectCondition - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the install command for the executable package. - /// - public string InstallCommand - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the repair command for the executable package. - /// - public string RepairCommand - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the uninstall command for the executable package. - /// - public string UninstallCommand - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the protcol for the executable package. - /// - public string ExeProtocol - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets whether the executable package is repairable. - /// - public bool Repairable - { - get { return 0 != (this.Attributes & WixBundleExePackageAttributes.Repairable); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs deleted file mode 100644 index 551eae20..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs +++ /dev/null @@ -1,93 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the MsiFeature table. - /// - public class WixBundleMsiFeatureRow : Row - { - /// - /// Creates a MsiFeatureRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a MsiFeatureRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public long Size - { - get { return (long)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string Parent - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Title - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public string Description - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public int Display - { - get { return (int)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - public int Level - { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - public string Directory - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - public int Attributes - { - get { return (int)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs deleted file mode 100644 index fc038f81..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs +++ /dev/null @@ -1,15 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - [Flags] - public enum WixBundleMsiPackageAttributes - { - DisplayInternalUI = 0x1, - EnableFeatureSelection = 0x4, - ForcePerMachine = 0x2, - SuppressLooseFilePayloadGeneration = 0x8, - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs deleted file mode 100644 index 22e66a7a..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs +++ /dev/null @@ -1,137 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Globalization; - - /// - /// Specialization of a row for the WixBundleMsiPackage table. - /// - public sealed class WixBundleMsiPackageRow : Row - { - /// - /// Creates a WixBundleMsiPackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleMsiPackageRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the raw MSI attributes of a package. - /// - public WixBundleMsiPackageAttributes Attributes - { - get { return (WixBundleMsiPackageAttributes)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the MSI package's product code. - /// - public string ProductCode - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the MSI package's upgrade code. - /// - public string UpgradeCode - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the product version of the MSI package. - /// - public string ProductVersion - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the language of the MSI package. - /// - public int ProductLanguage - { - get { return Convert.ToInt32(this.Fields[5].Data, CultureInfo.InvariantCulture); } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the product name of the MSI package. - /// - public string ProductName - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the MSI package's manufacturer. - /// - public string Manufacturer - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets the display internal UI of a package. - /// - public bool DisplayInternalUI - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.DisplayInternalUI); } - } - - /// - /// Gets the display internal UI of a package. - /// - public bool EnableFeatureSelection - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection); } - } - - /// - /// Gets the display internal UI of a package. - /// - public bool ForcePerMachine - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine); } - } - - /// - /// Gets the suppress loose file payload generation of a package. - /// - public bool SuppressLooseFilePayloadGeneration - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.SuppressLooseFilePayloadGeneration); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs deleted file mode 100644 index 524f7929..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs +++ /dev/null @@ -1,58 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixBundleMsiProperty table. - /// - public sealed class WixBundleMsiPropertyRow : Row - { - /// - /// Creates an WixBundleMsiProperty row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundleMsiProperty row belongs to and should get its column definitions from. - public WixBundleMsiPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the property identity. - /// - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets and sets the value for the row. - /// - /// MsiProperty value for the row. - public string Value - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets and sets the condition for the row. - /// - /// MsiProperty condition for the row. - public string Condition - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs deleted file mode 100644 index 8f33e283..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs +++ /dev/null @@ -1,14 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - [Flags] - public enum WixBundleMspPackageAttributes - { - DisplayInternalUI = 0x1, - Slipstream = 0x2, - TargetUnspecified = 0x4, - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs deleted file mode 100644 index eccf0aea..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs +++ /dev/null @@ -1,99 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the ChainMspPackage table. - /// - public sealed class WixBundleMspPackageRow : Row - { - /// - /// Creates a ChainMspPackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleMspPackage row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the raw MSP attributes of a patch. - /// - public WixBundleMspPackageAttributes Attributes - { - get { return (WixBundleMspPackageAttributes)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the patch code. - /// - public string PatchCode - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the patch's manufacturer. - /// - public string Manufacturer - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the patch's xml. - /// - public string PatchXml - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets the display internal UI of a patch. - /// - public bool DisplayInternalUI - { - get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.DisplayInternalUI); } - } - - /// - /// Gets whether to slipstream the patch. - /// - public bool Slipstream - { - get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.Slipstream); } - } - - /// - /// Gets whether the patch targets an unspecified number of packages. - /// - public bool TargetUnspecified - { - get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs deleted file mode 100644 index 0df635c2..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs +++ /dev/null @@ -1,57 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixBundleMsuPackage table. - /// - public sealed class WixBundleMsuPackageRow : Row - { - /// - /// Creates a WixBundleMsuPackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleMsuPackage row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the detection condition the package. - /// - public string DetectCondition - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the KB of the package. - /// - public string MsuKB - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs deleted file mode 100644 index 5b88ea5b..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - [Flags] - public enum WixBundlePackageAttributes - { - Permanent = 0x1, - Visible = 0x2, - } -} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs deleted file mode 100644 index eba647d5..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs +++ /dev/null @@ -1,82 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// Specialization of a row for the WixBundlePackageCommandLine table. - /// - public class WixBundlePackageCommandLineRow : Row - { - /// - /// Creates a WixBundlePackageCommandLineRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from. - public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates an WixBundlePackageCommandLineRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from. - public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the package identifier. - /// - /// The package identifier. - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the command-line argument for installation. - /// - /// The command-line argument. - public string InstallArgument - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the command-line argument for uninstallation. - /// - /// The command-line argument. - public string UninstallArgument - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the command-line argument for repair. - /// - /// The command-line argument. - public string RepairArgument - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the condition. - /// - /// The condition. - public string Condition - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs deleted file mode 100644 index 410c191e..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs +++ /dev/null @@ -1,51 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the ExitCode table. - /// - public class WixBundlePackageExitCodeRow : Row - { - /// - /// Creates a ExitCodeRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a ExitCodeRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public int? Code - { - get { return (null == this.Fields[1].Data) ? (int?)null : (int?)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public ExitCodeBehaviorType Behavior - { - get { return (ExitCodeBehaviorType)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageRow.cs deleted file mode 100644 index e278e9d8..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageRow.cs +++ /dev/null @@ -1,226 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixBundlePackage table. - /// - public sealed class WixBundlePackageRow : Row - { - /// - /// Creates a WixBundlePackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundlePackage row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key to the WixChainItem. - /// - public string WixChainItemId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the item type. - /// - public WixBundlePackageType Type - { - get { return (WixBundlePackageType)this.Fields[1].Data; } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets the indentifier of the package's payload. - /// - public string PackagePayload - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the raw attributes of a package. - /// - public WixBundlePackageAttributes Attributes - { - get { return (WixBundlePackageAttributes)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the install condition of the package. - /// - public string InstallCondition - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the language of the package. - /// - public YesNoAlwaysType Cache - { - get { return (null == this.Fields[5].Data) ? YesNoAlwaysType.NotSet : (YesNoAlwaysType)this.Fields[5].Data; } - set { this.Fields[5].Data = (int)value; } - } - - /// - /// Gets or sets the indentifier of the package's cache. - /// - public string CacheId - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets whether the package is vital. - /// - public YesNoType Vital - { - get { return (null == this.Fields[7].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[7].Data; } - set { this.Fields[7].Data = (int)value; } - } - - /// - /// Gets or sets whether the package is per-machine. - /// - public YesNoDefaultType PerMachine - { - get { return (null == this.Fields[8].Data) ? YesNoDefaultType.NotSet : (YesNoDefaultType)this.Fields[8].Data; } - set { this.Fields[8].Data = (int)value; } - } - - /// - /// Gets or sets the variable that points to the log for the package. - /// - public string LogPathVariable - { - get { return (string)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - /// - /// Gets or sets the variable that points to the rollback log for the package. - /// - public string RollbackLogPathVariable - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - /// - /// Gets or sets the size of the package. - /// - public long Size - { - get { return (long)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - - /// - /// Gets or sets the install size of the package. - /// - public long? InstallSize - { - get { return (long?)this.Fields[12].Data; } - set { this.Fields[12].Data = value; } - } - - /// - /// Gets or sets the version of the package. - /// - public string Version - { - get { return (string)this.Fields[13].Data; } - set { this.Fields[13].Data = value; } - } - - /// - /// Gets or sets the language of the package. - /// - public int Language - { - get { return (int)this.Fields[14].Data; } - set { this.Fields[14].Data = value; } - } - - /// - /// Gets or sets the display name of the package. - /// - public string DisplayName - { - get { return (string)this.Fields[15].Data; } - set { this.Fields[15].Data = value; } - } - - /// - /// Gets or sets the description of the package. - /// - public string Description - { - get { return (string)this.Fields[16].Data; } - set { this.Fields[16].Data = value; } - } - - /// - /// Gets or sets the rollback boundary identifier for the package. - /// - public string RollbackBoundary - { - get { return (string)this.Fields[17].Data; } - set { this.Fields[17].Data = value; } - } - - /// - /// Gets or sets the backward rollback boundary identifier for the package. - /// - public string RollbackBoundaryBackward - { - get { return (string)this.Fields[18].Data; } - set { this.Fields[18].Data = value; } - } - - /// - /// Gets or sets whether the package is x64. - /// - public YesNoType x64 - { - get { return (null == this.Fields[19].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[19].Data; } - set { this.Fields[19].Data = (int)value; } - } - - /// - /// Gets whether the package is permanent. - /// - public bool Permanent - { - get { return 0 != (this.Attributes & WixBundlePackageAttributes.Permanent); } - } - - /// - /// Gets whether the package is visible. - /// - public bool Visible - { - get { return 0 != (this.Attributes & WixBundlePackageAttributes.Visible); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundlePackageType.cs b/src/WixToolset.Data/Rows/WixBundlePackageType.cs deleted file mode 100644 index a4277a8a..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageType.cs +++ /dev/null @@ -1,15 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Types of bundle packages. - /// - public enum WixBundlePackageType - { - Exe, - Msi, - Msp, - Msu, - } -} diff --git a/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs b/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs deleted file mode 100644 index e25f4a55..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs +++ /dev/null @@ -1,81 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Collections.Generic; - using System.Text; - - /// - /// Attributes for the PatchTargetCode table. - /// - [Flags] - public enum WixBundlePatchTargetCodeAttributes : int - { - None = 0, - - /// - /// The transform targets a specific ProductCode. - /// - TargetsProductCode = 1, - - /// - /// The transform targets a specific UpgradeCode. - /// - TargetsUpgradeCode = 2, - } - - /// - /// Specialization of a row for the PatchTargetCode table. - /// - public class WixBundlePatchTargetCodeRow : Row - { - /// - /// Creates a PatchTargetCodeRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this PatchTargetCode row belongs to and should get its column definitions from. - public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a PatchTargetCodeRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this PatchTargetCode row belongs to and should get its column definitions from. - public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string MspPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string TargetCode - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public WixBundlePatchTargetCodeAttributes Attributes - { - get { return (WixBundlePatchTargetCodeAttributes)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - - public bool TargetsProductCode - { - get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsProductCode & this.Attributes); } - } - - public bool TargetsUpgradeCode - { - get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode & this.Attributes); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs b/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs deleted file mode 100644 index 8aac8aa0..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs +++ /dev/null @@ -1,185 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.IO; - - /// - /// Specialization of a row for the PayloadInfo table. - /// - public class WixBundlePayloadRow : Row - { - /// - /// Creates a PayloadRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a PayloadRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string SourceFile - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string DownloadUrl - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public YesNoDefaultType Compressed - { - get { return (YesNoDefaultType)this.Fields[4].Data; } - set { this.Fields[4].Data = (int)value; } - } - - public string UnresolvedSourceFile - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public string DisplayName - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - public string Description - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - public bool EnableSignatureValidation - { - get { return (null != this.Fields[8].Data) && (1 == (int)this.Fields[8].Data); } - set { this.Fields[8].Data = value ? 1 : 0; } - } - - public int FileSize - { - get { return (int)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - public string Version - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - public string Hash - { - get { return (string)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - - public string PublicKey - { - get { return (string)this.Fields[12].Data; } - set { this.Fields[12].Data = value; } - } - - public string Thumbprint - { - get { return (string)this.Fields[13].Data; } - set { this.Fields[13].Data = value; } - } - - public string Catalog - { - get { return (string)this.Fields[14].Data; } - set { this.Fields[14].Data = value; } - } - - public string Container - { - get { return (string)this.Fields[15].Data; } - set { this.Fields[15].Data = value; } - } - - public string Package - { - get { return (string)this.Fields[16].Data; } - set { this.Fields[16].Data = value; } - } - - public bool ContentFile - { - get { return (null != this.Fields[17].Data) && (1 == (int)this.Fields[17].Data); } - set { this.Fields[17].Data = value ? 1 : 0; } - } - - public string EmbeddedId - { - get { return (string)this.Fields[18].Data; } - set { this.Fields[18].Data = value; } - } - - public bool LayoutOnly - { - get { return (null != this.Fields[19].Data) && (1 == (int)this.Fields[19].Data); } - set { this.Fields[19].Data = value ? 1 : 0; } - } - - public PackagingType Packaging - { - get - { - object data = this.Fields[20].Data; - return (null == data) ? PackagingType.Unknown : (PackagingType)data; - } - - set - { - if (PackagingType.Unknown == value) - { - this.Fields[20].Data = null; - } - else - { - this.Fields[20].Data = (int)value; - } - } - } - - public string ParentPackagePayload - { - get { return (string)this.Fields[21].Data; } - set { this.Fields[21].Data = value; } - } - - public string FullFileName - { - get { return String.IsNullOrEmpty(this.SourceFile) ? String.Empty : Path.GetFullPath(this.SourceFile); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs deleted file mode 100644 index ea9ff99e..00000000 --- a/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs +++ /dev/null @@ -1,87 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the RelatedPackage table. - /// - public class WixBundleRelatedPackageRow : Row - { - /// - /// Creates a RelatedPackageRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a RelatedPackageRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Id - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string MinVersion - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string MaxVersion - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Languages - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public bool MinInclusive - { - get { return 1 == (int)this.Fields[5].Data; } - set { this.Fields[5].Data = value ? 1 : 0; } - } - - public bool MaxInclusive - { - get { return 1 == (int)this.Fields[6].Data; } - set { this.Fields[6].Data = value ? 1 : 0; } - } - - public bool LangInclusive - { - get { return 1 == (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value ? 1 : 0; } - } - - public bool OnlyDetect - { - get { return 1 == (int)this.Fields[8].Data; } - set { this.Fields[8].Data = value ? 1 : 0; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs b/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs deleted file mode 100644 index d0a994c0..00000000 --- a/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs +++ /dev/null @@ -1,59 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixBundleRollbackBoundary table. - /// - public sealed class WixBundleRollbackBoundaryRow : Row - { - /// - /// Creates a WixBundleRollbackBoundary row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a RollbackBoundaryRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets whether the package is vital. - /// - /// Vitality of the package. - public YesNoType Vital - { - get { return (null == this.Fields[1].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[1].Data; } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets whether the rollback-boundary should be installed as an MSI transaction. - /// - /// Vitality of the package. - public YesNoType Transaction - { - get { return (null == this.Fields[2].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleRow.cs b/src/WixToolset.Data/Rows/WixBundleRow.cs deleted file mode 100644 index 4c96d6cc..00000000 --- a/src/WixToolset.Data/Rows/WixBundleRow.cs +++ /dev/null @@ -1,228 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// Bundle info for binding Bundles. - /// - public class WixBundleRow : Row - { - /// - /// Creates a WixBundleRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixBundleRow row belongs to and should get its column definitions from. - public WixBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundleRow row belongs to and should get its column definitions from. - public WixBundleRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Version - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Copyright - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string AboutUrl - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public int DisableModify - { - get { return (null == this.Fields[4].Data) ? 0 : (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public bool DisableRemove - { - get { return (null != this.Fields[5].Data && 0 != (int)this.Fields[5].Data); } - set { this.Fields[5].Data = value ? 1 : 0; } - } - - // There is no 6. It used to be DisableRepair. - - public string HelpTelephone - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - public string HelpLink - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - public string Publisher - { - get { return (string)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - public string UpdateUrl - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - public YesNoDefaultType Compressed - { - get { return (null == this.Fields[11].Data) ? YesNoDefaultType.Default : (0 == (int)this.Fields[11].Data) ? YesNoDefaultType.No : YesNoDefaultType.Yes; } - set { this.Fields[11].Data = (int)value; } - } - - public PackagingType DefaultPackagingType - { - get { return (YesNoDefaultType.No == this.Compressed) ? PackagingType.External : PackagingType.Embedded; } - } - - public string LogPathPrefixExtension - { - get { return (string)this.Fields[12].Data ?? String.Empty; } - set { this.Fields[12].Data = value; } - } - - public string LogPathVariable - { - get - { - string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); - return logVariableAndPrefixExtension[0]; - } - } - - public string LogPrefix - { - get - { - string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); - if (2 > logVariableAndPrefixExtension.Length) - { - return String.Empty; - } - string logPrefixAndExtension = logVariableAndPrefixExtension[1]; - int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); - return logPrefixAndExtension.Substring(0, extensionIndex); - } - } - - public string LogExtension - { - get - { - string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); - if (2 > logVariableAndPrefixExtension.Length) - { - return String.Empty; - } - string logPrefixAndExtension = logVariableAndPrefixExtension[1]; - int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); - return logPrefixAndExtension.Substring(extensionIndex + 1); - } - } - - public string IconPath - { - get { return (string)this.Fields[13].Data; } - set { this.Fields[13].Data = value; } - } - - public string SplashScreenBitmapPath - { - get { return (string)this.Fields[14].Data; } - set { this.Fields[14].Data = value; } - } - - public string Condition - { - get { return (string)this.Fields[15].Data; } - set { this.Fields[15].Data = value; } - } - - public string Tag - { - get { return (string)this.Fields[16].Data; } - set { this.Fields[16].Data = value; } - } - - public Platform Platform - { - get { return (Platform)Enum.Parse(typeof(Platform), (string)this.Fields[17].Data); } - set { this.Fields[17].Data = value.ToString(); } - } - - public string ParentName - { - get { return (string)this.Fields[18].Data; } - set { this.Fields[18].Data = value; } - } - - public string UpgradeCode - { - get { return (string)this.Fields[19].Data; } - set { this.Fields[19].Data = value; } - } - - public Guid BundleId - { - get - { - if (null == this.Fields[20].Data) - { - this.Fields[20].Data = Guid.NewGuid().ToString("B"); - } - - return new Guid((string)this.Fields[20].Data); - } - - set { this.Fields[20].Data = value.ToString(); } - } - - public string ProviderKey - { - get - { - if (null == this.Fields[21].Data) - { - this.Fields[21].Data = this.BundleId.ToString("B"); - } - - return (string)this.Fields[21].Data; - } - - set { this.Fields[21].Data = value; } - } - - public bool PerMachine - { - get { return (null != this.Fields[22].Data && 0 != (int)this.Fields[22].Data); } - set { this.Fields[22].Data = value ? 1 : 0; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs b/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs deleted file mode 100644 index d11b23ef..00000000 --- a/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs +++ /dev/null @@ -1,48 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the SlipstreamMsp table. - /// - public class WixBundleSlipstreamMspRow : Row - { - /// - /// Creates a SlipstreamMspRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a SlipstreamMspRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row for the MSP package. - /// - public string MspPackageId - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs b/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs deleted file mode 100644 index e0150685..00000000 --- a/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs +++ /dev/null @@ -1,38 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// Bundle update info for binding Bundles. - /// - public class WixBundleUpdateRow : Row - { - /// - /// Creates a WixBundleUpdateRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixBundleUpdateRow row belongs to and should get its column definitions from. - public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleUpdateRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundleUpdateRow row belongs to and should get its column definitions from. - public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Location - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixBundleVariableRow.cs b/src/WixToolset.Data/Rows/WixBundleVariableRow.cs deleted file mode 100644 index e7ff1a4d..00000000 --- a/src/WixToolset.Data/Rows/WixBundleVariableRow.cs +++ /dev/null @@ -1,80 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the Variable table. - /// - public sealed class WixBundleVariableRow : Row - { - /// - /// Creates a Variable row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a Variable row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the variable identifier. - /// - /// The variable identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the variable's value. - /// - /// The variable's value. - public string Value - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the variable's type. - /// - /// The variable's type. - public string Type - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets whether this variable is hidden. - /// - /// Whether this variable is hidden. - public bool Hidden - { - get { return (null == this.Fields[3].Data || 0 == ((int)this.Fields[3].Data)) ? false : true; } - set { this.Fields[3].Data = value ? 1 : 0; } - } - - /// - /// Gets or sets whether this variable is persisted. - /// - /// Whether this variable is persisted. - public bool Persisted - { - get { return (null == this.Fields[4].Data || 0 == ((int)this.Fields[4].Data)) ? false : true; } - set { this.Fields[4].Data = value ? 1 : 0; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixChainAttributes.cs b/src/WixToolset.Data/Rows/WixChainAttributes.cs deleted file mode 100644 index 017505bc..00000000 --- a/src/WixToolset.Data/Rows/WixChainAttributes.cs +++ /dev/null @@ -1,15 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - [Flags] - public enum WixChainAttributes - { - None = 0x0, - DisableRollback = 0x1, - DisableSystemRestore = 0x2, - ParallelCache = 0x4, - } -} diff --git a/src/WixToolset.Data/Rows/WixChainItemRow.cs b/src/WixToolset.Data/Rows/WixChainItemRow.cs deleted file mode 100644 index 12538d71..00000000 --- a/src/WixToolset.Data/Rows/WixChainItemRow.cs +++ /dev/null @@ -1,39 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixChainItem table. - /// - public sealed class WixChainItemRow : Row - { - /// - /// Creates a WixChainItem row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this ChainItem row belongs to and should get its column definitions from. - public WixChainItemRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixChainItem row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this ChainItem row belongs to and should get its column definitions from. - public WixChainItemRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the WixChainItem identifier. - /// - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixChainRow.cs b/src/WixToolset.Data/Rows/WixChainRow.cs deleted file mode 100644 index 94600efa..00000000 --- a/src/WixToolset.Data/Rows/WixChainRow.cs +++ /dev/null @@ -1,63 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixChain table. - /// - public sealed class WixChainRow : Row - { - /// - /// Creates a WixChain row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixChainRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixChainRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixChainRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the raw chain attributes. - /// - public WixChainAttributes Attributes - { - get { return (WixChainAttributes)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets the disable rollback state of a chain. - /// - public bool DisableRollback - { - get { return 0 != (this.Attributes & WixChainAttributes.DisableRollback); } - } - - /// - /// Gets disable system restore state of a chain. - /// - public bool DisableSystemRestore - { - get { return 0 != (this.Attributes & WixChainAttributes.DisableSystemRestore); } - } - - /// - /// Gets parallel cache of a chain. - /// - public bool ParallelCache - { - get { return 0 != (this.Attributes & WixChainAttributes.ParallelCache); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs b/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs deleted file mode 100644 index b516c5e9..00000000 --- a/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs +++ /dev/null @@ -1,208 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Diagnostics; - using System.Diagnostics.CodeAnalysis; - using System.Xml; - - /// - /// Specialization of a row for the WixComplexReference table. - /// - public sealed class WixComplexReferenceRow : Row, IComparable - { - /// - /// Creates a WixComplexReferenceRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixComplexReferenceRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets the parent type of the complex reference. - /// - /// Parent type of the complex reference. - public ComplexReferenceParentType ParentType - { - get { return (ComplexReferenceParentType)Enum.ToObject(typeof(ComplexReferenceParentType), (int)this.Fields[1].Data); } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets the parent identifier of the complex reference. - /// - /// Parent identifier of the complex reference. - public string ParentId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets the parent language of the complex reference. - /// - /// Parent language of the complex reference. - public string ParentLanguage - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets the child type of the complex reference. - /// - /// Child type of the complex reference. - public ComplexReferenceChildType ChildType - { - get { return (ComplexReferenceChildType)Enum.ToObject(typeof(ComplexReferenceChildType), (int)this.Fields[4].Data); } - set { this.Fields[4].Data = (int)value; } - } - - /// - /// Gets the child identifier of the complex reference. - /// - /// Child identifier of the complex reference. - public string ChildId - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets if this is the primary complex reference. - /// - /// true if primary complex reference. - public bool IsPrimary - { - get - { - return (0x1 == ((int)this.Fields[5].Data & 0x1)); - } - - set - { - if (null == this.Fields[5].Data) - { - this.Fields[5].Data = 0; - } - - if (value) - { - this.Fields[5].Data = (int)this.Fields[5].Data | 0x1; - } - else - { - this.Fields[5].Data = (int)this.Fields[5].Data & ~0x1; - } - } - } - - /// - /// Determines if two complex references are equivalent. - /// - /// Complex reference to compare. - /// True if complex references are equivalent. - public override bool Equals(object obj) - { - return 0 == this.CompareTo(obj); - } - - /// - /// Gets the hash code for the complex reference. - /// - /// Hash code for the complex reference. - public override int GetHashCode() - { - return this.ChildType.GetHashCode() ^ this.ChildId.GetHashCode() ^ this.ParentType.GetHashCode() ^ this.ParentLanguage.GetHashCode() ^ this.ParentId.GetHashCode() ^ this.IsPrimary.GetHashCode(); - } - - /// - /// Compares two complex references. - /// - /// Complex reference to compare to. - /// Zero if the objects are equivalent, negative number if the provided object is less, positive if greater. - public int CompareTo(object obj) - { - int comparison = this.CompareToWithoutConsideringPrimary(obj); - if (0 == comparison) - { - comparison = ((WixComplexReferenceRow)obj).IsPrimary.CompareTo(this.IsPrimary); // Note: the order of these is purposely switched to ensure that "Yes" is lower than "No" and "NotSet" - } - return comparison; - } - - /// - /// Compares two complex references without considering the primary bit. - /// - /// Complex reference to compare to. - /// Zero if the objects are equivalent, negative number if the provided object is less, positive if greater. - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")] - public int CompareToWithoutConsideringPrimary(object obj) - { - WixComplexReferenceRow other = obj as WixComplexReferenceRow; - if (null == other) - { - throw new ArgumentException(WixDataStrings.EXP_ExpectedComplexReferenceType, "obj"); - } - - int comparison = this.ChildType - other.ChildType; - if (0 == comparison) - { - comparison = String.Compare(this.ChildId, other.ChildId, StringComparison.Ordinal); - if (0 == comparison) - { - comparison = this.ParentType - other.ParentType; - if (0 == comparison) - { - string thisParentLanguage = null == this.ParentLanguage ? String.Empty : this.ParentLanguage; - string otherParentLanguage = null == other.ParentLanguage ? String.Empty : other.ParentLanguage; - comparison = String.Compare(thisParentLanguage, otherParentLanguage, StringComparison.Ordinal); - if (0 == comparison) - { - comparison = String.Compare(this.ParentId, other.ParentId, StringComparison.Ordinal); - } - } - } - } - - return comparison; - } - - /// - /// Creates a shallow copy of the ComplexReference. - /// - /// A shallow copy of the ComplexReference. - public WixComplexReferenceRow Clone() - { - WixComplexReferenceRow wixComplexReferenceRow = new WixComplexReferenceRow(this.SourceLineNumbers, this.Table); - wixComplexReferenceRow.ParentType = this.ParentType; - wixComplexReferenceRow.ParentId = this.ParentId; - wixComplexReferenceRow.ParentLanguage = this.ParentLanguage; - wixComplexReferenceRow.ChildType = this.ChildType; - wixComplexReferenceRow.ChildId = this.ChildId; - wixComplexReferenceRow.IsPrimary = this.IsPrimary; - - return wixComplexReferenceRow; - } - - /// - /// Changes all of the parent references to point to the passed in parent reference. - /// - /// New parent complex reference. - public void Reparent(WixComplexReferenceRow parent) - { - this.ParentId = parent.ParentId; - this.ParentLanguage = parent.ParentLanguage; - this.ParentType = parent.ParentType; - - if (!this.IsPrimary) - { - this.IsPrimary = parent.IsPrimary; - } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs b/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs deleted file mode 100644 index 000779d9..00000000 --- a/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs +++ /dev/null @@ -1,142 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixDeltaPatchFile table. - /// - public sealed class WixDeltaPatchFileRow : Row - { - /// - /// Creates a WixDeltaPatchFile row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixDeltaPatchFile row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this File row belongs to and should get its column definitions from. - public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the primary key of the file row. - /// - /// Primary key of the file row. - public string File - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the delta patch retain-length list for the file. - /// - /// RetainLength list for the file. - public string RetainLengths - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the previous delta patch retain-length list for the file. - /// - /// Previous RetainLength list for the file. - public string PreviousRetainLengths - { - get { return this.Fields[1].PreviousData; } - set { this.Fields[1].PreviousData = value; } - } - - /// - /// Gets or sets the delta patch ignore-offset list for the file. - /// - /// IgnoreOffset list for the file. - public string IgnoreOffsets - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the previous delta patch ignore-offset list for the file. - /// - /// Previous IgnoreOffset list for the file. - public string PreviousIgnoreOffsets - { - get { return this.Fields[2].PreviousData; } - set { this.Fields[2].PreviousData = value; } - } - - /// - /// Gets or sets the delta patch ignore-length list for the file. - /// - /// IgnoreLength list for the file. - public string IgnoreLengths - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the previous delta patch ignore-length list for the file. - /// - /// Previous IgnoreLength list for the file. - public string PreviousIgnoreLengths - { - get { return this.Fields[3].PreviousData; } - set { this.Fields[3].PreviousData = value; } - } - - /// - /// Gets or sets the delta patch retain-offset list for the file. - /// - /// RetainOffset list for the file. - public string RetainOffsets - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the previous delta patch retain-offset list for the file. - /// - /// PreviousRetainOffset list for the file. - public string PreviousRetainOffsets - { - get { return this.Fields[4].PreviousData; } - set { this.Fields[4].PreviousData = value; } - } - - /// - /// Gets or sets the symbol paths for the file. - /// - /// SymbolPath list for the file. - /// This is set during binding. - public string Symbols - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the previous symbol paths for the file. - /// - /// PreviousSymbolPath list for the file. - /// This is set during binding. - public string PreviousSymbols - { - get { return (string)this.Fields[5].PreviousData; } - set { this.Fields[5].PreviousData = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs b/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs deleted file mode 100644 index b6c0b840..00000000 --- a/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs +++ /dev/null @@ -1,58 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixDeltaPatchSymbolPaths table. - /// - public sealed class WixDeltaPatchSymbolPathsRow : Row - { - /// - /// Creates a WixDeltaPatchSymbolPaths row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixDeltaPatchSymbolPaths row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the identifier the symbol paths apply to. - /// - /// RetainLength list for the file. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the type of the identifier. - /// - public SymbolPathType Type - { - get { return (SymbolPathType)this.Fields[1].AsInteger(); } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the delta patch symbol paths. - /// - public string SymbolPaths - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixFileRow.cs b/src/WixToolset.Data/Rows/WixFileRow.cs deleted file mode 100644 index 52723f88..00000000 --- a/src/WixToolset.Data/Rows/WixFileRow.cs +++ /dev/null @@ -1,161 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixFile table. - /// - public sealed class WixFileRow : Row - { - /// - /// Creates a WixFile row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixFile row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixFileRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the primary key of the file row. - /// - /// Primary key of the file row. - public string File - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the assembly type of the file row. - /// - /// Assembly type of the file row. - public FileAssemblyType AssemblyType - { - get { return (null == this.Fields[1]) ? FileAssemblyType.NotAnAssembly : (FileAssemblyType)this.Fields[1].AsInteger(); } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets the identifier for the assembly manifest. - /// - /// Identifier for the assembly manifest. - public string AssemblyManifest - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the application for the assembly. - /// - /// Application for the assembly. - public string AssemblyApplication - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the directory of the file. - /// - /// Directory of the file. - public string Directory - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the disk id for this file. - /// - /// Disk id for the file. - public int DiskId - { - get { return (int)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the source location to the file. - /// - /// Source location to the file. - public string Source - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the source location to the file. - /// - /// Source location to the file. - public string PreviousSource - { - get { return (string)this.Fields[6].PreviousData; } - set { this.Fields[6].PreviousData = value; } - } - - /// - /// Gets or sets the architecture the file executes on. - /// - /// Architecture the file executes on. - public string ProcessorArchitecture - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets or sets the patch group of a patch-added file. - /// - /// The patch group of a patch-added file. - public int PatchGroup - { - get { return (null == this.Fields[8].Data) ? 0 : (int)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - /// - /// Gets or sets the attributes on a file. - /// - /// Attributes on a file. - public int Attributes - { - get { return (int)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - /// - /// Gets or sets the patching attributes to the file. - /// - /// Patching attributes of the file. - public PatchAttributeType PatchAttributes - { - get { return (PatchAttributeType)this.Fields[10].AsInteger(); } - set { this.Fields[10].Data = (int)value; } - } - - /// - /// Gets or sets the path to the delta patch header. - /// - /// Patch header path. - /// Set by the binder only when doing delta patching. - public string DeltaPatchHeaderSource - { - get { return (string)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixGroupRow.cs b/src/WixToolset.Data/Rows/WixGroupRow.cs deleted file mode 100644 index d36338d1..00000000 --- a/src/WixToolset.Data/Rows/WixGroupRow.cs +++ /dev/null @@ -1,62 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// Specialization of a row for the WixGroup table. - /// - public sealed class WixGroupRow : Row - { - /// - /// Creates a WixGroupRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixGroupRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the parent identifier of the complex reference. - /// - /// Parent identifier of the complex reference. - public string ParentId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets the parent type of the complex reference. - /// - /// Parent type of the complex reference. - public ComplexReferenceParentType ParentType - { - get { return (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[1].Data); } - set { this.Fields[1].Data = value.ToString(); } - } - - /// - /// Gets the child identifier of the complex reference. - /// - /// Child identifier of the complex reference. - public string ChildId - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets the child type of the complex reference. - /// - /// Child type of the complex reference. - public ComplexReferenceChildType ChildType - { - get { return (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[3].Data); } - set { this.Fields[3].Data = value.ToString(); } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixMediaRow.cs b/src/WixToolset.Data/Rows/WixMediaRow.cs deleted file mode 100644 index c1b3e155..00000000 --- a/src/WixToolset.Data/Rows/WixMediaRow.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the WixMedia table. - /// - public sealed class WixMediaRow : Row - { - /// - /// Creates a WixMedia row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixMediaRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixMedia row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixMediaRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the disk id for this media. - /// - /// Disk id for the media. - public int DiskId - { - get { return (int)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the compression level for this media row. - /// - /// Compression level. - public CompressionLevel? CompressionLevel - { - get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the layout location for this media row. - /// - /// Layout location to the root of the media. - public string Layout - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs b/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs deleted file mode 100644 index 27c5ccce..00000000 --- a/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs +++ /dev/null @@ -1,81 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - /// - /// Specialization of a row for the MediaTemplate table. - /// - public sealed class WixMediaTemplateRow : Row - { - /// - /// Creates a MediaTemplate row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this MediaTeplate row belongs to and should get its column definitions from. - public WixMediaTemplateRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the cabinet template name for this media template row. - /// - /// Cabinet name. - public string CabinetTemplate - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the compression level for this media template row. - /// - /// Compression level. - public CompressionLevel? CompressionLevel - { - get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the disk prompt for this media template row. - /// - /// Disk prompt. - public string DiskPrompt - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - - /// - /// Gets or sets the volume label for this media template row. - /// - /// Volume label. - public string VolumeLabel - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the maximum uncompressed media size for this media template row. - /// - /// Disk id. - public int MaximumUncompressedMediaSize - { - get { return (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the Maximum Cabinet Size For Large File Splitting for this media template row. - /// - /// Disk id. - public int MaximumCabinetSizeForLargeFileSplitting - { - get { return (int)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixMergeRow.cs b/src/WixToolset.Data/Rows/WixMergeRow.cs deleted file mode 100644 index 54f2125c..00000000 --- a/src/WixToolset.Data/Rows/WixMergeRow.cs +++ /dev/null @@ -1,149 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Globalization; - using System.Text; - using System.Xml; - - /// - /// Specialization of a row for tracking merge statements. - /// - public sealed class WixMergeRow : Row - { - /// - /// Creates a Merge row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Merge row belongs to and should get its column definitions from. - public WixMergeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// Creates a Merge row that belongs to a table. - /// Original source lines for this row. - /// Table this Merge row belongs to and should get its column definitions from. - public WixMergeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets and sets the id for a merge row. - /// - /// Id for the row. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the language for a merge row. - /// - /// Language for the row. - public string Language - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets and sets the directory for a merge row. - /// - /// Direcotory for the row. - public string Directory - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets and sets the path to the merge module for a merge row. - /// - /// Source path for the row. - public string SourceFile - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets and sets the disk id the merge module should be placed on for a merge row. - /// - /// Disk identifier for row. - public int DiskId - { - get { return (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets and sets the compression value for a merge row. - /// - /// Compression for a merge row. - public YesNoType FileCompression - { - get - { - if (null == this.Fields[5].Data) - { - return YesNoType.NotSet; - } - else if (1 == (int)this.Fields[5].Data) - { - return YesNoType.Yes; - } - else if (0 == (int)this.Fields[5].Data) - { - return YesNoType.No; - } - else - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_MergeTableFileCompressionColumnContainsInvalidValue, this.Fields[5].Data)); - } - } - set - { - if (YesNoType.Yes == value) - { - this.Fields[5].Data = 1; - } - else if (YesNoType.No == value) - { - this.Fields[5].Data = 0; - } - else if (YesNoType.NotSet == value) - { - this.Fields[5].Data = null; - } - else - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue, value)); - } - } - } - - /// - /// Gets and sets the configuration data for a merge row. - /// - /// Comma delimited string of "name=value" pairs. - public string ConfigurationData - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets and sets the primary feature for a merge row. - /// - /// The primary feature for a merge row. - public string Feature - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs b/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs deleted file mode 100644 index 2e5f53ad..00000000 --- a/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs +++ /dev/null @@ -1,81 +0,0 @@ -//------------------------------------------------------------------------------------------------- -// -// Copyright (c) 2004, Outercurve Foundation. -// This software is released under Microsoft Reciprocal License (MS-RL). -// The license and further copyright text can be found in the file -// LICENSE.TXT at the root directory of the distribution. -// -//------------------------------------------------------------------------------------------------- - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// Specialization of a row for the WixPayloadProperties table. - /// - public class WixPayloadPropertiesRow : Row - { - /// - /// Creates a WixPayloadProperties row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixPayloadProperties row belongs to and should get its column definitions from. - public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixPayloadProperties row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixPayloadProperties row belongs to and should get its column definitions from. - public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Package - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string Container - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Size - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public string DownloadUrl - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public string LayoutOnly - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixPropertyRow.cs b/src/WixToolset.Data/Rows/WixPropertyRow.cs deleted file mode 100644 index 5285195c..00000000 --- a/src/WixToolset.Data/Rows/WixPropertyRow.cs +++ /dev/null @@ -1,118 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Globalization; - - /// - /// Specialization of a row for the WixProperty table. - /// - public sealed class WixPropertyRow : Row - { - /// Creates a WixProperty row that belongs to a table. - /// Original source lines for this row. - /// Table this WixProperty row belongs to and should get its column definitions from. - public WixPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets and sets the id for this property row. - /// - /// Id for the property. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets if this is an admin property row. - /// - /// Flag if this is an admin property. - public bool Admin - { - get - { - return (0x1 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x1)); - } - - set - { - if (null == this.Fields[1].Data) - { - this.Fields[1].Data = 0; - } - - if (value) - { - this.Fields[1].Data = (int)this.Fields[1].Data | 0x1; - } - else - { - this.Fields[1].Data = (int)this.Fields[1].Data & ~0x1; - } - } - } - - /// - /// Gets and sets if this is a hidden property row. - /// - /// Flag if this is a hidden property. - public bool Hidden - { - get - { - return (0x2 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x2)); - } - - set - { - if (null == this.Fields[1].Data) - { - this.Fields[1].Data = 0; - } - - if (value) - { - this.Fields[1].Data = (int)this.Fields[1].Data | 0x2; - } - else - { - this.Fields[1].Data = (int)this.Fields[1].Data & ~0x2; - } - } - } - - /// - /// Gets and sets if this is a secure property row. - /// - /// Flag if this is a secure property. - public bool Secure - { - get - { - return (0x4 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x4)); - } - - set - { - if (null == this.Fields[1].Data) - { - this.Fields[1].Data = 0; - } - - if (value) - { - this.Fields[1].Data = (int)this.Fields[1].Data | 0x4; - } - else - { - this.Fields[1].Data = (int)this.Fields[1].Data & ~0x4; - } - } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs b/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs deleted file mode 100644 index 95fffde5..00000000 --- a/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using Serialize = WixToolset.Data.Serialize; - - /// - /// Specialization of a row for the RelatedBundle table. - /// - public sealed class WixRelatedBundleRow : Row - { - /// - /// Creates a RelatedBundle row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this RelatedBundle row belongs to and should get its column definitions from. - public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a RelatedBundle row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this RelatedBundle row belongs to and should get its column definitions from. - public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the related bundle identifier. - /// - /// The related bundle identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the related bundle action. - /// - /// The related bundle action. - public Serialize.RelatedBundle.ActionType Action - { - get { return (Serialize.RelatedBundle.ActionType)this.Fields[1].Data; } - set { this.Fields[1].Data = (int)value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs b/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs deleted file mode 100644 index 3a2cf8f1..00000000 --- a/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs +++ /dev/null @@ -1,63 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Diagnostics; - using System.Xml; - - /// - /// Specialization of a row for the WixSimpleReference table. - /// - public sealed class WixSimpleReferenceRow : Row - { - /// - /// Creates a WixSimpleReferenceRow that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Creates a WixSimpleReferenceRow that belongs to a table. - /// - /// Original source lines for this row. - /// Table definitions for this row. - public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinitions) - : base(sourceLineNumbers, tableDefinitions) - { - } - - /// - /// Gets or sets the primary keys of the simple reference. - /// - /// The primary keys of the simple reference. - public string PrimaryKeys - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets the symbolic name. - /// - /// Symbolic name. - public string SymbolicName - { - get { return String.Concat(this.TableName, ":", this.PrimaryKeys); } - } - - /// - /// Gets or sets the table name of the simple reference. - /// - /// The table name of the simple reference. - public string TableName - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs b/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs deleted file mode 100644 index 8d86f970..00000000 --- a/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs +++ /dev/null @@ -1,62 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - - /// - /// Update registration information for Binding. - /// - public class WixUpdateRegistrationRow : Row - { - /// - /// Creates a WixUpdateRegistrationRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixUpdateRegistrationRow row belongs to and should get its column definitions from. - public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixUpdateRegistrationRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixUpdateRegistrationRow row belongs to and should get its column definitions from. - public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Manufacturer - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Department - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string ProductFamily - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Classification - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/Rows/WixVariableRow.cs b/src/WixToolset.Data/Rows/WixVariableRow.cs deleted file mode 100644 index 241c9257..00000000 --- a/src/WixToolset.Data/Rows/WixVariableRow.cs +++ /dev/null @@ -1,81 +0,0 @@ -// 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. - -namespace WixToolset.Data.Rows -{ - using System; - using System.Globalization; - - /// - /// Specialization of a row for the WixVariable table. - /// - public sealed class WixVariableRow : Row - { - /// - /// Creates a WixVariable row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixVariable row belongs to and should get its column definitions from. - public WixVariableRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixVariable row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixVariable row belongs to and should get its column definitions from. - public WixVariableRow(SourceLineNumber sourceLineNumbers, Table table) : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the variable identifier. - /// - /// The variable identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the variable's value. - /// - /// The variable's value. - public string Value - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets whether this variable is overridable. - /// - /// Whether this variable is overridable. - public bool Overridable - { - get - { - return (0x1 == (Convert.ToInt32(this.Fields[2].Data, CultureInfo.InvariantCulture) & 0x1)); - } - - set - { - if (null == this.Fields[2].Data) - { - this.Fields[2].Data = 0; - } - - if (value) - { - this.Fields[2].Data = (int)this.Fields[2].Data | 0x1; - } - else - { - this.Fields[2].Data = (int)this.Fields[2].Data & ~0x1; - } - } - } - } -} diff --git a/src/WixToolset.Data/Section.cs b/src/WixToolset.Data/Section.cs index 6757aa77..f9e19f3b 100644 --- a/src/WixToolset.Data/Section.cs +++ b/src/WixToolset.Data/Section.cs @@ -2,6 +2,7 @@ namespace WixToolset.Data { +#if false using System; using System.Collections.Generic; using System.Diagnostics; @@ -237,4 +238,5 @@ namespace WixToolset.Data writer.WriteEndElement(); } } +#endif } diff --git a/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs b/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs new file mode 100644 index 00000000..b9d0b620 --- /dev/null +++ b/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs @@ -0,0 +1,13 @@ +// 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. + +namespace WixToolset.Data +{ + internal class SimpleTupleDefinitionCreator : ITupleDefinitionCreator + { + public bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition) + { + tupleDefinition = TupleDefinitions.ByName(name); + return tupleDefinition != null; + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/SubStorage.cs b/src/WixToolset.Data/SubStorage.cs deleted file mode 100644 index e136bfe9..00000000 --- a/src/WixToolset.Data/SubStorage.cs +++ /dev/null @@ -1,109 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System.Xml; - - /// - /// Substorage inside an output. - /// - public sealed class SubStorage - { - /// - /// Instantiate a new substorage. - /// - /// The substorage name. - /// The substorage data. - public SubStorage(string name, Output data) - { - this.Name = name; - this.Data = data; - } - - /// - /// Gets the substorage name. - /// - /// The substorage name. - public string Name { get; private set; } - - /// - /// Gets the substorage data. - /// - /// The substorage data. - public Output Data { get; private set; } - - /// - /// Creates a SubStorage from the XmlReader. - /// - /// Reader to get data from. - /// New SubStorage object. - internal static SubStorage Read(XmlReader reader) - { - if (!reader.LocalName.Equals("subStorage" == reader.LocalName)) - { - throw new XmlException(); - } - - Output data = null; - bool empty = reader.IsEmptyElement; - string name = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "name": - name = reader.Value; - break; - } - } - - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "wixOutput": - data = Output.Read(reader, true); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return new SubStorage(name, data); - } - - /// - /// Persists a SubStorage in an XML format. - /// - /// XmlWriter where the SubStorage should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("subStorage", Output.XmlNamespaceUri); - - writer.WriteAttributeString("name", this.Name); - - this.Data.Write(writer); - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/Symbol.cs b/src/WixToolset.Data/Symbol.cs index a96f9382..df2b5aeb 100644 --- a/src/WixToolset.Data/Symbol.cs +++ b/src/WixToolset.Data/Symbol.cs @@ -18,17 +18,18 @@ namespace WixToolset.Data /// Creates a symbol for a row. /// /// Row for the symbol - public Symbol(Row row) + public Symbol(IntermediateSection section, IntermediateTuple tuple) { - this.Row = row; - this.Name = String.Concat(this.Row.TableDefinition.Name, ":", this.Row.GetPrimaryKey()); + this.Row = tuple; + this.Section = section; + this.Name = String.Concat(this.Row.Definition.Name, ":", this.Row.Id.Id); } /// /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. /// /// Accessbility of the symbol. - public AccessModifier Access { get { return this.Row.Access; } } + public AccessModifier Access { get { return this.Row.Id.Access; } } /// /// Gets the name of the symbol. @@ -40,13 +41,13 @@ namespace WixToolset.Data /// Gets the row for this symbol. /// /// Row for this symbol. - public Row Row { get; private set; } + public IntermediateTuple Row { get; private set; } /// /// Gets the section for the symbol. /// /// Section for the symbol. - public Section Section { get { return this.Row.Section; } } + public IntermediateSection Section { get; private set; } //{ get { return this.Row.Section; } } /// /// Gets any duplicates of this symbol that are possible conflicts. diff --git a/src/WixToolset.Data/Table.cs b/src/WixToolset.Data/Table.cs deleted file mode 100644 index 19a3a67d..00000000 --- a/src/WixToolset.Data/Table.cs +++ /dev/null @@ -1,446 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; - using System.IO; - using System.Text; - using System.Xml; - using WixToolset.Data.Rows; - - /// - /// Object that represents a table in a database. - /// - public sealed class Table - { - /// - /// Creates a table in a section. - /// - /// Section to add table to. - /// Definition of the table. - public Table(Section section, TableDefinition tableDefinition) - { - this.Section = section; - this.Definition = tableDefinition; - this.Rows = new List(); - } - - /// - /// Gets the section for the table. - /// - /// Section for the table. - public Section Section { get; private set; } - - /// - /// Gets the table definition. - /// - /// Definition of the table. - public TableDefinition Definition { get; private set; } - - /// - /// Gets the name of the table. - /// - /// Name of the table. - public string Name - { - get { return this.Definition.Name; } - } - - /// - /// Gets or sets the table transform operation. - /// - /// The table transform operation. - public TableOperation Operation { get; set; } - - /// - /// Gets the rows contained in the table. - /// - /// Rows contained in the table. - public IList Rows { get; private set; } - - /// - /// Creates a new row in the table. - /// - /// Original source lines for this row. - /// Specifies whether to only create the row or add it to the table automatically. - /// Row created in table. - public Row CreateRow(SourceLineNumber sourceLineNumbers, bool add = true) - { - Row row; - - switch (this.Name) - { - case "BBControl": - row = new BBControlRow(sourceLineNumbers, this); - break; - case "WixBundlePackage": - row = new WixBundlePackageRow(sourceLineNumbers, this); - break; - case "WixBundleExePackage": - row = new WixBundleExePackageRow(sourceLineNumbers, this); - break; - case "WixBundleMsiPackage": - row = new WixBundleMsiPackageRow(sourceLineNumbers, this); - break; - case "WixBundleMspPackage": - row = new WixBundleMspPackageRow(sourceLineNumbers, this); - break; - case "WixBundleMsuPackage": - row = new WixBundleMsuPackageRow(sourceLineNumbers, this); - break; - case "Component": - row = new ComponentRow(sourceLineNumbers, this); - break; - case "WixBundleContainer": - row = new WixBundleContainerRow(sourceLineNumbers, this); - break; - case "Control": - row = new ControlRow(sourceLineNumbers, this); - break; - case "File": - row = new FileRow(sourceLineNumbers, this); - break; - case "WixBundleMsiFeature": - row = new WixBundleMsiFeatureRow(sourceLineNumbers, this); - break; - case "WixBundleMsiProperty": - row = new WixBundleMsiPropertyRow(sourceLineNumbers, this); - break; - case "Media": - row = new MediaRow(sourceLineNumbers, this); - break; - case "WixBundlePayload": - row = new WixBundlePayloadRow(sourceLineNumbers, this); - break; - case "Property": - row = new PropertyRow(sourceLineNumbers, this); - break; - case "WixRelatedBundle": - row = new WixRelatedBundleRow(sourceLineNumbers, this); - break; - case "WixBundleRelatedPackage": - row = new WixBundleRelatedPackageRow(sourceLineNumbers, this); - break; - case "WixBundleRollbackBoundary": - row = new WixBundleRollbackBoundaryRow(sourceLineNumbers, this); - break; - case "Upgrade": - row = new UpgradeRow(sourceLineNumbers, this); - break; - case "WixBundleVariable": - row = new WixBundleVariableRow(sourceLineNumbers, this); - break; - case "WixAction": - row = new WixActionRow(sourceLineNumbers, this); - break; - case "WixApprovedExeForElevation": - row = new WixApprovedExeForElevationRow(sourceLineNumbers, this); - break; - case "WixBundle": - row = new WixBundleRow(sourceLineNumbers, this); - break; - case "WixBundlePackageExitCode": - row = new WixBundlePackageExitCodeRow(sourceLineNumbers, this); - break; - case "WixBundlePatchTargetCode": - row = new WixBundlePatchTargetCodeRow(sourceLineNumbers, this); - break; - case "WixBundleSlipstreamMsp": - row = new WixBundleSlipstreamMspRow(sourceLineNumbers, this); - break; - case "WixBundleUpdate": - row = new WixBundleUpdateRow(sourceLineNumbers, this); - break; - case "WixBundleCatalog": - row = new WixBundleCatalogRow(sourceLineNumbers, this); - break; - case "WixChain": - row = new WixChainRow(sourceLineNumbers, this); - break; - case "WixChainItem": - row = new WixChainItemRow(sourceLineNumbers, this); - break; - case "WixBundlePackageCommandLine": - row = new WixBundlePackageCommandLineRow(sourceLineNumbers, this); - break; - case "WixComplexReference": - row = new WixComplexReferenceRow(sourceLineNumbers, this); - break; - case "WixDeltaPatchFile": - row = new WixDeltaPatchFileRow(sourceLineNumbers, this); - break; - case "WixDeltaPatchSymbolPaths": - row = new WixDeltaPatchSymbolPathsRow(sourceLineNumbers, this); - break; - case "WixFile": - row = new WixFileRow(sourceLineNumbers, this); - break; - case "WixGroup": - row = new WixGroupRow(sourceLineNumbers, this); - break; - case "WixMedia": - row = new WixMediaRow(sourceLineNumbers, this); - break; - case "WixMediaTemplate": - row = new WixMediaTemplateRow(sourceLineNumbers, this); - break; - case "WixMerge": - row = new WixMergeRow(sourceLineNumbers, this); - break; - case "WixPayloadProperties": - row = new WixPayloadPropertiesRow(sourceLineNumbers, this); - break; - case "WixProperty": - row = new WixPropertyRow(sourceLineNumbers, this); - break; - case "WixSimpleReference": - row = new WixSimpleReferenceRow(sourceLineNumbers, this); - break; - case "WixUpdateRegistration": - row = new WixUpdateRegistrationRow(sourceLineNumbers, this); - break; - case "WixVariable": - row = new WixVariableRow(sourceLineNumbers, this); - break; - - default: - row = new Row(sourceLineNumbers, this); - break; - } - - if (add) - { - this.Rows.Add(row); - } - - return row; - } - - /// - /// Parse a table from the xml. - /// - /// XmlReader where the intermediate is persisted. - /// Section to populate with persisted data. - /// TableDefinitions to use in the intermediate. - /// The parsed table. - internal static Table Read(XmlReader reader, Section section, TableDefinitionCollection tableDefinitions) - { - Debug.Assert("table" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - TableOperation operation = TableOperation.None; - string name = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "name": - name = reader.Value; - break; - case "op": - switch (reader.Value) - { - case "add": - operation = TableOperation.Add; - break; - case "drop": - operation = TableOperation.Drop; - break; - default: - throw new XmlException(); - } - break; - } - } - - if (null == name) - { - throw new XmlException(); - } - - TableDefinition tableDefinition = tableDefinitions[name]; - Table table = new Table(section, tableDefinition); - table.Operation = operation; - - if (!empty) - { - bool done = false; - - // loop through all the rows in a table - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "row": - Row.Read(reader, table); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return table; - } - - /// - /// Modularize the table. - /// - /// String containing the GUID of the Merge Module, if appropriate. - /// Optional collection of identifiers that should not be modularized. - public void Modularize(string modularizationGuid, ISet suppressModularizationIdentifiers) - { - List modularizedColumns = new List(); - - // find the modularized columns - for (int i = 0; i < this.Definition.Columns.Count; i++) - { - if (ColumnModularizeType.None != this.Definition.Columns[i].ModularizeType) - { - modularizedColumns.Add(i); - } - } - - if (0 < modularizedColumns.Count) - { - foreach (Row row in this.Rows) - { - foreach (int modularizedColumn in modularizedColumns) - { - Field field = row.Fields[modularizedColumn]; - - if (null != field.Data) - { - field.Data = row.GetModularizedValue(field, modularizationGuid, suppressModularizationIdentifiers); - } - } - } - } - } - - /// - /// Persists a row in an XML format. - /// - /// XmlWriter where the Row should persist itself as XML. - [SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "Changing the way this string normalizes would result " + - "in a change to the way the intermediate files are generated, potentially causing extra churn in patches on an MSI built from an older version of WiX. " + - "Furthermore, there is no security hole here, as the strings won't need to make a round trip")] - internal void Write(XmlWriter writer) - { - if (null == writer) - { - throw new ArgumentNullException("writer"); - } - - writer.WriteStartElement("table", Intermediate.XmlNamespaceUri); - writer.WriteAttributeString("name", this.Name); - - if (TableOperation.None != this.Operation) - { - writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); - } - - foreach (Row row in this.Rows) - { - row.Write(writer); - } - - writer.WriteEndElement(); - } - - /// - /// Writes the table in IDT format to the provided stream. - /// - /// Stream to write the table to. - /// Whether to keep columns added in a transform. - public void ToIdtDefinition(StreamWriter writer, bool keepAddedColumns) - { - if (this.Definition.Unreal) - { - return; - } - - if (TableDefinition.MaxColumnsInRealTable < this.Definition.Columns.Count) - { - throw new WixException(WixDataErrors.TooManyColumnsInRealTable(this.Definition.Name, this.Definition.Columns.Count, TableDefinition.MaxColumnsInRealTable)); - } - - // Tack on the table header, and flush before we start writing bytes directly to the stream. - writer.Write(this.Definition.ToIdtDefinition(keepAddedColumns)); - writer.Flush(); - - using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(writer.BaseStream)) - using (BufferedStream buffStream = new BufferedStream(wrapper)) - { - // Create an encoding that replaces characters with question marks, and doesn't throw. We'll - // use this in case of errors - Encoding convertEncoding = Encoding.GetEncoding(writer.Encoding.CodePage); - - foreach (Row row in this.Rows) - { - if (row.Redundant) - { - continue; - } - - string rowString = row.ToIdtDefinition(keepAddedColumns); - byte[] rowBytes; - - try - { - // GetBytes will throw an exception if any character doesn't match our current encoding - rowBytes = writer.Encoding.GetBytes(rowString); - } - catch (EncoderFallbackException) - { - Messaging.Instance.OnMessage(WixDataErrors.InvalidStringForCodepage(row.SourceLineNumbers, Convert.ToString(writer.Encoding.WindowsCodePage, CultureInfo.InvariantCulture))); - - rowBytes = convertEncoding.GetBytes(rowString); - } - - buffStream.Write(rowBytes, 0, rowBytes.Length); - } - } - } - - /// - /// Validates the rows of this OutputTable and throws if it collides on - /// primary keys. - /// - public void ValidateRows() - { - Dictionary primaryKeys = new Dictionary(); - - foreach (Row row in this.Rows) - { - string primaryKey = row.GetPrimaryKey(); - - SourceLineNumber collisionSourceLineNumber; - if (primaryKeys.TryGetValue(primaryKey, out collisionSourceLineNumber)) - { - throw new WixException(WixDataErrors.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); - } - - primaryKeys.Add(primaryKey, row.SourceLineNumbers); - } - } - } -} diff --git a/src/WixToolset.Data/TableDefinition.cs b/src/WixToolset.Data/TableDefinition.cs deleted file mode 100644 index 40aaac84..00000000 --- a/src/WixToolset.Data/TableDefinition.cs +++ /dev/null @@ -1,334 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Text; - using System.Xml; - - /// - /// Definition of a table in a database. - /// - public sealed class TableDefinition : IComparable - { - /// - /// Tracks the maximum number of columns supported in a real table. - /// This is a Windows Installer limitation. - /// - public const int MaxColumnsInRealTable = 32; - - /// - /// Creates a table definition. - /// - /// Name of table to create. - /// Flag if rows in this table create symbols. - /// Flag if table is unreal. - /// Flag if table is part of UX Manifest. - public TableDefinition(string name, IList columns, bool createSymbols, bool unreal, bool bootstrapperApplicationData = false) - { - this.Name = name; - this.CreateSymbols = createSymbols; - this.Unreal = unreal; - this.BootstrapperApplicationData = bootstrapperApplicationData; - - this.Columns = new ReadOnlyCollection(columns); - } - - /// - /// Gets if rows in this table create symbols. - /// - /// Flag if rows in this table create symbols. - public bool CreateSymbols { get; private set; } - - /// - /// Gets the name of the table. - /// - /// Name of the table. - public string Name { get; private set; } - - /// - /// Gets if the table is unreal. - /// - /// Flag if table is unreal. - public bool Unreal { get; private set; } - - /// - /// Gets if the table is a part of the bootstrapper application data manifest. - /// - /// Flag if table is a part of the bootstrapper application data manifest. - public bool BootstrapperApplicationData { get; private set; } - - /// - /// Gets the collection of column definitions for this table. - /// - /// Collection of column definitions for this table. - public IList Columns { get; private set; } - - /// - /// Gets the column definition in the table by index. - /// - /// Index of column to locate. - /// Column definition in the table by index. - public ColumnDefinition this[int columnIndex] - { - get { return this.Columns[columnIndex]; } - } - - /// - /// Gets the table definition in IDT format. - /// - /// Whether to keep columns added in a transform. - /// Table definition in IDT format. - public string ToIdtDefinition(bool keepAddedColumns) - { - bool first = true; - StringBuilder columnString = new StringBuilder(); - StringBuilder dataString = new StringBuilder(); - StringBuilder tableString = new StringBuilder(); - - tableString.Append(this.Name); - foreach (ColumnDefinition column in this.Columns) - { - // conditionally keep columns added in a transform; otherwise, - // break because columns can only be added at the end - if (column.Added && !keepAddedColumns) - { - break; - } - - if (!first) - { - columnString.Append('\t'); - dataString.Append('\t'); - } - - columnString.Append(column.Name); - dataString.Append(column.IdtType); - - if (column.PrimaryKey) - { - tableString.AppendFormat("\t{0}", column.Name); - } - - first = false; - } - columnString.Append("\r\n"); - columnString.Append(dataString); - columnString.Append("\r\n"); - columnString.Append(tableString); - columnString.Append("\r\n"); - - return columnString.ToString(); - } - - /// - /// Adds the validation rows to the _Validation table. - /// - /// The _Validation table. - public void AddValidationRows(Table validationTable) - { - foreach (ColumnDefinition columnDef in this.Columns) - { - Row row = validationTable.CreateRow(null); - - row[0] = this.Name; - - row[1] = columnDef.Name; - - if (columnDef.Nullable) - { - row[2] = "Y"; - } - else - { - row[2] = "N"; - } - - if (columnDef.IsMinValueSet) - { - row[3] = columnDef.MinValue; - } - - if (columnDef.IsMaxValueSet) - { - row[4] = columnDef.MaxValue; - } - - row[5] = columnDef.KeyTable; - - if (columnDef.IsKeyColumnSet) - { - row[6] = columnDef.KeyColumn; - } - - if (ColumnCategory.Unknown != columnDef.Category) - { - row[7] = columnDef.Category.ToString(); - } - - row[8] = columnDef.Possibilities; - - row[9] = columnDef.Description; - } - } - - /// - /// Compares this table definition to another table definition. - /// - /// - /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. - /// - /// The updated to compare with this target definition. - /// 0 if the tables' core properties are the same; otherwise, non-0. - public int CompareTo(TableDefinition updated) - { - // by definition, this object is greater than null - if (null == updated) - { - return 1; - } - - // compare the table names - int ret = String.Compare(this.Name, updated.Name, StringComparison.Ordinal); - - // compare the column count - if (0 == ret) - { - // transforms can only add columns - ret = Math.Min(0, updated.Columns.Count - this.Columns.Count); - - // compare name, type, and length of each column - for (int i = 0; 0 == ret && this.Columns.Count > i; i++) - { - ColumnDefinition thisColumnDef = this.Columns[i]; - ColumnDefinition updatedColumnDef = updated.Columns[i]; - - ret = thisColumnDef.CompareTo(updatedColumnDef); - } - } - - return ret; - } - - /// - /// Parses table definition from xml reader. - /// - /// Reader to get data from. - /// The TableDefintion represented by the Xml. - internal static TableDefinition Read(XmlReader reader) - { - bool empty = reader.IsEmptyElement; - bool createSymbols = false; - string name = null; - bool unreal = false; - bool bootstrapperApplicationData = false; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "createSymbols": - createSymbols = reader.Value.Equals("yes"); - break; - case "name": - name = reader.Value; - break; - case "unreal": - unreal = reader.Value.Equals("yes"); - break; - case "bootstrapperApplicationData": - bootstrapperApplicationData = reader.Value.Equals("yes"); - break; - } - } - - if (null == name) - { - throw new XmlException(); - } - - List columns = new List(); - bool hasPrimaryKeyColumn = false; - - // parse the child elements - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "columnDefinition": - ColumnDefinition columnDefinition = ColumnDefinition.Read(reader); - columns.Add(columnDefinition); - - if (columnDefinition.PrimaryKey) - { - hasPrimaryKeyColumn = true; - } - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!unreal && !bootstrapperApplicationData && !hasPrimaryKeyColumn) - { - throw new WixException(WixDataErrors.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); - } - - if (!done) - { - throw new XmlException(); - } - } - - TableDefinition tableDefinition = new TableDefinition(name, columns, createSymbols, unreal, bootstrapperApplicationData); - return tableDefinition; - } - - /// - /// Persists an output in an XML format. - /// - /// XmlWriter where the Output should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("tableDefinition", TableDefinitionCollection.XmlNamespaceUri); - - writer.WriteAttributeString("name", this.Name); - - if (this.CreateSymbols) - { - writer.WriteAttributeString("createSymbols", "yes"); - } - - if (this.Unreal) - { - writer.WriteAttributeString("unreal", "yes"); - } - - if (this.BootstrapperApplicationData) - { - writer.WriteAttributeString("bootstrapperApplicationData", "yes"); - } - - foreach (ColumnDefinition columnDefinition in this.Columns) - { - columnDefinition.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/TableDefinitionCollection.cs b/src/WixToolset.Data/TableDefinitionCollection.cs deleted file mode 100644 index 553f0eaa..00000000 --- a/src/WixToolset.Data/TableDefinitionCollection.cs +++ /dev/null @@ -1,229 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - using System.Xml; - - /// - /// Collection for table definitions indexed by table name. - /// - public sealed class TableDefinitionCollection : ICollection - { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wi/tables"; - - private Dictionary collection; - - /// - /// Instantiate a new TableDefinitionCollection class. - /// - public TableDefinitionCollection() - { - this.collection = new Dictionary(); - } - - /// - /// Creates a shallow copy of the provided table definition collection. - /// - public TableDefinitionCollection(TableDefinitionCollection tableDefinitions) - { - this.collection = new Dictionary(tableDefinitions.collection); - } - - /// - /// Gets the number of items in the collection. - /// - /// Number of items in collection. - public int Count - { - get { return this.collection.Count; } - } - - /// - /// Table definition collections are never read-only. - /// - public bool IsReadOnly - { - get { return false; } - } - - /// - /// Gets a table definition by name. - /// - /// Name of table to locate. - public TableDefinition this[string tableName] - { - get - { - TableDefinition table; - if (!this.collection.TryGetValue(tableName, out table)) - { - throw new WixMissingTableDefinitionException(WixDataErrors.MissingTableDefinition(tableName)); - } - - return table; - } - } - - /// - /// Load a table definition collection from an XmlReader. - /// - /// Reader to get data from. - /// Suppress xml schema validation while loading. - /// The TableDefinitionCollection represented by the xml. - public static TableDefinitionCollection Load(XmlReader reader) - { - reader.MoveToContent(); - - return Read(reader); - } - - /// - /// Adds a table definition to the collection. - /// - /// Table definition to add to the collection. - /// Indexes by table definition name. - public void Add(TableDefinition tableDefinition) - { - this.collection.Add(tableDefinition.Name, tableDefinition); - } - - /// - /// Removes all table definitions from the collection. - /// - public void Clear() - { - this.collection.Clear(); - } - - /// - /// Checks if the collection contains a table name. - /// - /// The table to check in the collection. - /// True if collection contains the table. - public bool Contains(string tableName) - { - return this.collection.ContainsKey(tableName); - } - - /// - /// Checks if the collection contains a table. - /// - /// The table to check in the collection. - /// True if collection contains the table. - public bool Contains(TableDefinition table) - { - return this.collection.ContainsKey(table.Name); - } - - /// - /// Copies table definitions to an arry. - /// - /// Array to copy the table definitions to. - /// Index in the array to start copying at. - public void CopyTo(TableDefinition[] array, int index) - { - this.collection.Values.CopyTo(array, index); - } - - /// - /// Removes a table definition from the collection. - /// - /// Table to remove from the collection. - /// True if the table definition existed in the collection and was removed. - public bool Remove(TableDefinition table) - { - return this.collection.Remove(table.Name); - } - - /// - /// Gets enumerator for the collection. - /// - /// Enumerator for the collection. - public IEnumerator GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } - - /// - /// Gets the untyped enumerator for the collection. - /// - /// Untyped enumerator for the collection. - IEnumerator IEnumerable.GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } - - /// - /// Loads a collection of table definitions from a XmlReader in memory. - /// - /// Reader to get data from. - /// The TableDefinitionCollection represented by the xml. - internal static TableDefinitionCollection Read(XmlReader reader) - { - if ("tableDefinitions" != reader.LocalName) - { - throw new XmlException(); - } - - bool empty = reader.IsEmptyElement; - TableDefinitionCollection tableDefinitionCollection = new TableDefinitionCollection(); - - while (reader.MoveToNextAttribute()) - { - } - - // parse the child elements - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "tableDefinition": - tableDefinitionCollection.Add(TableDefinition.Read(reader)); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return tableDefinitionCollection; - } - - /// - /// Persists a TableDefinitionCollection in an XML format. - /// - /// XmlWriter where the TableDefinitionCollection should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("tableDefinitions", XmlNamespaceUri); - - foreach (TableDefinition tableDefinition in this.collection.Values.OrderBy(t => t.Name)) - { - tableDefinition.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/TableExtensions.cs b/src/WixToolset.Data/TableExtensions.cs deleted file mode 100644 index 1be64ffe..00000000 --- a/src/WixToolset.Data/TableExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System.Collections.Generic; - using System.Linq; - - /// - /// Methods that extend . - /// - public static class TableExtensions - { - /// - /// Gets the rows contained in the table as a particular row type. - /// - /// Table to get rows from. - /// If the is null, an empty enumerable will be returned. - public static IEnumerable RowsAs(this Table table) where T : Row - { - return (null == table) ? Enumerable.Empty() : table.Rows.Cast(); - } - } -} diff --git a/src/WixToolset.Data/TableIndexedCollection.cs b/src/WixToolset.Data/TableIndexedCollection.cs deleted file mode 100644 index 9f85efff..00000000 --- a/src/WixToolset.Data/TableIndexedCollection.cs +++ /dev/null @@ -1,153 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Linq; - - /// - /// Collection for tables. - /// - public sealed class TableIndexedCollection : ICollection
- { - private Dictionary collection; - - /// - /// Instantiate a new empty collection. - /// - public TableIndexedCollection() - { - this.collection = new Dictionary(); - } - - /// - /// Instantiate a new collection populated with a set of tables. - /// - /// Set of tables. - public TableIndexedCollection(IEnumerable
tables) - { - this.collection = tables.ToDictionary(t => t.Name); - } - - /// - /// Gets the number of items in the collection. - /// - /// Number of items in collection. - public int Count - { - get { return this.collection.Count; } - } - - /// - /// Table indexed collection is never read only. - /// - public bool IsReadOnly - { - get { return false; } - } - - /// - /// Adds a table to the collection. - /// - /// Table to add to the collection. - /// Indexes the table by name. - public void Add(Table table) - { - this.collection.Add(table.Name, table); - } - - /// - /// Clear the tables from the collection. - /// - public void Clear() - { - this.collection.Clear(); - } - - /// - /// Determines if a table is in the collection. - /// - /// Table to check if it is in the collection. - /// True if the table name is in the collection, otherwise false. - public bool Contains(Table table) - { - return this.collection.ContainsKey(table.Name); - } - - /// - /// Copies the collection into an array. - /// - /// Array to copy the collection into. - /// Index to start copying from. - public void CopyTo(Table[] array, int arrayIndex) - { - this.collection.Values.CopyTo(array, arrayIndex); - } - - /// - /// Remove a table from the collection by name. - /// - /// Table name to remove from the collection. - public void Remove(string tableName) - { - this.collection.Remove(tableName); - } - - /// - /// Remove a table from the collection. - /// - /// Table with matching name to remove from the collection. - public bool Remove(Table table) - { - return this.collection.Remove(table.Name); - } - - /// - /// Gets an enumerator over the whole collection. - /// - /// Collection enumerator. - public IEnumerator
GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } - - /// - /// Gets an untyped enumerator over the whole collection. - /// - /// Untyped collection enumerator. - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } - - /// - /// Gets a table by name. - /// - /// Name of table to locate. - public Table this[string tableName] - { - get - { - Table table; - return this.collection.TryGetValue(tableName, out table) ? table : null; - } - - set - { - this.collection[tableName] = value; - } - } - - /// - /// Tries to find a table by name. - /// - /// Table name to locate. - /// Found table. - /// True if table with table name was found, otherwise false. - public bool TryGetTable(string tableName, out Table table) - { - return this.collection.TryGetValue(tableName, out table); - } - } -} diff --git a/src/WixToolset.Data/TableOperation.cs b/src/WixToolset.Data/TableOperation.cs deleted file mode 100644 index 8df44e73..00000000 --- a/src/WixToolset.Data/TableOperation.cs +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// The table transform operations. - /// - public enum TableOperation - { - /// - /// No operation. - /// - None, - - /// - /// Added table. - /// - Add, - - /// - /// Dropped table. - /// - Drop, - } -} diff --git a/src/WixToolset.Data/Tuples/ActionTextTuple.cs b/src/WixToolset.Data/Tuples/ActionTextTuple.cs new file mode 100644 index 00000000..771a8b02 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ActionTextTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ActionText = new IntermediateTupleDefinition( + TupleDefinitionType.ActionText, + new[] + { + new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Template), IntermediateFieldType.String), + }, + typeof(ActionTextTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ActionTextTupleFields + { + Action, + Description, + Template, + } + + public class ActionTextTuple : IntermediateTuple + { + public ActionTextTuple() : base(TupleDefinitions.ActionText, null, null) + { + } + + public ActionTextTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ActionText, sourceLineNumber, id) + { + } + + public IntermediateField this[ActionTextTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ActionTextTupleFields.Action]?.Value; + set => this.Set((int)ActionTextTupleFields.Action, value); + } + + public string Description + { + get => (string)this.Fields[(int)ActionTextTupleFields.Description]?.Value; + set => this.Set((int)ActionTextTupleFields.Description, value); + } + + public string Template + { + get => (string)this.Fields[(int)ActionTextTupleFields.Template]?.Value; + set => this.Set((int)ActionTextTupleFields.Template, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs new file mode 100644 index 00000000..25c717e0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition AdminExecuteSequence = new IntermediateTupleDefinition( + TupleDefinitionType.AdminExecuteSequence, + new[] + { + new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), + }, + typeof(AdminExecuteSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum AdminExecuteSequenceTupleFields + { + Action, + Condition, + Sequence, + } + + public class AdminExecuteSequenceTuple : IntermediateTuple + { + public AdminExecuteSequenceTuple() : base(TupleDefinitions.AdminExecuteSequence, null, null) + { + } + + public AdminExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdminExecuteSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[AdminExecuteSequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Action]?.Value; + set => this.Set((int)AdminExecuteSequenceTupleFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Condition]?.Value; + set => this.Set((int)AdminExecuteSequenceTupleFields.Condition, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)AdminExecuteSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)AdminExecuteSequenceTupleFields.Sequence, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs new file mode 100644 index 00000000..d4681bb9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition AdminUISequence = new IntermediateTupleDefinition( + TupleDefinitionType.AdminUISequence, + new[] + { + new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Sequence), IntermediateFieldType.Number), + }, + typeof(AdminUISequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum AdminUISequenceTupleFields + { + Action, + Condition, + Sequence, + } + + public class AdminUISequenceTuple : IntermediateTuple + { + public AdminUISequenceTuple() : base(TupleDefinitions.AdminUISequence, null, null) + { + } + + public AdminUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdminUISequence, sourceLineNumber, id) + { + } + + public IntermediateField this[AdminUISequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)AdminUISequenceTupleFields.Action]?.Value; + set => this.Set((int)AdminUISequenceTupleFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)AdminUISequenceTupleFields.Condition]?.Value; + set => this.Set((int)AdminUISequenceTupleFields.Condition, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)AdminUISequenceTupleFields.Sequence]?.Value; + set => this.Set((int)AdminUISequenceTupleFields.Sequence, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs new file mode 100644 index 00000000..36a53af2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition AdvtExecuteSequence = new IntermediateTupleDefinition( + TupleDefinitionType.AdvtExecuteSequence, + new[] + { + new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), + }, + typeof(AdvtExecuteSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum AdvtExecuteSequenceTupleFields + { + Action, + Condition, + Sequence, + } + + public class AdvtExecuteSequenceTuple : IntermediateTuple + { + public AdvtExecuteSequenceTuple() : base(TupleDefinitions.AdvtExecuteSequence, null, null) + { + } + + public AdvtExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdvtExecuteSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[AdvtExecuteSequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Action]?.Value; + set => this.Set((int)AdvtExecuteSequenceTupleFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Condition]?.Value; + set => this.Set((int)AdvtExecuteSequenceTupleFields.Condition, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)AdvtExecuteSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)AdvtExecuteSequenceTupleFields.Sequence, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AppIdTuple.cs b/src/WixToolset.Data/Tuples/AppIdTuple.cs new file mode 100644 index 00000000..7816e4c3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AppIdTuple.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition AppId = new IntermediateTupleDefinition( + TupleDefinitionType.AppId, + new[] + { + new IntermediateFieldDefinition(nameof(AppIdTupleFields.AppId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdTupleFields.RemoteServerName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdTupleFields.LocalService), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdTupleFields.ServiceParameters), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdTupleFields.DllSurrogate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdTupleFields.ActivateAtStorage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AppIdTupleFields.RunAsInteractiveUser), IntermediateFieldType.Number), + }, + typeof(AppIdTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum AppIdTupleFields + { + AppId, + RemoteServerName, + LocalService, + ServiceParameters, + DllSurrogate, + ActivateAtStorage, + RunAsInteractiveUser, + } + + public class AppIdTuple : IntermediateTuple + { + public AppIdTuple() : base(TupleDefinitions.AppId, null, null) + { + } + + public AppIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AppId, sourceLineNumber, id) + { + } + + public IntermediateField this[AppIdTupleFields index] => this.Fields[(int)index]; + + public string AppId + { + get => (string)this.Fields[(int)AppIdTupleFields.AppId]?.Value; + set => this.Set((int)AppIdTupleFields.AppId, value); + } + + public string RemoteServerName + { + get => (string)this.Fields[(int)AppIdTupleFields.RemoteServerName]?.Value; + set => this.Set((int)AppIdTupleFields.RemoteServerName, value); + } + + public string LocalService + { + get => (string)this.Fields[(int)AppIdTupleFields.LocalService]?.Value; + set => this.Set((int)AppIdTupleFields.LocalService, value); + } + + public string ServiceParameters + { + get => (string)this.Fields[(int)AppIdTupleFields.ServiceParameters]?.Value; + set => this.Set((int)AppIdTupleFields.ServiceParameters, value); + } + + public string DllSurrogate + { + get => (string)this.Fields[(int)AppIdTupleFields.DllSurrogate]?.Value; + set => this.Set((int)AppIdTupleFields.DllSurrogate, value); + } + + public int ActivateAtStorage + { + get => (int)this.Fields[(int)AppIdTupleFields.ActivateAtStorage]?.Value; + set => this.Set((int)AppIdTupleFields.ActivateAtStorage, value); + } + + public int RunAsInteractiveUser + { + get => (int)this.Fields[(int)AppIdTupleFields.RunAsInteractiveUser]?.Value; + set => this.Set((int)AppIdTupleFields.RunAsInteractiveUser, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AppSearchTuple.cs b/src/WixToolset.Data/Tuples/AppSearchTuple.cs new file mode 100644 index 00000000..e32064b8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AppSearchTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition AppSearch = new IntermediateTupleDefinition( + TupleDefinitionType.AppSearch, + new[] + { + new IntermediateFieldDefinition(nameof(AppSearchTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppSearchTupleFields.Signature_), IntermediateFieldType.String), + }, + typeof(AppSearchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum AppSearchTupleFields + { + Property, + Signature_, + } + + public class AppSearchTuple : IntermediateTuple + { + public AppSearchTuple() : base(TupleDefinitions.AppSearch, null, null) + { + } + + public AppSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AppSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[AppSearchTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)AppSearchTupleFields.Property]?.Value; + set => this.Set((int)AppSearchTupleFields.Property, value); + } + + public string Signature_ + { + get => (string)this.Fields[(int)AppSearchTupleFields.Signature_]?.Value; + set => this.Set((int)AppSearchTupleFields.Signature_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BBControlTuple.cs b/src/WixToolset.Data/Tuples/BBControlTuple.cs new file mode 100644 index 00000000..dae041d4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/BBControlTuple.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition BBControl = new IntermediateTupleDefinition( + TupleDefinitionType.BBControl, + new[] + { + new IntermediateFieldDefinition(nameof(BBControlTupleFields.Billboard_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.BBControl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.Text), IntermediateFieldType.String), + }, + typeof(BBControlTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum BBControlTupleFields + { + Billboard_, + BBControl, + Type, + X, + Y, + Width, + Height, + Attributes, + Text, + } + + public class BBControlTuple : IntermediateTuple + { + public BBControlTuple() : base(TupleDefinitions.BBControl, null, null) + { + } + + public BBControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.BBControl, sourceLineNumber, id) + { + } + + public IntermediateField this[BBControlTupleFields index] => this.Fields[(int)index]; + + public string Billboard_ + { + get => (string)this.Fields[(int)BBControlTupleFields.Billboard_]?.Value; + set => this.Set((int)BBControlTupleFields.Billboard_, value); + } + + public string BBControl + { + get => (string)this.Fields[(int)BBControlTupleFields.BBControl]?.Value; + set => this.Set((int)BBControlTupleFields.BBControl, value); + } + + public string Type + { + get => (string)this.Fields[(int)BBControlTupleFields.Type]?.Value; + set => this.Set((int)BBControlTupleFields.Type, value); + } + + public int X + { + get => (int)this.Fields[(int)BBControlTupleFields.X]?.Value; + set => this.Set((int)BBControlTupleFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)BBControlTupleFields.Y]?.Value; + set => this.Set((int)BBControlTupleFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)BBControlTupleFields.Width]?.Value; + set => this.Set((int)BBControlTupleFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)BBControlTupleFields.Height]?.Value; + set => this.Set((int)BBControlTupleFields.Height, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)BBControlTupleFields.Attributes]?.Value; + set => this.Set((int)BBControlTupleFields.Attributes, value); + } + + public string Text + { + get => (string)this.Fields[(int)BBControlTupleFields.Text]?.Value; + set => this.Set((int)BBControlTupleFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs new file mode 100644 index 00000000..43e2ace7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/BillboardTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Billboard = new IntermediateTupleDefinition( + TupleDefinitionType.Billboard, + new[] + { + new IntermediateFieldDefinition(nameof(BillboardTupleFields.Billboard), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardTupleFields.Ordering), IntermediateFieldType.Number), + }, + typeof(BillboardTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum BillboardTupleFields + { + Billboard, + Feature_, + Action, + Ordering, + } + + public class BillboardTuple : IntermediateTuple + { + public BillboardTuple() : base(TupleDefinitions.Billboard, null, null) + { + } + + public BillboardTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Billboard, sourceLineNumber, id) + { + } + + public IntermediateField this[BillboardTupleFields index] => this.Fields[(int)index]; + + public string Billboard + { + get => (string)this.Fields[(int)BillboardTupleFields.Billboard]?.Value; + set => this.Set((int)BillboardTupleFields.Billboard, value); + } + + public string Feature_ + { + get => (string)this.Fields[(int)BillboardTupleFields.Feature_]?.Value; + set => this.Set((int)BillboardTupleFields.Feature_, value); + } + + public string Action + { + get => (string)this.Fields[(int)BillboardTupleFields.Action]?.Value; + set => this.Set((int)BillboardTupleFields.Action, value); + } + + public int Ordering + { + get => (int)this.Fields[(int)BillboardTupleFields.Ordering]?.Value; + set => this.Set((int)BillboardTupleFields.Ordering, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BinaryTuple.cs b/src/WixToolset.Data/Tuples/BinaryTuple.cs new file mode 100644 index 00000000..8134167b --- /dev/null +++ b/src/WixToolset.Data/Tuples/BinaryTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Binary = new IntermediateTupleDefinition( + TupleDefinitionType.Binary, + new[] + { + new IntermediateFieldDefinition(nameof(BinaryTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BinaryTupleFields.Data), IntermediateFieldType.Path), + }, + typeof(BinaryTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum BinaryTupleFields + { + Name, + Data, + } + + public class BinaryTuple : IntermediateTuple + { + public BinaryTuple() : base(TupleDefinitions.Binary, null, null) + { + } + + public BinaryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Binary, sourceLineNumber, id) + { + } + + public IntermediateField this[BinaryTupleFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)BinaryTupleFields.Name]?.Value; + set => this.Set((int)BinaryTupleFields.Name, value); + } + + public string Data + { + get => (string)this.Fields[(int)BinaryTupleFields.Data]?.Value; + set => this.Set((int)BinaryTupleFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BindImageTuple.cs b/src/WixToolset.Data/Tuples/BindImageTuple.cs new file mode 100644 index 00000000..fefafa2d --- /dev/null +++ b/src/WixToolset.Data/Tuples/BindImageTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition BindImage = new IntermediateTupleDefinition( + TupleDefinitionType.BindImage, + new[] + { + new IntermediateFieldDefinition(nameof(BindImageTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BindImageTupleFields.Path), IntermediateFieldType.String), + }, + typeof(BindImageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum BindImageTupleFields + { + File_, + Path, + } + + public class BindImageTuple : IntermediateTuple + { + public BindImageTuple() : base(TupleDefinitions.BindImage, null, null) + { + } + + public BindImageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.BindImage, sourceLineNumber, id) + { + } + + public IntermediateField this[BindImageTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)BindImageTupleFields.File_]?.Value; + set => this.Set((int)BindImageTupleFields.File_, value); + } + + public string Path + { + get => (string)this.Fields[(int)BindImageTupleFields.Path]?.Value; + set => this.Set((int)BindImageTupleFields.Path, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs new file mode 100644 index 00000000..d1ca8458 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition CCPSearch = new IntermediateTupleDefinition( + TupleDefinitionType.CCPSearch, + new[] + { + new IntermediateFieldDefinition(nameof(CCPSearchTupleFields.Signature_), IntermediateFieldType.String), + }, + typeof(CCPSearchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum CCPSearchTupleFields + { + Signature_, + } + + public class CCPSearchTuple : IntermediateTuple + { + public CCPSearchTuple() : base(TupleDefinitions.CCPSearch, null, null) + { + } + + public CCPSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CCPSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[CCPSearchTupleFields index] => this.Fields[(int)index]; + + public string Signature_ + { + get => (string)this.Fields[(int)CCPSearchTupleFields.Signature_]?.Value; + set => this.Set((int)CCPSearchTupleFields.Signature_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs new file mode 100644 index 00000000..d76609f2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition CheckBox = new IntermediateTupleDefinition( + TupleDefinitionType.CheckBox, + new[] + { + new IntermediateFieldDefinition(nameof(CheckBoxTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CheckBoxTupleFields.Value), IntermediateFieldType.String), + }, + typeof(CheckBoxTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum CheckBoxTupleFields + { + Property, + Value, + } + + public class CheckBoxTuple : IntermediateTuple + { + public CheckBoxTuple() : base(TupleDefinitions.CheckBox, null, null) + { + } + + public CheckBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CheckBox, sourceLineNumber, id) + { + } + + public IntermediateField this[CheckBoxTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)CheckBoxTupleFields.Property]?.Value; + set => this.Set((int)CheckBoxTupleFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)CheckBoxTupleFields.Value]?.Value; + set => this.Set((int)CheckBoxTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ClassTuple.cs b/src/WixToolset.Data/Tuples/ClassTuple.cs new file mode 100644 index 00000000..a9bb3b95 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ClassTuple.cs @@ -0,0 +1,140 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Class = new IntermediateTupleDefinition( + TupleDefinitionType.Class, + new[] + { + new IntermediateFieldDefinition(nameof(ClassTupleFields.CLSID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.Context), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.ProgId_Default), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.AppId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.FileTypeMask), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.Icon_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ClassTupleFields.DefInprocHandler), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(ClassTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ClassTupleFields + { + CLSID, + Context, + Component_, + ProgId_Default, + Description, + AppId_, + FileTypeMask, + Icon_, + IconIndex, + DefInprocHandler, + Argument, + Feature_, + Attributes, + } + + public class ClassTuple : IntermediateTuple + { + public ClassTuple() : base(TupleDefinitions.Class, null, null) + { + } + + public ClassTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Class, sourceLineNumber, id) + { + } + + public IntermediateField this[ClassTupleFields index] => this.Fields[(int)index]; + + public string CLSID + { + get => (string)this.Fields[(int)ClassTupleFields.CLSID]?.Value; + set => this.Set((int)ClassTupleFields.CLSID, value); + } + + public string Context + { + get => (string)this.Fields[(int)ClassTupleFields.Context]?.Value; + set => this.Set((int)ClassTupleFields.Context, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ClassTupleFields.Component_]?.Value; + set => this.Set((int)ClassTupleFields.Component_, value); + } + + public string ProgId_Default + { + get => (string)this.Fields[(int)ClassTupleFields.ProgId_Default]?.Value; + set => this.Set((int)ClassTupleFields.ProgId_Default, value); + } + + public string Description + { + get => (string)this.Fields[(int)ClassTupleFields.Description]?.Value; + set => this.Set((int)ClassTupleFields.Description, value); + } + + public string AppId_ + { + get => (string)this.Fields[(int)ClassTupleFields.AppId_]?.Value; + set => this.Set((int)ClassTupleFields.AppId_, value); + } + + public string FileTypeMask + { + get => (string)this.Fields[(int)ClassTupleFields.FileTypeMask]?.Value; + set => this.Set((int)ClassTupleFields.FileTypeMask, value); + } + + public string Icon_ + { + get => (string)this.Fields[(int)ClassTupleFields.Icon_]?.Value; + set => this.Set((int)ClassTupleFields.Icon_, value); + } + + public int IconIndex + { + get => (int)this.Fields[(int)ClassTupleFields.IconIndex]?.Value; + set => this.Set((int)ClassTupleFields.IconIndex, value); + } + + public string DefInprocHandler + { + get => (string)this.Fields[(int)ClassTupleFields.DefInprocHandler]?.Value; + set => this.Set((int)ClassTupleFields.DefInprocHandler, value); + } + + public string Argument + { + get => (string)this.Fields[(int)ClassTupleFields.Argument]?.Value; + set => this.Set((int)ClassTupleFields.Argument, value); + } + + public string Feature_ + { + get => (string)this.Fields[(int)ClassTupleFields.Feature_]?.Value; + set => this.Set((int)ClassTupleFields.Feature_, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)ClassTupleFields.Attributes]?.Value; + set => this.Set((int)ClassTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs new file mode 100644 index 00000000..67acc30c --- /dev/null +++ b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ComboBox = new IntermediateTupleDefinition( + TupleDefinitionType.ComboBox, + new[] + { + new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Text), IntermediateFieldType.String), + }, + typeof(ComboBoxTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ComboBoxTupleFields + { + Property, + Order, + Value, + Text, + } + + public class ComboBoxTuple : IntermediateTuple + { + public ComboBoxTuple() : base(TupleDefinitions.ComboBox, null, null) + { + } + + public ComboBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ComboBox, sourceLineNumber, id) + { + } + + public IntermediateField this[ComboBoxTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ComboBoxTupleFields.Property]?.Value; + set => this.Set((int)ComboBoxTupleFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ComboBoxTupleFields.Order]?.Value; + set => this.Set((int)ComboBoxTupleFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ComboBoxTupleFields.Value]?.Value; + set => this.Set((int)ComboBoxTupleFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ComboBoxTupleFields.Text]?.Value; + set => this.Set((int)ComboBoxTupleFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs new file mode 100644 index 00000000..e8560711 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition CompLocator = new IntermediateTupleDefinition( + TupleDefinitionType.CompLocator, + new[] + { + new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.Signature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.Type), IntermediateFieldType.Number), + }, + typeof(CompLocatorTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum CompLocatorTupleFields + { + Signature_, + ComponentId, + Type, + } + + public class CompLocatorTuple : IntermediateTuple + { + public CompLocatorTuple() : base(TupleDefinitions.CompLocator, null, null) + { + } + + public CompLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CompLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[CompLocatorTupleFields index] => this.Fields[(int)index]; + + public string Signature_ + { + get => (string)this.Fields[(int)CompLocatorTupleFields.Signature_]?.Value; + set => this.Set((int)CompLocatorTupleFields.Signature_, value); + } + + public string ComponentId + { + get => (string)this.Fields[(int)CompLocatorTupleFields.ComponentId]?.Value; + set => this.Set((int)CompLocatorTupleFields.ComponentId, value); + } + + public int Type + { + get => (int)this.Fields[(int)CompLocatorTupleFields.Type]?.Value; + set => this.Set((int)CompLocatorTupleFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComplusTuple.cs b/src/WixToolset.Data/Tuples/ComplusTuple.cs new file mode 100644 index 00000000..0287c689 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ComplusTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Complus = new IntermediateTupleDefinition( + TupleDefinitionType.Complus, + new[] + { + new IntermediateFieldDefinition(nameof(ComplusTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComplusTupleFields.ExpType), IntermediateFieldType.Number), + }, + typeof(ComplusTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ComplusTupleFields + { + Component_, + ExpType, + } + + public class ComplusTuple : IntermediateTuple + { + public ComplusTuple() : base(TupleDefinitions.Complus, null, null) + { + } + + public ComplusTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Complus, sourceLineNumber, id) + { + } + + public IntermediateField this[ComplusTupleFields index] => this.Fields[(int)index]; + + public string Component_ + { + get => (string)this.Fields[(int)ComplusTupleFields.Component_]?.Value; + set => this.Set((int)ComplusTupleFields.Component_, value); + } + + public int ExpType + { + get => (int)this.Fields[(int)ComplusTupleFields.ExpType]?.Value; + set => this.Set((int)ComplusTupleFields.ExpType, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs new file mode 100644 index 00000000..8d679609 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ComponentTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Component = new IntermediateTupleDefinition( + TupleDefinitionType.Component, + new[] + { + new IntermediateFieldDefinition(nameof(ComponentTupleFields.Component), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentTupleFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComponentTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentTupleFields.KeyPath), IntermediateFieldType.String), + }, + typeof(ComponentTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ComponentTupleFields + { + Component, + ComponentId, + Directory_, + Attributes, + Condition, + KeyPath, + } + + public class ComponentTuple : IntermediateTuple + { + public ComponentTuple() : base(TupleDefinitions.Component, null, null) + { + } + + public ComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Component, sourceLineNumber, id) + { + } + + public IntermediateField this[ComponentTupleFields index] => this.Fields[(int)index]; + + public string Component + { + get => (string)this.Fields[(int)ComponentTupleFields.Component]?.Value; + set => this.Set((int)ComponentTupleFields.Component, value); + } + + public string ComponentId + { + get => (string)this.Fields[(int)ComponentTupleFields.ComponentId]?.Value; + set => this.Set((int)ComponentTupleFields.ComponentId, value); + } + + public string Directory_ + { + get => (string)this.Fields[(int)ComponentTupleFields.Directory_]?.Value; + set => this.Set((int)ComponentTupleFields.Directory_, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)ComponentTupleFields.Attributes]?.Value; + set => this.Set((int)ComponentTupleFields.Attributes, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ComponentTupleFields.Condition]?.Value; + set => this.Set((int)ComponentTupleFields.Condition, value); + } + + public string KeyPath + { + get => (string)this.Fields[(int)ComponentTupleFields.KeyPath]?.Value; + set => this.Set((int)ComponentTupleFields.KeyPath, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ConditionTuple.cs b/src/WixToolset.Data/Tuples/ConditionTuple.cs new file mode 100644 index 00000000..534f4cae --- /dev/null +++ b/src/WixToolset.Data/Tuples/ConditionTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Condition = new IntermediateTupleDefinition( + TupleDefinitionType.Condition, + new[] + { + new IntermediateFieldDefinition(nameof(ConditionTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ConditionTupleFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ConditionTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(ConditionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ConditionTupleFields + { + Feature_, + Level, + Condition, + } + + public class ConditionTuple : IntermediateTuple + { + public ConditionTuple() : base(TupleDefinitions.Condition, null, null) + { + } + + public ConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Condition, sourceLineNumber, id) + { + } + + public IntermediateField this[ConditionTupleFields index] => this.Fields[(int)index]; + + public string Feature_ + { + get => (string)this.Fields[(int)ConditionTupleFields.Feature_]?.Value; + set => this.Set((int)ConditionTupleFields.Feature_, value); + } + + public int Level + { + get => (int)this.Fields[(int)ConditionTupleFields.Level]?.Value; + set => this.Set((int)ConditionTupleFields.Level, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ConditionTupleFields.Condition]?.Value; + set => this.Set((int)ConditionTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs new file mode 100644 index 00000000..0b18dac1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ControlCondition = new IntermediateTupleDefinition( + TupleDefinitionType.ControlCondition, + new[] + { + new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Dialog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Control_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(ControlConditionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ControlConditionTupleFields + { + Dialog_, + Control_, + Action, + Condition, + } + + public class ControlConditionTuple : IntermediateTuple + { + public ControlConditionTuple() : base(TupleDefinitions.ControlCondition, null, null) + { + } + + public ControlConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ControlCondition, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlConditionTupleFields index] => this.Fields[(int)index]; + + public string Dialog_ + { + get => (string)this.Fields[(int)ControlConditionTupleFields.Dialog_]?.Value; + set => this.Set((int)ControlConditionTupleFields.Dialog_, value); + } + + public string Control_ + { + get => (string)this.Fields[(int)ControlConditionTupleFields.Control_]?.Value; + set => this.Set((int)ControlConditionTupleFields.Control_, value); + } + + public string Action + { + get => (string)this.Fields[(int)ControlConditionTupleFields.Action]?.Value; + set => this.Set((int)ControlConditionTupleFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ControlConditionTupleFields.Condition]?.Value; + set => this.Set((int)ControlConditionTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlEventTuple.cs b/src/WixToolset.Data/Tuples/ControlEventTuple.cs new file mode 100644 index 00000000..b44cd19e --- /dev/null +++ b/src/WixToolset.Data/Tuples/ControlEventTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ControlEvent = new IntermediateTupleDefinition( + TupleDefinitionType.ControlEvent, + new[] + { + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Dialog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Control_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Ordering), IntermediateFieldType.Number), + }, + typeof(ControlEventTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ControlEventTupleFields + { + Dialog_, + Control_, + Event, + Argument, + Condition, + Ordering, + } + + public class ControlEventTuple : IntermediateTuple + { + public ControlEventTuple() : base(TupleDefinitions.ControlEvent, null, null) + { + } + + public ControlEventTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ControlEvent, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlEventTupleFields index] => this.Fields[(int)index]; + + public string Dialog_ + { + get => (string)this.Fields[(int)ControlEventTupleFields.Dialog_]?.Value; + set => this.Set((int)ControlEventTupleFields.Dialog_, value); + } + + public string Control_ + { + get => (string)this.Fields[(int)ControlEventTupleFields.Control_]?.Value; + set => this.Set((int)ControlEventTupleFields.Control_, value); + } + + public string Event + { + get => (string)this.Fields[(int)ControlEventTupleFields.Event]?.Value; + set => this.Set((int)ControlEventTupleFields.Event, value); + } + + public string Argument + { + get => (string)this.Fields[(int)ControlEventTupleFields.Argument]?.Value; + set => this.Set((int)ControlEventTupleFields.Argument, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ControlEventTupleFields.Condition]?.Value; + set => this.Set((int)ControlEventTupleFields.Condition, value); + } + + public int Ordering + { + get => (int)this.Fields[(int)ControlEventTupleFields.Ordering]?.Value; + set => this.Set((int)ControlEventTupleFields.Ordering, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs new file mode 100644 index 00000000..82de917c --- /dev/null +++ b/src/WixToolset.Data/Tuples/ControlTuple.cs @@ -0,0 +1,132 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Control = new IntermediateTupleDefinition( + TupleDefinitionType.Control, + new[] + { + new IntermediateFieldDefinition(nameof(ControlTupleFields.Dialog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Control), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Control_Next), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.Help), IntermediateFieldType.String), + }, + typeof(ControlTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ControlTupleFields + { + Dialog_, + Control, + Type, + X, + Y, + Width, + Height, + Attributes, + Property, + Text, + Control_Next, + Help, + } + + public class ControlTuple : IntermediateTuple + { + public ControlTuple() : base(TupleDefinitions.Control, null, null) + { + } + + public ControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Control, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlTupleFields index] => this.Fields[(int)index]; + + public string Dialog_ + { + get => (string)this.Fields[(int)ControlTupleFields.Dialog_]?.Value; + set => this.Set((int)ControlTupleFields.Dialog_, value); + } + + public string Control + { + get => (string)this.Fields[(int)ControlTupleFields.Control]?.Value; + set => this.Set((int)ControlTupleFields.Control, value); + } + + public string Type + { + get => (string)this.Fields[(int)ControlTupleFields.Type]?.Value; + set => this.Set((int)ControlTupleFields.Type, value); + } + + public int X + { + get => (int)this.Fields[(int)ControlTupleFields.X]?.Value; + set => this.Set((int)ControlTupleFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)ControlTupleFields.Y]?.Value; + set => this.Set((int)ControlTupleFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)ControlTupleFields.Width]?.Value; + set => this.Set((int)ControlTupleFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)ControlTupleFields.Height]?.Value; + set => this.Set((int)ControlTupleFields.Height, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)ControlTupleFields.Attributes]?.Value; + set => this.Set((int)ControlTupleFields.Attributes, value); + } + + public string Property + { + get => (string)this.Fields[(int)ControlTupleFields.Property]?.Value; + set => this.Set((int)ControlTupleFields.Property, value); + } + + public string Text + { + get => (string)this.Fields[(int)ControlTupleFields.Text]?.Value; + set => this.Set((int)ControlTupleFields.Text, value); + } + + public string Control_Next + { + get => (string)this.Fields[(int)ControlTupleFields.Control_Next]?.Value; + set => this.Set((int)ControlTupleFields.Control_Next, value); + } + + public string Help + { + get => (string)this.Fields[(int)ControlTupleFields.Help]?.Value; + set => this.Set((int)ControlTupleFields.Help, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs new file mode 100644 index 00000000..05b50a8b --- /dev/null +++ b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition CreateFolder = new IntermediateTupleDefinition( + TupleDefinitionType.CreateFolder, + new[] + { + new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(CreateFolderTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum CreateFolderTupleFields + { + Directory_, + Component_, + } + + public class CreateFolderTuple : IntermediateTuple + { + public CreateFolderTuple() : base(TupleDefinitions.CreateFolder, null, null) + { + } + + public CreateFolderTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CreateFolder, sourceLineNumber, id) + { + } + + public IntermediateField this[CreateFolderTupleFields index] => this.Fields[(int)index]; + + public string Directory_ + { + get => (string)this.Fields[(int)CreateFolderTupleFields.Directory_]?.Value; + set => this.Set((int)CreateFolderTupleFields.Directory_, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)CreateFolderTupleFields.Component_]?.Value; + set => this.Set((int)CreateFolderTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CustomActionTuple.cs b/src/WixToolset.Data/Tuples/CustomActionTuple.cs new file mode 100644 index 00000000..a5d8fd46 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CustomActionTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition CustomAction = new IntermediateTupleDefinition( + TupleDefinitionType.CustomAction, + new[] + { + new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionTupleFields.ExtendedType), IntermediateFieldType.Number), + }, + typeof(CustomActionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum CustomActionTupleFields + { + Action, + Type, + Source, + Target, + ExtendedType, + } + + public class CustomActionTuple : IntermediateTuple + { + public CustomActionTuple() : base(TupleDefinitions.CustomAction, null, null) + { + } + + public CustomActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CustomAction, sourceLineNumber, id) + { + } + + public IntermediateField this[CustomActionTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)CustomActionTupleFields.Action]?.Value; + set => this.Set((int)CustomActionTupleFields.Action, value); + } + + public int Type + { + get => (int)this.Fields[(int)CustomActionTupleFields.Type]?.Value; + set => this.Set((int)CustomActionTupleFields.Type, value); + } + + public string Source + { + get => (string)this.Fields[(int)CustomActionTupleFields.Source]?.Value; + set => this.Set((int)CustomActionTupleFields.Source, value); + } + + public string Target + { + get => (string)this.Fields[(int)CustomActionTupleFields.Target]?.Value; + set => this.Set((int)CustomActionTupleFields.Target, value); + } + + public int ExtendedType + { + get => (int)this.Fields[(int)CustomActionTupleFields.ExtendedType]?.Value; + set => this.Set((int)CustomActionTupleFields.ExtendedType, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DialogTuple.cs b/src/WixToolset.Data/Tuples/DialogTuple.cs new file mode 100644 index 00000000..b8bb2361 --- /dev/null +++ b/src/WixToolset.Data/Tuples/DialogTuple.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Dialog = new IntermediateTupleDefinition( + TupleDefinitionType.Dialog, + new[] + { + new IntermediateFieldDefinition(nameof(DialogTupleFields.Dialog), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogTupleFields.HCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogTupleFields.VCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogTupleFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogTupleFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogTupleFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_First), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_Default), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_Cancel), IntermediateFieldType.String), + }, + typeof(DialogTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum DialogTupleFields + { + Dialog, + HCentering, + VCentering, + Width, + Height, + Attributes, + Title, + Control_First, + Control_Default, + Control_Cancel, + } + + public class DialogTuple : IntermediateTuple + { + public DialogTuple() : base(TupleDefinitions.Dialog, null, null) + { + } + + public DialogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Dialog, sourceLineNumber, id) + { + } + + public IntermediateField this[DialogTupleFields index] => this.Fields[(int)index]; + + public string Dialog + { + get => (string)this.Fields[(int)DialogTupleFields.Dialog]?.Value; + set => this.Set((int)DialogTupleFields.Dialog, value); + } + + public int HCentering + { + get => (int)this.Fields[(int)DialogTupleFields.HCentering]?.Value; + set => this.Set((int)DialogTupleFields.HCentering, value); + } + + public int VCentering + { + get => (int)this.Fields[(int)DialogTupleFields.VCentering]?.Value; + set => this.Set((int)DialogTupleFields.VCentering, value); + } + + public int Width + { + get => (int)this.Fields[(int)DialogTupleFields.Width]?.Value; + set => this.Set((int)DialogTupleFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)DialogTupleFields.Height]?.Value; + set => this.Set((int)DialogTupleFields.Height, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)DialogTupleFields.Attributes]?.Value; + set => this.Set((int)DialogTupleFields.Attributes, value); + } + + public string Title + { + get => (string)this.Fields[(int)DialogTupleFields.Title]?.Value; + set => this.Set((int)DialogTupleFields.Title, value); + } + + public string Control_First + { + get => (string)this.Fields[(int)DialogTupleFields.Control_First]?.Value; + set => this.Set((int)DialogTupleFields.Control_First, value); + } + + public string Control_Default + { + get => (string)this.Fields[(int)DialogTupleFields.Control_Default]?.Value; + set => this.Set((int)DialogTupleFields.Control_Default, value); + } + + public string Control_Cancel + { + get => (string)this.Fields[(int)DialogTupleFields.Control_Cancel]?.Value; + set => this.Set((int)DialogTupleFields.Control_Cancel, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DirectoryTuple.cs b/src/WixToolset.Data/Tuples/DirectoryTuple.cs new file mode 100644 index 00000000..b36345c7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/DirectoryTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Directory = new IntermediateTupleDefinition( + TupleDefinitionType.Directory, + new[] + { + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Directory), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Directory_Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.DefaultDir), IntermediateFieldType.String), + }, + typeof(DirectoryTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum DirectoryTupleFields + { + Directory, + Directory_Parent, + DefaultDir, + } + + public class DirectoryTuple : IntermediateTuple + { + public DirectoryTuple() : base(TupleDefinitions.Directory, null, null) + { + } + + public DirectoryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Directory, sourceLineNumber, id) + { + } + + public IntermediateField this[DirectoryTupleFields index] => this.Fields[(int)index]; + + public string Directory + { + get => (string)this.Fields[(int)DirectoryTupleFields.Directory]?.Value; + set => this.Set((int)DirectoryTupleFields.Directory, value); + } + + public string Directory_Parent + { + get => (string)this.Fields[(int)DirectoryTupleFields.Directory_Parent]?.Value; + set => this.Set((int)DirectoryTupleFields.Directory_Parent, value); + } + + public string DefaultDir + { + get => (string)this.Fields[(int)DirectoryTupleFields.DefaultDir]?.Value; + set => this.Set((int)DirectoryTupleFields.DefaultDir, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs new file mode 100644 index 00000000..38910333 --- /dev/null +++ b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition DrLocator = new IntermediateTupleDefinition( + TupleDefinitionType.DrLocator, + new[] + { + new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Signature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Depth), IntermediateFieldType.Number), + }, + typeof(DrLocatorTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum DrLocatorTupleFields + { + Signature_, + Parent, + Path, + Depth, + } + + public class DrLocatorTuple : IntermediateTuple + { + public DrLocatorTuple() : base(TupleDefinitions.DrLocator, null, null) + { + } + + public DrLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.DrLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[DrLocatorTupleFields index] => this.Fields[(int)index]; + + public string Signature_ + { + get => (string)this.Fields[(int)DrLocatorTupleFields.Signature_]?.Value; + set => this.Set((int)DrLocatorTupleFields.Signature_, value); + } + + public string Parent + { + get => (string)this.Fields[(int)DrLocatorTupleFields.Parent]?.Value; + set => this.Set((int)DrLocatorTupleFields.Parent, value); + } + + public string Path + { + get => (string)this.Fields[(int)DrLocatorTupleFields.Path]?.Value; + set => this.Set((int)DrLocatorTupleFields.Path, value); + } + + public int Depth + { + get => (int)this.Fields[(int)DrLocatorTupleFields.Depth]?.Value; + set => this.Set((int)DrLocatorTupleFields.Depth, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs new file mode 100644 index 00000000..b489025c --- /dev/null +++ b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition DuplicateFile = new IntermediateTupleDefinition( + TupleDefinitionType.DuplicateFile, + new[] + { + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.FileKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestFolder), IntermediateFieldType.String), + }, + typeof(DuplicateFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum DuplicateFileTupleFields + { + FileKey, + Component_, + File_, + DestName, + DestFolder, + } + + public class DuplicateFileTuple : IntermediateTuple + { + public DuplicateFileTuple() : base(TupleDefinitions.DuplicateFile, null, null) + { + } + + public DuplicateFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.DuplicateFile, sourceLineNumber, id) + { + } + + public IntermediateField this[DuplicateFileTupleFields index] => this.Fields[(int)index]; + + public string FileKey + { + get => (string)this.Fields[(int)DuplicateFileTupleFields.FileKey]?.Value; + set => this.Set((int)DuplicateFileTupleFields.FileKey, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)DuplicateFileTupleFields.Component_]?.Value; + set => this.Set((int)DuplicateFileTupleFields.Component_, value); + } + + public string File_ + { + get => (string)this.Fields[(int)DuplicateFileTupleFields.File_]?.Value; + set => this.Set((int)DuplicateFileTupleFields.File_, value); + } + + public string DestName + { + get => (string)this.Fields[(int)DuplicateFileTupleFields.DestName]?.Value; + set => this.Set((int)DuplicateFileTupleFields.DestName, value); + } + + public string DestFolder + { + get => (string)this.Fields[(int)DuplicateFileTupleFields.DestFolder]?.Value; + set => this.Set((int)DuplicateFileTupleFields.DestFolder, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs new file mode 100644 index 00000000..9ee05a19 --- /dev/null +++ b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Environment = new IntermediateTupleDefinition( + TupleDefinitionType.Environment, + new[] + { + new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Environment), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(EnvironmentTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum EnvironmentTupleFields + { + Environment, + Name, + Value, + Component_, + } + + public class EnvironmentTuple : IntermediateTuple + { + public EnvironmentTuple() : base(TupleDefinitions.Environment, null, null) + { + } + + public EnvironmentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Environment, sourceLineNumber, id) + { + } + + public IntermediateField this[EnvironmentTupleFields index] => this.Fields[(int)index]; + + public string Environment + { + get => (string)this.Fields[(int)EnvironmentTupleFields.Environment]?.Value; + set => this.Set((int)EnvironmentTupleFields.Environment, value); + } + + public string Name + { + get => (string)this.Fields[(int)EnvironmentTupleFields.Name]?.Value; + set => this.Set((int)EnvironmentTupleFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)EnvironmentTupleFields.Value]?.Value; + set => this.Set((int)EnvironmentTupleFields.Value, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)EnvironmentTupleFields.Component_]?.Value; + set => this.Set((int)EnvironmentTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ErrorTuple.cs b/src/WixToolset.Data/Tuples/ErrorTuple.cs new file mode 100644 index 00000000..393d2d29 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ErrorTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Error = new IntermediateTupleDefinition( + TupleDefinitionType.Error, + new[] + { + new IntermediateFieldDefinition(nameof(ErrorTupleFields.Error), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ErrorTupleFields.Message), IntermediateFieldType.String), + }, + typeof(ErrorTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ErrorTupleFields + { + Error, + Message, + } + + public class ErrorTuple : IntermediateTuple + { + public ErrorTuple() : base(TupleDefinitions.Error, null, null) + { + } + + public ErrorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Error, sourceLineNumber, id) + { + } + + public IntermediateField this[ErrorTupleFields index] => this.Fields[(int)index]; + + public int Error + { + get => (int)this.Fields[(int)ErrorTupleFields.Error]?.Value; + set => this.Set((int)ErrorTupleFields.Error, value); + } + + public string Message + { + get => (string)this.Fields[(int)ErrorTupleFields.Message]?.Value; + set => this.Set((int)ErrorTupleFields.Message, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EventMappingTuple.cs b/src/WixToolset.Data/Tuples/EventMappingTuple.cs new file mode 100644 index 00000000..e0e8da71 --- /dev/null +++ b/src/WixToolset.Data/Tuples/EventMappingTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition EventMapping = new IntermediateTupleDefinition( + TupleDefinitionType.EventMapping, + new[] + { + new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Dialog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Control_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Attribute), IntermediateFieldType.String), + }, + typeof(EventMappingTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum EventMappingTupleFields + { + Dialog_, + Control_, + Event, + Attribute, + } + + public class EventMappingTuple : IntermediateTuple + { + public EventMappingTuple() : base(TupleDefinitions.EventMapping, null, null) + { + } + + public EventMappingTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.EventMapping, sourceLineNumber, id) + { + } + + public IntermediateField this[EventMappingTupleFields index] => this.Fields[(int)index]; + + public string Dialog_ + { + get => (string)this.Fields[(int)EventMappingTupleFields.Dialog_]?.Value; + set => this.Set((int)EventMappingTupleFields.Dialog_, value); + } + + public string Control_ + { + get => (string)this.Fields[(int)EventMappingTupleFields.Control_]?.Value; + set => this.Set((int)EventMappingTupleFields.Control_, value); + } + + public string Event + { + get => (string)this.Fields[(int)EventMappingTupleFields.Event]?.Value; + set => this.Set((int)EventMappingTupleFields.Event, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)EventMappingTupleFields.Attribute]?.Value; + set => this.Set((int)EventMappingTupleFields.Attribute, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ExtensionTuple.cs b/src/WixToolset.Data/Tuples/ExtensionTuple.cs new file mode 100644 index 00000000..e3ef1675 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ExtensionTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Extension = new IntermediateTupleDefinition( + TupleDefinitionType.Extension, + new[] + { + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Extension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.ProgId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.MIME_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Feature_), IntermediateFieldType.String), + }, + typeof(ExtensionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ExtensionTupleFields + { + Extension, + Component_, + ProgId_, + MIME_, + Feature_, + } + + public class ExtensionTuple : IntermediateTuple + { + public ExtensionTuple() : base(TupleDefinitions.Extension, null, null) + { + } + + public ExtensionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Extension, sourceLineNumber, id) + { + } + + public IntermediateField this[ExtensionTupleFields index] => this.Fields[(int)index]; + + public string Extension + { + get => (string)this.Fields[(int)ExtensionTupleFields.Extension]?.Value; + set => this.Set((int)ExtensionTupleFields.Extension, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ExtensionTupleFields.Component_]?.Value; + set => this.Set((int)ExtensionTupleFields.Component_, value); + } + + public string ProgId_ + { + get => (string)this.Fields[(int)ExtensionTupleFields.ProgId_]?.Value; + set => this.Set((int)ExtensionTupleFields.ProgId_, value); + } + + public string MIME_ + { + get => (string)this.Fields[(int)ExtensionTupleFields.MIME_]?.Value; + set => this.Set((int)ExtensionTupleFields.MIME_, value); + } + + public string Feature_ + { + get => (string)this.Fields[(int)ExtensionTupleFields.Feature_]?.Value; + set => this.Set((int)ExtensionTupleFields.Feature_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs new file mode 100644 index 00000000..06e6d4ae --- /dev/null +++ b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ExternalFiles = new IntermediateTupleDefinition( + TupleDefinitionType.ExternalFiles, + new[] + { + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.FilePath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.Order), IntermediateFieldType.Number), + }, + typeof(ExternalFilesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ExternalFilesTupleFields + { + Family, + FTK, + FilePath, + SymbolPaths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + Order, + } + + public class ExternalFilesTuple : IntermediateTuple + { + public ExternalFilesTuple() : base(TupleDefinitions.ExternalFiles, null, null) + { + } + + public ExternalFilesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ExternalFiles, sourceLineNumber, id) + { + } + + public IntermediateField this[ExternalFilesTupleFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)ExternalFilesTupleFields.Family]?.Value; + set => this.Set((int)ExternalFilesTupleFields.Family, value); + } + + public string FTK + { + get => (string)this.Fields[(int)ExternalFilesTupleFields.FTK]?.Value; + set => this.Set((int)ExternalFilesTupleFields.FTK, value); + } + + public string FilePath + { + get => (string)this.Fields[(int)ExternalFilesTupleFields.FilePath]?.Value; + set => this.Set((int)ExternalFilesTupleFields.FilePath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)ExternalFilesTupleFields.SymbolPaths]?.Value; + set => this.Set((int)ExternalFilesTupleFields.SymbolPaths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreOffsets]?.Value; + set => this.Set((int)ExternalFilesTupleFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreLengths]?.Value; + set => this.Set((int)ExternalFilesTupleFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)ExternalFilesTupleFields.RetainOffsets]?.Value; + set => this.Set((int)ExternalFilesTupleFields.RetainOffsets, value); + } + + public int Order + { + get => (int)this.Fields[(int)ExternalFilesTupleFields.Order]?.Value; + set => this.Set((int)ExternalFilesTupleFields.Order, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs new file mode 100644 index 00000000..5065c389 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition FamilyFileRanges = new IntermediateTupleDefinition( + TupleDefinitionType.FamilyFileRanges, + new[] + { + new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.RetainLengths), IntermediateFieldType.String), + }, + typeof(FamilyFileRangesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum FamilyFileRangesTupleFields + { + Family, + FTK, + RetainOffsets, + RetainLengths, + } + + public class FamilyFileRangesTuple : IntermediateTuple + { + public FamilyFileRangesTuple() : base(TupleDefinitions.FamilyFileRanges, null, null) + { + } + + public FamilyFileRangesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FamilyFileRanges, sourceLineNumber, id) + { + } + + public IntermediateField this[FamilyFileRangesTupleFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.Family]?.Value; + set => this.Set((int)FamilyFileRangesTupleFields.Family, value); + } + + public string FTK + { + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.FTK]?.Value; + set => this.Set((int)FamilyFileRangesTupleFields.FTK, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainOffsets]?.Value; + set => this.Set((int)FamilyFileRangesTupleFields.RetainOffsets, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainLengths]?.Value; + set => this.Set((int)FamilyFileRangesTupleFields.RetainLengths, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs new file mode 100644 index 00000000..e9d54c37 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition FeatureComponents = new IntermediateTupleDefinition( + TupleDefinitionType.FeatureComponents, + new[] + { + new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(FeatureComponentsTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum FeatureComponentsTupleFields + { + Feature_, + Component_, + } + + public class FeatureComponentsTuple : IntermediateTuple + { + public FeatureComponentsTuple() : base(TupleDefinitions.FeatureComponents, null, null) + { + } + + public FeatureComponentsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FeatureComponents, sourceLineNumber, id) + { + } + + public IntermediateField this[FeatureComponentsTupleFields index] => this.Fields[(int)index]; + + public string Feature_ + { + get => (string)this.Fields[(int)FeatureComponentsTupleFields.Feature_]?.Value; + set => this.Set((int)FeatureComponentsTupleFields.Feature_, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)FeatureComponentsTupleFields.Component_]?.Value; + set => this.Set((int)FeatureComponentsTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureTuple.cs b/src/WixToolset.Data/Tuples/FeatureTuple.cs new file mode 100644 index 00000000..a04c339b --- /dev/null +++ b/src/WixToolset.Data/Tuples/FeatureTuple.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Feature = new IntermediateTupleDefinition( + TupleDefinitionType.Feature, + new[] + { + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Feature), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Feature_Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(FeatureTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum FeatureTupleFields + { + Feature, + Feature_Parent, + Title, + Description, + Display, + Level, + Directory_, + Attributes, + } + + public class FeatureTuple : IntermediateTuple + { + public FeatureTuple() : base(TupleDefinitions.Feature, null, null) + { + } + + public FeatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Feature, sourceLineNumber, id) + { + } + + public IntermediateField this[FeatureTupleFields index] => this.Fields[(int)index]; + + public string Feature + { + get => (string)this.Fields[(int)FeatureTupleFields.Feature]?.Value; + set => this.Set((int)FeatureTupleFields.Feature, value); + } + + public string Feature_Parent + { + get => (string)this.Fields[(int)FeatureTupleFields.Feature_Parent]?.Value; + set => this.Set((int)FeatureTupleFields.Feature_Parent, value); + } + + public string Title + { + get => (string)this.Fields[(int)FeatureTupleFields.Title]?.Value; + set => this.Set((int)FeatureTupleFields.Title, value); + } + + public string Description + { + get => (string)this.Fields[(int)FeatureTupleFields.Description]?.Value; + set => this.Set((int)FeatureTupleFields.Description, value); + } + + public int Display + { + get => (int)this.Fields[(int)FeatureTupleFields.Display]?.Value; + set => this.Set((int)FeatureTupleFields.Display, value); + } + + public int Level + { + get => (int)this.Fields[(int)FeatureTupleFields.Level]?.Value; + set => this.Set((int)FeatureTupleFields.Level, value); + } + + public string Directory_ + { + get => (string)this.Fields[(int)FeatureTupleFields.Directory_]?.Value; + set => this.Set((int)FeatureTupleFields.Directory_, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)FeatureTupleFields.Attributes]?.Value; + set => this.Set((int)FeatureTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs new file mode 100644 index 00000000..7409577f --- /dev/null +++ b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition FileSFPCatalog = new IntermediateTupleDefinition( + TupleDefinitionType.FileSFPCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.SFPCatalog_), IntermediateFieldType.String), + }, + typeof(FileSFPCatalogTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum FileSFPCatalogTupleFields + { + File_, + SFPCatalog_, + } + + public class FileSFPCatalogTuple : IntermediateTuple + { + public FileSFPCatalogTuple() : base(TupleDefinitions.FileSFPCatalog, null, null) + { + } + + public FileSFPCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FileSFPCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[FileSFPCatalogTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)FileSFPCatalogTupleFields.File_]?.Value; + set => this.Set((int)FileSFPCatalogTupleFields.File_, value); + } + + public string SFPCatalog_ + { + get => (string)this.Fields[(int)FileSFPCatalogTupleFields.SFPCatalog_]?.Value; + set => this.Set((int)FileSFPCatalogTupleFields.SFPCatalog_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs new file mode 100644 index 00000000..6c184b63 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -0,0 +1,140 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition File = new IntermediateTupleDefinition( + TupleDefinitionType.File, + new[] + { + new IntermediateFieldDefinition(nameof(FileTupleFields.File), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.ShortFileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.LongFileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ReadOnly), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.System), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Checksum), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Compressed), IntermediateFieldType.Bool), + }, + typeof(FileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum FileTupleFields + { + File, + Component_, + ShortFileName, + LongFileName, + FileSize, + Version, + Language, + ReadOnly, + Hidden, + System, + Vital, + Checksum, + Compressed, + } + + public class FileTuple : IntermediateTuple + { + public FileTuple() : base(TupleDefinitions.File, null, null) + { + } + + public FileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.File, sourceLineNumber, id) + { + } + + public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; + + public string File + { + get => (string)this.Fields[(int)FileTupleFields.File]?.Value; + set => this.Set((int)FileTupleFields.File, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)FileTupleFields.Component_]?.Value; + set => this.Set((int)FileTupleFields.Component_, value); + } + + public string ShortFileName + { + get => (string)this.Fields[(int)FileTupleFields.ShortFileName]?.Value; + set => this.Set((int)FileTupleFields.ShortFileName, value); + } + + public string LongFileName + { + get => (string)this.Fields[(int)FileTupleFields.LongFileName]?.Value; + set => this.Set((int)FileTupleFields.LongFileName, value); + } + + public int FileSize + { + get => (int)this.Fields[(int)FileTupleFields.FileSize]?.Value; + set => this.Set((int)FileTupleFields.FileSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)FileTupleFields.Version]?.Value; + set => this.Set((int)FileTupleFields.Version, value); + } + + public string Language + { + get => (string)this.Fields[(int)FileTupleFields.Language]?.Value; + set => this.Set((int)FileTupleFields.Language, value); + } + + public bool ReadOnly + { + get => (bool)this.Fields[(int)FileTupleFields.ReadOnly]?.Value; + set => this.Set((int)FileTupleFields.ReadOnly, value); + } + + public bool Hidden + { + get => (bool)this.Fields[(int)FileTupleFields.Hidden]?.Value; + set => this.Set((int)FileTupleFields.Hidden, value); + } + + public bool System + { + get => (bool)this.Fields[(int)FileTupleFields.System]?.Value; + set => this.Set((int)FileTupleFields.System, value); + } + + public bool Vital + { + get => (bool)this.Fields[(int)FileTupleFields.Vital]?.Value; + set => this.Set((int)FileTupleFields.Vital, value); + } + + public bool Checksum + { + get => (bool)this.Fields[(int)FileTupleFields.Checksum]?.Value; + set => this.Set((int)FileTupleFields.Checksum, value); + } + + public bool? Compressed + { + get => (bool?)this.Fields[(int)FileTupleFields.Compressed]?.Value; + set => this.Set((int)FileTupleFields.Compressed, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/FontTuple.cs b/src/WixToolset.Data/Tuples/FontTuple.cs new file mode 100644 index 00000000..97550148 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FontTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Font = new IntermediateTupleDefinition( + TupleDefinitionType.Font, + new[] + { + new IntermediateFieldDefinition(nameof(FontTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FontTupleFields.FontTitle), IntermediateFieldType.String), + }, + typeof(FontTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum FontTupleFields + { + File_, + FontTitle, + } + + public class FontTuple : IntermediateTuple + { + public FontTuple() : base(TupleDefinitions.Font, null, null) + { + } + + public FontTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Font, sourceLineNumber, id) + { + } + + public IntermediateField this[FontTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)FontTupleFields.File_]?.Value; + set => this.Set((int)FontTupleFields.File_, value); + } + + public string FontTitle + { + get => (string)this.Fields[(int)FontTupleFields.FontTitle]?.Value; + set => this.Set((int)FontTupleFields.FontTitle, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IconTuple.cs b/src/WixToolset.Data/Tuples/IconTuple.cs new file mode 100644 index 00000000..0ccd9a53 --- /dev/null +++ b/src/WixToolset.Data/Tuples/IconTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Icon = new IntermediateTupleDefinition( + TupleDefinitionType.Icon, + new[] + { + new IntermediateFieldDefinition(nameof(IconTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IconTupleFields.Data), IntermediateFieldType.Path), + }, + typeof(IconTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum IconTupleFields + { + Name, + Data, + } + + public class IconTuple : IntermediateTuple + { + public IconTuple() : base(TupleDefinitions.Icon, null, null) + { + } + + public IconTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Icon, sourceLineNumber, id) + { + } + + public IntermediateField this[IconTupleFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)IconTupleFields.Name]?.Value; + set => this.Set((int)IconTupleFields.Name, value); + } + + public string Data + { + get => (string)this.Fields[(int)IconTupleFields.Data]?.Value; + set => this.Set((int)IconTupleFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs new file mode 100644 index 00000000..7ce884ca --- /dev/null +++ b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ImageFamilies = new IntermediateTupleDefinition( + TupleDefinitionType.ImageFamilies, + new[] + { + new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.MediaSrcPropName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.MediaDiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.FileSequenceStart), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.VolumeLabel), IntermediateFieldType.String), + }, + typeof(ImageFamiliesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ImageFamiliesTupleFields + { + Family, + MediaSrcPropName, + MediaDiskId, + FileSequenceStart, + DiskPrompt, + VolumeLabel, + } + + public class ImageFamiliesTuple : IntermediateTuple + { + public ImageFamiliesTuple() : base(TupleDefinitions.ImageFamilies, null, null) + { + } + + public ImageFamiliesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ImageFamilies, sourceLineNumber, id) + { + } + + public IntermediateField this[ImageFamiliesTupleFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)ImageFamiliesTupleFields.Family]?.Value; + set => this.Set((int)ImageFamiliesTupleFields.Family, value); + } + + public string MediaSrcPropName + { + get => (string)this.Fields[(int)ImageFamiliesTupleFields.MediaSrcPropName]?.Value; + set => this.Set((int)ImageFamiliesTupleFields.MediaSrcPropName, value); + } + + public int MediaDiskId + { + get => (int)this.Fields[(int)ImageFamiliesTupleFields.MediaDiskId]?.Value; + set => this.Set((int)ImageFamiliesTupleFields.MediaDiskId, value); + } + + public int FileSequenceStart + { + get => (int)this.Fields[(int)ImageFamiliesTupleFields.FileSequenceStart]?.Value; + set => this.Set((int)ImageFamiliesTupleFields.FileSequenceStart, value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)ImageFamiliesTupleFields.DiskPrompt]?.Value; + set => this.Set((int)ImageFamiliesTupleFields.DiskPrompt, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)ImageFamiliesTupleFields.VolumeLabel]?.Value; + set => this.Set((int)ImageFamiliesTupleFields.VolumeLabel, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IniFileTuple.cs b/src/WixToolset.Data/Tuples/IniFileTuple.cs new file mode 100644 index 00000000..29fb3264 --- /dev/null +++ b/src/WixToolset.Data/Tuples/IniFileTuple.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition IniFile = new IntermediateTupleDefinition( + TupleDefinitionType.IniFile, + new[] + { + new IntermediateFieldDefinition(nameof(IniFileTupleFields.IniFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(IniFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum IniFileTupleFields + { + IniFile, + FileName, + DirProperty, + Section, + Key, + Value, + Action, + Component_, + } + + public class IniFileTuple : IntermediateTuple + { + public IniFileTuple() : base(TupleDefinitions.IniFile, null, null) + { + } + + public IniFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IniFile, sourceLineNumber, id) + { + } + + public IntermediateField this[IniFileTupleFields index] => this.Fields[(int)index]; + + public string IniFile + { + get => (string)this.Fields[(int)IniFileTupleFields.IniFile]?.Value; + set => this.Set((int)IniFileTupleFields.IniFile, value); + } + + public string FileName + { + get => (string)this.Fields[(int)IniFileTupleFields.FileName]?.Value; + set => this.Set((int)IniFileTupleFields.FileName, value); + } + + public string DirProperty + { + get => (string)this.Fields[(int)IniFileTupleFields.DirProperty]?.Value; + set => this.Set((int)IniFileTupleFields.DirProperty, value); + } + + public string Section + { + get => (string)this.Fields[(int)IniFileTupleFields.Section]?.Value; + set => this.Set((int)IniFileTupleFields.Section, value); + } + + public string Key + { + get => (string)this.Fields[(int)IniFileTupleFields.Key]?.Value; + set => this.Set((int)IniFileTupleFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)IniFileTupleFields.Value]?.Value; + set => this.Set((int)IniFileTupleFields.Value, value); + } + + public int Action + { + get => (int)this.Fields[(int)IniFileTupleFields.Action]?.Value; + set => this.Set((int)IniFileTupleFields.Action, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)IniFileTupleFields.Component_]?.Value; + set => this.Set((int)IniFileTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs new file mode 100644 index 00000000..f956ee5f --- /dev/null +++ b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition IniLocator = new IntermediateTupleDefinition( + TupleDefinitionType.IniLocator, + new[] + { + new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Signature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Field), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Type), IntermediateFieldType.Number), + }, + typeof(IniLocatorTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum IniLocatorTupleFields + { + Signature_, + FileName, + Section, + Key, + Field, + Type, + } + + public class IniLocatorTuple : IntermediateTuple + { + public IniLocatorTuple() : base(TupleDefinitions.IniLocator, null, null) + { + } + + public IniLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IniLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[IniLocatorTupleFields index] => this.Fields[(int)index]; + + public string Signature_ + { + get => (string)this.Fields[(int)IniLocatorTupleFields.Signature_]?.Value; + set => this.Set((int)IniLocatorTupleFields.Signature_, value); + } + + public string FileName + { + get => (string)this.Fields[(int)IniLocatorTupleFields.FileName]?.Value; + set => this.Set((int)IniLocatorTupleFields.FileName, value); + } + + public string Section + { + get => (string)this.Fields[(int)IniLocatorTupleFields.Section]?.Value; + set => this.Set((int)IniLocatorTupleFields.Section, value); + } + + public string Key + { + get => (string)this.Fields[(int)IniLocatorTupleFields.Key]?.Value; + set => this.Set((int)IniLocatorTupleFields.Key, value); + } + + public int Field + { + get => (int)this.Fields[(int)IniLocatorTupleFields.Field]?.Value; + set => this.Set((int)IniLocatorTupleFields.Field, value); + } + + public int Type + { + get => (int)this.Fields[(int)IniLocatorTupleFields.Type]?.Value; + set => this.Set((int)IniLocatorTupleFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs new file mode 100644 index 00000000..390faf9d --- /dev/null +++ b/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition InstallExecuteSequence = new IntermediateTupleDefinition( + TupleDefinitionType.InstallExecuteSequence, + new[] + { + new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), + }, + typeof(InstallExecuteSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum InstallExecuteSequenceTupleFields + { + Action, + Condition, + Sequence, + } + + public class InstallExecuteSequenceTuple : IntermediateTuple + { + public InstallExecuteSequenceTuple() : base(TupleDefinitions.InstallExecuteSequence, null, null) + { + } + + public InstallExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.InstallExecuteSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[InstallExecuteSequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Action]?.Value; + set => this.Set((int)InstallExecuteSequenceTupleFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Condition]?.Value; + set => this.Set((int)InstallExecuteSequenceTupleFields.Condition, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)InstallExecuteSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)InstallExecuteSequenceTupleFields.Sequence, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs new file mode 100644 index 00000000..07409c37 --- /dev/null +++ b/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition InstallUISequence = new IntermediateTupleDefinition( + TupleDefinitionType.InstallUISequence, + new[] + { + new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Sequence), IntermediateFieldType.Number), + }, + typeof(InstallUISequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum InstallUISequenceTupleFields + { + Action, + Condition, + Sequence, + } + + public class InstallUISequenceTuple : IntermediateTuple + { + public InstallUISequenceTuple() : base(TupleDefinitions.InstallUISequence, null, null) + { + } + + public InstallUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.InstallUISequence, sourceLineNumber, id) + { + } + + public IntermediateField this[InstallUISequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)InstallUISequenceTupleFields.Action]?.Value; + set => this.Set((int)InstallUISequenceTupleFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)InstallUISequenceTupleFields.Condition]?.Value; + set => this.Set((int)InstallUISequenceTupleFields.Condition, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)InstallUISequenceTupleFields.Sequence]?.Value; + set => this.Set((int)InstallUISequenceTupleFields.Sequence, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs new file mode 100644 index 00000000..5fb4f8aa --- /dev/null +++ b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition IsolatedComponent = new IntermediateTupleDefinition( + TupleDefinitionType.IsolatedComponent, + new[] + { + new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.Component_Shared), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.Component_Application), IntermediateFieldType.String), + }, + typeof(IsolatedComponentTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum IsolatedComponentTupleFields + { + Component_Shared, + Component_Application, + } + + public class IsolatedComponentTuple : IntermediateTuple + { + public IsolatedComponentTuple() : base(TupleDefinitions.IsolatedComponent, null, null) + { + } + + public IsolatedComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IsolatedComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[IsolatedComponentTupleFields index] => this.Fields[(int)index]; + + public string Component_Shared + { + get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Shared]?.Value; + set => this.Set((int)IsolatedComponentTupleFields.Component_Shared, value); + } + + public string Component_Application + { + get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Application]?.Value; + set => this.Set((int)IsolatedComponentTupleFields.Component_Application, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs new file mode 100644 index 00000000..f5718607 --- /dev/null +++ b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition LaunchCondition = new IntermediateTupleDefinition( + TupleDefinitionType.LaunchCondition, + new[] + { + new IntermediateFieldDefinition(nameof(LaunchConditionTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LaunchConditionTupleFields.Description), IntermediateFieldType.String), + }, + typeof(LaunchConditionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum LaunchConditionTupleFields + { + Condition, + Description, + } + + public class LaunchConditionTuple : IntermediateTuple + { + public LaunchConditionTuple() : base(TupleDefinitions.LaunchCondition, null, null) + { + } + + public LaunchConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.LaunchCondition, sourceLineNumber, id) + { + } + + public IntermediateField this[LaunchConditionTupleFields index] => this.Fields[(int)index]; + + public string Condition + { + get => (string)this.Fields[(int)LaunchConditionTupleFields.Condition]?.Value; + set => this.Set((int)LaunchConditionTupleFields.Condition, value); + } + + public string Description + { + get => (string)this.Fields[(int)LaunchConditionTupleFields.Description]?.Value; + set => this.Set((int)LaunchConditionTupleFields.Description, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ListBoxTuple.cs b/src/WixToolset.Data/Tuples/ListBoxTuple.cs new file mode 100644 index 00000000..71702c07 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ListBoxTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ListBox = new IntermediateTupleDefinition( + TupleDefinitionType.ListBox, + new[] + { + new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Text), IntermediateFieldType.String), + }, + typeof(ListBoxTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ListBoxTupleFields + { + Property, + Order, + Value, + Text, + } + + public class ListBoxTuple : IntermediateTuple + { + public ListBoxTuple() : base(TupleDefinitions.ListBox, null, null) + { + } + + public ListBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ListBox, sourceLineNumber, id) + { + } + + public IntermediateField this[ListBoxTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ListBoxTupleFields.Property]?.Value; + set => this.Set((int)ListBoxTupleFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ListBoxTupleFields.Order]?.Value; + set => this.Set((int)ListBoxTupleFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ListBoxTupleFields.Value]?.Value; + set => this.Set((int)ListBoxTupleFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ListBoxTupleFields.Text]?.Value; + set => this.Set((int)ListBoxTupleFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ListViewTuple.cs b/src/WixToolset.Data/Tuples/ListViewTuple.cs new file mode 100644 index 00000000..3b1f4c88 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ListViewTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ListView = new IntermediateTupleDefinition( + TupleDefinitionType.ListView, + new[] + { + new IntermediateFieldDefinition(nameof(ListViewTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewTupleFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListViewTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewTupleFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewTupleFields.Binary_), IntermediateFieldType.String), + }, + typeof(ListViewTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ListViewTupleFields + { + Property, + Order, + Value, + Text, + Binary_, + } + + public class ListViewTuple : IntermediateTuple + { + public ListViewTuple() : base(TupleDefinitions.ListView, null, null) + { + } + + public ListViewTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ListView, sourceLineNumber, id) + { + } + + public IntermediateField this[ListViewTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ListViewTupleFields.Property]?.Value; + set => this.Set((int)ListViewTupleFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ListViewTupleFields.Order]?.Value; + set => this.Set((int)ListViewTupleFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ListViewTupleFields.Value]?.Value; + set => this.Set((int)ListViewTupleFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ListViewTupleFields.Text]?.Value; + set => this.Set((int)ListViewTupleFields.Text, value); + } + + public string Binary_ + { + get => (string)this.Fields[(int)ListViewTupleFields.Binary_]?.Value; + set => this.Set((int)ListViewTupleFields.Binary_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs new file mode 100644 index 00000000..cff4aaa0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition LockPermissions = new IntermediateTupleDefinition( + TupleDefinitionType.LockPermissions, + new[] + { + new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Domain), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.User), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Permission), IntermediateFieldType.Number), + }, + typeof(LockPermissionsTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum LockPermissionsTupleFields + { + LockObject, + Table, + Domain, + User, + Permission, + } + + public class LockPermissionsTuple : IntermediateTuple + { + public LockPermissionsTuple() : base(TupleDefinitions.LockPermissions, null, null) + { + } + + public LockPermissionsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.LockPermissions, sourceLineNumber, id) + { + } + + public IntermediateField this[LockPermissionsTupleFields index] => this.Fields[(int)index]; + + public string LockObject + { + get => (string)this.Fields[(int)LockPermissionsTupleFields.LockObject]?.Value; + set => this.Set((int)LockPermissionsTupleFields.LockObject, value); + } + + public string Table + { + get => (string)this.Fields[(int)LockPermissionsTupleFields.Table]?.Value; + set => this.Set((int)LockPermissionsTupleFields.Table, value); + } + + public string Domain + { + get => (string)this.Fields[(int)LockPermissionsTupleFields.Domain]?.Value; + set => this.Set((int)LockPermissionsTupleFields.Domain, value); + } + + public string User + { + get => (string)this.Fields[(int)LockPermissionsTupleFields.User]?.Value; + set => this.Set((int)LockPermissionsTupleFields.User, value); + } + + public int Permission + { + get => (int)this.Fields[(int)LockPermissionsTupleFields.Permission]?.Value; + set => this.Set((int)LockPermissionsTupleFields.Permission, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MIMETuple.cs b/src/WixToolset.Data/Tuples/MIMETuple.cs new file mode 100644 index 00000000..8453275e --- /dev/null +++ b/src/WixToolset.Data/Tuples/MIMETuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MIME = new IntermediateTupleDefinition( + TupleDefinitionType.MIME, + new[] + { + new IntermediateFieldDefinition(nameof(MIMETupleFields.ContentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMETupleFields.Extension_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMETupleFields.CLSID), IntermediateFieldType.String), + }, + typeof(MIMETuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MIMETupleFields + { + ContentType, + Extension_, + CLSID, + } + + public class MIMETuple : IntermediateTuple + { + public MIMETuple() : base(TupleDefinitions.MIME, null, null) + { + } + + public MIMETuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MIME, sourceLineNumber, id) + { + } + + public IntermediateField this[MIMETupleFields index] => this.Fields[(int)index]; + + public string ContentType + { + get => (string)this.Fields[(int)MIMETupleFields.ContentType]?.Value; + set => this.Set((int)MIMETupleFields.ContentType, value); + } + + public string Extension_ + { + get => (string)this.Fields[(int)MIMETupleFields.Extension_]?.Value; + set => this.Set((int)MIMETupleFields.Extension_, value); + } + + public string CLSID + { + get => (string)this.Fields[(int)MIMETupleFields.CLSID]?.Value; + set => this.Set((int)MIMETupleFields.CLSID, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MediaTuple.cs b/src/WixToolset.Data/Tuples/MediaTuple.cs new file mode 100644 index 00000000..305080c3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MediaTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Media = new IntermediateTupleDefinition( + TupleDefinitionType.Media, + new[] + { + new IntermediateFieldDefinition(nameof(MediaTupleFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaTupleFields.LastSequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaTupleFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaTupleFields.Cabinet), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaTupleFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaTupleFields.Source), IntermediateFieldType.String), + }, + typeof(MediaTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MediaTupleFields + { + DiskId, + LastSequence, + DiskPrompt, + Cabinet, + VolumeLabel, + Source, + } + + public class MediaTuple : IntermediateTuple + { + public MediaTuple() : base(TupleDefinitions.Media, null, null) + { + } + + public MediaTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Media, sourceLineNumber, id) + { + } + + public IntermediateField this[MediaTupleFields index] => this.Fields[(int)index]; + + public int DiskId + { + get => (int)this.Fields[(int)MediaTupleFields.DiskId]?.Value; + set => this.Set((int)MediaTupleFields.DiskId, value); + } + + public int LastSequence + { + get => (int)this.Fields[(int)MediaTupleFields.LastSequence]?.Value; + set => this.Set((int)MediaTupleFields.LastSequence, value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)MediaTupleFields.DiskPrompt]?.Value; + set => this.Set((int)MediaTupleFields.DiskPrompt, value); + } + + public string Cabinet + { + get => (string)this.Fields[(int)MediaTupleFields.Cabinet]?.Value; + set => this.Set((int)MediaTupleFields.Cabinet, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)MediaTupleFields.VolumeLabel]?.Value; + set => this.Set((int)MediaTupleFields.VolumeLabel, value); + } + + public string Source + { + get => (string)this.Fields[(int)MediaTupleFields.Source]?.Value; + set => this.Set((int)MediaTupleFields.Source, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs new file mode 100644 index 00000000..4f762214 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleAdminExecuteSequence = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleAdminExecuteSequence, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.After), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(ModuleAdminExecuteSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleAdminExecuteSequenceTupleFields + { + Action, + Sequence, + BaseAction, + After, + Condition, + } + + public class ModuleAdminExecuteSequenceTuple : IntermediateTuple + { + public ModuleAdminExecuteSequenceTuple() : base(TupleDefinitions.ModuleAdminExecuteSequence, null, null) + { + } + + public ModuleAdminExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdminExecuteSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleAdminExecuteSequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Action]?.Value; + set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Action, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Sequence, value); + } + + public string BaseAction + { + get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.BaseAction]?.Value; + set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.BaseAction, value); + } + + public int After + { + get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.After]?.Value; + set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.After, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Condition]?.Value; + set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs new file mode 100644 index 00000000..bc873b72 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleAdminUISequence = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleAdminUISequence, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.BaseAction), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.After), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(ModuleAdminUISequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleAdminUISequenceTupleFields + { + Action, + Sequence, + BaseAction, + After, + Condition, + } + + public class ModuleAdminUISequenceTuple : IntermediateTuple + { + public ModuleAdminUISequenceTuple() : base(TupleDefinitions.ModuleAdminUISequence, null, null) + { + } + + public ModuleAdminUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdminUISequence, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleAdminUISequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Action]?.Value; + set => this.Set((int)ModuleAdminUISequenceTupleFields.Action, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.Sequence]?.Value; + set => this.Set((int)ModuleAdminUISequenceTupleFields.Sequence, value); + } + + public string BaseAction + { + get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.BaseAction]?.Value; + set => this.Set((int)ModuleAdminUISequenceTupleFields.BaseAction, value); + } + + public int After + { + get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.After]?.Value; + set => this.Set((int)ModuleAdminUISequenceTupleFields.After, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Condition]?.Value; + set => this.Set((int)ModuleAdminUISequenceTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs new file mode 100644 index 00000000..2864be7e --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleAdvtExecuteSequence = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleAdvtExecuteSequence, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.After), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(ModuleAdvtExecuteSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleAdvtExecuteSequenceTupleFields + { + Action, + Sequence, + BaseAction, + After, + Condition, + } + + public class ModuleAdvtExecuteSequenceTuple : IntermediateTuple + { + public ModuleAdvtExecuteSequenceTuple() : base(TupleDefinitions.ModuleAdvtExecuteSequence, null, null) + { + } + + public ModuleAdvtExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdvtExecuteSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleAdvtExecuteSequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Action]?.Value; + set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Action, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Sequence, value); + } + + public string BaseAction + { + get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.BaseAction]?.Value; + set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.BaseAction, value); + } + + public int After + { + get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.After]?.Value; + set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.After, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Condition]?.Value; + set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs new file mode 100644 index 00000000..24b9aab4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleComponents = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleComponents, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.Component), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.Language), IntermediateFieldType.Number), + }, + typeof(ModuleComponentsTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleComponentsTupleFields + { + Component, + ModuleID, + Language, + } + + public class ModuleComponentsTuple : IntermediateTuple + { + public ModuleComponentsTuple() : base(TupleDefinitions.ModuleComponents, null, null) + { + } + + public ModuleComponentsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleComponents, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleComponentsTupleFields index] => this.Fields[(int)index]; + + public string Component + { + get => (string)this.Fields[(int)ModuleComponentsTupleFields.Component]?.Value; + set => this.Set((int)ModuleComponentsTupleFields.Component, value); + } + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleComponentsTupleFields.ModuleID]?.Value; + set => this.Set((int)ModuleComponentsTupleFields.ModuleID, value); + } + + public int Language + { + get => (int)this.Fields[(int)ModuleComponentsTupleFields.Language]?.Value; + set => this.Set((int)ModuleComponentsTupleFields.Language, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs new file mode 100644 index 00000000..b3c4cd7f --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleConfiguration = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleConfiguration, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Format), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.ContextData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.DefaultValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.HelpLocation), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.HelpKeyword), IntermediateFieldType.String), + }, + typeof(ModuleConfigurationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleConfigurationTupleFields + { + Name, + Format, + Type, + ContextData, + DefaultValue, + Attributes, + DisplayName, + Description, + HelpLocation, + HelpKeyword, + } + + public class ModuleConfigurationTuple : IntermediateTuple + { + public ModuleConfigurationTuple() : base(TupleDefinitions.ModuleConfiguration, null, null) + { + } + + public ModuleConfigurationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleConfiguration, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleConfigurationTupleFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Name]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.Name, value); + } + + public int Format + { + get => (int)this.Fields[(int)ModuleConfigurationTupleFields.Format]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.Format, value); + } + + public string Type + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Type]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.Type, value); + } + + public string ContextData + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.ContextData]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.ContextData, value); + } + + public string DefaultValue + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DefaultValue]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.DefaultValue, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)ModuleConfigurationTupleFields.Attributes]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.Attributes, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DisplayName]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Description]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.Description, value); + } + + public string HelpLocation + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpLocation]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.HelpLocation, value); + } + + public string HelpKeyword + { + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpKeyword]?.Value; + set => this.Set((int)ModuleConfigurationTupleFields.HelpKeyword, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs new file mode 100644 index 00000000..ed887207 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleDependency = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleDependency, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredVersion), IntermediateFieldType.String), + }, + typeof(ModuleDependencyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleDependencyTupleFields + { + ModuleID, + ModuleLanguage, + RequiredID, + RequiredLanguage, + RequiredVersion, + } + + public class ModuleDependencyTuple : IntermediateTuple + { + public ModuleDependencyTuple() : base(TupleDefinitions.ModuleDependency, null, null) + { + } + + public ModuleDependencyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleDependency, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleDependencyTupleFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleDependencyTupleFields.ModuleID]?.Value; + set => this.Set((int)ModuleDependencyTupleFields.ModuleID, value); + } + + public int ModuleLanguage + { + get => (int)this.Fields[(int)ModuleDependencyTupleFields.ModuleLanguage]?.Value; + set => this.Set((int)ModuleDependencyTupleFields.ModuleLanguage, value); + } + + public string RequiredID + { + get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredID]?.Value; + set => this.Set((int)ModuleDependencyTupleFields.RequiredID, value); + } + + public int RequiredLanguage + { + get => (int)this.Fields[(int)ModuleDependencyTupleFields.RequiredLanguage]?.Value; + set => this.Set((int)ModuleDependencyTupleFields.RequiredLanguage, value); + } + + public string RequiredVersion + { + get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredVersion]?.Value; + set => this.Set((int)ModuleDependencyTupleFields.RequiredVersion, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs new file mode 100644 index 00000000..968fc2cd --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleExclusion = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleExclusion, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedMinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedMaxVersion), IntermediateFieldType.String), + }, + typeof(ModuleExclusionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleExclusionTupleFields + { + ModuleID, + ModuleLanguage, + ExcludedID, + ExcludedLanguage, + ExcludedMinVersion, + ExcludedMaxVersion, + } + + public class ModuleExclusionTuple : IntermediateTuple + { + public ModuleExclusionTuple() : base(TupleDefinitions.ModuleExclusion, null, null) + { + } + + public ModuleExclusionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleExclusion, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleExclusionTupleFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ModuleID]?.Value; + set => this.Set((int)ModuleExclusionTupleFields.ModuleID, value); + } + + public int ModuleLanguage + { + get => (int)this.Fields[(int)ModuleExclusionTupleFields.ModuleLanguage]?.Value; + set => this.Set((int)ModuleExclusionTupleFields.ModuleLanguage, value); + } + + public string ExcludedID + { + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedID]?.Value; + set => this.Set((int)ModuleExclusionTupleFields.ExcludedID, value); + } + + public int ExcludedLanguage + { + get => (int)this.Fields[(int)ModuleExclusionTupleFields.ExcludedLanguage]?.Value; + set => this.Set((int)ModuleExclusionTupleFields.ExcludedLanguage, value); + } + + public string ExcludedMinVersion + { + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMinVersion]?.Value; + set => this.Set((int)ModuleExclusionTupleFields.ExcludedMinVersion, value); + } + + public string ExcludedMaxVersion + { + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMaxVersion]?.Value; + set => this.Set((int)ModuleExclusionTupleFields.ExcludedMaxVersion, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs new file mode 100644 index 00000000..ec82c94b --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleIgnoreTable = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleIgnoreTable, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleIgnoreTableTupleFields.Table), IntermediateFieldType.String), + }, + typeof(ModuleIgnoreTableTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleIgnoreTableTupleFields + { + Table, + } + + public class ModuleIgnoreTableTuple : IntermediateTuple + { + public ModuleIgnoreTableTuple() : base(TupleDefinitions.ModuleIgnoreTable, null, null) + { + } + + public ModuleIgnoreTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleIgnoreTable, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleIgnoreTableTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)ModuleIgnoreTableTupleFields.Table]?.Value; + set => this.Set((int)ModuleIgnoreTableTupleFields.Table, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs new file mode 100644 index 00000000..22bb678c --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleInstallExecuteSequence = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleInstallExecuteSequence, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.After), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(ModuleInstallExecuteSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleInstallExecuteSequenceTupleFields + { + Action, + Sequence, + BaseAction, + After, + Condition, + } + + public class ModuleInstallExecuteSequenceTuple : IntermediateTuple + { + public ModuleInstallExecuteSequenceTuple() : base(TupleDefinitions.ModuleInstallExecuteSequence, null, null) + { + } + + public ModuleInstallExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleInstallExecuteSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleInstallExecuteSequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Action]?.Value; + set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Action, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Sequence, value); + } + + public string BaseAction + { + get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.BaseAction]?.Value; + set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.BaseAction, value); + } + + public int After + { + get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.After]?.Value; + set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.After, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Condition]?.Value; + set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs new file mode 100644 index 00000000..cc6e0c76 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleInstallUISequence = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleInstallUISequence, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.BaseAction), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.After), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(ModuleInstallUISequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleInstallUISequenceTupleFields + { + Action, + Sequence, + BaseAction, + After, + Condition, + } + + public class ModuleInstallUISequenceTuple : IntermediateTuple + { + public ModuleInstallUISequenceTuple() : base(TupleDefinitions.ModuleInstallUISequence, null, null) + { + } + + public ModuleInstallUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleInstallUISequence, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleInstallUISequenceTupleFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Action]?.Value; + set => this.Set((int)ModuleInstallUISequenceTupleFields.Action, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.Sequence]?.Value; + set => this.Set((int)ModuleInstallUISequenceTupleFields.Sequence, value); + } + + public string BaseAction + { + get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.BaseAction]?.Value; + set => this.Set((int)ModuleInstallUISequenceTupleFields.BaseAction, value); + } + + public int After + { + get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.After]?.Value; + set => this.Set((int)ModuleInstallUISequenceTupleFields.After, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Condition]?.Value; + set => this.Set((int)ModuleInstallUISequenceTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs new file mode 100644 index 00000000..836f769b --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleSignature = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleSignature, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.Version), IntermediateFieldType.String), + }, + typeof(ModuleSignatureTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleSignatureTupleFields + { + ModuleID, + Language, + Version, + } + + public class ModuleSignatureTuple : IntermediateTuple + { + public ModuleSignatureTuple() : base(TupleDefinitions.ModuleSignature, null, null) + { + } + + public ModuleSignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleSignature, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleSignatureTupleFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleSignatureTupleFields.ModuleID]?.Value; + set => this.Set((int)ModuleSignatureTupleFields.ModuleID, value); + } + + public int Language + { + get => (int)this.Fields[(int)ModuleSignatureTupleFields.Language]?.Value; + set => this.Set((int)ModuleSignatureTupleFields.Language, value); + } + + public string Version + { + get => (string)this.Fields[(int)ModuleSignatureTupleFields.Version]?.Value; + set => this.Set((int)ModuleSignatureTupleFields.Version, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs new file mode 100644 index 00000000..609670f0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ModuleSubstitution = new IntermediateTupleDefinition( + TupleDefinitionType.ModuleSubstitution, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Row), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Column), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Value), IntermediateFieldType.String), + }, + typeof(ModuleSubstitutionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ModuleSubstitutionTupleFields + { + Table, + Row, + Column, + Value, + } + + public class ModuleSubstitutionTuple : IntermediateTuple + { + public ModuleSubstitutionTuple() : base(TupleDefinitions.ModuleSubstitution, null, null) + { + } + + public ModuleSubstitutionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleSubstitution, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleSubstitutionTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Table]?.Value; + set => this.Set((int)ModuleSubstitutionTupleFields.Table, value); + } + + public string Row + { + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Row]?.Value; + set => this.Set((int)ModuleSubstitutionTupleFields.Row, value); + } + + public string Column + { + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Column]?.Value; + set => this.Set((int)ModuleSubstitutionTupleFields.Column, value); + } + + public string Value + { + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Value]?.Value; + set => this.Set((int)ModuleSubstitutionTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MoveFileTuple.cs b/src/WixToolset.Data/Tuples/MoveFileTuple.cs new file mode 100644 index 00000000..404d39b3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MoveFileTuple.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MoveFile = new IntermediateTupleDefinition( + TupleDefinitionType.MoveFile, + new[] + { + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.FileKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Options), IntermediateFieldType.Number), + }, + typeof(MoveFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MoveFileTupleFields + { + FileKey, + Component_, + SourceName, + DestName, + SourceFolder, + DestFolder, + Options, + } + + public class MoveFileTuple : IntermediateTuple + { + public MoveFileTuple() : base(TupleDefinitions.MoveFile, null, null) + { + } + + public MoveFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MoveFile, sourceLineNumber, id) + { + } + + public IntermediateField this[MoveFileTupleFields index] => this.Fields[(int)index]; + + public string FileKey + { + get => (string)this.Fields[(int)MoveFileTupleFields.FileKey]?.Value; + set => this.Set((int)MoveFileTupleFields.FileKey, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)MoveFileTupleFields.Component_]?.Value; + set => this.Set((int)MoveFileTupleFields.Component_, value); + } + + public string SourceName + { + get => (string)this.Fields[(int)MoveFileTupleFields.SourceName]?.Value; + set => this.Set((int)MoveFileTupleFields.SourceName, value); + } + + public string DestName + { + get => (string)this.Fields[(int)MoveFileTupleFields.DestName]?.Value; + set => this.Set((int)MoveFileTupleFields.DestName, value); + } + + public string SourceFolder + { + get => (string)this.Fields[(int)MoveFileTupleFields.SourceFolder]?.Value; + set => this.Set((int)MoveFileTupleFields.SourceFolder, value); + } + + public string DestFolder + { + get => (string)this.Fields[(int)MoveFileTupleFields.DestFolder]?.Value; + set => this.Set((int)MoveFileTupleFields.DestFolder, value); + } + + public int Options + { + get => (int)this.Fields[(int)MoveFileTupleFields.Options]?.Value; + set => this.Set((int)MoveFileTupleFields.Options, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs new file mode 100644 index 00000000..a8e97b00 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiAssemblyName = new IntermediateTupleDefinition( + TupleDefinitionType.MsiAssemblyName, + new[] + { + new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Value), IntermediateFieldType.String), + }, + typeof(MsiAssemblyNameTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiAssemblyNameTupleFields + { + Component_, + Name, + Value, + } + + public class MsiAssemblyNameTuple : IntermediateTuple + { + public MsiAssemblyNameTuple() : base(TupleDefinitions.MsiAssemblyName, null, null) + { + } + + public MsiAssemblyNameTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiAssemblyName, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiAssemblyNameTupleFields index] => this.Fields[(int)index]; + + public string Component_ + { + get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Component_]?.Value; + set => this.Set((int)MsiAssemblyNameTupleFields.Component_, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Name]?.Value; + set => this.Set((int)MsiAssemblyNameTupleFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Value]?.Value; + set => this.Set((int)MsiAssemblyNameTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs new file mode 100644 index 00000000..0cd814d8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiAssembly = new IntermediateTupleDefinition( + TupleDefinitionType.MsiAssembly, + new[] + { + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.File_Manifest), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.File_Application), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(MsiAssemblyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiAssemblyTupleFields + { + Component_, + Feature_, + File_Manifest, + File_Application, + Attributes, + } + + public class MsiAssemblyTuple : IntermediateTuple + { + public MsiAssemblyTuple() : base(TupleDefinitions.MsiAssembly, null, null) + { + } + + public MsiAssemblyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiAssembly, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiAssemblyTupleFields index] => this.Fields[(int)index]; + + public string Component_ + { + get => (string)this.Fields[(int)MsiAssemblyTupleFields.Component_]?.Value; + set => this.Set((int)MsiAssemblyTupleFields.Component_, value); + } + + public string Feature_ + { + get => (string)this.Fields[(int)MsiAssemblyTupleFields.Feature_]?.Value; + set => this.Set((int)MsiAssemblyTupleFields.Feature_, value); + } + + public string File_Manifest + { + get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Manifest]?.Value; + set => this.Set((int)MsiAssemblyTupleFields.File_Manifest, value); + } + + public string File_Application + { + get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Application]?.Value; + set => this.Set((int)MsiAssemblyTupleFields.File_Application, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)MsiAssemblyTupleFields.Attributes]?.Value; + set => this.Set((int)MsiAssemblyTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs new file mode 100644 index 00000000..fb949afb --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiDigitalCertificate = new IntermediateTupleDefinition( + TupleDefinitionType.MsiDigitalCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiDigitalCertificateTupleFields.DigitalCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalCertificateTupleFields.CertData), IntermediateFieldType.Path), + }, + typeof(MsiDigitalCertificateTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiDigitalCertificateTupleFields + { + DigitalCertificate, + CertData, + } + + public class MsiDigitalCertificateTuple : IntermediateTuple + { + public MsiDigitalCertificateTuple() : base(TupleDefinitions.MsiDigitalCertificate, null, null) + { + } + + public MsiDigitalCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiDigitalCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiDigitalCertificateTupleFields index] => this.Fields[(int)index]; + + public string DigitalCertificate + { + get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.DigitalCertificate]?.Value; + set => this.Set((int)MsiDigitalCertificateTupleFields.DigitalCertificate, value); + } + + public string CertData + { + get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.CertData]?.Value; + set => this.Set((int)MsiDigitalCertificateTupleFields.CertData, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs new file mode 100644 index 00000000..8b30c53c --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiDigitalSignature = new IntermediateTupleDefinition( + TupleDefinitionType.MsiDigitalSignature, + new[] + { + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.SignObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.DigitalCertificate_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Hash), IntermediateFieldType.Path), + }, + typeof(MsiDigitalSignatureTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiDigitalSignatureTupleFields + { + Table, + SignObject, + DigitalCertificate_, + Hash, + } + + public class MsiDigitalSignatureTuple : IntermediateTuple + { + public MsiDigitalSignatureTuple() : base(TupleDefinitions.MsiDigitalSignature, null, null) + { + } + + public MsiDigitalSignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiDigitalSignature, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiDigitalSignatureTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Table]?.Value; + set => this.Set((int)MsiDigitalSignatureTupleFields.Table, value); + } + + public string SignObject + { + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.SignObject]?.Value; + set => this.Set((int)MsiDigitalSignatureTupleFields.SignObject, value); + } + + public string DigitalCertificate_ + { + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.DigitalCertificate_]?.Value; + set => this.Set((int)MsiDigitalSignatureTupleFields.DigitalCertificate_, value); + } + + public string Hash + { + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Hash]?.Value; + set => this.Set((int)MsiDigitalSignatureTupleFields.Hash, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs new file mode 100644 index 00000000..7f1b7a2a --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiEmbeddedChainer = new IntermediateTupleDefinition( + TupleDefinitionType.MsiEmbeddedChainer, + new[] + { + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.CommandLine), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Type), IntermediateFieldType.Number), + }, + typeof(MsiEmbeddedChainerTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiEmbeddedChainerTupleFields + { + MsiEmbeddedChainer, + Condition, + CommandLine, + Source, + Type, + } + + public class MsiEmbeddedChainerTuple : IntermediateTuple + { + public MsiEmbeddedChainerTuple() : base(TupleDefinitions.MsiEmbeddedChainer, null, null) + { + } + + public MsiEmbeddedChainerTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiEmbeddedChainerTupleFields index] => this.Fields[(int)index]; + + public string MsiEmbeddedChainer + { + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer]?.Value; + set => this.Set((int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer, value); + } + + public string Condition + { + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Condition]?.Value; + set => this.Set((int)MsiEmbeddedChainerTupleFields.Condition, value); + } + + public string CommandLine + { + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.CommandLine]?.Value; + set => this.Set((int)MsiEmbeddedChainerTupleFields.CommandLine, value); + } + + public string Source + { + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Source]?.Value; + set => this.Set((int)MsiEmbeddedChainerTupleFields.Source, value); + } + + public int Type + { + get => (int)this.Fields[(int)MsiEmbeddedChainerTupleFields.Type]?.Value; + set => this.Set((int)MsiEmbeddedChainerTupleFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs new file mode 100644 index 00000000..82deb53a --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiEmbeddedUI = new IntermediateTupleDefinition( + TupleDefinitionType.MsiEmbeddedUI, + new[] + { + new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.MsiEmbeddedUI), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.MessageFilter), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.Data), IntermediateFieldType.Path), + }, + typeof(MsiEmbeddedUITuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiEmbeddedUITupleFields + { + MsiEmbeddedUI, + FileName, + Attributes, + MessageFilter, + Data, + } + + public class MsiEmbeddedUITuple : IntermediateTuple + { + public MsiEmbeddedUITuple() : base(TupleDefinitions.MsiEmbeddedUI, null, null) + { + } + + public MsiEmbeddedUITuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiEmbeddedUI, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiEmbeddedUITupleFields index] => this.Fields[(int)index]; + + public string MsiEmbeddedUI + { + get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.MsiEmbeddedUI]?.Value; + set => this.Set((int)MsiEmbeddedUITupleFields.MsiEmbeddedUI, value); + } + + public string FileName + { + get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.FileName]?.Value; + set => this.Set((int)MsiEmbeddedUITupleFields.FileName, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)MsiEmbeddedUITupleFields.Attributes]?.Value; + set => this.Set((int)MsiEmbeddedUITupleFields.Attributes, value); + } + + public int MessageFilter + { + get => (int)this.Fields[(int)MsiEmbeddedUITupleFields.MessageFilter]?.Value; + set => this.Set((int)MsiEmbeddedUITupleFields.MessageFilter, value); + } + + public string Data + { + get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.Data]?.Value; + set => this.Set((int)MsiEmbeddedUITupleFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs new file mode 100644 index 00000000..2850bc22 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiFileHash = new IntermediateTupleDefinition( + TupleDefinitionType.MsiFileHash, + new[] + { + new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.Options), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart1), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart2), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart3), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart4), IntermediateFieldType.Number), + }, + typeof(MsiFileHashTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiFileHashTupleFields + { + File_, + Options, + HashPart1, + HashPart2, + HashPart3, + HashPart4, + } + + public class MsiFileHashTuple : IntermediateTuple + { + public MsiFileHashTuple() : base(TupleDefinitions.MsiFileHash, null, null) + { + } + + public MsiFileHashTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiFileHash, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiFileHashTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)MsiFileHashTupleFields.File_]?.Value; + set => this.Set((int)MsiFileHashTupleFields.File_, value); + } + + public int Options + { + get => (int)this.Fields[(int)MsiFileHashTupleFields.Options]?.Value; + set => this.Set((int)MsiFileHashTupleFields.Options, value); + } + + public int HashPart1 + { + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart1]?.Value; + set => this.Set((int)MsiFileHashTupleFields.HashPart1, value); + } + + public int HashPart2 + { + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart2]?.Value; + set => this.Set((int)MsiFileHashTupleFields.HashPart2, value); + } + + public int HashPart3 + { + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart3]?.Value; + set => this.Set((int)MsiFileHashTupleFields.HashPart3, value); + } + + public int HashPart4 + { + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart4]?.Value; + set => this.Set((int)MsiFileHashTupleFields.HashPart4, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs new file mode 100644 index 00000000..14fc62a3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiLockPermissionsEx = new IntermediateTupleDefinition( + TupleDefinitionType.MsiLockPermissionsEx, + new[] + { + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.MsiLockPermissionsEx), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.SDDLText), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(MsiLockPermissionsExTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiLockPermissionsExTupleFields + { + MsiLockPermissionsEx, + LockObject, + Table, + SDDLText, + Condition, + } + + public class MsiLockPermissionsExTuple : IntermediateTuple + { + public MsiLockPermissionsExTuple() : base(TupleDefinitions.MsiLockPermissionsEx, null, null) + { + } + + public MsiLockPermissionsExTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiLockPermissionsExTupleFields index] => this.Fields[(int)index]; + + public string MsiLockPermissionsEx + { + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx]?.Value; + set => this.Set((int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx, value); + } + + public string LockObject + { + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.LockObject]?.Value; + set => this.Set((int)MsiLockPermissionsExTupleFields.LockObject, value); + } + + public string Table + { + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Table]?.Value; + set => this.Set((int)MsiLockPermissionsExTupleFields.Table, value); + } + + public string SDDLText + { + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.SDDLText]?.Value; + set => this.Set((int)MsiLockPermissionsExTupleFields.SDDLText, value); + } + + public string Condition + { + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Condition]?.Value; + set => this.Set((int)MsiLockPermissionsExTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs new file mode 100644 index 00000000..6eeb141c --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiPackageCertificate = new IntermediateTupleDefinition( + TupleDefinitionType.MsiPackageCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.PackageCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.DigitalCertificate_), IntermediateFieldType.String), + }, + typeof(MsiPackageCertificateTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiPackageCertificateTupleFields + { + PackageCertificate, + DigitalCertificate_, + } + + public class MsiPackageCertificateTuple : IntermediateTuple + { + public MsiPackageCertificateTuple() : base(TupleDefinitions.MsiPackageCertificate, null, null) + { + } + + public MsiPackageCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPackageCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPackageCertificateTupleFields index] => this.Fields[(int)index]; + + public string PackageCertificate + { + get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.PackageCertificate]?.Value; + set => this.Set((int)MsiPackageCertificateTupleFields.PackageCertificate, value); + } + + public string DigitalCertificate_ + { + get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.DigitalCertificate_]?.Value; + set => this.Set((int)MsiPackageCertificateTupleFields.DigitalCertificate_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs new file mode 100644 index 00000000..1b02dca9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiPatchCertificate = new IntermediateTupleDefinition( + TupleDefinitionType.MsiPatchCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.PatchCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.DigitalCertificate_), IntermediateFieldType.String), + }, + typeof(MsiPatchCertificateTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiPatchCertificateTupleFields + { + PatchCertificate, + DigitalCertificate_, + } + + public class MsiPatchCertificateTuple : IntermediateTuple + { + public MsiPatchCertificateTuple() : base(TupleDefinitions.MsiPatchCertificate, null, null) + { + } + + public MsiPatchCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchCertificateTupleFields index] => this.Fields[(int)index]; + + public string PatchCertificate + { + get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.PatchCertificate]?.Value; + set => this.Set((int)MsiPatchCertificateTupleFields.PatchCertificate, value); + } + + public string DigitalCertificate_ + { + get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.DigitalCertificate_]?.Value; + set => this.Set((int)MsiPatchCertificateTupleFields.DigitalCertificate_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs new file mode 100644 index 00000000..6d99a9ae --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiPatchHeaders = new IntermediateTupleDefinition( + TupleDefinitionType.MsiPatchHeaders, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchHeadersTupleFields.StreamRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchHeadersTupleFields.Header), IntermediateFieldType.Path), + }, + typeof(MsiPatchHeadersTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiPatchHeadersTupleFields + { + StreamRef, + Header, + } + + public class MsiPatchHeadersTuple : IntermediateTuple + { + public MsiPatchHeadersTuple() : base(TupleDefinitions.MsiPatchHeaders, null, null) + { + } + + public MsiPatchHeadersTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchHeaders, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchHeadersTupleFields index] => this.Fields[(int)index]; + + public string StreamRef + { + get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.StreamRef]?.Value; + set => this.Set((int)MsiPatchHeadersTupleFields.StreamRef, value); + } + + public string Header + { + get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.Header]?.Value; + set => this.Set((int)MsiPatchHeadersTupleFields.Header, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs new file mode 100644 index 00000000..f6a6fd7d --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiPatchMetadata = new IntermediateTupleDefinition( + TupleDefinitionType.MsiPatchMetadata, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Value), IntermediateFieldType.String), + }, + typeof(MsiPatchMetadataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiPatchMetadataTupleFields + { + Company, + Property, + Value, + } + + public class MsiPatchMetadataTuple : IntermediateTuple + { + public MsiPatchMetadataTuple() : base(TupleDefinitions.MsiPatchMetadata, null, null) + { + } + + public MsiPatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchMetadata, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchMetadataTupleFields index] => this.Fields[(int)index]; + + public string Company + { + get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Company]?.Value; + set => this.Set((int)MsiPatchMetadataTupleFields.Company, value); + } + + public string Property + { + get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Property]?.Value; + set => this.Set((int)MsiPatchMetadataTupleFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Value]?.Value; + set => this.Set((int)MsiPatchMetadataTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs new file mode 100644 index 00000000..f23ace77 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiPatchOldAssemblyFile = new IntermediateTupleDefinition( + TupleDefinitionType.MsiPatchOldAssemblyFile, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.Assembly_), IntermediateFieldType.String), + }, + typeof(MsiPatchOldAssemblyFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiPatchOldAssemblyFileTupleFields + { + File_, + Assembly_, + } + + public class MsiPatchOldAssemblyFileTuple : IntermediateTuple + { + public MsiPatchOldAssemblyFileTuple() : base(TupleDefinitions.MsiPatchOldAssemblyFile, null, null) + { + } + + public MsiPatchOldAssemblyFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchOldAssemblyFileTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.File_]?.Value; + set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.File_, value); + } + + public string Assembly_ + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.Assembly_]?.Value; + set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.Assembly_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs new file mode 100644 index 00000000..77385f5f --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiPatchOldAssemblyName = new IntermediateTupleDefinition( + TupleDefinitionType.MsiPatchOldAssemblyName, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Assembly), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Value), IntermediateFieldType.String), + }, + typeof(MsiPatchOldAssemblyNameTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiPatchOldAssemblyNameTupleFields + { + Assembly, + Name, + Value, + } + + public class MsiPatchOldAssemblyNameTuple : IntermediateTuple + { + public MsiPatchOldAssemblyNameTuple() : base(TupleDefinitions.MsiPatchOldAssemblyName, null, null) + { + } + + public MsiPatchOldAssemblyNameTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchOldAssemblyNameTupleFields index] => this.Fields[(int)index]; + + public string Assembly + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Assembly]?.Value; + set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Assembly, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Name]?.Value; + set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Value]?.Value; + set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs new file mode 100644 index 00000000..c48be28f --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiPatchSequence = new IntermediateTupleDefinition( + TupleDefinitionType.MsiPatchSequence, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(MsiPatchSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiPatchSequenceTupleFields + { + PatchFamily, + ProductCode, + Sequence, + Attributes, + } + + public class MsiPatchSequenceTuple : IntermediateTuple + { + public MsiPatchSequenceTuple() : base(TupleDefinitions.MsiPatchSequence, null, null) + { + } + + public MsiPatchSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchSequenceTupleFields index] => this.Fields[(int)index]; + + public string PatchFamily + { + get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.PatchFamily]?.Value; + set => this.Set((int)MsiPatchSequenceTupleFields.PatchFamily, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.ProductCode]?.Value; + set => this.Set((int)MsiPatchSequenceTupleFields.ProductCode, value); + } + + public string Sequence + { + get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)MsiPatchSequenceTupleFields.Sequence, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)MsiPatchSequenceTupleFields.Attributes]?.Value; + set => this.Set((int)MsiPatchSequenceTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs new file mode 100644 index 00000000..043be793 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiServiceConfigFailureActions = new IntermediateTupleDefinition( + TupleDefinitionType.MsiServiceConfigFailureActions, + new[] + { + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.MsiServiceConfigFailureActions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Event), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.ResetPeriod), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.RebootMessage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Actions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.DelayActions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(MsiServiceConfigFailureActionsTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiServiceConfigFailureActionsTupleFields + { + MsiServiceConfigFailureActions, + Name, + Event, + ResetPeriod, + RebootMessage, + Command, + Actions, + DelayActions, + Component_, + } + + public class MsiServiceConfigFailureActionsTuple : IntermediateTuple + { + public MsiServiceConfigFailureActionsTuple() : base(TupleDefinitions.MsiServiceConfigFailureActions, null, null) + { + } + + public MsiServiceConfigFailureActionsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiServiceConfigFailureActionsTupleFields index] => this.Fields[(int)index]; + + public string MsiServiceConfigFailureActions + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.MsiServiceConfigFailureActions]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.MsiServiceConfigFailureActions, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Name]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Name, value); + } + + public int Event + { + get => (int)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Event]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Event, value); + } + + public int ResetPeriod + { + get => (int)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod, value); + } + + public string RebootMessage + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.RebootMessage]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.RebootMessage, value); + } + + public string Command + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Command]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Command, value); + } + + public string Actions + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Actions]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Actions, value); + } + + public string DelayActions + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.DelayActions]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.DelayActions, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Component_]?.Value; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs new file mode 100644 index 00000000..701d85b4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiServiceConfig = new IntermediateTupleDefinition( + TupleDefinitionType.MsiServiceConfig, + new[] + { + new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.MsiServiceConfig), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Event), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.ConfigType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(MsiServiceConfigTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiServiceConfigTupleFields + { + MsiServiceConfig, + Name, + Event, + ConfigType, + Argument, + Component_, + } + + public class MsiServiceConfigTuple : IntermediateTuple + { + public MsiServiceConfigTuple() : base(TupleDefinitions.MsiServiceConfig, null, null) + { + } + + public MsiServiceConfigTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiServiceConfig, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiServiceConfigTupleFields index] => this.Fields[(int)index]; + + public string MsiServiceConfig + { + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.MsiServiceConfig]?.Value; + set => this.Set((int)MsiServiceConfigTupleFields.MsiServiceConfig, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Name]?.Value; + set => this.Set((int)MsiServiceConfigTupleFields.Name, value); + } + + public int Event + { + get => (int)this.Fields[(int)MsiServiceConfigTupleFields.Event]?.Value; + set => this.Set((int)MsiServiceConfigTupleFields.Event, value); + } + + public int ConfigType + { + get => (int)this.Fields[(int)MsiServiceConfigTupleFields.ConfigType]?.Value; + set => this.Set((int)MsiServiceConfigTupleFields.ConfigType, value); + } + + public string Argument + { + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Argument]?.Value; + set => this.Set((int)MsiServiceConfigTupleFields.Argument, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Component_]?.Value; + set => this.Set((int)MsiServiceConfigTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs new file mode 100644 index 00000000..9ee6b2f2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition MsiShortcutProperty = new IntermediateTupleDefinition( + TupleDefinitionType.MsiShortcutProperty, + new[] + { + new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.MsiShortcutProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.Shortcut_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropertyKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropVariantValue), IntermediateFieldType.String), + }, + typeof(MsiShortcutPropertyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum MsiShortcutPropertyTupleFields + { + MsiShortcutProperty, + Shortcut_, + PropertyKey, + PropVariantValue, + } + + public class MsiShortcutPropertyTuple : IntermediateTuple + { + public MsiShortcutPropertyTuple() : base(TupleDefinitions.MsiShortcutProperty, null, null) + { + } + + public MsiShortcutPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiShortcutProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiShortcutPropertyTupleFields index] => this.Fields[(int)index]; + + public string MsiShortcutProperty + { + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.MsiShortcutProperty]?.Value; + set => this.Set((int)MsiShortcutPropertyTupleFields.MsiShortcutProperty, value); + } + + public string Shortcut_ + { + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.Shortcut_]?.Value; + set => this.Set((int)MsiShortcutPropertyTupleFields.Shortcut_, value); + } + + public string PropertyKey + { + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropertyKey]?.Value; + set => this.Set((int)MsiShortcutPropertyTupleFields.PropertyKey, value); + } + + public string PropVariantValue + { + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropVariantValue]?.Value; + set => this.Set((int)MsiShortcutPropertyTupleFields.PropVariantValue, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs new file mode 100644 index 00000000..de4f88cd --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ODBCAttribute = new IntermediateTupleDefinition( + TupleDefinitionType.ODBCAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Driver_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Value), IntermediateFieldType.String), + }, + typeof(ODBCAttributeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ODBCAttributeTupleFields + { + Driver_, + Attribute, + Value, + } + + public class ODBCAttributeTuple : IntermediateTuple + { + public ODBCAttributeTuple() : base(TupleDefinitions.ODBCAttribute, null, null) + { + } + + public ODBCAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCAttributeTupleFields index] => this.Fields[(int)index]; + + public string Driver_ + { + get => (string)this.Fields[(int)ODBCAttributeTupleFields.Driver_]?.Value; + set => this.Set((int)ODBCAttributeTupleFields.Driver_, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)ODBCAttributeTupleFields.Attribute]?.Value; + set => this.Set((int)ODBCAttributeTupleFields.Attribute, value); + } + + public string Value + { + get => (string)this.Fields[(int)ODBCAttributeTupleFields.Value]?.Value; + set => this.Set((int)ODBCAttributeTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs new file mode 100644 index 00000000..c06b2da0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ODBCDataSource = new IntermediateTupleDefinition( + TupleDefinitionType.ODBCDataSource, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DataSource), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DriverDescription), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Registration), IntermediateFieldType.Number), + }, + typeof(ODBCDataSourceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ODBCDataSourceTupleFields + { + DataSource, + Component_, + Description, + DriverDescription, + Registration, + } + + public class ODBCDataSourceTuple : IntermediateTuple + { + public ODBCDataSourceTuple() : base(TupleDefinitions.ODBCDataSource, null, null) + { + } + + public ODBCDataSourceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCDataSource, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCDataSourceTupleFields index] => this.Fields[(int)index]; + + public string DataSource + { + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DataSource]?.Value; + set => this.Set((int)ODBCDataSourceTupleFields.DataSource, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Component_]?.Value; + set => this.Set((int)ODBCDataSourceTupleFields.Component_, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Description]?.Value; + set => this.Set((int)ODBCDataSourceTupleFields.Description, value); + } + + public string DriverDescription + { + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DriverDescription]?.Value; + set => this.Set((int)ODBCDataSourceTupleFields.DriverDescription, value); + } + + public int Registration + { + get => (int)this.Fields[(int)ODBCDataSourceTupleFields.Registration]?.Value; + set => this.Set((int)ODBCDataSourceTupleFields.Registration, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs new file mode 100644 index 00000000..ab40ee88 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ODBCDriver = new IntermediateTupleDefinition( + TupleDefinitionType.ODBCDriver, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Driver), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.File_Setup), IntermediateFieldType.String), + }, + typeof(ODBCDriverTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ODBCDriverTupleFields + { + Driver, + Component_, + Description, + File_, + File_Setup, + } + + public class ODBCDriverTuple : IntermediateTuple + { + public ODBCDriverTuple() : base(TupleDefinitions.ODBCDriver, null, null) + { + } + + public ODBCDriverTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCDriver, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCDriverTupleFields index] => this.Fields[(int)index]; + + public string Driver + { + get => (string)this.Fields[(int)ODBCDriverTupleFields.Driver]?.Value; + set => this.Set((int)ODBCDriverTupleFields.Driver, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ODBCDriverTupleFields.Component_]?.Value; + set => this.Set((int)ODBCDriverTupleFields.Component_, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCDriverTupleFields.Description]?.Value; + set => this.Set((int)ODBCDriverTupleFields.Description, value); + } + + public string File_ + { + get => (string)this.Fields[(int)ODBCDriverTupleFields.File_]?.Value; + set => this.Set((int)ODBCDriverTupleFields.File_, value); + } + + public string File_Setup + { + get => (string)this.Fields[(int)ODBCDriverTupleFields.File_Setup]?.Value; + set => this.Set((int)ODBCDriverTupleFields.File_Setup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs new file mode 100644 index 00000000..541eb532 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ODBCSourceAttribute = new IntermediateTupleDefinition( + TupleDefinitionType.ODBCSourceAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.DataSource_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Value), IntermediateFieldType.String), + }, + typeof(ODBCSourceAttributeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ODBCSourceAttributeTupleFields + { + DataSource_, + Attribute, + Value, + } + + public class ODBCSourceAttributeTuple : IntermediateTuple + { + public ODBCSourceAttributeTuple() : base(TupleDefinitions.ODBCSourceAttribute, null, null) + { + } + + public ODBCSourceAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCSourceAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCSourceAttributeTupleFields index] => this.Fields[(int)index]; + + public string DataSource_ + { + get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.DataSource_]?.Value; + set => this.Set((int)ODBCSourceAttributeTupleFields.DataSource_, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Attribute]?.Value; + set => this.Set((int)ODBCSourceAttributeTupleFields.Attribute, value); + } + + public string Value + { + get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Value]?.Value; + set => this.Set((int)ODBCSourceAttributeTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs new file mode 100644 index 00000000..ab1abbdc --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ODBCTranslator = new IntermediateTupleDefinition( + TupleDefinitionType.ODBCTranslator, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Translator), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.File_Setup), IntermediateFieldType.String), + }, + typeof(ODBCTranslatorTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ODBCTranslatorTupleFields + { + Translator, + Component_, + Description, + File_, + File_Setup, + } + + public class ODBCTranslatorTuple : IntermediateTuple + { + public ODBCTranslatorTuple() : base(TupleDefinitions.ODBCTranslator, null, null) + { + } + + public ODBCTranslatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCTranslator, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCTranslatorTupleFields index] => this.Fields[(int)index]; + + public string Translator + { + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Translator]?.Value; + set => this.Set((int)ODBCTranslatorTupleFields.Translator, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Component_]?.Value; + set => this.Set((int)ODBCTranslatorTupleFields.Component_, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Description]?.Value; + set => this.Set((int)ODBCTranslatorTupleFields.Description, value); + } + + public string File_ + { + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_]?.Value; + set => this.Set((int)ODBCTranslatorTupleFields.File_, value); + } + + public string File_Setup + { + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_Setup]?.Value; + set => this.Set((int)ODBCTranslatorTupleFields.File_Setup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs new file mode 100644 index 00000000..d596e58e --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition PatchMetadata = new IntermediateTupleDefinition( + TupleDefinitionType.PatchMetadata, + new[] + { + new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Value), IntermediateFieldType.String), + }, + typeof(PatchMetadataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum PatchMetadataTupleFields + { + Company, + Property, + Value, + } + + public class PatchMetadataTuple : IntermediateTuple + { + public PatchMetadataTuple() : base(TupleDefinitions.PatchMetadata, null, null) + { + } + + public PatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchMetadata, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchMetadataTupleFields index] => this.Fields[(int)index]; + + public string Company + { + get => (string)this.Fields[(int)PatchMetadataTupleFields.Company]?.Value; + set => this.Set((int)PatchMetadataTupleFields.Company, value); + } + + public string Property + { + get => (string)this.Fields[(int)PatchMetadataTupleFields.Property]?.Value; + set => this.Set((int)PatchMetadataTupleFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)PatchMetadataTupleFields.Value]?.Value; + set => this.Set((int)PatchMetadataTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs new file mode 100644 index 00000000..276d00a2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition PatchPackage = new IntermediateTupleDefinition( + TupleDefinitionType.PatchPackage, + new[] + { + new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.PatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.Media_), IntermediateFieldType.Number), + }, + typeof(PatchPackageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum PatchPackageTupleFields + { + PatchId, + Media_, + } + + public class PatchPackageTuple : IntermediateTuple + { + public PatchPackageTuple() : base(TupleDefinitions.PatchPackage, null, null) + { + } + + public PatchPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchPackageTupleFields index] => this.Fields[(int)index]; + + public string PatchId + { + get => (string)this.Fields[(int)PatchPackageTupleFields.PatchId]?.Value; + set => this.Set((int)PatchPackageTupleFields.PatchId, value); + } + + public int Media_ + { + get => (int)this.Fields[(int)PatchPackageTupleFields.Media_]?.Value; + set => this.Set((int)PatchPackageTupleFields.Media_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs new file mode 100644 index 00000000..624054c1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition PatchSequence = new IntermediateTupleDefinition( + TupleDefinitionType.PatchSequence, + new[] + { + new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Supersede), IntermediateFieldType.Number), + }, + typeof(PatchSequenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum PatchSequenceTupleFields + { + PatchFamily, + Target, + Sequence, + Supersede, + } + + public class PatchSequenceTuple : IntermediateTuple + { + public PatchSequenceTuple() : base(TupleDefinitions.PatchSequence, null, null) + { + } + + public PatchSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchSequenceTupleFields index] => this.Fields[(int)index]; + + public string PatchFamily + { + get => (string)this.Fields[(int)PatchSequenceTupleFields.PatchFamily]?.Value; + set => this.Set((int)PatchSequenceTupleFields.PatchFamily, value); + } + + public string Target + { + get => (string)this.Fields[(int)PatchSequenceTupleFields.Target]?.Value; + set => this.Set((int)PatchSequenceTupleFields.Target, value); + } + + public string Sequence + { + get => (string)this.Fields[(int)PatchSequenceTupleFields.Sequence]?.Value; + set => this.Set((int)PatchSequenceTupleFields.Sequence, value); + } + + public int Supersede + { + get => (int)this.Fields[(int)PatchSequenceTupleFields.Supersede]?.Value; + set => this.Set((int)PatchSequenceTupleFields.Supersede, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchTuple.cs b/src/WixToolset.Data/Tuples/PatchTuple.cs new file mode 100644 index 00000000..268307c7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Patch = new IntermediateTupleDefinition( + TupleDefinitionType.Patch, + new[] + { + new IntermediateFieldDefinition(nameof(PatchTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchTupleFields.PatchSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchTupleFields.Header), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(PatchTupleFields.StreamRef_), IntermediateFieldType.String), + }, + typeof(PatchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum PatchTupleFields + { + File_, + Sequence, + PatchSize, + Attributes, + Header, + StreamRef_, + } + + public class PatchTuple : IntermediateTuple + { + public PatchTuple() : base(TupleDefinitions.Patch, null, null) + { + } + + public PatchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Patch, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)PatchTupleFields.File_]?.Value; + set => this.Set((int)PatchTupleFields.File_, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)PatchTupleFields.Sequence]?.Value; + set => this.Set((int)PatchTupleFields.Sequence, value); + } + + public int PatchSize + { + get => (int)this.Fields[(int)PatchTupleFields.PatchSize]?.Value; + set => this.Set((int)PatchTupleFields.PatchSize, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)PatchTupleFields.Attributes]?.Value; + set => this.Set((int)PatchTupleFields.Attributes, value); + } + + public string Header + { + get => (string)this.Fields[(int)PatchTupleFields.Header]?.Value; + set => this.Set((int)PatchTupleFields.Header, value); + } + + public string StreamRef_ + { + get => (string)this.Fields[(int)PatchTupleFields.StreamRef_]?.Value; + set => this.Set((int)PatchTupleFields.StreamRef_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ProgIdTuple.cs b/src/WixToolset.Data/Tuples/ProgIdTuple.cs new file mode 100644 index 00000000..a1713392 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ProgIdTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ProgId = new IntermediateTupleDefinition( + TupleDefinitionType.ProgId, + new[] + { + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ProgId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ProgId_Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Class_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Icon_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.IconIndex), IntermediateFieldType.Number), + }, + typeof(ProgIdTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ProgIdTupleFields + { + ProgId, + ProgId_Parent, + Class_, + Description, + Icon_, + IconIndex, + } + + public class ProgIdTuple : IntermediateTuple + { + public ProgIdTuple() : base(TupleDefinitions.ProgId, null, null) + { + } + + public ProgIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ProgId, sourceLineNumber, id) + { + } + + public IntermediateField this[ProgIdTupleFields index] => this.Fields[(int)index]; + + public string ProgId + { + get => (string)this.Fields[(int)ProgIdTupleFields.ProgId]?.Value; + set => this.Set((int)ProgIdTupleFields.ProgId, value); + } + + public string ProgId_Parent + { + get => (string)this.Fields[(int)ProgIdTupleFields.ProgId_Parent]?.Value; + set => this.Set((int)ProgIdTupleFields.ProgId_Parent, value); + } + + public string Class_ + { + get => (string)this.Fields[(int)ProgIdTupleFields.Class_]?.Value; + set => this.Set((int)ProgIdTupleFields.Class_, value); + } + + public string Description + { + get => (string)this.Fields[(int)ProgIdTupleFields.Description]?.Value; + set => this.Set((int)ProgIdTupleFields.Description, value); + } + + public string Icon_ + { + get => (string)this.Fields[(int)ProgIdTupleFields.Icon_]?.Value; + set => this.Set((int)ProgIdTupleFields.Icon_, value); + } + + public int IconIndex + { + get => (int)this.Fields[(int)ProgIdTupleFields.IconIndex]?.Value; + set => this.Set((int)ProgIdTupleFields.IconIndex, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PropertiesTuple.cs b/src/WixToolset.Data/Tuples/PropertiesTuple.cs new file mode 100644 index 00000000..6aafaa51 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PropertiesTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Properties = new IntermediateTupleDefinition( + TupleDefinitionType.Properties, + new[] + { + new IntermediateFieldDefinition(nameof(PropertiesTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PropertiesTupleFields.Value), IntermediateFieldType.String), + }, + typeof(PropertiesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum PropertiesTupleFields + { + Name, + Value, + } + + public class PropertiesTuple : IntermediateTuple + { + public PropertiesTuple() : base(TupleDefinitions.Properties, null, null) + { + } + + public PropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Properties, sourceLineNumber, id) + { + } + + public IntermediateField this[PropertiesTupleFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)PropertiesTupleFields.Name]?.Value; + set => this.Set((int)PropertiesTupleFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)PropertiesTupleFields.Value]?.Value; + set => this.Set((int)PropertiesTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PropertyTuple.cs b/src/WixToolset.Data/Tuples/PropertyTuple.cs new file mode 100644 index 00000000..120b01fb --- /dev/null +++ b/src/WixToolset.Data/Tuples/PropertyTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Property = new IntermediateTupleDefinition( + TupleDefinitionType.Property, + new[] + { + new IntermediateFieldDefinition(nameof(PropertyTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PropertyTupleFields.Value), IntermediateFieldType.String), + }, + typeof(PropertyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum PropertyTupleFields + { + Property, + Value, + } + + public class PropertyTuple : IntermediateTuple + { + public PropertyTuple() : base(TupleDefinitions.Property, null, null) + { + } + + public PropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Property, sourceLineNumber, id) + { + } + + public IntermediateField this[PropertyTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)PropertyTupleFields.Property]?.Value; + set => this.Set((int)PropertyTupleFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)PropertyTupleFields.Value]?.Value; + set => this.Set((int)PropertyTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs new file mode 100644 index 00000000..d17da1bb --- /dev/null +++ b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition PublishComponent = new IntermediateTupleDefinition( + TupleDefinitionType.PublishComponent, + new[] + { + new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Qualifier), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.AppData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Feature_), IntermediateFieldType.String), + }, + typeof(PublishComponentTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum PublishComponentTupleFields + { + ComponentId, + Qualifier, + Component_, + AppData, + Feature_, + } + + public class PublishComponentTuple : IntermediateTuple + { + public PublishComponentTuple() : base(TupleDefinitions.PublishComponent, null, null) + { + } + + public PublishComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PublishComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[PublishComponentTupleFields index] => this.Fields[(int)index]; + + public string ComponentId + { + get => (string)this.Fields[(int)PublishComponentTupleFields.ComponentId]?.Value; + set => this.Set((int)PublishComponentTupleFields.ComponentId, value); + } + + public string Qualifier + { + get => (string)this.Fields[(int)PublishComponentTupleFields.Qualifier]?.Value; + set => this.Set((int)PublishComponentTupleFields.Qualifier, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)PublishComponentTupleFields.Component_]?.Value; + set => this.Set((int)PublishComponentTupleFields.Component_, value); + } + + public string AppData + { + get => (string)this.Fields[(int)PublishComponentTupleFields.AppData]?.Value; + set => this.Set((int)PublishComponentTupleFields.AppData, value); + } + + public string Feature_ + { + get => (string)this.Fields[(int)PublishComponentTupleFields.Feature_]?.Value; + set => this.Set((int)PublishComponentTupleFields.Feature_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs new file mode 100644 index 00000000..420577dc --- /dev/null +++ b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition RadioButton = new IntermediateTupleDefinition( + TupleDefinitionType.RadioButton, + new[] + { + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Help), IntermediateFieldType.String), + }, + typeof(RadioButtonTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum RadioButtonTupleFields + { + Property, + Order, + Value, + X, + Y, + Width, + Height, + Text, + Help, + } + + public class RadioButtonTuple : IntermediateTuple + { + public RadioButtonTuple() : base(TupleDefinitions.RadioButton, null, null) + { + } + + public RadioButtonTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RadioButton, sourceLineNumber, id) + { + } + + public IntermediateField this[RadioButtonTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)RadioButtonTupleFields.Property]?.Value; + set => this.Set((int)RadioButtonTupleFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)RadioButtonTupleFields.Order]?.Value; + set => this.Set((int)RadioButtonTupleFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)RadioButtonTupleFields.Value]?.Value; + set => this.Set((int)RadioButtonTupleFields.Value, value); + } + + public int X + { + get => (int)this.Fields[(int)RadioButtonTupleFields.X]?.Value; + set => this.Set((int)RadioButtonTupleFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)RadioButtonTupleFields.Y]?.Value; + set => this.Set((int)RadioButtonTupleFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)RadioButtonTupleFields.Width]?.Value; + set => this.Set((int)RadioButtonTupleFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)RadioButtonTupleFields.Height]?.Value; + set => this.Set((int)RadioButtonTupleFields.Height, value); + } + + public string Text + { + get => (string)this.Fields[(int)RadioButtonTupleFields.Text]?.Value; + set => this.Set((int)RadioButtonTupleFields.Text, value); + } + + public string Help + { + get => (string)this.Fields[(int)RadioButtonTupleFields.Help]?.Value; + set => this.Set((int)RadioButtonTupleFields.Help, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs new file mode 100644 index 00000000..b098e687 --- /dev/null +++ b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition RegLocator = new IntermediateTupleDefinition( + TupleDefinitionType.RegLocator, + new[] + { + new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Signature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Type), IntermediateFieldType.Number), + }, + typeof(RegLocatorTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum RegLocatorTupleFields + { + Signature_, + Root, + Key, + Name, + Type, + } + + public class RegLocatorTuple : IntermediateTuple + { + public RegLocatorTuple() : base(TupleDefinitions.RegLocator, null, null) + { + } + + public RegLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RegLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[RegLocatorTupleFields index] => this.Fields[(int)index]; + + public string Signature_ + { + get => (string)this.Fields[(int)RegLocatorTupleFields.Signature_]?.Value; + set => this.Set((int)RegLocatorTupleFields.Signature_, value); + } + + public int Root + { + get => (int)this.Fields[(int)RegLocatorTupleFields.Root]?.Value; + set => this.Set((int)RegLocatorTupleFields.Root, value); + } + + public string Key + { + get => (string)this.Fields[(int)RegLocatorTupleFields.Key]?.Value; + set => this.Set((int)RegLocatorTupleFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RegLocatorTupleFields.Name]?.Value; + set => this.Set((int)RegLocatorTupleFields.Name, value); + } + + public int Type + { + get => (int)this.Fields[(int)RegLocatorTupleFields.Type]?.Value; + set => this.Set((int)RegLocatorTupleFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RegistryTuple.cs b/src/WixToolset.Data/Tuples/RegistryTuple.cs new file mode 100644 index 00000000..a82cd5ee --- /dev/null +++ b/src/WixToolset.Data/Tuples/RegistryTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Registry = new IntermediateTupleDefinition( + TupleDefinitionType.Registry, + new[] + { + new IntermediateFieldDefinition(nameof(RegistryTupleFields.Registry), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistryTupleFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistryTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistryTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistryTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistryTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(RegistryTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum RegistryTupleFields + { + Registry, + Root, + Key, + Name, + Value, + Component_, + } + + public class RegistryTuple : IntermediateTuple + { + public RegistryTuple() : base(TupleDefinitions.Registry, null, null) + { + } + + public RegistryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Registry, sourceLineNumber, id) + { + } + + public IntermediateField this[RegistryTupleFields index] => this.Fields[(int)index]; + + public string Registry + { + get => (string)this.Fields[(int)RegistryTupleFields.Registry]?.Value; + set => this.Set((int)RegistryTupleFields.Registry, value); + } + + public int Root + { + get => (int)this.Fields[(int)RegistryTupleFields.Root]?.Value; + set => this.Set((int)RegistryTupleFields.Root, value); + } + + public string Key + { + get => (string)this.Fields[(int)RegistryTupleFields.Key]?.Value; + set => this.Set((int)RegistryTupleFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RegistryTupleFields.Name]?.Value; + set => this.Set((int)RegistryTupleFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)RegistryTupleFields.Value]?.Value; + set => this.Set((int)RegistryTupleFields.Value, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)RegistryTupleFields.Component_]?.Value; + set => this.Set((int)RegistryTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs new file mode 100644 index 00000000..1860172f --- /dev/null +++ b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition RemoveFile = new IntermediateTupleDefinition( + TupleDefinitionType.RemoveFile, + new[] + { + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.InstallMode), IntermediateFieldType.Number), + }, + typeof(RemoveFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum RemoveFileTupleFields + { + FileKey, + Component_, + FileName, + DirProperty, + InstallMode, + } + + public class RemoveFileTuple : IntermediateTuple + { + public RemoveFileTuple() : base(TupleDefinitions.RemoveFile, null, null) + { + } + + public RemoveFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveFile, sourceLineNumber, id) + { + } + + public IntermediateField this[RemoveFileTupleFields index] => this.Fields[(int)index]; + + public string FileKey + { + get => (string)this.Fields[(int)RemoveFileTupleFields.FileKey]?.Value; + set => this.Set((int)RemoveFileTupleFields.FileKey, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)RemoveFileTupleFields.Component_]?.Value; + set => this.Set((int)RemoveFileTupleFields.Component_, value); + } + + public string FileName + { + get => (string)this.Fields[(int)RemoveFileTupleFields.FileName]?.Value; + set => this.Set((int)RemoveFileTupleFields.FileName, value); + } + + public string DirProperty + { + get => (string)this.Fields[(int)RemoveFileTupleFields.DirProperty]?.Value; + set => this.Set((int)RemoveFileTupleFields.DirProperty, value); + } + + public int InstallMode + { + get => (int)this.Fields[(int)RemoveFileTupleFields.InstallMode]?.Value; + set => this.Set((int)RemoveFileTupleFields.InstallMode, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs new file mode 100644 index 00000000..e2e79560 --- /dev/null +++ b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition RemoveIniFile = new IntermediateTupleDefinition( + TupleDefinitionType.RemoveIniFile, + new[] + { + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.RemoveIniFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(RemoveIniFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum RemoveIniFileTupleFields + { + RemoveIniFile, + FileName, + DirProperty, + Section, + Key, + Value, + Action, + Component_, + } + + public class RemoveIniFileTuple : IntermediateTuple + { + public RemoveIniFileTuple() : base(TupleDefinitions.RemoveIniFile, null, null) + { + } + + public RemoveIniFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveIniFile, sourceLineNumber, id) + { + } + + public IntermediateField this[RemoveIniFileTupleFields index] => this.Fields[(int)index]; + + public string RemoveIniFile + { + get => (string)this.Fields[(int)RemoveIniFileTupleFields.RemoveIniFile]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.RemoveIniFile, value); + } + + public string FileName + { + get => (string)this.Fields[(int)RemoveIniFileTupleFields.FileName]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.FileName, value); + } + + public string DirProperty + { + get => (string)this.Fields[(int)RemoveIniFileTupleFields.DirProperty]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.DirProperty, value); + } + + public string Section + { + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Section]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.Section, value); + } + + public string Key + { + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Key]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Value]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.Value, value); + } + + public int Action + { + get => (int)this.Fields[(int)RemoveIniFileTupleFields.Action]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.Action, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Component_]?.Value; + set => this.Set((int)RemoveIniFileTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs new file mode 100644 index 00000000..154aad67 --- /dev/null +++ b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition RemoveRegistry = new IntermediateTupleDefinition( + TupleDefinitionType.RemoveRegistry, + new[] + { + new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.RemoveRegistry), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(RemoveRegistryTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum RemoveRegistryTupleFields + { + RemoveRegistry, + Root, + Key, + Name, + Component_, + } + + public class RemoveRegistryTuple : IntermediateTuple + { + public RemoveRegistryTuple() : base(TupleDefinitions.RemoveRegistry, null, null) + { + } + + public RemoveRegistryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveRegistry, sourceLineNumber, id) + { + } + + public IntermediateField this[RemoveRegistryTupleFields index] => this.Fields[(int)index]; + + public string RemoveRegistry + { + get => (string)this.Fields[(int)RemoveRegistryTupleFields.RemoveRegistry]?.Value; + set => this.Set((int)RemoveRegistryTupleFields.RemoveRegistry, value); + } + + public int Root + { + get => (int)this.Fields[(int)RemoveRegistryTupleFields.Root]?.Value; + set => this.Set((int)RemoveRegistryTupleFields.Root, value); + } + + public string Key + { + get => (string)this.Fields[(int)RemoveRegistryTupleFields.Key]?.Value; + set => this.Set((int)RemoveRegistryTupleFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RemoveRegistryTupleFields.Name]?.Value; + set => this.Set((int)RemoveRegistryTupleFields.Name, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)RemoveRegistryTupleFields.Component_]?.Value; + set => this.Set((int)RemoveRegistryTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs new file mode 100644 index 00000000..769ac4b2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ReserveCost = new IntermediateTupleDefinition( + TupleDefinitionType.ReserveCost, + new[] + { + new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveLocal), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveSource), IntermediateFieldType.Number), + }, + typeof(ReserveCostTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ReserveCostTupleFields + { + ReserveKey, + Component_, + ReserveFolder, + ReserveLocal, + ReserveSource, + } + + public class ReserveCostTuple : IntermediateTuple + { + public ReserveCostTuple() : base(TupleDefinitions.ReserveCost, null, null) + { + } + + public ReserveCostTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ReserveCost, sourceLineNumber, id) + { + } + + public IntermediateField this[ReserveCostTupleFields index] => this.Fields[(int)index]; + + public string ReserveKey + { + get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveKey]?.Value; + set => this.Set((int)ReserveCostTupleFields.ReserveKey, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ReserveCostTupleFields.Component_]?.Value; + set => this.Set((int)ReserveCostTupleFields.Component_, value); + } + + public string ReserveFolder + { + get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveFolder]?.Value; + set => this.Set((int)ReserveCostTupleFields.ReserveFolder, value); + } + + public int ReserveLocal + { + get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveLocal]?.Value; + set => this.Set((int)ReserveCostTupleFields.ReserveLocal, value); + } + + public int ReserveSource + { + get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveSource]?.Value; + set => this.Set((int)ReserveCostTupleFields.ReserveSource, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs new file mode 100644 index 00000000..5db5f984 --- /dev/null +++ b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition SFPCatalog = new IntermediateTupleDefinition( + TupleDefinitionType.SFPCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.SFPCatalog), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.Catalog), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.Dependency), IntermediateFieldType.String), + }, + typeof(SFPCatalogTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum SFPCatalogTupleFields + { + SFPCatalog, + Catalog, + Dependency, + } + + public class SFPCatalogTuple : IntermediateTuple + { + public SFPCatalogTuple() : base(TupleDefinitions.SFPCatalog, null, null) + { + } + + public SFPCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SFPCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[SFPCatalogTupleFields index] => this.Fields[(int)index]; + + public string SFPCatalog + { + get => (string)this.Fields[(int)SFPCatalogTupleFields.SFPCatalog]?.Value; + set => this.Set((int)SFPCatalogTupleFields.SFPCatalog, value); + } + + public string Catalog + { + get => (string)this.Fields[(int)SFPCatalogTupleFields.Catalog]?.Value; + set => this.Set((int)SFPCatalogTupleFields.Catalog, value); + } + + public string Dependency + { + get => (string)this.Fields[(int)SFPCatalogTupleFields.Dependency]?.Value; + set => this.Set((int)SFPCatalogTupleFields.Dependency, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/SelfRegTuple.cs b/src/WixToolset.Data/Tuples/SelfRegTuple.cs new file mode 100644 index 00000000..b32127f3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/SelfRegTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition SelfReg = new IntermediateTupleDefinition( + TupleDefinitionType.SelfReg, + new[] + { + new IntermediateFieldDefinition(nameof(SelfRegTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SelfRegTupleFields.Cost), IntermediateFieldType.Number), + }, + typeof(SelfRegTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum SelfRegTupleFields + { + File_, + Cost, + } + + public class SelfRegTuple : IntermediateTuple + { + public SelfRegTuple() : base(TupleDefinitions.SelfReg, null, null) + { + } + + public SelfRegTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SelfReg, sourceLineNumber, id) + { + } + + public IntermediateField this[SelfRegTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)SelfRegTupleFields.File_]?.Value; + set => this.Set((int)SelfRegTupleFields.File_, value); + } + + public int Cost + { + get => (int)this.Fields[(int)SelfRegTupleFields.Cost]?.Value; + set => this.Set((int)SelfRegTupleFields.Cost, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs new file mode 100644 index 00000000..a2cdc7a0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ServiceControl = new IntermediateTupleDefinition( + TupleDefinitionType.ServiceControl, + new[] + { + new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.ServiceControl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Event), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Wait), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(ServiceControlTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ServiceControlTupleFields + { + ServiceControl, + Name, + Event, + Arguments, + Wait, + Component_, + } + + public class ServiceControlTuple : IntermediateTuple + { + public ServiceControlTuple() : base(TupleDefinitions.ServiceControl, null, null) + { + } + + public ServiceControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ServiceControl, sourceLineNumber, id) + { + } + + public IntermediateField this[ServiceControlTupleFields index] => this.Fields[(int)index]; + + public string ServiceControl + { + get => (string)this.Fields[(int)ServiceControlTupleFields.ServiceControl]?.Value; + set => this.Set((int)ServiceControlTupleFields.ServiceControl, value); + } + + public string Name + { + get => (string)this.Fields[(int)ServiceControlTupleFields.Name]?.Value; + set => this.Set((int)ServiceControlTupleFields.Name, value); + } + + public int Event + { + get => (int)this.Fields[(int)ServiceControlTupleFields.Event]?.Value; + set => this.Set((int)ServiceControlTupleFields.Event, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ServiceControlTupleFields.Arguments]?.Value; + set => this.Set((int)ServiceControlTupleFields.Arguments, value); + } + + public int Wait + { + get => (int)this.Fields[(int)ServiceControlTupleFields.Wait]?.Value; + set => this.Set((int)ServiceControlTupleFields.Wait, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ServiceControlTupleFields.Component_]?.Value; + set => this.Set((int)ServiceControlTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs new file mode 100644 index 00000000..cd02d21e --- /dev/null +++ b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs @@ -0,0 +1,140 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ServiceInstall = new IntermediateTupleDefinition( + TupleDefinitionType.ServiceInstall, + new[] + { + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ServiceInstall), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ServiceType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.StartType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ErrorControl), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.LoadOrderGroup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Dependencies), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.StartName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Password), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Description), IntermediateFieldType.String), + }, + typeof(ServiceInstallTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ServiceInstallTupleFields + { + ServiceInstall, + Name, + DisplayName, + ServiceType, + StartType, + ErrorControl, + LoadOrderGroup, + Dependencies, + StartName, + Password, + Arguments, + Component_, + Description, + } + + public class ServiceInstallTuple : IntermediateTuple + { + public ServiceInstallTuple() : base(TupleDefinitions.ServiceInstall, null, null) + { + } + + public ServiceInstallTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ServiceInstall, sourceLineNumber, id) + { + } + + public IntermediateField this[ServiceInstallTupleFields index] => this.Fields[(int)index]; + + public string ServiceInstall + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.ServiceInstall]?.Value; + set => this.Set((int)ServiceInstallTupleFields.ServiceInstall, value); + } + + public string Name + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.Name]?.Value; + set => this.Set((int)ServiceInstallTupleFields.Name, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.DisplayName]?.Value; + set => this.Set((int)ServiceInstallTupleFields.DisplayName, value); + } + + public int ServiceType + { + get => (int)this.Fields[(int)ServiceInstallTupleFields.ServiceType]?.Value; + set => this.Set((int)ServiceInstallTupleFields.ServiceType, value); + } + + public int StartType + { + get => (int)this.Fields[(int)ServiceInstallTupleFields.StartType]?.Value; + set => this.Set((int)ServiceInstallTupleFields.StartType, value); + } + + public int ErrorControl + { + get => (int)this.Fields[(int)ServiceInstallTupleFields.ErrorControl]?.Value; + set => this.Set((int)ServiceInstallTupleFields.ErrorControl, value); + } + + public string LoadOrderGroup + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.LoadOrderGroup]?.Value; + set => this.Set((int)ServiceInstallTupleFields.LoadOrderGroup, value); + } + + public string Dependencies + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.Dependencies]?.Value; + set => this.Set((int)ServiceInstallTupleFields.Dependencies, value); + } + + public string StartName + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.StartName]?.Value; + set => this.Set((int)ServiceInstallTupleFields.StartName, value); + } + + public string Password + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.Password]?.Value; + set => this.Set((int)ServiceInstallTupleFields.Password, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.Arguments]?.Value; + set => this.Set((int)ServiceInstallTupleFields.Arguments, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.Component_]?.Value; + set => this.Set((int)ServiceInstallTupleFields.Component_, value); + } + + public string Description + { + get => (string)this.Fields[(int)ServiceInstallTupleFields.Description]?.Value; + set => this.Set((int)ServiceInstallTupleFields.Description, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ShortcutTuple.cs b/src/WixToolset.Data/Tuples/ShortcutTuple.cs new file mode 100644 index 00000000..0591e7f4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ShortcutTuple.cs @@ -0,0 +1,164 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Shortcut = new IntermediateTupleDefinition( + TupleDefinitionType.Shortcut, + new[] + { + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Shortcut), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Hotkey), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Icon_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.ShowCmd), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.WkDir), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DisplayResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DisplayResourceId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DescriptionResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DescriptionResourceId), IntermediateFieldType.Number), + }, + typeof(ShortcutTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ShortcutTupleFields + { + Shortcut, + Directory_, + Name, + Component_, + Target, + Arguments, + Description, + Hotkey, + Icon_, + IconIndex, + ShowCmd, + WkDir, + DisplayResourceDLL, + DisplayResourceId, + DescriptionResourceDLL, + DescriptionResourceId, + } + + public class ShortcutTuple : IntermediateTuple + { + public ShortcutTuple() : base(TupleDefinitions.Shortcut, null, null) + { + } + + public ShortcutTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Shortcut, sourceLineNumber, id) + { + } + + public IntermediateField this[ShortcutTupleFields index] => this.Fields[(int)index]; + + public string Shortcut + { + get => (string)this.Fields[(int)ShortcutTupleFields.Shortcut]?.Value; + set => this.Set((int)ShortcutTupleFields.Shortcut, value); + } + + public string Directory_ + { + get => (string)this.Fields[(int)ShortcutTupleFields.Directory_]?.Value; + set => this.Set((int)ShortcutTupleFields.Directory_, value); + } + + public string Name + { + get => (string)this.Fields[(int)ShortcutTupleFields.Name]?.Value; + set => this.Set((int)ShortcutTupleFields.Name, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)ShortcutTupleFields.Component_]?.Value; + set => this.Set((int)ShortcutTupleFields.Component_, value); + } + + public string Target + { + get => (string)this.Fields[(int)ShortcutTupleFields.Target]?.Value; + set => this.Set((int)ShortcutTupleFields.Target, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ShortcutTupleFields.Arguments]?.Value; + set => this.Set((int)ShortcutTupleFields.Arguments, value); + } + + public string Description + { + get => (string)this.Fields[(int)ShortcutTupleFields.Description]?.Value; + set => this.Set((int)ShortcutTupleFields.Description, value); + } + + public int Hotkey + { + get => (int)this.Fields[(int)ShortcutTupleFields.Hotkey]?.Value; + set => this.Set((int)ShortcutTupleFields.Hotkey, value); + } + + public string Icon_ + { + get => (string)this.Fields[(int)ShortcutTupleFields.Icon_]?.Value; + set => this.Set((int)ShortcutTupleFields.Icon_, value); + } + + public int IconIndex + { + get => (int)this.Fields[(int)ShortcutTupleFields.IconIndex]?.Value; + set => this.Set((int)ShortcutTupleFields.IconIndex, value); + } + + public int ShowCmd + { + get => (int)this.Fields[(int)ShortcutTupleFields.ShowCmd]?.Value; + set => this.Set((int)ShortcutTupleFields.ShowCmd, value); + } + + public string WkDir + { + get => (string)this.Fields[(int)ShortcutTupleFields.WkDir]?.Value; + set => this.Set((int)ShortcutTupleFields.WkDir, value); + } + + public string DisplayResourceDLL + { + get => (string)this.Fields[(int)ShortcutTupleFields.DisplayResourceDLL]?.Value; + set => this.Set((int)ShortcutTupleFields.DisplayResourceDLL, value); + } + + public int DisplayResourceId + { + get => (int)this.Fields[(int)ShortcutTupleFields.DisplayResourceId]?.Value; + set => this.Set((int)ShortcutTupleFields.DisplayResourceId, value); + } + + public string DescriptionResourceDLL + { + get => (string)this.Fields[(int)ShortcutTupleFields.DescriptionResourceDLL]?.Value; + set => this.Set((int)ShortcutTupleFields.DescriptionResourceDLL, value); + } + + public int DescriptionResourceId + { + get => (int)this.Fields[(int)ShortcutTupleFields.DescriptionResourceId]?.Value; + set => this.Set((int)ShortcutTupleFields.DescriptionResourceId, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/SignatureTuple.cs b/src/WixToolset.Data/Tuples/SignatureTuple.cs new file mode 100644 index 00000000..b8dbf308 --- /dev/null +++ b/src/WixToolset.Data/Tuples/SignatureTuple.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Signature = new IntermediateTupleDefinition( + TupleDefinitionType.Signature, + new[] + { + new IntermediateFieldDefinition(nameof(SignatureTupleFields.Signature), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureTupleFields.Languages), IntermediateFieldType.String), + }, + typeof(SignatureTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum SignatureTupleFields + { + Signature, + FileName, + MinVersion, + MaxVersion, + MinSize, + MaxSize, + MinDate, + MaxDate, + Languages, + } + + public class SignatureTuple : IntermediateTuple + { + public SignatureTuple() : base(TupleDefinitions.Signature, null, null) + { + } + + public SignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Signature, sourceLineNumber, id) + { + } + + public IntermediateField this[SignatureTupleFields index] => this.Fields[(int)index]; + + public string Signature + { + get => (string)this.Fields[(int)SignatureTupleFields.Signature]?.Value; + set => this.Set((int)SignatureTupleFields.Signature, value); + } + + public string FileName + { + get => (string)this.Fields[(int)SignatureTupleFields.FileName]?.Value; + set => this.Set((int)SignatureTupleFields.FileName, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)SignatureTupleFields.MinVersion]?.Value; + set => this.Set((int)SignatureTupleFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)SignatureTupleFields.MaxVersion]?.Value; + set => this.Set((int)SignatureTupleFields.MaxVersion, value); + } + + public int MinSize + { + get => (int)this.Fields[(int)SignatureTupleFields.MinSize]?.Value; + set => this.Set((int)SignatureTupleFields.MinSize, value); + } + + public int MaxSize + { + get => (int)this.Fields[(int)SignatureTupleFields.MaxSize]?.Value; + set => this.Set((int)SignatureTupleFields.MaxSize, value); + } + + public int MinDate + { + get => (int)this.Fields[(int)SignatureTupleFields.MinDate]?.Value; + set => this.Set((int)SignatureTupleFields.MinDate, value); + } + + public int MaxDate + { + get => (int)this.Fields[(int)SignatureTupleFields.MaxDate]?.Value; + set => this.Set((int)SignatureTupleFields.MaxDate, value); + } + + public string Languages + { + get => (string)this.Fields[(int)SignatureTupleFields.Languages]?.Value; + set => this.Set((int)SignatureTupleFields.Languages, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs new file mode 100644 index 00000000..449c4afe --- /dev/null +++ b/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition TargetFiles_OptionalData = new IntermediateTupleDefinition( + TupleDefinitionType.TargetFiles_OptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.RetainOffsets), IntermediateFieldType.String), + }, + typeof(TargetFiles_OptionalDataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum TargetFiles_OptionalDataTupleFields + { + Target, + FTK, + SymbolPaths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + } + + public class TargetFiles_OptionalDataTuple : IntermediateTuple + { + public TargetFiles_OptionalDataTuple() : base(TupleDefinitions.TargetFiles_OptionalData, null, null) + { + } + + public TargetFiles_OptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetFiles_OptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[TargetFiles_OptionalDataTupleFields index] => this.Fields[(int)index]; + + public string Target + { + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.Target]?.Value; + set => this.Set((int)TargetFiles_OptionalDataTupleFields.Target, value); + } + + public string FTK + { + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.FTK]?.Value; + set => this.Set((int)TargetFiles_OptionalDataTupleFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.SymbolPaths]?.Value; + set => this.Set((int)TargetFiles_OptionalDataTupleFields.SymbolPaths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets]?.Value; + set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreLengths]?.Value; + set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.RetainOffsets]?.Value; + set => this.Set((int)TargetFiles_OptionalDataTupleFields.RetainOffsets, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs new file mode 100644 index 00000000..0cb74ec9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition TargetImages = new IntermediateTupleDefinition( + TupleDefinitionType.TargetImages, + new[] + { + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.ProductValidateFlags), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.IgnoreMissingSrcFiles), IntermediateFieldType.Number), + }, + typeof(TargetImagesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum TargetImagesTupleFields + { + Target, + MsiPath, + SymbolPaths, + Upgraded, + Order, + ProductValidateFlags, + IgnoreMissingSrcFiles, + } + + public class TargetImagesTuple : IntermediateTuple + { + public TargetImagesTuple() : base(TupleDefinitions.TargetImages, null, null) + { + } + + public TargetImagesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetImages, sourceLineNumber, id) + { + } + + public IntermediateField this[TargetImagesTupleFields index] => this.Fields[(int)index]; + + public string Target + { + get => (string)this.Fields[(int)TargetImagesTupleFields.Target]?.Value; + set => this.Set((int)TargetImagesTupleFields.Target, value); + } + + public string MsiPath + { + get => (string)this.Fields[(int)TargetImagesTupleFields.MsiPath]?.Value; + set => this.Set((int)TargetImagesTupleFields.MsiPath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)TargetImagesTupleFields.SymbolPaths]?.Value; + set => this.Set((int)TargetImagesTupleFields.SymbolPaths, value); + } + + public string Upgraded + { + get => (string)this.Fields[(int)TargetImagesTupleFields.Upgraded]?.Value; + set => this.Set((int)TargetImagesTupleFields.Upgraded, value); + } + + public int Order + { + get => (int)this.Fields[(int)TargetImagesTupleFields.Order]?.Value; + set => this.Set((int)TargetImagesTupleFields.Order, value); + } + + public string ProductValidateFlags + { + get => (string)this.Fields[(int)TargetImagesTupleFields.ProductValidateFlags]?.Value; + set => this.Set((int)TargetImagesTupleFields.ProductValidateFlags, value); + } + + public int IgnoreMissingSrcFiles + { + get => (int)this.Fields[(int)TargetImagesTupleFields.IgnoreMissingSrcFiles]?.Value; + set => this.Set((int)TargetImagesTupleFields.IgnoreMissingSrcFiles, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TextStyleTuple.cs b/src/WixToolset.Data/Tuples/TextStyleTuple.cs new file mode 100644 index 00000000..20ec878a --- /dev/null +++ b/src/WixToolset.Data/Tuples/TextStyleTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition TextStyle = new IntermediateTupleDefinition( + TupleDefinitionType.TextStyle, + new[] + { + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.TextStyle), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.FaceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Color), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.StyleBits), IntermediateFieldType.Number), + }, + typeof(TextStyleTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum TextStyleTupleFields + { + TextStyle, + FaceName, + Size, + Color, + StyleBits, + } + + public class TextStyleTuple : IntermediateTuple + { + public TextStyleTuple() : base(TupleDefinitions.TextStyle, null, null) + { + } + + public TextStyleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TextStyle, sourceLineNumber, id) + { + } + + public IntermediateField this[TextStyleTupleFields index] => this.Fields[(int)index]; + + public string TextStyle + { + get => (string)this.Fields[(int)TextStyleTupleFields.TextStyle]?.Value; + set => this.Set((int)TextStyleTupleFields.TextStyle, value); + } + + public string FaceName + { + get => (string)this.Fields[(int)TextStyleTupleFields.FaceName]?.Value; + set => this.Set((int)TextStyleTupleFields.FaceName, value); + } + + public int Size + { + get => (int)this.Fields[(int)TextStyleTupleFields.Size]?.Value; + set => this.Set((int)TextStyleTupleFields.Size, value); + } + + public int Color + { + get => (int)this.Fields[(int)TextStyleTupleFields.Color]?.Value; + set => this.Set((int)TextStyleTupleFields.Color, value); + } + + public int StyleBits + { + get => (int)this.Fields[(int)TextStyleTupleFields.StyleBits]?.Value; + set => this.Set((int)TextStyleTupleFields.StyleBits, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs new file mode 100644 index 00000000..b9ab2042 --- /dev/null +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -0,0 +1,815 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public enum TupleDefinitionType + { + _Streams, + _SummaryInformation, + _TransformView, + _Validation, + ActionText, + AdminExecuteSequence, + AdminUISequence, + AdvtExecuteSequence, + AppId, + AppSearch, + BBControl, + Billboard, + Binary, + BindImage, + CCPSearch, + CheckBox, + Class, + ComboBox, + CompLocator, + Complus, + Component, + Condition, + Control, + ControlCondition, + ControlEvent, + CreateFolder, + CustomAction, + Dialog, + Directory, + DrLocator, + DuplicateFile, + Environment, + Error, + EventMapping, + Extension, + ExternalFiles, + FamilyFileRanges, + Feature, + FeatureComponents, + File, + FileSFPCatalog, + Font, + Icon, + ImageFamilies, + IniFile, + IniLocator, + InstallExecuteSequence, + InstallUISequence, + IsolatedComponent, + LaunchCondition, + ListBox, + ListView, + LockPermissions, + Media, + MIME, + ModuleAdminExecuteSequence, + ModuleAdminUISequence, + ModuleAdvtExecuteSequence, + ModuleComponents, + ModuleConfiguration, + ModuleDependency, + ModuleExclusion, + ModuleIgnoreTable, + ModuleInstallExecuteSequence, + ModuleInstallUISequence, + ModuleSignature, + ModuleSubstitution, + MoveFile, + MsiAssembly, + MsiAssemblyName, + MsiDigitalCertificate, + MsiDigitalSignature, + MsiEmbeddedChainer, + MsiEmbeddedUI, + MsiFileHash, + MsiLockPermissionsEx, + MsiPackageCertificate, + MsiPatchCertificate, + MsiPatchHeaders, + MsiPatchMetadata, + MsiPatchOldAssemblyFile, + MsiPatchOldAssemblyName, + MsiPatchSequence, + MsiServiceConfig, + MsiServiceConfigFailureActions, + MsiShortcutProperty, + ODBCAttribute, + ODBCDataSource, + ODBCDriver, + ODBCSourceAttribute, + ODBCTranslator, + Patch, + PatchMetadata, + PatchPackage, + PatchSequence, + ProgId, + Properties, + Property, + PublishComponent, + RadioButton, + Registry, + RegLocator, + RemoveFile, + RemoveIniFile, + RemoveRegistry, + ReserveCost, + SelfReg, + ServiceControl, + ServiceInstall, + SFPCatalog, + Shortcut, + Signature, + TargetFiles_OptionalData, + TargetImages, + TextStyle, + TypeLib, + UIText, + Upgrade, + UpgradedFiles_OptionalData, + UpgradedFilesToIgnore, + UpgradedImages, + Verb, + WixAction, + WixApprovedExeForElevation, + WixBBControl, + WixBindUpdatedFiles, + WixBootstrapperApplication, + WixBuildInfo, + WixBundle, + WixBundleCatalog, + WixBundleContainer, + WixBundleExePackage, + WixBundleMsiFeature, + WixBundleMsiPackage, + WixBundleMsiProperty, + WixBundleMspPackage, + WixBundleMsuPackage, + WixBundlePackage, + WixBundlePackageCommandLine, + WixBundlePackageExitCode, + WixBundlePackageGroup, + WixBundlePatchTargetCode, + WixBundlePayload, + WixBundlePayloadGroup, + WixBundleProperties, + WixBundleRelatedPackage, + WixBundleRollbackBoundary, + WixBundleSlipstreamMsp, + WixBundleUpdate, + WixBundleVariable, + WixChain, + WixChainItem, + WixComplexReference, + WixComponentGroup, + WixComponentSearch, + WixControl, + WixCustomRow, + WixCustomTable, + WixDeltaPatchFile, + WixDeltaPatchSymbolPaths, + WixDirectory, + WixEnsureTable, + WixFeatureGroup, + WixFeatureModules, + WixFile, + WixFileSearch, + WixFragment, + WixGroup, + WixInstanceComponent, + WixInstanceTransforms, + WixMedia, + WixMediaTemplate, + WixMerge, + WixOrdering, + WixPackageFeatureInfo, + WixPackageProperties, + WixPatchBaseline, + WixPatchFamilyGroup, + WixPatchId, + WixPatchMetadata, + WixPatchRef, + WixPatchTarget, + WixPayloadProperties, + WixProductSearch, + WixProperty, + WixRegistrySearch, + WixRelatedBundle, + WixSearch, + WixSearchRelation, + WixSimpleReference, + WixSuppressAction, + WixSuppressModularization, + WixUI, + WixUpdateRegistration, + WixVariable, + MustBeFromAnExtension, + } + + public static partial class TupleDefinitions + { + public static readonly Version Version = new Version("4.0.0"); + + public static IntermediateTupleDefinition ByName(string name) + { + if (!Enum.TryParse(name, out TupleDefinitionType type) || type == TupleDefinitionType.MustBeFromAnExtension) + { + return null; + } + + return ByType(type); + } + + public static IntermediateTupleDefinition ByType(TupleDefinitionType type) + { + switch (type) + { + case TupleDefinitionType._Streams: + return TupleDefinitions._Streams; + + case TupleDefinitionType._SummaryInformation: + return TupleDefinitions._SummaryInformation; + + case TupleDefinitionType._TransformView: + return TupleDefinitions._TransformView; + + case TupleDefinitionType._Validation: + return TupleDefinitions._Validation; + + case TupleDefinitionType.ActionText: + return TupleDefinitions.ActionText; + + case TupleDefinitionType.AdminExecuteSequence: + return TupleDefinitions.AdminExecuteSequence; + + case TupleDefinitionType.AdminUISequence: + return TupleDefinitions.AdminUISequence; + + case TupleDefinitionType.AdvtExecuteSequence: + return TupleDefinitions.AdvtExecuteSequence; + + case TupleDefinitionType.AppId: + return TupleDefinitions.AppId; + + case TupleDefinitionType.AppSearch: + return TupleDefinitions.AppSearch; + + case TupleDefinitionType.BBControl: + return TupleDefinitions.BBControl; + + case TupleDefinitionType.Billboard: + return TupleDefinitions.Billboard; + + case TupleDefinitionType.Binary: + return TupleDefinitions.Binary; + + case TupleDefinitionType.BindImage: + return TupleDefinitions.BindImage; + + case TupleDefinitionType.CCPSearch: + return TupleDefinitions.CCPSearch; + + case TupleDefinitionType.CheckBox: + return TupleDefinitions.CheckBox; + + case TupleDefinitionType.Class: + return TupleDefinitions.Class; + + case TupleDefinitionType.ComboBox: + return TupleDefinitions.ComboBox; + + case TupleDefinitionType.CompLocator: + return TupleDefinitions.CompLocator; + + case TupleDefinitionType.Complus: + return TupleDefinitions.Complus; + + case TupleDefinitionType.Component: + return TupleDefinitions.Component; + + case TupleDefinitionType.Condition: + return TupleDefinitions.Condition; + + case TupleDefinitionType.Control: + return TupleDefinitions.Control; + + case TupleDefinitionType.ControlCondition: + return TupleDefinitions.ControlCondition; + + case TupleDefinitionType.ControlEvent: + return TupleDefinitions.ControlEvent; + + case TupleDefinitionType.CreateFolder: + return TupleDefinitions.CreateFolder; + + case TupleDefinitionType.CustomAction: + return TupleDefinitions.CustomAction; + + case TupleDefinitionType.Dialog: + return TupleDefinitions.Dialog; + + case TupleDefinitionType.Directory: + return TupleDefinitions.Directory; + + case TupleDefinitionType.DrLocator: + return TupleDefinitions.DrLocator; + + case TupleDefinitionType.DuplicateFile: + return TupleDefinitions.DuplicateFile; + + case TupleDefinitionType.Environment: + return TupleDefinitions.Environment; + + case TupleDefinitionType.Error: + return TupleDefinitions.Error; + + case TupleDefinitionType.EventMapping: + return TupleDefinitions.EventMapping; + + case TupleDefinitionType.Extension: + return TupleDefinitions.Extension; + + case TupleDefinitionType.ExternalFiles: + return TupleDefinitions.ExternalFiles; + + case TupleDefinitionType.FamilyFileRanges: + return TupleDefinitions.FamilyFileRanges; + + case TupleDefinitionType.Feature: + return TupleDefinitions.Feature; + + case TupleDefinitionType.FeatureComponents: + return TupleDefinitions.FeatureComponents; + + case TupleDefinitionType.File: + return TupleDefinitions.File; + + case TupleDefinitionType.FileSFPCatalog: + return TupleDefinitions.FileSFPCatalog; + + case TupleDefinitionType.Font: + return TupleDefinitions.Font; + + case TupleDefinitionType.Icon: + return TupleDefinitions.Icon; + + case TupleDefinitionType.ImageFamilies: + return TupleDefinitions.ImageFamilies; + + case TupleDefinitionType.IniFile: + return TupleDefinitions.IniFile; + + case TupleDefinitionType.IniLocator: + return TupleDefinitions.IniLocator; + + case TupleDefinitionType.InstallExecuteSequence: + return TupleDefinitions.InstallExecuteSequence; + + case TupleDefinitionType.InstallUISequence: + return TupleDefinitions.InstallUISequence; + + case TupleDefinitionType.IsolatedComponent: + return TupleDefinitions.IsolatedComponent; + + case TupleDefinitionType.LaunchCondition: + return TupleDefinitions.LaunchCondition; + + case TupleDefinitionType.ListBox: + return TupleDefinitions.ListBox; + + case TupleDefinitionType.ListView: + return TupleDefinitions.ListView; + + case TupleDefinitionType.LockPermissions: + return TupleDefinitions.LockPermissions; + + case TupleDefinitionType.Media: + return TupleDefinitions.Media; + + case TupleDefinitionType.MIME: + return TupleDefinitions.MIME; + + case TupleDefinitionType.ModuleAdminExecuteSequence: + return TupleDefinitions.ModuleAdminExecuteSequence; + + case TupleDefinitionType.ModuleAdminUISequence: + return TupleDefinitions.ModuleAdminUISequence; + + case TupleDefinitionType.ModuleAdvtExecuteSequence: + return TupleDefinitions.ModuleAdvtExecuteSequence; + + case TupleDefinitionType.ModuleComponents: + return TupleDefinitions.ModuleComponents; + + case TupleDefinitionType.ModuleConfiguration: + return TupleDefinitions.ModuleConfiguration; + + case TupleDefinitionType.ModuleDependency: + return TupleDefinitions.ModuleDependency; + + case TupleDefinitionType.ModuleExclusion: + return TupleDefinitions.ModuleExclusion; + + case TupleDefinitionType.ModuleIgnoreTable: + return TupleDefinitions.ModuleIgnoreTable; + + case TupleDefinitionType.ModuleInstallExecuteSequence: + return TupleDefinitions.ModuleInstallExecuteSequence; + + case TupleDefinitionType.ModuleInstallUISequence: + return TupleDefinitions.ModuleInstallUISequence; + + case TupleDefinitionType.ModuleSignature: + return TupleDefinitions.ModuleSignature; + + case TupleDefinitionType.ModuleSubstitution: + return TupleDefinitions.ModuleSubstitution; + + case TupleDefinitionType.MoveFile: + return TupleDefinitions.MoveFile; + + case TupleDefinitionType.MsiAssembly: + return TupleDefinitions.MsiAssembly; + + case TupleDefinitionType.MsiAssemblyName: + return TupleDefinitions.MsiAssemblyName; + + case TupleDefinitionType.MsiDigitalCertificate: + return TupleDefinitions.MsiDigitalCertificate; + + case TupleDefinitionType.MsiDigitalSignature: + return TupleDefinitions.MsiDigitalSignature; + + case TupleDefinitionType.MsiEmbeddedChainer: + return TupleDefinitions.MsiEmbeddedChainer; + + case TupleDefinitionType.MsiEmbeddedUI: + return TupleDefinitions.MsiEmbeddedUI; + + case TupleDefinitionType.MsiFileHash: + return TupleDefinitions.MsiFileHash; + + case TupleDefinitionType.MsiLockPermissionsEx: + return TupleDefinitions.MsiLockPermissionsEx; + + case TupleDefinitionType.MsiPackageCertificate: + return TupleDefinitions.MsiPackageCertificate; + + case TupleDefinitionType.MsiPatchCertificate: + return TupleDefinitions.MsiPatchCertificate; + + case TupleDefinitionType.MsiPatchHeaders: + return TupleDefinitions.MsiPatchHeaders; + + case TupleDefinitionType.MsiPatchMetadata: + return TupleDefinitions.MsiPatchMetadata; + + case TupleDefinitionType.MsiPatchOldAssemblyFile: + return TupleDefinitions.MsiPatchOldAssemblyFile; + + case TupleDefinitionType.MsiPatchOldAssemblyName: + return TupleDefinitions.MsiPatchOldAssemblyName; + + case TupleDefinitionType.MsiPatchSequence: + return TupleDefinitions.MsiPatchSequence; + + case TupleDefinitionType.MsiServiceConfig: + return TupleDefinitions.MsiServiceConfig; + + case TupleDefinitionType.MsiServiceConfigFailureActions: + return TupleDefinitions.MsiServiceConfigFailureActions; + + case TupleDefinitionType.MsiShortcutProperty: + return TupleDefinitions.MsiShortcutProperty; + + case TupleDefinitionType.ODBCAttribute: + return TupleDefinitions.ODBCAttribute; + + case TupleDefinitionType.ODBCDataSource: + return TupleDefinitions.ODBCDataSource; + + case TupleDefinitionType.ODBCDriver: + return TupleDefinitions.ODBCDriver; + + case TupleDefinitionType.ODBCSourceAttribute: + return TupleDefinitions.ODBCSourceAttribute; + + case TupleDefinitionType.ODBCTranslator: + return TupleDefinitions.ODBCTranslator; + + case TupleDefinitionType.Patch: + return TupleDefinitions.Patch; + + case TupleDefinitionType.PatchMetadata: + return TupleDefinitions.PatchMetadata; + + case TupleDefinitionType.PatchPackage: + return TupleDefinitions.PatchPackage; + + case TupleDefinitionType.PatchSequence: + return TupleDefinitions.PatchSequence; + + case TupleDefinitionType.ProgId: + return TupleDefinitions.ProgId; + + case TupleDefinitionType.Properties: + return TupleDefinitions.Properties; + + case TupleDefinitionType.Property: + return TupleDefinitions.Property; + + case TupleDefinitionType.PublishComponent: + return TupleDefinitions.PublishComponent; + + case TupleDefinitionType.RadioButton: + return TupleDefinitions.RadioButton; + + case TupleDefinitionType.Registry: + return TupleDefinitions.Registry; + + case TupleDefinitionType.RegLocator: + return TupleDefinitions.RegLocator; + + case TupleDefinitionType.RemoveFile: + return TupleDefinitions.RemoveFile; + + case TupleDefinitionType.RemoveIniFile: + return TupleDefinitions.RemoveIniFile; + + case TupleDefinitionType.RemoveRegistry: + return TupleDefinitions.RemoveRegistry; + + case TupleDefinitionType.ReserveCost: + return TupleDefinitions.ReserveCost; + + case TupleDefinitionType.SelfReg: + return TupleDefinitions.SelfReg; + + case TupleDefinitionType.ServiceControl: + return TupleDefinitions.ServiceControl; + + case TupleDefinitionType.ServiceInstall: + return TupleDefinitions.ServiceInstall; + + case TupleDefinitionType.SFPCatalog: + return TupleDefinitions.SFPCatalog; + + case TupleDefinitionType.Shortcut: + return TupleDefinitions.Shortcut; + + case TupleDefinitionType.Signature: + return TupleDefinitions.Signature; + + case TupleDefinitionType.TargetFiles_OptionalData: + return TupleDefinitions.TargetFiles_OptionalData; + + case TupleDefinitionType.TargetImages: + return TupleDefinitions.TargetImages; + + case TupleDefinitionType.TextStyle: + return TupleDefinitions.TextStyle; + + case TupleDefinitionType.TypeLib: + return TupleDefinitions.TypeLib; + + case TupleDefinitionType.UIText: + return TupleDefinitions.UIText; + + case TupleDefinitionType.Upgrade: + return TupleDefinitions.Upgrade; + + case TupleDefinitionType.UpgradedFiles_OptionalData: + return TupleDefinitions.UpgradedFiles_OptionalData; + + case TupleDefinitionType.UpgradedFilesToIgnore: + return TupleDefinitions.UpgradedFilesToIgnore; + + case TupleDefinitionType.UpgradedImages: + return TupleDefinitions.UpgradedImages; + + case TupleDefinitionType.Verb: + return TupleDefinitions.Verb; + + case TupleDefinitionType.WixAction: + return TupleDefinitions.WixAction; + + case TupleDefinitionType.WixApprovedExeForElevation: + return TupleDefinitions.WixApprovedExeForElevation; + + case TupleDefinitionType.WixBBControl: + return TupleDefinitions.WixBBControl; + + case TupleDefinitionType.WixBindUpdatedFiles: + return TupleDefinitions.WixBindUpdatedFiles; + + case TupleDefinitionType.WixBootstrapperApplication: + return TupleDefinitions.WixBootstrapperApplication; + + case TupleDefinitionType.WixBuildInfo: + return TupleDefinitions.WixBuildInfo; + + case TupleDefinitionType.WixBundle: + return TupleDefinitions.WixBundle; + + case TupleDefinitionType.WixBundleCatalog: + return TupleDefinitions.WixBundleCatalog; + + case TupleDefinitionType.WixBundleContainer: + return TupleDefinitions.WixBundleContainer; + + case TupleDefinitionType.WixBundleExePackage: + return TupleDefinitions.WixBundleExePackage; + + case TupleDefinitionType.WixBundleMsiFeature: + return TupleDefinitions.WixBundleMsiFeature; + + case TupleDefinitionType.WixBundleMsiPackage: + return TupleDefinitions.WixBundleMsiPackage; + + case TupleDefinitionType.WixBundleMsiProperty: + return TupleDefinitions.WixBundleMsiProperty; + + case TupleDefinitionType.WixBundleMspPackage: + return TupleDefinitions.WixBundleMspPackage; + + case TupleDefinitionType.WixBundleMsuPackage: + return TupleDefinitions.WixBundleMsuPackage; + + case TupleDefinitionType.WixBundlePackage: + return TupleDefinitions.WixBundlePackage; + + case TupleDefinitionType.WixBundlePackageCommandLine: + return TupleDefinitions.WixBundlePackageCommandLine; + + case TupleDefinitionType.WixBundlePackageExitCode: + return TupleDefinitions.WixBundlePackageExitCode; + + case TupleDefinitionType.WixBundlePackageGroup: + return TupleDefinitions.WixBundlePackageGroup; + + case TupleDefinitionType.WixBundlePatchTargetCode: + return TupleDefinitions.WixBundlePatchTargetCode; + + case TupleDefinitionType.WixBundlePayload: + return TupleDefinitions.WixBundlePayload; + + case TupleDefinitionType.WixBundlePayloadGroup: + return TupleDefinitions.WixBundlePayloadGroup; + + case TupleDefinitionType.WixBundleProperties: + return TupleDefinitions.WixBundleProperties; + + case TupleDefinitionType.WixBundleRelatedPackage: + return TupleDefinitions.WixBundleRelatedPackage; + + case TupleDefinitionType.WixBundleRollbackBoundary: + return TupleDefinitions.WixBundleRollbackBoundary; + + case TupleDefinitionType.WixBundleSlipstreamMsp: + return TupleDefinitions.WixBundleSlipstreamMsp; + + case TupleDefinitionType.WixBundleUpdate: + return TupleDefinitions.WixBundleUpdate; + + case TupleDefinitionType.WixBundleVariable: + return TupleDefinitions.WixBundleVariable; + + case TupleDefinitionType.WixChain: + return TupleDefinitions.WixChain; + + case TupleDefinitionType.WixChainItem: + return TupleDefinitions.WixChainItem; + + case TupleDefinitionType.WixComplexReference: + return TupleDefinitions.WixComplexReference; + + case TupleDefinitionType.WixComponentGroup: + return TupleDefinitions.WixComponentGroup; + + case TupleDefinitionType.WixComponentSearch: + return TupleDefinitions.WixComponentSearch; + + case TupleDefinitionType.WixControl: + return TupleDefinitions.WixControl; + + case TupleDefinitionType.WixCustomRow: + return TupleDefinitions.WixCustomRow; + + case TupleDefinitionType.WixCustomTable: + return TupleDefinitions.WixCustomTable; + + case TupleDefinitionType.WixDeltaPatchFile: + return TupleDefinitions.WixDeltaPatchFile; + + case TupleDefinitionType.WixDeltaPatchSymbolPaths: + return TupleDefinitions.WixDeltaPatchSymbolPaths; + + case TupleDefinitionType.WixDirectory: + return TupleDefinitions.WixDirectory; + + case TupleDefinitionType.WixEnsureTable: + return TupleDefinitions.WixEnsureTable; + + case TupleDefinitionType.WixFeatureGroup: + return TupleDefinitions.WixFeatureGroup; + + case TupleDefinitionType.WixFeatureModules: + return TupleDefinitions.WixFeatureModules; + + case TupleDefinitionType.WixFile: + return TupleDefinitions.WixFile; + + case TupleDefinitionType.WixFileSearch: + return TupleDefinitions.WixFileSearch; + + case TupleDefinitionType.WixFragment: + return TupleDefinitions.WixFragment; + + case TupleDefinitionType.WixGroup: + return TupleDefinitions.WixGroup; + + case TupleDefinitionType.WixInstanceComponent: + return TupleDefinitions.WixInstanceComponent; + + case TupleDefinitionType.WixInstanceTransforms: + return TupleDefinitions.WixInstanceTransforms; + + case TupleDefinitionType.WixMedia: + return TupleDefinitions.WixMedia; + + case TupleDefinitionType.WixMediaTemplate: + return TupleDefinitions.WixMediaTemplate; + + case TupleDefinitionType.WixMerge: + return TupleDefinitions.WixMerge; + + case TupleDefinitionType.WixOrdering: + return TupleDefinitions.WixOrdering; + + case TupleDefinitionType.WixPackageFeatureInfo: + return TupleDefinitions.WixPackageFeatureInfo; + + case TupleDefinitionType.WixPackageProperties: + return TupleDefinitions.WixPackageProperties; + + case TupleDefinitionType.WixPatchBaseline: + return TupleDefinitions.WixPatchBaseline; + + case TupleDefinitionType.WixPatchFamilyGroup: + return TupleDefinitions.WixPatchFamilyGroup; + + case TupleDefinitionType.WixPatchId: + return TupleDefinitions.WixPatchId; + + case TupleDefinitionType.WixPatchMetadata: + return TupleDefinitions.WixPatchMetadata; + + case TupleDefinitionType.WixPatchRef: + return TupleDefinitions.WixPatchRef; + + case TupleDefinitionType.WixPatchTarget: + return TupleDefinitions.WixPatchTarget; + + case TupleDefinitionType.WixPayloadProperties: + return TupleDefinitions.WixPayloadProperties; + + case TupleDefinitionType.WixProductSearch: + return TupleDefinitions.WixProductSearch; + + case TupleDefinitionType.WixProperty: + return TupleDefinitions.WixProperty; + + case TupleDefinitionType.WixRegistrySearch: + return TupleDefinitions.WixRegistrySearch; + + case TupleDefinitionType.WixRelatedBundle: + return TupleDefinitions.WixRelatedBundle; + + case TupleDefinitionType.WixSearch: + return TupleDefinitions.WixSearch; + + case TupleDefinitionType.WixSearchRelation: + return TupleDefinitions.WixSearchRelation; + + case TupleDefinitionType.WixSimpleReference: + return TupleDefinitions.WixSimpleReference; + + case TupleDefinitionType.WixSuppressAction: + return TupleDefinitions.WixSuppressAction; + + case TupleDefinitionType.WixSuppressModularization: + return TupleDefinitions.WixSuppressModularization; + + case TupleDefinitionType.WixUI: + return TupleDefinitions.WixUI; + + case TupleDefinitionType.WixUpdateRegistration: + return TupleDefinitions.WixUpdateRegistration; + + case TupleDefinitionType.WixVariable: + return TupleDefinitions.WixVariable; + + default: + throw new ArgumentOutOfRangeException(nameof(type)); + } + } + } +} diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs new file mode 100644 index 00000000..7bd26bf3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/TypeLibTuple.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition TypeLib = new IntermediateTupleDefinition( + TupleDefinitionType.TypeLib, + new[] + { + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.LibID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Version), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Cost), IntermediateFieldType.Number), + }, + typeof(TypeLibTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum TypeLibTupleFields + { + LibID, + Language, + Component_, + Version, + Description, + Directory_, + Feature_, + Cost, + } + + public class TypeLibTuple : IntermediateTuple + { + public TypeLibTuple() : base(TupleDefinitions.TypeLib, null, null) + { + } + + public TypeLibTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TypeLib, sourceLineNumber, id) + { + } + + public IntermediateField this[TypeLibTupleFields index] => this.Fields[(int)index]; + + public string LibID + { + get => (string)this.Fields[(int)TypeLibTupleFields.LibID]?.Value; + set => this.Set((int)TypeLibTupleFields.LibID, value); + } + + public int Language + { + get => (int)this.Fields[(int)TypeLibTupleFields.Language]?.Value; + set => this.Set((int)TypeLibTupleFields.Language, value); + } + + public string Component_ + { + get => (string)this.Fields[(int)TypeLibTupleFields.Component_]?.Value; + set => this.Set((int)TypeLibTupleFields.Component_, value); + } + + public int Version + { + get => (int)this.Fields[(int)TypeLibTupleFields.Version]?.Value; + set => this.Set((int)TypeLibTupleFields.Version, value); + } + + public string Description + { + get => (string)this.Fields[(int)TypeLibTupleFields.Description]?.Value; + set => this.Set((int)TypeLibTupleFields.Description, value); + } + + public string Directory_ + { + get => (string)this.Fields[(int)TypeLibTupleFields.Directory_]?.Value; + set => this.Set((int)TypeLibTupleFields.Directory_, value); + } + + public string Feature_ + { + get => (string)this.Fields[(int)TypeLibTupleFields.Feature_]?.Value; + set => this.Set((int)TypeLibTupleFields.Feature_, value); + } + + public int Cost + { + get => (int)this.Fields[(int)TypeLibTupleFields.Cost]?.Value; + set => this.Set((int)TypeLibTupleFields.Cost, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UITextTuple.cs b/src/WixToolset.Data/Tuples/UITextTuple.cs new file mode 100644 index 00000000..3d5f2933 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UITextTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition UIText = new IntermediateTupleDefinition( + TupleDefinitionType.UIText, + new[] + { + new IntermediateFieldDefinition(nameof(UITextTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UITextTupleFields.Text), IntermediateFieldType.String), + }, + typeof(UITextTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum UITextTupleFields + { + Key, + Text, + } + + public class UITextTuple : IntermediateTuple + { + public UITextTuple() : base(TupleDefinitions.UIText, null, null) + { + } + + public UITextTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UIText, sourceLineNumber, id) + { + } + + public IntermediateField this[UITextTupleFields index] => this.Fields[(int)index]; + + public string Key + { + get => (string)this.Fields[(int)UITextTupleFields.Key]?.Value; + set => this.Set((int)UITextTupleFields.Key, value); + } + + public string Text + { + get => (string)this.Fields[(int)UITextTupleFields.Text]?.Value; + set => this.Set((int)UITextTupleFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradeTuple.cs b/src/WixToolset.Data/Tuples/UpgradeTuple.cs new file mode 100644 index 00000000..94fe1231 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradeTuple.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Upgrade = new IntermediateTupleDefinition( + TupleDefinitionType.Upgrade, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradeTupleFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMin), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMax), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Remove), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeTupleFields.ActionProperty), IntermediateFieldType.String), + }, + typeof(UpgradeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum UpgradeTupleFields + { + UpgradeCode, + VersionMin, + VersionMax, + Language, + Attributes, + Remove, + ActionProperty, + } + + public class UpgradeTuple : IntermediateTuple + { + public UpgradeTuple() : base(TupleDefinitions.Upgrade, null, null) + { + } + + public UpgradeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Upgrade, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradeTupleFields index] => this.Fields[(int)index]; + + public string UpgradeCode + { + get => (string)this.Fields[(int)UpgradeTupleFields.UpgradeCode]?.Value; + set => this.Set((int)UpgradeTupleFields.UpgradeCode, value); + } + + public string VersionMin + { + get => (string)this.Fields[(int)UpgradeTupleFields.VersionMin]?.Value; + set => this.Set((int)UpgradeTupleFields.VersionMin, value); + } + + public string VersionMax + { + get => (string)this.Fields[(int)UpgradeTupleFields.VersionMax]?.Value; + set => this.Set((int)UpgradeTupleFields.VersionMax, value); + } + + public string Language + { + get => (string)this.Fields[(int)UpgradeTupleFields.Language]?.Value; + set => this.Set((int)UpgradeTupleFields.Language, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)UpgradeTupleFields.Attributes]?.Value; + set => this.Set((int)UpgradeTupleFields.Attributes, value); + } + + public string Remove + { + get => (string)this.Fields[(int)UpgradeTupleFields.Remove]?.Value; + set => this.Set((int)UpgradeTupleFields.Remove, value); + } + + public string ActionProperty + { + get => (string)this.Fields[(int)UpgradeTupleFields.ActionProperty]?.Value; + set => this.Set((int)UpgradeTupleFields.ActionProperty, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs new file mode 100644 index 00000000..64ec9229 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition UpgradedFilesToIgnore = new IntermediateTupleDefinition( + TupleDefinitionType.UpgradedFilesToIgnore, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreTupleFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreTupleFields.FTK), IntermediateFieldType.String), + }, + typeof(UpgradedFilesToIgnoreTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum UpgradedFilesToIgnoreTupleFields + { + Upgraded, + FTK, + } + + public class UpgradedFilesToIgnoreTuple : IntermediateTuple + { + public UpgradedFilesToIgnoreTuple() : base(TupleDefinitions.UpgradedFilesToIgnore, null, null) + { + } + + public UpgradedFilesToIgnoreTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedFilesToIgnoreTupleFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.Upgraded]?.Value; + set => this.Set((int)UpgradedFilesToIgnoreTupleFields.Upgraded, value); + } + + public string FTK + { + get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.FTK]?.Value; + set => this.Set((int)UpgradedFilesToIgnoreTupleFields.FTK, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs new file mode 100644 index 00000000..09b93fed --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition UpgradedFiles_OptionalData = new IntermediateTupleDefinition( + TupleDefinitionType.UpgradedFiles_OptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile), IntermediateFieldType.Number), + }, + typeof(UpgradedFiles_OptionalDataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum UpgradedFiles_OptionalDataTupleFields + { + Upgraded, + FTK, + SymbolPaths, + AllowIgnoreOnPatchError, + IncludeWholeFile, + } + + public class UpgradedFiles_OptionalDataTuple : IntermediateTuple + { + public UpgradedFiles_OptionalDataTuple() : base(TupleDefinitions.UpgradedFiles_OptionalData, null, null) + { + } + + public UpgradedFiles_OptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFiles_OptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedFiles_OptionalDataTupleFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.Upgraded]?.Value; + set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.Upgraded, value); + } + + public string FTK + { + get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.FTK]?.Value; + set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths]?.Value; + set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths, value); + } + + public int AllowIgnoreOnPatchError + { + get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError]?.Value; + set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError, value); + } + + public int IncludeWholeFile + { + get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile]?.Value; + set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs new file mode 100644 index 00000000..32170467 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition UpgradedImages = new IntermediateTupleDefinition( + TupleDefinitionType.UpgradedImages, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.PatchMsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.Family), IntermediateFieldType.String), + }, + typeof(UpgradedImagesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum UpgradedImagesTupleFields + { + Upgraded, + MsiPath, + PatchMsiPath, + SymbolPaths, + Family, + } + + public class UpgradedImagesTuple : IntermediateTuple + { + public UpgradedImagesTuple() : base(TupleDefinitions.UpgradedImages, null, null) + { + } + + public UpgradedImagesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedImages, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedImagesTupleFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedImagesTupleFields.Upgraded]?.Value; + set => this.Set((int)UpgradedImagesTupleFields.Upgraded, value); + } + + public string MsiPath + { + get => (string)this.Fields[(int)UpgradedImagesTupleFields.MsiPath]?.Value; + set => this.Set((int)UpgradedImagesTupleFields.MsiPath, value); + } + + public string PatchMsiPath + { + get => (string)this.Fields[(int)UpgradedImagesTupleFields.PatchMsiPath]?.Value; + set => this.Set((int)UpgradedImagesTupleFields.PatchMsiPath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)UpgradedImagesTupleFields.SymbolPaths]?.Value; + set => this.Set((int)UpgradedImagesTupleFields.SymbolPaths, value); + } + + public string Family + { + get => (string)this.Fields[(int)UpgradedImagesTupleFields.Family]?.Value; + set => this.Set((int)UpgradedImagesTupleFields.Family, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/VerbTuple.cs b/src/WixToolset.Data/Tuples/VerbTuple.cs new file mode 100644 index 00000000..4d5c7c03 --- /dev/null +++ b/src/WixToolset.Data/Tuples/VerbTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Verb = new IntermediateTupleDefinition( + TupleDefinitionType.Verb, + new[] + { + new IntermediateFieldDefinition(nameof(VerbTupleFields.Extension_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbTupleFields.Verb), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(VerbTupleFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbTupleFields.Argument), IntermediateFieldType.String), + }, + typeof(VerbTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum VerbTupleFields + { + Extension_, + Verb, + Sequence, + Command, + Argument, + } + + public class VerbTuple : IntermediateTuple + { + public VerbTuple() : base(TupleDefinitions.Verb, null, null) + { + } + + public VerbTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Verb, sourceLineNumber, id) + { + } + + public IntermediateField this[VerbTupleFields index] => this.Fields[(int)index]; + + public string Extension_ + { + get => (string)this.Fields[(int)VerbTupleFields.Extension_]?.Value; + set => this.Set((int)VerbTupleFields.Extension_, value); + } + + public string Verb + { + get => (string)this.Fields[(int)VerbTupleFields.Verb]?.Value; + set => this.Set((int)VerbTupleFields.Verb, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)VerbTupleFields.Sequence]?.Value; + set => this.Set((int)VerbTupleFields.Sequence, value); + } + + public string Command + { + get => (string)this.Fields[(int)VerbTupleFields.Command]?.Value; + set => this.Set((int)VerbTupleFields.Command, value); + } + + public string Argument + { + get => (string)this.Fields[(int)VerbTupleFields.Argument]?.Value; + set => this.Set((int)VerbTupleFields.Argument, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixActionTuple.cs b/src/WixToolset.Data/Tuples/WixActionTuple.cs new file mode 100644 index 00000000..53ea52de --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixActionTuple.cs @@ -0,0 +1,103 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixAction = new IntermediateTupleDefinition( + TupleDefinitionType.WixAction, + new[] + { + new IntermediateFieldDefinition(nameof(WixActionTupleFields.SequenceTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionTupleFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixActionTupleFields.Before), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionTupleFields.After), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionTupleFields.Overridable), IntermediateFieldType.Bool), + }, + typeof(WixActionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixActionTupleFields + { + SequenceTable, + Action, + Condition, + Sequence, + Before, + After, + Overridable, + } + + public enum SequenceTable + { + AdminUISequence, + AdminExecuteSequence, + AdvtExecuteSequence, + InstallUISequence, + InstallExecuteSequence + } + + public class WixActionTuple : IntermediateTuple + { + public WixActionTuple() : base(TupleDefinitions.WixAction, null, null) + { + } + + public WixActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixAction, sourceLineNumber, id) + { + } + + public IntermediateField this[WixActionTupleFields index] => this.Fields[(int)index]; + + public SequenceTable SequenceTable + { + get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixActionTupleFields.SequenceTable]?.Value); + set => this.Set((int)WixActionTupleFields.SequenceTable, value.ToString()); + } + + public string Action + { + get => (string)this.Fields[(int)WixActionTupleFields.Action]?.Value; + set => this.Set((int)WixActionTupleFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixActionTupleFields.Condition]?.Value; + set => this.Set((int)WixActionTupleFields.Condition, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)WixActionTupleFields.Sequence]?.Value; + set => this.Set((int)WixActionTupleFields.Sequence, value); + } + + public string Before + { + get => (string)this.Fields[(int)WixActionTupleFields.Before]?.Value; + set => this.Set((int)WixActionTupleFields.Before, value); + } + + public string After + { + get => (string)this.Fields[(int)WixActionTupleFields.After]?.Value; + set => this.Set((int)WixActionTupleFields.After, value); + } + + public bool Overridable + { + get => (bool)this.Fields[(int)WixActionTupleFields.Overridable]?.Value; + set => this.Set((int)WixActionTupleFields.Overridable, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs new file mode 100644 index 00000000..e733e6ab --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixApprovedExeForElevation = new IntermediateTupleDefinition( + TupleDefinitionType.WixApprovedExeForElevation, + new[] + { + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixApprovedExeForElevationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixApprovedExeForElevationTupleFields + { + Id, + Key, + Value, + Attributes, + } + + public class WixApprovedExeForElevationTuple : IntermediateTuple + { + public WixApprovedExeForElevationTuple() : base(TupleDefinitions.WixApprovedExeForElevation, null, null) + { + } + + public WixApprovedExeForElevationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) + { + } + + public IntermediateField this[WixApprovedExeForElevationTupleFields index] => this.Fields[(int)index]; + + public string Id + { + get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Id]?.Value; + set => this.Set((int)WixApprovedExeForElevationTupleFields.Id, value); + } + + public string Key + { + get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Key]?.Value; + set => this.Set((int)WixApprovedExeForElevationTupleFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Value]?.Value; + set => this.Set((int)WixApprovedExeForElevationTupleFields.Value, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes]?.Value; + set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBBControlTuple.cs b/src/WixToolset.Data/Tuples/WixBBControlTuple.cs new file mode 100644 index 00000000..4d912c38 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBBControlTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBBControl = new IntermediateTupleDefinition( + TupleDefinitionType.WixBBControl, + new[] + { + new IntermediateFieldDefinition(nameof(WixBBControlTupleFields.Billboard_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBBControlTupleFields.BBControl_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBBControlTupleFields.SourceFile), IntermediateFieldType.Path), + }, + typeof(WixBBControlTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBBControlTupleFields + { + Billboard_, + BBControl_, + SourceFile, + } + + public class WixBBControlTuple : IntermediateTuple + { + public WixBBControlTuple() : base(TupleDefinitions.WixBBControl, null, null) + { + } + + public WixBBControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBBControl, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBBControlTupleFields index] => this.Fields[(int)index]; + + public string Billboard_ + { + get => (string)this.Fields[(int)WixBBControlTupleFields.Billboard_]?.Value; + set => this.Set((int)WixBBControlTupleFields.Billboard_, value); + } + + public string BBControl_ + { + get => (string)this.Fields[(int)WixBBControlTupleFields.BBControl_]?.Value; + set => this.Set((int)WixBBControlTupleFields.BBControl_, value); + } + + public string SourceFile + { + get => (string)this.Fields[(int)WixBBControlTupleFields.SourceFile]?.Value; + set => this.Set((int)WixBBControlTupleFields.SourceFile, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs new file mode 100644 index 00000000..16a2a972 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBindUpdatedFiles = new IntermediateTupleDefinition( + TupleDefinitionType.WixBindUpdatedFiles, + new[] + { + new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesTupleFields.File_), IntermediateFieldType.String), + }, + typeof(WixBindUpdatedFilesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBindUpdatedFilesTupleFields + { + File_, + } + + public class WixBindUpdatedFilesTuple : IntermediateTuple + { + public WixBindUpdatedFilesTuple() : base(TupleDefinitions.WixBindUpdatedFiles, null, null) + { + } + + public WixBindUpdatedFilesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBindUpdatedFilesTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)WixBindUpdatedFilesTupleFields.File_]?.Value; + set => this.Set((int)WixBindUpdatedFilesTupleFields.File_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs new file mode 100644 index 00000000..00bf9dae --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBootstrapperApplication = new IntermediateTupleDefinition( + TupleDefinitionType.WixBootstrapperApplication, + new[] + { + new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationTupleFields.Id), IntermediateFieldType.String), + }, + typeof(WixBootstrapperApplicationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBootstrapperApplicationTupleFields + { + Id, + } + + public class WixBootstrapperApplicationTuple : IntermediateTuple + { + public WixBootstrapperApplicationTuple() : base(TupleDefinitions.WixBootstrapperApplication, null, null) + { + } + + public WixBootstrapperApplicationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBootstrapperApplication, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBootstrapperApplicationTupleFields index] => this.Fields[(int)index]; + + public string Id + { + get => (string)this.Fields[(int)WixBootstrapperApplicationTupleFields.Id]?.Value; + set => this.Set((int)WixBootstrapperApplicationTupleFields.Id, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs new file mode 100644 index 00000000..d71cbbaf --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBuildInfo = new IntermediateTupleDefinition( + TupleDefinitionType.WixBuildInfo, + new[] + { + new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixOutputFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixProjectFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixPdbFile), IntermediateFieldType.String), + }, + typeof(WixBuildInfoTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBuildInfoTupleFields + { + WixVersion, + WixOutputFile, + WixProjectFile, + WixPdbFile, + } + + public class WixBuildInfoTuple : IntermediateTuple + { + public WixBuildInfoTuple() : base(TupleDefinitions.WixBuildInfo, null, null) + { + } + + public WixBuildInfoTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBuildInfo, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBuildInfoTupleFields index] => this.Fields[(int)index]; + + public string WixVersion + { + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixVersion]?.Value; + set => this.Set((int)WixBuildInfoTupleFields.WixVersion, value); + } + + public string WixOutputFile + { + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixOutputFile]?.Value; + set => this.Set((int)WixBuildInfoTupleFields.WixOutputFile, value); + } + + public string WixProjectFile + { + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixProjectFile]?.Value; + set => this.Set((int)WixBuildInfoTupleFields.WixProjectFile, value); + } + + public string WixPdbFile + { + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixPdbFile]?.Value; + set => this.Set((int)WixBuildInfoTupleFields.WixPdbFile, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs new file mode 100644 index 00000000..4a4cd372 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleCatalog = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.WixBundleCatalog), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.Payload_), IntermediateFieldType.String), + }, + typeof(WixBundleCatalogTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleCatalogTupleFields + { + WixBundleCatalog, + Payload_, + } + + public class WixBundleCatalogTuple : IntermediateTuple + { + public WixBundleCatalogTuple() : base(TupleDefinitions.WixBundleCatalog, null, null) + { + } + + public WixBundleCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCatalogTupleFields index] => this.Fields[(int)index]; + + public string WixBundleCatalog + { + get => (string)this.Fields[(int)WixBundleCatalogTupleFields.WixBundleCatalog]?.Value; + set => this.Set((int)WixBundleCatalogTupleFields.WixBundleCatalog, value); + } + + public string Payload_ + { + get => (string)this.Fields[(int)WixBundleCatalogTupleFields.Payload_]?.Value; + set => this.Set((int)WixBundleCatalogTupleFields.Payload_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs new file mode 100644 index 00000000..d06e029f --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs @@ -0,0 +1,111 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleContainer = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleContainer, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WixBundleContainer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.AttachedContainerIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WorkingPath), IntermediateFieldType.String), + }, + typeof(WixBundleContainerTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundleContainerTupleFields + { + WixBundleContainer, + Name, + Type, + DownloadUrl, + Size, + Hash, + AttachedContainerIndex, + WorkingPath, + } + + /// + /// Types of bundle packages. + /// + public enum ContainerType + { + Attached, + Detached, + } + + public class WixBundleContainerTuple : IntermediateTuple + { + public WixBundleContainerTuple() : base(TupleDefinitions.WixBundleContainer, null, null) + { + } + + public WixBundleContainerTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleContainer, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleContainerTupleFields index] => this.Fields[(int)index]; + + public string WixBundleContainer + { + get => (string)this.Fields[(int)WixBundleContainerTupleFields.WixBundleContainer]?.Value; + set => this.Set((int)WixBundleContainerTupleFields.WixBundleContainer, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleContainerTupleFields.Name]?.Value; + set => this.Set((int)WixBundleContainerTupleFields.Name, value); + } + + public ContainerType Type + { + get => (ContainerType)Enum.Parse(typeof(ContainerType), (string)this.Fields[(int)WixBundleContainerTupleFields.Type]?.Value, true); + set => this.Set((int)WixBundleContainerTupleFields.Type, value.ToString()); + } + + public string DownloadUrl + { + get => (string)this.Fields[(int)WixBundleContainerTupleFields.DownloadUrl]?.Value; + set => this.Set((int)WixBundleContainerTupleFields.DownloadUrl, value); + } + + public int Size + { + get => (int)this.Fields[(int)WixBundleContainerTupleFields.Size]?.Value; + set => this.Set((int)WixBundleContainerTupleFields.Size, value); + } + + public string Hash + { + get => (string)this.Fields[(int)WixBundleContainerTupleFields.Hash]?.Value; + set => this.Set((int)WixBundleContainerTupleFields.Hash, value); + } + + public int AttachedContainerIndex + { + get => (int)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]?.Value; + set => this.Set((int)WixBundleContainerTupleFields.AttachedContainerIndex, value); + } + + public string WorkingPath + { + get => (string)this.Fields[(int)WixBundleContainerTupleFields.WorkingPath]?.Value; + set => this.Set((int)WixBundleContainerTupleFields.WorkingPath, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs new file mode 100644 index 00000000..7ba036f3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleExePackage = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleExePackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.InstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.RepairCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.UninstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.ExeProtocol), IntermediateFieldType.String), + }, + typeof(WixBundleExePackageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundleExePackageTupleFields + { + WixBundlePackage_, + Attributes, + DetectCondition, + InstallCommand, + RepairCommand, + UninstallCommand, + ExeProtocol, + } + + [Flags] + public enum WixBundleExePackageAttributes + { + Repairable = 0x1, + } + + public class WixBundleExePackageTuple : IntermediateTuple + { + public WixBundleExePackageTuple() : base(TupleDefinitions.WixBundleExePackage, null, null) + { + } + + public WixBundleExePackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleExePackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExePackageTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleExePackageTupleFields.WixBundlePackage_, value); + } + + public WixBundleExePackageAttributes Attributes + { + get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageTupleFields.Attributes]?.Value; + set => this.Set((int)WixBundleExePackageTupleFields.Attributes, (int)value); + } + + public string DetectCondition + { + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.DetectCondition]?.Value; + set => this.Set((int)WixBundleExePackageTupleFields.DetectCondition, value); + } + + public string InstallCommand + { + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.InstallCommand]?.Value; + set => this.Set((int)WixBundleExePackageTupleFields.InstallCommand, value); + } + + public string RepairCommand + { + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.RepairCommand]?.Value; + set => this.Set((int)WixBundleExePackageTupleFields.RepairCommand, value); + } + + public string UninstallCommand + { + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.UninstallCommand]?.Value; + set => this.Set((int)WixBundleExePackageTupleFields.UninstallCommand, value); + } + + public string ExeProtocol + { + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.ExeProtocol]?.Value; + set => this.Set((int)WixBundleExePackageTupleFields.ExeProtocol, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs new file mode 100644 index 00000000..2729205d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleMsiFeature = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleMsiFeature, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Directory), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleMsiFeatureTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleMsiFeatureTupleFields + { + WixBundlePackage_, + Name, + Size, + Parent, + Title, + Description, + Display, + Level, + Directory, + Attributes, + } + + public class WixBundleMsiFeatureTuple : IntermediateTuple + { + public WixBundleMsiFeatureTuple() : base(TupleDefinitions.WixBundleMsiFeature, null, null) + { + } + + public WixBundleMsiFeatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiFeature, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiFeatureTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.WixBundlePackage_, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Name]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Name, value); + } + + public int Size + { + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Size, value); + } + + public string Parent + { + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Parent]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Parent, value); + } + + public string Title + { + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Title]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Title, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Description]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Description, value); + } + + public int Display + { + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Display]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Display, value); + } + + public int Level + { + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Level]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Level, value); + } + + public string Directory + { + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Directory]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Directory, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Attributes]?.Value; + set => this.Set((int)WixBundleMsiFeatureTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs new file mode 100644 index 00000000..ce3afc15 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs @@ -0,0 +1,111 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleMsiPackage = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleMsiPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Manufacturer), IntermediateFieldType.String), + }, + typeof(WixBundleMsiPackageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundleMsiPackageTupleFields + { + WixBundlePackage_, + Attributes, + ProductCode, + UpgradeCode, + ProductVersion, + ProductLanguage, + ProductName, + Manufacturer, + } + + [Flags] + public enum WixBundleMsiPackageAttributes + { + DisplayInternalUI = 0x1, + EnableFeatureSelection = 0x4, + ForcePerMachine = 0x2, + SuppressLooseFilePayloadGeneration = 0x8, + } + + public class WixBundleMsiPackageTuple : IntermediateTuple + { + public WixBundleMsiPackageTuple() : base(TupleDefinitions.WixBundleMsiPackage, null, null) + { + } + + public WixBundleMsiPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPackageTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.WixBundlePackage_, value); + } + + public WixBundleMsiPackageAttributes Attributes + { + get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageTupleFields.Attributes]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.Attributes, (int)value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductCode]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.ProductCode, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.UpgradeCode]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.UpgradeCode, value); + } + + public string ProductVersion + { + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductVersion]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.ProductVersion, value); + } + + public int ProductLanguage + { + get => (int)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductLanguage]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.ProductLanguage, value); + } + + public string ProductName + { + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductName]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.ProductName, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.Manufacturer]?.Value; + set => this.Set((int)WixBundleMsiPackageTupleFields.Manufacturer, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs new file mode 100644 index 00000000..5eea57ea --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleMsiProperty = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleMsiProperty, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(WixBundleMsiPropertyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleMsiPropertyTupleFields + { + WixBundlePackage_, + Name, + Value, + Condition, + } + + public class WixBundleMsiPropertyTuple : IntermediateTuple + { + public WixBundleMsiPropertyTuple() : base(TupleDefinitions.WixBundleMsiProperty, null, null) + { + } + + public WixBundleMsiPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPropertyTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleMsiPropertyTupleFields.WixBundlePackage_, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Name]?.Value; + set => this.Set((int)WixBundleMsiPropertyTupleFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Value]?.Value; + set => this.Set((int)WixBundleMsiPropertyTupleFields.Value, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Condition]?.Value; + set => this.Set((int)WixBundleMsiPropertyTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs new file mode 100644 index 00000000..219c7735 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs @@ -0,0 +1,86 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleMspPackage = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleMspPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchXml), IntermediateFieldType.String), + }, + typeof(WixBundleMspPackageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundleMspPackageTupleFields + { + WixBundlePackage_, + Attributes, + PatchCode, + Manufacturer, + PatchXml, + } + + [Flags] + public enum WixBundleMspPackageAttributes + { + DisplayInternalUI = 0x1, + Slipstream = 0x2, + TargetUnspecified = 0x4, + } + + public class WixBundleMspPackageTuple : IntermediateTuple + { + public WixBundleMspPackageTuple() : base(TupleDefinitions.WixBundleMspPackage, null, null) + { + } + + public WixBundleMspPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMspPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMspPackageTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleMspPackageTupleFields.WixBundlePackage_, value); + } + + public WixBundleMspPackageAttributes Attributes + { + get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageTupleFields.Attributes]?.Value; + set => this.Set((int)WixBundleMspPackageTupleFields.Attributes, (int)value); + } + + public string PatchCode + { + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchCode]?.Value; + set => this.Set((int)WixBundleMspPackageTupleFields.PatchCode, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.Manufacturer]?.Value; + set => this.Set((int)WixBundleMspPackageTupleFields.Manufacturer, value); + } + + public string PatchXml + { + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchXml]?.Value; + set => this.Set((int)WixBundleMspPackageTupleFields.PatchXml, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs new file mode 100644 index 00000000..f6f71d6d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleMsuPackage = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleMsuPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.MsuKB), IntermediateFieldType.String), + }, + typeof(WixBundleMsuPackageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleMsuPackageTupleFields + { + WixBundlePackage_, + DetectCondition, + MsuKB, + } + + public class WixBundleMsuPackageTuple : IntermediateTuple + { + public WixBundleMsuPackageTuple() : base(TupleDefinitions.WixBundleMsuPackage, null, null) + { + } + + public WixBundleMsuPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsuPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsuPackageTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleMsuPackageTupleFields.WixBundlePackage_, value); + } + + public string DetectCondition + { + get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.DetectCondition]?.Value; + set => this.Set((int)WixBundleMsuPackageTupleFields.DetectCondition, value); + } + + public string MsuKB + { + get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.MsuKB]?.Value; + set => this.Set((int)WixBundleMsuPackageTupleFields.MsuKB, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs new file mode 100644 index 00000000..0ca895c0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundlePackageCommandLine = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePackageCommandLine, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.InstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.UninstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.RepairArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(WixBundlePackageCommandLineTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundlePackageCommandLineTupleFields + { + WixBundlePackage_, + InstallArgument, + UninstallArgument, + RepairArgument, + Condition, + } + + public class WixBundlePackageCommandLineTuple : IntermediateTuple + { + public WixBundlePackageCommandLineTuple() : base(TupleDefinitions.WixBundlePackageCommandLine, null, null) + { + } + + public WixBundlePackageCommandLineTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageCommandLineTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_, value); + } + + public string InstallArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.InstallArgument]?.Value; + set => this.Set((int)WixBundlePackageCommandLineTupleFields.InstallArgument, value); + } + + public string UninstallArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.UninstallArgument]?.Value; + set => this.Set((int)WixBundlePackageCommandLineTupleFields.UninstallArgument, value); + } + + public string RepairArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.RepairArgument]?.Value; + set => this.Set((int)WixBundlePackageCommandLineTupleFields.RepairArgument, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.Condition]?.Value; + set => this.Set((int)WixBundlePackageCommandLineTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs new file mode 100644 index 00000000..64c91316 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundlePackageExitCode = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePackageExitCode, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.ChainPackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Code), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Behavior), IntermediateFieldType.String), + }, + typeof(WixBundlePackageExitCodeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundlePackageExitCodeTupleFields + { + ChainPackageId, + Code, + Behavior, + } + + public enum ExitCodeBehaviorType + { + NotSet = -1, + Success, + Error, + ScheduleReboot, + ForceReboot, + } + + public class WixBundlePackageExitCodeTuple : IntermediateTuple + { + public WixBundlePackageExitCodeTuple() : base(TupleDefinitions.WixBundlePackageExitCode, null, null) + { + } + + public WixBundlePackageExitCodeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageExitCodeTupleFields index] => this.Fields[(int)index]; + + public string ChainPackageId + { + get => (string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.ChainPackageId]?.Value; + set => this.Set((int)WixBundlePackageExitCodeTupleFields.ChainPackageId, value); + } + + public int Code + { + get => (int)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]?.Value; + set => this.Set((int)WixBundlePackageExitCodeTupleFields.Code, value); + } + + public ExitCodeBehaviorType Behavior + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Behavior]?.Value, true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; + set => this.Set((int)WixBundlePackageExitCodeTupleFields.Behavior, value.ToString()); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs new file mode 100644 index 00000000..56711155 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundlePackageGroup = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePackageGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageGroupTupleFields.WixBundlePackageGroup), IntermediateFieldType.String), + }, + typeof(WixBundlePackageGroupTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundlePackageGroupTupleFields + { + WixBundlePackageGroup, + } + + public class WixBundlePackageGroupTuple : IntermediateTuple + { + public WixBundlePackageGroupTuple() : base(TupleDefinitions.WixBundlePackageGroup, null, null) + { + } + + public WixBundlePackageGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageGroupTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackageGroup + { + get => (string)this.Fields[(int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup]?.Value; + set => this.Set((int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs new file mode 100644 index 00000000..e0eedce1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -0,0 +1,216 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundlePackage = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.WixChainItem_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Payload_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Cache), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.CacheId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PerMachine), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundary_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryBackward_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.x64), IntermediateFieldType.Number), + }, + typeof(WixBundlePackageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundlePackageTupleFields + { + WixChainItem_, + Type, + Payload_, + Attributes, + InstallCondition, + Cache, + CacheId, + Vital, + PerMachine, + LogPathVariable, + RollbackLogPathVariable, + Size, + InstallSize, + Version, + Language, + DisplayName, + Description, + RollbackBoundary_, + RollbackBoundaryBackward_, + x64, + } + + /// + /// Types of bundle packages. + /// + public enum WixBundlePackageType + { + Exe, + Msi, + Msp, + Msu, + } + + [Flags] + public enum WixBundlePackageAttributes + { + Permanent = 0x1, + Visible = 0x2, + } + + public class WixBundlePackageTuple : IntermediateTuple + { + public WixBundlePackageTuple() : base(TupleDefinitions.WixBundlePackage, null, null) + { + } + + public WixBundlePackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageTupleFields index] => this.Fields[(int)index]; + + public string WixChainItem_ + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItem_]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.WixChainItem_, value); + } + + public WixBundlePackageType Type + { + get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageTupleFields.Type]?.Value, true); + set => this.Set((int)WixBundlePackageTupleFields.Type, value.ToString()); + } + + public string Payload_ + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.Payload_]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.Payload_, value); + } + + public WixBundlePackageAttributes Attributes + { + get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageTupleFields.Attributes]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.Attributes, (int)value); + } + + public string InstallCondition + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.InstallCondition]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.InstallCondition, value); + } + + public YesNoAlwaysType Cache + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.Cache]?.Value, true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; + set => this.Set((int)WixBundlePackageTupleFields.Cache, value); + } + + public string CacheId + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.CacheId]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.CacheId, value); + } + + public bool? Vital + { + get => (bool?)this.Fields[(int)WixBundlePackageTupleFields.Vital]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.Vital, value); + } + + public YesNoDefaultType PerMachine + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.PerMachine]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; + set => this.Set((int)WixBundlePackageTupleFields.PerMachine, value); + } + + public string LogPathVariable + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.LogPathVariable]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.LogPathVariable, value); + } + + public string RollbackLogPathVariable + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackLogPathVariable]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.RollbackLogPathVariable, value); + } + + public int Size + { + get => (int)this.Fields[(int)WixBundlePackageTupleFields.Size]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.Size, value); + } + + public int InstallSize + { + get => (int)this.Fields[(int)WixBundlePackageTupleFields.InstallSize]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.InstallSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.Version]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.Version, value); + } + + public int Language + { + get => (int)this.Fields[(int)WixBundlePackageTupleFields.Language]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.Language, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.DisplayName]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.Description]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.Description, value); + } + + public string RollbackBoundary_ + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundary_]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundary_, value); + } + + public string RollbackBoundaryBackward_ + { + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryBackward_]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackward_, value); + } + + public int x64 + { + get => (int)this.Fields[(int)WixBundlePackageTupleFields.x64]?.Value; + set => this.Set((int)WixBundlePackageTupleFields.x64, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs new file mode 100644 index 00000000..d34c0d2a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundlePatchTargetCode = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePatchTargetCode, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.PackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.TargetCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundlePatchTargetCodeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundlePatchTargetCodeTupleFields + { + PackageId, + TargetCode, + Attributes, + } + + public class WixBundlePatchTargetCodeTuple : IntermediateTuple + { + public WixBundlePatchTargetCodeTuple() : base(TupleDefinitions.WixBundlePatchTargetCode, null, null) + { + } + + public WixBundlePatchTargetCodeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePatchTargetCodeTupleFields index] => this.Fields[(int)index]; + + public string PackageId + { + get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageId]?.Value; + set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageId, value); + } + + public string TargetCode + { + get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.TargetCode]?.Value; + set => this.Set((int)WixBundlePatchTargetCodeTupleFields.TargetCode, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes]?.Value; + set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs new file mode 100644 index 00000000..c1f0df6a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundlePayloadGroup = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePayloadGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup), IntermediateFieldType.String), + }, + typeof(WixBundlePayloadGroupTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundlePayloadGroupTupleFields + { + WixBundlePayloadGroup, + } + + public class WixBundlePayloadGroupTuple : IntermediateTuple + { + public WixBundlePayloadGroupTuple() : base(TupleDefinitions.WixBundlePayloadGroup, null, null) + { + } + + public WixBundlePayloadGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePayloadGroupTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePayloadGroup + { + get => (string)this.Fields[(int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup]?.Value; + set => this.Set((int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs new file mode 100644 index 00000000..d1c02387 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -0,0 +1,214 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundlePayload = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePayload, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.WixBundlePayload), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Compressed), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.UnresolvedSourceFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EnableSignatureValidation), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.PublicKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Thumbprint), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Catalog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Container_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Package), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContentFile), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EmbeddedId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Packaging), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ParentPackagePayload_), IntermediateFieldType.String), + }, + typeof(WixBundlePayloadTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundlePayloadTupleFields + { + WixBundlePayload, + Name, + SourceFile, + DownloadUrl, + Compressed, + UnresolvedSourceFile, + DisplayName, + Description, + EnableSignatureValidation, + FileSize, + Version, + Hash, + PublicKey, + Thumbprint, + Catalog_, + Container_, + Package, + ContentFile, + EmbeddedId, + LayoutOnly, + Packaging, + ParentPackagePayload_, + } + + public class WixBundlePayloadTuple : IntermediateTuple + { + public WixBundlePayloadTuple() : base(TupleDefinitions.WixBundlePayload, null, null) + { + } + + public WixBundlePayloadTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePayloadTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePayload + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.WixBundlePayload]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.WixBundlePayload, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Name]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Name, value); + } + + public string SourceFile + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.SourceFile]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.SourceFile, value); + } + + public string DownloadUrl + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DownloadUrl]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.DownloadUrl, value); + } + + public YesNoDefaultType Compressed + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePayloadTupleFields.Compressed]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; + set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value); + } + + public string UnresolvedSourceFile + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.UnresolvedSourceFile]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.UnresolvedSourceFile, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DisplayName]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Description]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Description, value); + } + + public bool EnableSignatureValidation + { + get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.EnableSignatureValidation]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.EnableSignatureValidation, value); + } + + public int FileSize + { + get => (int)this.Fields[(int)WixBundlePayloadTupleFields.FileSize]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.FileSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Version]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Version, value); + } + + public string Hash + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Hash]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Hash, value); + } + + public string PublicKey + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PublicKey]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.PublicKey, value); + } + + public string Thumbprint + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Thumbprint]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Thumbprint, value); + } + + public string Catalog_ + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Catalog_]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Catalog_, value); + } + + public string Container_ + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Container_]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Container_, value); + } + + public string Package + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Package]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Package, value); + } + + public bool ContentFile + { + get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.ContentFile]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.ContentFile, value); + } + + public string EmbeddedId + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.EmbeddedId]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.EmbeddedId, value); + } + + public int LayoutOnly + { + get => (int)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.LayoutOnly, value); + } + + public int Packaging + { + get => (int)this.Fields[(int)WixBundlePayloadTupleFields.Packaging]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.Packaging, value); + } + + public string ParentPackagePayload_ + { + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ParentPackagePayload_]?.Value; + set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayload_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs new file mode 100644 index 00000000..8a42c3c6 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleProperties = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleProperties, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Compressed), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.PerMachine), IntermediateFieldType.String), + }, + typeof(WixBundlePropertiesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundlePropertiesTupleFields + { + DisplayName, + LogPathVariable, + Compressed, + Id, + UpgradeCode, + PerMachine, + } + + public class WixBundlePropertiesTuple : IntermediateTuple + { + public WixBundlePropertiesTuple() : base(TupleDefinitions.WixBundleProperties, null, null) + { + } + + public WixBundlePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleProperties, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePropertiesTupleFields index] => this.Fields[(int)index]; + + public string DisplayName + { + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.DisplayName]?.Value; + set => this.Set((int)WixBundlePropertiesTupleFields.DisplayName, value); + } + + public string LogPathVariable + { + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.LogPathVariable]?.Value; + set => this.Set((int)WixBundlePropertiesTupleFields.LogPathVariable, value); + } + + public string Compressed + { + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Compressed]?.Value; + set => this.Set((int)WixBundlePropertiesTupleFields.Compressed, value); + } + + public string Id + { + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Id]?.Value; + set => this.Set((int)WixBundlePropertiesTupleFields.Id, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.UpgradeCode]?.Value; + set => this.Set((int)WixBundlePropertiesTupleFields.UpgradeCode, value); + } + + public string PerMachine + { + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.PerMachine]?.Value; + set => this.Set((int)WixBundlePropertiesTupleFields.PerMachine, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs new file mode 100644 index 00000000..d3e1069a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleRelatedPackage = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleRelatedPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinInclusive), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxInclusive), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.LangInclusive), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.OnlyDetect), IntermediateFieldType.Number), + }, + typeof(WixBundleRelatedPackageTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleRelatedPackageTupleFields + { + WixBundlePackage_, + Id, + MinVersion, + MaxVersion, + Languages, + MinInclusive, + MaxInclusive, + LangInclusive, + OnlyDetect, + } + + public class WixBundleRelatedPackageTuple : IntermediateTuple + { + public WixBundleRelatedPackageTuple() : base(TupleDefinitions.WixBundleRelatedPackage, null, null) + { + } + + public WixBundleRelatedPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleRelatedPackageTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.WixBundlePackage_, value); + } + + public string Id + { + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Id]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.Id, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinVersion]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxVersion]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxVersion, value); + } + + public string Languages + { + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Languages]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.Languages, value); + } + + public int MinInclusive + { + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinInclusive]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.MinInclusive, value); + } + + public int MaxInclusive + { + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxInclusive]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxInclusive, value); + } + + public int LangInclusive + { + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.LangInclusive]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.LangInclusive, value); + } + + public int OnlyDetect + { + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.OnlyDetect]?.Value; + set => this.Set((int)WixBundleRelatedPackageTupleFields.OnlyDetect, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs new file mode 100644 index 00000000..d08f0eb9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleRollbackBoundary = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleRollbackBoundary, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.WixChainItem_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Vital), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Transaction), IntermediateFieldType.Number), + }, + typeof(WixBundleRollbackBoundaryTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleRollbackBoundaryTupleFields + { + WixChainItem_, + Vital, + Transaction, + } + + public class WixBundleRollbackBoundaryTuple : IntermediateTuple + { + public WixBundleRollbackBoundaryTuple() : base(TupleDefinitions.WixBundleRollbackBoundary, null, null) + { + } + + public WixBundleRollbackBoundaryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleRollbackBoundaryTupleFields index] => this.Fields[(int)index]; + + public string WixChainItem_ + { + get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItem_]?.Value; + set => this.Set((int)WixBundleRollbackBoundaryTupleFields.WixChainItem_, value); + } + + public bool? Vital + { + get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Vital]?.Value; + set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Vital, value); + } + + public bool? Transaction + { + get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Transaction]?.Value; + set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Transaction, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs new file mode 100644 index 00000000..c0ab124d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleSlipstreamMsp = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleSlipstreamMsp, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp), IntermediateFieldType.String), + }, + typeof(WixBundleSlipstreamMspTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleSlipstreamMspTupleFields + { + WixBundlePackage_, + WixBundlePackage_Msp, + } + + public class WixBundleSlipstreamMspTuple : IntermediateTuple + { + public WixBundleSlipstreamMspTuple() : base(TupleDefinitions.WixBundleSlipstreamMsp, null, null) + { + } + + public WixBundleSlipstreamMspTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleSlipstreamMspTupleFields index] => this.Fields[(int)index]; + + public string WixBundlePackage_ + { + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_]?.Value; + set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_, value); + } + + public string WixBundlePackage_Msp + { + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp]?.Value; + set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs new file mode 100644 index 00000000..4647347b --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleTuple.cs @@ -0,0 +1,220 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundle = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundle, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Copyright), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.AboutUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableModify), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRemove), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRepair), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpTelephone), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpdateUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Compressed), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPrefixAndExtension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.IconSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.SplashScreenSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Tag), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Platform), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ParentName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.BundleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.PerMachine), IntermediateFieldType.Number), + }, + typeof(WixBundleTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleTupleFields + { + Version, + Copyright, + Name, + AboutUrl, + DisableModify, + DisableRemove, + DisableRepair, + HelpTelephone, + HelpUrl, + Manufacturer, + UpdateUrl, + Compressed, + LogPrefixAndExtension, + IconSourceFile, + SplashScreenSourceFile, + Condition, + Tag, + Platform, + ParentName, + UpgradeCode, + BundleId, + ProviderKey, + PerMachine, + } + + public class WixBundleTuple : IntermediateTuple + { + public WixBundleTuple() : base(TupleDefinitions.WixBundle, null, null) + { + } + + public WixBundleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundle, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleTupleFields index] => this.Fields[(int)index]; + + public string Version + { + get => (string)this.Fields[(int)WixBundleTupleFields.Version]?.Value; + set => this.Set((int)WixBundleTupleFields.Version, value); + } + + public string Copyright + { + get => (string)this.Fields[(int)WixBundleTupleFields.Copyright]?.Value; + set => this.Set((int)WixBundleTupleFields.Copyright, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleTupleFields.Name]?.Value; + set => this.Set((int)WixBundleTupleFields.Name, value); + } + + public string AboutUrl + { + get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl]?.Value; + set => this.Set((int)WixBundleTupleFields.AboutUrl, value); + } + + public int DisableModify + { + get => (int)this.Fields[(int)WixBundleTupleFields.DisableModify]?.Value; + set => this.Set((int)WixBundleTupleFields.DisableModify, value); + } + + public int DisableRemove + { + get => (int)this.Fields[(int)WixBundleTupleFields.DisableRemove]?.Value; + set => this.Set((int)WixBundleTupleFields.DisableRemove, value); + } + + public int DisableRepair + { + get => (int)this.Fields[(int)WixBundleTupleFields.DisableRepair]?.Value; + set => this.Set((int)WixBundleTupleFields.DisableRepair, value); + } + + public string HelpTelephone + { + get => (string)this.Fields[(int)WixBundleTupleFields.HelpTelephone]?.Value; + set => this.Set((int)WixBundleTupleFields.HelpTelephone, value); + } + + public string HelpUrl + { + get => (string)this.Fields[(int)WixBundleTupleFields.HelpUrl]?.Value; + set => this.Set((int)WixBundleTupleFields.HelpUrl, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer]?.Value; + set => this.Set((int)WixBundleTupleFields.Manufacturer, value); + } + + public string UpdateUrl + { + get => (string)this.Fields[(int)WixBundleTupleFields.UpdateUrl]?.Value; + set => this.Set((int)WixBundleTupleFields.UpdateUrl, value); + } + + public int Compressed + { + get => (int)this.Fields[(int)WixBundleTupleFields.Compressed]?.Value; + set => this.Set((int)WixBundleTupleFields.Compressed, value); + } + + public string LogPrefixAndExtension + { + get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefixAndExtension]?.Value; + set => this.Set((int)WixBundleTupleFields.LogPrefixAndExtension, value); + } + + public string IconSourceFile + { + get => (string)this.Fields[(int)WixBundleTupleFields.IconSourceFile]?.Value; + set => this.Set((int)WixBundleTupleFields.IconSourceFile, value); + } + + public string SplashScreenSourceFile + { + get => (string)this.Fields[(int)WixBundleTupleFields.SplashScreenSourceFile]?.Value; + set => this.Set((int)WixBundleTupleFields.SplashScreenSourceFile, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundleTupleFields.Condition]?.Value; + set => this.Set((int)WixBundleTupleFields.Condition, value); + } + + public string Tag + { + get => (string)this.Fields[(int)WixBundleTupleFields.Tag]?.Value; + set => this.Set((int)WixBundleTupleFields.Tag, value); + } + + public string Platform + { + get => (string)this.Fields[(int)WixBundleTupleFields.Platform]?.Value; + set => this.Set((int)WixBundleTupleFields.Platform, value); + } + + public string ParentName + { + get => (string)this.Fields[(int)WixBundleTupleFields.ParentName]?.Value; + set => this.Set((int)WixBundleTupleFields.ParentName, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode]?.Value; + set => this.Set((int)WixBundleTupleFields.UpgradeCode, value); + } + + public string BundleId + { + get => (string)this.Fields[(int)WixBundleTupleFields.BundleId]?.Value; + set => this.Set((int)WixBundleTupleFields.BundleId, value); + } + + public string ProviderKey + { + get => (string)this.Fields[(int)WixBundleTupleFields.ProviderKey]?.Value; + set => this.Set((int)WixBundleTupleFields.ProviderKey, value); + } + + public int PerMachine + { + get => (int)this.Fields[(int)WixBundleTupleFields.PerMachine]?.Value; + set => this.Set((int)WixBundleTupleFields.PerMachine, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs new file mode 100644 index 00000000..2398b1da --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleUpdate = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleUpdate, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleUpdateTupleFields.Location), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleUpdateTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleUpdateTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleUpdateTupleFields + { + Location, + Attributes, + } + + public class WixBundleUpdateTuple : IntermediateTuple + { + public WixBundleUpdateTuple() : base(TupleDefinitions.WixBundleUpdate, null, null) + { + } + + public WixBundleUpdateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleUpdate,sourceLineNumber,id) + { + } + + public IntermediateField this[WixBundleUpdateTupleFields index] => this.Fields[(int)index]; + + public string Location + { + get => (string)this.Fields[(int)WixBundleUpdateTupleFields.Location]?.Value; + set => this.Set((int)WixBundleUpdateTupleFields.Location, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixBundleUpdateTupleFields.Attributes]?.Value; + set => this.Set((int)WixBundleUpdateTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs new file mode 100644 index 00000000..c5724e6c --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleVariable = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.WixBundleVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Persisted), IntermediateFieldType.Bool), + }, + typeof(WixBundleVariableTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleVariableTupleFields + { + WixBundleVariable, + Value, + Type, + Hidden, + Persisted, + } + + public class WixBundleVariableTuple : IntermediateTuple + { + public WixBundleVariableTuple() : base(TupleDefinitions.WixBundleVariable, null, null) + { + } + + public WixBundleVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleVariableTupleFields index] => this.Fields[(int)index]; + + public string WixBundleVariable + { + get => (string)this.Fields[(int)WixBundleVariableTupleFields.WixBundleVariable]?.Value; + set => this.Set((int)WixBundleVariableTupleFields.WixBundleVariable, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleVariableTupleFields.Value]?.Value; + set => this.Set((int)WixBundleVariableTupleFields.Value, value); + } + + public string Type + { + get => (string)this.Fields[(int)WixBundleVariableTupleFields.Type]?.Value; + set => this.Set((int)WixBundleVariableTupleFields.Type, value); + } + + public bool Hidden + { + get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Hidden]?.Value; + set => this.Set((int)WixBundleVariableTupleFields.Hidden, value); + } + + public bool Persisted + { + get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Persisted]?.Value; + set => this.Set((int)WixBundleVariableTupleFields.Persisted, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs new file mode 100644 index 00000000..c77bd038 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixChainItem = new IntermediateTupleDefinition( + TupleDefinitionType.WixChainItem, + new[] + { + new IntermediateFieldDefinition(nameof(WixChainItemTupleFields.Id), IntermediateFieldType.String), + }, + typeof(WixChainItemTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixChainItemTupleFields + { + Id, + } + + public class WixChainItemTuple : IntermediateTuple + { + public WixChainItemTuple() : base(TupleDefinitions.WixChainItem, null, null) + { + } + + public WixChainItemTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixChainItem, sourceLineNumber, id) + { + } + + public IntermediateField this[WixChainItemTupleFields index] => this.Fields[(int)index]; + + public string Id + { + get => (string)this.Fields[(int)WixChainItemTupleFields.Id]?.Value; + set => this.Set((int)WixChainItemTupleFields.Id, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixChainTuple.cs b/src/WixToolset.Data/Tuples/WixChainTuple.cs new file mode 100644 index 00000000..d3ae2f4a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixChainTuple.cs @@ -0,0 +1,55 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixChain = new IntermediateTupleDefinition( + TupleDefinitionType.WixChain, + new[] + { + new IntermediateFieldDefinition(nameof(WixChainTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixChainTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixChainTupleFields + { + Attributes, + } + + [Flags] + public enum WixChainAttributes + { + None = 0x0, + DisableRollback = 0x1, + DisableSystemRestore = 0x2, + ParallelCache = 0x4, + } + + public class WixChainTuple : IntermediateTuple + { + public WixChainTuple() : base(TupleDefinitions.WixChain, null, null) + { + } + + public WixChainTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixChain, sourceLineNumber, id) + { + } + + public IntermediateField this[WixChainTupleFields index] => this.Fields[(int)index]; + + public WixChainAttributes Attributes + { + get => (WixChainAttributes)(int)this.Fields[(int)WixChainTupleFields.Attributes]?.Value; + set => this.Set((int)WixChainTupleFields.Attributes, (int)value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs new file mode 100644 index 00000000..46de9aa9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs @@ -0,0 +1,86 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixComplexReference = new IntermediateTupleDefinition( + TupleDefinitionType.WixComplexReference, + new[] + { + new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ParentAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ParentLanguage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Child), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ChildAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Attributes), IntermediateFieldType.Bool), + }, + typeof(WixComplexReferenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixComplexReferenceTupleFields + { + Parent, + ParentAttributes, + ParentLanguage, + Child, + ChildAttributes, + Attributes, + } + + public class WixComplexReferenceTuple : IntermediateTuple + { + public WixComplexReferenceTuple() : base(TupleDefinitions.WixComplexReference, null, null) + { + } + + public WixComplexReferenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComplexReference, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComplexReferenceTupleFields index] => this.Fields[(int)index]; + + public string Parent + { + get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Parent]?.Value; + set => this.Set((int)WixComplexReferenceTupleFields.Parent, value); + } + + public ComplexReferenceParentType ParentType + { + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentAttributes]?.Value, true); + set => this.Set((int)WixComplexReferenceTupleFields.ParentAttributes, value.ToString()); + } + + public string ParentLanguage + { + get => (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentLanguage]?.Value; + set => this.Set((int)WixComplexReferenceTupleFields.ParentLanguage, value); + } + + public string Child + { + get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Child]?.Value; + set => this.Set((int)WixComplexReferenceTupleFields.Child, value); + } + + public ComplexReferenceChildType ChildType + { + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ChildAttributes]?.Value, true); + set => this.Set((int)WixComplexReferenceTupleFields.ChildAttributes, value.ToString()); + } + + public bool IsPrimary + { + get => (bool)this.Fields[(int)WixComplexReferenceTupleFields.Attributes]?.Value; + set => this.Set((int)WixComplexReferenceTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs new file mode 100644 index 00000000..f4118277 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixComponentGroup = new IntermediateTupleDefinition( + TupleDefinitionType.WixComponentGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixComponentGroupTupleFields.WixComponentGroup), IntermediateFieldType.String), + }, + typeof(WixComponentGroupTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixComponentGroupTupleFields + { + WixComponentGroup, + } + + public class WixComponentGroupTuple : IntermediateTuple + { + public WixComponentGroupTuple() : base(TupleDefinitions.WixComponentGroup, null, null) + { + } + + public WixComponentGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComponentGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComponentGroupTupleFields index] => this.Fields[(int)index]; + + public string WixComponentGroup + { + get => (string)this.Fields[(int)WixComponentGroupTupleFields.WixComponentGroup]?.Value; + set => this.Set((int)WixComponentGroupTupleFields.WixComponentGroup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs new file mode 100644 index 00000000..7aad13d2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixComponentSearch = new IntermediateTupleDefinition( + TupleDefinitionType.WixComponentSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixComponentSearchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixComponentSearchTupleFields + { + WixSearch_, + Guid, + ProductCode, + Attributes, + } + + public class WixComponentSearchTuple : IntermediateTuple + { + public WixComponentSearchTuple() : base(TupleDefinitions.WixComponentSearch, null, null) + { + } + + public WixComponentSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComponentSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComponentSearchTupleFields index] => this.Fields[(int)index]; + + public string WixSearch_ + { + get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearch_]?.Value; + set => this.Set((int)WixComponentSearchTupleFields.WixSearch_, value); + } + + public string Guid + { + get => (string)this.Fields[(int)WixComponentSearchTupleFields.Guid]?.Value; + set => this.Set((int)WixComponentSearchTupleFields.Guid, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixComponentSearchTupleFields.ProductCode]?.Value; + set => this.Set((int)WixComponentSearchTupleFields.ProductCode, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixComponentSearchTupleFields.Attributes]?.Value; + set => this.Set((int)WixComponentSearchTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixControlTuple.cs b/src/WixToolset.Data/Tuples/WixControlTuple.cs new file mode 100644 index 00000000..c86490fb --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixControlTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixControl = new IntermediateTupleDefinition( + TupleDefinitionType.WixControl, + new[] + { + new IntermediateFieldDefinition(nameof(WixControlTupleFields.Dialog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixControlTupleFields.Control_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixControlTupleFields.SourceFile), IntermediateFieldType.Path), + }, + typeof(WixControlTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixControlTupleFields + { + Dialog_, + Control_, + SourceFile, + } + + public class WixControlTuple : IntermediateTuple + { + public WixControlTuple() : base(TupleDefinitions.WixControl, null, null) + { + } + + public WixControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixControl, sourceLineNumber, id) + { + } + + public IntermediateField this[WixControlTupleFields index] => this.Fields[(int)index]; + + public string Dialog_ + { + get => (string)this.Fields[(int)WixControlTupleFields.Dialog_]?.Value; + set => this.Set((int)WixControlTupleFields.Dialog_, value); + } + + public string Control_ + { + get => (string)this.Fields[(int)WixControlTupleFields.Control_]?.Value; + set => this.Set((int)WixControlTupleFields.Control_, value); + } + + public string SourceFile + { + get => (string)this.Fields[(int)WixControlTupleFields.SourceFile]?.Value; + set => this.Set((int)WixControlTupleFields.SourceFile, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs new file mode 100644 index 00000000..c7ab0b0b --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixCustomRow = new IntermediateTupleDefinition( + TupleDefinitionType.WixCustomRow, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomRowTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomRowTupleFields.FieldData), IntermediateFieldType.String), + }, + typeof(WixCustomRowTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixCustomRowTupleFields + { + Table, + FieldData, + } + + public class WixCustomRowTuple : IntermediateTuple + { + public WixCustomRowTuple() : base(TupleDefinitions.WixCustomRow, null, null) + { + } + + public WixCustomRowTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomRow, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomRowTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixCustomRowTupleFields.Table]?.Value; + set => this.Set((int)WixCustomRowTupleFields.Table, value); + } + + public string FieldData + { + get => (string)this.Fields[(int)WixCustomRowTupleFields.FieldData]?.Value; + set => this.Set((int)WixCustomRowTupleFields.FieldData, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs new file mode 100644 index 00000000..58266aff --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -0,0 +1,148 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixCustomTable = new IntermediateTupleDefinition( + TupleDefinitionType.WixCustomTable, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnCount), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnTypes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.PrimaryKeys), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.MinValues), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.MaxValues), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.KeyTables), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.KeyColumns), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Categories), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Sets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Descriptions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Modularizations), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.BootstrapperApplicationData), IntermediateFieldType.Number), + }, + typeof(WixCustomTableTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixCustomTableTupleFields + { + Table, + ColumnCount, + ColumnNames, + ColumnTypes, + PrimaryKeys, + MinValues, + MaxValues, + KeyTables, + KeyColumns, + Categories, + Sets, + Descriptions, + Modularizations, + BootstrapperApplicationData, + } + + public class WixCustomTableTuple : IntermediateTuple + { + public WixCustomTableTuple() : base(TupleDefinitions.WixCustomTable, null, null) + { + } + + public WixCustomTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.Table]?.Value; + set => this.Set((int)WixCustomTableTupleFields.Table, value); + } + + public int ColumnCount + { + get => (int)this.Fields[(int)WixCustomTableTupleFields.ColumnCount]?.Value; + set => this.Set((int)WixCustomTableTupleFields.ColumnCount, value); + } + + public string ColumnNames + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnNames]?.Value; + set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); + } + + public string ColumnTypes + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnTypes]?.Value; + set => this.Set((int)WixCustomTableTupleFields.ColumnTypes, value); + } + + public string PrimaryKeys + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.PrimaryKeys]?.Value; + set => this.Set((int)WixCustomTableTupleFields.PrimaryKeys, value); + } + + public string MinValues + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.MinValues]?.Value; + set => this.Set((int)WixCustomTableTupleFields.MinValues, value); + } + + public string MaxValues + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.MaxValues]?.Value; + set => this.Set((int)WixCustomTableTupleFields.MaxValues, value); + } + + public string KeyTables + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyTables]?.Value; + set => this.Set((int)WixCustomTableTupleFields.KeyTables, value); + } + + public string KeyColumns + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyColumns]?.Value; + set => this.Set((int)WixCustomTableTupleFields.KeyColumns, value); + } + + public string Categories + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.Categories]?.Value; + set => this.Set((int)WixCustomTableTupleFields.Categories, value); + } + + public string Sets + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.Sets]?.Value; + set => this.Set((int)WixCustomTableTupleFields.Sets, value); + } + + public string Descriptions + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.Descriptions]?.Value; + set => this.Set((int)WixCustomTableTupleFields.Descriptions, value); + } + + public string Modularizations + { + get => (string)this.Fields[(int)WixCustomTableTupleFields.Modularizations]?.Value; + set => this.Set((int)WixCustomTableTupleFields.Modularizations, value); + } + + public int BootstrapperApplicationData + { + get => (int)this.Fields[(int)WixCustomTableTupleFields.BootstrapperApplicationData]?.Value; + set => this.Set((int)WixCustomTableTupleFields.BootstrapperApplicationData, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs new file mode 100644 index 00000000..68f327f4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixDeltaPatchFile = new IntermediateTupleDefinition( + TupleDefinitionType.WixDeltaPatchFile, + new[] + { + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(WixDeltaPatchFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixDeltaPatchFileTupleFields + { + File_, + RetainLengths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + SymbolPaths, + } + + public class WixDeltaPatchFileTuple : IntermediateTuple + { + public WixDeltaPatchFileTuple() : base(TupleDefinitions.WixDeltaPatchFile, null, null) + { + } + + public WixDeltaPatchFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchFile, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDeltaPatchFileTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.File_]?.Value; + set => this.Set((int)WixDeltaPatchFileTupleFields.File_, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]?.Value; + set => this.Set((int)WixDeltaPatchFileTupleFields.RetainLengths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreOffsets]?.Value; + set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreLengths]?.Value; + set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainOffsets]?.Value; + set => this.Set((int)WixDeltaPatchFileTupleFields.RetainOffsets, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.SymbolPaths]?.Value; + set => this.Set((int)WixDeltaPatchFileTupleFields.SymbolPaths, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs new file mode 100644 index 00000000..39747be5 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs @@ -0,0 +1,75 @@ +// 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. + +using System; + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixDeltaPatchSymbolPaths = new IntermediateTupleDefinition( + TupleDefinitionType.WixDeltaPatchSymbolPaths, + new[] + { + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(WixDeltaPatchSymbolPathsTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixDeltaPatchSymbolPathsTupleFields + { + Id, + Type, + SymbolPaths, + } + + /// + /// The types that the WixDeltaPatchSymbolPaths table can hold. + /// + /// The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type. + public enum SymbolPathType + { + File, + Component, + Directory, + Media, + Product + }; + + public class WixDeltaPatchSymbolPathsTuple : IntermediateTuple + { + public WixDeltaPatchSymbolPathsTuple() : base(TupleDefinitions.WixDeltaPatchSymbolPaths, null, null) + { + } + + public WixDeltaPatchSymbolPathsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDeltaPatchSymbolPathsTupleFields index] => this.Fields[(int)index]; + + public string Id + { + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Id]?.Value; + set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Id, value); + } + + public SymbolPathType Type + { + get => (SymbolPathType)Enum.Parse(typeof(SymbolPathType), (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Type]?.Value, true); + set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Type, value.ToString()); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths]?.Value; + set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs b/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs new file mode 100644 index 00000000..ce706dc4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixDirectory = new IntermediateTupleDefinition( + TupleDefinitionType.WixDirectory, + new[] + { + new IntermediateFieldDefinition(nameof(WixDirectoryTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDirectoryTupleFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), + }, + typeof(WixDirectoryTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixDirectoryTupleFields + { + Directory_, + ComponentGuidGenerationSeed, + } + + public class WixDirectoryTuple : IntermediateTuple + { + public WixDirectoryTuple() : base(TupleDefinitions.WixDirectory, null, null) + { + } + + public WixDirectoryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDirectory, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDirectoryTupleFields index] => this.Fields[(int)index]; + + public string Directory_ + { + get => (string)this.Fields[(int)WixDirectoryTupleFields.Directory_]?.Value; + set => this.Set((int)WixDirectoryTupleFields.Directory_, value); + } + + public string ComponentGuidGenerationSeed + { + get => (string)this.Fields[(int)WixDirectoryTupleFields.ComponentGuidGenerationSeed]?.Value; + set => this.Set((int)WixDirectoryTupleFields.ComponentGuidGenerationSeed, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs new file mode 100644 index 00000000..cc80a5d9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixEnsureTable = new IntermediateTupleDefinition( + TupleDefinitionType.WixEnsureTable, + new[] + { + new IntermediateFieldDefinition(nameof(WixEnsureTableTupleFields.Table), IntermediateFieldType.String), + }, + typeof(WixEnsureTableTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixEnsureTableTupleFields + { + Table, + } + + public class WixEnsureTableTuple : IntermediateTuple + { + public WixEnsureTableTuple() : base(TupleDefinitions.WixEnsureTable, null, null) + { + } + + public WixEnsureTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixEnsureTable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixEnsureTableTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixEnsureTableTupleFields.Table]?.Value; + set => this.Set((int)WixEnsureTableTupleFields.Table, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs new file mode 100644 index 00000000..20e88ce8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixFeatureGroup = new IntermediateTupleDefinition( + TupleDefinitionType.WixFeatureGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixFeatureGroupTupleFields.WixFeatureGroup), IntermediateFieldType.String), + }, + typeof(WixFeatureGroupTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixFeatureGroupTupleFields + { + WixFeatureGroup, + } + + public class WixFeatureGroupTuple : IntermediateTuple + { + public WixFeatureGroupTuple() : base(TupleDefinitions.WixFeatureGroup, null, null) + { + } + + public WixFeatureGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFeatureGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFeatureGroupTupleFields index] => this.Fields[(int)index]; + + public string WixFeatureGroup + { + get => (string)this.Fields[(int)WixFeatureGroupTupleFields.WixFeatureGroup]?.Value; + set => this.Set((int)WixFeatureGroupTupleFields.WixFeatureGroup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs new file mode 100644 index 00000000..23524b1d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixFeatureModules = new IntermediateTupleDefinition( + TupleDefinitionType.WixFeatureModules, + new[] + { + new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.WixMerge_), IntermediateFieldType.String), + }, + typeof(WixFeatureModulesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixFeatureModulesTupleFields + { + Feature_, + WixMerge_, + } + + public class WixFeatureModulesTuple : IntermediateTuple + { + public WixFeatureModulesTuple() : base(TupleDefinitions.WixFeatureModules, null, null) + { + } + + public WixFeatureModulesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFeatureModules, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFeatureModulesTupleFields index] => this.Fields[(int)index]; + + public string Feature_ + { + get => (string)this.Fields[(int)WixFeatureModulesTupleFields.Feature_]?.Value; + set => this.Set((int)WixFeatureModulesTupleFields.Feature_, value); + } + + public string WixMerge_ + { + get => (string)this.Fields[(int)WixFeatureModulesTupleFields.WixMerge_]?.Value; + set => this.Set((int)WixFeatureModulesTupleFields.WixMerge_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs new file mode 100644 index 00000000..62d19ec8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixFileSearch = new IntermediateTupleDefinition( + TupleDefinitionType.WixFileSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixFileSearchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixFileSearchTupleFields + { + WixSearch_, + Path, + MinVersion, + MaxVersion, + MinSize, + MaxSize, + MinDate, + MaxDate, + Languages, + Attributes, + } + + public class WixFileSearchTuple : IntermediateTuple + { + public WixFileSearchTuple() : base(TupleDefinitions.WixFileSearch, null, null) + { + } + + public WixFileSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFileSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFileSearchTupleFields index] => this.Fields[(int)index]; + + public string WixSearch_ + { + get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearch_]?.Value; + set => this.Set((int)WixFileSearchTupleFields.WixSearch_, value); + } + + public string Path + { + get => (string)this.Fields[(int)WixFileSearchTupleFields.Path]?.Value; + set => this.Set((int)WixFileSearchTupleFields.Path, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)WixFileSearchTupleFields.MinVersion]?.Value; + set => this.Set((int)WixFileSearchTupleFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)WixFileSearchTupleFields.MaxVersion]?.Value; + set => this.Set((int)WixFileSearchTupleFields.MaxVersion, value); + } + + public int MinSize + { + get => (int)this.Fields[(int)WixFileSearchTupleFields.MinSize]?.Value; + set => this.Set((int)WixFileSearchTupleFields.MinSize, value); + } + + public int MaxSize + { + get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxSize]?.Value; + set => this.Set((int)WixFileSearchTupleFields.MaxSize, value); + } + + public int MinDate + { + get => (int)this.Fields[(int)WixFileSearchTupleFields.MinDate]?.Value; + set => this.Set((int)WixFileSearchTupleFields.MinDate, value); + } + + public int MaxDate + { + get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxDate]?.Value; + set => this.Set((int)WixFileSearchTupleFields.MaxDate, value); + } + + public string Languages + { + get => (string)this.Fields[(int)WixFileSearchTupleFields.Languages]?.Value; + set => this.Set((int)WixFileSearchTupleFields.Languages, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixFileSearchTupleFields.Attributes]?.Value; + set => this.Set((int)WixFileSearchTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFileTuple.cs b/src/WixToolset.Data/Tuples/WixFileTuple.cs new file mode 100644 index 00000000..5ffc5d7f --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFileTuple.cs @@ -0,0 +1,170 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixFile = new IntermediateTupleDefinition( + TupleDefinitionType.WixFile, + new[] + { + new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyManifest), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyApplication), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.Source), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.ProcessorArchitecture), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchGroup), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.DeltaPatchHeaderSource), IntermediateFieldType.String), + }, + typeof(WixFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixFileTupleFields + { + File_, + AssemblyType, + File_AssemblyManifest, + File_AssemblyApplication, + Directory_, + DiskId, + Source, + ProcessorArchitecture, + PatchGroup, + Attributes, + PatchAttributes, + DeltaPatchHeaderSource, + } + + /// + /// Every file row has an assembly type. + /// + public enum FileAssemblyType + { + /// File is not an assembly. + NotAnAssembly, + + /// File is a Common Language Runtime Assembly. + DotNetAssembly, + + /// File is Win32 SxS assembly. + Win32Assembly, + } + + /// + /// PatchAttribute values + /// + [Flags] + public enum PatchAttributeType + { + None = 0, + + /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. + Ignore = 1, + + /// Set if the entire file should be installed rather than creating a binary patch. + IncludeWholeFile = 2, + + /// Set to indicate that the patch is non-vital. + AllowIgnoreOnError = 4, + + /// Allowed bits. + Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError + } + + public class WixFileTuple : IntermediateTuple + { + public WixFileTuple() : base(TupleDefinitions.WixFile, null, null) + { + } + + public WixFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFile, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFileTupleFields index] => this.Fields[(int)index]; + + public string File_ + { + get => (string)this.Fields[(int)WixFileTupleFields.File_]?.Value; + set => this.Set((int)WixFileTupleFields.File_, value); + } + + public FileAssemblyType AssemblyType + { + get => (FileAssemblyType)(int)this.Fields[(int)WixFileTupleFields.AssemblyType]?.Value; + set => this.Set((int)WixFileTupleFields.AssemblyType, (int)value); + } + + public string File_AssemblyManifest + { + get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyManifest]?.Value; + set => this.Set((int)WixFileTupleFields.File_AssemblyManifest, value); + } + + public string File_AssemblyApplication + { + get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyApplication]?.Value; + set => this.Set((int)WixFileTupleFields.File_AssemblyApplication, value); + } + + public string Directory_ + { + get => (string)this.Fields[(int)WixFileTupleFields.Directory_]?.Value; + set => this.Set((int)WixFileTupleFields.Directory_, value); + } + + public int DiskId + { + get => (int)this.Fields[(int)WixFileTupleFields.DiskId]?.Value; + set => this.Set((int)WixFileTupleFields.DiskId, value); + } + + public string Source + { + get => (string)this.Fields[(int)WixFileTupleFields.Source]?.Value; + set => this.Set((int)WixFileTupleFields.Source, value); + } + + public string ProcessorArchitecture + { + get => (string)this.Fields[(int)WixFileTupleFields.ProcessorArchitecture]?.Value; + set => this.Set((int)WixFileTupleFields.ProcessorArchitecture, value); + } + + public int PatchGroup + { + get => (int)this.Fields[(int)WixFileTupleFields.PatchGroup]?.Value; + set => this.Set((int)WixFileTupleFields.PatchGroup, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixFileTupleFields.Attributes]?.Value; + set => this.Set((int)WixFileTupleFields.Attributes, value); + } + + public PatchAttributeType PatchAttributes + { + get => (PatchAttributeType)(int)this.Fields[(int)WixFileTupleFields.PatchAttributes]?.Value; + set => this.Set((int)WixFileTupleFields.PatchAttributes, (int)value); + } + + public string DeltaPatchHeaderSource + { + get => (string)this.Fields[(int)WixFileTupleFields.DeltaPatchHeaderSource]?.Value; + set => this.Set((int)WixFileTupleFields.DeltaPatchHeaderSource, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs new file mode 100644 index 00000000..a5a59962 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixFragment = new IntermediateTupleDefinition( + TupleDefinitionType.WixFragment, + new[] + { + new IntermediateFieldDefinition(nameof(WixFragmentTupleFields.WixFragment), IntermediateFieldType.String), + }, + typeof(WixFragmentTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixFragmentTupleFields + { + WixFragment, + } + + public class WixFragmentTuple : IntermediateTuple + { + public WixFragmentTuple() : base(TupleDefinitions.WixFragment, null, null) + { + } + + public WixFragmentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFragment, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFragmentTupleFields index] => this.Fields[(int)index]; + + public string WixFragment + { + get => (string)this.Fields[(int)WixFragmentTupleFields.WixFragment]?.Value; + set => this.Set((int)WixFragmentTupleFields.WixFragment, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixGroupTuple.cs b/src/WixToolset.Data/Tuples/WixGroupTuple.cs new file mode 100644 index 00000000..be6bf7a4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixGroupTuple.cs @@ -0,0 +1,70 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixGroup = new IntermediateTupleDefinition( + TupleDefinitionType.WixGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ParentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ParentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ChildId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ChildType), IntermediateFieldType.String), + }, + typeof(WixGroupTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixGroupTupleFields + { + ParentId, + ParentType, + ChildId, + ChildType, + } + + public class WixGroupTuple : IntermediateTuple + { + public WixGroupTuple() : base(TupleDefinitions.WixGroup, null, null) + { + } + + public WixGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixGroupTupleFields index] => this.Fields[(int)index]; + + public string ParentId + { + get => (string)this.Fields[(int)WixGroupTupleFields.ParentId]?.Value; + set => this.Set((int)WixGroupTupleFields.ParentId, value); + } + + public ComplexReferenceParentType ParentType + { + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupTupleFields.ParentType]?.Value, true); + set => this.Set((int)WixGroupTupleFields.ParentType, value.ToString()); + } + + public string ChildId + { + get => (string)this.Fields[(int)WixGroupTupleFields.ChildId]?.Value; + set => this.Set((int)WixGroupTupleFields.ChildId, value); + } + + public ComplexReferenceChildType ChildType + { + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupTupleFields.ChildType]?.Value, true); + set => this.Set((int)WixGroupTupleFields.ChildType, value.ToString()); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs new file mode 100644 index 00000000..b2fd18ca --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixInstanceComponent = new IntermediateTupleDefinition( + TupleDefinitionType.WixInstanceComponent, + new[] + { + new IntermediateFieldDefinition(nameof(WixInstanceComponentTupleFields.Component_), IntermediateFieldType.String), + }, + typeof(WixInstanceComponentTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixInstanceComponentTupleFields + { + Component_, + } + + public class WixInstanceComponentTuple : IntermediateTuple + { + public WixInstanceComponentTuple() : base(TupleDefinitions.WixInstanceComponent, null, null) + { + } + + public WixInstanceComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixInstanceComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[WixInstanceComponentTupleFields index] => this.Fields[(int)index]; + + public string Component_ + { + get => (string)this.Fields[(int)WixInstanceComponentTupleFields.Component_]?.Value; + set => this.Set((int)WixInstanceComponentTupleFields.Component_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs new file mode 100644 index 00000000..4f152ac6 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixInstanceTransforms = new IntermediateTupleDefinition( + TupleDefinitionType.WixInstanceTransforms, + new[] + { + new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.PropertyId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.UpgradeCode), IntermediateFieldType.String), + }, + typeof(WixInstanceTransformsTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixInstanceTransformsTupleFields + { + Id, + PropertyId, + ProductCode, + ProductName, + UpgradeCode, + } + + public class WixInstanceTransformsTuple : IntermediateTuple + { + public WixInstanceTransformsTuple() : base(TupleDefinitions.WixInstanceTransforms, null, null) + { + } + + public WixInstanceTransformsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixInstanceTransforms, sourceLineNumber, id) + { + } + + public IntermediateField this[WixInstanceTransformsTupleFields index] => this.Fields[(int)index]; + + public string Id + { + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.Id]?.Value; + set => this.Set((int)WixInstanceTransformsTupleFields.Id, value); + } + + public string PropertyId + { + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.PropertyId]?.Value; + set => this.Set((int)WixInstanceTransformsTupleFields.PropertyId, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductCode]?.Value; + set => this.Set((int)WixInstanceTransformsTupleFields.ProductCode, value); + } + + public string ProductName + { + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductName]?.Value; + set => this.Set((int)WixInstanceTransformsTupleFields.ProductName, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.UpgradeCode]?.Value; + set => this.Set((int)WixInstanceTransformsTupleFields.UpgradeCode, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs new file mode 100644 index 00000000..bc8d2515 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs @@ -0,0 +1,86 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixMediaTemplate = new IntermediateTupleDefinition( + TupleDefinitionType.WixMediaTemplate, + new[] + { + new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CabinetTemplate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), + }, + typeof(WixMediaTemplateTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixMediaTemplateTupleFields + { + CabinetTemplate, + CompressionLevel, + DiskPrompt, + VolumeLabel, + MaximumUncompressedMediaSize, + MaximumCabinetSizeForLargeFileSplitting, + } + + public class WixMediaTemplateTuple : IntermediateTuple + { + public WixMediaTemplateTuple() : base(TupleDefinitions.WixMediaTemplate, null, null) + { + } + + public WixMediaTemplateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMediaTemplate, sourceLineNumber, id) + { + } + + public IntermediateField this[WixMediaTemplateTupleFields index] => this.Fields[(int)index]; + + public string CabinetTemplate + { + get => (string)this.Fields[(int)WixMediaTemplateTupleFields.CabinetTemplate]?.Value; + set => this.Set((int)WixMediaTemplateTupleFields.CabinetTemplate, value); + } + + public CompressionLevel CompressionLevel + { + get => (CompressionLevel)Enum.Parse(typeof(CompressionLevel), (string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]?.Value, true); + set => this.Set((int)WixMediaTupleFields.CompressionLevel, value.ToString()); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)WixMediaTemplateTupleFields.DiskPrompt]?.Value; + set => this.Set((int)WixMediaTemplateTupleFields.DiskPrompt, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)WixMediaTemplateTupleFields.VolumeLabel]?.Value; + set => this.Set((int)WixMediaTemplateTupleFields.VolumeLabel, value); + } + + public int MaximumUncompressedMediaSize + { + get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize]?.Value; + set => this.Set((int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize, value); + } + + public int MaximumCabinetSizeForLargeFileSplitting + { + get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting]?.Value; + set => this.Set((int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMediaTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTuple.cs new file mode 100644 index 00000000..4da11de1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixMediaTuple.cs @@ -0,0 +1,62 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixMedia = new IntermediateTupleDefinition( + TupleDefinitionType.WixMedia, + new[] + { + new IntermediateFieldDefinition(nameof(WixMediaTupleFields.DiskId_), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTupleFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTupleFields.Layout), IntermediateFieldType.String), + }, + typeof(WixMediaTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixMediaTupleFields + { + DiskId_, + CompressionLevel, + Layout, + } + + public class WixMediaTuple : IntermediateTuple + { + public WixMediaTuple() : base(TupleDefinitions.WixMedia, null, null) + { + } + + public WixMediaTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMedia, sourceLineNumber, id) + { + } + + public IntermediateField this[WixMediaTupleFields index] => this.Fields[(int)index]; + + public int DiskId_ + { + get => (int)this.Fields[(int)WixMediaTupleFields.DiskId_]?.Value; + set => this.Set((int)WixMediaTupleFields.DiskId_, value); + } + + public CompressionLevel? CompressionLevel + { + get => Enum.TryParse((string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]?.Value, true, out CompressionLevel value) ? value : (CompressionLevel?)null; + set => this.Set((int)WixMediaTupleFields.CompressionLevel, value?.ToString()); + } + + public string Layout + { + get => (string)this.Fields[(int)WixMediaTupleFields.Layout]?.Value; + set => this.Set((int)WixMediaTupleFields.Layout, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs new file mode 100644 index 00000000..602acc0e --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixMergeTuple.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixMerge = new IntermediateTupleDefinition( + TupleDefinitionType.WixMerge, + new[] + { + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.WixMerge), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FileCompression), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.ConfigurationData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Feature_), IntermediateFieldType.String), + }, + typeof(WixMergeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixMergeTupleFields + { + WixMerge, + Language, + Directory_, + SourceFile, + DiskId, + FileCompression, + ConfigurationData, + Feature_, + } + + public class WixMergeTuple : IntermediateTuple + { + public WixMergeTuple() : base(TupleDefinitions.WixMerge, null, null) + { + } + + public WixMergeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMerge, sourceLineNumber, id) + { + } + + public IntermediateField this[WixMergeTupleFields index] => this.Fields[(int)index]; + + public string WixMerge + { + get => (string)this.Fields[(int)WixMergeTupleFields.WixMerge]?.Value; + set => this.Set((int)WixMergeTupleFields.WixMerge, value); + } + + public int Language + { + get => (int)this.Fields[(int)WixMergeTupleFields.Language]?.Value; + set => this.Set((int)WixMergeTupleFields.Language, value); + } + + public string Directory_ + { + get => (string)this.Fields[(int)WixMergeTupleFields.Directory_]?.Value; + set => this.Set((int)WixMergeTupleFields.Directory_, value); + } + + public string SourceFile + { + get => (string)this.Fields[(int)WixMergeTupleFields.SourceFile]?.Value; + set => this.Set((int)WixMergeTupleFields.SourceFile, value); + } + + public int DiskId + { + get => (int)this.Fields[(int)WixMergeTupleFields.DiskId]?.Value; + set => this.Set((int)WixMergeTupleFields.DiskId, value); + } + + public int FileCompression + { + get => (int)this.Fields[(int)WixMergeTupleFields.FileCompression]?.Value; + set => this.Set((int)WixMergeTupleFields.FileCompression, value); + } + + public string ConfigurationData + { + get => (string)this.Fields[(int)WixMergeTupleFields.ConfigurationData]?.Value; + set => this.Set((int)WixMergeTupleFields.ConfigurationData, value); + } + + public string Feature_ + { + get => (string)this.Fields[(int)WixMergeTupleFields.Feature_]?.Value; + set => this.Set((int)WixMergeTupleFields.Feature_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs new file mode 100644 index 00000000..fde295c1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixOrdering = new IntermediateTupleDefinition( + TupleDefinitionType.WixOrdering, + new[] + { + new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnId_), IntermediateFieldType.String), + }, + typeof(WixOrderingTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixOrderingTupleFields + { + ItemType, + ItemId_, + DependsOnType, + DependsOnId_, + } + + public class WixOrderingTuple : IntermediateTuple + { + public WixOrderingTuple() : base(TupleDefinitions.WixOrdering, null, null) + { + } + + public WixOrderingTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixOrdering, sourceLineNumber, id) + { + } + + public IntermediateField this[WixOrderingTupleFields index] => this.Fields[(int)index]; + + public string ItemType + { + get => (string)this.Fields[(int)WixOrderingTupleFields.ItemType]?.Value; + set => this.Set((int)WixOrderingTupleFields.ItemType, value); + } + + public string ItemId_ + { + get => (string)this.Fields[(int)WixOrderingTupleFields.ItemId_]?.Value; + set => this.Set((int)WixOrderingTupleFields.ItemId_, value); + } + + public string DependsOnType + { + get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnType]?.Value; + set => this.Set((int)WixOrderingTupleFields.DependsOnType, value); + } + + public string DependsOnId_ + { + get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnId_]?.Value; + set => this.Set((int)WixOrderingTupleFields.DependsOnId_, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs b/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs new file mode 100644 index 00000000..03948efb --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPackageFeatureInfo = new IntermediateTupleDefinition( + TupleDefinitionType.WixPackageFeatureInfo, + new[] + { + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Package), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Feature), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Size), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Display), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Level), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Directory), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Attributes), IntermediateFieldType.String), + }, + typeof(WixPackageFeatureInfoTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPackageFeatureInfoTupleFields + { + Package, + Feature, + Size, + Parent, + Title, + Description, + Display, + Level, + Directory, + Attributes, + } + + public class WixPackageFeatureInfoTuple : IntermediateTuple + { + public WixPackageFeatureInfoTuple() : base(TupleDefinitions.WixPackageFeatureInfo, null, null) + { + } + + public WixPackageFeatureInfoTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageFeatureInfo, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPackageFeatureInfoTupleFields index] => this.Fields[(int)index]; + + public string Package + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Package]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Package, value); + } + + public string Feature + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Feature]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Feature, value); + } + + public string Size + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Size]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Size, value); + } + + public string Parent + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Parent]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Parent, value); + } + + public string Title + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Title]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Title, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Description]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Description, value); + } + + public string Display + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Display]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Display, value); + } + + public string Level + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Level]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Level, value); + } + + public string Directory + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Directory]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Directory, value); + } + + public string Attributes + { + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Attributes]?.Value; + set => this.Set((int)WixPackageFeatureInfoTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs new file mode 100644 index 00000000..4823409d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs @@ -0,0 +1,180 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPackageProperties = new IntermediateTupleDefinition( + TupleDefinitionType.WixPackageProperties, + new[] + { + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Package), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Vital), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DownloadSize), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageSize), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstalledSize), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Permanent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Compressed), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayInternalUI), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstallCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Cache), IntermediateFieldType.String), + }, + typeof(WixPackagePropertiesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPackagePropertiesTupleFields + { + Package, + Vital, + DisplayName, + Description, + DownloadSize, + PackageSize, + InstalledSize, + PackageType, + Permanent, + LogPathVariable, + RollbackLogPathVariable, + Compressed, + DisplayInternalUI, + ProductCode, + UpgradeCode, + Version, + InstallCondition, + Cache, + } + + public class WixPackagePropertiesTuple : IntermediateTuple + { + public WixPackagePropertiesTuple() : base(TupleDefinitions.WixPackageProperties, null, null) + { + } + + public WixPackagePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageProperties, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPackagePropertiesTupleFields index] => this.Fields[(int)index]; + + public string Package + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Package]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.Package, value); + } + + public string Vital + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Vital]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.Vital, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayName]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Description]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.Description, value); + } + + public string DownloadSize + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DownloadSize]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.DownloadSize, value); + } + + public string PackageSize + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageSize]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.PackageSize, value); + } + + public string InstalledSize + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstalledSize]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.InstalledSize, value); + } + + public string PackageType + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageType]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.PackageType, value); + } + + public string Permanent + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Permanent]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.Permanent, value); + } + + public string LogPathVariable + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.LogPathVariable]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.LogPathVariable, value); + } + + public string RollbackLogPathVariable + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.RollbackLogPathVariable]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.RollbackLogPathVariable, value); + } + + public string Compressed + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Compressed]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.Compressed, value); + } + + public string DisplayInternalUI + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayInternalUI]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.DisplayInternalUI, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.ProductCode]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.ProductCode, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.UpgradeCode]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.UpgradeCode, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Version]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.Version, value); + } + + public string InstallCondition + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstallCondition]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.InstallCondition, value); + } + + public string Cache + { + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Cache]?.Value; + set => this.Set((int)WixPackagePropertiesTupleFields.Cache, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs new file mode 100644 index 00000000..0610adac --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPatchBaseline = new IntermediateTupleDefinition( + TupleDefinitionType.WixPatchBaseline, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.WixPatchBaseline), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.ValidationFlags), IntermediateFieldType.Number), + }, + typeof(WixPatchBaselineTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPatchBaselineTupleFields + { + WixPatchBaseline, + DiskId, + ValidationFlags, + } + + public class WixPatchBaselineTuple : IntermediateTuple + { + public WixPatchBaselineTuple() : base(TupleDefinitions.WixPatchBaseline, null, null) + { + } + + public WixPatchBaselineTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchBaseline, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchBaselineTupleFields index] => this.Fields[(int)index]; + + public string WixPatchBaseline + { + get => (string)this.Fields[(int)WixPatchBaselineTupleFields.WixPatchBaseline]?.Value; + set => this.Set((int)WixPatchBaselineTupleFields.WixPatchBaseline, value); + } + + public int DiskId + { + get => (int)this.Fields[(int)WixPatchBaselineTupleFields.DiskId]?.Value; + set => this.Set((int)WixPatchBaselineTupleFields.DiskId, value); + } + + public int ValidationFlags + { + get => (int)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags]?.Value; + set => this.Set((int)WixPatchBaselineTupleFields.ValidationFlags, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs new file mode 100644 index 00000000..0683ba9d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPatchFamilyGroup = new IntermediateTupleDefinition( + TupleDefinitionType.WixPatchFamilyGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup), IntermediateFieldType.String), + }, + typeof(WixPatchFamilyGroupTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPatchFamilyGroupTupleFields + { + WixPatchFamilyGroup, + } + + public class WixPatchFamilyGroupTuple : IntermediateTuple + { + public WixPatchFamilyGroupTuple() : base(TupleDefinitions.WixPatchFamilyGroup, null, null) + { + } + + public WixPatchFamilyGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchFamilyGroupTupleFields index] => this.Fields[(int)index]; + + public string WixPatchFamilyGroup + { + get => (string)this.Fields[(int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup]?.Value; + set => this.Set((int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs new file mode 100644 index 00000000..81b9573d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPatchId = new IntermediateTupleDefinition( + TupleDefinitionType.WixPatchId, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ClientPatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), + }, + typeof(WixPatchIdTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPatchIdTupleFields + { + ProductCode, + ClientPatchId, + OptimizePatchSizeForLargeFiles, + ApiPatchingSymbolFlags, + } + + public class WixPatchIdTuple : IntermediateTuple + { + public WixPatchIdTuple() : base(TupleDefinitions.WixPatchId, null, null) + { + } + + public WixPatchIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchId, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchIdTupleFields index] => this.Fields[(int)index]; + + public string ProductCode + { + get => (string)this.Fields[(int)WixPatchIdTupleFields.ProductCode]?.Value; + set => this.Set((int)WixPatchIdTupleFields.ProductCode, value); + } + + public string ClientPatchId + { + get => (string)this.Fields[(int)WixPatchIdTupleFields.ClientPatchId]?.Value; + set => this.Set((int)WixPatchIdTupleFields.ClientPatchId, value); + } + + public int OptimizePatchSizeForLargeFiles + { + get => (int)this.Fields[(int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles]?.Value; + set => this.Set((int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles, value); + } + + public int ApiPatchingSymbolFlags + { + get => (int)this.Fields[(int)WixPatchIdTupleFields.ApiPatchingSymbolFlags]?.Value; + set => this.Set((int)WixPatchIdTupleFields.ApiPatchingSymbolFlags, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs new file mode 100644 index 00000000..c00031a5 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPatchMetadata = new IntermediateTupleDefinition( + TupleDefinitionType.WixPatchMetadata, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchMetadataTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchMetadataTupleFields.Value), IntermediateFieldType.String), + }, + typeof(WixPatchMetadataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPatchMetadataTupleFields + { + Property, + Value, + } + + public class WixPatchMetadataTuple : IntermediateTuple + { + public WixPatchMetadataTuple() : base(TupleDefinitions.WixPatchMetadata, null, null) + { + } + + public WixPatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchMetadata, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchMetadataTupleFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Property]?.Value; + set => this.Set((int)WixPatchMetadataTupleFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Value]?.Value; + set => this.Set((int)WixPatchMetadataTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs new file mode 100644 index 00000000..63528439 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPatchRef = new IntermediateTupleDefinition( + TupleDefinitionType.WixPatchRef, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchRefTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchRefTupleFields.PrimaryKeys), IntermediateFieldType.String), + }, + typeof(WixPatchRefTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPatchRefTupleFields + { + Table, + PrimaryKeys, + } + + public class WixPatchRefTuple : IntermediateTuple + { + public WixPatchRefTuple() : base(TupleDefinitions.WixPatchRef, null, null) + { + } + + public WixPatchRefTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchRef, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchRefTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixPatchRefTupleFields.Table]?.Value; + set => this.Set((int)WixPatchRefTupleFields.Table, value); + } + + public string PrimaryKeys + { + get => (string)this.Fields[(int)WixPatchRefTupleFields.PrimaryKeys]?.Value; + set => this.Set((int)WixPatchRefTupleFields.PrimaryKeys, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs new file mode 100644 index 00000000..8940c0c6 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPatchTarget = new IntermediateTupleDefinition( + TupleDefinitionType.WixPatchTarget, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchTargetTupleFields.ProductCode), IntermediateFieldType.String), + }, + typeof(WixPatchTargetTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPatchTargetTupleFields + { + ProductCode, + } + + public class WixPatchTargetTuple : IntermediateTuple + { + public WixPatchTargetTuple() : base(TupleDefinitions.WixPatchTarget, null, null) + { + } + + public WixPatchTargetTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchTarget, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchTargetTupleFields index] => this.Fields[(int)index]; + + public string ProductCode + { + get => (string)this.Fields[(int)WixPatchTargetTupleFields.ProductCode]?.Value; + set => this.Set((int)WixPatchTargetTupleFields.ProductCode, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs new file mode 100644 index 00000000..3c437a58 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixPayloadProperties = new IntermediateTupleDefinition( + TupleDefinitionType.WixPayloadProperties, + new[] + { + new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Payload), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Package), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Container), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Size), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.LayoutOnly), IntermediateFieldType.String), + }, + typeof(WixPayloadPropertiesTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPayloadPropertiesTupleFields + { + Payload, + Package, + Container, + Name, + Size, + DownloadUrl, + LayoutOnly, + } + + public class WixPayloadPropertiesTuple : IntermediateTuple + { + public WixPayloadPropertiesTuple() : base(TupleDefinitions.WixPayloadProperties, null, null) + { + } + + public WixPayloadPropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPayloadProperties, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPayloadPropertiesTupleFields index] => this.Fields[(int)index]; + + public string Payload + { + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Payload]?.Value; + set => this.Set((int)WixPayloadPropertiesTupleFields.Payload, value); + } + + public string Package + { + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Package]?.Value; + set => this.Set((int)WixPayloadPropertiesTupleFields.Package, value); + } + + public string Container + { + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Container]?.Value; + set => this.Set((int)WixPayloadPropertiesTupleFields.Container, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Name]?.Value; + set => this.Set((int)WixPayloadPropertiesTupleFields.Name, value); + } + + public string Size + { + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Size]?.Value; + set => this.Set((int)WixPayloadPropertiesTupleFields.Size, value); + } + + public string DownloadUrl + { + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.DownloadUrl]?.Value; + set => this.Set((int)WixPayloadPropertiesTupleFields.DownloadUrl, value); + } + + public string LayoutOnly + { + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.LayoutOnly]?.Value; + set => this.Set((int)WixPayloadPropertiesTupleFields.LayoutOnly, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs new file mode 100644 index 00000000..40065f55 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixProductSearch = new IntermediateTupleDefinition( + TupleDefinitionType.WixProductSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixProductSearchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixProductSearchTupleFields + { + WixSearch_, + Guid, + Attributes, + } + + public class WixProductSearchTuple : IntermediateTuple + { + public WixProductSearchTuple() : base(TupleDefinitions.WixProductSearch, null, null) + { + } + + public WixProductSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixProductSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixProductSearchTupleFields index] => this.Fields[(int)index]; + + public string WixSearch_ + { + get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearch_]?.Value; + set => this.Set((int)WixProductSearchTupleFields.WixSearch_, value); + } + + public string Guid + { + get => (string)this.Fields[(int)WixProductSearchTupleFields.Guid]?.Value; + set => this.Set((int)WixProductSearchTupleFields.Guid, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixProductSearchTupleFields.Attributes]?.Value; + set => this.Set((int)WixProductSearchTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs new file mode 100644 index 00000000..74e17d18 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixProperty = new IntermediateTupleDefinition( + TupleDefinitionType.WixProperty, + new[] + { + new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Property_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Admin), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Secure), IntermediateFieldType.Bool), + }, + typeof(WixPropertyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixPropertyTupleFields + { + Property_, + Admin, + Hidden, + Secure, + } + + public class WixPropertyTuple : IntermediateTuple + { + public WixPropertyTuple() : base(TupleDefinitions.WixProperty, null, null) + { + } + + public WixPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPropertyTupleFields index] => this.Fields[(int)index]; + + public string Property_ + { + get => (string)this.Fields[(int)WixPropertyTupleFields.Property_]?.Value; + set => this.Set((int)WixPropertyTupleFields.Property_, value); + } + + public bool Admin + { + get => (bool)this.Fields[(int)WixPropertyTupleFields.Admin]?.Value; + set => this.Set((int)WixPropertyTupleFields.Admin, value); + } + + public bool Hidden + { + get => (bool)this.Fields[(int)WixPropertyTupleFields.Hidden]?.Value; + set => this.Set((int)WixPropertyTupleFields.Hidden, value); + } + + public bool Secure + { + get => (bool)this.Fields[(int)WixPropertyTupleFields.Secure]?.Value; + set => this.Set((int)WixPropertyTupleFields.Secure, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs new file mode 100644 index 00000000..c23bf957 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixRegistrySearch = new IntermediateTupleDefinition( + TupleDefinitionType.WixRegistrySearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixRegistrySearchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixRegistrySearchTupleFields + { + WixSearch_, + Root, + Key, + Value, + Attributes, + } + + public class WixRegistrySearchTuple : IntermediateTuple + { + public WixRegistrySearchTuple() : base(TupleDefinitions.WixRegistrySearch, null, null) + { + } + + public WixRegistrySearchTuple(SourceLineNumber sourceLineNumber , Identifier id = null) : base(TupleDefinitions.WixRegistrySearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixRegistrySearchTupleFields index] => this.Fields[(int)index]; + + public string WixSearch_ + { + get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearch_]?.Value; + set => this.Set((int)WixRegistrySearchTupleFields.WixSearch_, value); + } + + public int Root + { + get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Root]?.Value; + set => this.Set((int)WixRegistrySearchTupleFields.Root, value); + } + + public string Key + { + get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Key]?.Value; + set => this.Set((int)WixRegistrySearchTupleFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Value]?.Value; + set => this.Set((int)WixRegistrySearchTupleFields.Value, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Attributes]?.Value; + set => this.Set((int)WixRegistrySearchTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs new file mode 100644 index 00000000..491e9aa1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixRelatedBundle = new IntermediateTupleDefinition( + TupleDefinitionType.WixRelatedBundle, + new[] + { + new IntermediateFieldDefinition(nameof(WixRelatedBundleTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRelatedBundleTupleFields.Action), IntermediateFieldType.Number), + }, + typeof(WixRelatedBundleTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixRelatedBundleTupleFields + { + Id, + Action, + } + + public class WixRelatedBundleTuple : IntermediateTuple + { + public WixRelatedBundleTuple() : base(TupleDefinitions.WixRelatedBundle, null, null) + { + } + + public WixRelatedBundleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixRelatedBundle, sourceLineNumber, id) + { + } + + public IntermediateField this[WixRelatedBundleTupleFields index] => this.Fields[(int)index]; + + public string Id + { + get => (string)this.Fields[(int)WixRelatedBundleTupleFields.Id]?.Value; + set => this.Set((int)WixRelatedBundleTupleFields.Id, value); + } + + public int Action + { + get => (int)this.Fields[(int)WixRelatedBundleTupleFields.Action]?.Value; + set => this.Set((int)WixRelatedBundleTupleFields.Action, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs new file mode 100644 index 00000000..05021a11 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixSearchRelation = new IntermediateTupleDefinition( + TupleDefinitionType.WixSearchRelation, + new[] + { + new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.ParentId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixSearchRelationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixSearchRelationTupleFields + { + WixSearch_, + ParentId_, + Attributes, + } + + public class WixSearchRelationTuple : IntermediateTuple + { + public WixSearchRelationTuple() : base(TupleDefinitions.WixSearchRelation, null, null) + { + } + + public WixSearchRelationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSearchRelation, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSearchRelationTupleFields index] => this.Fields[(int)index]; + + public string WixSearch_ + { + get => (string)this.Fields[(int)WixSearchRelationTupleFields.WixSearch_]?.Value; + set => this.Set((int)WixSearchRelationTupleFields.WixSearch_, value); + } + + public string ParentId_ + { + get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentId_]?.Value; + set => this.Set((int)WixSearchRelationTupleFields.ParentId_, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixSearchRelationTupleFields.Attributes]?.Value; + set => this.Set((int)WixSearchRelationTupleFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSearchTuple.cs b/src/WixToolset.Data/Tuples/WixSearchTuple.cs new file mode 100644 index 00000000..887a7b0d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSearchTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixSearch = new IntermediateTupleDefinition( + TupleDefinitionType.WixSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixSearchTupleFields.WixSearch), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Variable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Condition), IntermediateFieldType.String), + }, + typeof(WixSearchTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixSearchTupleFields + { + WixSearch, + Variable, + Condition, + } + + public class WixSearchTuple : IntermediateTuple + { + public WixSearchTuple() : base(TupleDefinitions.WixSearch, null, null) + { + } + + public WixSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSearchTupleFields index] => this.Fields[(int)index]; + + public string WixSearch + { + get => (string)this.Fields[(int)WixSearchTupleFields.WixSearch]?.Value; + set => this.Set((int)WixSearchTupleFields.WixSearch, value); + } + + public string Variable + { + get => (string)this.Fields[(int)WixSearchTupleFields.Variable]?.Value; + set => this.Set((int)WixSearchTupleFields.Variable, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixSearchTupleFields.Condition]?.Value; + set => this.Set((int)WixSearchTupleFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs new file mode 100644 index 00000000..5641f2b3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixSimpleReference = new IntermediateTupleDefinition( + TupleDefinitionType.WixSimpleReference, + new[] + { + new IntermediateFieldDefinition(nameof(WixSimpleReferenceTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSimpleReferenceTupleFields.PrimaryKeys), IntermediateFieldType.String), + }, + typeof(WixSimpleReferenceTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixSimpleReferenceTupleFields + { + Table, + PrimaryKeys, + } + + public class WixSimpleReferenceTuple : IntermediateTuple + { + public WixSimpleReferenceTuple() : base(TupleDefinitions.WixSimpleReference, null, null) + { + } + + public WixSimpleReferenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSimpleReference, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSimpleReferenceTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.Table]?.Value; + set => this.Set((int)WixSimpleReferenceTupleFields.Table, value); + } + + public string PrimaryKeys + { + get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.PrimaryKeys]?.Value; + set => this.Set((int)WixSimpleReferenceTupleFields.PrimaryKeys, value); + } + + /// + /// Gets the symbolic name. + /// + /// Symbolic name. + public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs new file mode 100644 index 00000000..ad8b443e --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixSuppressAction = new IntermediateTupleDefinition( + TupleDefinitionType.WixSuppressAction, + new[] + { + new IntermediateFieldDefinition(nameof(WixSuppressActionTupleFields.SequenceTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSuppressActionTupleFields.Action), IntermediateFieldType.String), + }, + typeof(WixSuppressActionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixSuppressActionTupleFields + { + SequenceTable, + Action, + } + + public class WixSuppressActionTuple : IntermediateTuple + { + public WixSuppressActionTuple() : base(TupleDefinitions.WixSuppressAction, null, null) + { + } + + public WixSuppressActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSuppressAction, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSuppressActionTupleFields index] => this.Fields[(int)index]; + + public string SequenceTable + { + get => (string)this.Fields[(int)WixSuppressActionTupleFields.SequenceTable]?.Value; + set => this.Set((int)WixSuppressActionTupleFields.SequenceTable, value); + } + + public string Action + { + get => (string)this.Fields[(int)WixSuppressActionTupleFields.Action]?.Value; + set => this.Set((int)WixSuppressActionTupleFields.Action, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs new file mode 100644 index 00000000..c6f42eac --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixSuppressModularization = new IntermediateTupleDefinition( + TupleDefinitionType.WixSuppressModularization, + new[] + { + new IntermediateFieldDefinition(nameof(WixSuppressModularizationTupleFields.WixSuppressModularization), IntermediateFieldType.String), + }, + typeof(WixSuppressModularizationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixSuppressModularizationTupleFields + { + WixSuppressModularization, + } + + public class WixSuppressModularizationTuple : IntermediateTuple + { + public WixSuppressModularizationTuple() : base(TupleDefinitions.WixSuppressModularization, null, null) + { + } + + public WixSuppressModularizationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSuppressModularization, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSuppressModularizationTupleFields index] => this.Fields[(int)index]; + + public string WixSuppressModularization + { + get => (string)this.Fields[(int)WixSuppressModularizationTupleFields.WixSuppressModularization]?.Value; + set => this.Set((int)WixSuppressModularizationTupleFields.WixSuppressModularization, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixUITuple.cs b/src/WixToolset.Data/Tuples/WixUITuple.cs new file mode 100644 index 00000000..99e19300 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixUITuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixUI = new IntermediateTupleDefinition( + TupleDefinitionType.WixUI, + new[] + { + new IntermediateFieldDefinition(nameof(WixUITupleFields.WixUI), IntermediateFieldType.String), + }, + typeof(WixUITuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixUITupleFields + { + WixUI, + } + + public class WixUITuple : IntermediateTuple + { + public WixUITuple() : base(TupleDefinitions.WixUI, null, null) + { + } + + public WixUITuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixUI, sourceLineNumber, id) + { + } + + public IntermediateField this[WixUITupleFields index] => this.Fields[(int)index]; + + public string WixUI + { + get => (string)this.Fields[(int)WixUITupleFields.WixUI]?.Value; + set => this.Set((int)WixUITupleFields.WixUI, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs new file mode 100644 index 00000000..64043ffe --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixUpdateRegistration = new IntermediateTupleDefinition( + TupleDefinitionType.WixUpdateRegistration, + new[] + { + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Department), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.ProductFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Classification), IntermediateFieldType.String), + }, + typeof(WixUpdateRegistrationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixUpdateRegistrationTupleFields + { + Manufacturer, + Department, + ProductFamily, + Name, + Classification, + } + + public class WixUpdateRegistrationTuple : IntermediateTuple + { + public WixUpdateRegistrationTuple() : base(TupleDefinitions.WixUpdateRegistration, null, null) + { + } + + public WixUpdateRegistrationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixUpdateRegistration, sourceLineNumber, id) + { + } + + public IntermediateField this[WixUpdateRegistrationTupleFields index] => this.Fields[(int)index]; + + public string Manufacturer + { + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Manufacturer]?.Value; + set => this.Set((int)WixUpdateRegistrationTupleFields.Manufacturer, value); + } + + public string Department + { + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Department]?.Value; + set => this.Set((int)WixUpdateRegistrationTupleFields.Department, value); + } + + public string ProductFamily + { + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.ProductFamily]?.Value; + set => this.Set((int)WixUpdateRegistrationTupleFields.ProductFamily, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Name]?.Value; + set => this.Set((int)WixUpdateRegistrationTupleFields.Name, value); + } + + public string Classification + { + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Classification]?.Value; + set => this.Set((int)WixUpdateRegistrationTupleFields.Classification, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixVariableTuple.cs b/src/WixToolset.Data/Tuples/WixVariableTuple.cs new file mode 100644 index 00000000..6b6e7354 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixVariableTuple.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixVariable = new IntermediateTupleDefinition( + TupleDefinitionType.WixVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixVariableTupleFields.WixVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Overridable), IntermediateFieldType.Bool), + }, + typeof(WixVariableTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixVariableTupleFields + { + WixVariable, + Value, + Overridable, + } + + public class WixVariableTuple : IntermediateTuple + { + public WixVariableTuple() : base(TupleDefinitions.WixVariable, null, null) + { + } + + public WixVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixVariableTupleFields index] => this.Fields[(int)index]; + + public string WixVariable + { + get => (string)this.Fields[(int)WixVariableTupleFields.WixVariable]?.Value; + set => this.Set((int)WixVariableTupleFields.WixVariable, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixVariableTupleFields.Value]?.Value; + set => this.Set((int)WixVariableTupleFields.Value, value); + } + + public bool Overridable + { + get => (bool)this.Fields[(int)WixVariableTupleFields.Overridable]?.Value; + set => this.Set((int)WixVariableTupleFields.Overridable, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs b/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs new file mode 100644 index 00000000..0e8fe8e7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs @@ -0,0 +1,55 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ComponentOriginal = new IntermediateTupleDefinition(TupleDefinitionType.Component, new[] + { + new IntermediateFieldDefinition("Guid", IntermediateFieldType.String), + new IntermediateFieldDefinition("Directory", IntermediateFieldType.String), + new IntermediateFieldDefinition("Condition", IntermediateFieldType.String), + new IntermediateFieldDefinition("KeyPath", IntermediateFieldType.String), + new IntermediateFieldDefinition("LocalOnly", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("SourceOnly", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("Optional", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("RegistryKeyPath", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("SharedDllRefCount", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("Permanent", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("OdbcDataSource", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("Transitive", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("NeverOverwrite", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("x64", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("DisableRegistryReflection", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("UnisntallOnSupersedence", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("Shared", IntermediateFieldType.Bool), + }, typeof(ComponentTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public class ComponentTupleOriginal : IntermediateTuple + { + public ComponentTupleOriginal(IntermediateTupleDefinition definition) : base(definition, null, null) + { + if (definition != TupleDefinitions.ComponentOriginal) throw new ArgumentException(nameof(definition)); + } + + public string Guid + { + get => (string)this[0]?.Value; + set => this.Set(0, value); + } + + public string Directory + { + get => (string)this[1]?.Value; + set => this.Set(1, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs b/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs new file mode 100644 index 00000000..79fb31e5 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs @@ -0,0 +1,88 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + //public static partial class TupleDefinitionNames + //{ + // public const string File = nameof(TupleDefinitionNames.File); + //} + + /* + [ + { + "File" : [ + { "Component" : "string" }, + { "Name" : "string" }, + { "Compressed" : "bool" }, + ] + }, + { + "Component": [ + { "Guid" : "string" }, + ] + }, + ] + */ + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition FileOriginal = new IntermediateTupleDefinition( + TupleDefinitionType.File, + new[] + { + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Component), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ReadOnly), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.System), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Checksum), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Compressed), IntermediateFieldType.Bool), + }, + typeof(FileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum FileTupleFieldsOriginal + { + Component, + Name, + ShortName, + Size, + Version, + Language, + ReadOnly, + Hidden, + System, + Vital, + Checksum, + Compressed, + } + + public class FileTupleOriginal : IntermediateTuple + { + public FileTupleOriginal() : base(TupleDefinitions.File, null, null) + { + } + + public FileTupleOriginal(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.File, sourceLineNumber, id) + { + } + + public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; + + public string Component + { + get => (string)this.Fields[(int)FileTupleFieldsOriginal.Component]?.Value; + set => this.Set((int)FileTupleFieldsOriginal.Component, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs b/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs new file mode 100644 index 00000000..0cb0feeb --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs @@ -0,0 +1,55 @@ +// 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. + +#if false +namespace WixToolset.Data.Tuples +{ + using System; + + //public enum TupleDefinitionType + //{ + // Component, + // File, + // MustBeFromAnExtension, + //} + + public static partial class TupleDefinitionsOriginal + { + public static readonly Version Version = new Version("4.0.0"); + + public static IntermediateTupleDefinition ByName(string name) + { + if (!Enum.TryParse(name, out TupleDefinitionType type) || type == TupleDefinitionType.MustBeFromAnExtension) + { + return null; + } + + return ByType(type); + } + + public static IntermediateTupleDefinition ByType(TupleDefinitionType type) + { + switch (type) + { + //case TupleDefinitionType.Component: + // return TupleDefinitions.Component; + + //case TupleDefinitionType.File: + // return TupleDefinitions.File; + + default: + throw new ArgumentOutOfRangeException(nameof(type)); + } + } + + //public static T CreateTuple() where T : IntermediateTuple + //{ + // if (TypeToName.TryGetValue(typeof(T), out var name)) + // { + // return ByName(name)?.CreateTuple(); + // } + + // return null; + //} + } +} +#endif diff --git a/src/WixToolset.Data/Tuples/_StreamsTuple.cs b/src/WixToolset.Data/Tuples/_StreamsTuple.cs new file mode 100644 index 00000000..1f9d75e8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_StreamsTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition _Streams = new IntermediateTupleDefinition( + TupleDefinitionType._Streams, + new[] + { + new IntermediateFieldDefinition(nameof(_StreamsTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_StreamsTupleFields.Data), IntermediateFieldType.Path), + }, + typeof(_StreamsTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum _StreamsTupleFields + { + Name, + Data, + } + + public class _StreamsTuple : IntermediateTuple + { + public _StreamsTuple() : base(TupleDefinitions._Streams, null, null) + { + } + + public _StreamsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._Streams, sourceLineNumber, id) + { + } + + public IntermediateField this[_StreamsTupleFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)_StreamsTupleFields.Name]?.Value; + set => this.Set((int)_StreamsTupleFields.Name, value); + } + + public string Data + { + get => (string)this.Fields[(int)_StreamsTupleFields.Data]?.Value; + set => this.Set((int)_StreamsTupleFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs new file mode 100644 index 00000000..4ce3b63f --- /dev/null +++ b/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition _SummaryInformation = new IntermediateTupleDefinition( + TupleDefinitionType._SummaryInformation, + new[] + { + new IntermediateFieldDefinition(nameof(_SummaryInformationTupleFields.PropertyId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(_SummaryInformationTupleFields.Value), IntermediateFieldType.String), + }, + typeof(_SummaryInformationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum _SummaryInformationTupleFields + { + PropertyId, + Value, + } + + public class _SummaryInformationTuple : IntermediateTuple + { + public _SummaryInformationTuple() : base(TupleDefinitions._SummaryInformation, null, null) + { + } + + public _SummaryInformationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._SummaryInformation, sourceLineNumber, id) + { + } + + public IntermediateField this[_SummaryInformationTupleFields index] => this.Fields[(int)index]; + + public int PropertyId + { + get => (int)this.Fields[(int)_SummaryInformationTupleFields.PropertyId]?.Value; + set => this.Set((int)_SummaryInformationTupleFields.PropertyId, value); + } + + public string Value + { + get => (string)this.Fields[(int)_SummaryInformationTupleFields.Value]?.Value; + set => this.Set((int)_SummaryInformationTupleFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/_TransformViewTuple.cs b/src/WixToolset.Data/Tuples/_TransformViewTuple.cs new file mode 100644 index 00000000..e3355062 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_TransformViewTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition _TransformView = new IntermediateTupleDefinition( + TupleDefinitionType._TransformView, + new[] + { + new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Column), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Row), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Data), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Current), IntermediateFieldType.String), + }, + typeof(_TransformViewTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum _TransformViewTupleFields + { + Table, + Column, + Row, + Data, + Current, + } + + public class _TransformViewTuple : IntermediateTuple + { + public _TransformViewTuple() : base(TupleDefinitions._TransformView, null, null) + { + } + + public _TransformViewTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._TransformView, sourceLineNumber, id) + { + } + + public IntermediateField this[_TransformViewTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)_TransformViewTupleFields.Table]?.Value; + set => this.Set((int)_TransformViewTupleFields.Table, value); + } + + public string Column + { + get => (string)this.Fields[(int)_TransformViewTupleFields.Column]?.Value; + set => this.Set((int)_TransformViewTupleFields.Column, value); + } + + public string Row + { + get => (string)this.Fields[(int)_TransformViewTupleFields.Row]?.Value; + set => this.Set((int)_TransformViewTupleFields.Row, value); + } + + public string Data + { + get => (string)this.Fields[(int)_TransformViewTupleFields.Data]?.Value; + set => this.Set((int)_TransformViewTupleFields.Data, value); + } + + public string Current + { + get => (string)this.Fields[(int)_TransformViewTupleFields.Current]?.Value; + set => this.Set((int)_TransformViewTupleFields.Current, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/_ValidationTuple.cs b/src/WixToolset.Data/Tuples/_ValidationTuple.cs new file mode 100644 index 00000000..3bcd064c --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ValidationTuple.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition _Validation = new IntermediateTupleDefinition( + TupleDefinitionType._Validation, + new[] + { + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Column), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Nullable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.MinValue), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.MaxValue), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.KeyTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.KeyColumn), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Category), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Set), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Description), IntermediateFieldType.String), + }, + typeof(_ValidationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum _ValidationTupleFields + { + Table, + Column, + Nullable, + MinValue, + MaxValue, + KeyTable, + KeyColumn, + Category, + Set, + Description, + } + + public class _ValidationTuple : IntermediateTuple + { + public _ValidationTuple() : base(TupleDefinitions._Validation, null, null) + { + } + + public _ValidationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._Validation, sourceLineNumber, id) + { + } + + public IntermediateField this[_ValidationTupleFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)_ValidationTupleFields.Table]?.Value; + set => this.Set((int)_ValidationTupleFields.Table, value); + } + + public string Column + { + get => (string)this.Fields[(int)_ValidationTupleFields.Column]?.Value; + set => this.Set((int)_ValidationTupleFields.Column, value); + } + + public string Nullable + { + get => (string)this.Fields[(int)_ValidationTupleFields.Nullable]?.Value; + set => this.Set((int)_ValidationTupleFields.Nullable, value); + } + + public int MinValue + { + get => (int)this.Fields[(int)_ValidationTupleFields.MinValue]?.Value; + set => this.Set((int)_ValidationTupleFields.MinValue, value); + } + + public int MaxValue + { + get => (int)this.Fields[(int)_ValidationTupleFields.MaxValue]?.Value; + set => this.Set((int)_ValidationTupleFields.MaxValue, value); + } + + public string KeyTable + { + get => (string)this.Fields[(int)_ValidationTupleFields.KeyTable]?.Value; + set => this.Set((int)_ValidationTupleFields.KeyTable, value); + } + + public int KeyColumn + { + get => (int)this.Fields[(int)_ValidationTupleFields.KeyColumn]?.Value; + set => this.Set((int)_ValidationTupleFields.KeyColumn, value); + } + + public string Category + { + get => (string)this.Fields[(int)_ValidationTupleFields.Category]?.Value; + set => this.Set((int)_ValidationTupleFields.Category, value); + } + + public string Set + { + get => (string)this.Fields[(int)_ValidationTupleFields.Set]?.Value; + set => this.Set((int)_ValidationTupleFields.Set, value); + } + + public string Description + { + get => (string)this.Fields[(int)_ValidationTupleFields.Description]?.Value; + set => this.Set((int)_ValidationTupleFields.Description, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/tuples_new.json b/src/WixToolset.Data/Tuples/tuples_new.json new file mode 100644 index 00000000..9386058c --- /dev/null +++ b/src/WixToolset.Data/Tuples/tuples_new.json @@ -0,0 +1,3604 @@ +[ + { + "_Streams": [ + { + "Name": "string" + }, + { + "Data": "path" + } + ] + }, + { + "_SummaryInformation": [ + { + "PropertyId": "number" + }, + { + "Value": "string" + } + ] + }, + { + "_TransformView": [ + { + "Table": "string" + }, + { + "Column": "string" + }, + { + "Row": "string" + }, + { + "Data": "string" + }, + { + "Current": "string" + } + ] + }, + { + "_Validation": [ + { + "Table": "string" + }, + { + "Column": "string" + }, + { + "Nullable": "string" + }, + { + "MinValue": "number" + }, + { + "MaxValue": "number" + }, + { + "KeyTable": "string" + }, + { + "KeyColumn": "number" + }, + { + "Category": "string" + }, + { + "Set": "string" + }, + { + "Description": "string" + } + ] + }, + { + "ActionText": [ + { + "Action": "string" + }, + { + "Description": "string" + }, + { + "Template": "string" + } + ] + }, + { + "AdminExecuteSequence": [ + { + "Action": "string" + }, + { + "Condition": "string" + }, + { + "Sequence": "number" + } + ] + }, + { + "AdminUISequence": [ + { + "Action": "string" + }, + { + "Condition": "string" + }, + { + "Sequence": "number" + } + ] + }, + { + "AdvtExecuteSequence": [ + { + "Action": "string" + }, + { + "Condition": "string" + }, + { + "Sequence": "number" + } + ] + }, + { + "AdvtUISequence": [ + { + "Action": "string" + }, + { + "Condition": "string" + }, + { + "Sequence": "number" + } + ] + }, + { + "AppId": [ + { + "AppId": "string" + }, + { + "RemoteServerName": "string" + }, + { + "LocalService": "string" + }, + { + "ServiceParameters": "string" + }, + { + "DllSurrogate": "string" + }, + { + "ActivateAtStorage": "number" + }, + { + "RunAsInteractiveUser": "number" + } + ] + }, + { + "AppSearch": [ + { + "Property": "string" + }, + { + "Signature_": "string" + } + ] + }, + { + "BBControl": [ + { + "Billboard_": "string" + }, + { + "BBControl": "string" + }, + { + "Type": "string" + }, + { + "X": "number" + }, + { + "Y": "number" + }, + { + "Width": "number" + }, + { + "Height": "number" + }, + { + "Attributes": "number" + }, + { + "Text": "string" + } + ] + }, + { + "Billboard": [ + { + "Billboard": "string" + }, + { + "Feature_": "string" + }, + { + "Action": "string" + }, + { + "Ordering": "number" + } + ] + }, + { + "Binary": [ + { + "Name": "string" + }, + { + "Data": "path" + } + ] + }, + { + "BindImage": [ + { + "File_": "string" + }, + { + "Path": "string" + } + ] + }, + { + "CCPSearch": [ + { + "Signature_": "string" + } + ] + }, + { + "CheckBox": [ + { + "Property": "string" + }, + { + "Value": "string" + } + ] + }, + { + "Class": [ + { + "CLSID": "string" + }, + { + "Context": "string" + }, + { + "Component_": "string" + }, + { + "ProgId_Default": "string" + }, + { + "Description": "string" + }, + { + "AppId_": "string" + }, + { + "FileTypeMask": "string" + }, + { + "Icon_": "string" + }, + { + "IconIndex": "number" + }, + { + "DefInprocHandler": "string" + }, + { + "Argument": "string" + }, + { + "Feature_": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "ComboBox": [ + { + "Property": "string" + }, + { + "Order": "number" + }, + { + "Value": "string" + }, + { + "Text": "string" + } + ] + }, + { + "CompLocator": [ + { + "Signature_": "string" + }, + { + "ComponentId": "string" + }, + { + "Type": "number" + } + ] + }, + { + "Complus": [ + { + "Component_": "string" + }, + { + "ExpType": "number" + } + ] + }, + { + "Component": [ + { + "Component": "string" + }, + { + "ComponentId": "string" + }, + { + "Directory_": "string" + }, + { + "Attributes": "number" + }, + { + "Condition": "string" + }, + { + "KeyPath": "string" + } + ] + }, + { + "Condition": [ + { + "Feature_": "string" + }, + { + "Level": "number" + }, + { + "Condition": "string" + } + ] + }, + { + "Control": [ + { + "Dialog_": "string" + }, + { + "Control": "string" + }, + { + "Type": "string" + }, + { + "X": "number" + }, + { + "Y": "number" + }, + { + "Width": "number" + }, + { + "Height": "number" + }, + { + "Attributes": "number" + }, + { + "Property": "string" + }, + { + "Text": "string" + }, + { + "Control_Next": "string" + }, + { + "Help": "string" + } + ] + }, + { + "ControlCondition": [ + { + "Dialog_": "string" + }, + { + "Control_": "string" + }, + { + "Action": "string" + }, + { + "Condition": "string" + } + ] + }, + { + "ControlEvent": [ + { + "Dialog_": "string" + }, + { + "Control_": "string" + }, + { + "Event": "string" + }, + { + "Argument": "string" + }, + { + "Condition": "string" + }, + { + "Ordering": "number" + } + ] + }, + { + "CreateFolder": [ + { + "Directory_": "string" + }, + { + "Component_": "string" + } + ] + }, + { + "CustomAction": [ + { + "Action": "string" + }, + { + "Type": "number" + }, + { + "Source": "string" + }, + { + "Target": "string" + }, + { + "ExtendedType": "number" + } + ] + }, + { + "Dialog": [ + { + "Dialog": "string" + }, + { + "HCentering": "number" + }, + { + "VCentering": "number" + }, + { + "Width": "number" + }, + { + "Height": "number" + }, + { + "Attributes": "number" + }, + { + "Title": "string" + }, + { + "Control_First": "string" + }, + { + "Control_Default": "string" + }, + { + "Control_Cancel": "string" + } + ] + }, + { + "Directory": [ + { + "Directory": "string" + }, + { + "Directory_Parent": "string" + }, + { + "DefaultDir": "string" + } + ] + }, + { + "DrLocator": [ + { + "Signature_": "string" + }, + { + "Parent": "string" + }, + { + "Path": "string" + }, + { + "Depth": "number" + } + ] + }, + { + "DuplicateFile": [ + { + "FileKey": "string" + }, + { + "Component_": "string" + }, + { + "File_": "string" + }, + { + "DestName": "string" + }, + { + "DestFolder": "string" + } + ] + }, + { + "Environment": [ + { + "Environment": "string" + }, + { + "Name": "string" + }, + { + "Value": "string" + }, + { + "Component_": "string" + } + ] + }, + { + "Error": [ + { + "Error": "number" + }, + { + "Message": "string" + } + ] + }, + { + "EventMapping": [ + { + "Dialog_": "string" + }, + { + "Control_": "string" + }, + { + "Event": "string" + }, + { + "Attribute": "string" + } + ] + }, + { + "Extension": [ + { + "Extension": "string" + }, + { + "Component_": "string" + }, + { + "ProgId_": "string" + }, + { + "MIME_": "string" + }, + { + "Feature_": "string" + } + ] + }, + { + "ExternalFiles": [ + { + "Family": "string" + }, + { + "FTK": "string" + }, + { + "FilePath": "string" + }, + { + "SymbolPaths": "string" + }, + { + "IgnoreOffsets": "string" + }, + { + "IgnoreLengths": "string" + }, + { + "RetainOffsets": "string" + }, + { + "Order": "number" + } + ] + }, + { + "FamilyFileRanges": [ + { + "Family": "string" + }, + { + "FTK": "string" + }, + { + "RetainOffsets": "string" + }, + { + "RetainLengths": "string" + } + ] + }, + { + "Feature": [ + { + "Feature": "string" + }, + { + "Feature_Parent": "string" + }, + { + "Title": "string" + }, + { + "Description": "string" + }, + { + "Display": "number" + }, + { + "Level": "number" + }, + { + "Directory_": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "FeatureComponents": [ + { + "Feature_": "string" + }, + { + "Component_": "string" + } + ] + }, + { + "File": [ + { + "File": "string" + }, + { + "Component_": "string" + }, + { + "FileName": "string" + }, + { + "FileSize": "number" + }, + { + "Version": "string" + }, + { + "Language": "string" + }, + { + "Attributes": "number" + }, + { + "Sequence": "number" + } + ] + }, + { + "FileSFPCatalog": [ + { + "File_": "string" + }, + { + "SFPCatalog_": "string" + } + ] + }, + { + "Font": [ + { + "File_": "string" + }, + { + "FontTitle": "string" + } + ] + }, + { + "Icon": [ + { + "Name": "string" + }, + { + "Data": "path" + } + ] + }, + { + "ImageFamilies": [ + { + "Family": "string" + }, + { + "MediaSrcPropName": "string" + }, + { + "MediaDiskId": "number" + }, + { + "FileSequenceStart": "number" + }, + { + "DiskPrompt": "string" + }, + { + "VolumeLabel": "string" + } + ] + }, + { + "IniFile": [ + { + "IniFile": "string" + }, + { + "FileName": "string" + }, + { + "DirProperty": "string" + }, + { + "Section": "string" + }, + { + "Key": "string" + }, + { + "Value": "string" + }, + { + "Action": "number" + }, + { + "Component_": "string" + } + ] + }, + { + "IniLocator": [ + { + "Signature_": "string" + }, + { + "FileName": "string" + }, + { + "Section": "string" + }, + { + "Key": "string" + }, + { + "Field": "number" + }, + { + "Type": "number" + } + ] + }, + { + "InstallExecuteSequence": [ + { + "Action": "string" + }, + { + "Condition": "string" + }, + { + "Sequence": "number" + } + ] + }, + { + "InstallUISequence": [ + { + "Action": "string" + }, + { + "Condition": "string" + }, + { + "Sequence": "number" + } + ] + }, + { + "IsolatedComponent": [ + { + "Component_Shared": "string" + }, + { + "Component_Application": "string" + } + ] + }, + { + "LaunchCondition": [ + { + "Condition": "string" + }, + { + "Description": "string" + } + ] + }, + { + "ListBox": [ + { + "Property": "string" + }, + { + "Order": "number" + }, + { + "Value": "string" + }, + { + "Text": "string" + } + ] + }, + { + "ListView": [ + { + "Property": "string" + }, + { + "Order": "number" + }, + { + "Value": "string" + }, + { + "Text": "string" + }, + { + "Binary_": "string" + } + ] + }, + { + "LockPermissions": [ + { + "LockObject": "string" + }, + { + "Table": "string" + }, + { + "Domain": "string" + }, + { + "User": "string" + }, + { + "Permission": "number" + } + ] + }, + { + "Media": [ + { + "DiskId": "number" + }, + { + "LastSequence": "number" + }, + { + "DiskPrompt": "string" + }, + { + "Cabinet": "string" + }, + { + "VolumeLabel": "string" + }, + { + "Source": "string" + } + ] + }, + { + "MIME": [ + { + "ContentType": "string" + }, + { + "Extension_": "string" + }, + { + "CLSID": "string" + } + ] + }, + { + "ModuleAdminExecuteSequence": [ + { + "Action": "string" + }, + { + "Sequence": "number" + }, + { + "BaseAction": "string" + }, + { + "After": "number" + }, + { + "Condition": "string" + } + ] + }, + { + "ModuleAdminUISequence": [ + { + "Action": "string" + }, + { + "Sequence": "number" + }, + { + "BaseAction": "string" + }, + { + "After": "number" + }, + { + "Condition": "string" + } + ] + }, + { + "ModuleAdvtExecuteSequence": [ + { + "Action": "string" + }, + { + "Sequence": "number" + }, + { + "BaseAction": "string" + }, + { + "After": "number" + }, + { + "Condition": "string" + } + ] + }, + { + "ModuleAdvtUISequence": [ + { + "Action": "string" + }, + { + "Sequence": "number" + }, + { + "BaseAction": "string" + }, + { + "After": "number" + }, + { + "Condition": "string" + } + ] + }, + { + "ModuleComponents": [ + { + "Component": "string" + }, + { + "ModuleID": "string" + }, + { + "Language": "number" + } + ] + }, + { + "ModuleConfiguration": [ + { + "Name": "string" + }, + { + "Format": "number" + }, + { + "Type": "string" + }, + { + "ContextData": "string" + }, + { + "DefaultValue": "string" + }, + { + "Attributes": "number" + }, + { + "DisplayName": "string" + }, + { + "Description": "string" + }, + { + "HelpLocation": "string" + }, + { + "HelpKeyword": "string" + } + ] + }, + { + "ModuleDependency": [ + { + "ModuleID": "string" + }, + { + "ModuleLanguage": "number" + }, + { + "RequiredID": "string" + }, + { + "RequiredLanguage": "number" + }, + { + "RequiredVersion": "string" + } + ] + }, + { + "ModuleExclusion": [ + { + "ModuleID": "string" + }, + { + "ModuleLanguage": "number" + }, + { + "ExcludedID": "string" + }, + { + "ExcludedLanguage": "number" + }, + { + "ExcludedMinVersion": "string" + }, + { + "ExcludedMaxVersion": "string" + } + ] + }, + { + "ModuleIgnoreTable": [ + { + "Table": "string" + } + ] + }, + { + "ModuleInstallExecuteSequence": [ + { + "Action": "string" + }, + { + "Sequence": "number" + }, + { + "BaseAction": "string" + }, + { + "After": "number" + }, + { + "Condition": "string" + } + ] + }, + { + "ModuleInstallUISequence": [ + { + "Action": "string" + }, + { + "Sequence": "number" + }, + { + "BaseAction": "string" + }, + { + "After": "number" + }, + { + "Condition": "string" + } + ] + }, + { + "ModuleSignature": [ + { + "ModuleID": "string" + }, + { + "Language": "number" + }, + { + "Version": "string" + } + ] + }, + { + "ModuleSubstitution": [ + { + "Table": "string" + }, + { + "Row": "string" + }, + { + "Column": "string" + }, + { + "Value": "string" + } + ] + }, + { + "MoveFile": [ + { + "FileKey": "string" + }, + { + "Component_": "string" + }, + { + "SourceName": "string" + }, + { + "DestName": "string" + }, + { + "SourceFolder": "string" + }, + { + "DestFolder": "string" + }, + { + "Options": "number" + } + ] + }, + { + "MsiAssembly": [ + { + "Component_": "string" + }, + { + "Feature_": "string" + }, + { + "File_Manifest": "string" + }, + { + "File_Application": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "MsiAssemblyName": [ + { + "Component_": "string" + }, + { + "Name": "string" + }, + { + "Value": "string" + } + ] + }, + { + "MsiDigitalCertificate": [ + { + "DigitalCertificate": "string" + }, + { + "CertData": "path" + } + ] + }, + { + "MsiDigitalSignature": [ + { + "Table": "string" + }, + { + "SignObject": "string" + }, + { + "DigitalCertificate_": "string" + }, + { + "Hash": "path" + } + ] + }, + { + "MsiEmbeddedChainer": [ + { + "MsiEmbeddedChainer": "string" + }, + { + "Condition": "string" + }, + { + "CommandLine": "string" + }, + { + "Source": "string" + }, + { + "Type": "number" + } + ] + }, + { + "MsiEmbeddedUI": [ + { + "MsiEmbeddedUI": "string" + }, + { + "FileName": "string" + }, + { + "Attributes": "number" + }, + { + "MessageFilter": "number" + }, + { + "Data": "path" + } + ] + }, + { + "MsiFileHash": [ + { + "File_": "string" + }, + { + "Options": "number" + }, + { + "HashPart1": "number" + }, + { + "HashPart2": "number" + }, + { + "HashPart3": "number" + }, + { + "HashPart4": "number" + } + ] + }, + { + "MsiLockPermissionsEx": [ + { + "MsiLockPermissionsEx": "string" + }, + { + "LockObject": "string" + }, + { + "Table": "string" + }, + { + "SDDLText": "string" + }, + { + "Condition": "string" + } + ] + }, + { + "MsiPackageCertificate": [ + { + "PackageCertificate": "string" + }, + { + "DigitalCertificate_": "string" + } + ] + }, + { + "MsiPatchCertificate": [ + { + "PatchCertificate": "string" + }, + { + "DigitalCertificate_": "string" + } + ] + }, + { + "MsiPatchHeaders": [ + { + "StreamRef": "string" + }, + { + "Header": "path" + } + ] + }, + { + "MsiPatchMetadata": [ + { + "Company": "string" + }, + { + "Property": "string" + }, + { + "Value": "string" + } + ] + }, + { + "MsiPatchOldAssemblyFile": [ + { + "File_": "string" + }, + { + "Assembly_": "string" + } + ] + }, + { + "MsiPatchOldAssemblyName": [ + { + "Assembly": "string" + }, + { + "Name": "string" + }, + { + "Value": "string" + } + ] + }, + { + "MsiPatchSequence": [ + { + "PatchFamily": "string" + }, + { + "ProductCode": "string" + }, + { + "Sequence": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "MsiServiceConfig": [ + { + "MsiServiceConfig": "string" + }, + { + "Name": "string" + }, + { + "Event": "number" + }, + { + "ConfigType": "number" + }, + { + "Argument": "string" + }, + { + "Component_": "string" + } + ] + }, + { + "MsiServiceConfigFailureActions": [ + { + "MsiServiceConfigFailureActions": "string" + }, + { + "Name": "string" + }, + { + "Event": "number" + }, + { + "ResetPeriod": "number" + }, + { + "RebootMessage": "string" + }, + { + "Command": "string" + }, + { + "Actions": "string" + }, + { + "DelayActions": "string" + }, + { + "Component_": "string" + } + ] + }, + { + "MsiShortcutProperty": [ + { + "MsiShortcutProperty": "string" + }, + { + "Shortcut_": "string" + }, + { + "PropertyKey": "string" + }, + { + "PropVariantValue": "string" + } + ] + }, + { + "ODBCAttribute": [ + { + "Driver_": "string" + }, + { + "Attribute": "string" + }, + { + "Value": "string" + } + ] + }, + { + "ODBCDataSource": [ + { + "DataSource": "string" + }, + { + "Component_": "string" + }, + { + "Description": "string" + }, + { + "DriverDescription": "string" + }, + { + "Registration": "number" + } + ] + }, + { + "ODBCDriver": [ + { + "Driver": "string" + }, + { + "Component_": "string" + }, + { + "Description": "string" + }, + { + "File_": "string" + }, + { + "File_Setup": "string" + } + ] + }, + { + "ODBCSourceAttribute": [ + { + "DataSource_": "string" + }, + { + "Attribute": "string" + }, + { + "Value": "string" + } + ] + }, + { + "ODBCTranslator": [ + { + "Translator": "string" + }, + { + "Component_": "string" + }, + { + "Description": "string" + }, + { + "File_": "string" + }, + { + "File_Setup": "string" + } + ] + }, + { + "Patch": [ + { + "File_": "string" + }, + { + "Sequence": "number" + }, + { + "PatchSize": "number" + }, + { + "Attributes": "number" + }, + { + "Header": "path" + }, + { + "StreamRef_": "string" + } + ] + }, + { + "PatchMetadata": [ + { + "Company": "string" + }, + { + "Property": "string" + }, + { + "Value": "string" + } + ] + }, + { + "PatchPackage": [ + { + "PatchId": "string" + }, + { + "Media_": "number" + } + ] + }, + { + "PatchSequence": [ + { + "PatchFamily": "string" + }, + { + "Target": "string" + }, + { + "Sequence": "string" + }, + { + "Supersede": "number" + } + ] + }, + { + "ProgId": [ + { + "ProgId": "string" + }, + { + "ProgId_Parent": "string" + }, + { + "Class_": "string" + }, + { + "Description": "string" + }, + { + "Icon_": "string" + }, + { + "IconIndex": "number" + } + ] + }, + { + "Properties": [ + { + "Name": "string" + }, + { + "Value": "string" + } + ] + }, + { + "Property": [ + { + "Property": "string" + }, + { + "Value": "string" + } + ] + }, + { + "PublishComponent": [ + { + "ComponentId": "string" + }, + { + "Qualifier": "string" + }, + { + "Component_": "string" + }, + { + "AppData": "string" + }, + { + "Feature_": "string" + } + ] + }, + { + "RadioButton": [ + { + "Property": "string" + }, + { + "Order": "number" + }, + { + "Value": "string" + }, + { + "X": "number" + }, + { + "Y": "number" + }, + { + "Width": "number" + }, + { + "Height": "number" + }, + { + "Text": "string" + }, + { + "Help": "string" + } + ] + }, + { + "Registry": [ + { + "Registry": "string" + }, + { + "Root": "number" + }, + { + "Key": "string" + }, + { + "Name": "string" + }, + { + "Value": "string" + }, + { + "Component_": "string" + } + ] + }, + { + "RegLocator": [ + { + "Signature_": "string" + }, + { + "Root": "number" + }, + { + "Key": "string" + }, + { + "Name": "string" + }, + { + "Type": "number" + } + ] + }, + { + "RemoveFile": [ + { + "FileKey": "string" + }, + { + "Component_": "string" + }, + { + "FileName": "string" + }, + { + "DirProperty": "string" + }, + { + "InstallMode": "number" + } + ] + }, + { + "RemoveIniFile": [ + { + "RemoveIniFile": "string" + }, + { + "FileName": "string" + }, + { + "DirProperty": "string" + }, + { + "Section": "string" + }, + { + "Key": "string" + }, + { + "Value": "string" + }, + { + "Action": "number" + }, + { + "Component_": "string" + } + ] + }, + { + "RemoveRegistry": [ + { + "RemoveRegistry": "string" + }, + { + "Root": "number" + }, + { + "Key": "string" + }, + { + "Name": "string" + }, + { + "Component_": "string" + } + ] + }, + { + "ReserveCost": [ + { + "ReserveKey": "string" + }, + { + "Component_": "string" + }, + { + "ReserveFolder": "string" + }, + { + "ReserveLocal": "number" + }, + { + "ReserveSource": "number" + } + ] + }, + { + "SelfReg": [ + { + "File_": "string" + }, + { + "Cost": "number" + } + ] + }, + { + "ServiceControl": [ + { + "ServiceControl": "string" + }, + { + "Name": "string" + }, + { + "Event": "number" + }, + { + "Arguments": "string" + }, + { + "Wait": "number" + }, + { + "Component_": "string" + } + ] + }, + { + "ServiceInstall": [ + { + "ServiceInstall": "string" + }, + { + "Name": "string" + }, + { + "DisplayName": "string" + }, + { + "ServiceType": "number" + }, + { + "StartType": "number" + }, + { + "ErrorControl": "number" + }, + { + "LoadOrderGroup": "string" + }, + { + "Dependencies": "string" + }, + { + "StartName": "string" + }, + { + "Password": "string" + }, + { + "Arguments": "string" + }, + { + "Component_": "string" + }, + { + "Description": "string" + } + ] + }, + { + "SFPCatalog": [ + { + "SFPCatalog": "string" + }, + { + "Catalog": "path" + }, + { + "Dependency": "string" + } + ] + }, + { + "Shortcut": [ + { + "Shortcut": "string" + }, + { + "Directory_": "string" + }, + { + "Name": "string" + }, + { + "Component_": "string" + }, + { + "Target": "string" + }, + { + "Arguments": "string" + }, + { + "Description": "string" + }, + { + "Hotkey": "number" + }, + { + "Icon_": "string" + }, + { + "IconIndex": "number" + }, + { + "ShowCmd": "number" + }, + { + "WkDir": "string" + }, + { + "DisplayResourceDLL": "string" + }, + { + "DisplayResourceId": "number" + }, + { + "DescriptionResourceDLL": "string" + }, + { + "DescriptionResourceId": "number" + } + ] + }, + { + "Signature": [ + { + "Signature": "string" + }, + { + "FileName": "string" + }, + { + "MinVersion": "string" + }, + { + "MaxVersion": "string" + }, + { + "MinSize": "number" + }, + { + "MaxSize": "number" + }, + { + "MinDate": "number" + }, + { + "MaxDate": "number" + }, + { + "Languages": "string" + } + ] + }, + { + "TargetFiles_OptionalData": [ + { + "Target": "string" + }, + { + "FTK": "string" + }, + { + "SymbolPaths": "string" + }, + { + "IgnoreOffsets": "string" + }, + { + "IgnoreLengths": "string" + }, + { + "RetainOffsets": "string" + } + ] + }, + { + "TargetImages": [ + { + "Target": "string" + }, + { + "MsiPath": "string" + }, + { + "SymbolPaths": "string" + }, + { + "Upgraded": "string" + }, + { + "Order": "number" + }, + { + "ProductValidateFlags": "string" + }, + { + "IgnoreMissingSrcFiles": "number" + } + ] + }, + { + "TextStyle": [ + { + "TextStyle": "string" + }, + { + "FaceName": "string" + }, + { + "Size": "number" + }, + { + "Color": "number" + }, + { + "StyleBits": "number" + } + ] + }, + { + "TypeLib": [ + { + "LibID": "string" + }, + { + "Language": "number" + }, + { + "Component_": "string" + }, + { + "Version": "number" + }, + { + "Description": "string" + }, + { + "Directory_": "string" + }, + { + "Feature_": "string" + }, + { + "Cost": "number" + } + ] + }, + { + "UIText": [ + { + "Key": "string" + }, + { + "Text": "string" + } + ] + }, + { + "Upgrade": [ + { + "UpgradeCode": "string" + }, + { + "VersionMin": "string" + }, + { + "VersionMax": "string" + }, + { + "Language": "string" + }, + { + "Attributes": "number" + }, + { + "Remove": "string" + }, + { + "ActionProperty": "string" + } + ] + }, + { + "UpgradedFiles_OptionalData": [ + { + "Upgraded": "string" + }, + { + "FTK": "string" + }, + { + "SymbolPaths": "string" + }, + { + "AllowIgnoreOnPatchError": "number" + }, + { + "IncludeWholeFile": "number" + } + ] + }, + { + "UpgradedFilesToIgnore": [ + { + "Upgraded": "string" + }, + { + "FTK": "string" + } + ] + }, + { + "UpgradedImages": [ + { + "Upgraded": "string" + }, + { + "MsiPath": "string" + }, + { + "PatchMsiPath": "string" + }, + { + "SymbolPaths": "string" + }, + { + "Family": "string" + } + ] + }, + { + "Verb": [ + { + "Extension_": "string" + }, + { + "Verb": "string" + }, + { + "Sequence": "number" + }, + { + "Command": "string" + }, + { + "Argument": "string" + } + ] + }, + { + "WixAction": [ + { + "SequenceTable": "string" + }, + { + "Action": "string" + }, + { + "Condition": "string" + }, + { + "Sequence": "number" + }, + { + "Before": "string" + }, + { + "After": "string" + }, + { + "Overridable": "number" + } + ] + }, + { + "WixApprovedExeForElevation": [ + { + "Id": "string" + }, + { + "Key": "string" + }, + { + "Value": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixBBControl": [ + { + "Billboard_": "string" + }, + { + "BBControl_": "string" + }, + { + "SourceFile": "path" + } + ] + }, + { + "WixBindUpdatedFiles": [ + { + "File_": "string" + } + ] + }, + { + "WixBootstrapperApplication": [ + { + "Id": "string" + } + ] + }, + { + "WixBuildInfo": [ + { + "WixVersion": "string" + }, + { + "WixOutputFile": "string" + }, + { + "WixProjectFile": "string" + }, + { + "WixPdbFile": "string" + } + ] + }, + { + "WixBundle": [ + { + "Version": "string" + }, + { + "Copyright": "string" + }, + { + "Name": "string" + }, + { + "AboutUrl": "string" + }, + { + "DisableModify": "number" + }, + { + "DisableRemove": "number" + }, + { + "DisableRepair": "number" + }, + { + "HelpTelephone": "string" + }, + { + "HelpUrl": "string" + }, + { + "Manufacturer": "string" + }, + { + "UpdateUrl": "string" + }, + { + "Compressed": "number" + }, + { + "LogPrefixAndExtension": "string" + }, + { + "IconSourceFile": "path" + }, + { + "SplashScreenSourceFile": "path" + }, + { + "Condition": "string" + }, + { + "Tag": "string" + }, + { + "Platform": "string" + }, + { + "ParentName": "string" + }, + { + "UpgradeCode": "string" + }, + { + "BundleId": "string" + }, + { + "ProviderKey": "string" + }, + { + "PerMachine": "number" + } + ] + }, + { + "WixBundleCatalog": [ + { + "WixBundleCatalog": "string" + }, + { + "Payload_": "string" + } + ] + }, + { + "WixBundleContainer": [ + { + "WixBundleContainer": "string" + }, + { + "Name": "string" + }, + { + "Type": "number" + }, + { + "DownloadUrl": "string" + }, + { + "Size": "number" + }, + { + "Hash": "string" + }, + { + "AttachedContainerIndex": "number" + }, + { + "WorkingPath": "string" + } + ] + }, + { + "WixBundleExePackage": [ + { + "WixBundlePackage_": "string" + }, + { + "Attributes": "number" + }, + { + "DetectCondition": "string" + }, + { + "InstallCommand": "string" + }, + { + "RepairCommand": "string" + }, + { + "UninstallCommand": "string" + }, + { + "ExeProtocol": "string" + } + ] + }, + { + "WixBundleMsiFeature": [ + { + "WixBundlePackage_": "string" + }, + { + "Name": "string" + }, + { + "Size": "number" + }, + { + "Parent": "string" + }, + { + "Title": "string" + }, + { + "Description": "string" + }, + { + "Display": "number" + }, + { + "Level": "number" + }, + { + "Directory": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixBundleMsiPackage": [ + { + "WixBundlePackage_": "string" + }, + { + "Attributes": "number" + }, + { + "ProductCode": "string" + }, + { + "UpgradeCode": "string" + }, + { + "ProductVersion": "string" + }, + { + "ProductLanguage": "number" + }, + { + "ProductName": "string" + }, + { + "Manufacturer": "string" + } + ] + }, + { + "WixBundleMsiProperty": [ + { + "WixBundlePackage_": "string" + }, + { + "Name": "string" + }, + { + "Value": "string" + }, + { + "Condition": "string" + } + ] + }, + { + "WixBundleMspPackage": [ + { + "WixBundlePackage_": "string" + }, + { + "Attributes": "number" + }, + { + "PatchCode": "string" + }, + { + "Manufacturer": "string" + }, + { + "PatchXml": "string" + } + ] + }, + { + "WixBundleMsuPackage": [ + { + "WixBundlePackage_": "string" + }, + { + "DetectCondition": "string" + }, + { + "MsuKB": "string" + } + ] + }, + { + "WixBundlePackage": [ + { + "WixChainItem_": "string" + }, + { + "Type": "number" + }, + { + "Payload_": "string" + }, + { + "Attributes": "number" + }, + { + "InstallCondition": "string" + }, + { + "Cache": "number" + }, + { + "CacheId": "string" + }, + { + "Vital": "number" + }, + { + "PerMachine": "number" + }, + { + "LogPathVariable": "string" + }, + { + "RollbackLogPathVariable": "string" + }, + { + "Size": "number" + }, + { + "InstallSize": "number" + }, + { + "Version": "string" + }, + { + "Language": "number" + }, + { + "DisplayName": "string" + }, + { + "Description": "string" + }, + { + "RollbackBoundary_": "string" + }, + { + "RollbackBoundaryBackward_": "string" + }, + { + "x64": "number" + } + ] + }, + { + "WixBundlePackageCommandLine": [ + { + "WixBundlePackage_": "string" + }, + { + "InstallArgument": "string" + }, + { + "UninstallArgument": "string" + }, + { + "RepairArgument": "string" + }, + { + "Condition": "string" + } + ] + }, + { + "WixBundlePackageExitCode": [ + { + "WixBundlePackage_": "string" + }, + { + "Code": "number" + }, + { + "Behavior": "number" + } + ] + }, + { + "WixBundlePackageGroup": [ + { + "WixBundlePackageGroup": "string" + } + ] + }, + { + "WixBundlePatchTargetCode": [ + { + "PackageId": "string" + }, + { + "TargetCode": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixBundlePayload": [ + { + "WixBundlePayload": "string" + }, + { + "Name": "string" + }, + { + "SourceFile": "path" + }, + { + "DownloadUrl": "string" + }, + { + "Compressed": "number" + }, + { + "UnresolvedSourceFile": "string" + }, + { + "DisplayName": "string" + }, + { + "Description": "string" + }, + { + "EnableSignatureValidation": "number" + }, + { + "FileSize": "number" + }, + { + "Version": "string" + }, + { + "Hash": "string" + }, + { + "PublicKey": "string" + }, + { + "Thumbprint": "string" + }, + { + "Catalog_": "string" + }, + { + "Container_": "string" + }, + { + "Package": "string" + }, + { + "ContentFile": "number" + }, + { + "EmbeddedId": "string" + }, + { + "LayoutOnly": "number" + }, + { + "Packaging": "number" + }, + { + "ParentPackagePayload_": "string" + } + ] + }, + { + "WixBundlePayloadGroup": [ + { + "WixBundlePayloadGroup": "string" + } + ] + }, + { + "WixBundleProperties": [ + { + "DisplayName": "string" + }, + { + "LogPathVariable": "string" + }, + { + "Compressed": "string" + }, + { + "Id": "string" + }, + { + "UpgradeCode": "string" + }, + { + "PerMachine": "string" + } + ] + }, + { + "WixBundleRelatedPackage": [ + { + "WixBundlePackage_": "string" + }, + { + "Id": "string" + }, + { + "MinVersion": "string" + }, + { + "MaxVersion": "string" + }, + { + "Languages": "string" + }, + { + "MinInclusive": "number" + }, + { + "MaxInclusive": "number" + }, + { + "LangInclusive": "number" + }, + { + "OnlyDetect": "number" + } + ] + }, + { + "WixBundleRollbackBoundary": [ + { + "WixChainItem_": "string" + }, + { + "Vital": "number" + }, + { + "Transaction": "number" + } + ] + }, + { + "WixBundleSlipstreamMsp": [ + { + "WixBundlePackage_": "string" + }, + { + "WixBundlePackage_Msp": "string" + } + ] + }, + { + "WixBundleUpdate": [ + { + "Location": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixBundleVariable": [ + { + "WixBundleVariable": "string" + }, + { + "Value": "string" + }, + { + "Type": "string" + }, + { + "Hidden": "number" + }, + { + "Persisted": "number" + } + ] + }, + { + "WixChain": [ + { + "Attributes": "number" + } + ] + }, + { + "WixChainItem": [ + { + "Id": "string" + } + ] + }, + { + "WixComplexReference": [ + { + "Parent": "string" + }, + { + "ParentAttributes": "number" + }, + { + "ParentLanguage": "string" + }, + { + "Child": "string" + }, + { + "ChildAttributes": "number" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixComponentGroup": [ + { + "WixComponentGroup": "string" + } + ] + }, + { + "WixComponentSearch": [ + { + "WixSearch_": "string" + }, + { + "Guid": "string" + }, + { + "ProductCode": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixControl": [ + { + "Dialog_": "string" + }, + { + "Control_": "string" + }, + { + "SourceFile": "path" + } + ] + }, + { + "WixCustomRow": [ + { + "Table": "string" + }, + { + "FieldData": "string" + } + ] + }, + { + "WixCustomTable": [ + { + "Table": "string" + }, + { + "ColumnCount": "number" + }, + { + "ColumnNames": "string" + }, + { + "ColumnTypes": "string" + }, + { + "PrimaryKeys": "string" + }, + { + "MinValues": "string" + }, + { + "MaxValues": "string" + }, + { + "KeyTables": "string" + }, + { + "KeyColumns": "string" + }, + { + "Categories": "string" + }, + { + "Sets": "string" + }, + { + "Descriptions": "string" + }, + { + "Modularizations": "string" + }, + { + "BootstrapperApplicationData": "number" + } + ] + }, + { + "WixDeltaPatchFile": [ + { + "File_": "string" + }, + { + "RetainLengths": "preserved" + }, + { + "IgnoreOffsets": "preserved" + }, + { + "IgnoreLengths": "preserved" + }, + { + "RetainOffsets": "preserved" + }, + { + "SymbolPaths": "preserved" + } + ] + }, + { + "WixDeltaPatchSymbolPaths": [ + { + "Id": "string" + }, + { + "Type": "number" + }, + { + "SymbolPaths": "preserved" + } + ] + }, + { + "WixDirectory": [ + { + "Directory_": "string" + }, + { + "ComponentGuidGenerationSeed": "string" + } + ] + }, + { + "WixEnsureTable": [ + { + "Table": "string" + } + ] + }, + { + "WixFeatureGroup": [ + { + "WixFeatureGroup": "string" + } + ] + }, + { + "WixFeatureModules": [ + { + "Feature_": "string" + }, + { + "WixMerge_": "string" + } + ] + }, + { + "WixFile": [ + { + "File_": "string" + }, + { + "AssemblyType": "number" + }, + { + "File_AssemblyManifest": "string" + }, + { + "File_AssemblyApplication": "string" + }, + { + "Directory_": "string" + }, + { + "DiskId": "number" + }, + { + "Source": "path" + }, + { + "ProcessorArchitecture": "string" + }, + { + "PatchGroup": "number" + }, + { + "Attributes": "number" + }, + { + "PatchAttributes": "number" + }, + { + "DeltaPatchHeaderSource": "string" + } + ] + }, + { + "WixFileSearch": [ + { + "WixSearch_": "string" + }, + { + "Path": "string" + }, + { + "MinVersion": "string" + }, + { + "MaxVersion": "string" + }, + { + "MinSize": "number" + }, + { + "MaxSize": "number" + }, + { + "MinDate": "number" + }, + { + "MaxDate": "number" + }, + { + "Languages": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixFragment": [ + { + "WixFragment": "string" + } + ] + }, + { + "WixGroup": [ + { + "ParentId": "string" + }, + { + "ParentType": "string" + }, + { + "ChildId": "string" + }, + { + "ChildType": "string" + } + ] + }, + { + "WixInstanceComponent": [ + { + "Component_": "string" + } + ] + }, + { + "WixInstanceTransforms": [ + { + "Id": "string" + }, + { + "PropertyId": "string" + }, + { + "ProductCode": "string" + }, + { + "ProductName": "string" + }, + { + "UpgradeCode": "string" + } + ] + }, + { + "WixMedia": [ + { + "DiskId_": "number" + }, + { + "CompressionLevel": "number" + }, + { + "Layout": "string" + } + ] + }, + { + "WixMediaTemplate": [ + { + "CabinetTemplate": "string" + }, + { + "CompressionLevel": "number" + }, + { + "DiskPrompt": "string" + }, + { + "VolumeLabel": "string" + }, + { + "MaximumUncompressedMediaSize": "number" + }, + { + "MaximumCabinetSizeForLargeFileSplitting": "number" + } + ] + }, + { + "WixMerge": [ + { + "WixMerge": "string" + }, + { + "Language": "number" + }, + { + "Directory_": "string" + }, + { + "SourceFile": "path" + }, + { + "DiskId": "number" + }, + { + "FileCompression": "number" + }, + { + "ConfigurationData": "string" + }, + { + "Feature_": "string" + } + ] + }, + { + "WixOrdering": [ + { + "ItemType": "string" + }, + { + "ItemId_": "string" + }, + { + "DependsOnType": "string" + }, + { + "DependsOnId_": "string" + } + ] + }, + { + "WixPackageFeatureInfo": [ + { + "Package": "string" + }, + { + "Feature": "string" + }, + { + "Size": "string" + }, + { + "Parent": "string" + }, + { + "Title": "string" + }, + { + "Description": "string" + }, + { + "Display": "string" + }, + { + "Level": "string" + }, + { + "Directory": "string" + }, + { + "Attributes": "string" + } + ] + }, + { + "WixPackageProperties": [ + { + "Package": "string" + }, + { + "Vital": "string" + }, + { + "DisplayName": "string" + }, + { + "Description": "string" + }, + { + "DownloadSize": "string" + }, + { + "PackageSize": "string" + }, + { + "InstalledSize": "string" + }, + { + "PackageType": "string" + }, + { + "Permanent": "string" + }, + { + "LogPathVariable": "string" + }, + { + "RollbackLogPathVariable": "string" + }, + { + "Compressed": "string" + }, + { + "DisplayInternalUI": "string" + }, + { + "ProductCode": "string" + }, + { + "UpgradeCode": "string" + }, + { + "Version": "string" + }, + { + "InstallCondition": "string" + }, + { + "Cache": "string" + } + ] + }, + { + "WixPatchBaseline": [ + { + "WixPatchBaseline": "string" + }, + { + "DiskId": "number" + }, + { + "ValidationFlags": "number" + } + ] + }, + { + "WixPatchFamilyGroup": [ + { + "WixPatchFamilyGroup": "string" + } + ] + }, + { + "WixPatchId": [ + { + "ProductCode": "string" + }, + { + "ClientPatchId": "string" + }, + { + "OptimizePatchSizeForLargeFiles": "number" + }, + { + "ApiPatchingSymbolFlags": "number" + } + ] + }, + { + "WixPatchMetadata": [ + { + "Property": "string" + }, + { + "Value": "string" + } + ] + }, + { + "WixPatchRef": [ + { + "Table": "string" + }, + { + "PrimaryKeys": "string" + } + ] + }, + { + "WixPatchTarget": [ + { + "ProductCode": "string" + } + ] + }, + { + "WixPayloadProperties": [ + { + "Payload": "string" + }, + { + "Package": "string" + }, + { + "Container": "string" + }, + { + "Name": "string" + }, + { + "Size": "string" + }, + { + "DownloadUrl": "string" + }, + { + "LayoutOnly": "string" + } + ] + }, + { + "WixProductSearch": [ + { + "WixSearch_": "string" + }, + { + "Guid": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixProperty": [ + { + "Property_": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixRegistrySearch": [ + { + "WixSearch_": "string" + }, + { + "Root": "number" + }, + { + "Key": "string" + }, + { + "Value": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixRelatedBundle": [ + { + "Id": "string" + }, + { + "Action": "number" + } + ] + }, + { + "WixSearch": [ + { + "WixSearch": "string" + }, + { + "Variable": "string" + }, + { + "Condition": "string" + } + ] + }, + { + "WixSearchRelation": [ + { + "WixSearch_": "string" + }, + { + "ParentId_": "string" + }, + { + "Attributes": "number" + } + ] + }, + { + "WixSimpleReference": [ + { + "Table": "string" + }, + { + "PrimaryKeys": "string" + } + ] + }, + { + "WixSuppressAction": [ + { + "SequenceTable": "string" + }, + { + "Action": "string" + } + ] + }, + { + "WixSuppressModularization": [ + { + "WixSuppressModularization": "string" + } + ] + }, + { + "WixUI": [ + { + "WixUI": "string" + } + ] + }, + { + "WixUpdateRegistration": [ + { + "Manufacturer": "string" + }, + { + "Department": "string" + }, + { + "ProductFamily": "string" + }, + { + "Name": "string" + }, + { + "Classification": "string" + } + ] + }, + { + "WixVariable": [ + { + "WixVariable": "string" + }, + { + "Value": "string" + }, + { + "Attributes": "number" + } + ] + } +] \ No newline at end of file diff --git a/src/WixToolset.Data/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstallerStandard.cs deleted file mode 100644 index 1060d11b..00000000 --- a/src/WixToolset.Data/WindowsInstallerStandard.cs +++ /dev/null @@ -1,444 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System.Collections.Generic; - using System.Reflection; - using System.Xml; - using WixToolset.Data.Rows; - - /// - /// Represents the Windows Installer standard objects. - /// - public static class WindowsInstallerStandard - { - private static readonly object lockObject = new object(); - - private static TableDefinitionCollection tableDefinitions; - private static WixActionRowCollection standardActions; - - private static HashSet standardActionNames; - private static HashSet standardDirectories; - private static HashSet standardProperties; - - - /// - /// Gets the table definitions stored in this assembly. - /// - /// Table definition collection for tables stored in this assembly. - public static TableDefinitionCollection GetTableDefinitions() - { - lock (lockObject) - { - if (null == WindowsInstallerStandard.tableDefinitions) - { - using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.Data.tables.xml"))) - { - tableDefinitions = TableDefinitionCollection.Load(reader); - } - } - } - - return WindowsInstallerStandard.tableDefinitions; - } - - /// - /// Gets the standard actions stored in this assembly. - /// - /// Collection of standard actions in this assembly. - public static WixActionRowCollection GetStandardActions() - { - lock (lockObject) - { - if (null == standardActions) - { - using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.Data.actions.xml"))) - { - standardActions = WixActionRowCollection.Load(reader); - } - } - } - - return standardActions; - } - - - /// - /// Gets (and loads if not yet loaded) the list of standard MSI directories. - /// - /// The list of standard MSI directories. - public static HashSet GetStandardDirectories() - { - lock (lockObject) - { - if (null == standardDirectories) - { - LoadStandardDirectories(); - } - } - - return standardDirectories; - } - - /// - /// Find out if an action is a standard action. - /// - /// Name of the action. - /// true if the action is standard, false otherwise. - public static bool IsStandardAction(string actionName) - { - lock (lockObject) - { - if (null == standardActionNames) - { - standardActionNames = new HashSet(); - standardActionNames.Add("AllocateRegistrySpace"); - standardActionNames.Add("AppSearch"); - standardActionNames.Add("BindImage"); - standardActionNames.Add("CCPSearch"); - standardActionNames.Add("CostFinalize"); - standardActionNames.Add("CostInitialize"); - standardActionNames.Add("CreateFolders"); - standardActionNames.Add("CreateShortcuts"); - standardActionNames.Add("DeleteServices"); - standardActionNames.Add("DisableRollback"); - standardActionNames.Add("DuplicateFiles"); - standardActionNames.Add("ExecuteAction"); - standardActionNames.Add("FileCost"); - standardActionNames.Add("FindRelatedProducts"); - standardActionNames.Add("ForceReboot"); - standardActionNames.Add("InstallAdminPackage"); - standardActionNames.Add("InstallExecute"); - standardActionNames.Add("InstallExecuteAgain"); - standardActionNames.Add("InstallFiles"); - standardActionNames.Add("InstallFinalize"); - standardActionNames.Add("InstallInitialize"); - standardActionNames.Add("InstallODBC"); - standardActionNames.Add("InstallServices"); - standardActionNames.Add("InstallSFPCatalogFile"); - standardActionNames.Add("InstallValidate"); - standardActionNames.Add("IsolateComponents"); - standardActionNames.Add("LaunchConditions"); - standardActionNames.Add("MigrateFeatureStates"); - standardActionNames.Add("MoveFiles"); - standardActionNames.Add("MsiConfigureServices"); - standardActionNames.Add("MsiPublishAssemblies"); - standardActionNames.Add("MsiUnpublishAssemblies"); - standardActionNames.Add("PatchFiles"); - standardActionNames.Add("ProcessComponents"); - standardActionNames.Add("PublishComponents"); - standardActionNames.Add("PublishFeatures"); - standardActionNames.Add("PublishProduct"); - standardActionNames.Add("RegisterClassInfo"); - standardActionNames.Add("RegisterComPlus"); - standardActionNames.Add("RegisterExtensionInfo"); - standardActionNames.Add("RegisterFonts"); - standardActionNames.Add("RegisterMIMEInfo"); - standardActionNames.Add("RegisterProduct"); - standardActionNames.Add("RegisterProgIdInfo"); - standardActionNames.Add("RegisterTypeLibraries"); - standardActionNames.Add("RegisterUser"); - standardActionNames.Add("RemoveDuplicateFiles"); - standardActionNames.Add("RemoveEnvironmentStrings"); - standardActionNames.Add("RemoveExistingProducts"); - standardActionNames.Add("RemoveFiles"); - standardActionNames.Add("RemoveFolders"); - standardActionNames.Add("RemoveIniValues"); - standardActionNames.Add("RemoveODBC"); - standardActionNames.Add("RemoveRegistryValues"); - standardActionNames.Add("RemoveShortcuts"); - standardActionNames.Add("ResolveSource"); - standardActionNames.Add("RMCCPSearch"); - standardActionNames.Add("ScheduleReboot"); - standardActionNames.Add("SelfRegModules"); - standardActionNames.Add("SelfUnregModules"); - standardActionNames.Add("SetODBCFolders"); - standardActionNames.Add("StartServices"); - standardActionNames.Add("StopServices"); - standardActionNames.Add("UnpublishComponents"); - standardActionNames.Add("UnpublishFeatures"); - standardActionNames.Add("UnregisterClassInfo"); - standardActionNames.Add("UnregisterComPlus"); - standardActionNames.Add("UnregisterExtensionInfo"); - standardActionNames.Add("UnregisterFonts"); - standardActionNames.Add("UnregisterMIMEInfo"); - standardActionNames.Add("UnregisterProgIdInfo"); - standardActionNames.Add("UnregisterTypeLibraries"); - standardActionNames.Add("ValidateProductID"); - standardActionNames.Add("WriteEnvironmentStrings"); - standardActionNames.Add("WriteIniValues"); - standardActionNames.Add("WriteRegistryValues"); - } - } - - return standardActionNames.Contains(actionName); - } - - /// - /// Find out if a directory is a standard directory. - /// - /// Name of the directory. - /// true if the directory is standard, false otherwise. - public static bool IsStandardDirectory(string directoryName) - { - lock (lockObject) - { - if (null == standardDirectories) - { - LoadStandardDirectories(); - } - } - - return standardDirectories.Contains(directoryName); - } - - /// - /// Find out if a property is a standard property. - /// References: - /// Title: Property Reference [Windows Installer]: - /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp - /// - /// Name of the property. - /// true if a property is standard, false otherwise. - public static bool IsStandardProperty(string propertyName) - { - lock (lockObject) - { - if (null == standardProperties) - { - standardProperties = new HashSet(); - standardProperties.Add("~"); // REG_MULTI_SZ/NULL marker - standardProperties.Add("ACTION"); - standardProperties.Add("ADDDEFAULT"); - standardProperties.Add("ADDLOCAL"); - standardProperties.Add("ADDDSOURCE"); - standardProperties.Add("AdminProperties"); - standardProperties.Add("AdminUser"); - standardProperties.Add("ADVERTISE"); - standardProperties.Add("AFTERREBOOT"); - standardProperties.Add("AllowProductCodeMismatches"); - standardProperties.Add("AllowProductVersionMajorMismatches"); - standardProperties.Add("ALLUSERS"); - standardProperties.Add("Alpha"); - standardProperties.Add("ApiPatchingSymbolFlags"); - standardProperties.Add("ARPAUTHORIZEDCDFPREFIX"); - standardProperties.Add("ARPCOMMENTS"); - standardProperties.Add("ARPCONTACT"); - standardProperties.Add("ARPHELPLINK"); - standardProperties.Add("ARPHELPTELEPHONE"); - standardProperties.Add("ARPINSTALLLOCATION"); - standardProperties.Add("ARPNOMODIFY"); - standardProperties.Add("ARPNOREMOVE"); - standardProperties.Add("ARPNOREPAIR"); - standardProperties.Add("ARPPRODUCTIONICON"); - standardProperties.Add("ARPREADME"); - standardProperties.Add("ARPSIZE"); - standardProperties.Add("ARPSYSTEMCOMPONENT"); - standardProperties.Add("ARPULRINFOABOUT"); - standardProperties.Add("ARPURLUPDATEINFO"); - standardProperties.Add("AVAILABLEFREEREG"); - standardProperties.Add("BorderSize"); - standardProperties.Add("BorderTop"); - standardProperties.Add("CaptionHeight"); - standardProperties.Add("CCP_DRIVE"); - standardProperties.Add("ColorBits"); - standardProperties.Add("COMPADDLOCAL"); - standardProperties.Add("COMPADDSOURCE"); - standardProperties.Add("COMPANYNAME"); - standardProperties.Add("ComputerName"); - standardProperties.Add("CostingComplete"); - standardProperties.Add("Date"); - standardProperties.Add("DefaultUIFont"); - standardProperties.Add("DISABLEADVTSHORTCUTS"); - standardProperties.Add("DISABLEMEDIA"); - standardProperties.Add("DISABLEROLLBACK"); - standardProperties.Add("DiskPrompt"); - standardProperties.Add("DontRemoveTempFolderWhenFinished"); - standardProperties.Add("EnableUserControl"); - standardProperties.Add("EXECUTEACTION"); - standardProperties.Add("EXECUTEMODE"); - standardProperties.Add("FASTOEM"); - standardProperties.Add("FILEADDDEFAULT"); - standardProperties.Add("FILEADDLOCAL"); - standardProperties.Add("FILEADDSOURCE"); - standardProperties.Add("IncludeWholeFilesOnly"); - standardProperties.Add("Installed"); - standardProperties.Add("INSTALLLEVEL"); - standardProperties.Add("Intel"); - standardProperties.Add("Intel64"); - standardProperties.Add("IsAdminPackage"); - standardProperties.Add("LeftUnit"); - standardProperties.Add("LIMITUI"); - standardProperties.Add("ListOfPatchGUIDsToReplace"); - standardProperties.Add("ListOfTargetProductCode"); - standardProperties.Add("LOGACTION"); - standardProperties.Add("LogonUser"); - standardProperties.Add("Manufacturer"); - standardProperties.Add("MEDIAPACKAGEPATH"); - standardProperties.Add("MediaSourceDir"); - standardProperties.Add("MinimumRequiredMsiVersion"); - standardProperties.Add("MsiAMD64"); - standardProperties.Add("MSIAPRSETTINGSIDENTIFIER"); - standardProperties.Add("MSICHECKCRCS"); - standardProperties.Add("MSIDISABLERMRESTART"); - standardProperties.Add("MSIENFORCEUPGRADECOMPONENTRULES"); - standardProperties.Add("MSIFASTINSTALL"); - standardProperties.Add("MsiFileToUseToCreatePatchTables"); - standardProperties.Add("MsiHiddenProperties"); - standardProperties.Add("MSIINSTALLPERUSER"); - standardProperties.Add("MSIINSTANCEGUID"); - standardProperties.Add("MsiLogFileLocation"); - standardProperties.Add("MsiLogging"); - standardProperties.Add("MsiNetAssemblySupport"); - standardProperties.Add("MSINEWINSTANCE"); - standardProperties.Add("MSINODISABLEMEDIA"); - standardProperties.Add("MsiNTProductType"); - standardProperties.Add("MsiNTSuiteBackOffice"); - standardProperties.Add("MsiNTSuiteDataCenter"); - standardProperties.Add("MsiNTSuiteEnterprise"); - standardProperties.Add("MsiNTSuiteSmallBusiness"); - standardProperties.Add("MsiNTSuiteSmallBusinessRestricted"); - standardProperties.Add("MsiNTSuiteWebServer"); - standardProperties.Add("MsiNTSuitePersonal"); - standardProperties.Add("MsiPatchRemovalList"); - standardProperties.Add("MSIPATCHREMOVE"); - standardProperties.Add("MSIRESTARTMANAGERCONTROL"); - standardProperties.Add("MsiRestartManagerSessionKey"); - standardProperties.Add("MSIRMSHUTDOWN"); - standardProperties.Add("MsiRunningElevated"); - standardProperties.Add("MsiUIHideCancel"); - standardProperties.Add("MsiUIProgressOnly"); - standardProperties.Add("MsiUISourceResOnly"); - standardProperties.Add("MsiSystemRebootPending"); - standardProperties.Add("MsiWin32AssemblySupport"); - standardProperties.Add("NOCOMPANYNAME"); - standardProperties.Add("NOUSERNAME"); - standardProperties.Add("OLEAdvtSupport"); - standardProperties.Add("OptimizePatchSizeForLargeFiles"); - standardProperties.Add("OriginalDatabase"); - standardProperties.Add("OutOfDiskSpace"); - standardProperties.Add("OutOfNoRbDiskSpace"); - standardProperties.Add("ParentOriginalDatabase"); - standardProperties.Add("ParentProductCode"); - standardProperties.Add("PATCH"); - standardProperties.Add("PATCH_CACHE_DIR"); - standardProperties.Add("PATCH_CACHE_ENABLED"); - standardProperties.Add("PatchGUID"); - standardProperties.Add("PATCHNEWPACKAGECODE"); - standardProperties.Add("PATCHNEWSUMMARYCOMMENTS"); - standardProperties.Add("PATCHNEWSUMMARYSUBJECT"); - standardProperties.Add("PatchOutputPath"); - standardProperties.Add("PatchSourceList"); - standardProperties.Add("PhysicalMemory"); - standardProperties.Add("PIDKEY"); - standardProperties.Add("PIDTemplate"); - standardProperties.Add("Preselected"); - standardProperties.Add("PRIMARYFOLDER"); - standardProperties.Add("PrimaryVolumePath"); - standardProperties.Add("PrimaryVolumeSpaceAvailable"); - standardProperties.Add("PrimaryVolumeSpaceRemaining"); - standardProperties.Add("PrimaryVolumeSpaceRequired"); - standardProperties.Add("Privileged"); - standardProperties.Add("ProductCode"); - standardProperties.Add("ProductID"); - standardProperties.Add("ProductLanguage"); - standardProperties.Add("ProductName"); - standardProperties.Add("ProductState"); - standardProperties.Add("ProductVersion"); - standardProperties.Add("PROMPTROLLBACKCOST"); - standardProperties.Add("REBOOT"); - standardProperties.Add("REBOOTPROMPT"); - standardProperties.Add("RedirectedDllSupport"); - standardProperties.Add("REINSTALL"); - standardProperties.Add("REINSTALLMODE"); - standardProperties.Add("RemoveAdminTS"); - standardProperties.Add("REMOVE"); - standardProperties.Add("ReplacedInUseFiles"); - standardProperties.Add("RestrictedUserControl"); - standardProperties.Add("RESUME"); - standardProperties.Add("RollbackDisabled"); - standardProperties.Add("ROOTDRIVE"); - standardProperties.Add("ScreenX"); - standardProperties.Add("ScreenY"); - standardProperties.Add("SecureCustomProperties"); - standardProperties.Add("ServicePackLevel"); - standardProperties.Add("ServicePackLevelMinor"); - standardProperties.Add("SEQUENCE"); - standardProperties.Add("SharedWindows"); - standardProperties.Add("ShellAdvtSupport"); - standardProperties.Add("SHORTFILENAMES"); - standardProperties.Add("SourceDir"); - standardProperties.Add("SOURCELIST"); - standardProperties.Add("SystemLanguageID"); - standardProperties.Add("TARGETDIR"); - standardProperties.Add("TerminalServer"); - standardProperties.Add("TextHeight"); - standardProperties.Add("Time"); - standardProperties.Add("TRANSFORMS"); - standardProperties.Add("TRANSFORMSATSOURCE"); - standardProperties.Add("TRANSFORMSSECURE"); - standardProperties.Add("TTCSupport"); - standardProperties.Add("UILevel"); - standardProperties.Add("UpdateStarted"); - standardProperties.Add("UpgradeCode"); - standardProperties.Add("UPGRADINGPRODUCTCODE"); - standardProperties.Add("UserLanguageID"); - standardProperties.Add("USERNAME"); - standardProperties.Add("UserSID"); - standardProperties.Add("Version9X"); - standardProperties.Add("VersionDatabase"); - standardProperties.Add("VersionMsi"); - standardProperties.Add("VersionNT"); - standardProperties.Add("VersionNT64"); - standardProperties.Add("VirtualMemory"); - standardProperties.Add("WindowsBuild"); - standardProperties.Add("WindowsVolume"); - } - } - - return standardProperties.Contains(propertyName); - } - - /// - /// Sets up a hashtable with the set of standard MSI directories - /// - private static void LoadStandardDirectories() - { - lock (lockObject) - { - if (null == standardDirectories) - { - standardDirectories = new HashSet(); - standardDirectories.Add("TARGETDIR"); - standardDirectories.Add("AdminToolsFolder"); - standardDirectories.Add("AppDataFolder"); - standardDirectories.Add("CommonAppDataFolder"); - standardDirectories.Add("CommonFilesFolder"); - standardDirectories.Add("DesktopFolder"); - standardDirectories.Add("FavoritesFolder"); - standardDirectories.Add("FontsFolder"); - standardDirectories.Add("LocalAppDataFolder"); - standardDirectories.Add("MyPicturesFolder"); - standardDirectories.Add("PersonalFolder"); - standardDirectories.Add("ProgramFilesFolder"); - standardDirectories.Add("ProgramMenuFolder"); - standardDirectories.Add("SendToFolder"); - standardDirectories.Add("StartMenuFolder"); - standardDirectories.Add("StartupFolder"); - standardDirectories.Add("System16Folder"); - standardDirectories.Add("SystemFolder"); - standardDirectories.Add("TempFolder"); - standardDirectories.Add("TemplateFolder"); - standardDirectories.Add("WindowsFolder"); - standardDirectories.Add("CommonFiles64Folder"); - standardDirectories.Add("ProgramFiles64Folder"); - standardDirectories.Add("System64Folder"); - standardDirectories.Add("NetHoodFolder"); - standardDirectories.Add("PrintHoodFolder"); - standardDirectories.Add("RecentFolder"); - standardDirectories.Add("WindowsVolume"); - } - } - } - } -} diff --git a/src/WixToolset.Data/WixDataStrings.Designer.cs b/src/WixToolset.Data/WixDataStrings.Designer.cs index 27c2b22c..37cced32 100644 --- a/src/WixToolset.Data/WixDataStrings.Designer.cs +++ b/src/WixToolset.Data/WixDataStrings.Designer.cs @@ -14,7 +14,7 @@ namespace WixToolset.Data { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class WixDataStrings { + public class WixDataStrings { private static global::System.Resources.ResourceManager resourceMan; @@ -64,7 +64,7 @@ namespace WixToolset.Data { /// /// Looks up a localized string similar to The value '{0}' is not a legal identifier and therefore cannot be modularized.. /// - internal static string EXP_CannotModularizeIllegalID { + public static string EXP_CannotModularizeIllegalID { get { return ResourceManager.GetString("EXP_CannotModularizeIllegalID", resourceCulture); } @@ -73,7 +73,7 @@ namespace WixToolset.Data { /// /// Looks up a localized string similar to A Merge table FileCompression column cannot be set to the invalid value '{0}'.. /// - internal static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue { + public static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue { get { return ResourceManager.GetString("EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue", resourceCulture); } @@ -154,7 +154,7 @@ namespace WixToolset.Data { /// /// Looks up a localized string similar to A Merge table FileCompression column contains an invalid value '{0}'.. /// - internal static string EXP_MergeTableFileCompressionColumnContainsInvalidValue { + public static string EXP_MergeTableFileCompressionColumnContainsInvalidValue { get { return ResourceManager.GetString("EXP_MergeTableFileCompressionColumnContainsInvalidValue", resourceCulture); } @@ -190,7 +190,7 @@ namespace WixToolset.Data { /// /// Looks up a localized string similar to Unexpected entry section type: {0}. /// - internal static string EXP_UnexpectedEntrySectionType { + public static string EXP_UnexpectedEntrySectionType { get { return ResourceManager.GetString("EXP_UnexpectedEntrySectionType", resourceCulture); } @@ -199,7 +199,7 @@ namespace WixToolset.Data { /// /// Looks up a localized string similar to Unknown column type: {0}. /// - internal static string EXP_UnknownColumnType { + public static string EXP_UnknownColumnType { get { return ResourceManager.GetString("EXP_UnknownColumnType", resourceCulture); } @@ -217,7 +217,7 @@ namespace WixToolset.Data { /// /// Looks up a localized string similar to The table {0} is not supported.. /// - internal static string EXP_UnsupportedTable { + public static string EXP_UnsupportedTable { get { return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture); } diff --git a/src/WixToolset.Data/WixInvalidIdtException.cs b/src/WixToolset.Data/WixInvalidIdtException.cs deleted file mode 100644 index 33fd0591..00000000 --- a/src/WixToolset.Data/WixInvalidIdtException.cs +++ /dev/null @@ -1,32 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// WiX invalid idt exception. - /// - [Serializable] - public sealed class WixInvalidIdtException : WixException - { - /// - /// Instantiate a new WixInvalidIdtException. - /// - /// The invalid idt file. - public WixInvalidIdtException(string idtFile) : - base(WixDataErrors.InvalidIdt(new SourceLineNumber(idtFile), idtFile)) - { - } - - /// - /// Instantiate a new WixInvalidIdtException. - /// - /// The invalid idt file. - /// The table name of the invalid idt file. - public WixInvalidIdtException(string idtFile, string tableName) : - base(WixDataErrors.InvalidIdt(new SourceLineNumber(idtFile), idtFile, tableName)) - { - } - } -} diff --git a/src/WixToolset.Data/WixMissingTableDefinitionException.cs b/src/WixToolset.Data/WixMissingTableDefinitionException.cs deleted file mode 100644 index 6295813b..00000000 --- a/src/WixToolset.Data/WixMissingTableDefinitionException.cs +++ /dev/null @@ -1,22 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// Exception thrown when a table definition is missing. - /// - [Serializable] - public class WixMissingTableDefinitionException : WixException - { - /// - /// Instantiate new WixMissingTableDefinitionException. - /// - /// Localized error information. - public WixMissingTableDefinitionException(MessageEventArgs error) - : base(error) - { - } - } -} diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index e57f61ed..e8032768 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -10,11 +10,6 @@ - - - - - - - - - - - Schema for describing standard actions in the Windows Installer. - - - - - - - - - - - - - - - - Name of action - - - - - Default condition for action - - - - - Sequence of action - - - - - Specifies if action is allowed in AdminExecuteSequence - - - - - Specifies if action is allowed in AdminUISequence - - - - - Specifies if action is allowed in AdvtExecuteSequence - - - - - Specifies if action is allowed in InstallExecuteSequence - - - - - Specifies if action is allowed in InstallUISequence - - - - - - - - - - - - diff --git a/src/WixToolset.Data/Data/Xsd/libraries.xsd b/src/WixToolset.Data/Data/Xsd/libraries.xsd deleted file mode 100644 index a4504c01..00000000 --- a/src/WixToolset.Data/Data/Xsd/libraries.xsd +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - Schema for describing WiX Library files (.wixlib). - - - - - - - - - - - - - - - - Version of WiX used to create this library file - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Data/Data/Xsd/objects.xsd b/src/WixToolset.Data/Data/Xsd/objects.xsd deleted file mode 100644 index 5d95a59c..00000000 --- a/src/WixToolset.Data/Data/Xsd/objects.xsd +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - Schema for describing WiX Object files (.wixobj). - - - - - - - - - - - - Version of WiX used to create this object file. - - - - - - - - - - - - - Identifier for section (optional for Fragments) - - - - - Type of section - - - - - Codepage for output file, only valid on entry sections. - - - - - - - - - - - - - Name of table in Windows Installer database - - - - - - - - - - - - - - - - Row in a table - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Data for a particular field in a row. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Data/Data/Xsd/outputs.xsd b/src/WixToolset.Data/Data/Xsd/outputs.xsd deleted file mode 100644 index 00e20f12..00000000 --- a/src/WixToolset.Data/Data/Xsd/outputs.xsd +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - Schema for describing WiX Output files (.wixout). - - - - - - - - - - - - - - - - Codepage of the output. - - - - - Type of the output. - - - - - - - - - - - - - - - Version of WiX used to create this output file. - - - - - - - - - - - - - Name of the substorage. - - - - - diff --git a/src/WixToolset.Data/Data/Xsd/pdbs.xsd b/src/WixToolset.Data/Data/Xsd/pdbs.xsd deleted file mode 100644 index c1d1756d..00000000 --- a/src/WixToolset.Data/Data/Xsd/pdbs.xsd +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - Schema for describing WiX Pdb files (.wixpdb). - - - - - - - - - - - - - - - - Version of WiX used to create this pdb file - - - - - diff --git a/src/WixToolset.Data/Data/Xsd/tables.xsd b/src/WixToolset.Data/Data/Xsd/tables.xsd deleted file mode 100644 index f87471bb..00000000 --- a/src/WixToolset.Data/Data/Xsd/tables.xsd +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - - Schema for describing table definitions in Windows Installer. - - - - - - - - - - - - - - - - - - - Boolean whether rows in this table create symbols - - - - - Name of table in Windows Installer database - - - - - Specifies if table is virtual or not - - - - - Specifies if the table is a part of the Bootstrapper Application Data manifest - - - - - - - - - - Name of column in Windows Installer table - - - - - - Whether this column was added by a transform. - - - - - - Type of column in Windows Installer table - - - - - - Type of column in Windows Installer table - - - - - - - - - - - - Boolean whether column is primary key of Windows Installer table - - - - - - Boolean whether column is nullable in Windows Installer table - - - - - - Boolean whether column is virtual in Windows Installer table - - - - - - Enumeration specifying how column should have the ModuleId appended - - - - - - Set to "yes" in order to allow substitution for localized variables. - - - - - - Minimum value for column in Windows Installer table - - - - - - Maximum value for column in Windows Installer table - - - - - - Foreign key table for column in Windows Installer table - - - - - - Maximum value for column in Windows Installer table - - - - - - - - - - - - Specific column data types for column - - - - - - List of permissible values for the column - - - - - - Description of column - - - - - - Set to "yes" in order to make the idt exporter escape whitespace characters \r, \n, and \t. - - - - - - Set to "yes" in order to make the Intermediate and Output objects wrap their data in a CDATA element to preserve whitespace. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Data/Data/Xsd/wix.cs b/src/WixToolset.Data/Data/Xsd/wix.cs deleted file mode 100644 index 3ff83699..00000000 --- a/src/WixToolset.Data/Data/Xsd/wix.cs +++ /dev/null @@ -1,57860 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WixToolset.Data.Serialize -{ - using System; - using System.CodeDom.Compiler; - using System.Collections; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; - using System.Xml; - - - /// - /// Values of this type will either be "attached" or "detached". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum BurnContainerType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - attached, - - detached, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Enums - { - - /// - /// Parses a BurnContainerType from a string. - /// - public static BurnContainerType ParseBurnContainerType(string value) - { - BurnContainerType parsedValue; - Enums.TryParseBurnContainerType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a BurnContainerType from a string. - /// - public static bool TryParseBurnContainerType(string value, out BurnContainerType parsedValue) - { - parsedValue = BurnContainerType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("attached" == value)) - { - parsedValue = BurnContainerType.attached; - } - else - { - if (("detached" == value)) - { - parsedValue = BurnContainerType.detached; - } - else - { - parsedValue = BurnContainerType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a BurnExeProtocolType from a string. - /// - public static BurnExeProtocolType ParseBurnExeProtocolType(string value) - { - BurnExeProtocolType parsedValue; - Enums.TryParseBurnExeProtocolType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a BurnExeProtocolType from a string. - /// - public static bool TryParseBurnExeProtocolType(string value, out BurnExeProtocolType parsedValue) - { - parsedValue = BurnExeProtocolType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("none" == value)) - { - parsedValue = BurnExeProtocolType.none; - } - else - { - if (("burn" == value)) - { - parsedValue = BurnExeProtocolType.burn; - } - else - { - if (("netfx4" == value)) - { - parsedValue = BurnExeProtocolType.netfx4; - } - else - { - parsedValue = BurnExeProtocolType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a YesNoType from a string. - /// - public static YesNoType ParseYesNoType(string value) - { - YesNoType parsedValue; - Enums.TryParseYesNoType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoType from a string. - /// - public static bool TryParseYesNoType(string value, out YesNoType parsedValue) - { - parsedValue = YesNoType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("no" == value)) - { - parsedValue = YesNoType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoType.yes; - } - else - { - parsedValue = YesNoType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a YesNoButtonType from a string. - /// - public static YesNoButtonType ParseYesNoButtonType(string value) - { - YesNoButtonType parsedValue; - Enums.TryParseYesNoButtonType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoButtonType from a string. - /// - public static bool TryParseYesNoButtonType(string value, out YesNoButtonType parsedValue) - { - parsedValue = YesNoButtonType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("no" == value)) - { - parsedValue = YesNoButtonType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoButtonType.yes; - } - else - { - if (("button" == value)) - { - parsedValue = YesNoButtonType.button; - } - else - { - parsedValue = YesNoButtonType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a YesNoDefaultType from a string. - /// - public static YesNoDefaultType ParseYesNoDefaultType(string value) - { - YesNoDefaultType parsedValue; - Enums.TryParseYesNoDefaultType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoDefaultType from a string. - /// - public static bool TryParseYesNoDefaultType(string value, out YesNoDefaultType parsedValue) - { - parsedValue = YesNoDefaultType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("default" == value)) - { - parsedValue = YesNoDefaultType.@default; - } - else - { - if (("no" == value)) - { - parsedValue = YesNoDefaultType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoDefaultType.yes; - } - else - { - parsedValue = YesNoDefaultType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a YesNoAlwaysType from a string. - /// - public static YesNoAlwaysType ParseYesNoAlwaysType(string value) - { - YesNoAlwaysType parsedValue; - Enums.TryParseYesNoAlwaysType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoAlwaysType from a string. - /// - public static bool TryParseYesNoAlwaysType(string value, out YesNoAlwaysType parsedValue) - { - parsedValue = YesNoAlwaysType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("always" == value)) - { - parsedValue = YesNoAlwaysType.always; - } - else - { - if (("no" == value)) - { - parsedValue = YesNoAlwaysType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoAlwaysType.yes; - } - else - { - parsedValue = YesNoAlwaysType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a RegistryRootType from a string. - /// - public static RegistryRootType ParseRegistryRootType(string value) - { - RegistryRootType parsedValue; - Enums.TryParseRegistryRootType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a RegistryRootType from a string. - /// - public static bool TryParseRegistryRootType(string value, out RegistryRootType parsedValue) - { - parsedValue = RegistryRootType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("HKMU" == value)) - { - parsedValue = RegistryRootType.HKMU; - } - else - { - if (("HKCR" == value)) - { - parsedValue = RegistryRootType.HKCR; - } - else - { - if (("HKCU" == value)) - { - parsedValue = RegistryRootType.HKCU; - } - else - { - if (("HKLM" == value)) - { - parsedValue = RegistryRootType.HKLM; - } - else - { - if (("HKU" == value)) - { - parsedValue = RegistryRootType.HKU; - } - else - { - parsedValue = RegistryRootType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ExitType from a string. - /// - public static ExitType ParseExitType(string value) - { - ExitType parsedValue; - Enums.TryParseExitType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ExitType from a string. - /// - public static bool TryParseExitType(string value, out ExitType parsedValue) - { - parsedValue = ExitType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("success" == value)) - { - parsedValue = ExitType.success; - } - else - { - if (("cancel" == value)) - { - parsedValue = ExitType.cancel; - } - else - { - if (("error" == value)) - { - parsedValue = ExitType.error; - } - else - { - if (("suspend" == value)) - { - parsedValue = ExitType.suspend; - } - else - { - parsedValue = ExitType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a InstallUninstallType from a string. - /// - public static InstallUninstallType ParseInstallUninstallType(string value) - { - InstallUninstallType parsedValue; - Enums.TryParseInstallUninstallType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallUninstallType from a string. - /// - public static bool TryParseInstallUninstallType(string value, out InstallUninstallType parsedValue) - { - parsedValue = InstallUninstallType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("install" == value)) - { - parsedValue = InstallUninstallType.install; - } - else - { - if (("uninstall" == value)) - { - parsedValue = InstallUninstallType.uninstall; - } - else - { - if (("both" == value)) - { - parsedValue = InstallUninstallType.both; - } - else - { - parsedValue = InstallUninstallType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a SequenceType from a string. - /// - public static SequenceType ParseSequenceType(string value) - { - SequenceType parsedValue; - Enums.TryParseSequenceType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a SequenceType from a string. - /// - public static bool TryParseSequenceType(string value, out SequenceType parsedValue) - { - parsedValue = SequenceType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("both" == value)) - { - parsedValue = SequenceType.both; - } - else - { - if (("first" == value)) - { - parsedValue = SequenceType.first; - } - else - { - if (("execute" == value)) - { - parsedValue = SequenceType.execute; - } - else - { - if (("ui" == value)) - { - parsedValue = SequenceType.ui; - } - else - { - parsedValue = SequenceType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a CompressionLevelType from a string. - /// - public static CompressionLevelType ParseCompressionLevelType(string value) - { - CompressionLevelType parsedValue; - Enums.TryParseCompressionLevelType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a CompressionLevelType from a string. - /// - public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) - { - parsedValue = CompressionLevelType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("high" == value)) - { - parsedValue = CompressionLevelType.high; - } - else - { - if (("low" == value)) - { - parsedValue = CompressionLevelType.low; - } - else - { - if (("medium" == value)) - { - parsedValue = CompressionLevelType.medium; - } - else - { - if (("mszip" == value)) - { - parsedValue = CompressionLevelType.mszip; - } - else - { - if (("none" == value)) - { - parsedValue = CompressionLevelType.none; - } - else - { - parsedValue = CompressionLevelType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - } - - /// - /// The list of communcation protocols with executable packages Burn supports. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum BurnExeProtocolType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The executable package does not support a communication protocol. - /// - none, - - /// - /// The executable package is another Burn bundle and supports the Burn communication protocol. - /// - burn, - - /// - /// The executable package implements the .NET Framework v4.0 communication protocol. - /// - netfx4, - } - - /// - /// Values of this type will either be "yes" or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - no, - - yes, - } - - /// - /// Values of this type will either be "button", "yes" or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoButtonType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - no, - - yes, - - button, - } - - /// - /// Values of this type will either be "default", "yes", or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoDefaultType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - @default, - - no, - - yes, - } - - /// - /// Values of this type will either be "always", "yes", or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoAlwaysType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - always, - - no, - - yes, - } - - /// - /// Values of this type represent possible registry roots. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum RegistryRootType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// A per-user installation will make the operation occur under HKEY_CURRENT_USER. - /// A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE. - /// - HKMU, - - /// - /// Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value - /// from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems, - /// the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations. - /// - HKCR, - - /// - /// Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values - /// in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer. - /// - HKCU, - - /// - /// Operation occurs under HKEY_LOCAL_MACHINE. - /// - HKLM, - - /// - /// Operation occurs under HKEY_USERS. - /// - HKU, - } - - /// - /// Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action. - /// Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ExitType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - success, - - cancel, - - error, - - suspend, - } - - /// - /// Specifies whether an action occur on install, uninstall or both. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallUninstallType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The action should happen during install (msiInstallStateLocal or msiInstallStateSource). - /// - install, - - /// - /// The action should happen during uninstall (msiInstallStateAbsent). - /// - uninstall, - - /// - /// The action should happen during both install and uninstall. - /// - both, - } - - /// - /// Controls which sequences the item assignment is sequenced in. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum SequenceType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Schedules the assignment in the InstallUISequence and the InstallExecuteSequence. - /// - both, - - /// - /// Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped. - /// - first, - - /// - /// Schedules the assignment only in the the InstallExecuteSequence. - /// - execute, - - /// - /// Schedules the assignment only in the the InstallUISequence. - /// - ui, - } - - /// - /// Indicates the compression level for a cabinet. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum CompressionLevelType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - high, - - low, - - medium, - - mszip, - - none, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public abstract class ActionModuleSequenceType : ISchemaElement, ISetAttributes - { - - private string afterField; - - private bool afterFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private YesNoType suppressField; - - private bool suppressFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of an action that this action should come after. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The name of an action that this action should come before. - /// - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - /// - /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - /// - /// A value used to indicate the position of this action in a sequence. - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// If yes, this action will not occur. - /// - public YesNoType Suppress - { - get - { - return this.suppressField; - } - set - { - this.suppressFieldSet = true; - this.suppressField = value; - } - } - - /// - /// Text node specifies the condition of the action. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.suppressFieldSet) - { - if ((this.suppressField == YesNoType.no)) - { - writer.WriteAttributeString("Suppress", "no"); - } - if ((this.suppressField == YesNoType.yes)) - { - writer.WriteAttributeString("Suppress", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Suppress" == name)) - { - this.suppressField = Enums.ParseYesNoType(value); - this.suppressFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public abstract class ActionSequenceType : ISchemaElement, ISetAttributes - { - - private int sequenceField; - - private bool sequenceFieldSet; - - private YesNoType suppressField; - - private bool suppressFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// A value used to indicate the position of this action in a sequence. - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// If yes, this action will not occur. - /// - public YesNoType Suppress - { - get - { - return this.suppressField; - } - set - { - this.suppressFieldSet = true; - this.suppressField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.suppressFieldSet) - { - if ((this.suppressField == YesNoType.no)) - { - writer.WriteAttributeString("Suppress", "no"); - } - if ((this.suppressField == YesNoType.yes)) - { - writer.WriteAttributeString("Suppress", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Suppress" == name)) - { - this.suppressField = Enums.ParseYesNoType(value); - this.suppressFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// This is the top-level container element for every wxs file. Among the possible children, - /// the Bundle, Product, Module, Patch, and PatchCreation elements are analogous to the main function in a C program. - /// There can only be one of these present when linking occurs. Product compiles into an msi file, - /// Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element - /// is an atomic unit which ultimately links into either a Product, Module, or PatchCreation. The - /// Fragment can either be completely included or excluded during linking. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Wix : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string requiredVersionField; - - private bool requiredVersionFieldSet; - - private ISchemaElement parentElement; - - public Wix() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Bundle))); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Product))); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Module))); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Patch))); - childCollection1.AddCollection(childCollection2); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(Fragment))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCreation))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Required version of the WiX toolset to compile this input file. - /// - public string RequiredVersion - { - get - { - return this.requiredVersionField; - } - set - { - this.requiredVersionFieldSet = true; - this.requiredVersionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Bundle" == childName)) - { - childValue = new Bundle(); - } - if (("Product" == childName)) - { - childValue = new Product(); - } - if (("Module" == childName)) - { - childValue = new Module(); - } - if (("Patch" == childName)) - { - childValue = new Patch(); - } - if (("Fragment" == childName)) - { - childValue = new Fragment(); - } - if (("PatchCreation" == childName)) - { - childValue = new PatchCreation(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Wix", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.requiredVersionFieldSet) - { - writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("RequiredVersion" == name)) - { - this.requiredVersionField = value; - this.requiredVersionFieldSet = true; - } - } - } - - /// - /// This is the top-level container element for every wxi file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Include : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public Include() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Include", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// The root element for creating bundled packages. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Bundle : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string aboutUrlField; - - private bool aboutUrlFieldSet; - - private string copyrightField; - - private bool copyrightFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoButtonType disableModifyField; - - private bool disableModifyFieldSet; - - private YesNoType disableRemoveField; - - private bool disableRemoveFieldSet; - - private YesNoType disableRepairField; - - private bool disableRepairFieldSet; - - private string helpTelephoneField; - - private bool helpTelephoneFieldSet; - - private string helpUrlField; - - private bool helpUrlFieldSet; - - private string iconSourceFileField; - - private bool iconSourceFileFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string parentNameField; - - private bool parentNameFieldSet; - - private string splashScreenSourceFileField; - - private bool splashScreenSourceFileFieldSet; - - private string tagField; - - private bool tagFieldSet; - - private string updateUrlField; - - private bool updateUrlFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private string conditionField; - - private bool conditionFieldSet; - - private ISchemaElement parentElement; - - public Bundle() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ApprovedExeForElevation))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Log))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Catalog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(OptionalUpdateRegistration))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Chain))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ContainerRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Update))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// A URL for more information about the bundle to display in Programs and Features (also - /// known as Add/Remove Programs). - /// - public string AboutUrl - { - get - { - return this.aboutUrlField; - } - set - { - this.aboutUrlFieldSet = true; - this.aboutUrlField = value; - } - } - - /// - /// The legal copyright found in the version resources of final bundle executable. If - /// this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.". - /// - public string Copyright - { - get - { - return this.copyrightField; - } - set - { - this.copyrightFieldSet = true; - this.copyrightField = value; - } - } - - /// - /// Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// Determines whether the bundle can be modified via the Programs and Features (also known as - /// Add/Remove Programs). If the value is "button" then Programs and Features will show a single - /// "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show - /// the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown. - /// See the DisableRemove attribute for information how to not display the bundle in Programs - /// and Features. - /// - public YesNoButtonType DisableModify - { - get - { - return this.disableModifyField; - } - set - { - this.disableModifyFieldSet = true; - this.disableModifyField = value; - } - } - - /// - /// Determines whether the bundle can be removed via the Programs and Features (also - /// known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will - /// not be displayed. The default is "no" which ensures there is an "Uninstall" button to - /// remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the - /// bundle will not be displayed in Progams and Features and another mechanism (such as - /// registering as a related bundle addon) must be used to ensure the bundle can be removed. - /// - public YesNoType DisableRemove - { - get - { - return this.disableRemoveField; - } - set - { - this.disableRemoveFieldSet = true; - this.disableRemoveField = value; - } - } - - public YesNoType DisableRepair - { - get - { - return this.disableRepairField; - } - set - { - this.disableRepairFieldSet = true; - this.disableRepairField = value; - } - } - - /// - /// A telephone number for help to display in Programs and Features (also known as - /// Add/Remove Programs). - /// - public string HelpTelephone - { - get - { - return this.helpTelephoneField; - } - set - { - this.helpTelephoneFieldSet = true; - this.helpTelephoneField = value; - } - } - - /// - /// A URL to the help for the bundle to display in Programs and Features (also known as - /// Add/Remove Programs). - /// - public string HelpUrl - { - get - { - return this.helpUrlField; - } - set - { - this.helpUrlFieldSet = true; - this.helpUrlField = value; - } - } - - /// - /// Path to an icon that will replace the default icon in the final Bundle executable. - /// This icon will also be displayed in Programs and Features (also known as Add/Remove - /// Programs). - /// - public string IconSourceFile - { - get - { - return this.iconSourceFileField; - } - set - { - this.iconSourceFileFieldSet = true; - this.iconSourceFileField = value; - } - } - - /// - /// The publisher of the bundle to display in Programs and Features (also known as - /// Add/Remove Programs). - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The name of the bundle to display in Programs and Features (also known as Add/Remove - /// Programs). This name can be accessed and overwritten by a BootstrapperApplication - /// using the WixBundleName bundle variable. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The name of the parent bundle to display in Installed Updates (also known as Add/Remove - /// Programs). This name is used to nest or group bundles that will appear as updates. - /// If the parent name does not actually exist, a virtual parent is created automatically. - /// - public string ParentName - { - get - { - return this.parentNameField; - } - set - { - this.parentNameFieldSet = true; - this.parentNameField = value; - } - } - - /// - /// Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed. - /// - public string SplashScreenSourceFile - { - get - { - return this.splashScreenSourceFileField; - } - set - { - this.splashScreenSourceFileFieldSet = true; - this.splashScreenSourceFileField = value; - } - } - - /// - /// Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality. - /// - public string Tag - { - get - { - return this.tagField; - } - set - { - this.tagFieldSet = true; - this.tagField = value; - } - } - - /// - /// A URL for updates of the bundle to display in Programs and Features (also - /// known as Add/Remove Programs). - /// - public string UpdateUrl - { - get - { - return this.updateUrlField; - } - set - { - this.updateUrlFieldSet = true; - this.updateUrlField = value; - } - } - - /// - /// Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the - /// bundle with the highest version will be installed. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - /// - /// The version of the bundle. Newer versions upgrade earlier versions of the bundles - /// with matching UpgradeCodes. If the bundle is registered in Programs and Features - /// then this attribute will be displayed in the Programs and Features user interface. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - /// - /// The condition of the bundle. If the condition is not met, the bundle will - /// refuse to run. Conditions are checked before the bootstrapper application is loaded - /// (before detect), and thus can only reference built-in variables such as - /// variables which indicate the version of the OS. - /// - public string Condition - { - get - { - return this.conditionField; - } - set - { - this.conditionFieldSet = true; - this.conditionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ApprovedExeForElevation" == childName)) - { - childValue = new ApprovedExeForElevation(); - } - if (("Log" == childName)) - { - childValue = new Log(); - } - if (("Catalog" == childName)) - { - childValue = new Catalog(); - } - if (("BootstrapperApplication" == childName)) - { - childValue = new BootstrapperApplication(); - } - if (("BootstrapperApplicationRef" == childName)) - { - childValue = new BootstrapperApplicationRef(); - } - if (("OptionalUpdateRegistration" == childName)) - { - childValue = new OptionalUpdateRegistration(); - } - if (("Chain" == childName)) - { - childValue = new Chain(); - } - if (("Container" == childName)) - { - childValue = new Container(); - } - if (("ContainerRef" == childName)) - { - childValue = new ContainerRef(); - } - if (("PayloadGroup" == childName)) - { - childValue = new PayloadGroup(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if (("RelatedBundle" == childName)) - { - childValue = new RelatedBundle(); - } - if (("Update" == childName)) - { - childValue = new Update(); - } - if (("Variable" == childName)) - { - childValue = new Variable(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Bundle", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.aboutUrlFieldSet) - { - writer.WriteAttributeString("AboutUrl", this.aboutUrlField); - } - if (this.copyrightFieldSet) - { - writer.WriteAttributeString("Copyright", this.copyrightField); - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.disableModifyFieldSet) - { - if ((this.disableModifyField == YesNoButtonType.no)) - { - writer.WriteAttributeString("DisableModify", "no"); - } - if ((this.disableModifyField == YesNoButtonType.yes)) - { - writer.WriteAttributeString("DisableModify", "yes"); - } - if ((this.disableModifyField == YesNoButtonType.button)) - { - writer.WriteAttributeString("DisableModify", "button"); - } - } - if (this.disableRemoveFieldSet) - { - if ((this.disableRemoveField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRemove", "no"); - } - if ((this.disableRemoveField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRemove", "yes"); - } - } - if (this.disableRepairFieldSet) - { - if ((this.disableRepairField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRepair", "no"); - } - if ((this.disableRepairField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRepair", "yes"); - } - } - if (this.helpTelephoneFieldSet) - { - writer.WriteAttributeString("HelpTelephone", this.helpTelephoneField); - } - if (this.helpUrlFieldSet) - { - writer.WriteAttributeString("HelpUrl", this.helpUrlField); - } - if (this.iconSourceFileFieldSet) - { - writer.WriteAttributeString("IconSourceFile", this.iconSourceFileField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.parentNameFieldSet) - { - writer.WriteAttributeString("ParentName", this.parentNameField); - } - if (this.splashScreenSourceFileFieldSet) - { - writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); - } - if (this.tagFieldSet) - { - writer.WriteAttributeString("Tag", this.tagField); - } - if (this.updateUrlFieldSet) - { - writer.WriteAttributeString("UpdateUrl", this.updateUrlField); - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - if (this.conditionFieldSet) - { - writer.WriteAttributeString("Condition", this.conditionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("AboutUrl" == name)) - { - this.aboutUrlField = value; - this.aboutUrlFieldSet = true; - } - if (("Copyright" == name)) - { - this.copyrightField = value; - this.copyrightFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("DisableModify" == name)) - { - this.disableModifyField = Enums.ParseYesNoButtonType(value); - this.disableModifyFieldSet = true; - } - if (("DisableRemove" == name)) - { - this.disableRemoveField = Enums.ParseYesNoType(value); - this.disableRemoveFieldSet = true; - } - if (("DisableRepair" == name)) - { - this.disableRepairField = Enums.ParseYesNoType(value); - this.disableRepairFieldSet = true; - } - if (("HelpTelephone" == name)) - { - this.helpTelephoneField = value; - this.helpTelephoneFieldSet = true; - } - if (("HelpUrl" == name)) - { - this.helpUrlField = value; - this.helpUrlFieldSet = true; - } - if (("IconSourceFile" == name)) - { - this.iconSourceFileField = value; - this.iconSourceFileFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ParentName" == name)) - { - this.parentNameField = value; - this.parentNameFieldSet = true; - } - if (("SplashScreenSourceFile" == name)) - { - this.splashScreenSourceFileField = value; - this.splashScreenSourceFileFieldSet = true; - } - if (("Tag" == name)) - { - this.tagField = value; - this.tagFieldSet = true; - } - if (("UpdateUrl" == name)) - { - this.updateUrlField = value; - this.updateUrlFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - if (("Condition" == name)) - { - this.conditionField = value; - this.conditionFieldSet = true; - } - } - } - - /// - /// Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ApprovedExeForElevation : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the ApprovedExeForElevation element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The key path. - /// For security purposes, the root key will be HKLM and Variables are not supported. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The value name. - /// For security purposes, Variables are not supported. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Instructs the search to look in the 64-bit registry when the value is 'yes'. - /// When the value is 'no', the search looks in the 32-bit registry. - /// The default value is 'no'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ApprovedExeForElevation", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - } - } - - /// - /// Overrides the default log settings for a bundle. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Log : ISchemaElement, ISetAttributes - { - - private YesNoType disableField; - - private bool disableFieldSet; - - private string pathVariableField; - - private bool pathVariableFieldSet; - - private string prefixField; - - private bool prefixFieldSet; - - private string extensionField; - - private bool extensionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Disables the default logging in the Bundle. The end user can still generate a - /// log file by specifying the "-l" command-line argument when installing the - /// Bundle. - /// - public YesNoType Disable - { - get - { - return this.disableField; - } - set - { - this.disableFieldSet = true; - this.disableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value - /// will cause the variable to not be set. The default is "WixBundleLog". - /// - public string PathVariable - { - get - { - return this.pathVariableField; - } - set - { - this.pathVariableFieldSet = true; - this.pathVariableField = value; - } - } - - /// - /// File name and optionally a relative path to use as the prefix for the log file. The - /// default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value - /// "Setup". - /// - public string Prefix - { - get - { - return this.prefixField; - } - set - { - this.prefixFieldSet = true; - this.prefixField = value; - } - } - - /// - /// The extension to use for the log. The default is ".log". - /// - public string Extension - { - get - { - return this.extensionField; - } - set - { - this.extensionFieldSet = true; - this.extensionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Log", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.disableFieldSet) - { - if ((this.disableField == YesNoType.no)) - { - writer.WriteAttributeString("Disable", "no"); - } - if ((this.disableField == YesNoType.yes)) - { - writer.WriteAttributeString("Disable", "yes"); - } - } - if (this.pathVariableFieldSet) - { - writer.WriteAttributeString("PathVariable", this.pathVariableField); - } - if (this.prefixFieldSet) - { - writer.WriteAttributeString("Prefix", this.prefixField); - } - if (this.extensionFieldSet) - { - writer.WriteAttributeString("Extension", this.extensionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Disable" == name)) - { - this.disableField = Enums.ParseYesNoType(value); - this.disableFieldSet = true; - } - if (("PathVariable" == name)) - { - this.pathVariableField = value; - this.pathVariableFieldSet = true; - } - if (("Prefix" == name)) - { - this.prefixField = value; - this.prefixFieldSet = true; - } - if (("Extension" == name)) - { - this.extensionField = value; - this.extensionFieldSet = true; - } - } - } - - /// - /// Specify one or more catalog files that will be used to verify the contents of the bundle. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Catalog : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the catalog element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The catalog file - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Catalog", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Contains all the relevant information about the setup UI. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BootstrapperApplication : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private ISchemaElement parentElement; - - public BootstrapperApplication() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The DLL with the bootstrapper application entry function. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The relative destination path and file name for the bootstrapper application DLL. The default is the source file name. Use this attribute to rename the bootstrapper application DLL or extract it into a subfolder. The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BootstrapperApplication", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - } - } - - /// - /// Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BootstrapperApplicationRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public BootstrapperApplicationRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the BootstrapperApplication element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BootstrapperApplicationRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// This element has been deprecated. Use the BootstrapperApplication element instead. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UX : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string splashScreenSourceFileField; - - private bool splashScreenSourceFileFieldSet; - - private ISchemaElement parentElement; - - public UX() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// See the BootstrapperApplication instead. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// See the BootstrapperApplication instead. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// See the BootstrapperApplication instead. - /// - public string SplashScreenSourceFile - { - get - { - return this.splashScreenSourceFileField; - } - set - { - this.splashScreenSourceFileFieldSet = true; - this.splashScreenSourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UX", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.splashScreenSourceFileFieldSet) - { - writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SplashScreenSourceFile" == name)) - { - this.splashScreenSourceFileField = value; - this.splashScreenSourceFileFieldSet = true; - } - } - } - - /// - /// Writes additional information to the Windows registry that can be used to detect the bundle. - /// This registration is intended primarily for update to an existing product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class OptionalUpdateRegistration : ISchemaElement, ISetAttributes - { - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string departmentField; - - private bool departmentFieldSet; - - private string productFamilyField; - - private bool productFamilyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string classificationField; - - private bool classificationFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the manufacturer. The default is the Bundle/@Manufacturer attribute, - /// but may also be a short form, ex: Acme instead of Acme Corporation. - /// An error is generated at build time if neither attribute is specified. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The name of the department or division publishing the update bundle. - /// The PublishingGroup registry value is not written if this attribute is not specified. - /// - public string Department - { - get - { - return this.departmentField; - } - set - { - this.departmentFieldSet = true; - this.departmentField = value; - } - } - - /// - /// The name of the family of products being updated. The default is the Bundle/@ParentName attribute. - /// The corresponding registry key is not created if neither attribute is specified. - /// - public string ProductFamily - { - get - { - return this.productFamilyField; - } - set - { - this.productFamilyFieldSet = true; - this.productFamilyField = value; - } - } - - /// - /// The name of the bundle. The default is the Bundle/@Name attribute, - /// but may also be a short form, ex: KB12345 instead of Update to Product (KB12345). - /// An error is generated at build time if neither attribute is specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The release type of the update bundle, such as Update, Security Update, Service Pack, etc. - /// The default value is Update. - /// - public string Classification - { - get - { - return this.classificationField; - } - set - { - this.classificationFieldSet = true; - this.classificationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("OptionalUpdateRegistration", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.departmentFieldSet) - { - writer.WriteAttributeString("Department", this.departmentField); - } - if (this.productFamilyFieldSet) - { - writer.WriteAttributeString("ProductFamily", this.productFamilyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.classificationFieldSet) - { - writer.WriteAttributeString("Classification", this.classificationField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Department" == name)) - { - this.departmentField = value; - this.departmentFieldSet = true; - } - if (("ProductFamily" == name)) - { - this.productFamilyField = value; - this.productFamilyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Classification" == name)) - { - this.classificationField = value; - this.classificationFieldSet = true; - } - } - } - - /// - /// Contains the chain of packages to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Chain : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType disableRollbackField; - - private bool disableRollbackFieldSet; - - private YesNoType disableSystemRestoreField; - - private bool disableSystemRestoreFieldSet; - - private YesNoType parallelCacheField; - - private bool parallelCacheFieldSet; - - private ISchemaElement parentElement; - - public Chain() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Specifies whether the bundle will attempt to rollback packages - /// executed in the chain. If "yes" is specified then when a vital - /// package fails to install only that package will rollback and the - /// chain will stop with the error. The default is "no" which - /// indicates all packages executed during the chain will be - /// rolledback to their previous state when a vital package fails. - /// - public YesNoType DisableRollback - { - get - { - return this.disableRollbackField; - } - set - { - this.disableRollbackFieldSet = true; - this.disableRollbackField = value; - } - } - - /// - /// Specifies whether the bundle will attempt to create a system - /// restore point when executing the chain. If "yes" is specified then - /// a system restore point will not be created. The default is "no" which - /// indicates a system restore point will be created when the bundle is - /// installed, uninstalled, repaired, modified, etc. If the system restore - /// point cannot be created, the bundle will log the issue and continue. - /// - public YesNoType DisableSystemRestore - { - get - { - return this.disableSystemRestoreField; - } - set - { - this.disableSystemRestoreFieldSet = true; - this.disableSystemRestoreField = value; - } - } - - /// - /// Specifies whether the bundle will start installing packages - /// while other packages are still being cached. If "yes", - /// packages will start executing when a rollback boundary is - /// encountered. The default is "no" which dictates all packages - /// must be cached before any packages will start to be installed. - /// - public YesNoType ParallelCache - { - get - { - return this.parallelCacheField; - } - set - { - this.parallelCacheFieldSet = true; - this.parallelCacheField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiPackage" == childName)) - { - childValue = new MsiPackage(); - } - if (("MspPackage" == childName)) - { - childValue = new MspPackage(); - } - if (("MsuPackage" == childName)) - { - childValue = new MsuPackage(); - } - if (("ExePackage" == childName)) - { - childValue = new ExePackage(); - } - if (("RollbackBoundary" == childName)) - { - childValue = new RollbackBoundary(); - } - if (("PackageGroupRef" == childName)) - { - childValue = new PackageGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Chain", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.disableRollbackFieldSet) - { - if ((this.disableRollbackField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRollback", "no"); - } - if ((this.disableRollbackField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRollback", "yes"); - } - } - if (this.disableSystemRestoreFieldSet) - { - if ((this.disableSystemRestoreField == YesNoType.no)) - { - writer.WriteAttributeString("DisableSystemRestore", "no"); - } - if ((this.disableSystemRestoreField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableSystemRestore", "yes"); - } - } - if (this.parallelCacheFieldSet) - { - if ((this.parallelCacheField == YesNoType.no)) - { - writer.WriteAttributeString("ParallelCache", "no"); - } - if ((this.parallelCacheField == YesNoType.yes)) - { - writer.WriteAttributeString("ParallelCache", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("DisableRollback" == name)) - { - this.disableRollbackField = Enums.ParseYesNoType(value); - this.disableRollbackFieldSet = true; - } - if (("DisableSystemRestore" == name)) - { - this.disableSystemRestoreField = Enums.ParseYesNoType(value); - this.disableSystemRestoreFieldSet = true; - } - if (("ParallelCache" == name)) - { - this.parallelCacheField = Enums.ParseYesNoType(value); - this.parallelCacheFieldSet = true; - } - } - } - - /// - /// Describes a single msi package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private YesNoType displayInternalUIField; - - private bool displayInternalUIFieldSet; - - private YesNoType enableFeatureSelectionField; - - private bool enableFeatureSelectionFieldSet; - - private YesNoType forcePerMachineField; - - private bool forcePerMachineFieldSet; - - private YesNoType suppressLooseFilePayloadGenerationField; - - private bool suppressLooseFilePayloadGenerationFieldSet; - - private YesNoType visibleField; - - private bool visibleFieldSet; - - private ISchemaElement parentElement; - - public MsiPackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SlipstreamMsp))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// Specifies whether the bundle will show the UI authored into the msi package. The default is "no" - /// which means all information is routed to the bootstrapper application to provide a unified installation - /// experience. If "yes" is specified the UI authored into the msi package will be displayed on top of - /// any bootstrapper application UI. - /// - public YesNoType DisplayInternalUI - { - get - { - return this.displayInternalUIField; - } - set - { - this.displayInternalUIFieldSet = true; - this.displayInternalUIField = value; - } - } - - /// - /// Specifies whether the bundle will allow individual control over the installation state of Features inside - /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and - /// uninstall behavior of the package is always correct. The default is "no". - /// - public YesNoType EnableFeatureSelection - { - get - { - return this.enableFeatureSelectionField; - } - set - { - this.enableFeatureSelectionFieldSet = true; - this.enableFeatureSelectionField = value; - } - } - - /// - /// Override the automatic per-machine detection of MSI packages and force the package to be per-machine. - /// The default is "no", which allows the tools to detect the expected value. - /// - public YesNoType ForcePerMachine - { - get - { - return this.forcePerMachineField; - } - set - { - this.forcePerMachineFieldSet = true; - this.forcePerMachineField = value; - } - } - - /// - /// This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package - /// to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads. - /// The resulting Bundle may not be able to install the MSI package correctly. The default is "no". - /// - public YesNoType SuppressLooseFilePayloadGeneration - { - get - { - return this.suppressLooseFilePayloadGenerationField; - } - set - { - this.suppressLooseFilePayloadGenerationFieldSet = true; - this.suppressLooseFilePayloadGenerationField = value; - } - } - - /// - /// Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is - /// specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI - /// will not be displayed. - /// - public YesNoType Visible - { - get - { - return this.visibleField; - } - set - { - this.visibleFieldSet = true; - this.visibleField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiProperty" == childName)) - { - childValue = new MsiProperty(); - } - if (("SlipstreamMsp" == childName)) - { - childValue = new SlipstreamMsp(); - } - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiPackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.displayInternalUIFieldSet) - { - if ((this.displayInternalUIField == YesNoType.no)) - { - writer.WriteAttributeString("DisplayInternalUI", "no"); - } - if ((this.displayInternalUIField == YesNoType.yes)) - { - writer.WriteAttributeString("DisplayInternalUI", "yes"); - } - } - if (this.enableFeatureSelectionFieldSet) - { - if ((this.enableFeatureSelectionField == YesNoType.no)) - { - writer.WriteAttributeString("EnableFeatureSelection", "no"); - } - if ((this.enableFeatureSelectionField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableFeatureSelection", "yes"); - } - } - if (this.forcePerMachineFieldSet) - { - if ((this.forcePerMachineField == YesNoType.no)) - { - writer.WriteAttributeString("ForcePerMachine", "no"); - } - if ((this.forcePerMachineField == YesNoType.yes)) - { - writer.WriteAttributeString("ForcePerMachine", "yes"); - } - } - if (this.suppressLooseFilePayloadGenerationFieldSet) - { - if ((this.suppressLooseFilePayloadGenerationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "no"); - } - if ((this.suppressLooseFilePayloadGenerationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "yes"); - } - } - if (this.visibleFieldSet) - { - if ((this.visibleField == YesNoType.no)) - { - writer.WriteAttributeString("Visible", "no"); - } - if ((this.visibleField == YesNoType.yes)) - { - writer.WriteAttributeString("Visible", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("DisplayInternalUI" == name)) - { - this.displayInternalUIField = Enums.ParseYesNoType(value); - this.displayInternalUIFieldSet = true; - } - if (("EnableFeatureSelection" == name)) - { - this.enableFeatureSelectionField = Enums.ParseYesNoType(value); - this.enableFeatureSelectionFieldSet = true; - } - if (("ForcePerMachine" == name)) - { - this.forcePerMachineField = Enums.ParseYesNoType(value); - this.forcePerMachineFieldSet = true; - } - if (("SuppressLooseFilePayloadGeneration" == name)) - { - this.suppressLooseFilePayloadGenerationField = Enums.ParseYesNoType(value); - this.suppressLooseFilePayloadGenerationFieldSet = true; - } - if (("Visible" == name)) - { - this.visibleField = Enums.ParseYesNoType(value); - this.visibleFieldSet = true; - } - } - } - - /// - /// Describes a single msp package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MspPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private YesNoType displayInternalUIField; - - private bool displayInternalUIFieldSet; - - private YesNoDefaultType perMachineField; - - private bool perMachineFieldSet; - - private YesNoType slipstreamField; - - private bool slipstreamFieldSet; - - private ISchemaElement parentElement; - - public MspPackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// Specifies whether the bundle will show the UI authored into the msp package. The default is "no" - /// which means all information is routed to the bootstrapper application to provide a unified installation - /// experience. If "yes" is specified the UI authored into the msp package will be displayed on top of - /// any bootstrapper application UI. - /// - public YesNoType DisplayInternalUI - { - get - { - return this.displayInternalUIField; - } - set - { - this.displayInternalUIFieldSet = true; - this.displayInternalUIField = value; - } - } - - /// - /// Indicates the package must be executed elevated. The default is "no". - /// - public YesNoDefaultType PerMachine - { - get - { - return this.perMachineField; - } - set - { - this.perMachineFieldSet = true; - this.perMachineField = value; - } - } - - /// - /// Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no". - /// Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired. - /// - public YesNoType Slipstream - { - get - { - return this.slipstreamField; - } - set - { - this.slipstreamFieldSet = true; - this.slipstreamField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiProperty" == childName)) - { - childValue = new MsiProperty(); - } - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MspPackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.displayInternalUIFieldSet) - { - if ((this.displayInternalUIField == YesNoType.no)) - { - writer.WriteAttributeString("DisplayInternalUI", "no"); - } - if ((this.displayInternalUIField == YesNoType.yes)) - { - writer.WriteAttributeString("DisplayInternalUI", "yes"); - } - } - if (this.perMachineFieldSet) - { - if ((this.perMachineField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("PerMachine", "default"); - } - if ((this.perMachineField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("PerMachine", "no"); - } - if ((this.perMachineField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("PerMachine", "yes"); - } - } - if (this.slipstreamFieldSet) - { - if ((this.slipstreamField == YesNoType.no)) - { - writer.WriteAttributeString("Slipstream", "no"); - } - if ((this.slipstreamField == YesNoType.yes)) - { - writer.WriteAttributeString("Slipstream", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("DisplayInternalUI" == name)) - { - this.displayInternalUIField = Enums.ParseYesNoType(value); - this.displayInternalUIFieldSet = true; - } - if (("PerMachine" == name)) - { - this.perMachineField = Enums.ParseYesNoDefaultType(value); - this.perMachineFieldSet = true; - } - if (("Slipstream" == name)) - { - this.slipstreamField = Enums.ParseYesNoType(value); - this.slipstreamFieldSet = true; - } - } - } - - /// - /// Describes a single msu package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsuPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private string detectConditionField; - - private bool detectConditionFieldSet; - - private string kBField; - - private bool kBFieldSet; - - private ISchemaElement parentElement; - - public MsuPackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// A condition that determines if the package is present on the target system. This condition can use built-in - /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a - /// method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this - /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being - /// installed, Burn will install this package. - /// - public string DetectCondition - { - get - { - return this.detectConditionField; - } - set - { - this.detectConditionFieldSet = true; - this.detectConditionField = value; - } - } - - /// - /// The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to - /// be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute - /// is specified, the Permanent attribute will the control whether the package is uninstalled. - /// - public string KB - { - get - { - return this.kBField; - } - set - { - this.kBFieldSet = true; - this.kBField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if (("RemotePayload" == childName)) - { - childValue = new RemotePayload(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsuPackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.detectConditionFieldSet) - { - writer.WriteAttributeString("DetectCondition", this.detectConditionField); - } - if (this.kBFieldSet) - { - writer.WriteAttributeString("KB", this.kBField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("DetectCondition" == name)) - { - this.detectConditionField = value; - this.detectConditionFieldSet = true; - } - if (("KB" == name)) - { - this.kBField = value; - this.kBFieldSet = true; - } - } - } - - /// - /// Describes a single exe package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExePackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private string detectConditionField; - - private bool detectConditionFieldSet; - - private string installCommandField; - - private bool installCommandFieldSet; - - private string repairCommandField; - - private bool repairCommandFieldSet; - - private string uninstallCommandField; - - private bool uninstallCommandFieldSet; - - private YesNoDefaultType perMachineField; - - private bool perMachineFieldSet; - - private BurnExeProtocolType protocolField; - - private bool protocolFieldSet; - - private ISchemaElement parentElement; - - public ExePackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExitCode))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CommandLine))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// A condition that determines if the package is present on the target system. This condition can use built-in - /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a - /// method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this - /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being - /// installed, Burn will install this package. - /// - public string DetectCondition - { - get - { - return this.detectConditionField; - } - set - { - this.detectConditionFieldSet = true; - this.detectConditionField = value; - } - } - - /// - /// The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments. - /// - public string InstallCommand - { - get - { - return this.installCommandField; - } - set - { - this.installCommandFieldSet = true; - this.installCommandField = value; - } - } - - /// - /// The command-line arguments to specify to indicate a repair. If the executable package can be repaired but - /// does not require any special command-line arguments to do so then set the attribute's value to blank. To - /// indicate that the package does not support repair, omit this attribute. - /// - public string RepairCommand - { - get - { - return this.repairCommandField; - } - set - { - this.repairCommandFieldSet = true; - this.repairCommandField = value; - } - } - - /// - /// The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes". - /// - public string UninstallCommand - { - get - { - return this.uninstallCommandField; - } - set - { - this.uninstallCommandFieldSet = true; - this.uninstallCommandField = value; - } - } - - /// - /// Indicates the package must be executed elevated. The default is "no". - /// - public YesNoDefaultType PerMachine - { - get - { - return this.perMachineField; - } - set - { - this.perMachineFieldSet = true; - this.perMachineField = value; - } - } - - /// - /// Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none". - /// - public BurnExeProtocolType Protocol - { - get - { - return this.protocolField; - } - set - { - this.protocolFieldSet = true; - this.protocolField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if (("RemotePayload" == childName)) - { - childValue = new RemotePayload(); - } - if (("ExitCode" == childName)) - { - childValue = new ExitCode(); - } - if (("CommandLine" == childName)) - { - childValue = new CommandLine(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExePackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.detectConditionFieldSet) - { - writer.WriteAttributeString("DetectCondition", this.detectConditionField); - } - if (this.installCommandFieldSet) - { - writer.WriteAttributeString("InstallCommand", this.installCommandField); - } - if (this.repairCommandFieldSet) - { - writer.WriteAttributeString("RepairCommand", this.repairCommandField); - } - if (this.uninstallCommandFieldSet) - { - writer.WriteAttributeString("UninstallCommand", this.uninstallCommandField); - } - if (this.perMachineFieldSet) - { - if ((this.perMachineField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("PerMachine", "default"); - } - if ((this.perMachineField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("PerMachine", "no"); - } - if ((this.perMachineField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("PerMachine", "yes"); - } - } - if (this.protocolFieldSet) - { - if ((this.protocolField == BurnExeProtocolType.none)) - { - writer.WriteAttributeString("Protocol", "none"); - } - if ((this.protocolField == BurnExeProtocolType.burn)) - { - writer.WriteAttributeString("Protocol", "burn"); - } - if ((this.protocolField == BurnExeProtocolType.netfx4)) - { - writer.WriteAttributeString("Protocol", "netfx4"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("DetectCondition" == name)) - { - this.detectConditionField = value; - this.detectConditionFieldSet = true; - } - if (("InstallCommand" == name)) - { - this.installCommandField = value; - this.installCommandFieldSet = true; - } - if (("RepairCommand" == name)) - { - this.repairCommandField = value; - this.repairCommandFieldSet = true; - } - if (("UninstallCommand" == name)) - { - this.uninstallCommandField = value; - this.uninstallCommandFieldSet = true; - } - if (("PerMachine" == name)) - { - this.perMachineField = Enums.ParseYesNoDefaultType(value); - this.perMachineFieldSet = true; - } - if (("Protocol" == name)) - { - this.protocolField = Enums.ParseBurnExeProtocolType(value); - this.protocolFieldSet = true; - } - } - } - - /// - /// Describes a rollback boundary in the chain. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RollbackBoundary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoType transactionField; - - private bool transactionFieldSet; - - private ISchemaElement parentElement; - - public RollbackBoundary() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is - /// not provided a stable identifier will be generated. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if - /// the rollback boundary is encountered then the chain will fail and rollback or stop. If "no" - /// is specified then the chain should continue successfuly at the next rollback boundary. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no" - /// - public YesNoType Transaction - { - get - { - return this.transactionField; - } - set - { - this.transactionFieldSet = true; - this.transactionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RollbackBoundary", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.transactionFieldSet) - { - if ((this.transactionField == YesNoType.no)) - { - writer.WriteAttributeString("Transaction", "no"); - } - if ((this.transactionField == YesNoType.yes)) - { - writer.WriteAttributeString("Transaction", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Transaction" == name)) - { - this.transactionField = Enums.ParseYesNoType(value); - this.transactionFieldSet = true; - } - } - } - - /// - /// Describes a package group to a bootstrapper. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PackageGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PackageGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for package group. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiPackage" == childName)) - { - childValue = new MsiPackage(); - } - if (("MspPackage" == childName)) - { - childValue = new MspPackage(); - } - if (("MsuPackage" == childName)) - { - childValue = new MsuPackage(); - } - if (("ExePackage" == childName)) - { - childValue = new ExePackage(); - } - if (("RollbackBoundary" == childName)) - { - childValue = new RollbackBoundary(); - } - if (("PackageGroupRef" == childName)) - { - childValue = new PackageGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PackageGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to PackageGroup element that exists inside a Bundle or Fragment element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PackageGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PackageGroup element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of a package that this group should be installed after. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PackageGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - } - } - - /// - /// Allows an MSI property to be set based on the value of a burn engine expression. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiProperty : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The value to set the property to. This string is evaluated by the burn engine and can be as simple as a burn engine variable reference or as complex as a full expression. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Specifies a patch included in the same bundle that is installed when the parent MSI package is installed. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SlipstreamMsp : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier for a MspPackage in the bundle. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SlipstreamMsp", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Describes a burn engine variable to define. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Variable : ISchemaElement, ISetAttributes - { - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private YesNoType persistedField; - - private bool persistedFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - /// - /// Whether the value of the variable should be hidden. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// The name for the variable. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Whether the variable should be persisted. - /// - public YesNoType Persisted - { - get - { - return this.persistedField; - } - set - { - this.persistedFieldSet = true; - this.persistedField = value; - } - } - - /// - /// Starting value for the variable. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Type of the variable, inferred from the value if not specified. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - Variable.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - if (("numeric" == value)) - { - parsedValue = TypeType.numeric; - } - else - { - if (("version" == value)) - { - parsedValue = TypeType.version; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Variable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.persistedFieldSet) - { - if ((this.persistedField == YesNoType.no)) - { - writer.WriteAttributeString("Persisted", "no"); - } - if ((this.persistedField == YesNoType.yes)) - { - writer.WriteAttributeString("Persisted", "yes"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - if ((this.typeField == TypeType.numeric)) - { - writer.WriteAttributeString("Type", "numeric"); - } - if ((this.typeField == TypeType.version)) - { - writer.WriteAttributeString("Type", "version"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Persisted" == name)) - { - this.persistedField = Enums.ParseYesNoType(value); - this.persistedFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Variable.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - @string, - - numeric, - - version, - } - } - - /// - /// Representation of a file that contains one or more files. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Container : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private BurnContainerType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - public Container() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// The unique identifier for the container. If this attribute is not specified the Name attribute will be used. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If - /// this attribute is not specified, the default is to create a detached container. - /// - public BurnContainerType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PackageGroupRef" == childName)) - { - childValue = new PackageGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Container", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == BurnContainerType.attached)) - { - writer.WriteAttributeString("Type", "attached"); - } - if ((this.typeField == BurnContainerType.detached)) - { - writer.WriteAttributeString("Type", "detached"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Enums.ParseBurnContainerType(value); - this.typeFieldSet = true; - } - } - } - - /// - /// Create a reference to an existing Container element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ContainerRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of Container element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ContainerRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Describes map of exit code returned from executable package to a bootstrapper behavior. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExitCode : ISchemaElement, ISetAttributes - { - - private int valueField; - - private bool valueFieldSet; - - private BehaviorType behaviorField; - - private bool behaviorFieldSet; - - private ISchemaElement parentElement; - - /// - /// Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior. - /// - public int Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot. - /// - public BehaviorType Behavior - { - get - { - return this.behaviorField; - } - set - { - this.behaviorFieldSet = true; - this.behaviorField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a BehaviorType from a string. - /// - public static BehaviorType ParseBehaviorType(string value) - { - BehaviorType parsedValue; - ExitCode.TryParseBehaviorType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a BehaviorType from a string. - /// - public static bool TryParseBehaviorType(string value, out BehaviorType parsedValue) - { - parsedValue = BehaviorType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("success" == value)) - { - parsedValue = BehaviorType.success; - } - else - { - if (("error" == value)) - { - parsedValue = BehaviorType.error; - } - else - { - if (("scheduleReboot" == value)) - { - parsedValue = BehaviorType.scheduleReboot; - } - else - { - if (("forceReboot" == value)) - { - parsedValue = BehaviorType.forceReboot; - } - else - { - parsedValue = BehaviorType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExitCode", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.behaviorFieldSet) - { - if ((this.behaviorField == BehaviorType.success)) - { - writer.WriteAttributeString("Behavior", "success"); - } - if ((this.behaviorField == BehaviorType.error)) - { - writer.WriteAttributeString("Behavior", "error"); - } - if ((this.behaviorField == BehaviorType.scheduleReboot)) - { - writer.WriteAttributeString("Behavior", "scheduleReboot"); - } - if ((this.behaviorField == BehaviorType.forceReboot)) - { - writer.WriteAttributeString("Behavior", "forceReboot"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Value" == name)) - { - this.valueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.valueFieldSet = true; - } - if (("Behavior" == name)) - { - this.behaviorField = ExitCode.ParseBehaviorType(value); - this.behaviorFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum BehaviorType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - success, - - error, - - scheduleReboot, - - forceReboot, - } - } - - /// - /// Describes additional, conditional command-line arguments for an ExePackage. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CommandLine : ISchemaElement, ISetAttributes - { - - private string installArgumentField; - - private bool installArgumentFieldSet; - - private string uninstallArgumentField; - - private bool uninstallArgumentFieldSet; - - private string repairArgumentField; - - private bool repairArgumentFieldSet; - - private string conditionField; - - private bool conditionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Additional command-line arguments to apply during package installation if Condition is true. - /// - public string InstallArgument - { - get - { - return this.installArgumentField; - } - set - { - this.installArgumentFieldSet = true; - this.installArgumentField = value; - } - } - - /// - /// Additional command-line arguments to apply during package uninstallation if Condition is true. - /// - public string UninstallArgument - { - get - { - return this.uninstallArgumentField; - } - set - { - this.uninstallArgumentFieldSet = true; - this.uninstallArgumentField = value; - } - } - - /// - /// Additional command-line arguments to apply during package repair if Condition is true. - /// - public string RepairArgument - { - get - { - return this.repairArgumentField; - } - set - { - this.repairArgumentFieldSet = true; - this.repairArgumentField = value; - } - } - - /// - /// The condition that controls whether the command-line arguments specified in the - /// InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the - /// command line passed to the ExePackage. Which attribute is used depends on the - /// action being applied to the ExePackage. For example, when the ExePackage is - /// being installed, the InstallArgument attribute value is appended to the command - /// line when the ExePackage is executed. - /// - public string Condition - { - get - { - return this.conditionField; - } - set - { - this.conditionFieldSet = true; - this.conditionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CommandLine", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.installArgumentFieldSet) - { - writer.WriteAttributeString("InstallArgument", this.installArgumentField); - } - if (this.uninstallArgumentFieldSet) - { - writer.WriteAttributeString("UninstallArgument", this.uninstallArgumentField); - } - if (this.repairArgumentFieldSet) - { - writer.WriteAttributeString("RepairArgument", this.repairArgumentField); - } - if (this.conditionFieldSet) - { - writer.WriteAttributeString("Condition", this.conditionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("InstallArgument" == name)) - { - this.installArgumentField = value; - this.installArgumentFieldSet = true; - } - if (("UninstallArgument" == name)) - { - this.uninstallArgumentField = value; - this.uninstallArgumentFieldSet = true; - } - if (("RepairArgument" == name)) - { - this.repairArgumentField = value; - this.repairArgumentFieldSet = true; - } - if (("Condition" == name)) - { - this.conditionField = value; - this.conditionFieldSet = true; - } - } - } - - /// - /// Describes a payload to a bootstrapper. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Payload : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of Payload element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Whether the payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// Location of the source file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Payload", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - } - } - - /// - /// Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle. - /// PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage. - /// It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PayloadGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PayloadGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for payload group. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PayloadGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PayloadGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PayloadGroup element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PayloadGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Describes information about a remote file payload that is not available at the time of building the bundle. - /// The parent must specify DownloadUrl and must not specify SourceFile when using this element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemotePayload : ISchemaElement, ISetAttributes - { - - private string certificatePublicKeyField; - - private bool certificatePublicKeyFieldSet; - - private string certificateThumbprintField; - - private bool certificateThumbprintFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string hashField; - - private bool hashFieldSet; - - private string productNameField; - - private bool productNameFieldSet; - - private int sizeField; - - private bool sizeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Public key of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. - /// - public string CertificatePublicKey - { - get - { - return this.certificatePublicKeyField; - } - set - { - this.certificatePublicKeyFieldSet = true; - this.certificatePublicKeyField = value; - } - } - - /// - /// Thumbprint of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. - /// - public string CertificateThumbprint - { - get - { - return this.certificateThumbprintField; - } - set - { - this.certificateThumbprintFieldSet = true; - this.certificateThumbprintField = value; - } - } - - /// - /// Description of the file from version resources. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes. - /// - public string Hash - { - get - { - return this.hashField; - } - set - { - this.hashFieldSet = true; - this.hashField = value; - } - } - - /// - /// Product name of the file from version resouces. - /// - public string ProductName - { - get - { - return this.productNameField; - } - set - { - this.productNameFieldSet = true; - this.productNameField = value; - } - } - - /// - /// Size of the remote file in bytes. - /// - public int Size - { - get - { - return this.sizeField; - } - set - { - this.sizeFieldSet = true; - this.sizeField = value; - } - } - - /// - /// Version of the remote file - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemotePayload", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.certificatePublicKeyFieldSet) - { - writer.WriteAttributeString("CertificatePublicKey", this.certificatePublicKeyField); - } - if (this.certificateThumbprintFieldSet) - { - writer.WriteAttributeString("CertificateThumbprint", this.certificateThumbprintField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.hashFieldSet) - { - writer.WriteAttributeString("Hash", this.hashField); - } - if (this.productNameFieldSet) - { - writer.WriteAttributeString("ProductName", this.productNameField); - } - if (this.sizeFieldSet) - { - writer.WriteAttributeString("Size", this.sizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("CertificatePublicKey" == name)) - { - this.certificatePublicKeyField = value; - this.certificatePublicKeyFieldSet = true; - } - if (("CertificateThumbprint" == name)) - { - this.certificateThumbprintField = value; - this.certificateThumbprintFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Hash" == name)) - { - this.hashField = value; - this.hashFieldSet = true; - } - if (("ProductName" == name)) - { - this.productNameField = value; - this.productNameFieldSet = true; - } - if (("Size" == name)) - { - this.sizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sizeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - } - } - - /// - /// Create a RelatedBundle element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RelatedBundle : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the RelatedBundle group. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The action to take on bundles related to this one. Detect is the default. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RelatedBundle.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Detect" == value)) - { - parsedValue = ActionType.Detect; - } - else - { - if (("Upgrade" == value)) - { - parsedValue = ActionType.Upgrade; - } - else - { - if (("Addon" == value)) - { - parsedValue = ActionType.Addon; - } - else - { - if (("Patch" == value)) - { - parsedValue = ActionType.Patch; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RelatedBundle", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.Detect)) - { - writer.WriteAttributeString("Action", "Detect"); - } - if ((this.actionField == ActionType.Upgrade)) - { - writer.WriteAttributeString("Action", "Upgrade"); - } - if ((this.actionField == ActionType.Addon)) - { - writer.WriteAttributeString("Action", "Addon"); - } - if ((this.actionField == ActionType.Patch)) - { - writer.WriteAttributeString("Action", "Patch"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RelatedBundle.ParseActionType(value); - this.actionFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Detect, - - Upgrade, - - Addon, - - Patch, - } - } - - /// - /// Defines the update for a Bundle. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Update : ISchemaElement, ISetAttributes - { - - private string locationField; - - private bool locationFieldSet; - - private ISchemaElement parentElement; - - /// - /// The absolute path or URL to check for an update bundle. Currently the engine provides this value - /// in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the - /// future the engine will be able to acquire an update bundle from the location and determine if it - /// is newer than the current executing bundle. - /// - public string Location - { - get - { - return this.locationField; - } - set - { - this.locationFieldSet = true; - this.locationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Update", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.locationFieldSet) - { - writer.WriteAttributeString("Location", this.locationField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Location" == name)) - { - this.locationField = value; - this.locationFieldSet = true; - } - } - } - - /// - /// The Product element is analogous to the main function in a C program. When linking, only one Product section - /// can be given to the linker to produce a successful result. Using this element creates an msi file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Product : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private ISchemaElement parentElement; - - public Product() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(InstanceTransforms))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MajorUpgrade))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); - childCollection1.AddCollection(childCollection2); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The product code GUID for the product. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The code page integer value or web name for the resulting MSI. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// The decimal language ID (LCID) for the product. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The manufacturer of the product. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The descriptive name of the product. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The upgrade code GUID for the product. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - /// - /// The product's version string. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Package" == childName)) - { - childValue = new Package(); - } - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("ComplianceCheck" == childName)) - { - childValue = new ComplianceCheck(); - } - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroup" == childName)) - { - childValue = new ComponentGroup(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("CustomAction" == childName)) - { - childValue = new CustomAction(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("CustomTable" == childName)) - { - childValue = new CustomTable(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("EmbeddedChainer" == childName)) - { - childValue = new EmbeddedChainer(); - } - if (("EmbeddedChainerRef" == childName)) - { - childValue = new EmbeddedChainerRef(); - } - if (("EnsureTable" == childName)) - { - childValue = new EnsureTable(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("InstanceTransforms" == childName)) - { - childValue = new InstanceTransforms(); - } - if (("MajorUpgrade" == childName)) - { - childValue = new MajorUpgrade(); - } - if (("Media" == childName)) - { - childValue = new Media(); - } - if (("MediaTemplate" == childName)) - { - childValue = new MediaTemplate(); - } - if (("PackageCertificates" == childName)) - { - childValue = new PackageCertificates(); - } - if (("PatchCertificates" == childName)) - { - childValue = new PatchCertificates(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("SetDirectory" == childName)) - { - childValue = new SetDirectory(); - } - if (("SetProperty" == childName)) - { - childValue = new SetProperty(); - } - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("UI" == childName)) - { - childValue = new UI(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if (("Upgrade" == childName)) - { - childValue = new Upgrade(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if (("InstallExecuteSequence" == childName)) - { - childValue = new InstallExecuteSequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("AdminExecuteSequence" == childName)) - { - childValue = new AdminExecuteSequence(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("AdvertiseExecuteSequence" == childName)) - { - childValue = new AdvertiseExecuteSequence(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Product", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - } - } - - /// - /// The Module element is analogous to the main function in a C program. When linking, only - /// one Module section can be given to the linker to produce a successful result. Using this - /// element creates an msm file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Module : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private string guidField; - - private bool guidFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private ISchemaElement parentElement; - - public Module() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Configuration))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Dependency))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Exclusion))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Substitution))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); - childCollection1.AddCollection(childCollection2); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The name of the merge module (not the file name). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The code page integer value or web name for the resulting MSM. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// This attribute is deprecated. Use the Package/@Id attribute instead. - /// - public string Guid - { - get - { - return this.guidField; - } - set - { - this.guidFieldSet = true; - this.guidField = value; - } - } - - /// - /// The decimal language ID (LCID) of the merge module. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The major and minor versions of the merge module. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Package" == childName)) - { - childValue = new Package(); - } - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Configuration" == childName)) - { - childValue = new Configuration(); - } - if (("CustomAction" == childName)) - { - childValue = new CustomAction(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("CustomTable" == childName)) - { - childValue = new CustomTable(); - } - if (("Dependency" == childName)) - { - childValue = new Dependency(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("EmbeddedChainer" == childName)) - { - childValue = new EmbeddedChainer(); - } - if (("EmbeddedChainerRef" == childName)) - { - childValue = new EmbeddedChainerRef(); - } - if (("EnsureTable" == childName)) - { - childValue = new EnsureTable(); - } - if (("Exclusion" == childName)) - { - childValue = new Exclusion(); - } - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("IgnoreModularization" == childName)) - { - childValue = new IgnoreModularization(); - } - if (("IgnoreTable" == childName)) - { - childValue = new IgnoreTable(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("SetDirectory" == childName)) - { - childValue = new SetDirectory(); - } - if (("SetProperty" == childName)) - { - childValue = new SetProperty(); - } - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("Substitution" == childName)) - { - childValue = new Substitution(); - } - if (("UI" == childName)) - { - childValue = new UI(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if (("InstallExecuteSequence" == childName)) - { - childValue = new InstallExecuteSequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("AdminExecuteSequence" == childName)) - { - childValue = new AdminExecuteSequence(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("AdvertiseExecuteSequence" == childName)) - { - childValue = new AdvertiseExecuteSequence(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Module", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.guidFieldSet) - { - writer.WriteAttributeString("Guid", this.guidField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("Guid" == name)) - { - this.guidField = value; - this.guidFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - } - } - - /// - /// Declares a dependency on another merge module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Dependency : ISchemaElement, ISetAttributes - { - - private string requiredIdField; - - private bool requiredIdFieldSet; - - private int requiredLanguageField; - - private bool requiredLanguageFieldSet; - - private string requiredVersionField; - - private bool requiredVersionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier of the merge module required by the merge module. - /// - public string RequiredId - { - get - { - return this.requiredIdField; - } - set - { - this.requiredIdFieldSet = true; - this.requiredIdField = value; - } - } - - /// - /// Numeric language ID of the merge module in RequiredID. - /// - public int RequiredLanguage - { - get - { - return this.requiredLanguageField; - } - set - { - this.requiredLanguageFieldSet = true; - this.requiredLanguageField = value; - } - } - - /// - /// Version of the merge module in RequiredID. - /// - public string RequiredVersion - { - get - { - return this.requiredVersionField; - } - set - { - this.requiredVersionFieldSet = true; - this.requiredVersionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Dependency", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.requiredIdFieldSet) - { - writer.WriteAttributeString("RequiredId", this.requiredIdField); - } - if (this.requiredLanguageFieldSet) - { - writer.WriteAttributeString("RequiredLanguage", this.requiredLanguageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.requiredVersionFieldSet) - { - writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("RequiredId" == name)) - { - this.requiredIdField = value; - this.requiredIdFieldSet = true; - } - if (("RequiredLanguage" == name)) - { - this.requiredLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.requiredLanguageFieldSet = true; - } - if (("RequiredVersion" == name)) - { - this.requiredVersionField = value; - this.requiredVersionFieldSet = true; - } - } - } - - /// - /// Declares a merge module with which this merge module is incompatible. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Exclusion : ISchemaElement, ISetAttributes - { - - private string excludedIdField; - - private bool excludedIdFieldSet; - - private int excludeExceptLanguageField; - - private bool excludeExceptLanguageFieldSet; - - private int excludeLanguageField; - - private bool excludeLanguageFieldSet; - - private string excludedMinVersionField; - - private bool excludedMinVersionFieldSet; - - private string excludedMaxVersionField; - - private bool excludedMaxVersionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier of the merge module that is incompatible. - /// - public string ExcludedId - { - get - { - return this.excludedIdField; - } - set - { - this.excludedIdFieldSet = true; - this.excludedIdField = value; - } - } - - /// - /// Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. - /// - public int ExcludeExceptLanguage - { - get - { - return this.excludeExceptLanguageField; - } - set - { - this.excludeExceptLanguageFieldSet = true; - this.excludeExceptLanguageField = value; - } - } - - /// - /// Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. - /// - public int ExcludeLanguage - { - get - { - return this.excludeLanguageField; - } - set - { - this.excludeLanguageFieldSet = true; - this.excludeLanguageField = value; - } - } - - /// - /// Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version. - /// - public string ExcludedMinVersion - { - get - { - return this.excludedMinVersionField; - } - set - { - this.excludedMinVersionFieldSet = true; - this.excludedMinVersionField = value; - } - } - - /// - /// Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version. - /// - public string ExcludedMaxVersion - { - get - { - return this.excludedMaxVersionField; - } - set - { - this.excludedMaxVersionFieldSet = true; - this.excludedMaxVersionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Exclusion", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.excludedIdFieldSet) - { - writer.WriteAttributeString("ExcludedId", this.excludedIdField); - } - if (this.excludeExceptLanguageFieldSet) - { - writer.WriteAttributeString("ExcludeExceptLanguage", this.excludeExceptLanguageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.excludeLanguageFieldSet) - { - writer.WriteAttributeString("ExcludeLanguage", this.excludeLanguageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.excludedMinVersionFieldSet) - { - writer.WriteAttributeString("ExcludedMinVersion", this.excludedMinVersionField); - } - if (this.excludedMaxVersionFieldSet) - { - writer.WriteAttributeString("ExcludedMaxVersion", this.excludedMaxVersionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("ExcludedId" == name)) - { - this.excludedIdField = value; - this.excludedIdFieldSet = true; - } - if (("ExcludeExceptLanguage" == name)) - { - this.excludeExceptLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.excludeExceptLanguageFieldSet = true; - } - if (("ExcludeLanguage" == name)) - { - this.excludeLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.excludeLanguageFieldSet = true; - } - if (("ExcludedMinVersion" == name)) - { - this.excludedMinVersionField = value; - this.excludedMinVersionFieldSet = true; - } - if (("ExcludedMaxVersion" == name)) - { - this.excludedMaxVersionField = value; - this.excludedMaxVersionFieldSet = true; - } - } - } - - /// - /// Defines the configurable attributes of merge module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Configuration : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private FormatType formatField; - - private bool formatFieldSet; - - private string typeField; - - private bool typeFieldSet; - - private string contextDataField; - - private bool contextDataFieldSet; - - private string defaultValueField; - - private bool defaultValueFieldSet; - - private YesNoType keyNoOrphanField; - - private bool keyNoOrphanFieldSet; - - private YesNoType nonNullableField; - - private bool nonNullableFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string helpLocationField; - - private bool helpLocationFieldSet; - - private string helpKeywordField; - - private bool helpKeywordFieldSet; - - private ISchemaElement parentElement; - - /// - /// Defines the name of the configurable item. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Specifies the format of the data being changed. - /// - public FormatType Format - { - get - { - return this.formatField; - } - set - { - this.formatFieldSet = true; - this.formatField = value; - } - } - - /// - /// Specifies the type of the data being changed. - /// - public string Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Specifies a semantic context for the requested data. - /// - public string ContextData - { - get - { - return this.contextDataField; - } - set - { - this.contextDataFieldSet = true; - this.contextDataField = value; - } - } - - /// - /// Specifies a default value for the item in this record if the merge tool declines to provide a value. - /// - public string DefaultValue - { - get - { - return this.defaultValueField; - } - set - { - this.defaultValueFieldSet = true; - this.defaultValueField = value; - } - } - - /// - /// Does not merge rule according to rules in MSI SDK. - /// - public YesNoType KeyNoOrphan - { - get - { - return this.keyNoOrphanField; - } - set - { - this.keyNoOrphanFieldSet = true; - this.keyNoOrphanField = value; - } - } - - /// - /// If yes, null is not a valid entry. - /// - public YesNoType NonNullable - { - get - { - return this.nonNullableField; - } - set - { - this.nonNullableFieldSet = true; - this.nonNullableField = value; - } - } - - /// - /// Display name for authoring. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Description for authoring. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Location of chm file for authoring. - /// - public string HelpLocation - { - get - { - return this.helpLocationField; - } - set - { - this.helpLocationFieldSet = true; - this.helpLocationField = value; - } - } - - /// - /// Keyword into chm file for authoring. - /// - public string HelpKeyword - { - get - { - return this.helpKeywordField; - } - set - { - this.helpKeywordFieldSet = true; - this.helpKeywordField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a FormatType from a string. - /// - public static FormatType ParseFormatType(string value) - { - FormatType parsedValue; - Configuration.TryParseFormatType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a FormatType from a string. - /// - public static bool TryParseFormatType(string value, out FormatType parsedValue) - { - parsedValue = FormatType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Text" == value)) - { - parsedValue = FormatType.Text; - } - else - { - if (("Key" == value)) - { - parsedValue = FormatType.Key; - } - else - { - if (("Integer" == value)) - { - parsedValue = FormatType.Integer; - } - else - { - if (("Bitfield" == value)) - { - parsedValue = FormatType.Bitfield; - } - else - { - parsedValue = FormatType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Configuration", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.formatFieldSet) - { - if ((this.formatField == FormatType.Text)) - { - writer.WriteAttributeString("Format", "Text"); - } - if ((this.formatField == FormatType.Key)) - { - writer.WriteAttributeString("Format", "Key"); - } - if ((this.formatField == FormatType.Integer)) - { - writer.WriteAttributeString("Format", "Integer"); - } - if ((this.formatField == FormatType.Bitfield)) - { - writer.WriteAttributeString("Format", "Bitfield"); - } - } - if (this.typeFieldSet) - { - writer.WriteAttributeString("Type", this.typeField); - } - if (this.contextDataFieldSet) - { - writer.WriteAttributeString("ContextData", this.contextDataField); - } - if (this.defaultValueFieldSet) - { - writer.WriteAttributeString("DefaultValue", this.defaultValueField); - } - if (this.keyNoOrphanFieldSet) - { - if ((this.keyNoOrphanField == YesNoType.no)) - { - writer.WriteAttributeString("KeyNoOrphan", "no"); - } - if ((this.keyNoOrphanField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyNoOrphan", "yes"); - } - } - if (this.nonNullableFieldSet) - { - if ((this.nonNullableField == YesNoType.no)) - { - writer.WriteAttributeString("NonNullable", "no"); - } - if ((this.nonNullableField == YesNoType.yes)) - { - writer.WriteAttributeString("NonNullable", "yes"); - } - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.helpLocationFieldSet) - { - writer.WriteAttributeString("HelpLocation", this.helpLocationField); - } - if (this.helpKeywordFieldSet) - { - writer.WriteAttributeString("HelpKeyword", this.helpKeywordField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Format" == name)) - { - this.formatField = Configuration.ParseFormatType(value); - this.formatFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = value; - this.typeFieldSet = true; - } - if (("ContextData" == name)) - { - this.contextDataField = value; - this.contextDataFieldSet = true; - } - if (("DefaultValue" == name)) - { - this.defaultValueField = value; - this.defaultValueFieldSet = true; - } - if (("KeyNoOrphan" == name)) - { - this.keyNoOrphanField = Enums.ParseYesNoType(value); - this.keyNoOrphanFieldSet = true; - } - if (("NonNullable" == name)) - { - this.nonNullableField = Enums.ParseYesNoType(value); - this.nonNullableFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("HelpLocation" == name)) - { - this.helpLocationField = value; - this.helpLocationFieldSet = true; - } - if (("HelpKeyword" == name)) - { - this.helpKeywordField = value; - this.helpKeywordFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum FormatType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Text, - - Key, - - Integer, - - Bitfield, - } - } - - /// - /// Specifies the configurable fields of a module database and provides a template for the configuration of each field. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Substitution : ISchemaElement, ISetAttributes - { - - private string tableField; - - private bool tableFieldSet; - - private string rowField; - - private bool rowFieldSet; - - private string columnField; - - private bool columnFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the name of the table being modified in the module database. - /// - public string Table - { - get - { - return this.tableField; - } - set - { - this.tableFieldSet = true; - this.tableField = value; - } - } - - /// - /// Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons. - /// - public string Row - { - get - { - return this.rowField; - } - set - { - this.rowFieldSet = true; - this.rowField = value; - } - } - - /// - /// Specifies the target column in the row named in the Row column. - /// - public string Column - { - get - { - return this.columnField; - } - set - { - this.columnFieldSet = true; - this.columnField = value; - } - } - - /// - /// Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Substitution", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.tableFieldSet) - { - writer.WriteAttributeString("Table", this.tableField); - } - if (this.rowFieldSet) - { - writer.WriteAttributeString("Row", this.rowField); - } - if (this.columnFieldSet) - { - writer.WriteAttributeString("Column", this.columnField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Table" == name)) - { - this.tableField = value; - this.tableFieldSet = true; - } - if (("Row" == name)) - { - this.rowField = value; - this.rowFieldSet = true; - } - if (("Column" == name)) - { - this.columnField = value; - this.columnFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Specifies a table from the merge module that is not merged into an .msi file. - /// If the table already exists in an .msi file, it is not modified by the merge. - /// The specified table can therefore contain data that is unneeded after the merge. - /// To minimize the size of the .msm file, it is recommended that developers remove - /// unused tables from modules intended for redistribution rather than creating - /// IgnoreTable elements for those tables. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IgnoreTable : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the table in the merge module that is not to be merged into the .msi file. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IgnoreTable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The Fragment element is the building block of creating an installer database in WiX. Once defined, - /// the Fragment becomes an immutable, atomic unit which can either be completely included or excluded - /// from a product. The contents of a Fragment element can be linked into a product by utilizing one - /// of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its - /// individual units. For instance, if a given Fragment contains two Component elements, you must link - /// both under features using ComponentRef for each linked Component. Otherwise, you will get a linker - /// warning and have a floating Component that does not appear under any Feature. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Fragment : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public Fragment() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Optional identifier for a Fragment. Should only be set by advanced users to tag sections. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("BootstrapperApplication" == childName)) - { - childValue = new BootstrapperApplication(); - } - if (("BootstrapperApplicationRef" == childName)) - { - childValue = new BootstrapperApplicationRef(); - } - if (("ComplianceCheck" == childName)) - { - childValue = new ComplianceCheck(); - } - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroup" == childName)) - { - childValue = new ComponentGroup(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("Container" == childName)) - { - childValue = new Container(); - } - if (("CustomAction" == childName)) - { - childValue = new CustomAction(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("CustomTable" == childName)) - { - childValue = new CustomTable(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("EmbeddedChainer" == childName)) - { - childValue = new EmbeddedChainer(); - } - if (("EmbeddedChainerRef" == childName)) - { - childValue = new EmbeddedChainerRef(); - } - if (("EnsureTable" == childName)) - { - childValue = new EnsureTable(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureGroup" == childName)) - { - childValue = new FeatureGroup(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("IgnoreModularization" == childName)) - { - childValue = new IgnoreModularization(); - } - if (("Media" == childName)) - { - childValue = new Media(); - } - if (("MediaTemplate" == childName)) - { - childValue = new MediaTemplate(); - } - if (("PackageGroup" == childName)) - { - childValue = new PackageGroup(); - } - if (("PackageCertificates" == childName)) - { - childValue = new PackageCertificates(); - } - if (("PatchCertificates" == childName)) - { - childValue = new PatchCertificates(); - } - if (("PatchFamily" == childName)) - { - childValue = new PatchFamily(); - } - if (("PatchFamilyGroup" == childName)) - { - childValue = new PatchFamilyGroup(); - } - if (("PayloadGroup" == childName)) - { - childValue = new PayloadGroup(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("RelatedBundle" == childName)) - { - childValue = new RelatedBundle(); - } - if (("SetDirectory" == childName)) - { - childValue = new SetDirectory(); - } - if (("SetProperty" == childName)) - { - childValue = new SetProperty(); - } - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("UI" == childName)) - { - childValue = new UI(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if (("Upgrade" == childName)) - { - childValue = new Upgrade(); - } - if (("Variable" == childName)) - { - childValue = new Variable(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if (("InstallExecuteSequence" == childName)) - { - childValue = new InstallExecuteSequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("AdminExecuteSequence" == childName)) - { - childValue = new AdminExecuteSequence(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("AdvertiseExecuteSequence" == childName)) - { - childValue = new AdvertiseExecuteSequence(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Fragment", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The Patch element is analogous to the main function in a C program. When linking, only one Patch section - /// can be given to the linker to produce a successful result. Using this element creates an MSP file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Patch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private YesNoType allowRemovalField; - - private bool allowRemovalFieldSet; - - private string classificationField; - - private bool classificationFieldSet; - - private string clientPatchIdField; - - private bool clientPatchIdFieldSet; - - private YesNoType apiPatchingSymbolNoImagehlpFlagField; - - private bool apiPatchingSymbolNoImagehlpFlagFieldSet; - - private YesNoType apiPatchingSymbolNoFailuresFlagField; - - private bool apiPatchingSymbolNoFailuresFlagFieldSet; - - private YesNoType apiPatchingSymbolUndecoratedTooFlagField; - - private bool apiPatchingSymbolUndecoratedTooFlagFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string commentsField; - - private bool commentsFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private YesNoType minorUpdateTargetRTMField; - - private bool minorUpdateTargetRTMFieldSet; - - private string moreInfoURLField; - - private bool moreInfoURLFieldSet; - - private YesNoType optimizedInstallModeField; - - private bool optimizedInstallModeFieldSet; - - private string targetProductNameField; - - private bool targetProductNameFieldSet; - - private YesNoType optimizePatchSizeForLargeFilesField; - - private bool optimizePatchSizeForLargeFilesFieldSet; - - private ISchemaElement parentElement; - - public Patch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchInformation))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCodes))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Patch code for this patch. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The code page integer value or web name for the resulting MSP. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// Whether this is an uninstallable patch. - /// - public YesNoType AllowRemoval - { - get - { - return this.allowRemovalField; - } - set - { - this.allowRemovalFieldSet = true; - this.allowRemovalField = value; - } - } - - /// - /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. - /// - public string Classification - { - get - { - return this.classificationField; - } - set - { - this.classificationFieldSet = true; - this.classificationField = value; - } - } - - /// - /// An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information. - /// - public string ClientPatchId - { - get - { - return this.clientPatchIdField; - } - set - { - this.clientPatchIdFieldSet = true; - this.clientPatchIdField = value; - } - } - - /// - /// Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll. - /// - public YesNoType ApiPatchingSymbolNoImagehlpFlag - { - get - { - return this.apiPatchingSymbolNoImagehlpFlagField; - } - set - { - this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; - this.apiPatchingSymbolNoImagehlpFlagField = value; - } - } - - /// - /// Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures. - /// - public YesNoType ApiPatchingSymbolNoFailuresFlag - { - get - { - return this.apiPatchingSymbolNoFailuresFlagField; - } - set - { - this.apiPatchingSymbolNoFailuresFlagFieldSet = true; - this.apiPatchingSymbolNoFailuresFlagField = value; - } - } - - /// - /// Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names. - /// - public YesNoType ApiPatchingSymbolUndecoratedTooFlag - { - get - { - return this.apiPatchingSymbolUndecoratedTooFlagField; - } - set - { - this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; - this.apiPatchingSymbolUndecoratedTooFlagField = value; - } - } - - /// - /// Description of the patch. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Optional comments for browsing. - /// - public string Comments - { - get - { - return this.commentsField; - } - set - { - this.commentsFieldSet = true; - this.commentsField = value; - } - } - - /// - /// Vendor releasing the package - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// Indicates that the patch targets the RTM version of the product or the most recent major - /// upgrade patch. Author this optional property in minor update patches that contain sequencing - /// information to indicate that the patch removes all patches up to the RTM version of the - /// product, or up to the most recent major upgrade patch. This property is available beginning - /// with Windows Installer 3.1. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType MinorUpdateTargetRTM - { - get - { - return this.minorUpdateTargetRTMField; - } - set - { - this.minorUpdateTargetRTMFieldSet = true; - this.minorUpdateTargetRTMField = value; - } - } - - /// - /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string MoreInfoURL - { - get - { - return this.moreInfoURLField; - } - set - { - this.moreInfoURLFieldSet = true; - this.moreInfoURLField = value; - } - } - - /// - /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the - /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. - /// - public YesNoType OptimizedInstallMode - { - get - { - return this.optimizedInstallModeField; - } - set - { - this.optimizedInstallModeFieldSet = true; - this.optimizedInstallModeField = value; - } - } - - /// - /// Name of the application or target product suite. - /// - public string TargetProductName - { - get - { - return this.targetProductNameField; - } - set - { - this.targetProductNameFieldSet = true; - this.targetProductNameField = value; - } - } - - /// - /// When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller. - /// - public YesNoType OptimizePatchSizeForLargeFiles - { - get - { - return this.optimizePatchSizeForLargeFilesField; - } - set - { - this.optimizePatchSizeForLargeFilesFieldSet = true; - this.optimizePatchSizeForLargeFilesField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PatchInformation" == childName)) - { - childValue = new PatchInformation(); - } - if (("Media" == childName)) - { - childValue = new Media(); - } - if (("OptimizeCustomActions" == childName)) - { - childValue = new OptimizeCustomActions(); - } - if (("PatchFamily" == childName)) - { - childValue = new PatchFamily(); - } - if (("PatchFamilyRef" == childName)) - { - childValue = new PatchFamilyRef(); - } - if (("PatchFamilyGroup" == childName)) - { - childValue = new PatchFamilyGroup(); - } - if (("PatchFamilyGroupRef" == childName)) - { - childValue = new PatchFamilyGroupRef(); - } - if (("PatchProperty" == childName)) - { - childValue = new PatchProperty(); - } - if (("TargetProductCodes" == childName)) - { - childValue = new TargetProductCodes(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Patch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.allowRemovalFieldSet) - { - if ((this.allowRemovalField == YesNoType.no)) - { - writer.WriteAttributeString("AllowRemoval", "no"); - } - if ((this.allowRemovalField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowRemoval", "yes"); - } - } - if (this.classificationFieldSet) - { - writer.WriteAttributeString("Classification", this.classificationField); - } - if (this.clientPatchIdFieldSet) - { - writer.WriteAttributeString("ClientPatchId", this.clientPatchIdField); - } - if (this.apiPatchingSymbolNoImagehlpFlagFieldSet) - { - if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.no)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "no"); - } - if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.yes)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "yes"); - } - } - if (this.apiPatchingSymbolNoFailuresFlagFieldSet) - { - if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.no)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "no"); - } - if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.yes)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "yes"); - } - } - if (this.apiPatchingSymbolUndecoratedTooFlagFieldSet) - { - if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.no)) - { - writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "no"); - } - if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.yes)) - { - writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "yes"); - } - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.commentsFieldSet) - { - writer.WriteAttributeString("Comments", this.commentsField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.minorUpdateTargetRTMFieldSet) - { - if ((this.minorUpdateTargetRTMField == YesNoType.no)) - { - writer.WriteAttributeString("MinorUpdateTargetRTM", "no"); - } - if ((this.minorUpdateTargetRTMField == YesNoType.yes)) - { - writer.WriteAttributeString("MinorUpdateTargetRTM", "yes"); - } - } - if (this.moreInfoURLFieldSet) - { - writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); - } - if (this.optimizedInstallModeFieldSet) - { - if ((this.optimizedInstallModeField == YesNoType.no)) - { - writer.WriteAttributeString("OptimizedInstallMode", "no"); - } - if ((this.optimizedInstallModeField == YesNoType.yes)) - { - writer.WriteAttributeString("OptimizedInstallMode", "yes"); - } - } - if (this.targetProductNameFieldSet) - { - writer.WriteAttributeString("TargetProductName", this.targetProductNameField); - } - if (this.optimizePatchSizeForLargeFilesFieldSet) - { - if ((this.optimizePatchSizeForLargeFilesField == YesNoType.no)) - { - writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "no"); - } - if ((this.optimizePatchSizeForLargeFilesField == YesNoType.yes)) - { - writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("AllowRemoval" == name)) - { - this.allowRemovalField = Enums.ParseYesNoType(value); - this.allowRemovalFieldSet = true; - } - if (("Classification" == name)) - { - this.classificationField = value; - this.classificationFieldSet = true; - } - if (("ClientPatchId" == name)) - { - this.clientPatchIdField = value; - this.clientPatchIdFieldSet = true; - } - if (("ApiPatchingSymbolNoImagehlpFlag" == name)) - { - this.apiPatchingSymbolNoImagehlpFlagField = Enums.ParseYesNoType(value); - this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; - } - if (("ApiPatchingSymbolNoFailuresFlag" == name)) - { - this.apiPatchingSymbolNoFailuresFlagField = Enums.ParseYesNoType(value); - this.apiPatchingSymbolNoFailuresFlagFieldSet = true; - } - if (("ApiPatchingSymbolUndecoratedTooFlag" == name)) - { - this.apiPatchingSymbolUndecoratedTooFlagField = Enums.ParseYesNoType(value); - this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Comments" == name)) - { - this.commentsField = value; - this.commentsFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("MinorUpdateTargetRTM" == name)) - { - this.minorUpdateTargetRTMField = Enums.ParseYesNoType(value); - this.minorUpdateTargetRTMFieldSet = true; - } - if (("MoreInfoURL" == name)) - { - this.moreInfoURLField = value; - this.moreInfoURLFieldSet = true; - } - if (("OptimizedInstallMode" == name)) - { - this.optimizedInstallModeField = Enums.ParseYesNoType(value); - this.optimizedInstallModeFieldSet = true; - } - if (("TargetProductName" == name)) - { - this.targetProductNameField = value; - this.targetProductNameFieldSet = true; - } - if (("OptimizePatchSizeForLargeFiles" == name)) - { - this.optimizePatchSizeForLargeFilesField = Enums.ParseYesNoType(value); - this.optimizePatchSizeForLargeFilesFieldSet = true; - } - } - } - - /// - /// Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Validate : ISchemaElement, ISetAttributes - { - - private YesNoType productIdField; - - private bool productIdFieldSet; - - private YesNoType productLanguageField; - - private bool productLanguageFieldSet; - - private ProductVersionType productVersionField; - - private bool productVersionFieldSet; - - private ProductVersionOperatorType productVersionOperatorField; - - private bool productVersionOperatorFieldSet; - - private YesNoType upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private YesNoType ignoreAddExistingRowField; - - private bool ignoreAddExistingRowFieldSet; - - private YesNoType ignoreAddExistingTableField; - - private bool ignoreAddExistingTableFieldSet; - - private YesNoType ignoreDeleteMissingRowField; - - private bool ignoreDeleteMissingRowFieldSet; - - private YesNoType ignoreDeleteMissingTableField; - - private bool ignoreDeleteMissingTableFieldSet; - - private YesNoType ignoreUpdateMissingRowField; - - private bool ignoreUpdateMissingRowFieldSet; - - private YesNoType ignoreChangingCodePageField; - - private bool ignoreChangingCodePageFieldSet; - - private ISchemaElement parentElement; - - /// - /// Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'. - /// - public YesNoType ProductId - { - get - { - return this.productIdField; - } - set - { - this.productIdFieldSet = true; - this.productIdField = value; - } - } - - /// - /// Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'. - /// - public YesNoType ProductLanguage - { - get - { - return this.productLanguageField; - } - set - { - this.productLanguageFieldSet = true; - this.productLanguageField = value; - } - } - - /// - /// Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'. - /// - public ProductVersionType ProductVersion - { - get - { - return this.productVersionField; - } - set - { - this.productVersionFieldSet = true; - this.productVersionField = value; - } - } - - /// - /// Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'. - /// - public ProductVersionOperatorType ProductVersionOperator - { - get - { - return this.productVersionOperatorField; - } - set - { - this.productVersionOperatorFieldSet = true; - this.productVersionOperatorField = value; - } - } - - /// - /// Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'. - /// - public YesNoType UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - /// - /// Ignore errors when adding existing rows. The default is 'yes'. - /// - public YesNoType IgnoreAddExistingRow - { - get - { - return this.ignoreAddExistingRowField; - } - set - { - this.ignoreAddExistingRowFieldSet = true; - this.ignoreAddExistingRowField = value; - } - } - - /// - /// Ignore errors when adding existing tables. The default is 'yes'. - /// - public YesNoType IgnoreAddExistingTable - { - get - { - return this.ignoreAddExistingTableField; - } - set - { - this.ignoreAddExistingTableFieldSet = true; - this.ignoreAddExistingTableField = value; - } - } - - /// - /// Ignore errors when deleting missing rows. The default is 'yes'. - /// - public YesNoType IgnoreDeleteMissingRow - { - get - { - return this.ignoreDeleteMissingRowField; - } - set - { - this.ignoreDeleteMissingRowFieldSet = true; - this.ignoreDeleteMissingRowField = value; - } - } - - /// - /// Ignore errors when deleting missing tables. The default is 'yes'. - /// - public YesNoType IgnoreDeleteMissingTable - { - get - { - return this.ignoreDeleteMissingTableField; - } - set - { - this.ignoreDeleteMissingTableFieldSet = true; - this.ignoreDeleteMissingTableField = value; - } - } - - /// - /// Ignore errors when updating missing rows. The default is 'yes'. - /// - public YesNoType IgnoreUpdateMissingRow - { - get - { - return this.ignoreUpdateMissingRowField; - } - set - { - this.ignoreUpdateMissingRowFieldSet = true; - this.ignoreUpdateMissingRowField = value; - } - } - - /// - /// Ignore errors when changing the database code page. The default is 'no'. - /// - public YesNoType IgnoreChangingCodePage - { - get - { - return this.ignoreChangingCodePageField; - } - set - { - this.ignoreChangingCodePageFieldSet = true; - this.ignoreChangingCodePageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ProductVersionType from a string. - /// - public static ProductVersionType ParseProductVersionType(string value) - { - ProductVersionType parsedValue; - Validate.TryParseProductVersionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ProductVersionType from a string. - /// - public static bool TryParseProductVersionType(string value, out ProductVersionType parsedValue) - { - parsedValue = ProductVersionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Major" == value)) - { - parsedValue = ProductVersionType.Major; - } - else - { - if (("Minor" == value)) - { - parsedValue = ProductVersionType.Minor; - } - else - { - if (("Update" == value)) - { - parsedValue = ProductVersionType.Update; - } - else - { - parsedValue = ProductVersionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a ProductVersionOperatorType from a string. - /// - public static ProductVersionOperatorType ParseProductVersionOperatorType(string value) - { - ProductVersionOperatorType parsedValue; - Validate.TryParseProductVersionOperatorType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ProductVersionOperatorType from a string. - /// - public static bool TryParseProductVersionOperatorType(string value, out ProductVersionOperatorType parsedValue) - { - parsedValue = ProductVersionOperatorType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Lesser" == value)) - { - parsedValue = ProductVersionOperatorType.Lesser; - } - else - { - if (("LesserOrEqual" == value)) - { - parsedValue = ProductVersionOperatorType.LesserOrEqual; - } - else - { - if (("Equal" == value)) - { - parsedValue = ProductVersionOperatorType.Equal; - } - else - { - if (("GreaterOrEqual" == value)) - { - parsedValue = ProductVersionOperatorType.GreaterOrEqual; - } - else - { - if (("Greater" == value)) - { - parsedValue = ProductVersionOperatorType.Greater; - } - else - { - parsedValue = ProductVersionOperatorType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Validate", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.productIdFieldSet) - { - if ((this.productIdField == YesNoType.no)) - { - writer.WriteAttributeString("ProductId", "no"); - } - if ((this.productIdField == YesNoType.yes)) - { - writer.WriteAttributeString("ProductId", "yes"); - } - } - if (this.productLanguageFieldSet) - { - if ((this.productLanguageField == YesNoType.no)) - { - writer.WriteAttributeString("ProductLanguage", "no"); - } - if ((this.productLanguageField == YesNoType.yes)) - { - writer.WriteAttributeString("ProductLanguage", "yes"); - } - } - if (this.productVersionFieldSet) - { - if ((this.productVersionField == ProductVersionType.Major)) - { - writer.WriteAttributeString("ProductVersion", "Major"); - } - if ((this.productVersionField == ProductVersionType.Minor)) - { - writer.WriteAttributeString("ProductVersion", "Minor"); - } - if ((this.productVersionField == ProductVersionType.Update)) - { - writer.WriteAttributeString("ProductVersion", "Update"); - } - } - if (this.productVersionOperatorFieldSet) - { - if ((this.productVersionOperatorField == ProductVersionOperatorType.Lesser)) - { - writer.WriteAttributeString("ProductVersionOperator", "Lesser"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.LesserOrEqual)) - { - writer.WriteAttributeString("ProductVersionOperator", "LesserOrEqual"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.Equal)) - { - writer.WriteAttributeString("ProductVersionOperator", "Equal"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.GreaterOrEqual)) - { - writer.WriteAttributeString("ProductVersionOperator", "GreaterOrEqual"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.Greater)) - { - writer.WriteAttributeString("ProductVersionOperator", "Greater"); - } - } - if (this.upgradeCodeFieldSet) - { - if ((this.upgradeCodeField == YesNoType.no)) - { - writer.WriteAttributeString("UpgradeCode", "no"); - } - if ((this.upgradeCodeField == YesNoType.yes)) - { - writer.WriteAttributeString("UpgradeCode", "yes"); - } - } - if (this.ignoreAddExistingRowFieldSet) - { - if ((this.ignoreAddExistingRowField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreAddExistingRow", "no"); - } - if ((this.ignoreAddExistingRowField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreAddExistingRow", "yes"); - } - } - if (this.ignoreAddExistingTableFieldSet) - { - if ((this.ignoreAddExistingTableField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreAddExistingTable", "no"); - } - if ((this.ignoreAddExistingTableField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreAddExistingTable", "yes"); - } - } - if (this.ignoreDeleteMissingRowFieldSet) - { - if ((this.ignoreDeleteMissingRowField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreDeleteMissingRow", "no"); - } - if ((this.ignoreDeleteMissingRowField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreDeleteMissingRow", "yes"); - } - } - if (this.ignoreDeleteMissingTableFieldSet) - { - if ((this.ignoreDeleteMissingTableField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreDeleteMissingTable", "no"); - } - if ((this.ignoreDeleteMissingTableField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreDeleteMissingTable", "yes"); - } - } - if (this.ignoreUpdateMissingRowFieldSet) - { - if ((this.ignoreUpdateMissingRowField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreUpdateMissingRow", "no"); - } - if ((this.ignoreUpdateMissingRowField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreUpdateMissingRow", "yes"); - } - } - if (this.ignoreChangingCodePageFieldSet) - { - if ((this.ignoreChangingCodePageField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreChangingCodePage", "no"); - } - if ((this.ignoreChangingCodePageField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreChangingCodePage", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("ProductId" == name)) - { - this.productIdField = Enums.ParseYesNoType(value); - this.productIdFieldSet = true; - } - if (("ProductLanguage" == name)) - { - this.productLanguageField = Enums.ParseYesNoType(value); - this.productLanguageFieldSet = true; - } - if (("ProductVersion" == name)) - { - this.productVersionField = Validate.ParseProductVersionType(value); - this.productVersionFieldSet = true; - } - if (("ProductVersionOperator" == name)) - { - this.productVersionOperatorField = Validate.ParseProductVersionOperatorType(value); - this.productVersionOperatorFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = Enums.ParseYesNoType(value); - this.upgradeCodeFieldSet = true; - } - if (("IgnoreAddExistingRow" == name)) - { - this.ignoreAddExistingRowField = Enums.ParseYesNoType(value); - this.ignoreAddExistingRowFieldSet = true; - } - if (("IgnoreAddExistingTable" == name)) - { - this.ignoreAddExistingTableField = Enums.ParseYesNoType(value); - this.ignoreAddExistingTableFieldSet = true; - } - if (("IgnoreDeleteMissingRow" == name)) - { - this.ignoreDeleteMissingRowField = Enums.ParseYesNoType(value); - this.ignoreDeleteMissingRowFieldSet = true; - } - if (("IgnoreDeleteMissingTable" == name)) - { - this.ignoreDeleteMissingTableField = Enums.ParseYesNoType(value); - this.ignoreDeleteMissingTableFieldSet = true; - } - if (("IgnoreUpdateMissingRow" == name)) - { - this.ignoreUpdateMissingRowField = Enums.ParseYesNoType(value); - this.ignoreUpdateMissingRowFieldSet = true; - } - if (("IgnoreChangingCodePage" == name)) - { - this.ignoreChangingCodePageField = Enums.ParseYesNoType(value); - this.ignoreChangingCodePageFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ProductVersionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Checks the major version. - /// - Major, - - /// - /// Checks the major and minor versions. - /// - Minor, - - /// - /// Checks the major, minor, and update versions. - /// - Update, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ProductVersionOperatorType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Installed ProductVersion < target ProductVersion. - /// - Lesser, - - /// - /// Installed ProductVersion <= target ProductVersion. - /// - LesserOrEqual, - - /// - /// Installed ProductVersion = target ProductVersion. - /// - Equal, - - /// - /// Installed ProductVersion >= target ProductVersion. - /// - GreaterOrEqual, - - /// - /// Installed ProductVersion > target ProductVersion. - /// - Greater, - } - } - - /// - /// Indicates whether custom actions can be skipped when applying the patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class OptimizeCustomActions : ISchemaElement, ISetAttributes - { - - private YesNoType skipAssignmentField; - - private bool skipAssignmentFieldSet; - - private YesNoType skipImmediateField; - - private bool skipImmediateFieldSet; - - private YesNoType skipDeferredField; - - private bool skipDeferredFieldSet; - - private ISchemaElement parentElement; - - /// - /// Skip property (type 51) and directory (type 35) assignment custom actions. - /// - public YesNoType SkipAssignment - { - get - { - return this.skipAssignmentField; - } - set - { - this.skipAssignmentFieldSet = true; - this.skipAssignmentField = value; - } - } - - /// - /// Skip immediate custom actions that are not property or directory assignment custom actions. - /// - public YesNoType SkipImmediate - { - get - { - return this.skipImmediateField; - } - set - { - this.skipImmediateFieldSet = true; - this.skipImmediateField = value; - } - } - - /// - /// Skip custom actions that run within the script. - /// - public YesNoType SkipDeferred - { - get - { - return this.skipDeferredField; - } - set - { - this.skipDeferredFieldSet = true; - this.skipDeferredField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("OptimizeCustomActions", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.skipAssignmentFieldSet) - { - if ((this.skipAssignmentField == YesNoType.no)) - { - writer.WriteAttributeString("SkipAssignment", "no"); - } - if ((this.skipAssignmentField == YesNoType.yes)) - { - writer.WriteAttributeString("SkipAssignment", "yes"); - } - } - if (this.skipImmediateFieldSet) - { - if ((this.skipImmediateField == YesNoType.no)) - { - writer.WriteAttributeString("SkipImmediate", "no"); - } - if ((this.skipImmediateField == YesNoType.yes)) - { - writer.WriteAttributeString("SkipImmediate", "yes"); - } - } - if (this.skipDeferredFieldSet) - { - if ((this.skipDeferredField == YesNoType.no)) - { - writer.WriteAttributeString("SkipDeferred", "no"); - } - if ((this.skipDeferredField == YesNoType.yes)) - { - writer.WriteAttributeString("SkipDeferred", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SkipAssignment" == name)) - { - this.skipAssignmentField = Enums.ParseYesNoType(value); - this.skipAssignmentFieldSet = true; - } - if (("SkipImmediate" == name)) - { - this.skipImmediateField = Enums.ParseYesNoType(value); - this.skipImmediateFieldSet = true; - } - if (("SkipDeferred" == name)) - { - this.skipDeferredField = Enums.ParseYesNoType(value); - this.skipDeferredFieldSet = true; - } - } - } - - /// - /// Identifies a set of product versions. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchBaseline : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PatchBaseline() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Validate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for a set of product versions. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Validate" == childName)) - { - childValue = new Validate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchBaseline", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Collection of items that should be kept from the differences between two products. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamily : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private YesNoType supersedeField; - - private bool supersedeFieldSet; - - private ISchemaElement parentElement; - - public PatchFamily() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(All))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(BinaryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificateRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IconRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier which indicates a sequence family to which this patch belongs. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies the ProductCode of the product that this family applies to. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - /// - /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - /// - /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. - /// The default value is 'no'. - /// - public YesNoType Supersede - { - get - { - return this.supersedeField; - } - set - { - this.supersedeFieldSet = true; - this.supersedeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("All" == childName)) - { - childValue = new All(); - } - if (("BinaryRef" == childName)) - { - childValue = new BinaryRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("DigitalCertificateRef" == childName)) - { - childValue = new DigitalCertificateRef(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("IconRef" == childName)) - { - childValue = new IconRef(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamily", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - if (this.supersedeFieldSet) - { - if ((this.supersedeField == YesNoType.no)) - { - writer.WriteAttributeString("Supersede", "no"); - } - if ((this.supersedeField == YesNoType.yes)) - { - writer.WriteAttributeString("Supersede", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - if (("Supersede" == name)) - { - this.supersedeField = Enums.ParseYesNoType(value); - this.supersedeFieldSet = true; - } - } - } - - /// - /// Groups together multiple patch families to be used in other locations. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamilyGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PatchFamilyGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the PatchFamilyGroup. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PatchFamily" == childName)) - { - childValue = new PatchFamily(); - } - if (("PatchFamilyRef" == childName)) - { - childValue = new PatchFamilyRef(); - } - if (("PatchFamilyGroupRef" == childName)) - { - childValue = new PatchFamilyGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamilyGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to a PatchFamilyGroup in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamilyGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PatchFamilyGroup to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamilyGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section - /// can be given to the linker to produce a successful result. Using this element creates a pcp file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchCreation : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType allowMajorVersionMismatchesField; - - private bool allowMajorVersionMismatchesFieldSet; - - private YesNoType allowProductCodeMismatchesField; - - private bool allowProductCodeMismatchesFieldSet; - - private YesNoType cleanWorkingFolderField; - - private bool cleanWorkingFolderFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private string outputPathField; - - private bool outputPathFieldSet; - - private string sourceListField; - - private bool sourceListFieldSet; - - private int symbolFlagsField; - - private bool symbolFlagsFieldSet; - - private YesNoType wholeFilesOnlyField; - - private bool wholeFilesOnlyFieldSet; - - private ISchemaElement parentElement; - - public PatchCreation() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchInformation))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchMetadata))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Family))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchSequence))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ReplacePatch))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// PatchCreation identifier; this is the primary key for identifying patches. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Use this to set whether the major versions between the upgrade and target images match. See - /// - public YesNoType AllowMajorVersionMismatches - { - get - { - return this.allowMajorVersionMismatchesField; - } - set - { - this.allowMajorVersionMismatchesFieldSet = true; - this.allowMajorVersionMismatchesField = value; - } - } - - /// - /// Use this to set whether the product code between the upgrade and target images match. See - /// - public YesNoType AllowProductCodeMismatches - { - get - { - return this.allowProductCodeMismatchesField; - } - set - { - this.allowProductCodeMismatchesFieldSet = true; - this.allowProductCodeMismatchesField = value; - } - } - - /// - /// Use this to set whether Patchwiz should clean the temp folder when finished. See - /// - public YesNoType CleanWorkingFolder - { - get - { - return this.cleanWorkingFolderField; - } - set - { - this.cleanWorkingFolderFieldSet = true; - this.cleanWorkingFolderField = value; - } - } - - /// - /// The code page integer value or web name for the resulting PCP. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// The full path, including file name, of the patch package file that is to be generated. See - /// - public string OutputPath - { - get - { - return this.outputPathField; - } - set - { - this.outputPathFieldSet = true; - this.outputPathField = value; - } - } - - /// - /// Used to locate the .msp file for the patch if the cached copy is unavailable. See - /// - public string SourceList - { - get - { - return this.sourceListField; - } - set - { - this.sourceListFieldSet = true; - this.sourceListField = value; - } - } - - /// - /// An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See - /// - public int SymbolFlags - { - get - { - return this.symbolFlagsField; - } - set - { - this.symbolFlagsFieldSet = true; - this.symbolFlagsField = value; - } - } - - /// - /// Use this to set whether changing files should be included in their entirety. See - /// - public YesNoType WholeFilesOnly - { - get - { - return this.wholeFilesOnlyField; - } - set - { - this.wholeFilesOnlyFieldSet = true; - this.wholeFilesOnlyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PatchInformation" == childName)) - { - childValue = new PatchInformation(); - } - if (("PatchMetadata" == childName)) - { - childValue = new PatchMetadata(); - } - if (("Family" == childName)) - { - childValue = new Family(); - } - if (("PatchProperty" == childName)) - { - childValue = new PatchProperty(); - } - if (("PatchSequence" == childName)) - { - childValue = new PatchSequence(); - } - if (("ReplacePatch" == childName)) - { - childValue = new ReplacePatch(); - } - if (("TargetProductCode" == childName)) - { - childValue = new TargetProductCode(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchCreation", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.allowMajorVersionMismatchesFieldSet) - { - if ((this.allowMajorVersionMismatchesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowMajorVersionMismatches", "no"); - } - if ((this.allowMajorVersionMismatchesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowMajorVersionMismatches", "yes"); - } - } - if (this.allowProductCodeMismatchesFieldSet) - { - if ((this.allowProductCodeMismatchesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowProductCodeMismatches", "no"); - } - if ((this.allowProductCodeMismatchesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowProductCodeMismatches", "yes"); - } - } - if (this.cleanWorkingFolderFieldSet) - { - if ((this.cleanWorkingFolderField == YesNoType.no)) - { - writer.WriteAttributeString("CleanWorkingFolder", "no"); - } - if ((this.cleanWorkingFolderField == YesNoType.yes)) - { - writer.WriteAttributeString("CleanWorkingFolder", "yes"); - } - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.outputPathFieldSet) - { - writer.WriteAttributeString("OutputPath", this.outputPathField); - } - if (this.sourceListFieldSet) - { - writer.WriteAttributeString("SourceList", this.sourceListField); - } - if (this.symbolFlagsFieldSet) - { - writer.WriteAttributeString("SymbolFlags", this.symbolFlagsField.ToString(CultureInfo.InvariantCulture)); - } - if (this.wholeFilesOnlyFieldSet) - { - if ((this.wholeFilesOnlyField == YesNoType.no)) - { - writer.WriteAttributeString("WholeFilesOnly", "no"); - } - if ((this.wholeFilesOnlyField == YesNoType.yes)) - { - writer.WriteAttributeString("WholeFilesOnly", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("AllowMajorVersionMismatches" == name)) - { - this.allowMajorVersionMismatchesField = Enums.ParseYesNoType(value); - this.allowMajorVersionMismatchesFieldSet = true; - } - if (("AllowProductCodeMismatches" == name)) - { - this.allowProductCodeMismatchesField = Enums.ParseYesNoType(value); - this.allowProductCodeMismatchesFieldSet = true; - } - if (("CleanWorkingFolder" == name)) - { - this.cleanWorkingFolderField = Enums.ParseYesNoType(value); - this.cleanWorkingFolderFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("OutputPath" == name)) - { - this.outputPathField = value; - this.outputPathFieldSet = true; - } - if (("SourceList" == name)) - { - this.sourceListField = value; - this.sourceListFieldSet = true; - } - if (("SymbolFlags" == name)) - { - this.symbolFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.symbolFlagsFieldSet = true; - } - if (("WholeFilesOnly" == name)) - { - this.wholeFilesOnlyField = Enums.ParseYesNoType(value); - this.wholeFilesOnlyFieldSet = true; - } - } - } - - /// - /// Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchInformation : ISchemaElement, ISetAttributes - { - - private string descriptionField; - - private bool descriptionFieldSet; - - private string platformsField; - - private bool platformsFieldSet; - - private string languagesField; - - private bool languagesFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string keywordsField; - - private bool keywordsFieldSet; - - private string commentsField; - - private bool commentsFieldSet; - - private YesNoDefaultType readOnlyField; - - private bool readOnlyFieldSet; - - private string summaryCodepageField; - - private bool summaryCodepageFieldSet; - - private YesNoType shortNamesField; - - private bool shortNamesFieldSet; - - private YesNoType compressedField; - - private bool compressedFieldSet; - - private YesNoType adminImageField; - - private bool adminImageFieldSet; - - private ISchemaElement parentElement; - - /// - /// A short description of the patch that includes the name of the product. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - public string Platforms - { - get - { - return this.platformsField; - } - set - { - this.platformsFieldSet = true; - this.platformsField = value; - } - } - - public string Languages - { - get - { - return this.languagesField; - } - set - { - this.languagesFieldSet = true; - this.languagesField = value; - } - } - - /// - /// The name of the manufacturer of the patch package. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database". - /// - public string Keywords - { - get - { - return this.keywordsField; - } - set - { - this.keywordsFieldSet = true; - this.keywordsField = value; - } - } - - /// - /// General purpose of the patch package. For example, "This patch contains the logic and data required to install - /// - public string Comments - { - get - { - return this.commentsField; - } - set - { - this.commentsFieldSet = true; - this.commentsField = value; - } - } - - /// - /// The value of this attribute conveys whether the package should be opened as read-only. - /// A database editing tool should not modify a read-only enforced database and should - /// issue a warning at attempts to modify a read-only recommended database. - /// - public YesNoDefaultType ReadOnly - { - get - { - return this.readOnlyField; - } - set - { - this.readOnlyFieldSet = true; - this.readOnlyField = value; - } - } - - /// - /// The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information. - /// - public string SummaryCodepage - { - get - { - return this.summaryCodepageField; - } - set - { - this.summaryCodepageFieldSet = true; - this.summaryCodepageField = value; - } - } - - public YesNoType ShortNames - { - get - { - return this.shortNamesField; - } - set - { - this.shortNamesFieldSet = true; - this.shortNamesField = value; - } - } - - public YesNoType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - public YesNoType AdminImage - { - get - { - return this.adminImageField; - } - set - { - this.adminImageFieldSet = true; - this.adminImageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchInformation", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.platformsFieldSet) - { - writer.WriteAttributeString("Platforms", this.platformsField); - } - if (this.languagesFieldSet) - { - writer.WriteAttributeString("Languages", this.languagesField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.keywordsFieldSet) - { - writer.WriteAttributeString("Keywords", this.keywordsField); - } - if (this.commentsFieldSet) - { - writer.WriteAttributeString("Comments", this.commentsField); - } - if (this.readOnlyFieldSet) - { - if ((this.readOnlyField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("ReadOnly", "default"); - } - if ((this.readOnlyField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("ReadOnly", "no"); - } - if ((this.readOnlyField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("ReadOnly", "yes"); - } - } - if (this.summaryCodepageFieldSet) - { - writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); - } - if (this.shortNamesFieldSet) - { - if ((this.shortNamesField == YesNoType.no)) - { - writer.WriteAttributeString("ShortNames", "no"); - } - if ((this.shortNamesField == YesNoType.yes)) - { - writer.WriteAttributeString("ShortNames", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.adminImageFieldSet) - { - if ((this.adminImageField == YesNoType.no)) - { - writer.WriteAttributeString("AdminImage", "no"); - } - if ((this.adminImageField == YesNoType.yes)) - { - writer.WriteAttributeString("AdminImage", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Platforms" == name)) - { - this.platformsField = value; - this.platformsFieldSet = true; - } - if (("Languages" == name)) - { - this.languagesField = value; - this.languagesFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Keywords" == name)) - { - this.keywordsField = value; - this.keywordsFieldSet = true; - } - if (("Comments" == name)) - { - this.commentsField = value; - this.commentsFieldSet = true; - } - if (("ReadOnly" == name)) - { - this.readOnlyField = Enums.ParseYesNoDefaultType(value); - this.readOnlyFieldSet = true; - } - if (("SummaryCodepage" == name)) - { - this.summaryCodepageField = value; - this.summaryCodepageFieldSet = true; - } - if (("ShortNames" == name)) - { - this.shortNamesField = Enums.ParseYesNoType(value); - this.shortNamesFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoType(value); - this.compressedFieldSet = true; - } - if (("AdminImage" == name)) - { - this.adminImageField = Enums.ParseYesNoType(value); - this.adminImageFieldSet = true; - } - } - } - - /// - /// Properties about the patch to be placed in the PatchMetadata table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchMetadata : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType allowRemovalField; - - private bool allowRemovalFieldSet; - - private string classificationField; - - private bool classificationFieldSet; - - private string creationTimeUTCField; - - private bool creationTimeUTCFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string manufacturerNameField; - - private bool manufacturerNameFieldSet; - - private string minorUpdateTargetRTMField; - - private bool minorUpdateTargetRTMFieldSet; - - private string moreInfoURLField; - - private bool moreInfoURLFieldSet; - - private YesNoType optimizedInstallModeField; - - private bool optimizedInstallModeFieldSet; - - private string targetProductNameField; - - private bool targetProductNameFieldSet; - - private ISchemaElement parentElement; - - public PatchMetadata() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Whether this is an uninstallable patch. - /// - public YesNoType AllowRemoval - { - get - { - return this.allowRemovalField; - } - set - { - this.allowRemovalFieldSet = true; - this.allowRemovalField = value; - } - } - - /// - /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. - /// - public string Classification - { - get - { - return this.classificationField; - } - set - { - this.classificationFieldSet = true; - this.classificationField = value; - } - } - - /// - /// Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute). - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string CreationTimeUTC - { - get - { - return this.creationTimeUTCField; - } - set - { - this.creationTimeUTCFieldSet = true; - this.creationTimeUTCField = value; - } - } - - /// - /// Description of the patch. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Name of the manufacturer. - /// - public string ManufacturerName - { - get - { - return this.manufacturerNameField; - } - set - { - this.manufacturerNameFieldSet = true; - this.manufacturerNameField = value; - } - } - - /// - /// Indicates that the patch targets the RTM version of the product or the most recent major - /// upgrade patch. Author this optional property in minor update patches that contain sequencing - /// information to indicate that the patch removes all patches up to the RTM version of the - /// product, or up to the most recent major upgrade patch. This property is available beginning - /// with Windows Installer 3.1. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string MinorUpdateTargetRTM - { - get - { - return this.minorUpdateTargetRTMField; - } - set - { - this.minorUpdateTargetRTMFieldSet = true; - this.minorUpdateTargetRTMField = value; - } - } - - /// - /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string MoreInfoURL - { - get - { - return this.moreInfoURLField; - } - set - { - this.moreInfoURLFieldSet = true; - this.moreInfoURLField = value; - } - } - - /// - /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the - /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. - /// - public YesNoType OptimizedInstallMode - { - get - { - return this.optimizedInstallModeField; - } - set - { - this.optimizedInstallModeFieldSet = true; - this.optimizedInstallModeField = value; - } - } - - /// - /// Name of the application or target product suite. - /// - public string TargetProductName - { - get - { - return this.targetProductNameField; - } - set - { - this.targetProductNameFieldSet = true; - this.targetProductNameField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("CustomProperty" == childName)) - { - childValue = new CustomProperty(); - } - if (("OptimizeCustomActions" == childName)) - { - childValue = new OptimizeCustomActions(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchMetadata", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.allowRemovalFieldSet) - { - if ((this.allowRemovalField == YesNoType.no)) - { - writer.WriteAttributeString("AllowRemoval", "no"); - } - if ((this.allowRemovalField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowRemoval", "yes"); - } - } - if (this.classificationFieldSet) - { - writer.WriteAttributeString("Classification", this.classificationField); - } - if (this.creationTimeUTCFieldSet) - { - writer.WriteAttributeString("CreationTimeUTC", this.creationTimeUTCField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.manufacturerNameFieldSet) - { - writer.WriteAttributeString("ManufacturerName", this.manufacturerNameField); - } - if (this.minorUpdateTargetRTMFieldSet) - { - writer.WriteAttributeString("MinorUpdateTargetRTM", this.minorUpdateTargetRTMField); - } - if (this.moreInfoURLFieldSet) - { - writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); - } - if (this.optimizedInstallModeFieldSet) - { - if ((this.optimizedInstallModeField == YesNoType.no)) - { - writer.WriteAttributeString("OptimizedInstallMode", "no"); - } - if ((this.optimizedInstallModeField == YesNoType.yes)) - { - writer.WriteAttributeString("OptimizedInstallMode", "yes"); - } - } - if (this.targetProductNameFieldSet) - { - writer.WriteAttributeString("TargetProductName", this.targetProductNameField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("AllowRemoval" == name)) - { - this.allowRemovalField = Enums.ParseYesNoType(value); - this.allowRemovalFieldSet = true; - } - if (("Classification" == name)) - { - this.classificationField = value; - this.classificationFieldSet = true; - } - if (("CreationTimeUTC" == name)) - { - this.creationTimeUTCField = value; - this.creationTimeUTCFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("ManufacturerName" == name)) - { - this.manufacturerNameField = value; - this.manufacturerNameFieldSet = true; - } - if (("MinorUpdateTargetRTM" == name)) - { - this.minorUpdateTargetRTMField = value; - this.minorUpdateTargetRTMFieldSet = true; - } - if (("MoreInfoURL" == name)) - { - this.moreInfoURLField = value; - this.moreInfoURLFieldSet = true; - } - if (("OptimizedInstallMode" == name)) - { - this.optimizedInstallModeField = Enums.ParseYesNoType(value); - this.optimizedInstallModeFieldSet = true; - } - if (("TargetProductName" == name)) - { - this.targetProductNameField = value; - this.targetProductNameFieldSet = true; - } - } - } - - /// - /// A custom property for the PatchMetadata table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomProperty : ISchemaElement, ISetAttributes - { - - private string companyField; - - private bool companyFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the company. - /// - public string Company - { - get - { - return this.companyField; - } - set - { - this.companyFieldSet = true; - this.companyField = value; - } - } - - /// - /// The name of the metadata property. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// Value of the metadata property. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.companyFieldSet) - { - writer.WriteAttributeString("Company", this.companyField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Company" == name)) - { - this.companyField = value; - this.companyFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// A patch that is deprecated by this patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ReplacePatch : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Patch GUID to be unregistered if it exists on the machine targeted by this patch. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ReplacePatch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The product codes for products that can accept the patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetProductCodes : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType replaceField; - - private bool replaceFieldSet; - - private ISchemaElement parentElement; - - public TargetProductCodes() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Whether to replace the product codes that can accept the patch from the target packages with the child elements. - /// - public YesNoType Replace - { - get - { - return this.replaceField; - } - set - { - this.replaceFieldSet = true; - this.replaceField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("TargetProductCode" == childName)) - { - childValue = new TargetProductCode(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetProductCodes", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.replaceFieldSet) - { - if ((this.replaceField == YesNoType.no)) - { - writer.WriteAttributeString("Replace", "no"); - } - if ((this.replaceField == YesNoType.yes)) - { - writer.WriteAttributeString("Replace", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Replace" == name)) - { - this.replaceField = Enums.ParseYesNoType(value); - this.replaceFieldSet = true; - } - } - } - - /// - /// A product code for a product that can accept the patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetProductCode : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The product code for a product that can accept the patch. This can be '*'. See remarks for more information. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetProductCode", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// A property for this patch database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchProperty : ISchemaElement, ISetAttributes - { - - private string companyField; - - private bool companyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Name of the company for a custom metadata property. - /// - public string Company - { - get - { - return this.companyField; - } - set - { - this.companyFieldSet = true; - this.companyField = value; - } - } - - /// - /// Name of the patch property. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Value of the patch property. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.companyFieldSet) - { - writer.WriteAttributeString("Company", this.companyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Company" == name)) - { - this.companyField = value; - this.companyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchSequence : ISchemaElement, ISetAttributes - { - - private string patchFamilyField; - - private bool patchFamilyFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private string sequenceField; - - private bool sequenceFieldSet; - - private YesNoType supersedeField; - - private bool supersedeFieldSet; - - private string targetField; - - private bool targetFieldSet; - - private string targetImageField; - - private bool targetImageFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier which indicates a sequence family to which this patch belongs. - /// - public string PatchFamily - { - get - { - return this.patchFamilyField; - } - set - { - this.patchFamilyFieldSet = true; - this.patchFamilyField = value; - } - } - - /// - /// Specifies the ProductCode of the product that this family applies to. - /// This attribute cannot the specified if the TargetImage attribute is specified. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - /// - /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. - /// - public string Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. - /// The default value is 'no'. - /// - public YesNoType Supersede - { - get - { - return this.supersedeField; - } - set - { - this.supersedeFieldSet = true; - this.supersedeField = value; - } - } - - public string Target - { - get - { - return this.targetField; - } - set - { - this.targetFieldSet = true; - this.targetField = value; - } - } - - /// - /// Specifies the TargetImage that this family applies to. - /// This attribute cannot the specified if the ProductCode attribute is specified. - /// - public string TargetImage - { - get - { - return this.targetImageField; - } - set - { - this.targetImageFieldSet = true; - this.targetImageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchSequence", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.patchFamilyFieldSet) - { - writer.WriteAttributeString("PatchFamily", this.patchFamilyField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField); - } - if (this.supersedeFieldSet) - { - if ((this.supersedeField == YesNoType.no)) - { - writer.WriteAttributeString("Supersede", "no"); - } - if ((this.supersedeField == YesNoType.yes)) - { - writer.WriteAttributeString("Supersede", "yes"); - } - } - if (this.targetFieldSet) - { - writer.WriteAttributeString("Target", this.targetField); - } - if (this.targetImageFieldSet) - { - writer.WriteAttributeString("TargetImage", this.targetImageField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("PatchFamily" == name)) - { - this.patchFamilyField = value; - this.patchFamilyFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = value; - this.sequenceFieldSet = true; - } - if (("Supersede" == name)) - { - this.supersedeField = Enums.ParseYesNoType(value); - this.supersedeFieldSet = true; - } - if (("Target" == name)) - { - this.targetField = value; - this.targetFieldSet = true; - } - if (("TargetImage" == name)) - { - this.targetImageField = value; - this.targetImageFieldSet = true; - } - } - } - - /// - /// Group of one or more upgraded images of a product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Family : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string diskPromptField; - - private bool diskPromptFieldSet; - - private string mediaSrcPropField; - - private bool mediaSrcPropFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private int sequenceStartField; - - private bool sequenceStartFieldSet; - - private string volumeLabelField; - - private bool volumeLabelFieldSet; - - private ISchemaElement parentElement; - - public Family() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(UpgradeImage))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ExternalFile))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectFile))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Entered into the DiskId field of the new Media table record. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - /// - public string DiskPrompt - { - get - { - return this.diskPromptField; - } - set - { - this.diskPromptFieldSet = true; - this.diskPromptField = value; - } - } - - /// - /// Entered into the Source field of the new Media table entry of the upgraded image. - /// - public string MediaSrcProp - { - get - { - return this.mediaSrcPropField; - } - set - { - this.mediaSrcPropFieldSet = true; - this.mediaSrcPropField = value; - } - } - - /// - /// Identifier for the family. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Sequence number for the starting file. - /// - public int SequenceStart - { - get - { - return this.sequenceStartField; - } - set - { - this.sequenceStartFieldSet = true; - this.sequenceStartField = value; - } - } - - /// - /// Entered into the VolumeLabel field of the new Media table record. - /// - public string VolumeLabel - { - get - { - return this.volumeLabelField; - } - set - { - this.volumeLabelFieldSet = true; - this.volumeLabelField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("UpgradeImage" == childName)) - { - childValue = new UpgradeImage(); - } - if (("ExternalFile" == childName)) - { - childValue = new ExternalFile(); - } - if (("ProtectFile" == childName)) - { - childValue = new ProtectFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Family", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.diskPromptFieldSet) - { - writer.WriteAttributeString("DiskPrompt", this.diskPromptField); - } - if (this.mediaSrcPropFieldSet) - { - writer.WriteAttributeString("MediaSrcProp", this.mediaSrcPropField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sequenceStartFieldSet) - { - writer.WriteAttributeString("SequenceStart", this.sequenceStartField.ToString(CultureInfo.InvariantCulture)); - } - if (this.volumeLabelFieldSet) - { - writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("DiskPrompt" == name)) - { - this.diskPromptField = value; - this.diskPromptFieldSet = true; - } - if (("MediaSrcProp" == name)) - { - this.mediaSrcPropField = value; - this.mediaSrcPropFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SequenceStart" == name)) - { - this.sequenceStartField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceStartFieldSet = true; - } - if (("VolumeLabel" == name)) - { - this.volumeLabelField = value; - this.volumeLabelFieldSet = true; - } - } - } - - /// - /// Contains information about the upgraded images of the product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UpgradeImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private string sourcePatchField; - - private bool sourcePatchFieldSet; - - private string srcPatchField; - - private bool srcPatchFieldSet; - - private ISchemaElement parentElement; - - public UpgradeImage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(TargetImage))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeFile))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier to connect target images with upgraded image. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Full path to location of msi file for upgraded image. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Modified copy of the upgraded installation database that contains additional authoring specific to patching. - /// - public string SourcePatch - { - get - { - return this.sourcePatchField; - } - set - { - this.sourcePatchFieldSet = true; - this.sourcePatchField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string srcPatch - { - get - { - return this.srcPatchField; - } - set - { - this.srcPatchFieldSet = true; - this.srcPatchField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("TargetImage" == childName)) - { - childValue = new TargetImage(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("UpgradeFile" == childName)) - { - childValue = new UpgradeFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UpgradeImage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.sourcePatchFieldSet) - { - writer.WriteAttributeString("SourcePatch", this.sourcePatchField); - } - if (this.srcPatchFieldSet) - { - writer.WriteAttributeString("srcPatch", this.srcPatchField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("SourcePatch" == name)) - { - this.sourcePatchField = value; - this.sourcePatchFieldSet = true; - } - if (("srcPatch" == name)) - { - this.srcPatchField = value; - this.srcPatchFieldSet = true; - } - } - } - - /// - /// Contains information about the target images of the product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private int orderField; - - private bool orderFieldSet; - - private string validationField; - - private bool validationFieldSet; - - private YesNoType ignoreMissingFilesField; - - private bool ignoreMissingFilesFieldSet; - - private ISchemaElement parentElement; - - public TargetImage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetFile))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the target image. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Full path to the location of the msi file for the target image. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Relative order of the target image. - /// - public int Order - { - get - { - return this.orderField; - } - set - { - this.orderFieldSet = true; - this.orderField = value; - } - } - - /// - /// Product checking to avoid applying irrelevant transforms. - /// - public string Validation - { - get - { - return this.validationField; - } - set - { - this.validationFieldSet = true; - this.validationField = value; - } - } - - /// - /// Files missing from the target image are ignored by the installer. - /// - public YesNoType IgnoreMissingFiles - { - get - { - return this.ignoreMissingFilesField; - } - set - { - this.ignoreMissingFilesFieldSet = true; - this.ignoreMissingFilesField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("TargetFile" == childName)) - { - childValue = new TargetFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetImage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.orderFieldSet) - { - writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); - } - if (this.validationFieldSet) - { - writer.WriteAttributeString("Validation", this.validationField); - } - if (this.ignoreMissingFilesFieldSet) - { - if ((this.ignoreMissingFilesField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreMissingFiles", "no"); - } - if ((this.ignoreMissingFilesField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreMissingFiles", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("Order" == name)) - { - this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.orderFieldSet = true; - } - if (("Validation" == name)) - { - this.validationField = value; - this.validationFieldSet = true; - } - if (("IgnoreMissingFiles" == name)) - { - this.ignoreMissingFilesField = Enums.ParseYesNoType(value); - this.ignoreMissingFilesFieldSet = true; - } - } - } - - /// - /// Information about specific files in a target image. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public TargetFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("IgnoreRange" == childName)) - { - childValue = new IgnoreRange(); - } - if (("ProtectRange" == childName)) - { - childValue = new ProtectRange(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Specifies part of a file that is to be ignored during patching. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IgnoreRange : ISchemaElement, ISetAttributes - { - - private int offsetField; - - private bool offsetFieldSet; - - private int lengthField; - - private bool lengthFieldSet; - - private ISchemaElement parentElement; - - /// - /// Offset of the start of the range. - /// - public int Offset - { - get - { - return this.offsetField; - } - set - { - this.offsetFieldSet = true; - this.offsetField = value; - } - } - - /// - /// Length of the range. - /// - public int Length - { - get - { - return this.lengthField; - } - set - { - this.lengthFieldSet = true; - this.lengthField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IgnoreRange", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.offsetFieldSet) - { - writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); - } - if (this.lengthFieldSet) - { - writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Offset" == name)) - { - this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.offsetFieldSet = true; - } - if (("Length" == name)) - { - this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.lengthFieldSet = true; - } - } - } - - /// - /// Specifies part of a file that cannot be overwritten during patching. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProtectRange : ISchemaElement, ISetAttributes - { - - private int offsetField; - - private bool offsetFieldSet; - - private int lengthField; - - private bool lengthFieldSet; - - private ISchemaElement parentElement; - - /// - /// Offset of the start of the range. - /// - public int Offset - { - get - { - return this.offsetField; - } - set - { - this.offsetFieldSet = true; - this.offsetField = value; - } - } - - /// - /// Length of the range. - /// - public int Length - { - get - { - return this.lengthField; - } - set - { - this.lengthFieldSet = true; - this.lengthField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProtectRange", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.offsetFieldSet) - { - writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); - } - if (this.lengthFieldSet) - { - writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Offset" == name)) - { - this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.offsetFieldSet = true; - } - if (("Length" == name)) - { - this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.lengthFieldSet = true; - } - } - } - - /// - /// Specifies a file to be protected. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProtectFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string fileField; - - private bool fileFieldSet; - - private ISchemaElement parentElement; - - public ProtectFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProtectRange" == childName)) - { - childValue = new ProtectRange(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProtectFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - } - } - - /// - /// Contains information about specific files that are not part of a regular target image. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExternalFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string fileField; - - private bool fileFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private int orderField; - - private bool orderFieldSet; - - private ISchemaElement parentElement; - - public ExternalFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProtectRange))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// Full path of the external file. - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Specifies the order of the external files to use when creating the patch. - /// - public int Order - { - get - { - return this.orderField; - } - set - { - this.orderFieldSet = true; - this.orderField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProtectRange" == childName)) - { - childValue = new ProtectRange(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("IgnoreRange" == childName)) - { - childValue = new IgnoreRange(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExternalFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.orderFieldSet) - { - writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("Order" == name)) - { - this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.orderFieldSet = true; - } - } - } - - /// - /// Specifies files to either ignore or to specify optional data about a file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UpgradeFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string fileField; - - private bool fileFieldSet; - - private YesNoType ignoreField; - - private bool ignoreFieldSet; - - private YesNoType allowIgnoreOnErrorField; - - private bool allowIgnoreOnErrorFieldSet; - - private YesNoType wholeFileField; - - private bool wholeFileFieldSet; - - private ISchemaElement parentElement; - - public UpgradeFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// If yes, the file is ignored during patching, and the next two attributes are ignored. - /// - public YesNoType Ignore - { - get - { - return this.ignoreField; - } - set - { - this.ignoreFieldSet = true; - this.ignoreField = value; - } - } - - /// - /// Specifies whether patching this file is vital. - /// - public YesNoType AllowIgnoreOnError - { - get - { - return this.allowIgnoreOnErrorField; - } - set - { - this.allowIgnoreOnErrorFieldSet = true; - this.allowIgnoreOnErrorField = value; - } - } - - /// - /// Whether the whole file should be installed, rather than creating a binary patch. - /// - public YesNoType WholeFile - { - get - { - return this.wholeFileField; - } - set - { - this.wholeFileFieldSet = true; - this.wholeFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UpgradeFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.ignoreFieldSet) - { - if ((this.ignoreField == YesNoType.no)) - { - writer.WriteAttributeString("Ignore", "no"); - } - if ((this.ignoreField == YesNoType.yes)) - { - writer.WriteAttributeString("Ignore", "yes"); - } - } - if (this.allowIgnoreOnErrorFieldSet) - { - if ((this.allowIgnoreOnErrorField == YesNoType.no)) - { - writer.WriteAttributeString("AllowIgnoreOnError", "no"); - } - if ((this.allowIgnoreOnErrorField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowIgnoreOnError", "yes"); - } - } - if (this.wholeFileFieldSet) - { - if ((this.wholeFileField == YesNoType.no)) - { - writer.WriteAttributeString("WholeFile", "no"); - } - if ((this.wholeFileField == YesNoType.yes)) - { - writer.WriteAttributeString("WholeFile", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("Ignore" == name)) - { - this.ignoreField = Enums.ParseYesNoType(value); - this.ignoreFieldSet = true; - } - if (("AllowIgnoreOnError" == name)) - { - this.allowIgnoreOnErrorField = Enums.ParseYesNoType(value); - this.allowIgnoreOnErrorFieldSet = true; - } - if (("WholeFile" == name)) - { - this.wholeFileField = Enums.ParseYesNoType(value); - this.wholeFileFieldSet = true; - } - } - } - - /// - /// A path to symbols. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SymbolPath : ISchemaElement, ISetAttributes - { - - private string pathField; - - private bool pathFieldSet; - - private ISchemaElement parentElement; - - /// - /// The path. - /// - public string Path - { - get - { - return this.pathField; - } - set - { - this.pathFieldSet = true; - this.pathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SymbolPath", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.pathFieldSet) - { - writer.WriteAttributeString("Path", this.pathField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Path" == name)) - { - this.pathField = value; - this.pathFieldSet = true; - } - } - } - - /// - /// Properties about the package to be placed in the Summary Information Stream. These are - /// visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Package : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType adminImageField; - - private bool adminImageFieldSet; - - private string commentsField; - - private bool commentsFieldSet; - - private YesNoType compressedField; - - private bool compressedFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private InstallPrivilegesType installPrivilegesField; - - private bool installPrivilegesFieldSet; - - private InstallScopeType installScopeField; - - private bool installScopeFieldSet; - - private int installerVersionField; - - private bool installerVersionFieldSet; - - private string keywordsField; - - private bool keywordsFieldSet; - - private string languagesField; - - private bool languagesFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string platformsField; - - private bool platformsFieldSet; - - private PlatformType platformField; - - private bool platformFieldSet; - - private YesNoDefaultType readOnlyField; - - private bool readOnlyFieldSet; - - private YesNoType shortNamesField; - - private bool shortNamesFieldSet; - - private string summaryCodepageField; - - private bool summaryCodepageFieldSet; - - private ISchemaElement parentElement; - - /// - /// The package code GUID for a product or merge module. - /// When compiling a product, this attribute should not be set in order to allow the package - /// code to be generated for each build. - /// When compiling a merge module, this attribute must be set to the modularization guid. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set to 'yes' if the source is an admin image. - /// - public YesNoType AdminImage - { - get - { - return this.adminImageField; - } - set - { - this.adminImageFieldSet = true; - this.adminImageField = value; - } - } - - /// - /// Optional comments for browsing. - /// - public string Comments - { - get - { - return this.commentsField; - } - set - { - this.commentsFieldSet = true; - this.commentsField = value; - } - } - - /// - /// Set to 'yes' to have compressed files in the source. - /// This attribute cannot be set for merge modules. - /// - public YesNoType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// The product full name or description. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Use this attribute to specify the priviliges required to install the package on Windows Vista and above. - /// - public InstallPrivilegesType InstallPrivileges - { - get - { - return this.installPrivilegesField; - } - set - { - this.installPrivilegesFieldSet = true; - this.installPrivilegesField = value; - } - } - - /// - /// Use this attribute to specify the installation scope of this package: per-machine or per-user. - /// - public InstallScopeType InstallScope - { - get - { - return this.installScopeField; - } - set - { - this.installScopeFieldSet = true; - this.installScopeField = value; - } - } - - /// - /// The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer - /// and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and - /// "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as - /// Windows Installer 2.0 was the first version to support 64-bit packages. - /// - public int InstallerVersion - { - get - { - return this.installerVersionField; - } - set - { - this.installerVersionFieldSet = true; - this.installerVersionField = value; - } - } - - /// - /// Optional keywords for browsing. - /// - public string Keywords - { - get - { - return this.keywordsField; - } - set - { - this.keywordsFieldSet = true; - this.keywordsField = value; - } - } - - /// - /// The list of language IDs (LCIDs) supported in the package. - /// - public string Languages - { - get - { - return this.languagesField; - } - set - { - this.languagesFieldSet = true; - this.languagesField = value; - } - } - - /// - /// The vendor releasing the package. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The list of platforms supported by the package. This attribute has been deprecated. - /// Specify the -arch switch at the candle.exe command line or the InstallerPlatform - /// property in a .wixproj MSBuild project. - /// - public string Platforms - { - get - { - return this.platformsField; - } - set - { - this.platformsFieldSet = true; - this.platformsField = value; - } - } - - /// - /// The platform supported by the package. Use of this attribute is discouraged; instead, - /// specify the -arch switch at the candle.exe command line or the InstallerPlatform - /// property in a .wixproj MSBuild project. - /// - public PlatformType Platform - { - get - { - return this.platformField; - } - set - { - this.platformFieldSet = true; - this.platformField = value; - } - } - - /// - /// The value of this attribute conveys whether the package should be opened as read-only. - /// A database editing tool should not modify a read-only enforced database and should - /// issue a warning at attempts to modify a read-only recommended database. - /// - public YesNoDefaultType ReadOnly - { - get - { - return this.readOnlyField; - } - set - { - this.readOnlyFieldSet = true; - this.readOnlyField = value; - } - } - - /// - /// Set to 'yes' to have short filenames in the source. - /// - public YesNoType ShortNames - { - get - { - return this.shortNamesField; - } - set - { - this.shortNamesFieldSet = true; - this.shortNamesField = value; - } - } - - /// - /// The code page integer value or web name for summary info strings only. See remarks for more information. - /// - public string SummaryCodepage - { - get - { - return this.summaryCodepageField; - } - set - { - this.summaryCodepageFieldSet = true; - this.summaryCodepageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a InstallPrivilegesType from a string. - /// - public static InstallPrivilegesType ParseInstallPrivilegesType(string value) - { - InstallPrivilegesType parsedValue; - Package.TryParseInstallPrivilegesType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallPrivilegesType from a string. - /// - public static bool TryParseInstallPrivilegesType(string value, out InstallPrivilegesType parsedValue) - { - parsedValue = InstallPrivilegesType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("limited" == value)) - { - parsedValue = InstallPrivilegesType.limited; - } - else - { - if (("elevated" == value)) - { - parsedValue = InstallPrivilegesType.elevated; - } - else - { - parsedValue = InstallPrivilegesType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a InstallScopeType from a string. - /// - public static InstallScopeType ParseInstallScopeType(string value) - { - InstallScopeType parsedValue; - Package.TryParseInstallScopeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallScopeType from a string. - /// - public static bool TryParseInstallScopeType(string value, out InstallScopeType parsedValue) - { - parsedValue = InstallScopeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("perMachine" == value)) - { - parsedValue = InstallScopeType.perMachine; - } - else - { - if (("perUser" == value)) - { - parsedValue = InstallScopeType.perUser; - } - else - { - parsedValue = InstallScopeType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a PlatformType from a string. - /// - public static PlatformType ParsePlatformType(string value) - { - PlatformType parsedValue; - Package.TryParsePlatformType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a PlatformType from a string. - /// - public static bool TryParsePlatformType(string value, out PlatformType parsedValue) - { - parsedValue = PlatformType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("x86" == value)) - { - parsedValue = PlatformType.x86; - } - else - { - if (("ia64" == value)) - { - parsedValue = PlatformType.ia64; - } - else - { - if (("x64" == value)) - { - parsedValue = PlatformType.x64; - } - else - { - if (("arm" == value)) - { - parsedValue = PlatformType.arm; - } - else - { - if (("intel" == value)) - { - parsedValue = PlatformType.intel; - } - else - { - if (("intel64" == value)) - { - parsedValue = PlatformType.intel64; - } - else - { - parsedValue = PlatformType.IllegalValue; - return false; - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Package", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.adminImageFieldSet) - { - if ((this.adminImageField == YesNoType.no)) - { - writer.WriteAttributeString("AdminImage", "no"); - } - if ((this.adminImageField == YesNoType.yes)) - { - writer.WriteAttributeString("AdminImage", "yes"); - } - } - if (this.commentsFieldSet) - { - writer.WriteAttributeString("Comments", this.commentsField); - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.installPrivilegesFieldSet) - { - if ((this.installPrivilegesField == InstallPrivilegesType.limited)) - { - writer.WriteAttributeString("InstallPrivileges", "limited"); - } - if ((this.installPrivilegesField == InstallPrivilegesType.elevated)) - { - writer.WriteAttributeString("InstallPrivileges", "elevated"); - } - } - if (this.installScopeFieldSet) - { - if ((this.installScopeField == InstallScopeType.perMachine)) - { - writer.WriteAttributeString("InstallScope", "perMachine"); - } - if ((this.installScopeField == InstallScopeType.perUser)) - { - writer.WriteAttributeString("InstallScope", "perUser"); - } - } - if (this.installerVersionFieldSet) - { - writer.WriteAttributeString("InstallerVersion", this.installerVersionField.ToString(CultureInfo.InvariantCulture)); - } - if (this.keywordsFieldSet) - { - writer.WriteAttributeString("Keywords", this.keywordsField); - } - if (this.languagesFieldSet) - { - writer.WriteAttributeString("Languages", this.languagesField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.platformsFieldSet) - { - writer.WriteAttributeString("Platforms", this.platformsField); - } - if (this.platformFieldSet) - { - if ((this.platformField == PlatformType.x86)) - { - writer.WriteAttributeString("Platform", "x86"); - } - if ((this.platformField == PlatformType.ia64)) - { - writer.WriteAttributeString("Platform", "ia64"); - } - if ((this.platformField == PlatformType.x64)) - { - writer.WriteAttributeString("Platform", "x64"); - } - if ((this.platformField == PlatformType.arm)) - { - writer.WriteAttributeString("Platform", "arm"); - } - if ((this.platformField == PlatformType.intel)) - { - writer.WriteAttributeString("Platform", "intel"); - } - if ((this.platformField == PlatformType.intel64)) - { - writer.WriteAttributeString("Platform", "intel64"); - } - } - if (this.readOnlyFieldSet) - { - if ((this.readOnlyField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("ReadOnly", "default"); - } - if ((this.readOnlyField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("ReadOnly", "no"); - } - if ((this.readOnlyField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("ReadOnly", "yes"); - } - } - if (this.shortNamesFieldSet) - { - if ((this.shortNamesField == YesNoType.no)) - { - writer.WriteAttributeString("ShortNames", "no"); - } - if ((this.shortNamesField == YesNoType.yes)) - { - writer.WriteAttributeString("ShortNames", "yes"); - } - } - if (this.summaryCodepageFieldSet) - { - writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("AdminImage" == name)) - { - this.adminImageField = Enums.ParseYesNoType(value); - this.adminImageFieldSet = true; - } - if (("Comments" == name)) - { - this.commentsField = value; - this.commentsFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoType(value); - this.compressedFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("InstallPrivileges" == name)) - { - this.installPrivilegesField = Package.ParseInstallPrivilegesType(value); - this.installPrivilegesFieldSet = true; - } - if (("InstallScope" == name)) - { - this.installScopeField = Package.ParseInstallScopeType(value); - this.installScopeFieldSet = true; - } - if (("InstallerVersion" == name)) - { - this.installerVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.installerVersionFieldSet = true; - } - if (("Keywords" == name)) - { - this.keywordsField = value; - this.keywordsFieldSet = true; - } - if (("Languages" == name)) - { - this.languagesField = value; - this.languagesFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Platforms" == name)) - { - this.platformsField = value; - this.platformsFieldSet = true; - } - if (("Platform" == name)) - { - this.platformField = Package.ParsePlatformType(value); - this.platformFieldSet = true; - } - if (("ReadOnly" == name)) - { - this.readOnlyField = Enums.ParseYesNoDefaultType(value); - this.readOnlyFieldSet = true; - } - if (("ShortNames" == name)) - { - this.shortNamesField = Enums.ParseYesNoType(value); - this.shortNamesFieldSet = true; - } - if (("SummaryCodepage" == name)) - { - this.summaryCodepageField = value; - this.summaryCodepageFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallPrivilegesType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set this value to declare that the package does not require elevated privileges to install. - /// - limited, - - /// - /// Set this value to declare that the package requires elevated privileges to install. - /// This is the default value. - /// - elevated, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallScopeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set this value to declare that the package is a per-machine installation and requires elevated privileges to install. - /// Sets the ALLUSERS property to 1. - /// - perMachine, - - /// - /// Set this value to declare that the package is a per-user installation and does not require elevated privileges to install. - /// Sets the package's InstallPrivileges attribute to "limited." - /// - perUser, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum PlatformType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set this value to declare that the package is an x86 package. - /// - x86, - - /// - /// Set this value to declare that the package is an ia64 package. - /// This value requires that the InstallerVersion property be set to 200 or greater. - /// - ia64, - - /// - /// Set this value to declare that the package is an x64 package. - /// This value requires that the InstallerVersion property be set to 200 or greater. - /// - x64, - - /// - /// Set this value to declare that the package is an arm package. - /// This value requires that the InstallerVersion property be set to 500 or greater. - /// - arm, - - /// - /// This value has been deprecated. Use "x86" instead. - /// - intel, - - /// - /// This value has been deprecated. Use "ia64" instead. - /// - intel64, - } - } - - /// - /// The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. - /// Consider using the Assembly attribute on File element to have the toolset populate these entries automatically. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AssemblyName : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Name of the attribute associated with the value specified in the Value column. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Value associated with the name specified in the Name column. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AssemblyName", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Identifies the possible signer certificates used to digitally sign patches. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public PatchCertificates() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalCertificate" == childName)) - { - childValue = new DigitalCertificate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchCertificates", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Digital signatures that identify installation packages in a multi-product transaction. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PackageCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public PackageCertificates() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalCertificate" == childName)) - { - childValue = new DigitalCertificate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PackageCertificates", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Adds a digital certificate. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DigitalCertificate : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for a certificate file. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The path to the certificate file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DigitalCertificate", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents - /// to be included in the installer database. This is only used for references when patching. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DigitalCertificateRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DigitalCertificateRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Adds a digital signature. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DigitalSignature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - public DigitalSignature() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The path to signature's optional hash file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalCertificate" == childName)) - { - childValue = new DigitalCertificate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DigitalSignature", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Adds a system file protection update catalog file - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SFPCatalog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string nameField; - - private bool nameFieldSet; - - private string dependencyField; - - private bool dependencyFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - public SFPCatalog() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPFile))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Filename for catalog file when installed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Used to define dependency outside of the package. - /// - public string Dependency - { - get - { - return this.dependencyField; - } - set - { - this.dependencyFieldSet = true; - this.dependencyField = value; - } - } - - /// - /// Path to catalog file in binary. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("SFPFile" == childName)) - { - childValue = new SFPFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SFPCatalog", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.dependencyFieldSet) - { - writer.WriteAttributeString("Dependency", this.dependencyField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Dependency" == name)) - { - this.dependencyField = value; - this.dependencyFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Provides a many-to-many mapping from the SFPCatalog table to the File table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SFPFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary Key to File Table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SFPFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Adds or removes .ini file entries. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IniFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sectionField; - - private bool sectionFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for ini file. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The type of modification to be made. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// The localizable .ini file key within the section. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short name. - /// This attribute's value may now be either a short or long name. - /// If a short name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short name. - /// However, if this name collides with another file or you wish to manually specify - /// the short name, then the ShortName attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The localizable .ini file section. - /// - public string Section - { - get - { - return this.sectionField; - } - set - { - this.sectionFieldSet = true; - this.sectionField = value; - } - } - - /// - /// The short name of the in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short names - /// or the user wants to manually specify the short name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// The localizable value to be written or deleted. This attribute must be set if - /// the Action attribute's value is "addLine", "addTag", or "createLine". - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - IniFile.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("addLine" == value)) - { - parsedValue = ActionType.addLine; - } - else - { - if (("addTag" == value)) - { - parsedValue = ActionType.addTag; - } - else - { - if (("createLine" == value)) - { - parsedValue = ActionType.createLine; - } - else - { - if (("removeLine" == value)) - { - parsedValue = ActionType.removeLine; - } - else - { - if (("removeTag" == value)) - { - parsedValue = ActionType.removeTag; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IniFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.addLine)) - { - writer.WriteAttributeString("Action", "addLine"); - } - if ((this.actionField == ActionType.addTag)) - { - writer.WriteAttributeString("Action", "addTag"); - } - if ((this.actionField == ActionType.createLine)) - { - writer.WriteAttributeString("Action", "createLine"); - } - if ((this.actionField == ActionType.removeLine)) - { - writer.WriteAttributeString("Action", "removeLine"); - } - if ((this.actionField == ActionType.removeTag)) - { - writer.WriteAttributeString("Action", "removeTag"); - } - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sectionFieldSet) - { - writer.WriteAttributeString("Section", this.sectionField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = IniFile.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Section" == name)) - { - this.sectionField = value; - this.sectionFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Creates or updates an .ini entry. - /// - addLine, - - /// - /// Creates a new entry or appends a new comma-separated value to an existing entry. - /// - addTag, - - /// - /// Creates an .ini entry only if the entry does no already exist. - /// - createLine, - - /// - /// Removes an .ini entry. - /// - removeLine, - - /// - /// Removes a tag from an .ini entry. - /// - removeTag, - } - } - - /// - /// ODBCDataSource for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ODBCDataSource : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string driverNameField; - - private bool driverNameFieldSet; - - private RegistrationType registrationField; - - private bool registrationFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private ISchemaElement parentElement; - - public ODBCDataSource() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier of the data source. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for the data source. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Required if not found as child of ODBCDriver element - /// - public string DriverName - { - get - { - return this.driverNameField; - } - set - { - this.driverNameFieldSet = true; - this.driverNameField = value; - } - } - - /// - /// Scope for which the data source should be registered. - /// - public RegistrationType Registration - { - get - { - return this.registrationField; - } - set - { - this.registrationFieldSet = true; - this.registrationField = value; - } - } - - /// - /// Set 'yes' to force this file to be key path for parent Component - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Property" == childName)) - { - childValue = new Property(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a RegistrationType from a string. - /// - public static RegistrationType ParseRegistrationType(string value) - { - RegistrationType parsedValue; - ODBCDataSource.TryParseRegistrationType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a RegistrationType from a string. - /// - public static bool TryParseRegistrationType(string value, out RegistrationType parsedValue) - { - parsedValue = RegistrationType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("machine" == value)) - { - parsedValue = RegistrationType.machine; - } - else - { - if (("user" == value)) - { - parsedValue = RegistrationType.user; - } - else - { - parsedValue = RegistrationType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ODBCDataSource", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.driverNameFieldSet) - { - writer.WriteAttributeString("DriverName", this.driverNameField); - } - if (this.registrationFieldSet) - { - if ((this.registrationField == RegistrationType.machine)) - { - writer.WriteAttributeString("Registration", "machine"); - } - if ((this.registrationField == RegistrationType.user)) - { - writer.WriteAttributeString("Registration", "user"); - } - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DriverName" == name)) - { - this.driverNameField = value; - this.driverNameFieldSet = true; - } - if (("Registration" == name)) - { - this.registrationField = ODBCDataSource.ParseRegistrationType(value); - this.registrationFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum RegistrationType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Data source is registered per machine. - /// - machine, - - /// - /// Data source is registered per user. - /// - user, - } - } - - /// - /// ODBCDriver for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ODBCDriver : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string fileField; - - private bool fileFieldSet; - - private string setupFileField; - - private bool setupFileFieldSet; - - private ISchemaElement parentElement; - - public ODBCDriver() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ODBCDataSource))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the driver. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for the driver. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Required if not found as child of File element - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// Required if not found as child of File element or different from File attribute above - /// - public string SetupFile - { - get - { - return this.setupFileField; - } - set - { - this.setupFileFieldSet = true; - this.setupFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("ODBCDataSource" == childName)) - { - childValue = new ODBCDataSource(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ODBCDriver", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.setupFileFieldSet) - { - writer.WriteAttributeString("SetupFile", this.setupFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("SetupFile" == name)) - { - this.setupFileField = value; - this.setupFileFieldSet = true; - } - } - } - - /// - /// ODBCTranslator for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ODBCTranslator : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string fileField; - - private bool fileFieldSet; - - private string setupFileField; - - private bool setupFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for the translator. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for the translator. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Required if not found as child of File element - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// Required if not found as child of File element or different from File attribute above - /// - public string SetupFile - { - get - { - return this.setupFileField; - } - set - { - this.setupFileFieldSet = true; - this.setupFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ODBCTranslator", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.setupFileFieldSet) - { - writer.WriteAttributeString("SetupFile", this.setupFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("SetupFile" == name)) - { - this.setupFileField = value; - this.setupFileFieldSet = true; - } - } - } - - /// - /// Searches for file and assigns to fullpath value of parent Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileSearch : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private int minSizeField; - - private bool minSizeFieldSet; - - private int maxSizeField; - - private bool maxSizeFieldSet; - - private string minVersionField; - - private bool minVersionFieldSet; - - private string maxVersionField; - - private bool maxVersionFieldSet; - - private DateTime minDateField; - - private bool minDateFieldSet; - - private DateTime maxDateField; - - private bool maxDateFieldSet; - - private string languagesField; - - private bool languagesFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// This attribute's value may now be either a short or long file name. - /// If a short file name is specified, the ShortName attribute may not be specified. - /// If you wish to manually specify the short file name, then the ShortName - /// attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// There is a Windows Installer bug which prevents the FileSearch functionality from working - /// if both a short and long file name are specified. Since the Name attribute allows either - /// a short or long name to be specified, it is the only attribute related to file names which - /// should be specified. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// The minimum size of the file. - /// - public int MinSize - { - get - { - return this.minSizeField; - } - set - { - this.minSizeFieldSet = true; - this.minSizeField = value; - } - } - - /// - /// The maximum size of the file. - /// - public int MaxSize - { - get - { - return this.maxSizeField; - } - set - { - this.maxSizeFieldSet = true; - this.maxSizeField = value; - } - } - - /// - /// The minimum version of the file. - /// - public string MinVersion - { - get - { - return this.minVersionField; - } - set - { - this.minVersionFieldSet = true; - this.minVersionField = value; - } - } - - /// - /// The maximum version of the file. - /// - public string MaxVersion - { - get - { - return this.maxVersionField; - } - set - { - this.maxVersionFieldSet = true; - this.maxVersionField = value; - } - } - - /// - /// The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. - /// - public DateTime MinDate - { - get - { - return this.minDateField; - } - set - { - this.minDateFieldSet = true; - this.minDateField = value; - } - } - - /// - /// The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. - /// - public DateTime MaxDate - { - get - { - return this.maxDateField; - } - set - { - this.maxDateFieldSet = true; - this.maxDateField = value; - } - } - - /// - /// The languages supported by the file. - /// - public string Languages - { - get - { - return this.languagesField; - } - set - { - this.languagesFieldSet = true; - this.languagesField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.minSizeFieldSet) - { - writer.WriteAttributeString("MinSize", this.minSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maxSizeFieldSet) - { - writer.WriteAttributeString("MaxSize", this.maxSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.minVersionFieldSet) - { - writer.WriteAttributeString("MinVersion", this.minVersionField); - } - if (this.maxVersionFieldSet) - { - writer.WriteAttributeString("MaxVersion", this.maxVersionField); - } - if (this.minDateFieldSet) - { - writer.WriteAttributeString("MinDate", this.minDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); - } - if (this.maxDateFieldSet) - { - writer.WriteAttributeString("MaxDate", this.maxDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); - } - if (this.languagesFieldSet) - { - writer.WriteAttributeString("Languages", this.languagesField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("MinSize" == name)) - { - this.minSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.minSizeFieldSet = true; - } - if (("MaxSize" == name)) - { - this.maxSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maxSizeFieldSet = true; - } - if (("MinVersion" == name)) - { - this.minVersionField = value; - this.minVersionFieldSet = true; - } - if (("MaxVersion" == name)) - { - this.maxVersionField = value; - this.maxVersionFieldSet = true; - } - if (("MinDate" == name)) - { - this.minDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); - this.minDateFieldSet = true; - } - if (("MaxDate" == name)) - { - this.maxDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); - this.maxDateFieldSet = true; - } - if (("Languages" == name)) - { - this.languagesField = value; - this.languagesFieldSet = true; - } - } - } - - /// - /// References an existing FileSearch element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileSearchRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specify the Id to the FileSearch to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Searches for directory and assigns to value of parent Property. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DirectorySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string pathField; - - private bool pathFieldSet; - - private int depthField; - - private bool depthFieldSet; - - private YesNoType assignToPropertyField; - - private bool assignToPropertyFieldSet; - - private ISchemaElement parentElement; - - public DirectorySearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the directory search. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Path on the user's system. Either absolute, or relative to containing directories. - /// - public string Path - { - get - { - return this.pathField; - } - set - { - this.pathFieldSet = true; - this.pathField = value; - } - } - - /// - /// Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information. - /// - public int Depth - { - get - { - return this.depthField; - } - set - { - this.depthFieldSet = true; - this.depthField = value; - } - } - - /// - /// Set the value of the outer Property to the result of this search. See remarks for more information. - /// - public YesNoType AssignToProperty - { - get - { - return this.assignToPropertyField; - } - set - { - this.assignToPropertyFieldSet = true; - this.assignToPropertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.pathFieldSet) - { - writer.WriteAttributeString("Path", this.pathField); - } - if (this.depthFieldSet) - { - writer.WriteAttributeString("Depth", this.depthField.ToString(CultureInfo.InvariantCulture)); - } - if (this.assignToPropertyFieldSet) - { - if ((this.assignToPropertyField == YesNoType.no)) - { - writer.WriteAttributeString("AssignToProperty", "no"); - } - if ((this.assignToPropertyField == YesNoType.yes)) - { - writer.WriteAttributeString("AssignToProperty", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Path" == name)) - { - this.pathField = value; - this.pathFieldSet = true; - } - if (("Depth" == name)) - { - this.depthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.depthFieldSet = true; - } - if (("AssignToProperty" == name)) - { - this.assignToPropertyField = Enums.ParseYesNoType(value); - this.assignToPropertyFieldSet = true; - } - } - } - - /// - /// References an existing DirectorySearch element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DirectorySearchRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string parentField; - - private bool parentFieldSet; - - private string pathField; - - private bool pathFieldSet; - - private ISchemaElement parentElement; - - public DirectorySearchRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Id of the search being referred to. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables. - /// - public string Parent - { - get - { - return this.parentField; - } - set - { - this.parentFieldSet = true; - this.parentField = value; - } - } - - /// - /// Path on the user's system. Either absolute, or relative to containing directories. - /// - public string Path - { - get - { - return this.pathField; - } - set - { - this.pathFieldSet = true; - this.pathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.parentFieldSet) - { - writer.WriteAttributeString("Parent", this.parentField); - } - if (this.pathFieldSet) - { - writer.WriteAttributeString("Path", this.pathField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Parent" == name)) - { - this.parentField = value; - this.parentFieldSet = true; - } - if (("Path" == name)) - { - this.pathField = value; - this.pathFieldSet = true; - } - } - } - - /// - /// Searches for file or directory and assigns to value of parent Property. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string guidField; - - private bool guidFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - public ComponentSearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The component ID of the component whose key path is to be used for the search. - /// - public string Guid - { - get - { - return this.guidField; - } - set - { - this.guidFieldSet = true; - this.guidField = value; - } - } - - /// - /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - ComponentSearch.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("directory" == value)) - { - parsedValue = TypeType.directory; - } - else - { - if (("file" == value)) - { - parsedValue = TypeType.file; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.guidFieldSet) - { - writer.WriteAttributeString("Guid", this.guidField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.directory)) - { - writer.WriteAttributeString("Type", "directory"); - } - if ((this.typeField == TypeType.file)) - { - writer.WriteAttributeString("Type", "file"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Guid" == name)) - { - this.guidField = value; - this.guidFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = ComponentSearch.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The key path of the component is a directory. - /// - directory, - - /// - /// The key path of the component is a file. This is the default value. - /// - file, - } - } - - /// - /// Searches for file, directory or registry key and assigns to value of parent Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IniFileSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private int fieldField; - - private bool fieldFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sectionField; - - private bool sectionFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - public IniFileSearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// External key into the Signature table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The field in the .ini line. If field is Null or 0, the entire line is read. - /// - public int Field - { - get - { - return this.fieldField; - } - set - { - this.fieldFieldSet = true; - this.fieldField = value; - } - } - - /// - /// The key value within the section. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short name. - /// This attribute's value may now be either a short or long name. - /// If a short name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short name. - /// However, if you wish to manually specify the short name, then the ShortName - /// attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The localizable .ini file section. - /// - public string Section - { - get - { - return this.sectionField; - } - set - { - this.sectionFieldSet = true; - this.sectionField = value; - } - } - - /// - /// The short name of the file in 8.3 format. - /// This attribute should only be set if the user wants to manually specify the short name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - IniFileSearch.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("directory" == value)) - { - parsedValue = TypeType.directory; - } - else - { - if (("file" == value)) - { - parsedValue = TypeType.file; - } - else - { - if (("raw" == value)) - { - parsedValue = TypeType.raw; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IniFileSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.fieldFieldSet) - { - writer.WriteAttributeString("Field", this.fieldField.ToString(CultureInfo.InvariantCulture)); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sectionFieldSet) - { - writer.WriteAttributeString("Section", this.sectionField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.directory)) - { - writer.WriteAttributeString("Type", "directory"); - } - if ((this.typeField == TypeType.file)) - { - writer.WriteAttributeString("Type", "file"); - } - if ((this.typeField == TypeType.raw)) - { - writer.WriteAttributeString("Type", "raw"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Field" == name)) - { - this.fieldField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.fieldFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Section" == name)) - { - this.sectionField = value; - this.sectionFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = IniFileSearch.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// A directory location. - /// - directory, - - /// - /// A file location. This is the default value. - /// - file, - - /// - /// A raw .ini value. - /// - raw, - } - } - - /// - /// Searches for file, directory or registry key and assigns to value of parent Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistrySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private RootType rootField; - - private bool rootFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private ISchemaElement parentElement; - - public RegistrySearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Signature to be used for the file, directory or registry key being searched for. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Root key for the registry value. - /// - public RootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - /// - /// Key for the registry value. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. - /// The default value is based on the platform set by the -arch switch to candle.exe - /// or the InstallerPlatform property in a .wixproj MSBuild project: - /// For x86 and ARM, the default value is 'no'. - /// For x64 and IA64, the default value is 'yes'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a RootType from a string. - /// - public static RootType ParseRootType(string value) - { - RootType parsedValue; - RegistrySearch.TryParseRootType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a RootType from a string. - /// - public static bool TryParseRootType(string value, out RootType parsedValue) - { - parsedValue = RootType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("HKCR" == value)) - { - parsedValue = RootType.HKCR; - } - else - { - if (("HKCU" == value)) - { - parsedValue = RootType.HKCU; - } - else - { - if (("HKLM" == value)) - { - parsedValue = RootType.HKLM; - } - else - { - if (("HKU" == value)) - { - parsedValue = RootType.HKU; - } - else - { - parsedValue = RootType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - RegistrySearch.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("directory" == value)) - { - parsedValue = TypeType.directory; - } - else - { - if (("file" == value)) - { - parsedValue = TypeType.file; - } - else - { - if (("raw" == value)) - { - parsedValue = TypeType.raw; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistrySearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.directory)) - { - writer.WriteAttributeString("Type", "directory"); - } - if ((this.typeField == TypeType.file)) - { - writer.WriteAttributeString("Type", "file"); - } - if ((this.typeField == TypeType.raw)) - { - writer.WriteAttributeString("Type", "raw"); - } - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = RegistrySearch.ParseRootType(value); - this.rootFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = RegistrySearch.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum RootType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// HKEY_CLASSES_ROOT - /// - HKCR, - - /// - /// HKEY_CURRENT_USER - /// - HKCU, - - /// - /// HKEY_LOCAL_MACHINE - /// - HKLM, - - /// - /// HKEY_USERS - /// - HKU, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The registry value contains the path to a directory. - /// - directory, - - /// - /// The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned. - /// - file, - - /// - /// Sets the raw value from the registry value. Please note that this value will contain a prefix as follows: - /// - raw, - } - } - - /// - /// References an existing RegistrySearch element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistrySearchRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specify the Id of the RegistrySearch to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistrySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Sets the parent of a nested DirectorySearch element to CCP_DRIVE. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComplianceDrive : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public ComplianceDrive() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComplianceDrive", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Adds a row to the CCPSearch table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComplianceCheck : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public ComplianceCheck() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ComplianceDrive" == childName)) - { - childValue = new ComplianceDrive(); - } - if (("ComponentSearch" == childName)) - { - childValue = new ComponentSearch(); - } - if (("RegistrySearch" == childName)) - { - childValue = new RegistrySearch(); - } - if (("IniFileSearch" == childName)) - { - childValue = new IniFileSearch(); - } - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComplianceCheck", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Property value for a Product or Module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Property : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private YesNoType complianceCheckField; - - private bool complianceCheckFieldSet; - - private YesNoType adminField; - - private bool adminFieldSet; - - private YesNoType secureField; - - private bool secureFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType suppressModularizationField; - - private bool suppressModularizationFieldSet; - - private ISchemaElement parentElement; - - public Property() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearchRef))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearchRef))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ProductSearch))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for Property. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Sets a default value for the property. The value will be overwritten if the Property is used for a search. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element. - /// - public YesNoType ComplianceCheck - { - get - { - return this.complianceCheckField; - } - set - { - this.complianceCheckFieldSet = true; - this.complianceCheckField = value; - } - } - - /// - /// Denotes that the Property is saved during - /// - public YesNoType Admin - { - get - { - return this.adminField; - } - set - { - this.adminFieldSet = true; - this.adminField = value; - } - } - - /// - /// Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the - /// - public YesNoType Secure - { - get - { - return this.secureField; - } - set - { - this.secureFieldSet = true; - this.secureField = value; - } - } - - /// - /// Denotes that the Property is not logged during installation. See the - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Use to suppress modularization of this property identifier in merge modules. - /// Using this functionality is strongly discouraged; it should only be - /// necessary as a workaround of last resort in rare scenarios. - /// - public YesNoType SuppressModularization - { - get - { - return this.suppressModularizationField; - } - set - { - this.suppressModularizationFieldSet = true; - this.suppressModularizationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ComplianceDrive" == childName)) - { - childValue = new ComplianceDrive(); - } - if (("ComponentSearch" == childName)) - { - childValue = new ComponentSearch(); - } - if (("RegistrySearch" == childName)) - { - childValue = new RegistrySearch(); - } - if (("RegistrySearchRef" == childName)) - { - childValue = new RegistrySearchRef(); - } - if (("IniFileSearch" == childName)) - { - childValue = new IniFileSearch(); - } - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("ProductSearch" == childName)) - { - childValue = new ProductSearch(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Property", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.complianceCheckFieldSet) - { - if ((this.complianceCheckField == YesNoType.no)) - { - writer.WriteAttributeString("ComplianceCheck", "no"); - } - if ((this.complianceCheckField == YesNoType.yes)) - { - writer.WriteAttributeString("ComplianceCheck", "yes"); - } - } - if (this.adminFieldSet) - { - if ((this.adminField == YesNoType.no)) - { - writer.WriteAttributeString("Admin", "no"); - } - if ((this.adminField == YesNoType.yes)) - { - writer.WriteAttributeString("Admin", "yes"); - } - } - if (this.secureFieldSet) - { - if ((this.secureField == YesNoType.no)) - { - writer.WriteAttributeString("Secure", "no"); - } - if ((this.secureField == YesNoType.yes)) - { - writer.WriteAttributeString("Secure", "yes"); - } - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.suppressModularizationFieldSet) - { - if ((this.suppressModularizationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressModularization", "no"); - } - if ((this.suppressModularizationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressModularization", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("ComplianceCheck" == name)) - { - this.complianceCheckField = Enums.ParseYesNoType(value); - this.complianceCheckFieldSet = true; - } - if (("Admin" == name)) - { - this.adminField = Enums.ParseYesNoType(value); - this.adminFieldSet = true; - } - if (("Secure" == name)) - { - this.secureField = Enums.ParseYesNoType(value); - this.secureFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("SuppressModularization" == name)) - { - this.suppressModularizationField = Enums.ParseYesNoType(value); - this.suppressModularizationFieldSet = true; - } - } - } - - /// - /// Reference to a Property value. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PropertyRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier of Property to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PropertyRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Shortcut, default target is parent File, CreateFolder, or Component's Directory - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Shortcut : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private string targetField; - - private bool targetFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string argumentsField; - - private bool argumentsFieldSet; - - private int hotkeyField; - - private bool hotkeyFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private int iconIndexField; - - private bool iconIndexFieldSet; - - private ShowType showField; - - private bool showFieldSet; - - private string workingDirectoryField; - - private bool workingDirectoryFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string displayResourceDllField; - - private bool displayResourceDllFieldSet; - - private int displayResourceIdField; - - private bool displayResourceIdFieldSet; - - private string descriptionResourceDllField; - - private bool descriptionResourceDllFieldSet; - - private int descriptionResourceIdField; - - private bool descriptionResourceIdFieldSet; - - private ISchemaElement parentElement; - - public Shortcut() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ShortcutProperty))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the shortcut. This value will serve as the primary key for the row. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short name. - /// This attribute's value may now be either a short or long name. - /// If a short name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short name. - /// However, if this name collides with another shortcut or you wish to manually specify - /// the short name, then the ShortName attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short name of the shortcut in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short names - /// or the user wants to manually specify the short name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// This attribute can only be set if this Shortcut element is nested under a Component element. - /// When nested under a Component element, this attribute's value will default to the parent directory. - /// This attribute's value is the target for a non-advertised shortcut. - /// This attribute is not valid for advertised shortcuts. - /// If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut. - /// - public string Target - { - get - { - return this.targetField; - } - set - { - this.targetFieldSet = true; - this.targetField = value; - } - } - - /// - /// The localizable description for the shortcut. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// The command-line arguments for the shortcut. Note that the resolution of properties - /// in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the - /// property already has the intended value when the component owning the shortcut is installed. For example, for the - /// argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and - /// the component that owns the shortcut. - /// - public string Arguments - { - get - { - return this.argumentsField; - } - set - { - this.argumentsFieldSet = true; - this.argumentsField = value; - } - } - - /// - /// The hotkey for the shortcut. The low-order byte contains the virtual-key code for - /// the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of - /// installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a - /// users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys - /// for accessibility. - /// - public int Hotkey - { - get - { - return this.hotkeyField; - } - set - { - this.hotkeyFieldSet = true; - this.hotkeyField = value; - } - } - - /// - /// Identifier reference to Icon element. The Icon identifier should have the same extension - /// as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier - /// like "MyIcon.exe" - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// Identifier reference to Icon element. - /// - public int IconIndex - { - get - { - return this.iconIndexField; - } - set - { - this.iconIndexFieldSet = true; - this.iconIndexField = value; - } - } - - public ShowType Show - { - get - { - return this.showField; - } - set - { - this.showFieldSet = true; - this.showField = value; - } - } - - /// - /// Directory identifier (or Property identifier that resolves to a directory) that resolves - /// to the path of the working directory for the shortcut. - /// - public string WorkingDirectory - { - get - { - return this.workingDirectoryField; - } - set - { - this.workingDirectoryFieldSet = true; - this.workingDirectoryField = value; - } - } - - /// - /// Specifies if the shortcut should be advertised or not. Note that advertised shortcuts - /// always point at a particular application, identified by a ProductCode, and should not be shared between applications. - /// Advertised shortcuts only work for the most recently installed application, and are removed when that application is - /// removed. The default value is 'no'. - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally - /// authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also - /// be provided. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not populated and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and - /// the install is running on Vista and above, the value in the Name attribute is ignored. - /// - public string DisplayResourceDll - { - get - { - return this.displayResourceDllField; - } - set - { - this.displayResourceDllFieldSet = true; - this.displayResourceDllField = value; - } - } - - /// - /// The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the - /// DisplayResourceDll attribute must also be provided. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and - /// the install is running on Vista and above, the value in the Name attribute is ignored. - /// - public int DisplayResourceId - { - get - { - return this.displayResourceIdField; - } - set - { - this.displayResourceIdFieldSet = true; - this.displayResourceIdField = value; - } - } - - /// - /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally - /// authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also - /// be provided. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and - /// the install is running on Vista and above, the value in the Name attribute is ignored. - /// - public string DescriptionResourceDll - { - get - { - return this.descriptionResourceDllField; - } - set - { - this.descriptionResourceDllFieldSet = true; - this.descriptionResourceDllField = value; - } - } - - /// - /// The description name index for the shortcut. This must be a non-negative number. When this attribute is specified, - /// the DescriptionResourceDll attribute must also be populated. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the - /// install is running on Vista and above, the value in the Name attribute is ignored. - /// - public int DescriptionResourceId - { - get - { - return this.descriptionResourceIdField; - } - set - { - this.descriptionResourceIdFieldSet = true; - this.descriptionResourceIdField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("ShortcutProperty" == childName)) - { - childValue = new ShortcutProperty(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a ShowType from a string. - /// - public static ShowType ParseShowType(string value) - { - ShowType parsedValue; - Shortcut.TryParseShowType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ShowType from a string. - /// - public static bool TryParseShowType(string value, out ShowType parsedValue) - { - parsedValue = ShowType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("normal" == value)) - { - parsedValue = ShowType.normal; - } - else - { - if (("minimized" == value)) - { - parsedValue = ShowType.minimized; - } - else - { - if (("maximized" == value)) - { - parsedValue = ShowType.maximized; - } - else - { - parsedValue = ShowType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Shortcut", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.targetFieldSet) - { - writer.WriteAttributeString("Target", this.targetField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.argumentsFieldSet) - { - writer.WriteAttributeString("Arguments", this.argumentsField); - } - if (this.hotkeyFieldSet) - { - writer.WriteAttributeString("Hotkey", this.hotkeyField.ToString(CultureInfo.InvariantCulture)); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.iconIndexFieldSet) - { - writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); - } - if (this.showFieldSet) - { - if ((this.showField == ShowType.normal)) - { - writer.WriteAttributeString("Show", "normal"); - } - if ((this.showField == ShowType.minimized)) - { - writer.WriteAttributeString("Show", "minimized"); - } - if ((this.showField == ShowType.maximized)) - { - writer.WriteAttributeString("Show", "maximized"); - } - } - if (this.workingDirectoryFieldSet) - { - writer.WriteAttributeString("WorkingDirectory", this.workingDirectoryField); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.displayResourceDllFieldSet) - { - writer.WriteAttributeString("DisplayResourceDll", this.displayResourceDllField); - } - if (this.displayResourceIdFieldSet) - { - writer.WriteAttributeString("DisplayResourceId", this.displayResourceIdField.ToString(CultureInfo.InvariantCulture)); - } - if (this.descriptionResourceDllFieldSet) - { - writer.WriteAttributeString("DescriptionResourceDll", this.descriptionResourceDllField); - } - if (this.descriptionResourceIdFieldSet) - { - writer.WriteAttributeString("DescriptionResourceId", this.descriptionResourceIdField.ToString(CultureInfo.InvariantCulture)); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("Target" == name)) - { - this.targetField = value; - this.targetFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Arguments" == name)) - { - this.argumentsField = value; - this.argumentsFieldSet = true; - } - if (("Hotkey" == name)) - { - this.hotkeyField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.hotkeyFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("IconIndex" == name)) - { - this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.iconIndexFieldSet = true; - } - if (("Show" == name)) - { - this.showField = Shortcut.ParseShowType(value); - this.showFieldSet = true; - } - if (("WorkingDirectory" == name)) - { - this.workingDirectoryField = value; - this.workingDirectoryFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("DisplayResourceDll" == name)) - { - this.displayResourceDllField = value; - this.displayResourceDllFieldSet = true; - } - if (("DisplayResourceId" == name)) - { - this.displayResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.displayResourceIdFieldSet = true; - } - if (("DescriptionResourceDll" == name)) - { - this.descriptionResourceDllField = value; - this.descriptionResourceDllFieldSet = true; - } - if (("DescriptionResourceId" == name)) - { - this.descriptionResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.descriptionResourceIdFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ShowType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The shortcut target will be displayed using the SW_SHOWNORMAL attribute. - /// - normal, - - /// - /// The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute. - /// - minimized, - - /// - /// The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute. - /// - maximized, - } - } - - /// - /// Property values for a shortcut. This element's functionality is available starting with MSI 5.0. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ShortcutProperty : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// A formatted string identifying the property to be set. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// A formatted string supplying the value of the property. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ShortcutProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used - /// if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute. - /// The table and key are taken from the parent element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Permission : ISchemaElement, ISetAttributes - { - - private string domainField; - - private bool domainFieldSet; - - private string userField; - - private bool userFieldSet; - - private YesNoType readField; - - private bool readFieldSet; - - private YesNoType deleteField; - - private bool deleteFieldSet; - - private YesNoType readPermissionField; - - private bool readPermissionFieldSet; - - private YesNoType changePermissionField; - - private bool changePermissionFieldSet; - - private YesNoType takeOwnershipField; - - private bool takeOwnershipFieldSet; - - private YesNoType specificRightsAllField; - - private bool specificRightsAllFieldSet; - - private YesNoType readAttributesField; - - private bool readAttributesFieldSet; - - private YesNoType writeAttributesField; - - private bool writeAttributesFieldSet; - - private YesNoType readExtendedAttributesField; - - private bool readExtendedAttributesFieldSet; - - private YesNoType writeExtendedAttributesField; - - private bool writeExtendedAttributesFieldSet; - - private YesNoType synchronizeField; - - private bool synchronizeFieldSet; - - private YesNoType createFileField; - - private bool createFileFieldSet; - - private YesNoType createChildField; - - private bool createChildFieldSet; - - private YesNoType deleteChildField; - - private bool deleteChildFieldSet; - - private YesNoType traverseField; - - private bool traverseFieldSet; - - private YesNoType appendField; - - private bool appendFieldSet; - - private YesNoType executeField; - - private bool executeFieldSet; - - private YesNoType fileAllRightsField; - - private bool fileAllRightsFieldSet; - - private YesNoType writeField; - - private bool writeFieldSet; - - private YesNoType createSubkeysField; - - private bool createSubkeysFieldSet; - - private YesNoType enumerateSubkeysField; - - private bool enumerateSubkeysFieldSet; - - private YesNoType notifyField; - - private bool notifyFieldSet; - - private YesNoType createLinkField; - - private bool createLinkFieldSet; - - private YesNoType genericAllField; - - private bool genericAllFieldSet; - - private YesNoType genericExecuteField; - - private bool genericExecuteFieldSet; - - private YesNoType genericWriteField; - - private bool genericWriteFieldSet; - - private YesNoType genericReadField; - - private bool genericReadFieldSet; - - private ISchemaElement parentElement; - - public string Domain - { - get - { - return this.domainField; - } - set - { - this.domainFieldSet = true; - this.domainField = value; - } - } - - public string User - { - get - { - return this.userField; - } - set - { - this.userFieldSet = true; - this.userField = value; - } - } - - public YesNoType Read - { - get - { - return this.readField; - } - set - { - this.readFieldSet = true; - this.readField = value; - } - } - - public YesNoType Delete - { - get - { - return this.deleteField; - } - set - { - this.deleteFieldSet = true; - this.deleteField = value; - } - } - - public YesNoType ReadPermission - { - get - { - return this.readPermissionField; - } - set - { - this.readPermissionFieldSet = true; - this.readPermissionField = value; - } - } - - public YesNoType ChangePermission - { - get - { - return this.changePermissionField; - } - set - { - this.changePermissionFieldSet = true; - this.changePermissionField = value; - } - } - - public YesNoType TakeOwnership - { - get - { - return this.takeOwnershipField; - } - set - { - this.takeOwnershipFieldSet = true; - this.takeOwnershipField = value; - } - } - - /// - /// Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF). - /// - public YesNoType SpecificRightsAll - { - get - { - return this.specificRightsAllField; - } - set - { - this.specificRightsAllFieldSet = true; - this.specificRightsAllField = value; - } - } - - public YesNoType ReadAttributes - { - get - { - return this.readAttributesField; - } - set - { - this.readAttributesFieldSet = true; - this.readAttributesField = value; - } - } - - public YesNoType WriteAttributes - { - get - { - return this.writeAttributesField; - } - set - { - this.writeAttributesFieldSet = true; - this.writeAttributesField = value; - } - } - - public YesNoType ReadExtendedAttributes - { - get - { - return this.readExtendedAttributesField; - } - set - { - this.readExtendedAttributesFieldSet = true; - this.readExtendedAttributesField = value; - } - } - - public YesNoType WriteExtendedAttributes - { - get - { - return this.writeExtendedAttributesField; - } - set - { - this.writeExtendedAttributesFieldSet = true; - this.writeExtendedAttributesField = value; - } - } - - public YesNoType Synchronize - { - get - { - return this.synchronizeField; - } - set - { - this.synchronizeFieldSet = true; - this.synchronizeField = value; - } - } - - /// - /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent. - /// - public YesNoType CreateFile - { - get - { - return this.createFileField; - } - set - { - this.createFileFieldSet = true; - this.createFileField = value; - } - } - - /// - /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent. - /// - public YesNoType CreateChild - { - get - { - return this.createChildField; - } - set - { - this.createChildFieldSet = true; - this.createChildField = value; - } - } - - /// - /// For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent. - /// - public YesNoType DeleteChild - { - get - { - return this.deleteChildField; - } - set - { - this.deleteChildFieldSet = true; - this.deleteChildField = value; - } - } - - /// - /// For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent. - /// - public YesNoType Traverse - { - get - { - return this.traverseField; - } - set - { - this.traverseFieldSet = true; - this.traverseField = value; - } - } - - public YesNoType Append - { - get - { - return this.appendField; - } - set - { - this.appendFieldSet = true; - this.appendField = value; - } - } - - public YesNoType Execute - { - get - { - return this.executeField; - } - set - { - this.executeFieldSet = true; - this.executeField = value; - } - } - - /// - /// Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF). - /// - public YesNoType FileAllRights - { - get - { - return this.fileAllRightsField; - } - set - { - this.fileAllRightsFieldSet = true; - this.fileAllRightsField = value; - } - } - - public YesNoType Write - { - get - { - return this.writeField; - } - set - { - this.writeFieldSet = true; - this.writeField = value; - } - } - - public YesNoType CreateSubkeys - { - get - { - return this.createSubkeysField; - } - set - { - this.createSubkeysFieldSet = true; - this.createSubkeysField = value; - } - } - - public YesNoType EnumerateSubkeys - { - get - { - return this.enumerateSubkeysField; - } - set - { - this.enumerateSubkeysFieldSet = true; - this.enumerateSubkeysField = value; - } - } - - public YesNoType Notify - { - get - { - return this.notifyField; - } - set - { - this.notifyFieldSet = true; - this.notifyField = value; - } - } - - public YesNoType CreateLink - { - get - { - return this.createLinkField; - } - set - { - this.createLinkFieldSet = true; - this.createLinkField = value; - } - } - - public YesNoType GenericAll - { - get - { - return this.genericAllField; - } - set - { - this.genericAllFieldSet = true; - this.genericAllField = value; - } - } - - public YesNoType GenericExecute - { - get - { - return this.genericExecuteField; - } - set - { - this.genericExecuteFieldSet = true; - this.genericExecuteField = value; - } - } - - public YesNoType GenericWrite - { - get - { - return this.genericWriteField; - } - set - { - this.genericWriteFieldSet = true; - this.genericWriteField = value; - } - } - - /// - /// specifying this will fail to grant read access - /// - public YesNoType GenericRead - { - get - { - return this.genericReadField; - } - set - { - this.genericReadFieldSet = true; - this.genericReadField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Permission", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.domainFieldSet) - { - writer.WriteAttributeString("Domain", this.domainField); - } - if (this.userFieldSet) - { - writer.WriteAttributeString("User", this.userField); - } - if (this.readFieldSet) - { - if ((this.readField == YesNoType.no)) - { - writer.WriteAttributeString("Read", "no"); - } - if ((this.readField == YesNoType.yes)) - { - writer.WriteAttributeString("Read", "yes"); - } - } - if (this.deleteFieldSet) - { - if ((this.deleteField == YesNoType.no)) - { - writer.WriteAttributeString("Delete", "no"); - } - if ((this.deleteField == YesNoType.yes)) - { - writer.WriteAttributeString("Delete", "yes"); - } - } - if (this.readPermissionFieldSet) - { - if ((this.readPermissionField == YesNoType.no)) - { - writer.WriteAttributeString("ReadPermission", "no"); - } - if ((this.readPermissionField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadPermission", "yes"); - } - } - if (this.changePermissionFieldSet) - { - if ((this.changePermissionField == YesNoType.no)) - { - writer.WriteAttributeString("ChangePermission", "no"); - } - if ((this.changePermissionField == YesNoType.yes)) - { - writer.WriteAttributeString("ChangePermission", "yes"); - } - } - if (this.takeOwnershipFieldSet) - { - if ((this.takeOwnershipField == YesNoType.no)) - { - writer.WriteAttributeString("TakeOwnership", "no"); - } - if ((this.takeOwnershipField == YesNoType.yes)) - { - writer.WriteAttributeString("TakeOwnership", "yes"); - } - } - if (this.specificRightsAllFieldSet) - { - if ((this.specificRightsAllField == YesNoType.no)) - { - writer.WriteAttributeString("SpecificRightsAll", "no"); - } - if ((this.specificRightsAllField == YesNoType.yes)) - { - writer.WriteAttributeString("SpecificRightsAll", "yes"); - } - } - if (this.readAttributesFieldSet) - { - if ((this.readAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("ReadAttributes", "no"); - } - if ((this.readAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadAttributes", "yes"); - } - } - if (this.writeAttributesFieldSet) - { - if ((this.writeAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("WriteAttributes", "no"); - } - if ((this.writeAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("WriteAttributes", "yes"); - } - } - if (this.readExtendedAttributesFieldSet) - { - if ((this.readExtendedAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("ReadExtendedAttributes", "no"); - } - if ((this.readExtendedAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadExtendedAttributes", "yes"); - } - } - if (this.writeExtendedAttributesFieldSet) - { - if ((this.writeExtendedAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("WriteExtendedAttributes", "no"); - } - if ((this.writeExtendedAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("WriteExtendedAttributes", "yes"); - } - } - if (this.synchronizeFieldSet) - { - if ((this.synchronizeField == YesNoType.no)) - { - writer.WriteAttributeString("Synchronize", "no"); - } - if ((this.synchronizeField == YesNoType.yes)) - { - writer.WriteAttributeString("Synchronize", "yes"); - } - } - if (this.createFileFieldSet) - { - if ((this.createFileField == YesNoType.no)) - { - writer.WriteAttributeString("CreateFile", "no"); - } - if ((this.createFileField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateFile", "yes"); - } - } - if (this.createChildFieldSet) - { - if ((this.createChildField == YesNoType.no)) - { - writer.WriteAttributeString("CreateChild", "no"); - } - if ((this.createChildField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateChild", "yes"); - } - } - if (this.deleteChildFieldSet) - { - if ((this.deleteChildField == YesNoType.no)) - { - writer.WriteAttributeString("DeleteChild", "no"); - } - if ((this.deleteChildField == YesNoType.yes)) - { - writer.WriteAttributeString("DeleteChild", "yes"); - } - } - if (this.traverseFieldSet) - { - if ((this.traverseField == YesNoType.no)) - { - writer.WriteAttributeString("Traverse", "no"); - } - if ((this.traverseField == YesNoType.yes)) - { - writer.WriteAttributeString("Traverse", "yes"); - } - } - if (this.appendFieldSet) - { - if ((this.appendField == YesNoType.no)) - { - writer.WriteAttributeString("Append", "no"); - } - if ((this.appendField == YesNoType.yes)) - { - writer.WriteAttributeString("Append", "yes"); - } - } - if (this.executeFieldSet) - { - if ((this.executeField == YesNoType.no)) - { - writer.WriteAttributeString("Execute", "no"); - } - if ((this.executeField == YesNoType.yes)) - { - writer.WriteAttributeString("Execute", "yes"); - } - } - if (this.fileAllRightsFieldSet) - { - if ((this.fileAllRightsField == YesNoType.no)) - { - writer.WriteAttributeString("FileAllRights", "no"); - } - if ((this.fileAllRightsField == YesNoType.yes)) - { - writer.WriteAttributeString("FileAllRights", "yes"); - } - } - if (this.writeFieldSet) - { - if ((this.writeField == YesNoType.no)) - { - writer.WriteAttributeString("Write", "no"); - } - if ((this.writeField == YesNoType.yes)) - { - writer.WriteAttributeString("Write", "yes"); - } - } - if (this.createSubkeysFieldSet) - { - if ((this.createSubkeysField == YesNoType.no)) - { - writer.WriteAttributeString("CreateSubkeys", "no"); - } - if ((this.createSubkeysField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateSubkeys", "yes"); - } - } - if (this.enumerateSubkeysFieldSet) - { - if ((this.enumerateSubkeysField == YesNoType.no)) - { - writer.WriteAttributeString("EnumerateSubkeys", "no"); - } - if ((this.enumerateSubkeysField == YesNoType.yes)) - { - writer.WriteAttributeString("EnumerateSubkeys", "yes"); - } - } - if (this.notifyFieldSet) - { - if ((this.notifyField == YesNoType.no)) - { - writer.WriteAttributeString("Notify", "no"); - } - if ((this.notifyField == YesNoType.yes)) - { - writer.WriteAttributeString("Notify", "yes"); - } - } - if (this.createLinkFieldSet) - { - if ((this.createLinkField == YesNoType.no)) - { - writer.WriteAttributeString("CreateLink", "no"); - } - if ((this.createLinkField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateLink", "yes"); - } - } - if (this.genericAllFieldSet) - { - if ((this.genericAllField == YesNoType.no)) - { - writer.WriteAttributeString("GenericAll", "no"); - } - if ((this.genericAllField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericAll", "yes"); - } - } - if (this.genericExecuteFieldSet) - { - if ((this.genericExecuteField == YesNoType.no)) - { - writer.WriteAttributeString("GenericExecute", "no"); - } - if ((this.genericExecuteField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericExecute", "yes"); - } - } - if (this.genericWriteFieldSet) - { - if ((this.genericWriteField == YesNoType.no)) - { - writer.WriteAttributeString("GenericWrite", "no"); - } - if ((this.genericWriteField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericWrite", "yes"); - } - } - if (this.genericReadFieldSet) - { - if ((this.genericReadField == YesNoType.no)) - { - writer.WriteAttributeString("GenericRead", "no"); - } - if ((this.genericReadField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericRead", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Domain" == name)) - { - this.domainField = value; - this.domainFieldSet = true; - } - if (("User" == name)) - { - this.userField = value; - this.userFieldSet = true; - } - if (("Read" == name)) - { - this.readField = Enums.ParseYesNoType(value); - this.readFieldSet = true; - } - if (("Delete" == name)) - { - this.deleteField = Enums.ParseYesNoType(value); - this.deleteFieldSet = true; - } - if (("ReadPermission" == name)) - { - this.readPermissionField = Enums.ParseYesNoType(value); - this.readPermissionFieldSet = true; - } - if (("ChangePermission" == name)) - { - this.changePermissionField = Enums.ParseYesNoType(value); - this.changePermissionFieldSet = true; - } - if (("TakeOwnership" == name)) - { - this.takeOwnershipField = Enums.ParseYesNoType(value); - this.takeOwnershipFieldSet = true; - } - if (("SpecificRightsAll" == name)) - { - this.specificRightsAllField = Enums.ParseYesNoType(value); - this.specificRightsAllFieldSet = true; - } - if (("ReadAttributes" == name)) - { - this.readAttributesField = Enums.ParseYesNoType(value); - this.readAttributesFieldSet = true; - } - if (("WriteAttributes" == name)) - { - this.writeAttributesField = Enums.ParseYesNoType(value); - this.writeAttributesFieldSet = true; - } - if (("ReadExtendedAttributes" == name)) - { - this.readExtendedAttributesField = Enums.ParseYesNoType(value); - this.readExtendedAttributesFieldSet = true; - } - if (("WriteExtendedAttributes" == name)) - { - this.writeExtendedAttributesField = Enums.ParseYesNoType(value); - this.writeExtendedAttributesFieldSet = true; - } - if (("Synchronize" == name)) - { - this.synchronizeField = Enums.ParseYesNoType(value); - this.synchronizeFieldSet = true; - } - if (("CreateFile" == name)) - { - this.createFileField = Enums.ParseYesNoType(value); - this.createFileFieldSet = true; - } - if (("CreateChild" == name)) - { - this.createChildField = Enums.ParseYesNoType(value); - this.createChildFieldSet = true; - } - if (("DeleteChild" == name)) - { - this.deleteChildField = Enums.ParseYesNoType(value); - this.deleteChildFieldSet = true; - } - if (("Traverse" == name)) - { - this.traverseField = Enums.ParseYesNoType(value); - this.traverseFieldSet = true; - } - if (("Append" == name)) - { - this.appendField = Enums.ParseYesNoType(value); - this.appendFieldSet = true; - } - if (("Execute" == name)) - { - this.executeField = Enums.ParseYesNoType(value); - this.executeFieldSet = true; - } - if (("FileAllRights" == name)) - { - this.fileAllRightsField = Enums.ParseYesNoType(value); - this.fileAllRightsFieldSet = true; - } - if (("Write" == name)) - { - this.writeField = Enums.ParseYesNoType(value); - this.writeFieldSet = true; - } - if (("CreateSubkeys" == name)) - { - this.createSubkeysField = Enums.ParseYesNoType(value); - this.createSubkeysFieldSet = true; - } - if (("EnumerateSubkeys" == name)) - { - this.enumerateSubkeysField = Enums.ParseYesNoType(value); - this.enumerateSubkeysFieldSet = true; - } - if (("Notify" == name)) - { - this.notifyField = Enums.ParseYesNoType(value); - this.notifyFieldSet = true; - } - if (("CreateLink" == name)) - { - this.createLinkField = Enums.ParseYesNoType(value); - this.createLinkFieldSet = true; - } - if (("GenericAll" == name)) - { - this.genericAllField = Enums.ParseYesNoType(value); - this.genericAllFieldSet = true; - } - if (("GenericExecute" == name)) - { - this.genericExecuteField = Enums.ParseYesNoType(value); - this.genericExecuteFieldSet = true; - } - if (("GenericWrite" == name)) - { - this.genericWriteField = Enums.ParseYesNoType(value); - this.genericWriteFieldSet = true; - } - if (("GenericRead" == name)) - { - this.genericReadField = Enums.ParseYesNoType(value); - this.genericReadFieldSet = true; - } - } - } - - /// - /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used - /// if the Action attribute's value is remove or removeKeyOnInstall. This element is only available - /// when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the - /// WixUtilExtension. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PermissionEx : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sddlField; - - private bool sddlFieldSet; - - private ISchemaElement parentElement; - - public PermissionEx() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Condition))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute - /// will be used instead. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Security descriptor to apply to parent object. - /// - public string Sddl - { - get - { - return this.sddlField; - } - set - { - this.sddlFieldSet = true; - this.sddlField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PermissionEx", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sddlFieldSet) - { - writer.WriteAttributeString("Sddl", this.sddlField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Sddl" == name)) - { - this.sddlField = value; - this.sddlFieldSet = true; - } - } - } - - /// - /// Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When - /// this element is nested under a File element, the parent file will be installed, then copied to the specified destination - /// if the parent component of the file is selected for installation or removal. When this element is nested under - /// a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine. - /// When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed, - /// then copied to the specified destination if the parent component is selected for installation or removal (use - /// this option to control the copy of a file in a different component by the parent component's installation state). If the - /// specified destination directory is the same as the directory containing the original file and the name for the proposed source - /// file is the same as the original, then no action takes place. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CopyFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string fileIdField; - - private bool fileIdFieldSet; - - private string sourceDirectoryField; - - private bool sourceDirectoryFieldSet; - - private string sourcePropertyField; - - private bool sourcePropertyFieldSet; - - private string sourceNameField; - - private bool sourceNameFieldSet; - - private string destinationDirectoryField; - - private bool destinationDirectoryFieldSet; - - private string destinationPropertyField; - - private bool destinationPropertyFieldSet; - - private string destinationNameField; - - private bool destinationNameFieldSet; - - private string destinationShortNameField; - - private bool destinationShortNameFieldSet; - - private YesNoType deleteField; - - private bool deleteFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier - /// of a file from a different component to copy it based on the install state of the parent component. - /// - public string FileId - { - get - { - return this.fileIdField; - } - set - { - this.fileIdFieldSet = true; - this.fileIdField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - /// this value to the source directory from which to copy or move an existing file on the target machine. This Directory must - /// exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty. - /// - public string SourceDirectory - { - get - { - return this.sourceDirectoryField; - } - set - { - this.sourceDirectoryFieldSet = true; - this.sourceDirectoryField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - /// this value to a property that will have a value that resolves to the full path of the source directory (or full path - /// including file name if SourceName is not specified). The property does not have to exist in the installer database at - /// creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute - /// cannot be specified in conjunction with SourceDirectory. - /// - public string SourceProperty - { - get - { - return this.sourcePropertyField; - } - set - { - this.sourcePropertyFieldSet = true; - this.sourcePropertyField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - /// this value to the localizable name of the file(s) to be copied or moved. All of the files that - /// match the wild card will be removed from the specified directory. The value is a filename that may also - /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this - /// attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the - /// SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename. - /// If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied - /// files retain the file names from their sources. - /// - public string SourceName - { - get - { - return this.sourceNameField; - } - set - { - this.sourceNameFieldSet = true; - this.sourceNameField = value; - } - } - - /// - /// Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This - /// Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with - /// DestinationProperty. - /// - public string DestinationDirectory - { - get - { - return this.destinationDirectoryField; - } - set - { - this.destinationDirectoryFieldSet = true; - this.destinationDirectoryField = value; - } - } - - /// - /// Set this value to a property that will have a value that resolves to the full path of the destination directory. The property - /// does not have to exist in the installer database at creation time; it could be created at installation time by a custom - /// action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory. - /// - public string DestinationProperty - { - get - { - return this.destinationPropertyField; - } - set - { - this.destinationPropertyFieldSet = true; - this.destinationPropertyField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// Now set this value to the localizable name to be given to the original file after it is moved or copied. - /// If this attribute is not specified, then the destination file is given the same name as the source file. - /// If a short file name is specified, the DestinationShortName attribute may not be specified. - /// Also, if this value is a long file name, the DestinationShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short file name. - /// However, if this name collides with another file or you wish to manually specify - /// the short file name, then the DestinationShortName attribute may be specified. - /// - public string DestinationName - { - get - { - return this.destinationNameField; - } - set - { - this.destinationNameFieldSet = true; - this.destinationNameField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short file names - /// or you wish to manually specify the short file name. - /// - public string DestinationShortName - { - get - { - return this.destinationShortNameField; - } - set - { - this.destinationShortNameFieldSet = true; - this.destinationShortNameField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other - /// cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes" - /// in order to move the file (thus deleting the source file) instead of copying it. - /// - public YesNoType Delete - { - get - { - return this.deleteField; - } - set - { - this.deleteFieldSet = true; - this.deleteField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CopyFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.fileIdFieldSet) - { - writer.WriteAttributeString("FileId", this.fileIdField); - } - if (this.sourceDirectoryFieldSet) - { - writer.WriteAttributeString("SourceDirectory", this.sourceDirectoryField); - } - if (this.sourcePropertyFieldSet) - { - writer.WriteAttributeString("SourceProperty", this.sourcePropertyField); - } - if (this.sourceNameFieldSet) - { - writer.WriteAttributeString("SourceName", this.sourceNameField); - } - if (this.destinationDirectoryFieldSet) - { - writer.WriteAttributeString("DestinationDirectory", this.destinationDirectoryField); - } - if (this.destinationPropertyFieldSet) - { - writer.WriteAttributeString("DestinationProperty", this.destinationPropertyField); - } - if (this.destinationNameFieldSet) - { - writer.WriteAttributeString("DestinationName", this.destinationNameField); - } - if (this.destinationShortNameFieldSet) - { - writer.WriteAttributeString("DestinationShortName", this.destinationShortNameField); - } - if (this.deleteFieldSet) - { - if ((this.deleteField == YesNoType.no)) - { - writer.WriteAttributeString("Delete", "no"); - } - if ((this.deleteField == YesNoType.yes)) - { - writer.WriteAttributeString("Delete", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("FileId" == name)) - { - this.fileIdField = value; - this.fileIdFieldSet = true; - } - if (("SourceDirectory" == name)) - { - this.sourceDirectoryField = value; - this.sourceDirectoryFieldSet = true; - } - if (("SourceProperty" == name)) - { - this.sourcePropertyField = value; - this.sourcePropertyFieldSet = true; - } - if (("SourceName" == name)) - { - this.sourceNameField = value; - this.sourceNameFieldSet = true; - } - if (("DestinationDirectory" == name)) - { - this.destinationDirectoryField = value; - this.destinationDirectoryFieldSet = true; - } - if (("DestinationProperty" == name)) - { - this.destinationPropertyField = value; - this.destinationPropertyFieldSet = true; - } - if (("DestinationName" == name)) - { - this.destinationNameField = value; - this.destinationNameFieldSet = true; - } - if (("DestinationShortName" == name)) - { - this.destinationShortNameField = value; - this.destinationShortNameFieldSet = true; - } - if (("Delete" == name)) - { - this.deleteField = Enums.ParseYesNoType(value); - this.deleteFieldSet = true; - } - } - } - - /// - /// File specification for File table, must be child node of Component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class File : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string companionFileField; - - private bool companionFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private YesNoType readOnlyField; - - private bool readOnlyFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType systemField; - - private bool systemFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoType checksumField; - - private bool checksumFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private string bindPathField; - - private bool bindPathFieldSet; - - private int selfRegCostField; - - private bool selfRegCostFieldSet; - - private YesNoType trueTypeField; - - private bool trueTypeFieldSet; - - private string fontTitleField; - - private bool fontTitleFieldSet; - - private string defaultLanguageField; - - private bool defaultLanguageFieldSet; - - private int defaultSizeField; - - private bool defaultSizeFieldSet; - - private string defaultVersionField; - - private bool defaultVersionFieldSet; - - private AssemblyType assemblyField; - - private bool assemblyFieldSet; - - private string assemblyManifestField; - - private bool assemblyManifestFieldSet; - - private string assemblyApplicationField; - - private bool assemblyApplicationFieldSet; - - private ProcessorArchitectureType processorArchitectureField; - - private bool processorArchitectureFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private int patchGroupField; - - private bool patchGroupFieldSet; - - private YesNoType patchIgnoreField; - - private bool patchIgnoreFieldSet; - - private YesNoType patchAllowIgnoreOnErrorField; - - private bool patchAllowIgnoreOnErrorFieldSet; - - private YesNoType patchWholeFileField; - - private bool patchWholeFileFieldSet; - - private ISchemaElement parentElement; - - public File() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AssemblyName))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value]. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to make this file a companion child of another file. The installation - /// state of a companion file depends not on its own file versioning information, but on the versioning of its - /// companion parent. A file that is the key path for its component can not be a companion file (that means - /// this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along - /// with this attribute since companion files are not installed based on their own version. - /// - public string CompanionFile - { - get - { - return this.companionFileField; - } - set - { - this.companionFileFieldSet = true; - this.companionFileField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// This attribute's value may now be either a short or long file name. - /// If a short file name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long file name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short file name. - /// However, if this name collides with another file or you wish to manually specify - /// the short file name, then the ShortName attribute may be specified. - /// Finally, if this attribute is omitted then its default value is the file name portion - /// of the Source attribute, if one is specified, or the value of the Id attribute, if - /// the Source attribute is omitted or doesn't contain a file name. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Set to yes in order to force this file to be the key path for the parent component. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short file names - /// or the user wants to manually specify the short file name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// Set to yes in order to have the file's read-only attribute set when it is installed on the target machine. - /// - public YesNoType ReadOnly - { - get - { - return this.readOnlyField; - } - set - { - this.readOnlyFieldSet = true; - this.readOnlyField = value; - } - } - - /// - /// Set to yes in order to have the file's hidden attribute set when it is installed on the target machine. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Set to yes in order to have the file's system attribute set when it is installed on the target machine. - /// - public YesNoType System - { - get - { - return this.systemField; - } - set - { - this.systemFieldSet = true; - this.systemField = value; - } - } - - /// - /// If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall. - /// - public YesNoType Checksum - { - get - { - return this.checksumField; - } - set - { - this.checksumFieldSet = true; - this.checksumField = value; - } - } - - /// - /// Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table. - /// - public string BindPath - { - get - { - return this.bindPathField; - } - set - { - this.bindPathFieldSet = true; - this.bindPathField = value; - } - } - - /// - /// The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table. - /// - public int SelfRegCost - { - get - { - return this.selfRegCostField; - } - set - { - this.selfRegCostFieldSet = true; - this.selfRegCostField = value; - } - } - - /// - /// Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font. - /// - public YesNoType TrueType - { - get - { - return this.trueTypeField; - } - set - { - this.trueTypeFieldSet = true; - this.trueTypeField = value; - } - } - - /// - /// Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font. - /// - public string FontTitle - { - get - { - return this.fontTitleField; - } - set - { - this.fontTitleFieldSet = true; - this.fontTitleField = value; - } - } - - /// - /// This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - /// - public string DefaultLanguage - { - get - { - return this.defaultLanguageField; - } - set - { - this.defaultLanguageFieldSet = true; - this.defaultLanguageField = value; - } - } - - /// - /// This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - /// - public int DefaultSize - { - get - { - return this.defaultSizeField; - } - set - { - this.defaultSizeFieldSet = true; - this.defaultSizeField = value; - } - } - - /// - /// This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - /// - public string DefaultVersion - { - get - { - return this.defaultVersionField; - } - set - { - this.defaultVersionFieldSet = true; - this.defaultVersionField = value; - } - } - - /// - /// Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the - /// Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component. - /// - public AssemblyType Assembly - { - get - { - return this.assemblyField; - } - set - { - this.assemblyFieldSet = true; - this.assemblyField = value; - } - } - - /// - /// Specifies the file identifier of the manifest file that describes this assembly. - /// The manifest file should be in the same component as the assembly it describes. - /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. - /// - public string AssemblyManifest - { - get - { - return this.assemblyManifestField; - } - set - { - this.assemblyManifestFieldSet = true; - this.assemblyManifestField = value; - } - } - - /// - /// Specifies the file identifier of the application file. This assembly will be isolated - /// to the same directory as the application file. - /// If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC). - /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. - /// - public string AssemblyApplication - { - get - { - return this.assemblyApplicationField; - } - set - { - this.assemblyApplicationFieldSet = true; - this.assemblyApplicationField = value; - } - } - - /// - /// Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies. - /// - public ProcessorArchitectureType ProcessorArchitecture - { - get - { - return this.processorArchitectureField; - } - set - { - this.processorArchitectureFieldSet = true; - this.processorArchitectureField = value; - } - } - - /// - /// The value of this attribute should correspond to the Id attribute of a Media - /// element authored elsewhere. By creating this connection between a file and - /// its media, you set the packaging options to the values specified in the Media - /// element (values such as compression level, cab embedding, etc...). Specifying - /// the DiskId attribute on the File element overrides the default DiskId attribute - /// from the parent Component element. If no DiskId attribute is specified, - /// the default is "1". This DiskId attribute is ignored when creating a merge module - /// because merge modules do not have media. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups - /// numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the - /// second patch will have PatchGroup='2', etc... - /// - public int PatchGroup - { - get - { - return this.patchGroupField; - } - set - { - this.patchGroupFieldSet = true; - this.patchGroupField = value; - } - } - - /// - /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. - /// - public YesNoType PatchIgnore - { - get - { - return this.patchIgnoreField; - } - set - { - this.patchIgnoreFieldSet = true; - this.patchIgnoreField = value; - } - } - - /// - /// Set to indicate that the patch is non-vital. - /// - public YesNoType PatchAllowIgnoreOnError - { - get - { - return this.patchAllowIgnoreOnErrorField; - } - set - { - this.patchAllowIgnoreOnErrorFieldSet = true; - this.patchAllowIgnoreOnErrorField = value; - } - } - - /// - /// Set if the entire file should be installed rather than creating a binary patch. - /// - public YesNoType PatchWholeFile - { - get - { - return this.patchWholeFileField; - } - set - { - this.patchWholeFileFieldSet = true; - this.patchWholeFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AssemblyName" == childName)) - { - childValue = new AssemblyName(); - } - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("CopyFile" == childName)) - { - childValue = new CopyFile(); - } - if (("Shortcut" == childName)) - { - childValue = new Shortcut(); - } - if (("ODBCDriver" == childName)) - { - childValue = new ODBCDriver(); - } - if (("ODBCTranslator" == childName)) - { - childValue = new ODBCTranslator(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("Class" == childName)) - { - childValue = new Class(); - } - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("TypeLib" == childName)) - { - childValue = new TypeLib(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a AssemblyType from a string. - /// - public static AssemblyType ParseAssemblyType(string value) - { - AssemblyType parsedValue; - File.TryParseAssemblyType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a AssemblyType from a string. - /// - public static bool TryParseAssemblyType(string value, out AssemblyType parsedValue) - { - parsedValue = AssemblyType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if ((".net" == value)) - { - parsedValue = AssemblyType.net; - } - else - { - if (("no" == value)) - { - parsedValue = AssemblyType.no; - } - else - { - if (("win32" == value)) - { - parsedValue = AssemblyType.win32; - } - else - { - parsedValue = AssemblyType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a ProcessorArchitectureType from a string. - /// - public static ProcessorArchitectureType ParseProcessorArchitectureType(string value) - { - ProcessorArchitectureType parsedValue; - File.TryParseProcessorArchitectureType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ProcessorArchitectureType from a string. - /// - public static bool TryParseProcessorArchitectureType(string value, out ProcessorArchitectureType parsedValue) - { - parsedValue = ProcessorArchitectureType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("msil" == value)) - { - parsedValue = ProcessorArchitectureType.msil; - } - else - { - if (("x86" == value)) - { - parsedValue = ProcessorArchitectureType.x86; - } - else - { - if (("x64" == value)) - { - parsedValue = ProcessorArchitectureType.x64; - } - else - { - if (("ia64" == value)) - { - parsedValue = ProcessorArchitectureType.ia64; - } - else - { - parsedValue = ProcessorArchitectureType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("File", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.companionFileFieldSet) - { - writer.WriteAttributeString("CompanionFile", this.companionFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.readOnlyFieldSet) - { - if ((this.readOnlyField == YesNoType.no)) - { - writer.WriteAttributeString("ReadOnly", "no"); - } - if ((this.readOnlyField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadOnly", "yes"); - } - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.systemFieldSet) - { - if ((this.systemField == YesNoType.no)) - { - writer.WriteAttributeString("System", "no"); - } - if ((this.systemField == YesNoType.yes)) - { - writer.WriteAttributeString("System", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.checksumFieldSet) - { - if ((this.checksumField == YesNoType.no)) - { - writer.WriteAttributeString("Checksum", "no"); - } - if ((this.checksumField == YesNoType.yes)) - { - writer.WriteAttributeString("Checksum", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.bindPathFieldSet) - { - writer.WriteAttributeString("BindPath", this.bindPathField); - } - if (this.selfRegCostFieldSet) - { - writer.WriteAttributeString("SelfRegCost", this.selfRegCostField.ToString(CultureInfo.InvariantCulture)); - } - if (this.trueTypeFieldSet) - { - if ((this.trueTypeField == YesNoType.no)) - { - writer.WriteAttributeString("TrueType", "no"); - } - if ((this.trueTypeField == YesNoType.yes)) - { - writer.WriteAttributeString("TrueType", "yes"); - } - } - if (this.fontTitleFieldSet) - { - writer.WriteAttributeString("FontTitle", this.fontTitleField); - } - if (this.defaultLanguageFieldSet) - { - writer.WriteAttributeString("DefaultLanguage", this.defaultLanguageField); - } - if (this.defaultSizeFieldSet) - { - writer.WriteAttributeString("DefaultSize", this.defaultSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.defaultVersionFieldSet) - { - writer.WriteAttributeString("DefaultVersion", this.defaultVersionField); - } - if (this.assemblyFieldSet) - { - if ((this.assemblyField == AssemblyType.net)) - { - writer.WriteAttributeString("Assembly", ".net"); - } - if ((this.assemblyField == AssemblyType.no)) - { - writer.WriteAttributeString("Assembly", "no"); - } - if ((this.assemblyField == AssemblyType.win32)) - { - writer.WriteAttributeString("Assembly", "win32"); - } - } - if (this.assemblyManifestFieldSet) - { - writer.WriteAttributeString("AssemblyManifest", this.assemblyManifestField); - } - if (this.assemblyApplicationFieldSet) - { - writer.WriteAttributeString("AssemblyApplication", this.assemblyApplicationField); - } - if (this.processorArchitectureFieldSet) - { - if ((this.processorArchitectureField == ProcessorArchitectureType.msil)) - { - writer.WriteAttributeString("ProcessorArchitecture", "msil"); - } - if ((this.processorArchitectureField == ProcessorArchitectureType.x86)) - { - writer.WriteAttributeString("ProcessorArchitecture", "x86"); - } - if ((this.processorArchitectureField == ProcessorArchitectureType.x64)) - { - writer.WriteAttributeString("ProcessorArchitecture", "x64"); - } - if ((this.processorArchitectureField == ProcessorArchitectureType.ia64)) - { - writer.WriteAttributeString("ProcessorArchitecture", "ia64"); - } - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.patchGroupFieldSet) - { - writer.WriteAttributeString("PatchGroup", this.patchGroupField.ToString(CultureInfo.InvariantCulture)); - } - if (this.patchIgnoreFieldSet) - { - if ((this.patchIgnoreField == YesNoType.no)) - { - writer.WriteAttributeString("PatchIgnore", "no"); - } - if ((this.patchIgnoreField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchIgnore", "yes"); - } - } - if (this.patchAllowIgnoreOnErrorFieldSet) - { - if ((this.patchAllowIgnoreOnErrorField == YesNoType.no)) - { - writer.WriteAttributeString("PatchAllowIgnoreOnError", "no"); - } - if ((this.patchAllowIgnoreOnErrorField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchAllowIgnoreOnError", "yes"); - } - } - if (this.patchWholeFileFieldSet) - { - if ((this.patchWholeFileField == YesNoType.no)) - { - writer.WriteAttributeString("PatchWholeFile", "no"); - } - if ((this.patchWholeFileField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchWholeFile", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("CompanionFile" == name)) - { - this.companionFileField = value; - this.companionFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("ReadOnly" == name)) - { - this.readOnlyField = Enums.ParseYesNoType(value); - this.readOnlyFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("System" == name)) - { - this.systemField = Enums.ParseYesNoType(value); - this.systemFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Checksum" == name)) - { - this.checksumField = Enums.ParseYesNoType(value); - this.checksumFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("BindPath" == name)) - { - this.bindPathField = value; - this.bindPathFieldSet = true; - } - if (("SelfRegCost" == name)) - { - this.selfRegCostField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.selfRegCostFieldSet = true; - } - if (("TrueType" == name)) - { - this.trueTypeField = Enums.ParseYesNoType(value); - this.trueTypeFieldSet = true; - } - if (("FontTitle" == name)) - { - this.fontTitleField = value; - this.fontTitleFieldSet = true; - } - if (("DefaultLanguage" == name)) - { - this.defaultLanguageField = value; - this.defaultLanguageFieldSet = true; - } - if (("DefaultSize" == name)) - { - this.defaultSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.defaultSizeFieldSet = true; - } - if (("DefaultVersion" == name)) - { - this.defaultVersionField = value; - this.defaultVersionFieldSet = true; - } - if (("Assembly" == name)) - { - this.assemblyField = File.ParseAssemblyType(value); - this.assemblyFieldSet = true; - } - if (("AssemblyManifest" == name)) - { - this.assemblyManifestField = value; - this.assemblyManifestFieldSet = true; - } - if (("AssemblyApplication" == name)) - { - this.assemblyApplicationField = value; - this.assemblyApplicationFieldSet = true; - } - if (("ProcessorArchitecture" == name)) - { - this.processorArchitectureField = File.ParseProcessorArchitectureType(value); - this.processorArchitectureFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("PatchGroup" == name)) - { - this.patchGroupField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.patchGroupFieldSet = true; - } - if (("PatchIgnore" == name)) - { - this.patchIgnoreField = Enums.ParseYesNoType(value); - this.patchIgnoreFieldSet = true; - } - if (("PatchAllowIgnoreOnError" == name)) - { - this.patchAllowIgnoreOnErrorField = Enums.ParseYesNoType(value); - this.patchAllowIgnoreOnErrorFieldSet = true; - } - if (("PatchWholeFile" == name)) - { - this.patchWholeFileField = Enums.ParseYesNoType(value); - this.patchWholeFileFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum AssemblyType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The file is a .NET Framework assembly. - /// - net, - - /// - /// The file is not a .NET Framework or Win32 assembly. This is the default value. - /// - no, - - /// - /// The file is a Win32 assembly. - /// - win32, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ProcessorArchitectureType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The file is a .NET Framework assembly that is processor-neutral. - /// - msil, - - /// - /// The file is a .NET Framework assembly for the x86 processor. - /// - x86, - - /// - /// The file is a .NET Framework assembly for the x64 processor. - /// - x64, - - /// - /// The file is a .NET Framework assembly for the ia64 processor. - /// - ia64, - } - } - - /// - /// Use several of these elements to specify each registry value in a multiString registry value. This element - /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - /// values should go in the text area of the MultiStringValue element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MultiStringValue : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Use several of these elements to specify each registry value in a multiString registry value. This element - /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - /// values should go in the text area of the MultiStringValue element. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MultiStringValue", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Used for organization of child RegistryValue elements or to create a registry key - /// (and optionally remove it during uninstallation). - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistryKey : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private YesNoType forceCreateOnInstallField; - - private bool forceCreateOnInstallFieldSet; - - private YesNoType forceDeleteOnUninstallField; - - private bool forceDeleteOnUninstallFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private ISchemaElement parentElement; - - public RegistryKey() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer - /// to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed. - /// This value is needed only to create an empty key with no subkeys or values. Windows Installer creates - /// keys as needed to store subkeys and values. The default is "no". - /// - public YesNoType ForceCreateOnInstall - { - get - { - return this.forceCreateOnInstallField; - } - set - { - this.forceCreateOnInstallFieldSet = true; - this.forceCreateOnInstallField = value; - } - } - - /// - /// Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled. - /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already - /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. - /// The default is "no". - /// - public YesNoType ForceDeleteOnUninstall - { - get - { - return this.forceDeleteOnUninstallField; - } - set - { - this.forceDeleteOnUninstallFieldSet = true; - this.forceDeleteOnUninstallField = value; - } - } - - /// - /// The localizable key for the registry value. - /// If the parent element is a RegistryKey, this value may be omitted to use the - /// path of the parent, or if its specified it will be appended to the path of the parent. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("RegistryKey" == childName)) - { - childValue = new RegistryKey(); - } - if (("RegistryValue" == childName)) - { - childValue = new RegistryValue(); - } - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RegistryKey.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("create" == value)) - { - parsedValue = ActionType.create; - } - else - { - if (("createAndRemoveOnUninstall" == value)) - { - parsedValue = ActionType.createAndRemoveOnUninstall; - } - else - { - if (("none" == value)) - { - parsedValue = ActionType.none; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.create)) - { - writer.WriteAttributeString("Action", "create"); - } - if ((this.actionField == ActionType.createAndRemoveOnUninstall)) - { - writer.WriteAttributeString("Action", "createAndRemoveOnUninstall"); - } - if ((this.actionField == ActionType.none)) - { - writer.WriteAttributeString("Action", "none"); - } - } - if (this.forceCreateOnInstallFieldSet) - { - if ((this.forceCreateOnInstallField == YesNoType.no)) - { - writer.WriteAttributeString("ForceCreateOnInstall", "no"); - } - if ((this.forceCreateOnInstallField == YesNoType.yes)) - { - writer.WriteAttributeString("ForceCreateOnInstall", "yes"); - } - } - if (this.forceDeleteOnUninstallFieldSet) - { - if ((this.forceDeleteOnUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("ForceDeleteOnUninstall", "no"); - } - if ((this.forceDeleteOnUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("ForceDeleteOnUninstall", "yes"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RegistryKey.ParseActionType(value); - this.actionFieldSet = true; - } - if (("ForceCreateOnInstall" == name)) - { - this.forceCreateOnInstallField = Enums.ParseYesNoType(value); - this.forceCreateOnInstallFieldSet = true; - } - if (("ForceDeleteOnUninstall" == name)) - { - this.forceDeleteOnUninstallField = Enums.ParseYesNoType(value); - this.forceDeleteOnUninstallFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Creates the key, if absent, when the parent component is installed. - /// - create, - - /// - /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. - /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already - /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. - /// - createAndRemoveOnUninstall, - - /// - /// Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output. - /// This is the default value. - /// - none, - } - } - - /// - /// Used to create a registry value. For multi-string values, this can be used to prepend or append values. - /// - /// For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element - /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - /// values should go in the text area of the RegistryValue element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistryValue : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private ISchemaElement parentElement; - - public RegistryValue() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MultiStringValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - /// - /// The localizable key for the registry value. - /// If the parent element is a RegistryKey, this value may be omitted to use the - /// path of the parent, or if its specified it will be appended to the path of the parent. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The localizable registry value name. If this attribute is not provided the default value for the registry key will - /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows - /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate - /// values in the Type attribute to get the desired behavior. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value - /// attribute or a child RegistryValue element is specified. This attribute - /// should only be set when the value of the Action attribute does not include the word 'remove'. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// This is the action that will be taken for this registry value. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. - /// Only one resource (registry, file, etc) can be the KeyPath of a component. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("MultiStringValue" == childName)) - { - childValue = new MultiStringValue(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - RegistryValue.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - if (("integer" == value)) - { - parsedValue = TypeType.integer; - } - else - { - if (("binary" == value)) - { - parsedValue = TypeType.binary; - } - else - { - if (("expandable" == value)) - { - parsedValue = TypeType.expandable; - } - else - { - if (("multiString" == value)) - { - parsedValue = TypeType.multiString; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RegistryValue.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("append" == value)) - { - parsedValue = ActionType.append; - } - else - { - if (("prepend" == value)) - { - parsedValue = ActionType.prepend; - } - else - { - if (("write" == value)) - { - parsedValue = ActionType.write; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - if ((this.typeField == TypeType.integer)) - { - writer.WriteAttributeString("Type", "integer"); - } - if ((this.typeField == TypeType.binary)) - { - writer.WriteAttributeString("Type", "binary"); - } - if ((this.typeField == TypeType.expandable)) - { - writer.WriteAttributeString("Type", "expandable"); - } - if ((this.typeField == TypeType.multiString)) - { - writer.WriteAttributeString("Type", "multiString"); - } - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.append)) - { - writer.WriteAttributeString("Action", "append"); - } - if ((this.actionField == ActionType.prepend)) - { - writer.WriteAttributeString("Action", "prepend"); - } - if ((this.actionField == ActionType.write)) - { - writer.WriteAttributeString("Action", "write"); - } - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = RegistryValue.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RegistryValue.ParseActionType(value); - this.actionFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The value is interpreted and stored as a string (REG_SZ). - /// - @string, - - /// - /// The value is interpreted and stored as an integer (REG_DWORD). - /// - integer, - - /// - /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). - /// - binary, - - /// - /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). - /// - expandable, - - /// - /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). - /// Please note that this value will only result in a multi-string value if there is more than one registry value - /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. - /// - multiString, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Appends the specified value(s) to a multiString registry value. - /// - append, - - /// - /// Prepends the specified value(s) to a multiString registry value. - /// - prepend, - - /// - /// Writes a registry value. This is the default value. - /// - write, - } - } - - /// - /// Used for removing registry keys and all child keys either during install or uninstall. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveRegistryKey : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This is the action that will be taken for this registry value. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// The localizable key for the registry value. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RemoveRegistryKey.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("removeOnInstall" == value)) - { - parsedValue = ActionType.removeOnInstall; - } - else - { - if (("removeOnUninstall" == value)) - { - parsedValue = ActionType.removeOnUninstall; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveRegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.removeOnInstall)) - { - writer.WriteAttributeString("Action", "removeOnInstall"); - } - if ((this.actionField == ActionType.removeOnUninstall)) - { - writer.WriteAttributeString("Action", "removeOnUninstall"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RemoveRegistryKey.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Removes a key with all its values and subkeys when the parent component is installed. - /// - removeOnInstall, - - /// - /// Removes a key with all its values and subkeys when the parent component is uninstalled. - /// - removeOnUninstall, - } - } - - /// - /// Used to remove a registry value during installation. - /// There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey). - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveRegistryValue : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The localizable key for the registry value. - /// If the parent element is a RegistryKey, this value may be omitted to use the - /// path of the parent, or if its specified it will be appended to the path of the parent. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The localizable registry value name. If this attribute is not provided the default value for the registry key will - /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveRegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Registry : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - public Registry() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This is the action that will be taken for this registry key. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// The localizable key for the registry value. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry, - /// file, etc) can be the KeyPath of a component. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - /// - /// The localizable registry value name. If this attribute is not provided the default value for the registry key will - /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - /// - /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value - /// attribute or a child RegistryValue element is specified. This attribute - /// should only be set when the value of the Action attribute does not include the word 'remove'. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows - /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate - /// values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action - /// attribute's value contains the word 'remove'. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("RegistryValue" == childName)) - { - childValue = new RegistryValue(); - } - if (("Registry" == childName)) - { - childValue = new Registry(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - Registry.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("append" == value)) - { - parsedValue = ActionType.append; - } - else - { - if (("createKey" == value)) - { - parsedValue = ActionType.createKey; - } - else - { - if (("createKeyAndRemoveKeyOnUninstall" == value)) - { - parsedValue = ActionType.createKeyAndRemoveKeyOnUninstall; - } - else - { - if (("prepend" == value)) - { - parsedValue = ActionType.prepend; - } - else - { - if (("remove" == value)) - { - parsedValue = ActionType.remove; - } - else - { - if (("removeKeyOnInstall" == value)) - { - parsedValue = ActionType.removeKeyOnInstall; - } - else - { - if (("removeKeyOnUninstall" == value)) - { - parsedValue = ActionType.removeKeyOnUninstall; - } - else - { - if (("write" == value)) - { - parsedValue = ActionType.write; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - } - } - } - } - return true; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - Registry.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - if (("integer" == value)) - { - parsedValue = TypeType.integer; - } - else - { - if (("binary" == value)) - { - parsedValue = TypeType.binary; - } - else - { - if (("expandable" == value)) - { - parsedValue = TypeType.expandable; - } - else - { - if (("multiString" == value)) - { - parsedValue = TypeType.multiString; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Registry", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.append)) - { - writer.WriteAttributeString("Action", "append"); - } - if ((this.actionField == ActionType.createKey)) - { - writer.WriteAttributeString("Action", "createKey"); - } - if ((this.actionField == ActionType.createKeyAndRemoveKeyOnUninstall)) - { - writer.WriteAttributeString("Action", "createKeyAndRemoveKeyOnUninstall"); - } - if ((this.actionField == ActionType.prepend)) - { - writer.WriteAttributeString("Action", "prepend"); - } - if ((this.actionField == ActionType.remove)) - { - writer.WriteAttributeString("Action", "remove"); - } - if ((this.actionField == ActionType.removeKeyOnInstall)) - { - writer.WriteAttributeString("Action", "removeKeyOnInstall"); - } - if ((this.actionField == ActionType.removeKeyOnUninstall)) - { - writer.WriteAttributeString("Action", "removeKeyOnUninstall"); - } - if ((this.actionField == ActionType.write)) - { - writer.WriteAttributeString("Action", "write"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - if ((this.typeField == TypeType.integer)) - { - writer.WriteAttributeString("Type", "integer"); - } - if ((this.typeField == TypeType.binary)) - { - writer.WriteAttributeString("Type", "binary"); - } - if ((this.typeField == TypeType.expandable)) - { - writer.WriteAttributeString("Type", "expandable"); - } - if ((this.typeField == TypeType.multiString)) - { - writer.WriteAttributeString("Type", "multiString"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = Registry.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Registry.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Appends the specified value(s) to a multiString registry key. - /// - append, - - /// - /// Creates the key, if absent, when the parent component is installed. - /// - createKey, - - /// - /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. - /// - createKeyAndRemoveKeyOnUninstall, - - /// - /// Prepends the specified value(s) to a multiString registry key. - /// - prepend, - - /// - /// Removes a registry name when the parent component is installed. - /// - remove, - - /// - /// Removes a key with all its values and subkeys when the parent component is installed. - /// - removeKeyOnInstall, - - /// - /// Removes a key with all its values and subkeys when the parent component is uninstalled. - /// - removeKeyOnUninstall, - - /// - /// Writes a registry value. - /// - write, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The value is interpreted and stored as a string (REG_SZ). - /// - @string, - - /// - /// The value is interpreted and stored as an integer (REG_DWORD). - /// - integer, - - /// - /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). - /// - binary, - - /// - /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). - /// - expandable, - - /// - /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). - /// Please note that this value will only result in a multi-string value if there is more than one registry value - /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. - /// - multiString, - } - } - - /// - /// Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed - /// by specifying a wildcard for the value of the Name attribute. By default, the source - /// directory of the file is the directory of the parent component. This can be overridden by specifying the - /// Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property - /// attribute with a value corresponding to a property that will have a value that resolves to the full path - /// to the source directory. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private InstallUninstallType onField; - - private bool onFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the - /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// Overrides the directory of the parent component with the value of the specified property. The property - /// should have a value that resolves to the full path of the source directory. The property does not have - /// to exist in the installer database at creation time; it could be created at installation time by a custom - /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// This value should be set to the localizable name of the file(s) to be removed. All of the files that - /// match the wild card will be removed from the specified directory. The value is a filename that may also - /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// This attribute's value may now be either a short or long file name. - /// If a short file name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long file name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short file name. - /// However, if you wish to manually specify the short file name, then the ShortName attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// This attribute should only be set if you want to manually specify the short file name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// This value determines the time at which the file(s) may be removed. For 'install', the file will - /// be removed only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases. - /// - public InstallUninstallType On - { - get - { - return this.onField; - } - set - { - this.onFieldSet = true; - this.onField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.onFieldSet) - { - if ((this.onField == InstallUninstallType.install)) - { - writer.WriteAttributeString("On", "install"); - } - if ((this.onField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("On", "uninstall"); - } - if ((this.onField == InstallUninstallType.both)) - { - writer.WriteAttributeString("On", "both"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("On" == name)) - { - this.onField = Enums.ParseInstallUninstallType(value); - this.onFieldSet = true; - } - } - } - - /// - /// Remove an empty folder if the parent component is selected for installation or removal. By default, the folder - /// is the directory of the parent component. This can be overridden by specifying the Directory attribute - /// with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value - /// corresponding to a property that will have a value that resolves to the full path of the folder. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFolder : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private InstallUninstallType onField; - - private bool onFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the - /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// Overrides the directory of the parent component with the value of the specified property. The property - /// should have a value that resolves to the full path of the source directory. The property does not have - /// to exist in the installer database at creation time; it could be created at installation time by a custom - /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component. - /// For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases. - /// - public InstallUninstallType On - { - get - { - return this.onField; - } - set - { - this.onFieldSet = true; - this.onField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFolder", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.onFieldSet) - { - if ((this.onField == InstallUninstallType.install)) - { - writer.WriteAttributeString("On", "install"); - } - if ((this.onField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("On", "uninstall"); - } - if ((this.onField == InstallUninstallType.both)) - { - writer.WriteAttributeString("On", "both"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("On" == name)) - { - this.onField = Enums.ParseInstallUninstallType(value); - this.onFieldSet = true; - } - } - } - - /// - /// Create folder as part of parent Component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CreateFolder : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string directoryField; - - private bool directoryFieldSet; - - private ISchemaElement parentElement; - - public CreateFolder() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier of Directory to create. Defaults to Directory of parent Component. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Shortcut" == childName)) - { - childValue = new Shortcut(); - } - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CreateFolder", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - } - } - - /// - /// Optional way for defining AppData, generally used for complex CDATA. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AppData : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Optional way for defining AppData, generally used for complex CDATA. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AppData", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Qualified published component for parent Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Category : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string qualifierField; - - private bool qualifierFieldSet; - - private string appDataField; - - private bool appDataFieldSet; - - private string featureField; - - private bool featureFieldSet; - - private ISchemaElement parentElement; - - public Category() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(AppData))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// A string GUID that represents the category of components being grouped together. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages. - /// - public string Qualifier - { - get - { - return this.qualifierField; - } - set - { - this.qualifierFieldSet = true; - this.qualifierField = value; - } - } - - /// - /// An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category. - /// - public string AppData - { - get - { - return this.appDataField; - } - set - { - this.appDataFieldSet = true; - this.appDataField = value; - } - } - - /// - /// Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component . - /// - public string Feature - { - get - { - return this.featureField; - } - set - { - this.featureFieldSet = true; - this.featureField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppData" == childName)) - { - childValue = new AppData(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Category", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.qualifierFieldSet) - { - writer.WriteAttributeString("Qualifier", this.qualifierField); - } - if (this.appDataFieldSet) - { - writer.WriteAttributeString("AppData", this.appDataField); - } - if (this.featureFieldSet) - { - writer.WriteAttributeString("Feature", this.featureField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Qualifier" == name)) - { - this.qualifierField = value; - this.qualifierFieldSet = true; - } - if (("AppData" == name)) - { - this.appDataField = value; - this.appDataFieldSet = true; - } - if (("Feature" == name)) - { - this.featureField = value; - this.featureFieldSet = true; - } - } - } - - /// - /// MIME content-type for an Extension - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MIME : ISchemaElement, ISetAttributes - { - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string contentTypeField; - - private bool contentTypeFieldSet; - - private string classField; - - private bool classFieldSet; - - private YesNoType defaultField; - - private bool defaultFieldSet; - - private ISchemaElement parentElement; - - /// - /// Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either. - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// This is the identifier for the MIME content. It is commonly written in the form of type/format. - /// - public string ContentType - { - get - { - return this.contentTypeField; - } - set - { - this.contentTypeFieldSet = true; - this.contentTypeField = value; - } - } - - /// - /// Class ID for the COM server that is to be associated with the MIME content. - /// - public string Class - { - get - { - return this.classField; - } - set - { - this.classFieldSet = true; - this.classField = value; - } - } - - /// - /// If 'yes', become the content type for the parent Extension. The default value is 'no'. - /// - public YesNoType Default - { - get - { - return this.defaultField; - } - set - { - this.defaultFieldSet = true; - this.defaultField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MIME", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.contentTypeFieldSet) - { - writer.WriteAttributeString("ContentType", this.contentTypeField); - } - if (this.classFieldSet) - { - writer.WriteAttributeString("Class", this.classField); - } - if (this.defaultFieldSet) - { - if ((this.defaultField == YesNoType.no)) - { - writer.WriteAttributeString("Default", "no"); - } - if ((this.defaultField == YesNoType.yes)) - { - writer.WriteAttributeString("Default", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("ContentType" == name)) - { - this.contentTypeField = value; - this.contentTypeFieldSet = true; - } - if (("Class" == name)) - { - this.classField = value; - this.classFieldSet = true; - } - if (("Default" == name)) - { - this.defaultField = Enums.ParseYesNoType(value); - this.defaultFieldSet = true; - } - } - } - - /// - /// Verb definition for an Extension. When advertised, this element creates a row in the - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Verb : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string commandField; - - private bool commandFieldSet; - - private string argumentField; - - private bool argumentFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private string targetField; - - private bool targetFieldSet; - - private string targetFileField; - - private bool targetFileFieldSet; - - private string targetPropertyField; - - private bool targetPropertyFieldSet; - - private ISchemaElement parentElement; - - /// - /// The verb for the command. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The localized text displayed on the context menu. - /// - public string Command - { - get - { - return this.commandField; - } - set - { - this.commandFieldSet = true; - this.commandField = value; - } - } - - /// - /// Value for the command arguments. Note that the resolution of properties in the - /// Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property - /// already has the intended value when the component owning the verb is installed. For example, for the argument - /// "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the - /// component that owns the verb. - /// - public string Argument - { - get - { - return this.argumentField; - } - set - { - this.argumentFieldSet = true; - this.argumentField = value; - } - } - - /// - /// The sequence of the commands. Only verbs for which the Sequence is specified - /// are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this - /// column becomes the default verb. Used only for Advertised verbs. - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - public string Target - { - get - { - return this.targetField; - } - set - { - this.targetFieldSet = true; - this.targetField = value; - } - } - - /// - /// Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb. - /// The value should be the identifier of the target file to be executed for the verb. - /// - public string TargetFile - { - get - { - return this.targetFileField; - } - set - { - this.targetFileFieldSet = true; - this.targetFileField = value; - } - } - - /// - /// Either this attribute or the TargetFile attribute must be specified for a non-advertised verb. - /// The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb. - /// - public string TargetProperty - { - get - { - return this.targetPropertyField; - } - set - { - this.targetPropertyFieldSet = true; - this.targetPropertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Verb", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.commandFieldSet) - { - writer.WriteAttributeString("Command", this.commandField); - } - if (this.argumentFieldSet) - { - writer.WriteAttributeString("Argument", this.argumentField); - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.targetFieldSet) - { - writer.WriteAttributeString("Target", this.targetField); - } - if (this.targetFileFieldSet) - { - writer.WriteAttributeString("TargetFile", this.targetFileField); - } - if (this.targetPropertyFieldSet) - { - writer.WriteAttributeString("TargetProperty", this.targetPropertyField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Command" == name)) - { - this.commandField = value; - this.commandFieldSet = true; - } - if (("Argument" == name)) - { - this.argumentField = value; - this.argumentFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Target" == name)) - { - this.targetField = value; - this.targetFieldSet = true; - } - if (("TargetFile" == name)) - { - this.targetFileField = value; - this.targetFileFieldSet = true; - } - if (("TargetProperty" == name)) - { - this.targetPropertyField = value; - this.targetPropertyFieldSet = true; - } - } - } - - /// - /// Extension for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Extension : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string contentTypeField; - - private bool contentTypeFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private ISchemaElement parentElement; - - public Extension() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MIME))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Verb))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// This is simply the file extension, like "doc" or "xml". Do not include the preceding period. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The MIME type that is to be written. - /// - public string ContentType - { - get - { - return this.contentTypeField; - } - set - { - this.contentTypeFieldSet = true; - this.contentTypeField = value; - } - } - - /// - /// Whether this extension is to be advertised. The default is "no". - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MIME" == childName)) - { - childValue = new MIME(); - } - if (("Verb" == childName)) - { - childValue = new Verb(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Extension", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.contentTypeFieldSet) - { - writer.WriteAttributeString("ContentType", this.contentTypeField); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ContentType" == name)) - { - this.contentTypeField = value; - this.contentTypeFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - } - } - - /// - /// Register a type library (TypeLib). Please note that in order to properly use this - /// non-advertised, you will need use this element with Advertise='no' and also author the - /// appropriate child Interface elements by extracting them from the type library itself. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TypeLib : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private YesNoType controlField; - - private bool controlFieldSet; - - private int costField; - - private bool costFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private YesNoType hasDiskImageField; - - private bool hasDiskImageFieldSet; - - private string helpDirectoryField; - - private bool helpDirectoryFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private int languageField; - - private bool languageFieldSet; - - private int majorVersionField; - - private bool majorVersionFieldSet; - - private int minorVersionField; - - private bool minorVersionFieldSet; - - private int resourceIdField; - - private bool resourceIdFieldSet; - - private YesNoType restrictedField; - - private bool restrictedFieldSet; - - private ISchemaElement parentElement; - - public TypeLib() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The GUID that identifes the type library. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Value of 'yes' will create a row in the TypeLib table. - /// Value of 'no' will create rows in the Registry table. - /// The default value is 'no'. - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects. - /// This attribute can only be set if Advertise='no'. - /// - public YesNoType Control - { - get - { - return this.controlField; - } - set - { - this.controlFieldSet = true; - this.controlField = value; - } - } - - /// - /// The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'. - /// - public int Cost - { - get - { - return this.costField; - } - set - { - this.costFieldSet = true; - this.costField = value; - } - } - - /// - /// The localizable description of the type library. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'. - /// - public YesNoType HasDiskImage - { - get - { - return this.hasDiskImageField; - } - set - { - this.hasDiskImageFieldSet = true; - this.hasDiskImageField = value; - } - } - - /// - /// The identifier of the Directory element for the help directory. - /// - public string HelpDirectory - { - get - { - return this.helpDirectoryField; - } - set - { - this.helpDirectoryFieldSet = true; - this.helpDirectoryField = value; - } - } - - /// - /// Value of 'yes' means the type library should not be displayed to users, although its use is not restricted. - /// Should be used by controls. Hosts should create a new type library that wraps the control with extended properties. - /// This attribute can only be set if Advertise='no'. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// The language of the type library. This must be a non-negative integer. - /// - public int Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The major version of the type library. The value should be an integer from 0 - 255. - /// - public int MajorVersion - { - get - { - return this.majorVersionField; - } - set - { - this.majorVersionFieldSet = true; - this.majorVersionField = value; - } - } - - /// - /// The minor version of the type library. The value should be an integer from 0 - 255. - /// - public int MinorVersion - { - get - { - return this.minorVersionField; - } - set - { - this.minorVersionFieldSet = true; - this.minorVersionField = value; - } - } - - /// - /// The resource id of a typelib. The value is appended to the end of the typelib path in the registry. - /// - public int ResourceId - { - get - { - return this.resourceIdField; - } - set - { - this.resourceIdFieldSet = true; - this.resourceIdField = value; - } - } - - /// - /// Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'. - /// - public YesNoType Restricted - { - get - { - return this.restrictedField; - } - set - { - this.restrictedFieldSet = true; - this.restrictedField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Class" == childName)) - { - childValue = new Class(); - } - if (("Interface" == childName)) - { - childValue = new Interface(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TypeLib", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.controlFieldSet) - { - if ((this.controlField == YesNoType.no)) - { - writer.WriteAttributeString("Control", "no"); - } - if ((this.controlField == YesNoType.yes)) - { - writer.WriteAttributeString("Control", "yes"); - } - } - if (this.costFieldSet) - { - writer.WriteAttributeString("Cost", this.costField.ToString(CultureInfo.InvariantCulture)); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.hasDiskImageFieldSet) - { - if ((this.hasDiskImageField == YesNoType.no)) - { - writer.WriteAttributeString("HasDiskImage", "no"); - } - if ((this.hasDiskImageField == YesNoType.yes)) - { - writer.WriteAttributeString("HasDiskImage", "yes"); - } - } - if (this.helpDirectoryFieldSet) - { - writer.WriteAttributeString("HelpDirectory", this.helpDirectoryField); - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.majorVersionFieldSet) - { - writer.WriteAttributeString("MajorVersion", this.majorVersionField.ToString(CultureInfo.InvariantCulture)); - } - if (this.minorVersionFieldSet) - { - writer.WriteAttributeString("MinorVersion", this.minorVersionField.ToString(CultureInfo.InvariantCulture)); - } - if (this.resourceIdFieldSet) - { - writer.WriteAttributeString("ResourceId", this.resourceIdField.ToString(CultureInfo.InvariantCulture)); - } - if (this.restrictedFieldSet) - { - if ((this.restrictedField == YesNoType.no)) - { - writer.WriteAttributeString("Restricted", "no"); - } - if ((this.restrictedField == YesNoType.yes)) - { - writer.WriteAttributeString("Restricted", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("Control" == name)) - { - this.controlField = Enums.ParseYesNoType(value); - this.controlFieldSet = true; - } - if (("Cost" == name)) - { - this.costField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.costFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("HasDiskImage" == name)) - { - this.hasDiskImageField = Enums.ParseYesNoType(value); - this.hasDiskImageFieldSet = true; - } - if (("HelpDirectory" == name)) - { - this.helpDirectoryField = value; - this.helpDirectoryFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.languageFieldSet = true; - } - if (("MajorVersion" == name)) - { - this.majorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.majorVersionFieldSet = true; - } - if (("MinorVersion" == name)) - { - this.minorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.minorVersionFieldSet = true; - } - if (("ResourceId" == name)) - { - this.resourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.resourceIdFieldSet = true; - } - if (("Restricted" == name)) - { - this.restrictedField = Enums.ParseYesNoType(value); - this.restrictedFieldSet = true; - } - } - } - - /// - /// ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProgId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private int iconIndexField; - - private bool iconIndexFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string noOpenField; - - private bool noOpenFieldSet; - - private ISchemaElement parentElement; - - public ProgId() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProgId))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Extension))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource. - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - public int IconIndex - { - get - { - return this.iconIndexField; - } - set - { - this.iconIndexFieldSet = true; - this.iconIndexField = value; - } - } - - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute. - /// - public string NoOpen - { - get - { - return this.noOpenField; - } - set - { - this.noOpenFieldSet = true; - this.noOpenField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProgId" == childName)) - { - childValue = new ProgId(); - } - if (("Extension" == childName)) - { - childValue = new Extension(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProgId", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.iconIndexFieldSet) - { - writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.noOpenFieldSet) - { - writer.WriteAttributeString("NoOpen", this.noOpenField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("IconIndex" == name)) - { - this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.iconIndexFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("NoOpen" == name)) - { - this.noOpenField = value; - this.noOpenFieldSet = true; - } - } - } - - /// - /// Application ID containing DCOM information for the associated application GUID. - /// If this element is nested under a Fragment, Module, or Product element, it must be - /// advertised. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AppId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType activateAtStorageField; - - private bool activateAtStorageFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string dllSurrogateField; - - private bool dllSurrogateFieldSet; - - private string idField; - - private bool idFieldSet; - - private string localServiceField; - - private bool localServiceFieldSet; - - private string remoteServerNameField; - - private bool remoteServerNameFieldSet; - - private YesNoType runAsInteractiveUserField; - - private bool runAsInteractiveUserFieldSet; - - private string serviceParametersField; - - private bool serviceParametersFieldSet; - - private ISchemaElement parentElement; - - public AppId() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Set this value to 'yes' to configure the client to activate on the same system as persistent storage. - /// - public YesNoType ActivateAtStorage - { - get - { - return this.activateAtStorageField; - } - set - { - this.activateAtStorageFieldSet = true; - this.activateAtStorageField = value; - } - } - - /// - /// Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to - /// generate Registry rows that perform similar registration (without the often problematic Windows Installer - /// advertising behavior). - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE - /// process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value. - /// - public string DllSurrogate - { - get - { - return this.dllSurrogateField; - } - set - { - this.dllSurrogateFieldSet = true; - this.dllSurrogateField = value; - } - } - - /// - /// Set this value to the AppID GUID that corresponds to the named executable. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this value to the name of a service to allow the object to be installed as a Win32 service. - /// - public string LocalService - { - get - { - return this.localServiceField; - } - set - { - this.localServiceFieldSet = true; - this.localServiceField = value; - } - } - - /// - /// Set this value to the name of the remote server to configure the client to request the object - /// be run at a particular machine whenever an activation function is called for which a COSERVERINFO - /// structure is not specified. - /// - public string RemoteServerName - { - get - { - return this.remoteServerNameField; - } - set - { - this.remoteServerNameFieldSet = true; - this.remoteServerNameField = value; - } - } - - /// - /// Set this value to 'yes' to configure a class to run under the identity of the user currently - /// logged on and connected to the interactive desktop when activated by a remote client without - /// being written as a Win32 service. - /// - public YesNoType RunAsInteractiveUser - { - get - { - return this.runAsInteractiveUserField; - } - set - { - this.runAsInteractiveUserFieldSet = true; - this.runAsInteractiveUserField = value; - } - } - - /// - /// Set this value to the parameters to be passed to a LocalService on invocation. - /// - public string ServiceParameters - { - get - { - return this.serviceParametersField; - } - set - { - this.serviceParametersFieldSet = true; - this.serviceParametersField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Class" == childName)) - { - childValue = new Class(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AppId", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.activateAtStorageFieldSet) - { - if ((this.activateAtStorageField == YesNoType.no)) - { - writer.WriteAttributeString("ActivateAtStorage", "no"); - } - if ((this.activateAtStorageField == YesNoType.yes)) - { - writer.WriteAttributeString("ActivateAtStorage", "yes"); - } - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.dllSurrogateFieldSet) - { - writer.WriteAttributeString("DllSurrogate", this.dllSurrogateField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.localServiceFieldSet) - { - writer.WriteAttributeString("LocalService", this.localServiceField); - } - if (this.remoteServerNameFieldSet) - { - writer.WriteAttributeString("RemoteServerName", this.remoteServerNameField); - } - if (this.runAsInteractiveUserFieldSet) - { - if ((this.runAsInteractiveUserField == YesNoType.no)) - { - writer.WriteAttributeString("RunAsInteractiveUser", "no"); - } - if ((this.runAsInteractiveUserField == YesNoType.yes)) - { - writer.WriteAttributeString("RunAsInteractiveUser", "yes"); - } - } - if (this.serviceParametersFieldSet) - { - writer.WriteAttributeString("ServiceParameters", this.serviceParametersField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("ActivateAtStorage" == name)) - { - this.activateAtStorageField = Enums.ParseYesNoType(value); - this.activateAtStorageFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("DllSurrogate" == name)) - { - this.dllSurrogateField = value; - this.dllSurrogateFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("LocalService" == name)) - { - this.localServiceField = value; - this.localServiceFieldSet = true; - } - if (("RemoteServerName" == name)) - { - this.remoteServerNameField = value; - this.remoteServerNameFieldSet = true; - } - if (("RunAsInteractiveUser" == name)) - { - this.runAsInteractiveUserField = Enums.ParseYesNoType(value); - this.runAsInteractiveUserFieldSet = true; - } - if (("ServiceParameters" == name)) - { - this.serviceParametersField = value; - this.serviceParametersFieldSet = true; - } - } - } - - /// - /// COM Class registration for parent Component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Class : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ContextType contextField; - - private bool contextFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string appIdField; - - private bool appIdFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private int iconIndexField; - - private bool iconIndexFieldSet; - - private string handlerField; - - private bool handlerFieldSet; - - private string argumentField; - - private bool argumentFieldSet; - - private YesNoType relativePathField; - - private bool relativePathFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private ThreadingModelType threadingModelField; - - private bool threadingModelFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private YesNoType insertableField; - - private bool insertableFieldSet; - - private YesNoType programmableField; - - private bool programmableFieldSet; - - private string foreignServerField; - - private bool foreignServerFieldSet; - - private string serverField; - - private bool serverFieldSet; - - private YesNoType shortPathField; - - private bool shortPathFieldSet; - - private YesNoType safeForScriptingField; - - private bool safeForScriptingFieldSet; - - private YesNoType safeForInitializingField; - - private bool safeForInitializingFieldSet; - - private YesNoType controlField; - - private bool controlFieldSet; - - private ISchemaElement parentElement; - - public Class() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileTypeMask))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The Class identifier (CLSID) of a COM server. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable". - /// Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value - /// for the Context attribute. - /// - public ContextType Context - { - get - { - return this.contextField; - } - set - { - this.contextFieldSet = true; - this.contextField = value; - } - } - - /// - /// Localized description associated with the Class ID and Program ID. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID - /// containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an - /// AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised - /// class, nest the class within a parent AppId element. - /// - public string AppId - { - get - { - return this.appIdField; - } - set - { - this.appIdFieldSet = true; - this.appIdField = value; - } - } - - /// - /// The file providing the icon associated with this CLSID. Reference to an Icon element - /// (should match the Id attribute of an Icon element). This is currently not supported if the - /// value of the Advertise attribute is "no". - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// Icon index into the icon file. - /// - public int IconIndex - { - get - { - return this.iconIndexField; - } - set - { - this.iconIndexFieldSet = true; - this.iconIndexField = value; - } - } - - /// - /// The default inproc handler. May be optionally provided only for Context = LocalServer or - /// LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler - /// value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value). - /// Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated - /// as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value). - /// - public string Handler - { - get - { - return this.handlerField; - } - set - { - this.handlerFieldSet = true; - this.handlerField = value; - } - } - - /// - /// This column is optional only when the Context column is set to "LocalServer" - /// or "LocalServer32" server context. The text is registered as the argument against - /// the OLE server and is used by OLE for invoking the server. Note that the resolution - /// of properties in the Argument field is limited. A property formatted as [Property] in - /// this field can only be resolved if the property already has the intended value when - /// the component owning the class is installed. For example, for the argument "[#MyDoc.doc]" - /// to resolve to the correct value, the same process must be installing the file MyDoc.doc and the - /// component that owns the class. - /// - public string Argument - { - get - { - return this.argumentField; - } - set - { - this.argumentFieldSet = true; - this.argumentField = value; - } - } - - /// - /// When the value is "yes", the bare file name can be used for COM servers. The installer - /// registers the file name only instead of the complete path. This enables the server in - /// the current directory to take precedence and allows multiple copies of the same component. - /// - public YesNoType RelativePath - { - get - { - return this.relativePathField; - } - set - { - this.relativePathFieldSet = true; - this.relativePathField = value; - } - } - - /// - /// Set this value to "yes" in order to create a normal Class table row. Set this value to - /// "no" in order to generate Registry rows that perform similar registration (without the - /// often problematic Windows Installer advertising behavior). - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Threading model for the CLSID. - /// - public ThreadingModelType ThreadingModel - { - get - { - return this.threadingModelField; - } - set - { - this.threadingModelFieldSet = true; - this.threadingModelField = value; - } - } - - /// - /// Version for the CLSID. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - /// - /// Specifies the CLSID may be insertable. - /// - public YesNoType Insertable - { - get - { - return this.insertableField; - } - set - { - this.insertableFieldSet = true; - this.insertableField = value; - } - } - - /// - /// Specifies the CLSID may be programmable. - /// - public YesNoType Programmable - { - get - { - return this.programmableField; - } - set - { - this.programmableFieldSet = true; - this.programmableField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only - /// be used when the Class element is directly under the Component element. The value can be - /// that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed. - /// - public string ForeignServer - { - get - { - return this.foreignServerField; - } - set - { - this.foreignServerFieldSet = true; - this.foreignServerField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the - /// COM server file. If this element is nested under a File element, this value defaults to - /// the value of the parent File/@Id. - /// - public string Server - { - get - { - return this.serverField; - } - set - { - this.serverFieldSet = true; - this.serverField = value; - } - } - - /// - /// Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server. - /// - public YesNoType ShortPath - { - get - { - return this.shortPathField; - } - set - { - this.shortPathFieldSet = true; - this.shortPathField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no". - /// - public YesNoType SafeForScripting - { - get - { - return this.safeForScriptingField; - } - set - { - this.safeForScriptingFieldSet = true; - this.safeForScriptingField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no". - /// - public YesNoType SafeForInitializing - { - get - { - return this.safeForInitializingField; - } - set - { - this.safeForInitializingFieldSet = true; - this.safeForInitializingField = value; - } - } - - /// - /// Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'. - /// - public YesNoType Control - { - get - { - return this.controlField; - } - set - { - this.controlFieldSet = true; - this.controlField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProgId" == childName)) - { - childValue = new ProgId(); - } - if (("FileTypeMask" == childName)) - { - childValue = new FileTypeMask(); - } - if (("Interface" == childName)) - { - childValue = new Interface(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Tries to parse a ContextType from a string. - /// - public static bool TryParseContextType(string value, out ContextType parsedValue) - { - parsedValue = ContextType.None; - if (string.IsNullOrEmpty(value)) - { - return false; - } - string[] splitValue = value.Split(" \t\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); - for (System.Collections.IEnumerator enumerator = splitValue.GetEnumerator(); enumerator.MoveNext(); - ) - { - string currentValue = ((string)(enumerator.Current)); - if (("LocalServer" == currentValue)) - { - parsedValue = (parsedValue | ContextType.LocalServer); - } - else - { - if (("LocalServer32" == currentValue)) - { - parsedValue = (parsedValue | ContextType.LocalServer32); - } - else - { - if (("InprocServer" == currentValue)) - { - parsedValue = (parsedValue | ContextType.InprocServer); - } - else - { - if (("InprocServer32" == currentValue)) - { - parsedValue = (parsedValue | ContextType.InprocServer32); - } - else - { - parsedValue = ContextType.None; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ThreadingModelType from a string. - /// - public static ThreadingModelType ParseThreadingModelType(string value) - { - ThreadingModelType parsedValue; - Class.TryParseThreadingModelType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ThreadingModelType from a string. - /// - public static bool TryParseThreadingModelType(string value, out ThreadingModelType parsedValue) - { - parsedValue = ThreadingModelType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("apartment" == value)) - { - parsedValue = ThreadingModelType.apartment; - } - else - { - if (("free" == value)) - { - parsedValue = ThreadingModelType.free; - } - else - { - if (("both" == value)) - { - parsedValue = ThreadingModelType.both; - } - else - { - if (("neutral" == value)) - { - parsedValue = ThreadingModelType.neutral; - } - else - { - if (("single" == value)) - { - parsedValue = ThreadingModelType.single; - } - else - { - if (("rental" == value)) - { - parsedValue = ThreadingModelType.rental; - } - else - { - parsedValue = ThreadingModelType.IllegalValue; - return false; - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Class", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.contextFieldSet) - { - string outputValue = ""; - if (((this.contextField & ContextType.LocalServer) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "LocalServer"); - } - if (((this.contextField & ContextType.LocalServer32) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "LocalServer32"); - } - if (((this.contextField & ContextType.InprocServer) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "InprocServer"); - } - if (((this.contextField & ContextType.InprocServer32) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "InprocServer32"); - } - writer.WriteAttributeString("Context", outputValue); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.appIdFieldSet) - { - writer.WriteAttributeString("AppId", this.appIdField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.iconIndexFieldSet) - { - writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); - } - if (this.handlerFieldSet) - { - writer.WriteAttributeString("Handler", this.handlerField); - } - if (this.argumentFieldSet) - { - writer.WriteAttributeString("Argument", this.argumentField); - } - if (this.relativePathFieldSet) - { - if ((this.relativePathField == YesNoType.no)) - { - writer.WriteAttributeString("RelativePath", "no"); - } - if ((this.relativePathField == YesNoType.yes)) - { - writer.WriteAttributeString("RelativePath", "yes"); - } - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.threadingModelFieldSet) - { - if ((this.threadingModelField == ThreadingModelType.apartment)) - { - writer.WriteAttributeString("ThreadingModel", "apartment"); - } - if ((this.threadingModelField == ThreadingModelType.free)) - { - writer.WriteAttributeString("ThreadingModel", "free"); - } - if ((this.threadingModelField == ThreadingModelType.both)) - { - writer.WriteAttributeString("ThreadingModel", "both"); - } - if ((this.threadingModelField == ThreadingModelType.neutral)) - { - writer.WriteAttributeString("ThreadingModel", "neutral"); - } - if ((this.threadingModelField == ThreadingModelType.single)) - { - writer.WriteAttributeString("ThreadingModel", "single"); - } - if ((this.threadingModelField == ThreadingModelType.rental)) - { - writer.WriteAttributeString("ThreadingModel", "rental"); - } - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - if (this.insertableFieldSet) - { - if ((this.insertableField == YesNoType.no)) - { - writer.WriteAttributeString("Insertable", "no"); - } - if ((this.insertableField == YesNoType.yes)) - { - writer.WriteAttributeString("Insertable", "yes"); - } - } - if (this.programmableFieldSet) - { - if ((this.programmableField == YesNoType.no)) - { - writer.WriteAttributeString("Programmable", "no"); - } - if ((this.programmableField == YesNoType.yes)) - { - writer.WriteAttributeString("Programmable", "yes"); - } - } - if (this.foreignServerFieldSet) - { - writer.WriteAttributeString("ForeignServer", this.foreignServerField); - } - if (this.serverFieldSet) - { - writer.WriteAttributeString("Server", this.serverField); - } - if (this.shortPathFieldSet) - { - if ((this.shortPathField == YesNoType.no)) - { - writer.WriteAttributeString("ShortPath", "no"); - } - if ((this.shortPathField == YesNoType.yes)) - { - writer.WriteAttributeString("ShortPath", "yes"); - } - } - if (this.safeForScriptingFieldSet) - { - if ((this.safeForScriptingField == YesNoType.no)) - { - writer.WriteAttributeString("SafeForScripting", "no"); - } - if ((this.safeForScriptingField == YesNoType.yes)) - { - writer.WriteAttributeString("SafeForScripting", "yes"); - } - } - if (this.safeForInitializingFieldSet) - { - if ((this.safeForInitializingField == YesNoType.no)) - { - writer.WriteAttributeString("SafeForInitializing", "no"); - } - if ((this.safeForInitializingField == YesNoType.yes)) - { - writer.WriteAttributeString("SafeForInitializing", "yes"); - } - } - if (this.controlFieldSet) - { - if ((this.controlField == YesNoType.no)) - { - writer.WriteAttributeString("Control", "no"); - } - if ((this.controlField == YesNoType.yes)) - { - writer.WriteAttributeString("Control", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Context" == name)) - { - Class.TryParseContextType(value, out this.contextField); - this.contextFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("AppId" == name)) - { - this.appIdField = value; - this.appIdFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("IconIndex" == name)) - { - this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.iconIndexFieldSet = true; - } - if (("Handler" == name)) - { - this.handlerField = value; - this.handlerFieldSet = true; - } - if (("Argument" == name)) - { - this.argumentField = value; - this.argumentFieldSet = true; - } - if (("RelativePath" == name)) - { - this.relativePathField = Enums.ParseYesNoType(value); - this.relativePathFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("ThreadingModel" == name)) - { - this.threadingModelField = Class.ParseThreadingModelType(value); - this.threadingModelFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - if (("Insertable" == name)) - { - this.insertableField = Enums.ParseYesNoType(value); - this.insertableFieldSet = true; - } - if (("Programmable" == name)) - { - this.programmableField = Enums.ParseYesNoType(value); - this.programmableFieldSet = true; - } - if (("ForeignServer" == name)) - { - this.foreignServerField = value; - this.foreignServerFieldSet = true; - } - if (("Server" == name)) - { - this.serverField = value; - this.serverFieldSet = true; - } - if (("ShortPath" == name)) - { - this.shortPathField = Enums.ParseYesNoType(value); - this.shortPathFieldSet = true; - } - if (("SafeForScripting" == name)) - { - this.safeForScriptingField = Enums.ParseYesNoType(value); - this.safeForScriptingFieldSet = true; - } - if (("SafeForInitializing" == name)) - { - this.safeForInitializingField = Enums.ParseYesNoType(value); - this.safeForInitializingFieldSet = true; - } - if (("Control" == name)) - { - this.controlField = Enums.ParseYesNoType(value); - this.controlFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - [Flags()] - public enum ContextType - { - - None = 0, - - /// - /// A 16-bit local server application. - /// - LocalServer = 1, - - /// - /// A 32-bit local server application. - /// - LocalServer32 = 2, - - /// - /// A 16-bit in-process server DLL. - /// - InprocServer = 4, - - /// - /// A 32-bit in-process server DLL. - /// - InprocServer32 = 8, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ThreadingModelType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - apartment, - - free, - - both, - - neutral, - - single, - - rental, - } - } - - /// - /// COM Interface registration for parent TypeLib. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Interface : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string baseInterfaceField; - - private bool baseInterfaceFieldSet; - - private string proxyStubClassIdField; - - private bool proxyStubClassIdFieldSet; - - private string proxyStubClassId32Field; - - private bool proxyStubClassId32FieldSet; - - private int numMethodsField; - - private bool numMethodsFieldSet; - - private YesNoType versionedField; - - private bool versionedFieldSet; - - private ISchemaElement parentElement; - - /// - /// GUID identifier for COM Interface. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for COM Interface. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Identifies the interface from which the current interface is derived. - /// - public string BaseInterface - { - get - { - return this.baseInterfaceField; - } - set - { - this.baseInterfaceFieldSet = true; - this.baseInterfaceField = value; - } - } - - /// - /// GUID CLSID for proxy stub to COM Interface. - /// - public string ProxyStubClassId - { - get - { - return this.proxyStubClassIdField; - } - set - { - this.proxyStubClassIdFieldSet = true; - this.proxyStubClassIdField = value; - } - } - - /// - /// GUID CLSID for 32-bit proxy stub to COM Interface. - /// - public string ProxyStubClassId32 - { - get - { - return this.proxyStubClassId32Field; - } - set - { - this.proxyStubClassId32FieldSet = true; - this.proxyStubClassId32Field = value; - } - } - - /// - /// Number of methods implemented on COM Interface. - /// - public int NumMethods - { - get - { - return this.numMethodsField; - } - set - { - this.numMethodsFieldSet = true; - this.numMethodsField = value; - } - } - - /// - /// Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'. - /// - public YesNoType Versioned - { - get - { - return this.versionedField; - } - set - { - this.versionedFieldSet = true; - this.versionedField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Interface", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.baseInterfaceFieldSet) - { - writer.WriteAttributeString("BaseInterface", this.baseInterfaceField); - } - if (this.proxyStubClassIdFieldSet) - { - writer.WriteAttributeString("ProxyStubClassId", this.proxyStubClassIdField); - } - if (this.proxyStubClassId32FieldSet) - { - writer.WriteAttributeString("ProxyStubClassId32", this.proxyStubClassId32Field); - } - if (this.numMethodsFieldSet) - { - writer.WriteAttributeString("NumMethods", this.numMethodsField.ToString(CultureInfo.InvariantCulture)); - } - if (this.versionedFieldSet) - { - if ((this.versionedField == YesNoType.no)) - { - writer.WriteAttributeString("Versioned", "no"); - } - if ((this.versionedField == YesNoType.yes)) - { - writer.WriteAttributeString("Versioned", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("BaseInterface" == name)) - { - this.baseInterfaceField = value; - this.baseInterfaceFieldSet = true; - } - if (("ProxyStubClassId" == name)) - { - this.proxyStubClassIdField = value; - this.proxyStubClassIdFieldSet = true; - } - if (("ProxyStubClassId32" == name)) - { - this.proxyStubClassId32Field = value; - this.proxyStubClassId32FieldSet = true; - } - if (("NumMethods" == name)) - { - this.numMethodsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.numMethodsFieldSet = true; - } - if (("Versioned" == name)) - { - this.versionedField = Enums.ParseYesNoType(value); - this.versionedFieldSet = true; - } - } - } - - /// - /// FileType data for class Id registration. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileTypeMask : ISchemaElement, ISetAttributes - { - - private int offsetField; - - private bool offsetFieldSet; - - private string maskField; - - private bool maskFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Offset into file. If positive, offset is from the beginning; if negative, offset is from the end. - /// - public int Offset - { - get - { - return this.offsetField; - } - set - { - this.offsetFieldSet = true; - this.offsetField = value; - } - } - - /// - /// Hex value that is AND'd against the bytes in the file at Offset. - /// - public string Mask - { - get - { - return this.maskField; - } - set - { - this.maskFieldSet = true; - this.maskField = value; - } - } - - /// - /// If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileTypeMask", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.offsetFieldSet) - { - writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maskFieldSet) - { - writer.WriteAttributeString("Mask", this.maskField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Offset" == name)) - { - this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.offsetFieldSet = true; - } - if (("Mask" == name)) - { - this.maskField = value; - this.maskFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Service or group of services that must start before the parent service. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceDependency : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType groupField; - - private bool groupFieldSet; - - private ISchemaElement parentElement; - - /// - /// The value of this attribute should be one of the following: - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. - /// - public YesNoType Group - { - get - { - return this.groupField; - } - set - { - this.groupFieldSet = true; - this.groupField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceDependency", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.groupFieldSet) - { - if ((this.groupField == YesNoType.no)) - { - writer.WriteAttributeString("Group", "no"); - } - if ((this.groupField == YesNoType.yes)) - { - writer.WriteAttributeString("Group", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Group" == name)) - { - this.groupField = Enums.ParseYesNoType(value); - this.groupFieldSet = true; - } - } - } - - /// - /// Adds services for parent Component. Use the ServiceControl element to remove services. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceInstall : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private YesNoType interactiveField; - - private bool interactiveFieldSet; - - private StartType startField; - - private bool startFieldSet; - - private ErrorControlType errorControlField; - - private bool errorControlFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private string loadOrderGroupField; - - private bool loadOrderGroupFieldSet; - - private string accountField; - - private bool accountFieldSet; - - private string passwordField; - - private bool passwordFieldSet; - - private string argumentsField; - - private bool argumentsFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private YesNoType eraseDescriptionField; - - private bool eraseDescriptionFieldSet; - - private ISchemaElement parentElement; - - public ServiceInstall() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceDependency))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for this service configuration. This value will default to the Name attribute if not - /// specified. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This column is the string that gives the service name to install. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// This column is the localizable string that user interface programs use to identify the service. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// The Windows Installer does not currently support kernelDriver or systemDriver. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Whether or not the service interacts with the desktop. - /// - public YesNoType Interactive - { - get - { - return this.interactiveField; - } - set - { - this.interactiveFieldSet = true; - this.interactiveField = value; - } - } - - /// - /// Determines when the service should be started. The Windows Installer does not support boot or system. - /// - public StartType Start - { - get - { - return this.startField; - } - set - { - this.startFieldSet = true; - this.startField = value; - } - } - - /// - /// Determines what action should be taken on an error. - /// - public ErrorControlType ErrorControl - { - get - { - return this.errorControlField; - } - set - { - this.errorControlFieldSet = true; - this.errorControlField = value; - } - } - - /// - /// The overall install should fail if this service fails to install. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// The load ordering group that this service should be a part of. - /// - public string LoadOrderGroup - { - get - { - return this.loadOrderGroupField; - } - set - { - this.loadOrderGroupFieldSet = true; - this.loadOrderGroupField = value; - } - } - - /// - /// Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess. - /// - public string Account - { - get - { - return this.accountField; - } - set - { - this.accountFieldSet = true; - this.accountField = value; - } - } - - /// - /// The password for the account. Valid only when the account has a password. - /// - public string Password - { - get - { - return this.passwordField; - } - set - { - this.passwordFieldSet = true; - this.passwordField = value; - } - } - - /// - /// Contains any command line arguments or properties required to run the service. - /// - public string Arguments - { - get - { - return this.argumentsField; - } - set - { - this.argumentsFieldSet = true; - this.argumentsField = value; - } - } - - /// - /// Sets the description of the service. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set. - /// - public YesNoType EraseDescription - { - get - { - return this.eraseDescriptionField; - } - set - { - this.eraseDescriptionFieldSet = true; - this.eraseDescriptionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("ServiceDependency" == childName)) - { - childValue = new ServiceDependency(); - } - if (("ServiceConfig" == childName)) - { - childValue = new ServiceConfig(); - } - if (("ServiceConfigFailureActions" == childName)) - { - childValue = new ServiceConfigFailureActions(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - ServiceInstall.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("ownProcess" == value)) - { - parsedValue = TypeType.ownProcess; - } - else - { - if (("shareProcess" == value)) - { - parsedValue = TypeType.shareProcess; - } - else - { - if (("kernelDriver" == value)) - { - parsedValue = TypeType.kernelDriver; - } - else - { - if (("systemDriver" == value)) - { - parsedValue = TypeType.systemDriver; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a StartType from a string. - /// - public static StartType ParseStartType(string value) - { - StartType parsedValue; - ServiceInstall.TryParseStartType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a StartType from a string. - /// - public static bool TryParseStartType(string value, out StartType parsedValue) - { - parsedValue = StartType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("auto" == value)) - { - parsedValue = StartType.auto; - } - else - { - if (("demand" == value)) - { - parsedValue = StartType.demand; - } - else - { - if (("disabled" == value)) - { - parsedValue = StartType.disabled; - } - else - { - if (("boot" == value)) - { - parsedValue = StartType.boot; - } - else - { - if (("system" == value)) - { - parsedValue = StartType.system; - } - else - { - parsedValue = StartType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ErrorControlType from a string. - /// - public static ErrorControlType ParseErrorControlType(string value) - { - ErrorControlType parsedValue; - ServiceInstall.TryParseErrorControlType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ErrorControlType from a string. - /// - public static bool TryParseErrorControlType(string value, out ErrorControlType parsedValue) - { - parsedValue = ErrorControlType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("ignore" == value)) - { - parsedValue = ErrorControlType.ignore; - } - else - { - if (("normal" == value)) - { - parsedValue = ErrorControlType.normal; - } - else - { - if (("critical" == value)) - { - parsedValue = ErrorControlType.critical; - } - else - { - parsedValue = ErrorControlType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceInstall", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.ownProcess)) - { - writer.WriteAttributeString("Type", "ownProcess"); - } - if ((this.typeField == TypeType.shareProcess)) - { - writer.WriteAttributeString("Type", "shareProcess"); - } - if ((this.typeField == TypeType.kernelDriver)) - { - writer.WriteAttributeString("Type", "kernelDriver"); - } - if ((this.typeField == TypeType.systemDriver)) - { - writer.WriteAttributeString("Type", "systemDriver"); - } - } - if (this.interactiveFieldSet) - { - if ((this.interactiveField == YesNoType.no)) - { - writer.WriteAttributeString("Interactive", "no"); - } - if ((this.interactiveField == YesNoType.yes)) - { - writer.WriteAttributeString("Interactive", "yes"); - } - } - if (this.startFieldSet) - { - if ((this.startField == StartType.auto)) - { - writer.WriteAttributeString("Start", "auto"); - } - if ((this.startField == StartType.demand)) - { - writer.WriteAttributeString("Start", "demand"); - } - if ((this.startField == StartType.disabled)) - { - writer.WriteAttributeString("Start", "disabled"); - } - if ((this.startField == StartType.boot)) - { - writer.WriteAttributeString("Start", "boot"); - } - if ((this.startField == StartType.system)) - { - writer.WriteAttributeString("Start", "system"); - } - } - if (this.errorControlFieldSet) - { - if ((this.errorControlField == ErrorControlType.ignore)) - { - writer.WriteAttributeString("ErrorControl", "ignore"); - } - if ((this.errorControlField == ErrorControlType.normal)) - { - writer.WriteAttributeString("ErrorControl", "normal"); - } - if ((this.errorControlField == ErrorControlType.critical)) - { - writer.WriteAttributeString("ErrorControl", "critical"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.loadOrderGroupFieldSet) - { - writer.WriteAttributeString("LoadOrderGroup", this.loadOrderGroupField); - } - if (this.accountFieldSet) - { - writer.WriteAttributeString("Account", this.accountField); - } - if (this.passwordFieldSet) - { - writer.WriteAttributeString("Password", this.passwordField); - } - if (this.argumentsFieldSet) - { - writer.WriteAttributeString("Arguments", this.argumentsField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.eraseDescriptionFieldSet) - { - if ((this.eraseDescriptionField == YesNoType.no)) - { - writer.WriteAttributeString("EraseDescription", "no"); - } - if ((this.eraseDescriptionField == YesNoType.yes)) - { - writer.WriteAttributeString("EraseDescription", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = ServiceInstall.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Interactive" == name)) - { - this.interactiveField = Enums.ParseYesNoType(value); - this.interactiveFieldSet = true; - } - if (("Start" == name)) - { - this.startField = ServiceInstall.ParseStartType(value); - this.startFieldSet = true; - } - if (("ErrorControl" == name)) - { - this.errorControlField = ServiceInstall.ParseErrorControlType(value); - this.errorControlFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("LoadOrderGroup" == name)) - { - this.loadOrderGroupField = value; - this.loadOrderGroupFieldSet = true; - } - if (("Account" == name)) - { - this.accountField = value; - this.accountFieldSet = true; - } - if (("Password" == name)) - { - this.passwordField = value; - this.passwordFieldSet = true; - } - if (("Arguments" == name)) - { - this.argumentsField = value; - this.argumentsFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("EraseDescription" == name)) - { - this.eraseDescriptionField = Enums.ParseYesNoType(value); - this.eraseDescriptionFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// A Win32 service that runs its own process. - /// - ownProcess, - - /// - /// A Win32 service that shares a process. - /// - shareProcess, - - /// - /// A kernel driver service. This value is not currently supported by the Windows Installer. - /// - kernelDriver, - - /// - /// A file system driver service. This value is not currently supported by the Windows Installer. - /// - systemDriver, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum StartType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The service will start during startup of the system. - /// - auto, - - /// - /// The service will start when the service control manager calls the StartService function. - /// - demand, - - /// - /// The service can no longer be started. - /// - disabled, - - /// - /// The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer. - /// - boot, - - /// - /// The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer. - /// - system, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ErrorControlType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Logs the error and continues with the startup operation. - /// - ignore, - - /// - /// Logs the error, displays a message box and continues the startup operation. - /// - normal, - - /// - /// Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails. - /// - critical, - } - } - - /// - /// Argument used in ServiceControl parent - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceArgument : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Argument used in ServiceControl parent - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceArgument", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Starts, stops, and removes services for parent Component. This element is used to control the state - /// of a service installed by the MSI or MSM file by using the start, stop and remove attributes. - /// For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install, - /// remove the service when the product is uninstalled, and stop the service both on install and uninstall. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceControl : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private InstallUninstallType startField; - - private bool startFieldSet; - - private InstallUninstallType stopField; - - private bool stopFieldSet; - - private InstallUninstallType removeField; - - private bool removeFieldSet; - - private YesNoType waitField; - - private bool waitFieldSet; - - private ISchemaElement parentElement; - - public ServiceControl() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ServiceArgument))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name of the service. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Specifies whether the service should be started by the StartServices action on install, uninstall or both. - /// For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the service will be started only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases. - /// - public InstallUninstallType Start - { - get - { - return this.startField; - } - set - { - this.startFieldSet = true; - this.startField = value; - } - } - - /// - /// Specifies whether the service should be stopped by the StopServices action on install, uninstall or both. - /// For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases. - /// - public InstallUninstallType Stop - { - get - { - return this.stopField; - } - set - { - this.stopFieldSet = true; - this.stopField = value; - } - } - - /// - /// Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both. - /// For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases. - /// - public InstallUninstallType Remove - { - get - { - return this.removeField; - } - set - { - this.removeFieldSet = true; - this.removeField = value; - } - } - - /// - /// Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'. - /// - public YesNoType Wait - { - get - { - return this.waitField; - } - set - { - this.waitFieldSet = true; - this.waitField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ServiceArgument" == childName)) - { - childValue = new ServiceArgument(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceControl", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.startFieldSet) - { - if ((this.startField == InstallUninstallType.install)) - { - writer.WriteAttributeString("Start", "install"); - } - if ((this.startField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("Start", "uninstall"); - } - if ((this.startField == InstallUninstallType.both)) - { - writer.WriteAttributeString("Start", "both"); - } - } - if (this.stopFieldSet) - { - if ((this.stopField == InstallUninstallType.install)) - { - writer.WriteAttributeString("Stop", "install"); - } - if ((this.stopField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("Stop", "uninstall"); - } - if ((this.stopField == InstallUninstallType.both)) - { - writer.WriteAttributeString("Stop", "both"); - } - } - if (this.removeFieldSet) - { - if ((this.removeField == InstallUninstallType.install)) - { - writer.WriteAttributeString("Remove", "install"); - } - if ((this.removeField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("Remove", "uninstall"); - } - if ((this.removeField == InstallUninstallType.both)) - { - writer.WriteAttributeString("Remove", "both"); - } - } - if (this.waitFieldSet) - { - if ((this.waitField == YesNoType.no)) - { - writer.WriteAttributeString("Wait", "no"); - } - if ((this.waitField == YesNoType.yes)) - { - writer.WriteAttributeString("Wait", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Start" == name)) - { - this.startField = Enums.ParseInstallUninstallType(value); - this.startFieldSet = true; - } - if (("Stop" == name)) - { - this.stopField = Enums.ParseInstallUninstallType(value); - this.stopFieldSet = true; - } - if (("Remove" == name)) - { - this.removeField = Enums.ParseInstallUninstallType(value); - this.removeFieldSet = true; - } - if (("Wait" == name)) - { - this.waitField = Enums.ParseYesNoType(value); - this.waitFieldSet = true; - } - } - } - - /// - /// Privilege required by service configured by ServiceConfig parent. Valid values are a - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RequiredPrivilege : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Privilege required by service configured by ServiceConfig parent. Valid values are a - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RequiredPrivilege", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceConfig : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string delayedAutoStartField; - - private bool delayedAutoStartFieldSet; - - private string failureActionsWhenField; - - private bool failureActionsWhenFieldSet; - - private string preShutdownDelayField; - - private bool preShutdownDelayFieldSet; - - private YesNoType onInstallField; - - private bool onInstallFieldSet; - - private YesNoType onReinstallField; - - private bool onReinstallFieldSet; - - private YesNoType onUninstallField; - - private bool onUninstallFieldSet; - - private string serviceNameField; - - private bool serviceNameFieldSet; - - private string serviceSidField; - - private bool serviceSidFieldSet; - - private ISchemaElement parentElement; - - public ServiceConfig() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RequiredPrivilege))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not - /// specified. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute specifies whether an auto-start service should delay its start until after all other auto-start - /// services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that - /// resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured. - /// - public string DelayedAutoStart - { - get - { - return this.delayedAutoStartField; - } - set - { - this.delayedAutoStartFieldSet = true; - this.delayedAutoStartField = value; - } - } - - /// - /// This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError" - /// or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute - /// is not present the setting is not configured. - /// - public string FailureActionsWhen - { - get - { - return this.failureActionsWhenField; - } - set - { - this.failureActionsWhenFieldSet = true; - this.failureActionsWhenField = value; - } - } - - /// - /// This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system - /// shutdown. If this attribute is not present the default value, 3 minutes, is used. - /// - public string PreShutdownDelay - { - get - { - return this.preShutdownDelayField; - } - set - { - this.preShutdownDelayFieldSet = true; - this.preShutdownDelayField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall - /// and OnUninstall. - /// - public YesNoType OnInstall - { - get - { - return this.onInstallField; - } - set - { - this.onInstallFieldSet = true; - this.onInstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall - /// and OnUninstall. - /// - public YesNoType OnReinstall - { - get - { - return this.onReinstallField; - } - set - { - this.onReinstallFieldSet = true; - this.onReinstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall - /// and OnReinstall. - /// - public YesNoType OnUninstall - { - get - { - return this.onUninstallField; - } - set - { - this.onUninstallFieldSet = true; - this.onUninstallField = value; - } - } - - /// - /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under - /// a ServiceInstall element. - /// - public string ServiceName - { - get - { - return this.serviceNameField; - } - set - { - this.serviceNameFieldSet = true; - this.serviceNameField = value; - } - } - - /// - /// Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property - /// that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the - /// setting is not configured. - /// - public string ServiceSid - { - get - { - return this.serviceSidField; - } - set - { - this.serviceSidFieldSet = true; - this.serviceSidField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("RequiredPrivilege" == childName)) - { - childValue = new RequiredPrivilege(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceConfig", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.delayedAutoStartFieldSet) - { - writer.WriteAttributeString("DelayedAutoStart", this.delayedAutoStartField); - } - if (this.failureActionsWhenFieldSet) - { - writer.WriteAttributeString("FailureActionsWhen", this.failureActionsWhenField); - } - if (this.preShutdownDelayFieldSet) - { - writer.WriteAttributeString("PreShutdownDelay", this.preShutdownDelayField); - } - if (this.onInstallFieldSet) - { - if ((this.onInstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnInstall", "no"); - } - if ((this.onInstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnInstall", "yes"); - } - } - if (this.onReinstallFieldSet) - { - if ((this.onReinstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnReinstall", "no"); - } - if ((this.onReinstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnReinstall", "yes"); - } - } - if (this.onUninstallFieldSet) - { - if ((this.onUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnUninstall", "no"); - } - if ((this.onUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnUninstall", "yes"); - } - } - if (this.serviceNameFieldSet) - { - writer.WriteAttributeString("ServiceName", this.serviceNameField); - } - if (this.serviceSidFieldSet) - { - writer.WriteAttributeString("ServiceSid", this.serviceSidField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("DelayedAutoStart" == name)) - { - this.delayedAutoStartField = value; - this.delayedAutoStartFieldSet = true; - } - if (("FailureActionsWhen" == name)) - { - this.failureActionsWhenField = value; - this.failureActionsWhenFieldSet = true; - } - if (("PreShutdownDelay" == name)) - { - this.preShutdownDelayField = value; - this.preShutdownDelayFieldSet = true; - } - if (("OnInstall" == name)) - { - this.onInstallField = Enums.ParseYesNoType(value); - this.onInstallFieldSet = true; - } - if (("OnReinstall" == name)) - { - this.onReinstallField = Enums.ParseYesNoType(value); - this.onReinstallFieldSet = true; - } - if (("OnUninstall" == name)) - { - this.onUninstallField = Enums.ParseYesNoType(value); - this.onUninstallFieldSet = true; - } - if (("ServiceName" == name)) - { - this.serviceNameField = value; - this.serviceNameFieldSet = true; - } - if (("ServiceSid" == name)) - { - this.serviceSidField = value; - this.serviceSidFieldSet = true; - } - } - } - - /// - /// Failure action for a ServiceConfigFailureActions element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Failure : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string delayField; - - private bool delayFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property - /// that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand"). - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Specifies the time in milliseconds to wait before performing the value from the Action attribute. - /// - public string Delay - { - get - { - return this.delayField; - } - set - { - this.delayFieldSet = true; - this.delayField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Failure", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.delayFieldSet) - { - writer.WriteAttributeString("Delay", this.delayField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("Delay" == name)) - { - this.delayField = value; - this.delayFieldSet = true; - } - } - } - - /// - /// Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceConfigFailureActions : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string commandField; - - private bool commandFieldSet; - - private YesNoType onInstallField; - - private bool onInstallFieldSet; - - private YesNoType onReinstallField; - - private bool onReinstallFieldSet; - - private YesNoType onUninstallField; - - private bool onUninstallFieldSet; - - private string rebootMessageField; - - private bool rebootMessageFieldSet; - - private string resetPeriodField; - - private bool resetPeriodFieldSet; - - private string serviceNameField; - - private bool serviceNameFieldSet; - - private ISchemaElement parentElement; - - public ServiceConfigFailureActions() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Failure))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not - /// specified. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears - /// the existing command. If this attribute is not present the setting is not changed. - /// - public string Command - { - get - { - return this.commandField; - } - set - { - this.commandFieldSet = true; - this.commandField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall - /// and OnUninstall. - /// - public YesNoType OnInstall - { - get - { - return this.onInstallField; - } - set - { - this.onInstallFieldSet = true; - this.onInstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall - /// and OnUninstall. - /// - public YesNoType OnReinstall - { - get - { - return this.onReinstallField; - } - set - { - this.onReinstallFieldSet = true; - this.onReinstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall - /// and OnReinstall. - /// - public YesNoType OnUninstall - { - get - { - return this.onUninstallField; - } - set - { - this.onUninstallFieldSet = true; - this.onUninstallField = value; - } - } - - /// - /// Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this - /// attribute is not present the setting is not changed. - /// - public string RebootMessage - { - get - { - return this.rebootMessageField; - } - set - { - this.rebootMessageFieldSet = true; - this.rebootMessageField = value; - } - } - - /// - /// Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset. - /// - public string ResetPeriod - { - get - { - return this.resetPeriodField; - } - set - { - this.resetPeriodFieldSet = true; - this.resetPeriodField = value; - } - } - - /// - /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under - /// a ServiceInstall element. - /// - public string ServiceName - { - get - { - return this.serviceNameField; - } - set - { - this.serviceNameFieldSet = true; - this.serviceNameField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Failure" == childName)) - { - childValue = new Failure(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceConfigFailureActions", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.commandFieldSet) - { - writer.WriteAttributeString("Command", this.commandField); - } - if (this.onInstallFieldSet) - { - if ((this.onInstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnInstall", "no"); - } - if ((this.onInstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnInstall", "yes"); - } - } - if (this.onReinstallFieldSet) - { - if ((this.onReinstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnReinstall", "no"); - } - if ((this.onReinstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnReinstall", "yes"); - } - } - if (this.onUninstallFieldSet) - { - if ((this.onUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnUninstall", "no"); - } - if ((this.onUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnUninstall", "yes"); - } - } - if (this.rebootMessageFieldSet) - { - writer.WriteAttributeString("RebootMessage", this.rebootMessageField); - } - if (this.resetPeriodFieldSet) - { - writer.WriteAttributeString("ResetPeriod", this.resetPeriodField); - } - if (this.serviceNameFieldSet) - { - writer.WriteAttributeString("ServiceName", this.serviceNameField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Command" == name)) - { - this.commandField = value; - this.commandFieldSet = true; - } - if (("OnInstall" == name)) - { - this.onInstallField = Enums.ParseYesNoType(value); - this.onInstallFieldSet = true; - } - if (("OnReinstall" == name)) - { - this.onReinstallField = Enums.ParseYesNoType(value); - this.onReinstallFieldSet = true; - } - if (("OnUninstall" == name)) - { - this.onUninstallField = Enums.ParseYesNoType(value); - this.onUninstallFieldSet = true; - } - if (("RebootMessage" == name)) - { - this.rebootMessageField = value; - this.rebootMessageFieldSet = true; - } - if (("ResetPeriod" == name)) - { - this.resetPeriodField = value; - this.resetPeriodFieldSet = true; - } - if (("ServiceName" == name)) - { - this.serviceNameField = value; - this.serviceNameFieldSet = true; - } - } - } - - /// - /// Environment variables added or removed for the parent component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Environment : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string separatorField; - - private bool separatorFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private PartType partField; - - private bool partFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType systemField; - - private bool systemFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for environment entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name of the environment variable. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The value to set into the environment variable. - /// If this attribute is not set, the environment variable is removed during installation if it exists on the machine. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Optional attribute to change the separator used between values. By default a semicolon is used. - /// - public string Separator - { - get - { - return this.separatorField; - } - set - { - this.separatorFieldSet = true; - this.separatorField = value; - } - } - - /// - /// Specfies whether the environmental variable should be created, set or removed when the parent component is installed. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - public PartType Part - { - get - { - return this.partField; - } - set - { - this.partFieldSet = true; - this.partField = value; - } - } - - /// - /// Specifies that the environment variable should not be removed on uninstall. - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies that the environment variable should be added to the system environment space. The default - /// is 'no' which indicates the environment variable is added to the user environment space. - /// - public YesNoType System - { - get - { - return this.systemField; - } - set - { - this.systemFieldSet = true; - this.systemField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - Environment.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("create" == value)) - { - parsedValue = ActionType.create; - } - else - { - if (("set" == value)) - { - parsedValue = ActionType.set; - } - else - { - if (("remove" == value)) - { - parsedValue = ActionType.remove; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a PartType from a string. - /// - public static PartType ParsePartType(string value) - { - PartType parsedValue; - Environment.TryParsePartType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a PartType from a string. - /// - public static bool TryParsePartType(string value, out PartType parsedValue) - { - parsedValue = PartType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("all" == value)) - { - parsedValue = PartType.all; - } - else - { - if (("first" == value)) - { - parsedValue = PartType.first; - } - else - { - if (("last" == value)) - { - parsedValue = PartType.last; - } - else - { - parsedValue = PartType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Environment", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.separatorFieldSet) - { - writer.WriteAttributeString("Separator", this.separatorField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.create)) - { - writer.WriteAttributeString("Action", "create"); - } - if ((this.actionField == ActionType.set)) - { - writer.WriteAttributeString("Action", "set"); - } - if ((this.actionField == ActionType.remove)) - { - writer.WriteAttributeString("Action", "remove"); - } - } - if (this.partFieldSet) - { - if ((this.partField == PartType.all)) - { - writer.WriteAttributeString("Part", "all"); - } - if ((this.partField == PartType.first)) - { - writer.WriteAttributeString("Part", "first"); - } - if ((this.partField == PartType.last)) - { - writer.WriteAttributeString("Part", "last"); - } - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.systemFieldSet) - { - if ((this.systemField == YesNoType.no)) - { - writer.WriteAttributeString("System", "no"); - } - if ((this.systemField == YesNoType.yes)) - { - writer.WriteAttributeString("System", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Separator" == name)) - { - this.separatorField = value; - this.separatorFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = Environment.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Part" == name)) - { - this.partField = Environment.ParsePartType(value); - this.partFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("System" == name)) - { - this.systemField = Enums.ParseYesNoType(value); - this.systemFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists. - /// - create, - - /// - /// Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation. - /// - set, - - /// - /// Removes the environment variable during an installation. - /// The installer only removes an environment variable during an installation if the name and value - /// of the variable match the entries in the Name and Value attributes. - /// If you want to remove an environment variable, regardless of its value, do not set the Value attribute. - /// - remove, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum PartType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// This value is the entire environmental variable. This is the default. - /// - all, - - /// - /// This value is prefixed. - /// - first, - - /// - /// This value is appended. - /// - last, - } - } - - /// - /// Conditions for components, controls, features, and products. The condition is specified in the inner text of the element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Condition : ISchemaElement, ISetAttributes - { - - private ActionType actionField; - - private bool actionFieldSet; - - private int levelField; - - private bool levelFieldSet; - - private string messageField; - - private bool messageFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Used only under Control elements and is required. Allows specific actions to be applied to a control based - /// on the result of this condition. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Used only under Feature elements and is required. Allows modifying the level of a Feature based on the - /// result of this condition. - /// - public int Level - { - get - { - return this.levelField; - } - set - { - this.levelFieldSet = true; - this.levelField = value; - } - } - - /// - /// Used only under Fragment or Product elements and is required. Set the value to the text to display when the - /// condition fails and the installation must be terminated. - /// - public string Message - { - get - { - return this.messageField; - } - set - { - this.messageFieldSet = true; - this.messageField = value; - } - } - - /// - /// Under a Component element, the condition becomes the condition of the component. Under a Control element, - /// the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition - /// entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - Condition.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("default" == value)) - { - parsedValue = ActionType.@default; - } - else - { - if (("enable" == value)) - { - parsedValue = ActionType.enable; - } - else - { - if (("disable" == value)) - { - parsedValue = ActionType.disable; - } - else - { - if (("hide" == value)) - { - parsedValue = ActionType.hide; - } - else - { - if (("show" == value)) - { - parsedValue = ActionType.show; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Condition", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.@default)) - { - writer.WriteAttributeString("Action", "default"); - } - if ((this.actionField == ActionType.enable)) - { - writer.WriteAttributeString("Action", "enable"); - } - if ((this.actionField == ActionType.disable)) - { - writer.WriteAttributeString("Action", "disable"); - } - if ((this.actionField == ActionType.hide)) - { - writer.WriteAttributeString("Action", "hide"); - } - if ((this.actionField == ActionType.show)) - { - writer.WriteAttributeString("Action", "show"); - } - } - if (this.levelFieldSet) - { - writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); - } - if (this.messageFieldSet) - { - writer.WriteAttributeString("Message", this.messageField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = Condition.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Level" == name)) - { - this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.levelFieldSet = true; - } - if (("Message" == name)) - { - this.messageField = value; - this.messageFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set the Control as the default. Only used under Control elements. - /// - @default, - - /// - /// Enable the Control. Only used under Control elements. - /// - enable, - - /// - /// Disable the Control. Only used under Control elements. - /// - disable, - - /// - /// Hide the Control. Only used under Control elements. - /// - hide, - - /// - /// Display the Control. Only used under Control elements. - /// - show, - } - } - - /// - /// Shared Component to be privately replicated in folder of parent Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IsolateComponent : ISchemaElement, ISetAttributes - { - - private string sharedField; - - private bool sharedFieldSet; - - private ISchemaElement parentElement; - - /// - /// Shared Component for this application Component. - /// - public string Shared - { - get - { - return this.sharedField; - } - set - { - this.sharedFieldSet = true; - this.sharedField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IsolateComponent", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sharedFieldSet) - { - writer.WriteAttributeString("Shared", this.sharedField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Shared" == name)) - { - this.sharedField = value; - this.sharedFieldSet = true; - } - } - } - - /// - /// Disk cost to reserve in a folder for running locally and/or from source. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ReserveCost : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private int runFromSourceField; - - private bool runFromSourceFieldSet; - - private int runLocalField; - - private bool runLocalFieldSet; - - private ISchemaElement parentElement; - - /// - /// A primary key that uniquely identifies this ReserveCost entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory. - /// If this attribute is not set, it will default to the directory of parent component. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// The number of bytes of disk space to reserve if the component is installed to run from source. - /// - public int RunFromSource - { - get - { - return this.runFromSourceField; - } - set - { - this.runFromSourceFieldSet = true; - this.runFromSourceField = value; - } - } - - /// - /// The number of bytes of disk space to reserve if the component is installed to run locally. - /// - public int RunLocal - { - get - { - return this.runLocalField; - } - set - { - this.runLocalFieldSet = true; - this.runLocalField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ReserveCost", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.runFromSourceFieldSet) - { - writer.WriteAttributeString("RunFromSource", this.runFromSourceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.runLocalFieldSet) - { - writer.WriteAttributeString("RunLocal", this.runLocalField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("RunFromSource" == name)) - { - this.runFromSourceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.runFromSourceFieldSet = true; - } - if (("RunLocal" == name)) - { - this.runLocalField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.runLocalFieldSet = true; - } - } - } - - /// - /// Component for parent Directory - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Component : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private int comPlusFlagsField; - - private bool comPlusFlagsFieldSet; - - private YesNoType disableRegistryReflectionField; - - private bool disableRegistryReflectionFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string featureField; - - private bool featureFieldSet; - - private string guidField; - - private bool guidFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private LocationType locationField; - - private bool locationFieldSet; - - private YesNoType multiInstanceField; - - private bool multiInstanceFieldSet; - - private YesNoType neverOverwriteField; - - private bool neverOverwriteFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType sharedField; - - private bool sharedFieldSet; - - private YesNoType sharedDllRefCountField; - - private bool sharedDllRefCountFieldSet; - - private YesNoType transitiveField; - - private bool transitiveFieldSet; - - private YesNoType uninstallWhenSupersededField; - - private bool uninstallWhenSupersededFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private ISchemaElement parentElement; - - public Component() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Category))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolder))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Environment))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Extension))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(File))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IniFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponent))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDataSource))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolder))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryKey))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ReserveCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceControl))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceInstall))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Component identifier; this is the primary key for identifying components. If omitted, - /// the compiler defaults the identifier to the identifier of the resource that is the - /// explicit keypath of the component (for example, a child File element with KeyPath - /// attribute with value 'yes'. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to create a ComPlus entry. The value should be the export flags used - /// during the generation of the .msi file. For more information see the COM+ documentation - /// in the Platform SDK. - /// - public int ComPlusFlags - { - get - { - return this.comPlusFlagsField; - } - set - { - this.comPlusFlagsFieldSet = true; - this.comPlusFlagsField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to disable registry reflection on all existing and - /// new registry keys affected by this component. - /// When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key - /// being accessed by the component. - /// This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems. - /// - public YesNoType DisableRegistryReflection - { - get - { - return this.disableRegistryReflectionField; - } - set - { - this.disableRegistryReflectionFieldSet = true; - this.disableRegistryReflectionField = value; - } - } - - /// - /// Sets the Directory of the Component. If this element is nested under a Directory element, - /// this value defaults to the value of the parent Directory/@Id. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// This attribute provides a default DiskId attribute for all child File elements. Specifying - /// the DiskId on a Component element will override any DiskId attributes set by parent Directory - /// or DirectoryRef elements. See the File element's DiskId attribute for more information about - /// the purpose of the DiskId. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Identifies a feature to which this component belongs, as a shorthand for a child - /// ComponentRef element of the Feature element. The value of this attribute should - /// correspond to the Id attribute of a Feature element authored elsewhere. Note that - /// a single component can belong to multiple features but this attribute allows you - /// to specify only a single feature. - /// - public string Feature - { - get - { - return this.featureField; - } - set - { - this.featureFieldSet = true; - this.featureField = value; - } - } - - /// - /// This value should be a guid that uniquely identifies this component's contents, language, platform, and version. - /// If omitted, the default value is '*' which indicates that the linker should generate a stable guid. - /// Generatable guids are supported only for components with a single file as the component's keypath - /// or no files and a registry value as the keypath. - /// It's also possible to set the value to an empty string to specify an unmanaged component. - /// Unmanaged components are a security vulnerability because the component cannot be removed or repaired - /// by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should - /// always be specified for any component which contains resources that may need to be patched in the future. - /// - public string Guid - { - get - { - return this.guidField; - } - set - { - this.guidFieldSet = true; - this.guidField = value; - } - } - - /// - /// If this attribute's value is set to 'yes', then the Directory of this Component is used - /// as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the - /// KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the - /// Component or for a child Registry value or File, WiX will look at the child elements under the - /// Component in sequential order and try to automatically select one of them as a key path. Allowing - /// WiX to automatically select a key path can be dangerous because adding or removing child elements - /// under the Component can inadvertantly cause the key path to change, which can lead to - /// installation problems. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - /// - /// Optional value that specifies the location that the component can be run from. - /// - public LocationType Location - { - get - { - return this.locationField; - } - set - { - this.locationFieldSet = true; - this.locationField = value; - } - } - - /// - /// If this attribute is set to 'yes', a new Component/@Guid will be generated for each - /// instance transform. Ensure that all of the resources contained in a multi-instance - /// Component will be installed to different paths based on the instance Property; otherwise, - /// the Component Rules will be violated. - /// - public YesNoType MultiInstance - { - get - { - return this.multiInstanceField; - } - set - { - this.multiInstanceFieldSet = true; - this.multiInstanceField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer does not install or reinstall the - /// component if a key path file or a key path registry entry for the component already - /// exists. The application does register itself as a client of the component. Use this - /// flag only for components that are being registered by the Registry table. Do not use - /// this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and - /// Verb tables. - /// - public YesNoType NeverOverwrite - { - get - { - return this.neverOverwriteField; - } - set - { - this.neverOverwriteFieldSet = true; - this.neverOverwriteField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer does not remove the component during - /// an uninstall. The installer registers an extra system client for the component in - /// the Windows Installer registry settings (which basically just means that at least one - /// product is always referencing this component). Note that this option differs from the - /// behavior of not setting a guid because although the component is permanent, it is still - /// patchable (because Windows Installer still tracks it), it's just not uninstallable. - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// If this attribute's value is set to 'yes', enables advanced patching semantics for - /// Components that are shared across multiple Products. Specifically, the Windows Installer - /// will cache the shared files to improve patch uninstall. This functionality is available - /// in Windows Installer 4.5 and later. - /// - public YesNoType Shared - { - get - { - return this.sharedField; - } - set - { - this.sharedFieldSet = true; - this.sharedField = value; - } - } - - /// - /// If this attribute's value is set to 'yes', the installer increments the reference count - /// in the shared DLL registry of the component's key file. If this bit is not set, the - /// installer increments the reference count only if the reference count already exists. - /// - public YesNoType SharedDllRefCount - { - get - { - return this.sharedDllRefCountField; - } - set - { - this.sharedDllRefCountFieldSet = true; - this.sharedDllRefCountField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer reevaluates the value of the statement - /// in the Condition upon a reinstall. If the value was previously False and has changed to - /// True, the installer installs the component. If the value was previously True and has - /// changed to False, the installer removes the component even if the component has other - /// products as clients. - /// - public YesNoType Transitive - { - get - { - return this.transitiveField; - } - set - { - this.transitiveFieldSet = true; - this.transitiveField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer will uninstall the Component's files - /// and registry keys when it is superseded by a patch. This functionality is available in - /// Windows Installer 4.5 and later. - /// - public YesNoType UninstallWhenSuperseded - { - get - { - return this.uninstallWhenSupersededField; - } - set - { - this.uninstallWhenSupersededFieldSet = true; - this.uninstallWhenSupersededField = value; - } - } - - /// - /// Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates - /// the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit - /// component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute. - /// The default value is based on the platform set by the -arch switch to candle.exe - /// or the InstallerPlatform property in a .wixproj MSBuild project: - /// For x86 and ARM, the default value is 'no'. - /// For x64 and IA64, the default value is 'yes'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Category" == childName)) - { - childValue = new Category(); - } - if (("Class" == childName)) - { - childValue = new Class(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("CopyFile" == childName)) - { - childValue = new CopyFile(); - } - if (("CreateFolder" == childName)) - { - childValue = new CreateFolder(); - } - if (("Environment" == childName)) - { - childValue = new Environment(); - } - if (("Extension" == childName)) - { - childValue = new Extension(); - } - if (("File" == childName)) - { - childValue = new File(); - } - if (("IniFile" == childName)) - { - childValue = new IniFile(); - } - if (("Interface" == childName)) - { - childValue = new Interface(); - } - if (("IsolateComponent" == childName)) - { - childValue = new IsolateComponent(); - } - if (("ODBCDataSource" == childName)) - { - childValue = new ODBCDataSource(); - } - if (("ODBCDriver" == childName)) - { - childValue = new ODBCDriver(); - } - if (("ODBCTranslator" == childName)) - { - childValue = new ODBCTranslator(); - } - if (("ProgId" == childName)) - { - childValue = new ProgId(); - } - if (("Registry" == childName)) - { - childValue = new Registry(); - } - if (("RegistryKey" == childName)) - { - childValue = new RegistryKey(); - } - if (("RegistryValue" == childName)) - { - childValue = new RegistryValue(); - } - if (("RemoveFile" == childName)) - { - childValue = new RemoveFile(); - } - if (("RemoveFolder" == childName)) - { - childValue = new RemoveFolder(); - } - if (("RemoveRegistryKey" == childName)) - { - childValue = new RemoveRegistryKey(); - } - if (("RemoveRegistryValue" == childName)) - { - childValue = new RemoveRegistryValue(); - } - if (("ReserveCost" == childName)) - { - childValue = new ReserveCost(); - } - if (("ServiceControl" == childName)) - { - childValue = new ServiceControl(); - } - if (("ServiceConfig" == childName)) - { - childValue = new ServiceConfig(); - } - if (("ServiceConfigFailureActions" == childName)) - { - childValue = new ServiceConfigFailureActions(); - } - if (("ServiceInstall" == childName)) - { - childValue = new ServiceInstall(); - } - if (("Shortcut" == childName)) - { - childValue = new Shortcut(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("TypeLib" == childName)) - { - childValue = new TypeLib(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a LocationType from a string. - /// - public static LocationType ParseLocationType(string value) - { - LocationType parsedValue; - Component.TryParseLocationType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a LocationType from a string. - /// - public static bool TryParseLocationType(string value, out LocationType parsedValue) - { - parsedValue = LocationType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("local" == value)) - { - parsedValue = LocationType.local; - } - else - { - if (("source" == value)) - { - parsedValue = LocationType.source; - } - else - { - if (("either" == value)) - { - parsedValue = LocationType.either; - } - else - { - parsedValue = LocationType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Component", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.comPlusFlagsFieldSet) - { - writer.WriteAttributeString("ComPlusFlags", this.comPlusFlagsField.ToString(CultureInfo.InvariantCulture)); - } - if (this.disableRegistryReflectionFieldSet) - { - if ((this.disableRegistryReflectionField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRegistryReflection", "no"); - } - if ((this.disableRegistryReflectionField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRegistryReflection", "yes"); - } - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.featureFieldSet) - { - writer.WriteAttributeString("Feature", this.featureField); - } - if (this.guidFieldSet) - { - writer.WriteAttributeString("Guid", this.guidField); - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - if (this.locationFieldSet) - { - if ((this.locationField == LocationType.local)) - { - writer.WriteAttributeString("Location", "local"); - } - if ((this.locationField == LocationType.source)) - { - writer.WriteAttributeString("Location", "source"); - } - if ((this.locationField == LocationType.either)) - { - writer.WriteAttributeString("Location", "either"); - } - } - if (this.multiInstanceFieldSet) - { - if ((this.multiInstanceField == YesNoType.no)) - { - writer.WriteAttributeString("MultiInstance", "no"); - } - if ((this.multiInstanceField == YesNoType.yes)) - { - writer.WriteAttributeString("MultiInstance", "yes"); - } - } - if (this.neverOverwriteFieldSet) - { - if ((this.neverOverwriteField == YesNoType.no)) - { - writer.WriteAttributeString("NeverOverwrite", "no"); - } - if ((this.neverOverwriteField == YesNoType.yes)) - { - writer.WriteAttributeString("NeverOverwrite", "yes"); - } - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.sharedFieldSet) - { - if ((this.sharedField == YesNoType.no)) - { - writer.WriteAttributeString("Shared", "no"); - } - if ((this.sharedField == YesNoType.yes)) - { - writer.WriteAttributeString("Shared", "yes"); - } - } - if (this.sharedDllRefCountFieldSet) - { - if ((this.sharedDllRefCountField == YesNoType.no)) - { - writer.WriteAttributeString("SharedDllRefCount", "no"); - } - if ((this.sharedDllRefCountField == YesNoType.yes)) - { - writer.WriteAttributeString("SharedDllRefCount", "yes"); - } - } - if (this.transitiveFieldSet) - { - if ((this.transitiveField == YesNoType.no)) - { - writer.WriteAttributeString("Transitive", "no"); - } - if ((this.transitiveField == YesNoType.yes)) - { - writer.WriteAttributeString("Transitive", "yes"); - } - } - if (this.uninstallWhenSupersededFieldSet) - { - if ((this.uninstallWhenSupersededField == YesNoType.no)) - { - writer.WriteAttributeString("UninstallWhenSuperseded", "no"); - } - if ((this.uninstallWhenSupersededField == YesNoType.yes)) - { - writer.WriteAttributeString("UninstallWhenSuperseded", "yes"); - } - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ComPlusFlags" == name)) - { - this.comPlusFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.comPlusFlagsFieldSet = true; - } - if (("DisableRegistryReflection" == name)) - { - this.disableRegistryReflectionField = Enums.ParseYesNoType(value); - this.disableRegistryReflectionFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("Feature" == name)) - { - this.featureField = value; - this.featureFieldSet = true; - } - if (("Guid" == name)) - { - this.guidField = value; - this.guidFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - if (("Location" == name)) - { - this.locationField = Component.ParseLocationType(value); - this.locationFieldSet = true; - } - if (("MultiInstance" == name)) - { - this.multiInstanceField = Enums.ParseYesNoType(value); - this.multiInstanceFieldSet = true; - } - if (("NeverOverwrite" == name)) - { - this.neverOverwriteField = Enums.ParseYesNoType(value); - this.neverOverwriteFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Shared" == name)) - { - this.sharedField = Enums.ParseYesNoType(value); - this.sharedFieldSet = true; - } - if (("SharedDllRefCount" == name)) - { - this.sharedDllRefCountField = Enums.ParseYesNoType(value); - this.sharedDllRefCountFieldSet = true; - } - if (("Transitive" == name)) - { - this.transitiveField = Enums.ParseYesNoType(value); - this.transitiveFieldSet = true; - } - if (("UninstallWhenSuperseded" == name)) - { - this.uninstallWhenSupersededField = Enums.ParseYesNoType(value); - this.uninstallWhenSupersededFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum LocationType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set). - /// - local, - - /// - /// Enforces that the component can only be run from the source (it cannot be run from the user's computer). - /// - source, - - /// - /// Allows the component to run from source or locally. - /// - either, - } - } - - /// - /// Groups together multiple components to be used in other locations. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private ISchemaElement parentElement; - - public ComponentGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the ComponentGroup. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Sets the default directory identifier for child Component elements. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// Used to set the default file system source for child Component elements. For more information, see - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - } - } - - /// - /// Create a reference to a ComponentGroup in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the ComponentGroup to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to make the parent feature of this component - /// the primary feature for this component. Components may belong to multiple features. - /// By designating a feature as the primary feature of a component, you ensure that - /// whenever a component is selected for install-on-demand (IOD), the primary feature - /// will be the one to install it. This attribute should only be set if a component - /// actually nests under multiple features. If a component nests under only one feature, - /// that feature is the primary feature for the component. You cannot set more than one - /// feature as the primary feature of a given component. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class All : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("All", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Used only for PatchFamilies to include only a binary table entry in a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BinaryRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Binary element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BinaryRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Used only for PatchFamilies to include only a icon table entry in a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IconRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Icon element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IconRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to a Feature element in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Component element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to make the parent feature of this component - /// the primary feature for this component. Components may belong to multiple features. - /// By designating a feature as the primary feature of a component, you ensure that - /// whenever a component is selected for install-on-demand (IOD), the primary feature - /// will be the one to install it. This attribute should only be set if a component - /// actually nests under multiple features. If a component nests under only one feature, - /// that feature is the primary feature for the component. You cannot set more than one - /// feature as the primary feature of a given component. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Merge directive to bring in a merge module that will be redirected to the parent directory. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Merge : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private YesNoType fileCompressionField; - - private bool fileCompressionFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - public Merge() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ConfigurationData))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The value of this attribute should correspond to the Id attribute of a - /// Media element authored elsewhere. By creating this connection between the merge module and Media - /// element, you set the packaging options to the values specified in the Media - /// element (values such as compression level, cab embedding, etc...). - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Specifies if the files in the merge module should be compressed. - /// - public YesNoType FileCompression - { - get - { - return this.fileCompressionField; - } - set - { - this.fileCompressionFieldSet = true; - this.fileCompressionField = value; - } - } - - /// - /// Specifies the decimal LCID or localization token for the language to merge the Module in as. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// Path to the source location of the merge module. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ConfigurationData" == childName)) - { - childValue = new ConfigurationData(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Merge", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.fileCompressionFieldSet) - { - if ((this.fileCompressionField == YesNoType.no)) - { - writer.WriteAttributeString("FileCompression", "no"); - } - if ((this.fileCompressionField == YesNoType.yes)) - { - writer.WriteAttributeString("FileCompression", "yes"); - } - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("FileCompression" == name)) - { - this.fileCompressionField = Enums.ParseYesNoType(value); - this.fileCompressionFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - /// - /// Merge reference to connect a Merge Module to parent Feature - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MergeRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The unique identifier for the Merge element to be referenced. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MergeRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Data to use as input to a configurable merge module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ConfigurationData : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Name of the item in the ModuleConfiguration table. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Value to be passed to configurable merge module. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ConfigurationData", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Directory layout for the product. Also specifies the mappings between source and target directories. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Directory : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string componentGuidGenerationSeedField; - - private bool componentGuidGenerationSeedFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string fileSourceField; - - private bool fileSourceFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private string shortSourceNameField; - - private bool shortSourceNameFieldSet; - - private string sourceNameField; - - private bool sourceNameFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - public Directory() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// This value is the unique identifier of the directory entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*") - /// is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder). - /// It is recommended that this attribute be avoided and that developers install their Components under standard - /// directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is - /// important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until - /// (and must be changed when) the path to that directory, including itself and all parent directories, changes. - /// - public string ComponentGuidGenerationSeed - { - get - { - return this.componentGuidGenerationSeedField; - } - set - { - this.componentGuidGenerationSeedFieldSet = true; - this.componentGuidGenerationSeedField = value; - } - } - - /// - /// Sets the default disk identifier for the files contained in this directory. - /// This attribute's value may be overridden by a child Component, Directory, - /// Merge or File element. See the File or Merge elements' DiskId attribute for - /// more information. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Used to set the file system source for this directory's child elements. For more information, see - /// - public string FileSource - { - get - { - return this.fileSourceField; - } - set - { - this.fileSourceFieldSet = true; - this.fileSourceField = value; - } - } - - /// - /// The name of the directory. - /// - /// Do not specify this attribute if this directory represents - /// the same directory as the parent (see the Windows Installer SDK's - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short name of the directory in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short directory names - /// or the user wants to manually specify the short directory name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// The short name of the directory on the source media in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short directory names - /// or the user wants to manually specify the short source directory name. - /// - public string ShortSourceName - { - get - { - return this.shortSourceNameField; - } - set - { - this.shortSourceNameFieldSet = true; - this.shortSourceNameField = value; - } - } - - /// - /// The name of the directory on the source media. - /// If this attribute is not specified, Windows Installer will default to the Name attribute. - /// - /// In prior versions of the WiX toolset, this attribute specified the short source directory name. - /// This attribute's value may now be either a short or long directory name. - /// If a short directory name is specified, the ShortSourceName attribute may not be specified. - /// If a long directory name is specified, the LongSource attribute may not be specified. - /// Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to - /// allow WiX to attempt to generate a unique short directory name. - /// However, if this name collides with another directory or you wish to manually specify - /// the short directory name, then the ShortSourceName attribute may be specified. - /// - public string SourceName - { - get - { - return this.sourceNameField; - } - set - { - this.sourceNameFieldSet = true; - this.sourceNameField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("Merge" == childName)) - { - childValue = new Merge(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Directory", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.componentGuidGenerationSeedFieldSet) - { - writer.WriteAttributeString("ComponentGuidGenerationSeed", this.componentGuidGenerationSeedField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.fileSourceFieldSet) - { - writer.WriteAttributeString("FileSource", this.fileSourceField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.shortSourceNameFieldSet) - { - writer.WriteAttributeString("ShortSourceName", this.shortSourceNameField); - } - if (this.sourceNameFieldSet) - { - writer.WriteAttributeString("SourceName", this.sourceNameField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ComponentGuidGenerationSeed" == name)) - { - this.componentGuidGenerationSeedField = value; - this.componentGuidGenerationSeedFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("FileSource" == name)) - { - this.fileSourceField = value; - this.fileSourceFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("ShortSourceName" == name)) - { - this.shortSourceNameField = value; - this.shortSourceNameFieldSet = true; - } - if (("SourceName" == name)) - { - this.sourceNameField = value; - this.sourceNameFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - /// - /// Create a reference to a Directory element in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DirectoryRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string fileSourceField; - - private bool fileSourceFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - public DirectoryRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the Directory element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Sets the default disk identifier for the files contained in this directory. - /// This attribute's value may be overridden by a child Component, Directory, - /// Merge or File element. See the File or Merge elements' DiskId attribute for - /// more information. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Used to set the file system source for this DirectoryRef's child elements. For more information, see - /// - public string FileSource - { - get - { - return this.fileSourceField; - } - set - { - this.fileSourceFieldSet = true; - this.fileSourceField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("Merge" == childName)) - { - childValue = new Merge(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DirectoryRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.fileSourceFieldSet) - { - writer.WriteAttributeString("FileSource", this.fileSourceField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("FileSource" == name)) - { - this.fileSourceField = value; - this.fileSourceFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UpgradeVersion : ISchemaElement, ISetAttributes - { - - private string minimumField; - - private bool minimumFieldSet; - - private string maximumField; - - private bool maximumFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string removeFeaturesField; - - private bool removeFeaturesFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private YesNoType migrateFeaturesField; - - private bool migrateFeaturesFieldSet; - - private YesNoType onlyDetectField; - - private bool onlyDetectFieldSet; - - private YesNoType ignoreRemoveFailureField; - - private bool ignoreRemoveFailureFieldSet; - - private YesNoType includeMinimumField; - - private bool includeMinimumFieldSet; - - private YesNoType includeMaximumField; - - private bool includeMaximumFieldSet; - - private YesNoType excludeLanguagesField; - - private bool excludeLanguagesFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. - /// - public string Minimum - { - get - { - return this.minimumField; - } - set - { - this.minimumFieldSet = true; - this.minimumField = value; - } - } - - /// - /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. - /// - public string Maximum - { - get - { - return this.maximumField; - } - set - { - this.maximumFieldSet = true; - this.maximumField = value; - } - } - - /// - /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty. - /// - public string RemoveFeatures - { - get - { - return this.removeFeaturesField; - } - set - { - this.removeFeaturesFieldSet = true; - this.removeFeaturesField = value; - } - } - - /// - /// When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action. - /// - public YesNoType MigrateFeatures - { - get - { - return this.migrateFeaturesField; - } - set - { - this.migrateFeaturesFieldSet = true; - this.migrateFeaturesField = value; - } - } - - /// - /// Set to "yes" to detect products and applications but do not uninstall. - /// - public YesNoType OnlyDetect - { - get - { - return this.onlyDetectField; - } - set - { - this.onlyDetectFieldSet = true; - this.onlyDetectField = value; - } - } - - /// - /// Set to "yes" to continue installation upon failure to remove a product or application. - /// - public YesNoType IgnoreRemoveFailure - { - get - { - return this.ignoreRemoveFailureField; - } - set - { - this.ignoreRemoveFailureFieldSet = true; - this.ignoreRemoveFailureField = value; - } - } - - /// - /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. - /// - public YesNoType IncludeMinimum - { - get - { - return this.includeMinimumField; - } - set - { - this.includeMinimumFieldSet = true; - this.includeMinimumField = value; - } - } - - /// - /// Set to "yes" to make the range of versions detected include the value specified in Maximum. - /// - public YesNoType IncludeMaximum - { - get - { - return this.includeMaximumField; - } - set - { - this.includeMaximumFieldSet = true; - this.includeMaximumField = value; - } - } - - /// - /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. - /// - public YesNoType ExcludeLanguages - { - get - { - return this.excludeLanguagesField; - } - set - { - this.excludeLanguagesFieldSet = true; - this.excludeLanguagesField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UpgradeVersion", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.minimumFieldSet) - { - writer.WriteAttributeString("Minimum", this.minimumField); - } - if (this.maximumFieldSet) - { - writer.WriteAttributeString("Maximum", this.maximumField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.removeFeaturesFieldSet) - { - writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.migrateFeaturesFieldSet) - { - if ((this.migrateFeaturesField == YesNoType.no)) - { - writer.WriteAttributeString("MigrateFeatures", "no"); - } - if ((this.migrateFeaturesField == YesNoType.yes)) - { - writer.WriteAttributeString("MigrateFeatures", "yes"); - } - } - if (this.onlyDetectFieldSet) - { - if ((this.onlyDetectField == YesNoType.no)) - { - writer.WriteAttributeString("OnlyDetect", "no"); - } - if ((this.onlyDetectField == YesNoType.yes)) - { - writer.WriteAttributeString("OnlyDetect", "yes"); - } - } - if (this.ignoreRemoveFailureFieldSet) - { - if ((this.ignoreRemoveFailureField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "no"); - } - if ((this.ignoreRemoveFailureField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); - } - } - if (this.includeMinimumFieldSet) - { - if ((this.includeMinimumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMinimum", "no"); - } - if ((this.includeMinimumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMinimum", "yes"); - } - } - if (this.includeMaximumFieldSet) - { - if ((this.includeMaximumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMaximum", "no"); - } - if ((this.includeMaximumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMaximum", "yes"); - } - } - if (this.excludeLanguagesFieldSet) - { - if ((this.excludeLanguagesField == YesNoType.no)) - { - writer.WriteAttributeString("ExcludeLanguages", "no"); - } - if ((this.excludeLanguagesField == YesNoType.yes)) - { - writer.WriteAttributeString("ExcludeLanguages", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Minimum" == name)) - { - this.minimumField = value; - this.minimumFieldSet = true; - } - if (("Maximum" == name)) - { - this.maximumField = value; - this.maximumFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("RemoveFeatures" == name)) - { - this.removeFeaturesField = value; - this.removeFeaturesFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("MigrateFeatures" == name)) - { - this.migrateFeaturesField = Enums.ParseYesNoType(value); - this.migrateFeaturesFieldSet = true; - } - if (("OnlyDetect" == name)) - { - this.onlyDetectField = Enums.ParseYesNoType(value); - this.onlyDetectFieldSet = true; - } - if (("IgnoreRemoveFailure" == name)) - { - this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); - this.ignoreRemoveFailureFieldSet = true; - } - if (("IncludeMinimum" == name)) - { - this.includeMinimumField = Enums.ParseYesNoType(value); - this.includeMinimumFieldSet = true; - } - if (("IncludeMaximum" == name)) - { - this.includeMaximumField = Enums.ParseYesNoType(value); - this.includeMaximumFieldSet = true; - } - if (("ExcludeLanguages" == name)) - { - this.excludeLanguagesField = Enums.ParseYesNoType(value); - this.excludeLanguagesFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Upgrade info for a particular UpgradeCode - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Upgrade : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public Upgrade() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeVersion))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("UpgradeVersion" == childName)) - { - childValue = new UpgradeVersion(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Upgrade", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more - /// detailed information on the myriad installation options for a feature. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Feature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private AbsentType absentField; - - private bool absentFieldSet; - - private AllowAdvertiseType allowAdvertiseField; - - private bool allowAdvertiseFieldSet; - - private string configurableDirectoryField; - - private bool configurableDirectoryFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string displayField; - - private bool displayFieldSet; - - private InstallDefaultType installDefaultField; - - private bool installDefaultFieldSet; - - private int levelField; - - private bool levelFieldSet; - - private string titleField; - - private bool titleFieldSet; - - private TypicalDefaultType typicalDefaultField; - - private bool typicalDefaultFieldSet; - - private ISchemaElement parentElement; - - public Feature() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier of the feature. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute determines if a user will have the option to set a feature to absent in the user interface. - /// - public AbsentType Absent - { - get - { - return this.absentField; - } - set - { - this.absentFieldSet = true; - this.absentField = value; - } - } - - /// - /// This attribute determines the possible advertise states for this feature. - /// - public AllowAdvertiseType AllowAdvertise - { - get - { - return this.allowAdvertiseField; - } - set - { - this.allowAdvertiseFieldSet = true; - this.allowAdvertiseField = value; - } - } - - /// - /// Specify the Id of a Directory that can be configured by the user at installation time. This identifier - /// must be a public property and therefore completely uppercase. - /// - public string ConfigurableDirectory - { - get - { - return this.configurableDirectoryField; - } - set - { - this.configurableDirectoryFieldSet = true; - this.configurableDirectoryField = value; - } - } - - /// - /// Longer string of text describing the feature. This localizable string is displayed by the - /// Text Control of the Selection Dialog. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Determines the initial display of this feature in the feature tree. - /// This attribute's value should be one of the following: - /// - public string Display - { - get - { - return this.displayField; - } - set - { - this.displayFieldSet = true; - this.displayField = value; - } - } - - /// - /// This attribute determines the default install/run location of a feature. This attribute cannot be specified - /// if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature - /// to follow the parent installation state and simultaneously favor a particular installation state just for this feature. - /// - public InstallDefaultType InstallDefault - { - get - { - return this.installDefaultField; - } - set - { - this.installDefaultFieldSet = true; - this.installDefaultField = value; - } - } - - /// - /// Sets the install level of this feature. A value of 0 will disable the feature. Processing the - /// Condition Table can modify the level value (this is set via the Condition child element). The - /// default value is "1". - /// - public int Level - { - get - { - return this.levelField; - } - set - { - this.levelFieldSet = true; - this.levelField = value; - } - } - - /// - /// Short string of text identifying the feature. This string is listed as an item by the - /// SelectionTree control of the Selection Dialog. - /// - public string Title - { - get - { - return this.titleField; - } - set - { - this.titleFieldSet = true; - this.titleField = value; - } - } - - /// - /// This attribute determines the default advertise state of the feature. - /// - public TypicalDefaultType TypicalDefault - { - get - { - return this.typicalDefaultField; - } - set - { - this.typicalDefaultFieldSet = true; - this.typicalDefaultField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("MergeRef" == childName)) - { - childValue = new MergeRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a AbsentType from a string. - /// - public static AbsentType ParseAbsentType(string value) - { - AbsentType parsedValue; - Feature.TryParseAbsentType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a AbsentType from a string. - /// - public static bool TryParseAbsentType(string value, out AbsentType parsedValue) - { - parsedValue = AbsentType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("allow" == value)) - { - parsedValue = AbsentType.allow; - } - else - { - if (("disallow" == value)) - { - parsedValue = AbsentType.disallow; - } - else - { - parsedValue = AbsentType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a AllowAdvertiseType from a string. - /// - public static AllowAdvertiseType ParseAllowAdvertiseType(string value) - { - AllowAdvertiseType parsedValue; - Feature.TryParseAllowAdvertiseType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a AllowAdvertiseType from a string. - /// - public static bool TryParseAllowAdvertiseType(string value, out AllowAdvertiseType parsedValue) - { - parsedValue = AllowAdvertiseType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("no" == value)) - { - parsedValue = AllowAdvertiseType.no; - } - else - { - if (("system" == value)) - { - parsedValue = AllowAdvertiseType.system; - } - else - { - if (("yes" == value)) - { - parsedValue = AllowAdvertiseType.yes; - } - else - { - parsedValue = AllowAdvertiseType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a InstallDefaultType from a string. - /// - public static InstallDefaultType ParseInstallDefaultType(string value) - { - InstallDefaultType parsedValue; - Feature.TryParseInstallDefaultType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallDefaultType from a string. - /// - public static bool TryParseInstallDefaultType(string value, out InstallDefaultType parsedValue) - { - parsedValue = InstallDefaultType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("followParent" == value)) - { - parsedValue = InstallDefaultType.followParent; - } - else - { - if (("local" == value)) - { - parsedValue = InstallDefaultType.local; - } - else - { - if (("source" == value)) - { - parsedValue = InstallDefaultType.source; - } - else - { - parsedValue = InstallDefaultType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a TypicalDefaultType from a string. - /// - public static TypicalDefaultType ParseTypicalDefaultType(string value) - { - TypicalDefaultType parsedValue; - Feature.TryParseTypicalDefaultType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypicalDefaultType from a string. - /// - public static bool TryParseTypicalDefaultType(string value, out TypicalDefaultType parsedValue) - { - parsedValue = TypicalDefaultType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("advertise" == value)) - { - parsedValue = TypicalDefaultType.advertise; - } - else - { - if (("install" == value)) - { - parsedValue = TypicalDefaultType.install; - } - else - { - parsedValue = TypicalDefaultType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Feature", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.absentFieldSet) - { - if ((this.absentField == AbsentType.allow)) - { - writer.WriteAttributeString("Absent", "allow"); - } - if ((this.absentField == AbsentType.disallow)) - { - writer.WriteAttributeString("Absent", "disallow"); - } - } - if (this.allowAdvertiseFieldSet) - { - if ((this.allowAdvertiseField == AllowAdvertiseType.no)) - { - writer.WriteAttributeString("AllowAdvertise", "no"); - } - if ((this.allowAdvertiseField == AllowAdvertiseType.system)) - { - writer.WriteAttributeString("AllowAdvertise", "system"); - } - if ((this.allowAdvertiseField == AllowAdvertiseType.yes)) - { - writer.WriteAttributeString("AllowAdvertise", "yes"); - } - } - if (this.configurableDirectoryFieldSet) - { - writer.WriteAttributeString("ConfigurableDirectory", this.configurableDirectoryField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.displayFieldSet) - { - writer.WriteAttributeString("Display", this.displayField); - } - if (this.installDefaultFieldSet) - { - if ((this.installDefaultField == InstallDefaultType.followParent)) - { - writer.WriteAttributeString("InstallDefault", "followParent"); - } - if ((this.installDefaultField == InstallDefaultType.local)) - { - writer.WriteAttributeString("InstallDefault", "local"); - } - if ((this.installDefaultField == InstallDefaultType.source)) - { - writer.WriteAttributeString("InstallDefault", "source"); - } - } - if (this.levelFieldSet) - { - writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); - } - if (this.titleFieldSet) - { - writer.WriteAttributeString("Title", this.titleField); - } - if (this.typicalDefaultFieldSet) - { - if ((this.typicalDefaultField == TypicalDefaultType.advertise)) - { - writer.WriteAttributeString("TypicalDefault", "advertise"); - } - if ((this.typicalDefaultField == TypicalDefaultType.install)) - { - writer.WriteAttributeString("TypicalDefault", "install"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Absent" == name)) - { - this.absentField = Feature.ParseAbsentType(value); - this.absentFieldSet = true; - } - if (("AllowAdvertise" == name)) - { - this.allowAdvertiseField = Feature.ParseAllowAdvertiseType(value); - this.allowAdvertiseFieldSet = true; - } - if (("ConfigurableDirectory" == name)) - { - this.configurableDirectoryField = value; - this.configurableDirectoryFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Display" == name)) - { - this.displayField = value; - this.displayFieldSet = true; - } - if (("InstallDefault" == name)) - { - this.installDefaultField = Feature.ParseInstallDefaultType(value); - this.installDefaultFieldSet = true; - } - if (("Level" == name)) - { - this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.levelFieldSet = true; - } - if (("Title" == name)) - { - this.titleField = value; - this.titleFieldSet = true; - } - if (("TypicalDefault" == name)) - { - this.typicalDefaultField = Feature.ParseTypicalDefaultType(value); - this.typicalDefaultFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum AbsentType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Allows the user interface to display an option to change the feature state to Absent. - /// - allow, - - /// - /// Prevents the user interface from displaying an option to change the feature state - /// to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature - /// to the installation state, whether or not the feature is visible in the UI. - /// - disallow, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum AllowAdvertiseType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute. - /// - no, - - /// - /// Prevents advertising for this feature if the operating system shell does not support Windows Installer - /// descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute. - /// - system, - - /// - /// Allows the feature to be advertised. - /// - yes, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallDefaultType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Forces the feature to follow the same installation state as its parent feature. - /// - followParent, - - /// - /// Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute. - /// - local, - - /// - /// Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute. - /// - source, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypicalDefaultType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute. - /// This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to - /// disallow the advertised state for this feature while at the same time favoring it. - /// - advertise, - - /// - /// Sets the feature to the default non-advertised installation option. - /// - install, - } - } - - /// - /// Groups together multiple components, features, and merges to be used in other locations. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FeatureGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public FeatureGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the FeatureGroup. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("MergeRef" == childName)) - { - childValue = new MergeRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FeatureGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to a FeatureGroup in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FeatureGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType ignoreParentField; - - private bool ignoreParentFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the FeatureGroup to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Normally feature group references that end up nested under a parent element create a - /// connection to that parent. This behavior is undesirable when trying to simply reference - /// to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group - /// reference not create a connection to its parent. The default is 'no'. - /// - public YesNoType IgnoreParent - { - get - { - return this.ignoreParentField; - } - set - { - this.ignoreParentFieldSet = true; - this.ignoreParentField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to make the parent feature of this group - /// the primary feature for any components and merges contained in the group. - /// Features may belong to multiple features. By designating a feature as the - /// primary feature of a component or merge, you ensure that whenever a component is - /// selected for install-on-demand (IOD), the primary feature will be the one to install - /// it. This attribute should only be set if a component actually nests under multiple - /// features. If a component nests under only one feature, that feature is the primary - /// feature for the component. You cannot set more than one feature as the primary - /// feature of a given component. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FeatureGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.ignoreParentFieldSet) - { - if ((this.ignoreParentField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreParent", "no"); - } - if ((this.ignoreParentField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreParent", "yes"); - } - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("IgnoreParent" == name)) - { - this.ignoreParentField = Enums.ParseYesNoType(value); - this.ignoreParentFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Create a reference to a Feature element in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FeatureRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType ignoreParentField; - - private bool ignoreParentFieldSet; - - private ISchemaElement parentElement; - - public FeatureRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the Feature element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Normally feature references that are nested under a parent element create a connection to that - /// parent. This behavior is undesirable when trying to simply reference a Feature in a different - /// Fragment. Specify 'yes' to have this feature reference not create a connection to its parent. - /// The default is 'no'. - /// - public YesNoType IgnoreParent - { - get - { - return this.ignoreParentField; - } - set - { - this.ignoreParentFieldSet = true; - this.ignoreParentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("FeatureGroup" == childName)) - { - childValue = new FeatureGroup(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("MergeRef" == childName)) - { - childValue = new MergeRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FeatureRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.ignoreParentFieldSet) - { - if ((this.ignoreParentField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreParent", "no"); - } - if ((this.ignoreParentField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreParent", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("IgnoreParent" == name)) - { - this.ignoreParentField = Enums.ParseYesNoType(value); - this.ignoreParentFieldSet = true; - } - } - } - - /// - /// Media element describes a disk that makes up the source media for the installation. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Media : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string cabinetField; - - private bool cabinetFieldSet; - - private CompressionLevelType compressionLevelField; - - private bool compressionLevelFieldSet; - - private string diskPromptField; - - private bool diskPromptFieldSet; - - private YesNoType embedCabField; - - private bool embedCabFieldSet; - - private string layoutField; - - private bool layoutFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private string volumeLabelField; - - private bool volumeLabelFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private ISchemaElement parentElement; - - public Media() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalSignature))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchBaseline))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Disk identifier for Media table. This number must be equal to or greater than 1. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set. - /// - public string Cabinet - { - get - { - return this.cabinetField; - } - set - { - this.cabinetFieldSet = true; - this.cabinetField = value; - } - } - - /// - /// Indicates the compression level for the Media's cabinet. This attribute can - /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. - /// - public CompressionLevelType CompressionLevel - { - get - { - return this.compressionLevelField; - } - set - { - this.compressionLevelFieldSet = true; - this.compressionLevelField = value; - } - } - - /// - /// The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - /// - public string DiskPrompt - { - get - { - return this.diskPromptField; - } - set - { - this.diskPromptFieldSet = true; - this.diskPromptField = value; - } - } - - /// - /// Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute. - /// - public YesNoType EmbedCab - { - get - { - return this.embedCabField; - } - set - { - this.embedCabFieldSet = true; - this.embedCabField = value; - } - } - - /// - /// This attribute specifies the root directory for the uncompressed files that - /// are a part of this Media element. By default, the src will be the output - /// directory for the final image. The default value ensures the binder generates - /// an installable image. If a relative path is specified in the src attribute, - /// the value will be appended to the image's output directory. If an absolute - /// path is provided, that path will be used without modification. The latter two - /// options are provided to ease the layout of an image onto multiple medias (CDs/DVDs). - /// - public string Layout - { - get - { - return this.layoutField; - } - set - { - this.layoutFieldSet = true; - this.layoutField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// The label attributed to the volume. This is the volume label returned - /// by the GetVolumeInformation function. If the SourceDir property refers - /// to a removable (floppy or CD-ROM) volume, then this volume label is - /// used to verify that the proper disk is in the drive before attempting - /// to install files. The entry in this column must match the volume label - /// of the physical media. - /// - public string VolumeLabel - { - get - { - return this.volumeLabelField; - } - set - { - this.volumeLabelFieldSet = true; - this.volumeLabelField = value; - } - } - - /// - /// Optional property that identifies the source of the embedded cabinet. - /// If a cabinet is specified for a patch, this property should be defined - /// and unique to each patch so that the embedded cabinet containing patched - /// and new files can be located in the patch package. If the cabinet is not - /// embedded - this is not typical - the cabinet can be found in the directory - /// referenced in this column. If empty, the external cabinet must be located - /// in the SourceDir directory. - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalSignature" == childName)) - { - childValue = new DigitalSignature(); - } - if (("PatchBaseline" == childName)) - { - childValue = new PatchBaseline(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Media", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.cabinetFieldSet) - { - writer.WriteAttributeString("Cabinet", this.cabinetField); - } - if (this.compressionLevelFieldSet) - { - if ((this.compressionLevelField == CompressionLevelType.high)) - { - writer.WriteAttributeString("CompressionLevel", "high"); - } - if ((this.compressionLevelField == CompressionLevelType.low)) - { - writer.WriteAttributeString("CompressionLevel", "low"); - } - if ((this.compressionLevelField == CompressionLevelType.medium)) - { - writer.WriteAttributeString("CompressionLevel", "medium"); - } - if ((this.compressionLevelField == CompressionLevelType.mszip)) - { - writer.WriteAttributeString("CompressionLevel", "mszip"); - } - if ((this.compressionLevelField == CompressionLevelType.none)) - { - writer.WriteAttributeString("CompressionLevel", "none"); - } - } - if (this.diskPromptFieldSet) - { - writer.WriteAttributeString("DiskPrompt", this.diskPromptField); - } - if (this.embedCabFieldSet) - { - if ((this.embedCabField == YesNoType.no)) - { - writer.WriteAttributeString("EmbedCab", "no"); - } - if ((this.embedCabField == YesNoType.yes)) - { - writer.WriteAttributeString("EmbedCab", "yes"); - } - } - if (this.layoutFieldSet) - { - writer.WriteAttributeString("Layout", this.layoutField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.volumeLabelFieldSet) - { - writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Cabinet" == name)) - { - this.cabinetField = value; - this.cabinetFieldSet = true; - } - if (("CompressionLevel" == name)) - { - this.compressionLevelField = Enums.ParseCompressionLevelType(value); - this.compressionLevelFieldSet = true; - } - if (("DiskPrompt" == name)) - { - this.diskPromptField = value; - this.diskPromptFieldSet = true; - } - if (("EmbedCab" == name)) - { - this.embedCabField = Enums.ParseYesNoType(value); - this.embedCabFieldSet = true; - } - if (("Layout" == name)) - { - this.layoutField = value; - this.layoutFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("VolumeLabel" == name)) - { - this.volumeLabelField = value; - this.volumeLabelFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - } - } - - /// - /// MediaTeplate element describes information to automatically assign files to cabinets. - /// A maximumum number of cabinets created is 999. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MediaTemplate : ISchemaElement, ISetAttributes - { - - private string cabinetTemplateField; - - private bool cabinetTemplateFieldSet; - - private CompressionLevelType compressionLevelField; - - private bool compressionLevelFieldSet; - - private string diskPromptField; - - private bool diskPromptFieldSet; - - private YesNoType embedCabField; - - private bool embedCabFieldSet; - - private string volumeLabelField; - - private bool volumeLabelFieldSet; - - private int maximumUncompressedMediaSizeField; - - private bool maximumUncompressedMediaSizeFieldSet; - - private int maximumCabinetSizeForLargeFileSplittingField; - - private bool maximumCabinetSizeForLargeFileSplittingFieldSet; - - private ISchemaElement parentElement; - - /// - /// Templated name of the cabinet if some or all of the files stored on the media are in - /// a cabinet file. This name must begin with either a letter or an underscore, contain - /// maximum of five characters and {0} in the cabinet name part and must end three character extension. - /// The default is cab{0}.cab. - /// - public string CabinetTemplate - { - get - { - return this.cabinetTemplateField; - } - set - { - this.cabinetTemplateFieldSet = true; - this.cabinetTemplateField = value; - } - } - - /// - /// Indicates the compression level for the Media's cabinet. This attribute can - /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. - /// - public CompressionLevelType CompressionLevel - { - get - { - return this.compressionLevelField; - } - set - { - this.compressionLevelFieldSet = true; - this.compressionLevelField = value; - } - } - - /// - /// The disk name, which is usually the visible text printed on the disk. This localizable text is used - /// to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the - /// DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - /// - public string DiskPrompt - { - get - { - return this.diskPromptField; - } - set - { - this.diskPromptFieldSet = true; - this.diskPromptField = value; - } - } - - /// - /// Instructs the binder to embed the cabinets in the product if 'yes'. - /// - public YesNoType EmbedCab - { - get - { - return this.embedCabField; - } - set - { - this.embedCabFieldSet = true; - this.embedCabField = value; - } - } - - /// - /// The label attributed to the volume. This is the volume label returned - /// by the GetVolumeInformation function. If the SourceDir property refers - /// to a removable (floppy or CD-ROM) volume, then this volume label is - /// used to verify that the proper disk is in the drive before attempting - /// to install files. The entry in this column must match the volume label - /// of the physical media. - /// - public string VolumeLabel - { - get - { - return this.volumeLabelField; - } - set - { - this.volumeLabelFieldSet = true; - this.volumeLabelField = value; - } - } - - /// - /// Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable - /// can be used to override this value. Default value is 200 MB. - /// - public int MaximumUncompressedMediaSize - { - get - { - return this.maximumUncompressedMediaSizeField; - } - set - { - this.maximumUncompressedMediaSizeFieldSet = true; - this.maximumUncompressedMediaSizeField = value; - } - } - - /// - /// Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging - /// files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size - /// exceed this value, then setting this attribute will cause the file to be split into multiple - /// cabinets of this maximum size. For simply controlling cabinet size without file splitting use - /// MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature - /// for this Fragment / Product. Setting WIX_MCSLFS environment variable can be used to override this - /// value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default - /// value of this attribute is 2048 MB (2 GB). - /// - public int MaximumCabinetSizeForLargeFileSplitting - { - get - { - return this.maximumCabinetSizeForLargeFileSplittingField; - } - set - { - this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; - this.maximumCabinetSizeForLargeFileSplittingField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a CompressionLevelType from a string. - /// - public static CompressionLevelType ParseCompressionLevelType(string value) - { - CompressionLevelType parsedValue; - MediaTemplate.TryParseCompressionLevelType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a CompressionLevelType from a string. - /// - public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) - { - parsedValue = CompressionLevelType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("high" == value)) - { - parsedValue = CompressionLevelType.high; - } - else - { - if (("low" == value)) - { - parsedValue = CompressionLevelType.low; - } - else - { - if (("medium" == value)) - { - parsedValue = CompressionLevelType.medium; - } - else - { - if (("mszip" == value)) - { - parsedValue = CompressionLevelType.mszip; - } - else - { - if (("none" == value)) - { - parsedValue = CompressionLevelType.none; - } - else - { - parsedValue = CompressionLevelType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MediaTemplate", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.cabinetTemplateFieldSet) - { - writer.WriteAttributeString("CabinetTemplate", this.cabinetTemplateField); - } - if (this.compressionLevelFieldSet) - { - if ((this.compressionLevelField == CompressionLevelType.high)) - { - writer.WriteAttributeString("CompressionLevel", "high"); - } - if ((this.compressionLevelField == CompressionLevelType.low)) - { - writer.WriteAttributeString("CompressionLevel", "low"); - } - if ((this.compressionLevelField == CompressionLevelType.medium)) - { - writer.WriteAttributeString("CompressionLevel", "medium"); - } - if ((this.compressionLevelField == CompressionLevelType.mszip)) - { - writer.WriteAttributeString("CompressionLevel", "mszip"); - } - if ((this.compressionLevelField == CompressionLevelType.none)) - { - writer.WriteAttributeString("CompressionLevel", "none"); - } - } - if (this.diskPromptFieldSet) - { - writer.WriteAttributeString("DiskPrompt", this.diskPromptField); - } - if (this.embedCabFieldSet) - { - if ((this.embedCabField == YesNoType.no)) - { - writer.WriteAttributeString("EmbedCab", "no"); - } - if ((this.embedCabField == YesNoType.yes)) - { - writer.WriteAttributeString("EmbedCab", "yes"); - } - } - if (this.volumeLabelFieldSet) - { - writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); - } - if (this.maximumUncompressedMediaSizeFieldSet) - { - writer.WriteAttributeString("MaximumUncompressedMediaSize", this.maximumUncompressedMediaSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maximumCabinetSizeForLargeFileSplittingFieldSet) - { - writer.WriteAttributeString("MaximumCabinetSizeForLargeFileSplitting", this.maximumCabinetSizeForLargeFileSplittingField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("CabinetTemplate" == name)) - { - this.cabinetTemplateField = value; - this.cabinetTemplateFieldSet = true; - } - if (("CompressionLevel" == name)) - { - this.compressionLevelField = MediaTemplate.ParseCompressionLevelType(value); - this.compressionLevelFieldSet = true; - } - if (("DiskPrompt" == name)) - { - this.diskPromptField = value; - this.diskPromptFieldSet = true; - } - if (("EmbedCab" == name)) - { - this.embedCabField = Enums.ParseYesNoType(value); - this.embedCabFieldSet = true; - } - if (("VolumeLabel" == name)) - { - this.volumeLabelField = value; - this.volumeLabelFieldSet = true; - } - if (("MaximumUncompressedMediaSize" == name)) - { - this.maximumUncompressedMediaSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maximumUncompressedMediaSizeFieldSet = true; - } - if (("MaximumCabinetSizeForLargeFileSplitting" == name)) - { - this.maximumCabinetSizeForLargeFileSplittingField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum CompressionLevelType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - high, - - low, - - medium, - - mszip, - - none, - } - } - - /// - /// This element has been deprecated. - /// Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IgnoreModularization : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the item to ignore modularization for. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The type of the item to ignore modularization for. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - IgnoreModularization.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Action" == value)) - { - parsedValue = TypeType.Action; - } - else - { - if (("Property" == value)) - { - parsedValue = TypeType.Property; - } - else - { - if (("Directory" == value)) - { - parsedValue = TypeType.Directory; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IgnoreModularization", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.Action)) - { - writer.WriteAttributeString("Type", "Action"); - } - if ((this.typeField == TypeType.Property)) - { - writer.WriteAttributeString("Type", "Property"); - } - if ((this.typeField == TypeType.Directory)) - { - writer.WriteAttributeString("Type", "Directory"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = IgnoreModularization.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Action, - - Property, - - Directory, - } - } - - /// - /// Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element - /// correspond to different custom action types. For more information about custom actions see the - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomAction : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string binaryKeyField; - - private bool binaryKeyFieldSet; - - private string fileKeyField; - - private bool fileKeyFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string dllEntryField; - - private bool dllEntryFieldSet; - - private string exeCommandField; - - private bool exeCommandFieldSet; - - private string jScriptCallField; - - private bool jScriptCallFieldSet; - - private string vBScriptCallField; - - private bool vBScriptCallFieldSet; - - private ScriptType scriptField; - - private bool scriptFieldSet; - - private YesNoType suppressModularizationField; - - private bool suppressModularizationFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string errorField; - - private bool errorFieldSet; - - private ReturnType returnField; - - private bool returnFieldSet; - - private ExecuteType executeField; - - private bool executeFieldSet; - - private YesNoType impersonateField; - - private bool impersonateFieldSet; - - private YesNoType patchUninstallField; - - private bool patchUninstallFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private YesNoType terminalServerAwareField; - - private bool terminalServerAwareFieldSet; - - private YesNoType hideTargetField; - - private bool hideTargetFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the custom action. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains - /// the custom action for use during install. The custom action will not be installed into a target directory. This attribute is - /// typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand - /// attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes - /// to specify a type 5 or 6 custom action. - /// - public string BinaryKey - { - get - { - return this.binaryKeyField; - } - set - { - this.binaryKeyFieldSet = true; - this.binaryKeyField = value; - } - } - - /// - /// This attribute specifies a reference to a File element with matching Id attribute that - /// will execute the custom action code in the file after the file is installed. This - /// attribute is typically used with the ExeCommand attribute to specify a type 18 custom action - /// that runs an installed executable, with the DllEntry attribute to specify an installed custom - /// action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall - /// attributes to specify a type 21 or 22 custom action. - /// - public string FileKey - { - get - { - return this.fileKeyField; - } - set - { - this.fileKeyFieldSet = true; - this.fileKeyField = value; - } - } - - /// - /// This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property - /// to be used or updated on execution of this custom action. This attribute is - /// typically used with the Value attribute to create a type 51 custom action that parses - /// the text in Value and places it into the specified Property. This attribute is also used with - /// the ExeCommand attribute to create a type 50 custom action that uses the value of the - /// given property to specify the path to the executable. Type 51 custom actions are often useful to - /// pass values to a deferred custom action. - /// See - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. - /// This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34 - /// custom action, or with the Value attribute to specify a formatted string to place in the specified Directory - /// table entry in a type 35 custom action. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// This attribute specifies the name of a function in a custom action to execute. - /// This attribute is used with the BinaryKey attribute to create a type 1 custom - /// action, or with the FileKey attribute to create a type 17 custom action. - /// - public string DllEntry - { - get - { - return this.dllEntryField; - } - set - { - this.dllEntryFieldSet = true; - this.dllEntryField = value; - } - } - - /// - /// This attribute specifies the command line parameters to supply to an externally - /// run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action, - /// the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action, - /// or the Directory attribute for a type 34 custom action that specify the executable to run. - /// - public string ExeCommand - { - get - { - return this.exeCommandField; - } - set - { - this.exeCommandFieldSet = true; - this.exeCommandField = value; - } - } - - /// - /// This attribute specifies the name of the JScript function to execute in a script. The script must be - /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this - /// attribute must be specified in conjunction with the BinaryKey attribute. - /// - public string JScriptCall - { - get - { - return this.jScriptCallField; - } - set - { - this.jScriptCallFieldSet = true; - this.jScriptCallField = value; - } - } - - /// - /// This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be - /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this - /// attribute must be specified in conjunction with the BinaryKey attribute. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string VBScriptCall - { - get - { - return this.vBScriptCallField; - } - set - { - this.vBScriptCallFieldSet = true; - this.vBScriptCallField = value; - } - } - - /// - /// Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package. - /// - public ScriptType Script - { - get - { - return this.scriptField; - } - set - { - this.scriptFieldSet = true; - this.scriptField = value; - } - } - - /// - /// Use to suppress modularization of this custom action name in merge modules. - /// This should only be necessary for table-driven custom actions because the - /// table name which they interact with cannot be modularized, so there can only - /// be one instance of the table. - /// - public YesNoType SuppressModularization - { - get - { - return this.suppressModularizationField; - } - set - { - this.suppressModularizationFieldSet = true; - this.suppressModularizationField = value; - } - } - - /// - /// This attribute specifies a string value to use in the custom action. This attribute - /// must be used with the Property attribute to set the property as part of a - /// type 51 custom action or with the Directory attribute to set a directory path in that - /// table in a type 35 custom action. The value can be a literal value or derived from a - /// Property element using the - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// This attribute specifies an index in the MSI Error table to use as an error message for a - /// type 19 custom action that displays the error message and aborts a product's installation. - /// - public string Error - { - get - { - return this.errorField; - } - set - { - this.errorFieldSet = true; - this.errorField = value; - } - } - - /// - /// Set this attribute to set the return behavior of the custom action. - /// - public ReturnType Return - { - get - { - return this.returnField; - } - set - { - this.returnFieldSet = true; - this.returnField = value; - } - } - - /// - /// This attribute indicates the scheduling of the custom action. - /// - public ExecuteType Execute - { - get - { - return this.executeField; - } - set - { - this.executeFieldSet = true; - this.executeField = value; - } - } - - /// - /// This attribute specifies whether the Windows Installer, which executes as LocalSystem, - /// should impersonate the user context of the installing user when executing this custom action. - /// Typically the value should be 'yes', except when the custom action needs elevated privileges - /// to apply changes to the machine. - /// - public YesNoType Impersonate - { - get - { - return this.impersonateField; - } - set - { - this.impersonateFieldSet = true; - this.impersonateField = value; - } - } - - /// - /// This attribute specifies that the Windows Installer, execute the custom action only when - /// a patch is being uninstalled. These custom actions should also be conditioned using the - /// MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5) - /// behavior. - /// - public YesNoType PatchUninstall - { - get - { - return this.patchUninstallField; - } - set - { - this.patchUninstallFieldSet = true; - this.patchUninstallField = value; - } - } - - /// - /// Specifies that a script custom action targets a 64-bit platform. Valid only when used with - /// the Script, VBScriptCall, and JScriptCall attributes. - /// The default value is based on the platform set by the -arch switch to candle.exe - /// or the InstallerPlatform property in a .wixproj MSBuild project: - /// For x86 and ARM, the default value is 'no'. - /// For x64 and IA64, the default value is 'yes'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - /// - /// This attribute specifies controls whether the custom action will impersonate the - /// installing user during per-machine installs on Terminal Server machines. - /// Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no', - /// will run with no user impersonation on Terminal Server machines during - /// per-machine installations. This attribute is only applicable when installing on the - /// Windows Server 2003 family. - /// - public YesNoType TerminalServerAware - { - get - { - return this.terminalServerAwareField; - } - set - { - this.terminalServerAwareFieldSet = true; - this.terminalServerAwareField = value; - } - } - - /// - /// Ensures the installer does not log the CustomActionData for the deferred custom action. - /// - public YesNoType HideTarget - { - get - { - return this.hideTargetField; - } - set - { - this.hideTargetFieldSet = true; - this.hideTargetField = value; - } - } - - /// - /// The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ScriptType from a string. - /// - public static ScriptType ParseScriptType(string value) - { - ScriptType parsedValue; - CustomAction.TryParseScriptType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ScriptType from a string. - /// - public static bool TryParseScriptType(string value, out ScriptType parsedValue) - { - parsedValue = ScriptType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("jscript" == value)) - { - parsedValue = ScriptType.jscript; - } - else - { - if (("vbscript" == value)) - { - parsedValue = ScriptType.vbscript; - } - else - { - parsedValue = ScriptType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a ReturnType from a string. - /// - public static ReturnType ParseReturnType(string value) - { - ReturnType parsedValue; - CustomAction.TryParseReturnType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ReturnType from a string. - /// - public static bool TryParseReturnType(string value, out ReturnType parsedValue) - { - parsedValue = ReturnType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("asyncNoWait" == value)) - { - parsedValue = ReturnType.asyncNoWait; - } - else - { - if (("asyncWait" == value)) - { - parsedValue = ReturnType.asyncWait; - } - else - { - if (("check" == value)) - { - parsedValue = ReturnType.check; - } - else - { - if (("ignore" == value)) - { - parsedValue = ReturnType.ignore; - } - else - { - parsedValue = ReturnType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a ExecuteType from a string. - /// - public static ExecuteType ParseExecuteType(string value) - { - ExecuteType parsedValue; - CustomAction.TryParseExecuteType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ExecuteType from a string. - /// - public static bool TryParseExecuteType(string value, out ExecuteType parsedValue) - { - parsedValue = ExecuteType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("commit" == value)) - { - parsedValue = ExecuteType.commit; - } - else - { - if (("deferred" == value)) - { - parsedValue = ExecuteType.deferred; - } - else - { - if (("firstSequence" == value)) - { - parsedValue = ExecuteType.firstSequence; - } - else - { - if (("immediate" == value)) - { - parsedValue = ExecuteType.immediate; - } - else - { - if (("oncePerProcess" == value)) - { - parsedValue = ExecuteType.oncePerProcess; - } - else - { - if (("rollback" == value)) - { - parsedValue = ExecuteType.rollback; - } - else - { - if (("secondSequence" == value)) - { - parsedValue = ExecuteType.secondSequence; - } - else - { - parsedValue = ExecuteType.IllegalValue; - return false; - } - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomAction", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.binaryKeyFieldSet) - { - writer.WriteAttributeString("BinaryKey", this.binaryKeyField); - } - if (this.fileKeyFieldSet) - { - writer.WriteAttributeString("FileKey", this.fileKeyField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.dllEntryFieldSet) - { - writer.WriteAttributeString("DllEntry", this.dllEntryField); - } - if (this.exeCommandFieldSet) - { - writer.WriteAttributeString("ExeCommand", this.exeCommandField); - } - if (this.jScriptCallFieldSet) - { - writer.WriteAttributeString("JScriptCall", this.jScriptCallField); - } - if (this.vBScriptCallFieldSet) - { - writer.WriteAttributeString("VBScriptCall", this.vBScriptCallField); - } - if (this.scriptFieldSet) - { - if ((this.scriptField == ScriptType.jscript)) - { - writer.WriteAttributeString("Script", "jscript"); - } - if ((this.scriptField == ScriptType.vbscript)) - { - writer.WriteAttributeString("Script", "vbscript"); - } - } - if (this.suppressModularizationFieldSet) - { - if ((this.suppressModularizationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressModularization", "no"); - } - if ((this.suppressModularizationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressModularization", "yes"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.errorFieldSet) - { - writer.WriteAttributeString("Error", this.errorField); - } - if (this.returnFieldSet) - { - if ((this.returnField == ReturnType.asyncNoWait)) - { - writer.WriteAttributeString("Return", "asyncNoWait"); - } - if ((this.returnField == ReturnType.asyncWait)) - { - writer.WriteAttributeString("Return", "asyncWait"); - } - if ((this.returnField == ReturnType.check)) - { - writer.WriteAttributeString("Return", "check"); - } - if ((this.returnField == ReturnType.ignore)) - { - writer.WriteAttributeString("Return", "ignore"); - } - } - if (this.executeFieldSet) - { - if ((this.executeField == ExecuteType.commit)) - { - writer.WriteAttributeString("Execute", "commit"); - } - if ((this.executeField == ExecuteType.deferred)) - { - writer.WriteAttributeString("Execute", "deferred"); - } - if ((this.executeField == ExecuteType.firstSequence)) - { - writer.WriteAttributeString("Execute", "firstSequence"); - } - if ((this.executeField == ExecuteType.immediate)) - { - writer.WriteAttributeString("Execute", "immediate"); - } - if ((this.executeField == ExecuteType.oncePerProcess)) - { - writer.WriteAttributeString("Execute", "oncePerProcess"); - } - if ((this.executeField == ExecuteType.rollback)) - { - writer.WriteAttributeString("Execute", "rollback"); - } - if ((this.executeField == ExecuteType.secondSequence)) - { - writer.WriteAttributeString("Execute", "secondSequence"); - } - } - if (this.impersonateFieldSet) - { - if ((this.impersonateField == YesNoType.no)) - { - writer.WriteAttributeString("Impersonate", "no"); - } - if ((this.impersonateField == YesNoType.yes)) - { - writer.WriteAttributeString("Impersonate", "yes"); - } - } - if (this.patchUninstallFieldSet) - { - if ((this.patchUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("PatchUninstall", "no"); - } - if ((this.patchUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchUninstall", "yes"); - } - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - if (this.terminalServerAwareFieldSet) - { - if ((this.terminalServerAwareField == YesNoType.no)) - { - writer.WriteAttributeString("TerminalServerAware", "no"); - } - if ((this.terminalServerAwareField == YesNoType.yes)) - { - writer.WriteAttributeString("TerminalServerAware", "yes"); - } - } - if (this.hideTargetFieldSet) - { - if ((this.hideTargetField == YesNoType.no)) - { - writer.WriteAttributeString("HideTarget", "no"); - } - if ((this.hideTargetField == YesNoType.yes)) - { - writer.WriteAttributeString("HideTarget", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("BinaryKey" == name)) - { - this.binaryKeyField = value; - this.binaryKeyFieldSet = true; - } - if (("FileKey" == name)) - { - this.fileKeyField = value; - this.fileKeyFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("DllEntry" == name)) - { - this.dllEntryField = value; - this.dllEntryFieldSet = true; - } - if (("ExeCommand" == name)) - { - this.exeCommandField = value; - this.exeCommandFieldSet = true; - } - if (("JScriptCall" == name)) - { - this.jScriptCallField = value; - this.jScriptCallFieldSet = true; - } - if (("VBScriptCall" == name)) - { - this.vBScriptCallField = value; - this.vBScriptCallFieldSet = true; - } - if (("Script" == name)) - { - this.scriptField = CustomAction.ParseScriptType(value); - this.scriptFieldSet = true; - } - if (("SuppressModularization" == name)) - { - this.suppressModularizationField = Enums.ParseYesNoType(value); - this.suppressModularizationFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Error" == name)) - { - this.errorField = value; - this.errorFieldSet = true; - } - if (("Return" == name)) - { - this.returnField = CustomAction.ParseReturnType(value); - this.returnFieldSet = true; - } - if (("Execute" == name)) - { - this.executeField = CustomAction.ParseExecuteType(value); - this.executeFieldSet = true; - } - if (("Impersonate" == name)) - { - this.impersonateField = Enums.ParseYesNoType(value); - this.impersonateFieldSet = true; - } - if (("PatchUninstall" == name)) - { - this.patchUninstallField = Enums.ParseYesNoType(value); - this.patchUninstallFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - if (("TerminalServerAware" == name)) - { - this.terminalServerAwareField = Enums.ParseYesNoType(value); - this.terminalServerAwareFieldSet = true; - } - if (("HideTarget" == name)) - { - this.hideTargetField = Enums.ParseYesNoType(value); - this.hideTargetFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ScriptType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - jscript, - - vbscript, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ReturnType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Indicates that the custom action will run asyncronously and execution may continue after the installer terminates. - /// - asyncNoWait, - - /// - /// Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end. - /// - asyncWait, - - /// - /// Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default. - /// - check, - - /// - /// Indicates that the custom action will run synchronously and the return code will not be checked. - /// - ignore, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ExecuteType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Indicates that the custom action will run after successful completion of the installation script (at the end of the installation). - /// - commit, - - /// - /// Indicates that the custom action runs in-script (possibly with elevated privileges). - /// - deferred, - - /// - /// Indicates that the custom action will only run in the first sequence that runs it. - /// - firstSequence, - - /// - /// Indicates that the custom action will run during normal processing time with user privileges. This is the default. - /// - immediate, - - /// - /// Indicates that the custom action will only run in the first sequence that runs it in the same process. - /// - oncePerProcess, - - /// - /// Indicates that a custom action will run in the rollback sequence when a failure - /// occurs during installation, usually to undo changes made by a deferred custom action. - /// - rollback, - - /// - /// Indicates that a custom action should be run a second time if it was previously run in an earlier sequence. - /// - secondSequence, - } - } - - /// - /// This will cause the entire contents of the Fragment containing the referenced CustomAction to be - /// included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomActionRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the CustomAction to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomActionRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in - /// the InstallUISequence and InstallExecuteSequence. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SetDirectory : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string idField; - - private bool idFieldSet; - - private SequenceType sequenceField; - - private bool sequenceFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case - /// where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions). - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to - /// the Value attribute. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Controls which sequences the Directory assignment is sequenced in. - /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. - /// For 'ui', the assignment is scheduled in the InstallUISequence. - /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. - /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. - /// The default is 'both'. - /// - public SequenceType Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a - /// Property element using the - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SetDirectory", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sequenceFieldSet) - { - if ((this.sequenceField == SequenceType.both)) - { - writer.WriteAttributeString("Sequence", "both"); - } - if ((this.sequenceField == SequenceType.first)) - { - writer.WriteAttributeString("Sequence", "first"); - } - if ((this.sequenceField == SequenceType.execute)) - { - writer.WriteAttributeString("Sequence", "execute"); - } - if ((this.sequenceField == SequenceType.ui)) - { - writer.WriteAttributeString("Sequence", "ui"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Enums.ParseSequenceType(value); - this.sequenceFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in - /// the InstallUISequence and InstallExecuteSequence. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SetProperty : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private string idField; - - private bool idFieldSet; - - private SequenceType sequenceField; - - private bool sequenceFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case - /// where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions). - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property. - /// - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - /// - /// This attribute specifies the Property to set to the Value. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Controls which sequences the Property assignment is sequenced in. - /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. - /// For 'ui', the assignment is scheduled in the InstallUISequence. - /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. - /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. - /// The default is 'both'. - /// - public SequenceType Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a - /// Property element using the - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SetProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sequenceFieldSet) - { - if ((this.sequenceField == SequenceType.both)) - { - writer.WriteAttributeString("Sequence", "both"); - } - if ((this.sequenceField == SequenceType.first)) - { - writer.WriteAttributeString("Sequence", "first"); - } - if ((this.sequenceField == SequenceType.execute)) - { - writer.WriteAttributeString("Sequence", "execute"); - } - if ((this.sequenceField == SequenceType.ui)) - { - writer.WriteAttributeString("Sequence", "ui"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Enums.ParseSequenceType(value); - this.sequenceFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// This will cause the entire contents of the Fragment containing the referenced PatchFamily to be - /// used in the process of creating a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamilyRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PatchFamily to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies the ProductCode of the product that this family applies to. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamilyRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - } - } - - /// - /// Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ValidateProductID : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ValidateProductID", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CostInitialize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CostInitialize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileCost : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileCost", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IsolateComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IsolateComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CostFinalize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CostFinalize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SetODBCFolders : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SetODBCFolders", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MigrateFeatureStates : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MigrateFeatureStates", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Initiates the execution sequence. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExecuteAction : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExecuteAction", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallValidate : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallValidate", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallInitialize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallInitialize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AllocateRegistrySpace : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AllocateRegistrySpace", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProcessComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProcessComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnpublishComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnpublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiUnpublishAssemblies : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiUnpublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnpublishFeatures : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnpublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Stops system services. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class StopServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("StopServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DeleteServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DeleteServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterComPlus : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SelfUnregModules : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SelfUnregModules", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterTypeLibraries : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveODBC : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveODBC", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterFonts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveRegistryValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterClassInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterExtensionInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterProgIdInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterMIMEInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveIniValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveIniValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveShortcuts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveEnvironmentStrings : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveDuplicateFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveDuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFolders : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFolders", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CreateFolders : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CreateFolders", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MoveFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallAdminPackage : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallAdminPackage", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DuplicateFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BindImage : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BindImage", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CreateShortcuts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CreateShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterClassInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterExtensionInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterProgIdInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterMIMEInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Sets up an application's registry information. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WriteRegistryValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WriteRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WriteIniValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WriteIniValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WriteEnvironmentStrings : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WriteEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers installed fonts with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterFonts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallODBC : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallODBC", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers type libraries with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterTypeLibraries : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SelfRegModules : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SelfRegModules", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers COM+ applications. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterComPlus : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers a service for the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Starts system services. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class StartServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("StartServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterUser : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterUser", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers the product information with the installer. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterProduct : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterProduct", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PublishComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiPublishAssemblies : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiPublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PublishFeatures : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PublishProduct : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PublishProduct", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallFinalize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallFinalize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AppSearch : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AppSearch", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CCPSearch : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RMCCPSearch : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RMCCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class LaunchConditions : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("LaunchConditions", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FindRelatedProducts : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FindRelatedProducts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallExecute : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallExecute", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallExecuteAgain : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallExecuteAgain", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DisableRollback : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DisableRollback", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveExistingProducts : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveExistingProducts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ScheduleReboot : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ScheduleReboot", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ForceReboot : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ForceReboot", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ResolveSource : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ResolveSource", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Use to sequence a custom action. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Custom : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private ExitType onExitField; - - private bool onExitFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The action to which the Custom element applies. - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Mutually exclusive with Before, After, and Sequence attributes - /// - public ExitType OnExit - { - get - { - return this.onExitField; - } - set - { - this.onExitFieldSet = true; - this.onExitField = value; - } - } - - /// - /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes - /// - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - /// - /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - /// - /// The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// Text node specifies the condition of the action. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Custom", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.onExitFieldSet) - { - if ((this.onExitField == ExitType.success)) - { - writer.WriteAttributeString("OnExit", "success"); - } - if ((this.onExitField == ExitType.cancel)) - { - writer.WriteAttributeString("OnExit", "cancel"); - } - if ((this.onExitField == ExitType.error)) - { - writer.WriteAttributeString("OnExit", "error"); - } - if ((this.onExitField == ExitType.suspend)) - { - writer.WriteAttributeString("OnExit", "suspend"); - } - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("OnExit" == name)) - { - this.onExitField = Enums.ParseExitType(value); - this.onExitFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Show : ISchemaElement, ISetAttributes - { - - private string dialogField; - - private bool dialogFieldSet; - - private ExitType onExitField; - - private bool onExitFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - public string Dialog - { - get - { - return this.dialogField; - } - set - { - this.dialogFieldSet = true; - this.dialogField = value; - } - } - - /// - /// mutually exclusive with Before, After, and Sequence attributes - /// - public ExitType OnExit - { - get - { - return this.onExitField; - } - set - { - this.onExitFieldSet = true; - this.onExitField = value; - } - } - - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Show", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.dialogFieldSet) - { - writer.WriteAttributeString("Dialog", this.dialogField); - } - if (this.onExitFieldSet) - { - if ((this.onExitField == ExitType.success)) - { - writer.WriteAttributeString("OnExit", "success"); - } - if ((this.onExitField == ExitType.cancel)) - { - writer.WriteAttributeString("OnExit", "cancel"); - } - if ((this.onExitField == ExitType.error)) - { - writer.WriteAttributeString("OnExit", "error"); - } - if ((this.onExitField == ExitType.suspend)) - { - writer.WriteAttributeString("OnExit", "suspend"); - } - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Dialog" == name)) - { - this.dialogField = value; - this.dialogFieldSet = true; - } - if (("OnExit" == name)) - { - this.onExitField = Enums.ParseExitType(value); - this.onExitFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public InstallUISequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("Show" == childName)) - { - childValue = new Show(); - } - if (("ScheduleReboot" == childName)) - { - childValue = new ScheduleReboot(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if (("FindRelatedProducts" == childName)) - { - childValue = new FindRelatedProducts(); - } - if (("AppSearch" == childName)) - { - childValue = new AppSearch(); - } - if (("CCPSearch" == childName)) - { - childValue = new CCPSearch(); - } - if (("RMCCPSearch" == childName)) - { - childValue = new RMCCPSearch(); - } - if (("ValidateProductID" == childName)) - { - childValue = new ValidateProductID(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("IsolateComponents" == childName)) - { - childValue = new IsolateComponents(); - } - if (("ResolveSource" == childName)) - { - childValue = new ResolveSource(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("MigrateFeatureStates" == childName)) - { - childValue = new MigrateFeatureStates(); - } - if (("ExecuteAction" == childName)) - { - childValue = new ExecuteAction(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallUISequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public InstallExecuteSequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ForceReboot))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetODBCFolders))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AllocateRegistrySpace))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProcessComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishFeatures))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StopServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DeleteServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterComPlus))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfUnregModules))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterTypeLibraries))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveODBC))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterFonts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterClassInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterExtensionInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterProgIdInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterMIMEInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveIniValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveShortcuts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveEnvironmentStrings))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveDuplicateFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolders))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolders))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MoveFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DuplicateFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BindImage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteRegistryValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteIniValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteEnvironmentStrings))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterFonts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallODBC))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterTypeLibraries))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfRegModules))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterComPlus))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StartServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterUser))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProduct))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveExistingProducts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DisableRollback))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecute))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecuteAgain))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiUnpublishAssemblies))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("ScheduleReboot" == childName)) - { - childValue = new ScheduleReboot(); - } - if (("ForceReboot" == childName)) - { - childValue = new ForceReboot(); - } - if (("ResolveSource" == childName)) - { - childValue = new ResolveSource(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if (("FindRelatedProducts" == childName)) - { - childValue = new FindRelatedProducts(); - } - if (("AppSearch" == childName)) - { - childValue = new AppSearch(); - } - if (("CCPSearch" == childName)) - { - childValue = new CCPSearch(); - } - if (("RMCCPSearch" == childName)) - { - childValue = new RMCCPSearch(); - } - if (("ValidateProductID" == childName)) - { - childValue = new ValidateProductID(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("IsolateComponents" == childName)) - { - childValue = new IsolateComponents(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("SetODBCFolders" == childName)) - { - childValue = new SetODBCFolders(); - } - if (("MigrateFeatureStates" == childName)) - { - childValue = new MigrateFeatureStates(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("AllocateRegistrySpace" == childName)) - { - childValue = new AllocateRegistrySpace(); - } - if (("ProcessComponents" == childName)) - { - childValue = new ProcessComponents(); - } - if (("UnpublishComponents" == childName)) - { - childValue = new UnpublishComponents(); - } - if (("UnpublishFeatures" == childName)) - { - childValue = new UnpublishFeatures(); - } - if (("StopServices" == childName)) - { - childValue = new StopServices(); - } - if (("DeleteServices" == childName)) - { - childValue = new DeleteServices(); - } - if (("UnregisterComPlus" == childName)) - { - childValue = new UnregisterComPlus(); - } - if (("SelfUnregModules" == childName)) - { - childValue = new SelfUnregModules(); - } - if (("UnregisterTypeLibraries" == childName)) - { - childValue = new UnregisterTypeLibraries(); - } - if (("RemoveODBC" == childName)) - { - childValue = new RemoveODBC(); - } - if (("UnregisterFonts" == childName)) - { - childValue = new UnregisterFonts(); - } - if (("RemoveRegistryValues" == childName)) - { - childValue = new RemoveRegistryValues(); - } - if (("UnregisterClassInfo" == childName)) - { - childValue = new UnregisterClassInfo(); - } - if (("UnregisterExtensionInfo" == childName)) - { - childValue = new UnregisterExtensionInfo(); - } - if (("UnregisterProgIdInfo" == childName)) - { - childValue = new UnregisterProgIdInfo(); - } - if (("UnregisterMIMEInfo" == childName)) - { - childValue = new UnregisterMIMEInfo(); - } - if (("RemoveIniValues" == childName)) - { - childValue = new RemoveIniValues(); - } - if (("RemoveShortcuts" == childName)) - { - childValue = new RemoveShortcuts(); - } - if (("RemoveEnvironmentStrings" == childName)) - { - childValue = new RemoveEnvironmentStrings(); - } - if (("RemoveDuplicateFiles" == childName)) - { - childValue = new RemoveDuplicateFiles(); - } - if (("RemoveFiles" == childName)) - { - childValue = new RemoveFiles(); - } - if (("RemoveFolders" == childName)) - { - childValue = new RemoveFolders(); - } - if (("CreateFolders" == childName)) - { - childValue = new CreateFolders(); - } - if (("MoveFiles" == childName)) - { - childValue = new MoveFiles(); - } - if (("InstallFiles" == childName)) - { - childValue = new InstallFiles(); - } - if (("DuplicateFiles" == childName)) - { - childValue = new DuplicateFiles(); - } - if (("PatchFiles" == childName)) - { - childValue = new PatchFiles(); - } - if (("BindImage" == childName)) - { - childValue = new BindImage(); - } - if (("CreateShortcuts" == childName)) - { - childValue = new CreateShortcuts(); - } - if (("RegisterClassInfo" == childName)) - { - childValue = new RegisterClassInfo(); - } - if (("RegisterExtensionInfo" == childName)) - { - childValue = new RegisterExtensionInfo(); - } - if (("RegisterProgIdInfo" == childName)) - { - childValue = new RegisterProgIdInfo(); - } - if (("RegisterMIMEInfo" == childName)) - { - childValue = new RegisterMIMEInfo(); - } - if (("WriteRegistryValues" == childName)) - { - childValue = new WriteRegistryValues(); - } - if (("WriteIniValues" == childName)) - { - childValue = new WriteIniValues(); - } - if (("WriteEnvironmentStrings" == childName)) - { - childValue = new WriteEnvironmentStrings(); - } - if (("RegisterFonts" == childName)) - { - childValue = new RegisterFonts(); - } - if (("InstallODBC" == childName)) - { - childValue = new InstallODBC(); - } - if (("RegisterTypeLibraries" == childName)) - { - childValue = new RegisterTypeLibraries(); - } - if (("SelfRegModules" == childName)) - { - childValue = new SelfRegModules(); - } - if (("RegisterComPlus" == childName)) - { - childValue = new RegisterComPlus(); - } - if (("InstallServices" == childName)) - { - childValue = new InstallServices(); - } - if (("StartServices" == childName)) - { - childValue = new StartServices(); - } - if (("RegisterUser" == childName)) - { - childValue = new RegisterUser(); - } - if (("RegisterProduct" == childName)) - { - childValue = new RegisterProduct(); - } - if (("PublishComponents" == childName)) - { - childValue = new PublishComponents(); - } - if (("PublishFeatures" == childName)) - { - childValue = new PublishFeatures(); - } - if (("PublishProduct" == childName)) - { - childValue = new PublishProduct(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("RemoveExistingProducts" == childName)) - { - childValue = new RemoveExistingProducts(); - } - if (("DisableRollback" == childName)) - { - childValue = new DisableRollback(); - } - if (("InstallExecute" == childName)) - { - childValue = new InstallExecute(); - } - if (("InstallExecuteAgain" == childName)) - { - childValue = new InstallExecuteAgain(); - } - if (("MsiPublishAssemblies" == childName)) - { - childValue = new MsiPublishAssemblies(); - } - if (("MsiUnpublishAssemblies" == childName)) - { - childValue = new MsiUnpublishAssemblies(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AdminUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public AdminUISequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("Show" == childName)) - { - childValue = new Show(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("ExecuteAction" == childName)) - { - childValue = new ExecuteAction(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("InstallAdminPackage" == childName)) - { - childValue = new InstallAdminPackage(); - } - if (("InstallFiles" == childName)) - { - childValue = new InstallFiles(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AdminUISequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AdminExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public AdminExecuteSequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("InstallAdminPackage" == childName)) - { - childValue = new InstallAdminPackage(); - } - if (("InstallFiles" == childName)) - { - childValue = new InstallFiles(); - } - if (("PatchFiles" == childName)) - { - childValue = new PatchFiles(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if (("ResolveSource" == childName)) - { - childValue = new ResolveSource(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AdminExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AdvertiseExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public AdvertiseExecuteSequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("CreateShortcuts" == childName)) - { - childValue = new CreateShortcuts(); - } - if (("RegisterClassInfo" == childName)) - { - childValue = new RegisterClassInfo(); - } - if (("RegisterExtensionInfo" == childName)) - { - childValue = new RegisterExtensionInfo(); - } - if (("RegisterMIMEInfo" == childName)) - { - childValue = new RegisterMIMEInfo(); - } - if (("RegisterProgIdInfo" == childName)) - { - childValue = new RegisterProgIdInfo(); - } - if (("PublishComponents" == childName)) - { - childValue = new PublishComponents(); - } - if (("PublishFeatures" == childName)) - { - childValue = new PublishFeatures(); - } - if (("PublishProduct" == childName)) - { - childValue = new PublishProduct(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("MsiPublishAssemblies" == childName)) - { - childValue = new MsiPublishAssemblies(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AdvertiseExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Binary data used for CustomAction elements and UI controls. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Binary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private YesNoType suppressModularizationField; - - private bool suppressModularizationFieldSet; - - private ISchemaElement parentElement; - - public Binary() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Path to the binary file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Use to suppress modularization of this Binary identifier in merge modules. - /// - public YesNoType SuppressModularization - { - get - { - return this.suppressModularizationField; - } - set - { - this.suppressModularizationFieldSet = true; - this.suppressModularizationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Binary", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.suppressModularizationFieldSet) - { - if ((this.suppressModularizationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressModularization", "no"); - } - if ((this.suppressModularizationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressModularization", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("SuppressModularization" == name)) - { - this.suppressModularizationField = Enums.ParseYesNoType(value); - this.suppressModularizationFieldSet = true; - } - } - } - - /// - /// Icon used for Shortcut, ProgId, or Class elements (but not UI controls) - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Icon : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - /// - /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Path to the icon file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Icon", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedChainer : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string commandLineField; - - private bool commandLineFieldSet; - - private string binarySourceField; - - private bool binarySourceFieldSet; - - private string fileSourceField; - - private bool fileSourceFieldSet; - - private string propertySourceField; - - private bool propertySourceFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for embedded chainer. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Value to append to the transaction handle and passed to the chainer executable. - /// - public string CommandLine - { - get - { - return this.commandLineField; - } - set - { - this.commandLineFieldSet = true; - this.commandLineField = value; - } - } - - /// - /// Reference to the Binary element that contains the chainer executable. Mutually exclusive with - /// the FileSource and PropertySource attributes. - /// - public string BinarySource - { - get - { - return this.binarySourceField; - } - set - { - this.binarySourceFieldSet = true; - this.binarySourceField = value; - } - } - - /// - /// Reference to the File element that is the chainer executable. Mutually exclusive with - /// the BinarySource and PropertySource attributes. - /// - public string FileSource - { - get - { - return this.fileSourceField; - } - set - { - this.fileSourceFieldSet = true; - this.fileSourceField = value; - } - } - - /// - /// Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with - /// the BinarySource and FileSource attributes. - /// - public string PropertySource - { - get - { - return this.propertySourceField; - } - set - { - this.propertySourceFieldSet = true; - this.propertySourceField = value; - } - } - - /// - /// Element value is the condition. CDATA may be used to when a condition contains many XML characters - /// that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition - /// to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer - /// that executes is undeterministic. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedChainer", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.commandLineFieldSet) - { - writer.WriteAttributeString("CommandLine", this.commandLineField); - } - if (this.binarySourceFieldSet) - { - writer.WriteAttributeString("BinarySource", this.binarySourceField); - } - if (this.fileSourceFieldSet) - { - writer.WriteAttributeString("FileSource", this.fileSourceField); - } - if (this.propertySourceFieldSet) - { - writer.WriteAttributeString("PropertySource", this.propertySourceField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("CommandLine" == name)) - { - this.commandLineField = value; - this.commandLineFieldSet = true; - } - if (("BinarySource" == name)) - { - this.binarySourceField = value; - this.binarySourceFieldSet = true; - } - if (("FileSource" == name)) - { - this.fileSourceField = value; - this.fileSourceFieldSet = true; - } - if (("PropertySource" == name)) - { - this.propertySourceField = value; - this.propertySourceFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents - /// to be included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedChainerRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedChainerRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Element value is the condition. Use CDATA if message contains delimiter characters. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedUI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType ignoreFatalExitField; - - private bool ignoreFatalExitFieldSet; - - private YesNoType ignoreErrorField; - - private bool ignoreErrorFieldSet; - - private YesNoType ignoreWarningField; - - private bool ignoreWarningFieldSet; - - private YesNoType ignoreUserField; - - private bool ignoreUserFieldSet; - - private YesNoType ignoreInfoField; - - private bool ignoreInfoFieldSet; - - private YesNoType ignoreFilesInUseField; - - private bool ignoreFilesInUseFieldSet; - - private YesNoType ignoreResolveSourceField; - - private bool ignoreResolveSourceFieldSet; - - private YesNoType ignoreOutOfDiskSpaceField; - - private bool ignoreOutOfDiskSpaceFieldSet; - - private YesNoType ignoreActionStartField; - - private bool ignoreActionStartFieldSet; - - private YesNoType ignoreActionDataField; - - private bool ignoreActionDataFieldSet; - - private YesNoType ignoreProgressField; - - private bool ignoreProgressFieldSet; - - private YesNoType ignoreCommonDataField; - - private bool ignoreCommonDataFieldSet; - - private YesNoType ignoreInitializeField; - - private bool ignoreInitializeFieldSet; - - private YesNoType ignoreTerminateField; - - private bool ignoreTerminateFieldSet; - - private YesNoType ignoreShowDialogField; - - private bool ignoreShowDialogFieldSet; - - private YesNoType ignoreRMFilesInUseField; - - private bool ignoreRMFilesInUseFieldSet; - - private YesNoType ignoreInstallStartField; - - private bool ignoreInstallStartFieldSet; - - private YesNoType ignoreInstallEndField; - - private bool ignoreInstallEndFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private YesNoType supportBasicUIField; - - private bool supportBasicUIFieldSet; - - private ISchemaElement parentElement; - - public EmbeddedUI() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(EmbeddedUIResource))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name - /// portion of the SourceFile attribute will be used. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages. - /// - public YesNoType IgnoreFatalExit - { - get - { - return this.ignoreFatalExitField; - } - set - { - this.ignoreFatalExitFieldSet = true; - this.ignoreFatalExitField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages. - /// - public YesNoType IgnoreError - { - get - { - return this.ignoreErrorField; - } - set - { - this.ignoreErrorFieldSet = true; - this.ignoreErrorField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages. - /// - public YesNoType IgnoreWarning - { - get - { - return this.ignoreWarningField; - } - set - { - this.ignoreWarningFieldSet = true; - this.ignoreWarningField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_USER messages. - /// - public YesNoType IgnoreUser - { - get - { - return this.ignoreUserField; - } - set - { - this.ignoreUserFieldSet = true; - this.ignoreUserField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INFO messages. - /// - public YesNoType IgnoreInfo - { - get - { - return this.ignoreInfoField; - } - set - { - this.ignoreInfoFieldSet = true; - this.ignoreInfoField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages. - /// - public YesNoType IgnoreFilesInUse - { - get - { - return this.ignoreFilesInUseField; - } - set - { - this.ignoreFilesInUseFieldSet = true; - this.ignoreFilesInUseField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages. - /// - public YesNoType IgnoreResolveSource - { - get - { - return this.ignoreResolveSourceField; - } - set - { - this.ignoreResolveSourceFieldSet = true; - this.ignoreResolveSourceField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages. - /// - public YesNoType IgnoreOutOfDiskSpace - { - get - { - return this.ignoreOutOfDiskSpaceField; - } - set - { - this.ignoreOutOfDiskSpaceFieldSet = true; - this.ignoreOutOfDiskSpaceField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages. - /// - public YesNoType IgnoreActionStart - { - get - { - return this.ignoreActionStartField; - } - set - { - this.ignoreActionStartFieldSet = true; - this.ignoreActionStartField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages. - /// - public YesNoType IgnoreActionData - { - get - { - return this.ignoreActionDataField; - } - set - { - this.ignoreActionDataFieldSet = true; - this.ignoreActionDataField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages. - /// - public YesNoType IgnoreProgress - { - get - { - return this.ignoreProgressField; - } - set - { - this.ignoreProgressFieldSet = true; - this.ignoreProgressField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages. - /// - public YesNoType IgnoreCommonData - { - get - { - return this.ignoreCommonDataField; - } - set - { - this.ignoreCommonDataFieldSet = true; - this.ignoreCommonDataField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages. - /// - public YesNoType IgnoreInitialize - { - get - { - return this.ignoreInitializeField; - } - set - { - this.ignoreInitializeFieldSet = true; - this.ignoreInitializeField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages. - /// - public YesNoType IgnoreTerminate - { - get - { - return this.ignoreTerminateField; - } - set - { - this.ignoreTerminateFieldSet = true; - this.ignoreTerminateField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages. - /// - public YesNoType IgnoreShowDialog - { - get - { - return this.ignoreShowDialogField; - } - set - { - this.ignoreShowDialogFieldSet = true; - this.ignoreShowDialogField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType IgnoreRMFilesInUse - { - get - { - return this.ignoreRMFilesInUseField; - } - set - { - this.ignoreRMFilesInUseFieldSet = true; - this.ignoreRMFilesInUseField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages. - /// - public YesNoType IgnoreInstallStart - { - get - { - return this.ignoreInstallStartField; - } - set - { - this.ignoreInstallStartFieldSet = true; - this.ignoreInstallStartField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages. - /// - public YesNoType IgnoreInstallEnd - { - get - { - return this.ignoreInstallEndField; - } - set - { - this.ignoreInstallEndFieldSet = true; - this.ignoreInstallEndField = value; - } - } - - /// - /// The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer - /// does not support the typical short filename and long filename combination for embedded UI files as it - /// does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile - /// attribute will be used. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Path to the binary file that is the embedded UI. This must be a DLL that exports the following - /// three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation. - /// - public YesNoType SupportBasicUI - { - get - { - return this.supportBasicUIField; - } - set - { - this.supportBasicUIFieldSet = true; - this.supportBasicUIField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("EmbeddedUIResource" == childName)) - { - childValue = new EmbeddedUIResource(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedUI", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.ignoreFatalExitFieldSet) - { - if ((this.ignoreFatalExitField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreFatalExit", "no"); - } - if ((this.ignoreFatalExitField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreFatalExit", "yes"); - } - } - if (this.ignoreErrorFieldSet) - { - if ((this.ignoreErrorField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreError", "no"); - } - if ((this.ignoreErrorField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreError", "yes"); - } - } - if (this.ignoreWarningFieldSet) - { - if ((this.ignoreWarningField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreWarning", "no"); - } - if ((this.ignoreWarningField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreWarning", "yes"); - } - } - if (this.ignoreUserFieldSet) - { - if ((this.ignoreUserField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreUser", "no"); - } - if ((this.ignoreUserField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreUser", "yes"); - } - } - if (this.ignoreInfoFieldSet) - { - if ((this.ignoreInfoField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInfo", "no"); - } - if ((this.ignoreInfoField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInfo", "yes"); - } - } - if (this.ignoreFilesInUseFieldSet) - { - if ((this.ignoreFilesInUseField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreFilesInUse", "no"); - } - if ((this.ignoreFilesInUseField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreFilesInUse", "yes"); - } - } - if (this.ignoreResolveSourceFieldSet) - { - if ((this.ignoreResolveSourceField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreResolveSource", "no"); - } - if ((this.ignoreResolveSourceField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreResolveSource", "yes"); - } - } - if (this.ignoreOutOfDiskSpaceFieldSet) - { - if ((this.ignoreOutOfDiskSpaceField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreOutOfDiskSpace", "no"); - } - if ((this.ignoreOutOfDiskSpaceField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreOutOfDiskSpace", "yes"); - } - } - if (this.ignoreActionStartFieldSet) - { - if ((this.ignoreActionStartField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreActionStart", "no"); - } - if ((this.ignoreActionStartField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreActionStart", "yes"); - } - } - if (this.ignoreActionDataFieldSet) - { - if ((this.ignoreActionDataField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreActionData", "no"); - } - if ((this.ignoreActionDataField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreActionData", "yes"); - } - } - if (this.ignoreProgressFieldSet) - { - if ((this.ignoreProgressField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreProgress", "no"); - } - if ((this.ignoreProgressField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreProgress", "yes"); - } - } - if (this.ignoreCommonDataFieldSet) - { - if ((this.ignoreCommonDataField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreCommonData", "no"); - } - if ((this.ignoreCommonDataField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreCommonData", "yes"); - } - } - if (this.ignoreInitializeFieldSet) - { - if ((this.ignoreInitializeField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInitialize", "no"); - } - if ((this.ignoreInitializeField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInitialize", "yes"); - } - } - if (this.ignoreTerminateFieldSet) - { - if ((this.ignoreTerminateField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreTerminate", "no"); - } - if ((this.ignoreTerminateField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreTerminate", "yes"); - } - } - if (this.ignoreShowDialogFieldSet) - { - if ((this.ignoreShowDialogField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreShowDialog", "no"); - } - if ((this.ignoreShowDialogField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreShowDialog", "yes"); - } - } - if (this.ignoreRMFilesInUseFieldSet) - { - if ((this.ignoreRMFilesInUseField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreRMFilesInUse", "no"); - } - if ((this.ignoreRMFilesInUseField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreRMFilesInUse", "yes"); - } - } - if (this.ignoreInstallStartFieldSet) - { - if ((this.ignoreInstallStartField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInstallStart", "no"); - } - if ((this.ignoreInstallStartField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInstallStart", "yes"); - } - } - if (this.ignoreInstallEndFieldSet) - { - if ((this.ignoreInstallEndField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInstallEnd", "no"); - } - if ((this.ignoreInstallEndField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInstallEnd", "yes"); - } - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.supportBasicUIFieldSet) - { - if ((this.supportBasicUIField == YesNoType.no)) - { - writer.WriteAttributeString("SupportBasicUI", "no"); - } - if ((this.supportBasicUIField == YesNoType.yes)) - { - writer.WriteAttributeString("SupportBasicUI", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("IgnoreFatalExit" == name)) - { - this.ignoreFatalExitField = Enums.ParseYesNoType(value); - this.ignoreFatalExitFieldSet = true; - } - if (("IgnoreError" == name)) - { - this.ignoreErrorField = Enums.ParseYesNoType(value); - this.ignoreErrorFieldSet = true; - } - if (("IgnoreWarning" == name)) - { - this.ignoreWarningField = Enums.ParseYesNoType(value); - this.ignoreWarningFieldSet = true; - } - if (("IgnoreUser" == name)) - { - this.ignoreUserField = Enums.ParseYesNoType(value); - this.ignoreUserFieldSet = true; - } - if (("IgnoreInfo" == name)) - { - this.ignoreInfoField = Enums.ParseYesNoType(value); - this.ignoreInfoFieldSet = true; - } - if (("IgnoreFilesInUse" == name)) - { - this.ignoreFilesInUseField = Enums.ParseYesNoType(value); - this.ignoreFilesInUseFieldSet = true; - } - if (("IgnoreResolveSource" == name)) - { - this.ignoreResolveSourceField = Enums.ParseYesNoType(value); - this.ignoreResolveSourceFieldSet = true; - } - if (("IgnoreOutOfDiskSpace" == name)) - { - this.ignoreOutOfDiskSpaceField = Enums.ParseYesNoType(value); - this.ignoreOutOfDiskSpaceFieldSet = true; - } - if (("IgnoreActionStart" == name)) - { - this.ignoreActionStartField = Enums.ParseYesNoType(value); - this.ignoreActionStartFieldSet = true; - } - if (("IgnoreActionData" == name)) - { - this.ignoreActionDataField = Enums.ParseYesNoType(value); - this.ignoreActionDataFieldSet = true; - } - if (("IgnoreProgress" == name)) - { - this.ignoreProgressField = Enums.ParseYesNoType(value); - this.ignoreProgressFieldSet = true; - } - if (("IgnoreCommonData" == name)) - { - this.ignoreCommonDataField = Enums.ParseYesNoType(value); - this.ignoreCommonDataFieldSet = true; - } - if (("IgnoreInitialize" == name)) - { - this.ignoreInitializeField = Enums.ParseYesNoType(value); - this.ignoreInitializeFieldSet = true; - } - if (("IgnoreTerminate" == name)) - { - this.ignoreTerminateField = Enums.ParseYesNoType(value); - this.ignoreTerminateFieldSet = true; - } - if (("IgnoreShowDialog" == name)) - { - this.ignoreShowDialogField = Enums.ParseYesNoType(value); - this.ignoreShowDialogFieldSet = true; - } - if (("IgnoreRMFilesInUse" == name)) - { - this.ignoreRMFilesInUseField = Enums.ParseYesNoType(value); - this.ignoreRMFilesInUseFieldSet = true; - } - if (("IgnoreInstallStart" == name)) - { - this.ignoreInstallStartField = Enums.ParseYesNoType(value); - this.ignoreInstallStartFieldSet = true; - } - if (("IgnoreInstallEnd" == name)) - { - this.ignoreInstallEndField = Enums.ParseYesNoType(value); - this.ignoreInstallEndFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("SupportBasicUI" == name)) - { - this.supportBasicUIField = Enums.ParseYesNoType(value); - this.supportBasicUIFieldSet = true; - } - } - } - - /// - /// Defines a resource for use by the embedded UI. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedUIResource : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for the embedded UI resource. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows - /// Installer does not support the typical short filename and long filename combination for embedded UI files - /// as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Path to the binary file that is the embedded UI resource. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedUIResource", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Error : ISchemaElement, ISetAttributes - { - - private int idField; - - private bool idFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Number of the error for which a message is being provided. See MSI SDK for error definitions. - /// - public int Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Element value is Message, use CDATA if message contains delimiter characters - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Error", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField.ToString(CultureInfo.InvariantCulture)); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.idFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Publish : ISchemaElement, ISetAttributes - { - - private string controlField; - - private bool controlFieldSet; - - private string dialogField; - - private bool dialogFieldSet; - - private string eventField; - - private bool eventFieldSet; - - private string orderField; - - private bool orderFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The parent Control for this Publish element, should only be specified when this element is a child of the UI element. - /// - public string Control - { - get - { - return this.controlField; - } - set - { - this.controlFieldSet = true; - this.controlField = value; - } - } - - /// - /// The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element. - /// This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary. - /// - public string Dialog - { - get - { - return this.dialogField; - } - set - { - this.dialogFieldSet = true; - this.dialogField = value; - } - } - - /// - /// Set this attribute's value to one of the standard control events to trigger that event. - /// Either this attribute or the Property attribute must be set, but not both at the same time. - /// - public string Event - { - get - { - return this.eventField; - } - set - { - this.eventFieldSet = true; - this.eventField = value; - } - } - - /// - /// This attribute should only need to be set if this element is nested under a UI element in order to - /// control the order in which this publish event will be started. - /// If this element is nested under a Control element, the default value will be one greater than any - /// previous Publish element's order (the first element's default value is 1). - /// If this element is nested under a UI element, the default value is always 1 (it does not get a - /// default value based on any previous Publish elements). - /// - public string Order - { - get - { - return this.orderField; - } - set - { - this.orderFieldSet = true; - this.orderField = value; - } - } - - /// - /// Set this attribute's value to a property name to set that property. - /// Either this attribute or the Event attribute must be set, but not both at the same time. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// If the Property attribute is specified, set the value of this attribute to the new value for the property. - /// To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}'). - /// Otherwise, this attribute's value should be the argument for the event specified in the Event attribute. - /// If the event doesn't take an attribute, a common value to use is "0". - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The element value is the optional Condition expression. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Publish", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.controlFieldSet) - { - writer.WriteAttributeString("Control", this.controlField); - } - if (this.dialogFieldSet) - { - writer.WriteAttributeString("Dialog", this.dialogField); - } - if (this.eventFieldSet) - { - writer.WriteAttributeString("Event", this.eventField); - } - if (this.orderFieldSet) - { - writer.WriteAttributeString("Order", this.orderField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Control" == name)) - { - this.controlField = value; - this.controlFieldSet = true; - } - if (("Dialog" == name)) - { - this.dialogField = value; - this.dialogFieldSet = true; - } - if (("Event" == name)) - { - this.eventField = value; - this.eventFieldSet = true; - } - if (("Order" == name)) - { - this.orderField = value; - this.orderFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Sets attributes for events in the EventMapping table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Subscribe : ISchemaElement, ISetAttributes - { - - private string eventField; - - private bool eventFieldSet; - - private string attributeField; - - private bool attributeFieldSet; - - private ISchemaElement parentElement; - - /// - /// must be one of the standard control events' - /// - public string Event - { - get - { - return this.eventField; - } - set - { - this.eventFieldSet = true; - this.eventField = value; - } - } - - /// - /// if not present can only handle enable, disable, hide, unhide events - /// - public string Attribute - { - get - { - return this.attributeField; - } - set - { - this.attributeFieldSet = true; - this.attributeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Subscribe", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.eventFieldSet) - { - writer.WriteAttributeString("Event", this.eventField); - } - if (this.attributeFieldSet) - { - writer.WriteAttributeString("Attribute", this.attributeField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Event" == name)) - { - this.eventField = value; - this.eventFieldSet = true; - } - if (("Attribute" == name)) - { - this.attributeField = value; - this.attributeFieldSet = true; - } - } - } - - /// - /// An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Text : ISchemaElement, ISetAttributes - { - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Instructs the text to be imported from a file instead of the element value during the binding process. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Text", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Contains the controls that appear on each dialog. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Control : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string typeField; - - private bool typeFieldSet; - - private string xField; - - private bool xFieldSet; - - private string yField; - - private bool yFieldSet; - - private string widthField; - - private bool widthFieldSet; - - private string heightField; - - private bool heightFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string textField; - - private bool textFieldSet; - - private string helpField; - - private bool helpFieldSet; - - private string toolTipField; - - private bool toolTipFieldSet; - - private string checkBoxValueField; - - private bool checkBoxValueFieldSet; - - private string checkBoxPropertyRefField; - - private bool checkBoxPropertyRefFieldSet; - - private YesNoType tabSkipField; - - private bool tabSkipFieldSet; - - private YesNoType defaultField; - - private bool defaultFieldSet; - - private YesNoType cancelField; - - private bool cancelFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType disabledField; - - private bool disabledFieldSet; - - private YesNoType sunkenField; - - private bool sunkenFieldSet; - - private YesNoType indirectField; - - private bool indirectFieldSet; - - private YesNoType integerField; - - private bool integerFieldSet; - - private YesNoType rightToLeftField; - - private bool rightToLeftFieldSet; - - private YesNoType rightAlignedField; - - private bool rightAlignedFieldSet; - - private YesNoType leftScrollField; - - private bool leftScrollFieldSet; - - private YesNoType transparentField; - - private bool transparentFieldSet; - - private YesNoType noPrefixField; - - private bool noPrefixFieldSet; - - private YesNoType noWrapField; - - private bool noWrapFieldSet; - - private YesNoType formatSizeField; - - private bool formatSizeFieldSet; - - private YesNoType userLanguageField; - - private bool userLanguageFieldSet; - - private YesNoType multilineField; - - private bool multilineFieldSet; - - private YesNoType passwordField; - - private bool passwordFieldSet; - - private YesNoType progressBlocksField; - - private bool progressBlocksFieldSet; - - private YesNoType removableField; - - private bool removableFieldSet; - - private YesNoType fixedField; - - private bool fixedFieldSet; - - private YesNoType remoteField; - - private bool remoteFieldSet; - - private YesNoType cDROMField; - - private bool cDROMFieldSet; - - private YesNoType rAMDiskField; - - private bool rAMDiskFieldSet; - - private YesNoType floppyField; - - private bool floppyFieldSet; - - private YesNoType showRollbackCostField; - - private bool showRollbackCostFieldSet; - - private YesNoType sortedField; - - private bool sortedFieldSet; - - private YesNoType comboListField; - - private bool comboListFieldSet; - - private YesNoType imageField; - - private bool imageFieldSet; - - private IconSizeType iconSizeField; - - private bool iconSizeFieldSet; - - private YesNoType fixedSizeField; - - private bool fixedSizeFieldSet; - - private YesNoType iconField; - - private bool iconFieldSet; - - private YesNoType bitmapField; - - private bool bitmapFieldSet; - - private YesNoType pushLikeField; - - private bool pushLikeFieldSet; - - private YesNoType hasBorderField; - - private bool hasBorderFieldSet; - - private YesNoType elevationShieldField; - - private bool elevationShieldFieldSet; - - private ISchemaElement parentElement; - - public Control() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Text))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ComboBox))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListBox))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListView))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButtonGroup))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Binary))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Subscribe))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Combined with the Dialog Id to make up the primary key of the Control table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo - /// - public string Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. - /// - public string X - { - get - { - return this.xField; - } - set - { - this.xFieldSet = true; - this.xField = value; - } - } - - /// - /// Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. - /// - public string Y - { - get - { - return this.yField; - } - set - { - this.yFieldSet = true; - this.yField = value; - } - } - - /// - /// Width of the rectangular boundary of the control. This must be a non-negative number. - /// - public string Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - /// - /// Height of the rectangular boundary of the control. This must be a non-negative number. - /// - public string Height - { - get - { - return this.heightField; - } - set - { - this.heightFieldSet = true; - this.heightField = value; - } - } - - /// - /// The name of a defined property to be linked to this control. This column is required for active controls. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see - /// - public string Text - { - get - { - return this.textField; - } - set - { - this.textFieldSet = true; - this.textField = value; - } - } - - /// - /// This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something. - /// - public string Help - { - get - { - return this.helpField; - } - set - { - this.helpFieldSet = true; - this.helpField = value; - } - } - - /// - /// The string used for the Tooltip. - /// - public string ToolTip - { - get - { - return this.toolTipField; - } - set - { - this.toolTipFieldSet = true; - this.toolTipField = value; - } - } - - /// - /// This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked. - /// - public string CheckBoxValue - { - get - { - return this.checkBoxValueField; - } - set - { - this.checkBoxValueFieldSet = true; - this.checkBoxValueField = value; - } - } - - /// - /// This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property. - /// - public string CheckBoxPropertyRef - { - get - { - return this.checkBoxPropertyRefField; - } - set - { - this.checkBoxPropertyRefFieldSet = true; - this.checkBoxPropertyRefField = value; - } - } - - /// - /// Set this attribute to "yes" to cause this Control to be skipped in the tab sequence. - /// - public YesNoType TabSkip - { - get - { - return this.tabSkipField; - } - set - { - this.tabSkipFieldSet = true; - this.tabSkipField = value; - } - } - - /// - /// Set this attribute to "yes" to cause this Control to be invoked by the return key. - /// - public YesNoType Default - { - get - { - return this.defaultField; - } - set - { - this.defaultFieldSet = true; - this.defaultField = value; - } - } - - /// - /// Set this attribute to "yes" to cause this Control to be invoked by the escape key. - /// - public YesNoType Cancel - { - get - { - return this.cancelField; - } - set - { - this.cancelFieldSet = true; - this.cancelField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be hidden. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be disabled. - /// - public YesNoType Disabled - { - get - { - return this.disabledField; - } - set - { - this.disabledFieldSet = true; - this.disabledField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be sunken. - /// - public YesNoType Sunken - { - get - { - return this.sunkenField; - } - set - { - this.sunkenFieldSet = true; - this.sunkenField = value; - } - } - - /// - /// Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table. - /// - public YesNoType Indirect - { - get - { - return this.indirectField; - } - set - { - this.indirectFieldSet = true; - this.indirectField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string. - /// - public YesNoType Integer - { - get - { - return this.integerField; - } - set - { - this.integerFieldSet = true; - this.integerField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to display from right to left. - /// - public YesNoType RightToLeft - { - get - { - return this.rightToLeftField; - } - set - { - this.rightToLeftFieldSet = true; - this.rightToLeftField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be right aligned. - /// - public YesNoType RightAligned - { - get - { - return this.rightAlignedField; - } - set - { - this.rightAlignedFieldSet = true; - this.rightAlignedField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. - /// - public YesNoType LeftScroll - { - get - { - return this.leftScrollField; - } - set - { - this.leftScrollFieldSet = true; - this.leftScrollField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType Transparent - { - get - { - return this.transparentField; - } - set - { - this.transparentFieldSet = true; - this.transparentField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType NoPrefix - { - get - { - return this.noPrefixField; - } - set - { - this.noPrefixFieldSet = true; - this.noPrefixField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType NoWrap - { - get - { - return this.noWrapField; - } - set - { - this.noWrapFieldSet = true; - this.noWrapField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType FormatSize - { - get - { - return this.formatSizeField; - } - set - { - this.formatSizeFieldSet = true; - this.formatSizeField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType UserLanguage - { - get - { - return this.userLanguageField; - } - set - { - this.userLanguageFieldSet = true; - this.userLanguageField = value; - } - } - - /// - /// This attribute is only valid for Edit Controls. - /// - public YesNoType Multiline - { - get - { - return this.multilineField; - } - set - { - this.multilineFieldSet = true; - this.multilineField = value; - } - } - - /// - /// This attribute is only valid for Edit Controls. - /// - public YesNoType Password - { - get - { - return this.passwordField; - } - set - { - this.passwordFieldSet = true; - this.passwordField = value; - } - } - - /// - /// This attribute is only valid for ProgressBar Controls. - /// - public YesNoType ProgressBlocks - { - get - { - return this.progressBlocksField; - } - set - { - this.progressBlocksFieldSet = true; - this.progressBlocksField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Removable - { - get - { - return this.removableField; - } - set - { - this.removableFieldSet = true; - this.removableField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Fixed - { - get - { - return this.fixedField; - } - set - { - this.fixedFieldSet = true; - this.fixedField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Remote - { - get - { - return this.remoteField; - } - set - { - this.remoteFieldSet = true; - this.remoteField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType CDROM - { - get - { - return this.cDROMField; - } - set - { - this.cDROMFieldSet = true; - this.cDROMField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType RAMDisk - { - get - { - return this.rAMDiskField; - } - set - { - this.rAMDiskFieldSet = true; - this.rAMDiskField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Floppy - { - get - { - return this.floppyField; - } - set - { - this.floppyFieldSet = true; - this.floppyField = value; - } - } - - /// - /// This attribute is only valid for VolumeCostList Controls. - /// - public YesNoType ShowRollbackCost - { - get - { - return this.showRollbackCostField; - } - set - { - this.showRollbackCostFieldSet = true; - this.showRollbackCostField = value; - } - } - - /// - /// This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set - /// the value of this attribute to "yes" to have entries appear in the order specified under the Control. - /// If the attribute value is "no" or absent the entries in the control will appear in alphabetical order. - /// - public YesNoType Sorted - { - get - { - return this.sortedField; - } - set - { - this.sortedFieldSet = true; - this.sortedField = value; - } - } - - /// - /// This attribute is only valid for ComboBox Controls. - /// - public YesNoType ComboList - { - get - { - return this.comboListField; - } - set - { - this.comboListFieldSet = true; - this.comboListField = value; - } - } - - /// - /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. - /// - public YesNoType Image - { - get - { - return this.imageField; - } - set - { - this.imageFieldSet = true; - this.imageField = value; - } - } - - /// - /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. - /// - public IconSizeType IconSize - { - get - { - return this.iconSizeField; - } - set - { - this.iconSizeFieldSet = true; - this.iconSizeField = value; - } - } - - /// - /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. - /// - public YesNoType FixedSize - { - get - { - return this.fixedSizeField; - } - set - { - this.fixedSizeFieldSet = true; - this.fixedSizeField = value; - } - } - - /// - /// This attribute is only valid for RadioButton and PushButton Controls. - /// - public YesNoType Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// This attribute is only valid for RadioButton and PushButton Controls. - /// - public YesNoType Bitmap - { - get - { - return this.bitmapField; - } - set - { - this.bitmapFieldSet = true; - this.bitmapField = value; - } - } - - /// - /// This attribute is only valid for RadioButton and Checkbox Controls. - /// - public YesNoType PushLike - { - get - { - return this.pushLikeField; - } - set - { - this.pushLikeFieldSet = true; - this.pushLikeField = value; - } - } - - /// - /// This attribute is only valid for RadioButton Controls. - /// - public YesNoType HasBorder - { - get - { - return this.hasBorderField; - } - set - { - this.hasBorderFieldSet = true; - this.hasBorderField = value; - } - } - - /// - /// This attribute is only valid for PushButton controls. - /// Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control. - /// If this attribute's value is "yes" and the installation is not yet running with elevated privileges, - /// the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon). - /// If this attribute's value is "yes" and the installation is already running with elevated privileges, - /// the pushbutton control is created using the other icon attributes. - /// Otherwise, the pushbutton control is created using the other icon attributes. - /// - public YesNoType ElevationShield - { - get - { - return this.elevationShieldField; - } - set - { - this.elevationShieldFieldSet = true; - this.elevationShieldField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Text" == childName)) - { - childValue = new Text(); - } - if (("ComboBox" == childName)) - { - childValue = new ComboBox(); - } - if (("ListBox" == childName)) - { - childValue = new ListBox(); - } - if (("ListView" == childName)) - { - childValue = new ListView(); - } - if (("RadioButtonGroup" == childName)) - { - childValue = new RadioButtonGroup(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("Publish" == childName)) - { - childValue = new Publish(); - } - if (("Subscribe" == childName)) - { - childValue = new Subscribe(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a IconSizeType from a string. - /// - public static IconSizeType ParseIconSizeType(string value) - { - IconSizeType parsedValue; - Control.TryParseIconSizeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a IconSizeType from a string. - /// - public static bool TryParseIconSizeType(string value, out IconSizeType parsedValue) - { - parsedValue = IconSizeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("16" == value)) - { - parsedValue = IconSizeType.Item16; - } - else - { - if (("32" == value)) - { - parsedValue = IconSizeType.Item32; - } - else - { - if (("48" == value)) - { - parsedValue = IconSizeType.Item48; - } - else - { - parsedValue = IconSizeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Control", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.typeFieldSet) - { - writer.WriteAttributeString("Type", this.typeField); - } - if (this.xFieldSet) - { - writer.WriteAttributeString("X", this.xField); - } - if (this.yFieldSet) - { - writer.WriteAttributeString("Y", this.yField); - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField); - } - if (this.heightFieldSet) - { - writer.WriteAttributeString("Height", this.heightField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.textFieldSet) - { - writer.WriteAttributeString("Text", this.textField); - } - if (this.helpFieldSet) - { - writer.WriteAttributeString("Help", this.helpField); - } - if (this.toolTipFieldSet) - { - writer.WriteAttributeString("ToolTip", this.toolTipField); - } - if (this.checkBoxValueFieldSet) - { - writer.WriteAttributeString("CheckBoxValue", this.checkBoxValueField); - } - if (this.checkBoxPropertyRefFieldSet) - { - writer.WriteAttributeString("CheckBoxPropertyRef", this.checkBoxPropertyRefField); - } - if (this.tabSkipFieldSet) - { - if ((this.tabSkipField == YesNoType.no)) - { - writer.WriteAttributeString("TabSkip", "no"); - } - if ((this.tabSkipField == YesNoType.yes)) - { - writer.WriteAttributeString("TabSkip", "yes"); - } - } - if (this.defaultFieldSet) - { - if ((this.defaultField == YesNoType.no)) - { - writer.WriteAttributeString("Default", "no"); - } - if ((this.defaultField == YesNoType.yes)) - { - writer.WriteAttributeString("Default", "yes"); - } - } - if (this.cancelFieldSet) - { - if ((this.cancelField == YesNoType.no)) - { - writer.WriteAttributeString("Cancel", "no"); - } - if ((this.cancelField == YesNoType.yes)) - { - writer.WriteAttributeString("Cancel", "yes"); - } - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.disabledFieldSet) - { - if ((this.disabledField == YesNoType.no)) - { - writer.WriteAttributeString("Disabled", "no"); - } - if ((this.disabledField == YesNoType.yes)) - { - writer.WriteAttributeString("Disabled", "yes"); - } - } - if (this.sunkenFieldSet) - { - if ((this.sunkenField == YesNoType.no)) - { - writer.WriteAttributeString("Sunken", "no"); - } - if ((this.sunkenField == YesNoType.yes)) - { - writer.WriteAttributeString("Sunken", "yes"); - } - } - if (this.indirectFieldSet) - { - if ((this.indirectField == YesNoType.no)) - { - writer.WriteAttributeString("Indirect", "no"); - } - if ((this.indirectField == YesNoType.yes)) - { - writer.WriteAttributeString("Indirect", "yes"); - } - } - if (this.integerFieldSet) - { - if ((this.integerField == YesNoType.no)) - { - writer.WriteAttributeString("Integer", "no"); - } - if ((this.integerField == YesNoType.yes)) - { - writer.WriteAttributeString("Integer", "yes"); - } - } - if (this.rightToLeftFieldSet) - { - if ((this.rightToLeftField == YesNoType.no)) - { - writer.WriteAttributeString("RightToLeft", "no"); - } - if ((this.rightToLeftField == YesNoType.yes)) - { - writer.WriteAttributeString("RightToLeft", "yes"); - } - } - if (this.rightAlignedFieldSet) - { - if ((this.rightAlignedField == YesNoType.no)) - { - writer.WriteAttributeString("RightAligned", "no"); - } - if ((this.rightAlignedField == YesNoType.yes)) - { - writer.WriteAttributeString("RightAligned", "yes"); - } - } - if (this.leftScrollFieldSet) - { - if ((this.leftScrollField == YesNoType.no)) - { - writer.WriteAttributeString("LeftScroll", "no"); - } - if ((this.leftScrollField == YesNoType.yes)) - { - writer.WriteAttributeString("LeftScroll", "yes"); - } - } - if (this.transparentFieldSet) - { - if ((this.transparentField == YesNoType.no)) - { - writer.WriteAttributeString("Transparent", "no"); - } - if ((this.transparentField == YesNoType.yes)) - { - writer.WriteAttributeString("Transparent", "yes"); - } - } - if (this.noPrefixFieldSet) - { - if ((this.noPrefixField == YesNoType.no)) - { - writer.WriteAttributeString("NoPrefix", "no"); - } - if ((this.noPrefixField == YesNoType.yes)) - { - writer.WriteAttributeString("NoPrefix", "yes"); - } - } - if (this.noWrapFieldSet) - { - if ((this.noWrapField == YesNoType.no)) - { - writer.WriteAttributeString("NoWrap", "no"); - } - if ((this.noWrapField == YesNoType.yes)) - { - writer.WriteAttributeString("NoWrap", "yes"); - } - } - if (this.formatSizeFieldSet) - { - if ((this.formatSizeField == YesNoType.no)) - { - writer.WriteAttributeString("FormatSize", "no"); - } - if ((this.formatSizeField == YesNoType.yes)) - { - writer.WriteAttributeString("FormatSize", "yes"); - } - } - if (this.userLanguageFieldSet) - { - if ((this.userLanguageField == YesNoType.no)) - { - writer.WriteAttributeString("UserLanguage", "no"); - } - if ((this.userLanguageField == YesNoType.yes)) - { - writer.WriteAttributeString("UserLanguage", "yes"); - } - } - if (this.multilineFieldSet) - { - if ((this.multilineField == YesNoType.no)) - { - writer.WriteAttributeString("Multiline", "no"); - } - if ((this.multilineField == YesNoType.yes)) - { - writer.WriteAttributeString("Multiline", "yes"); - } - } - if (this.passwordFieldSet) - { - if ((this.passwordField == YesNoType.no)) - { - writer.WriteAttributeString("Password", "no"); - } - if ((this.passwordField == YesNoType.yes)) - { - writer.WriteAttributeString("Password", "yes"); - } - } - if (this.progressBlocksFieldSet) - { - if ((this.progressBlocksField == YesNoType.no)) - { - writer.WriteAttributeString("ProgressBlocks", "no"); - } - if ((this.progressBlocksField == YesNoType.yes)) - { - writer.WriteAttributeString("ProgressBlocks", "yes"); - } - } - if (this.removableFieldSet) - { - if ((this.removableField == YesNoType.no)) - { - writer.WriteAttributeString("Removable", "no"); - } - if ((this.removableField == YesNoType.yes)) - { - writer.WriteAttributeString("Removable", "yes"); - } - } - if (this.fixedFieldSet) - { - if ((this.fixedField == YesNoType.no)) - { - writer.WriteAttributeString("Fixed", "no"); - } - if ((this.fixedField == YesNoType.yes)) - { - writer.WriteAttributeString("Fixed", "yes"); - } - } - if (this.remoteFieldSet) - { - if ((this.remoteField == YesNoType.no)) - { - writer.WriteAttributeString("Remote", "no"); - } - if ((this.remoteField == YesNoType.yes)) - { - writer.WriteAttributeString("Remote", "yes"); - } - } - if (this.cDROMFieldSet) - { - if ((this.cDROMField == YesNoType.no)) - { - writer.WriteAttributeString("CDROM", "no"); - } - if ((this.cDROMField == YesNoType.yes)) - { - writer.WriteAttributeString("CDROM", "yes"); - } - } - if (this.rAMDiskFieldSet) - { - if ((this.rAMDiskField == YesNoType.no)) - { - writer.WriteAttributeString("RAMDisk", "no"); - } - if ((this.rAMDiskField == YesNoType.yes)) - { - writer.WriteAttributeString("RAMDisk", "yes"); - } - } - if (this.floppyFieldSet) - { - if ((this.floppyField == YesNoType.no)) - { - writer.WriteAttributeString("Floppy", "no"); - } - if ((this.floppyField == YesNoType.yes)) - { - writer.WriteAttributeString("Floppy", "yes"); - } - } - if (this.showRollbackCostFieldSet) - { - if ((this.showRollbackCostField == YesNoType.no)) - { - writer.WriteAttributeString("ShowRollbackCost", "no"); - } - if ((this.showRollbackCostField == YesNoType.yes)) - { - writer.WriteAttributeString("ShowRollbackCost", "yes"); - } - } - if (this.sortedFieldSet) - { - if ((this.sortedField == YesNoType.no)) - { - writer.WriteAttributeString("Sorted", "no"); - } - if ((this.sortedField == YesNoType.yes)) - { - writer.WriteAttributeString("Sorted", "yes"); - } - } - if (this.comboListFieldSet) - { - if ((this.comboListField == YesNoType.no)) - { - writer.WriteAttributeString("ComboList", "no"); - } - if ((this.comboListField == YesNoType.yes)) - { - writer.WriteAttributeString("ComboList", "yes"); - } - } - if (this.imageFieldSet) - { - if ((this.imageField == YesNoType.no)) - { - writer.WriteAttributeString("Image", "no"); - } - if ((this.imageField == YesNoType.yes)) - { - writer.WriteAttributeString("Image", "yes"); - } - } - if (this.iconSizeFieldSet) - { - if ((this.iconSizeField == IconSizeType.Item16)) - { - writer.WriteAttributeString("IconSize", "16"); - } - if ((this.iconSizeField == IconSizeType.Item32)) - { - writer.WriteAttributeString("IconSize", "32"); - } - if ((this.iconSizeField == IconSizeType.Item48)) - { - writer.WriteAttributeString("IconSize", "48"); - } - } - if (this.fixedSizeFieldSet) - { - if ((this.fixedSizeField == YesNoType.no)) - { - writer.WriteAttributeString("FixedSize", "no"); - } - if ((this.fixedSizeField == YesNoType.yes)) - { - writer.WriteAttributeString("FixedSize", "yes"); - } - } - if (this.iconFieldSet) - { - if ((this.iconField == YesNoType.no)) - { - writer.WriteAttributeString("Icon", "no"); - } - if ((this.iconField == YesNoType.yes)) - { - writer.WriteAttributeString("Icon", "yes"); - } - } - if (this.bitmapFieldSet) - { - if ((this.bitmapField == YesNoType.no)) - { - writer.WriteAttributeString("Bitmap", "no"); - } - if ((this.bitmapField == YesNoType.yes)) - { - writer.WriteAttributeString("Bitmap", "yes"); - } - } - if (this.pushLikeFieldSet) - { - if ((this.pushLikeField == YesNoType.no)) - { - writer.WriteAttributeString("PushLike", "no"); - } - if ((this.pushLikeField == YesNoType.yes)) - { - writer.WriteAttributeString("PushLike", "yes"); - } - } - if (this.hasBorderFieldSet) - { - if ((this.hasBorderField == YesNoType.no)) - { - writer.WriteAttributeString("HasBorder", "no"); - } - if ((this.hasBorderField == YesNoType.yes)) - { - writer.WriteAttributeString("HasBorder", "yes"); - } - } - if (this.elevationShieldFieldSet) - { - if ((this.elevationShieldField == YesNoType.no)) - { - writer.WriteAttributeString("ElevationShield", "no"); - } - if ((this.elevationShieldField == YesNoType.yes)) - { - writer.WriteAttributeString("ElevationShield", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = value; - this.typeFieldSet = true; - } - if (("X" == name)) - { - this.xField = value; - this.xFieldSet = true; - } - if (("Y" == name)) - { - this.yField = value; - this.yFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = value; - this.widthFieldSet = true; - } - if (("Height" == name)) - { - this.heightField = value; - this.heightFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Text" == name)) - { - this.textField = value; - this.textFieldSet = true; - } - if (("Help" == name)) - { - this.helpField = value; - this.helpFieldSet = true; - } - if (("ToolTip" == name)) - { - this.toolTipField = value; - this.toolTipFieldSet = true; - } - if (("CheckBoxValue" == name)) - { - this.checkBoxValueField = value; - this.checkBoxValueFieldSet = true; - } - if (("CheckBoxPropertyRef" == name)) - { - this.checkBoxPropertyRefField = value; - this.checkBoxPropertyRefFieldSet = true; - } - if (("TabSkip" == name)) - { - this.tabSkipField = Enums.ParseYesNoType(value); - this.tabSkipFieldSet = true; - } - if (("Default" == name)) - { - this.defaultField = Enums.ParseYesNoType(value); - this.defaultFieldSet = true; - } - if (("Cancel" == name)) - { - this.cancelField = Enums.ParseYesNoType(value); - this.cancelFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Disabled" == name)) - { - this.disabledField = Enums.ParseYesNoType(value); - this.disabledFieldSet = true; - } - if (("Sunken" == name)) - { - this.sunkenField = Enums.ParseYesNoType(value); - this.sunkenFieldSet = true; - } - if (("Indirect" == name)) - { - this.indirectField = Enums.ParseYesNoType(value); - this.indirectFieldSet = true; - } - if (("Integer" == name)) - { - this.integerField = Enums.ParseYesNoType(value); - this.integerFieldSet = true; - } - if (("RightToLeft" == name)) - { - this.rightToLeftField = Enums.ParseYesNoType(value); - this.rightToLeftFieldSet = true; - } - if (("RightAligned" == name)) - { - this.rightAlignedField = Enums.ParseYesNoType(value); - this.rightAlignedFieldSet = true; - } - if (("LeftScroll" == name)) - { - this.leftScrollField = Enums.ParseYesNoType(value); - this.leftScrollFieldSet = true; - } - if (("Transparent" == name)) - { - this.transparentField = Enums.ParseYesNoType(value); - this.transparentFieldSet = true; - } - if (("NoPrefix" == name)) - { - this.noPrefixField = Enums.ParseYesNoType(value); - this.noPrefixFieldSet = true; - } - if (("NoWrap" == name)) - { - this.noWrapField = Enums.ParseYesNoType(value); - this.noWrapFieldSet = true; - } - if (("FormatSize" == name)) - { - this.formatSizeField = Enums.ParseYesNoType(value); - this.formatSizeFieldSet = true; - } - if (("UserLanguage" == name)) - { - this.userLanguageField = Enums.ParseYesNoType(value); - this.userLanguageFieldSet = true; - } - if (("Multiline" == name)) - { - this.multilineField = Enums.ParseYesNoType(value); - this.multilineFieldSet = true; - } - if (("Password" == name)) - { - this.passwordField = Enums.ParseYesNoType(value); - this.passwordFieldSet = true; - } - if (("ProgressBlocks" == name)) - { - this.progressBlocksField = Enums.ParseYesNoType(value); - this.progressBlocksFieldSet = true; - } - if (("Removable" == name)) - { - this.removableField = Enums.ParseYesNoType(value); - this.removableFieldSet = true; - } - if (("Fixed" == name)) - { - this.fixedField = Enums.ParseYesNoType(value); - this.fixedFieldSet = true; - } - if (("Remote" == name)) - { - this.remoteField = Enums.ParseYesNoType(value); - this.remoteFieldSet = true; - } - if (("CDROM" == name)) - { - this.cDROMField = Enums.ParseYesNoType(value); - this.cDROMFieldSet = true; - } - if (("RAMDisk" == name)) - { - this.rAMDiskField = Enums.ParseYesNoType(value); - this.rAMDiskFieldSet = true; - } - if (("Floppy" == name)) - { - this.floppyField = Enums.ParseYesNoType(value); - this.floppyFieldSet = true; - } - if (("ShowRollbackCost" == name)) - { - this.showRollbackCostField = Enums.ParseYesNoType(value); - this.showRollbackCostFieldSet = true; - } - if (("Sorted" == name)) - { - this.sortedField = Enums.ParseYesNoType(value); - this.sortedFieldSet = true; - } - if (("ComboList" == name)) - { - this.comboListField = Enums.ParseYesNoType(value); - this.comboListFieldSet = true; - } - if (("Image" == name)) - { - this.imageField = Enums.ParseYesNoType(value); - this.imageFieldSet = true; - } - if (("IconSize" == name)) - { - this.iconSizeField = Control.ParseIconSizeType(value); - this.iconSizeFieldSet = true; - } - if (("FixedSize" == name)) - { - this.fixedSizeField = Enums.ParseYesNoType(value); - this.fixedSizeFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = Enums.ParseYesNoType(value); - this.iconFieldSet = true; - } - if (("Bitmap" == name)) - { - this.bitmapField = Enums.ParseYesNoType(value); - this.bitmapFieldSet = true; - } - if (("PushLike" == name)) - { - this.pushLikeField = Enums.ParseYesNoType(value); - this.pushLikeFieldSet = true; - } - if (("HasBorder" == name)) - { - this.hasBorderField = Enums.ParseYesNoType(value); - this.hasBorderFieldSet = true; - } - if (("ElevationShield" == name)) - { - this.elevationShieldField = Enums.ParseYesNoType(value); - this.elevationShieldFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum IconSizeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Item16, - - Item32, - - Item48, - } - } - - /// - /// Billboard to display during install of a Feature - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Billboard : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string featureField; - - private bool featureFieldSet; - - private ISchemaElement parentElement; - - public Billboard() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the Billboard. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Feature whose state determines if the Billboard is shown. - /// - public string Feature - { - get - { - return this.featureField; - } - set - { - this.featureFieldSet = true; - this.featureField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Control" == childName)) - { - childValue = new Control(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Billboard", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.featureFieldSet) - { - writer.WriteAttributeString("Feature", this.featureField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Feature" == name)) - { - this.featureField = value; - this.featureFieldSet = true; - } - } - } - - /// - /// Billboard action during which child Billboards are displayed - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BillboardAction : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public BillboardAction() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Billboard))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Action name that determines when the Billboard should be shown. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Billboard" == childName)) - { - childValue = new Billboard(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BillboardAction", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Defines a dialog box in the Dialog Table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Dialog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private int xField; - - private bool xFieldSet; - - private int yField; - - private bool yFieldSet; - - private int widthField; - - private bool widthFieldSet; - - private int heightField; - - private bool heightFieldSet; - - private string titleField; - - private bool titleFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType modelessField; - - private bool modelessFieldSet; - - private YesNoType noMinimizeField; - - private bool noMinimizeFieldSet; - - private YesNoType systemModalField; - - private bool systemModalFieldSet; - - private YesNoType keepModelessField; - - private bool keepModelessFieldSet; - - private YesNoType trackDiskSpaceField; - - private bool trackDiskSpaceFieldSet; - - private YesNoType customPaletteField; - - private bool customPaletteFieldSet; - - private YesNoType rightToLeftField; - - private bool rightToLeftFieldSet; - - private YesNoType rightAlignedField; - - private bool rightAlignedFieldSet; - - private YesNoType leftScrollField; - - private bool leftScrollFieldSet; - - private YesNoType errorDialogField; - - private bool errorDialogFieldSet; - - private ISchemaElement parentElement; - - public Dialog() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the dialog. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Horizontal placement of the dialog box as a percentage of screen width. The default value is 50. - /// - public int X - { - get - { - return this.xField; - } - set - { - this.xFieldSet = true; - this.xField = value; - } - } - - /// - /// Vertical placement of the dialog box as a percentage of screen height. The default value is 50. - /// - public int Y - { - get - { - return this.yField; - } - set - { - this.yFieldSet = true; - this.yField = value; - } - } - - /// - /// The width of the dialog box in dialog units. - /// - public int Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - /// - /// The height of the dialog box in dialog units. - /// - public int Height - { - get - { - return this.heightField; - } - set - { - this.heightFieldSet = true; - this.heightField = value; - } - } - - /// - /// The title of the dialog box. - /// - public string Title - { - get - { - return this.titleField; - } - set - { - this.titleFieldSet = true; - this.titleField = value; - } - } - - /// - /// Used to hide the dialog. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Used to set the dialog as modeless. - /// - public YesNoType Modeless - { - get - { - return this.modelessField; - } - set - { - this.modelessFieldSet = true; - this.modelessField = value; - } - } - - /// - /// Used to specify if the dialog can be minimized. - /// - public YesNoType NoMinimize - { - get - { - return this.noMinimizeField; - } - set - { - this.noMinimizeFieldSet = true; - this.noMinimizeField = value; - } - } - - /// - /// Used to set the dialog as system modal. - /// - public YesNoType SystemModal - { - get - { - return this.systemModalField; - } - set - { - this.systemModalFieldSet = true; - this.systemModalField = value; - } - } - - /// - /// Keep modeless dialogs alive when this dialog is created through DoAction. - /// - public YesNoType KeepModeless - { - get - { - return this.keepModelessField; - } - set - { - this.keepModelessFieldSet = true; - this.keepModelessField = value; - } - } - - /// - /// Have the dialog periodically call the installer to check if available disk space has changed. - /// - public YesNoType TrackDiskSpace - { - get - { - return this.trackDiskSpaceField; - } - set - { - this.trackDiskSpaceFieldSet = true; - this.trackDiskSpaceField = value; - } - } - - /// - /// Used to specify if pictures in the dialog box are rendered with a custom palette. - /// - public YesNoType CustomPalette - { - get - { - return this.customPaletteField; - } - set - { - this.customPaletteFieldSet = true; - this.customPaletteField = value; - } - } - - /// - /// Used to specify if the text in the dialog should be displayed in right to left reading order. - /// - public YesNoType RightToLeft - { - get - { - return this.rightToLeftField; - } - set - { - this.rightToLeftFieldSet = true; - this.rightToLeftField = value; - } - } - - /// - /// Align text on the right. - /// - public YesNoType RightAligned - { - get - { - return this.rightAlignedField; - } - set - { - this.rightAlignedFieldSet = true; - this.rightAlignedField = value; - } - } - - /// - /// Used to align the scroll bar on the left. - /// - public YesNoType LeftScroll - { - get - { - return this.leftScrollField; - } - set - { - this.leftScrollFieldSet = true; - this.leftScrollField = value; - } - } - - /// - /// Specifies this dialog as an error dialog. - /// - public YesNoType ErrorDialog - { - get - { - return this.errorDialogField; - } - set - { - this.errorDialogFieldSet = true; - this.errorDialogField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Control" == childName)) - { - childValue = new Control(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Dialog", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.xFieldSet) - { - writer.WriteAttributeString("X", this.xField.ToString(CultureInfo.InvariantCulture)); - } - if (this.yFieldSet) - { - writer.WriteAttributeString("Y", this.yField.ToString(CultureInfo.InvariantCulture)); - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); - } - if (this.heightFieldSet) - { - writer.WriteAttributeString("Height", this.heightField.ToString(CultureInfo.InvariantCulture)); - } - if (this.titleFieldSet) - { - writer.WriteAttributeString("Title", this.titleField); - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.modelessFieldSet) - { - if ((this.modelessField == YesNoType.no)) - { - writer.WriteAttributeString("Modeless", "no"); - } - if ((this.modelessField == YesNoType.yes)) - { - writer.WriteAttributeString("Modeless", "yes"); - } - } - if (this.noMinimizeFieldSet) - { - if ((this.noMinimizeField == YesNoType.no)) - { - writer.WriteAttributeString("NoMinimize", "no"); - } - if ((this.noMinimizeField == YesNoType.yes)) - { - writer.WriteAttributeString("NoMinimize", "yes"); - } - } - if (this.systemModalFieldSet) - { - if ((this.systemModalField == YesNoType.no)) - { - writer.WriteAttributeString("SystemModal", "no"); - } - if ((this.systemModalField == YesNoType.yes)) - { - writer.WriteAttributeString("SystemModal", "yes"); - } - } - if (this.keepModelessFieldSet) - { - if ((this.keepModelessField == YesNoType.no)) - { - writer.WriteAttributeString("KeepModeless", "no"); - } - if ((this.keepModelessField == YesNoType.yes)) - { - writer.WriteAttributeString("KeepModeless", "yes"); - } - } - if (this.trackDiskSpaceFieldSet) - { - if ((this.trackDiskSpaceField == YesNoType.no)) - { - writer.WriteAttributeString("TrackDiskSpace", "no"); - } - if ((this.trackDiskSpaceField == YesNoType.yes)) - { - writer.WriteAttributeString("TrackDiskSpace", "yes"); - } - } - if (this.customPaletteFieldSet) - { - if ((this.customPaletteField == YesNoType.no)) - { - writer.WriteAttributeString("CustomPalette", "no"); - } - if ((this.customPaletteField == YesNoType.yes)) - { - writer.WriteAttributeString("CustomPalette", "yes"); - } - } - if (this.rightToLeftFieldSet) - { - if ((this.rightToLeftField == YesNoType.no)) - { - writer.WriteAttributeString("RightToLeft", "no"); - } - if ((this.rightToLeftField == YesNoType.yes)) - { - writer.WriteAttributeString("RightToLeft", "yes"); - } - } - if (this.rightAlignedFieldSet) - { - if ((this.rightAlignedField == YesNoType.no)) - { - writer.WriteAttributeString("RightAligned", "no"); - } - if ((this.rightAlignedField == YesNoType.yes)) - { - writer.WriteAttributeString("RightAligned", "yes"); - } - } - if (this.leftScrollFieldSet) - { - if ((this.leftScrollField == YesNoType.no)) - { - writer.WriteAttributeString("LeftScroll", "no"); - } - if ((this.leftScrollField == YesNoType.yes)) - { - writer.WriteAttributeString("LeftScroll", "yes"); - } - } - if (this.errorDialogFieldSet) - { - if ((this.errorDialogField == YesNoType.no)) - { - writer.WriteAttributeString("ErrorDialog", "no"); - } - if ((this.errorDialogField == YesNoType.yes)) - { - writer.WriteAttributeString("ErrorDialog", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("X" == name)) - { - this.xField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.xFieldSet = true; - } - if (("Y" == name)) - { - this.yField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.yFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.widthFieldSet = true; - } - if (("Height" == name)) - { - this.heightField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.heightFieldSet = true; - } - if (("Title" == name)) - { - this.titleField = value; - this.titleFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Modeless" == name)) - { - this.modelessField = Enums.ParseYesNoType(value); - this.modelessFieldSet = true; - } - if (("NoMinimize" == name)) - { - this.noMinimizeField = Enums.ParseYesNoType(value); - this.noMinimizeFieldSet = true; - } - if (("SystemModal" == name)) - { - this.systemModalField = Enums.ParseYesNoType(value); - this.systemModalFieldSet = true; - } - if (("KeepModeless" == name)) - { - this.keepModelessField = Enums.ParseYesNoType(value); - this.keepModelessFieldSet = true; - } - if (("TrackDiskSpace" == name)) - { - this.trackDiskSpaceField = Enums.ParseYesNoType(value); - this.trackDiskSpaceFieldSet = true; - } - if (("CustomPalette" == name)) - { - this.customPaletteField = Enums.ParseYesNoType(value); - this.customPaletteFieldSet = true; - } - if (("RightToLeft" == name)) - { - this.rightToLeftField = Enums.ParseYesNoType(value); - this.rightToLeftFieldSet = true; - } - if (("RightAligned" == name)) - { - this.rightAlignedField = Enums.ParseYesNoType(value); - this.rightAlignedFieldSet = true; - } - if (("LeftScroll" == name)) - { - this.leftScrollField = Enums.ParseYesNoType(value); - this.leftScrollFieldSet = true; - } - if (("ErrorDialog" == name)) - { - this.errorDialogField = Enums.ParseYesNoType(value); - this.errorDialogFieldSet = true; - } - } - } - - /// - /// Reference to a Dialog. This will cause the entire referenced section's contents - /// to be included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DialogRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Dialog to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DialogRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProgressText : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string templateField; - - private bool templateFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// used to format ActionData messages from action processing - /// - public string Template - { - get - { - return this.templateField; - } - set - { - this.templateFieldSet = true; - this.templateField = value; - } - } - - /// - /// Element value is progress message text for action - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProgressText", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.templateFieldSet) - { - writer.WriteAttributeString("Template", this.templateField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("Template" == name)) - { - this.templateField = value; - this.templateFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TextStyle : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string faceNameField; - - private bool faceNameFieldSet; - - private string sizeField; - - private bool sizeFieldSet; - - private int redField; - - private bool redFieldSet; - - private int greenField; - - private bool greenFieldSet; - - private int blueField; - - private bool blueFieldSet; - - private YesNoType boldField; - - private bool boldFieldSet; - - private YesNoType italicField; - - private bool italicFieldSet; - - private YesNoType underlineField; - - private bool underlineFieldSet; - - private YesNoType strikeField; - - private bool strikeFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public string FaceName - { - get - { - return this.faceNameField; - } - set - { - this.faceNameFieldSet = true; - this.faceNameField = value; - } - } - - public string Size - { - get - { - return this.sizeField; - } - set - { - this.sizeFieldSet = true; - this.sizeField = value; - } - } - - /// - /// 0 to 255 - /// - public int Red - { - get - { - return this.redField; - } - set - { - this.redFieldSet = true; - this.redField = value; - } - } - - /// - /// 0 to 255 - /// - public int Green - { - get - { - return this.greenField; - } - set - { - this.greenFieldSet = true; - this.greenField = value; - } - } - - /// - /// 0 to 255 - /// - public int Blue - { - get - { - return this.blueField; - } - set - { - this.blueFieldSet = true; - this.blueField = value; - } - } - - public YesNoType Bold - { - get - { - return this.boldField; - } - set - { - this.boldFieldSet = true; - this.boldField = value; - } - } - - public YesNoType Italic - { - get - { - return this.italicField; - } - set - { - this.italicFieldSet = true; - this.italicField = value; - } - } - - public YesNoType Underline - { - get - { - return this.underlineField; - } - set - { - this.underlineFieldSet = true; - this.underlineField = value; - } - } - - public YesNoType Strike - { - get - { - return this.strikeField; - } - set - { - this.strikeFieldSet = true; - this.strikeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TextStyle", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.faceNameFieldSet) - { - writer.WriteAttributeString("FaceName", this.faceNameField); - } - if (this.sizeFieldSet) - { - writer.WriteAttributeString("Size", this.sizeField); - } - if (this.redFieldSet) - { - writer.WriteAttributeString("Red", this.redField.ToString(CultureInfo.InvariantCulture)); - } - if (this.greenFieldSet) - { - writer.WriteAttributeString("Green", this.greenField.ToString(CultureInfo.InvariantCulture)); - } - if (this.blueFieldSet) - { - writer.WriteAttributeString("Blue", this.blueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.boldFieldSet) - { - if ((this.boldField == YesNoType.no)) - { - writer.WriteAttributeString("Bold", "no"); - } - if ((this.boldField == YesNoType.yes)) - { - writer.WriteAttributeString("Bold", "yes"); - } - } - if (this.italicFieldSet) - { - if ((this.italicField == YesNoType.no)) - { - writer.WriteAttributeString("Italic", "no"); - } - if ((this.italicField == YesNoType.yes)) - { - writer.WriteAttributeString("Italic", "yes"); - } - } - if (this.underlineFieldSet) - { - if ((this.underlineField == YesNoType.no)) - { - writer.WriteAttributeString("Underline", "no"); - } - if ((this.underlineField == YesNoType.yes)) - { - writer.WriteAttributeString("Underline", "yes"); - } - } - if (this.strikeFieldSet) - { - if ((this.strikeField == YesNoType.no)) - { - writer.WriteAttributeString("Strike", "no"); - } - if ((this.strikeField == YesNoType.yes)) - { - writer.WriteAttributeString("Strike", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("FaceName" == name)) - { - this.faceNameField = value; - this.faceNameFieldSet = true; - } - if (("Size" == name)) - { - this.sizeField = value; - this.sizeFieldSet = true; - } - if (("Red" == name)) - { - this.redField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.redFieldSet = true; - } - if (("Green" == name)) - { - this.greenField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.greenFieldSet = true; - } - if (("Blue" == name)) - { - this.blueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.blueFieldSet = true; - } - if (("Bold" == name)) - { - this.boldField = Enums.ParseYesNoType(value); - this.boldFieldSet = true; - } - if (("Italic" == name)) - { - this.italicField = Enums.ParseYesNoType(value); - this.italicFieldSet = true; - } - if (("Underline" == name)) - { - this.underlineField = Enums.ParseYesNoType(value); - this.underlineFieldSet = true; - } - if (("Strike" == name)) - { - this.strikeField = Enums.ParseYesNoType(value); - this.strikeFieldSet = true; - } - } - } - - /// - /// The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ListItem : ISchemaElement, ISetAttributes - { - - private string valueField; - - private bool valueFieldSet; - - private string textField; - - private bool textFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private ISchemaElement parentElement; - - /// - /// The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The localizable, visible text to be assigned to the item. - /// If not specified, this will default to the value of the Value attribute. - /// - public string Text - { - get - { - return this.textField; - } - set - { - this.textFieldSet = true; - this.textField = value; - } - } - - /// - /// The identifier of the Binary (not Icon) element containing the icon to associate with this item. - /// This value is only valid when nested under a ListView element. - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ListItem", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.textFieldSet) - { - writer.WriteAttributeString("Text", this.textField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Text" == name)) - { - this.textField = value; - this.textFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - } - } - - /// - /// Set of items for a particular ListBox control tied to an install Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ListBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public ListBox() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ListItem" == childName)) - { - childValue = new ListItem(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ListBox", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Set of items for a particular ComboBox control tied to an install Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComboBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public ComboBox() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ListItem" == childName)) - { - childValue = new ListItem(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComboBox", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Set of items for a particular ListView control tied to an install Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ListView : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public ListView() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ListItem" == childName)) - { - childValue = new ListItem(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ListView", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RadioButton : ISchemaElement, ISetAttributes - { - - private string bitmapField; - - private bool bitmapFieldSet; - - private string heightField; - - private bool heightFieldSet; - - private string helpField; - - private bool helpFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private string textField; - - private bool textFieldSet; - - private string toolTipField; - - private bool toolTipFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string widthField; - - private bool widthFieldSet; - - private string xField; - - private bool xFieldSet; - - private string yField; - - private bool yFieldSet; - - private ISchemaElement parentElement; - - /// - /// This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference - /// to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text - /// attributes. - /// - public string Bitmap - { - get - { - return this.bitmapField; - } - set - { - this.bitmapFieldSet = true; - this.bitmapField = value; - } - } - - public string Height - { - get - { - return this.heightField; - } - set - { - this.heightFieldSet = true; - this.heightField = value; - } - } - - public string Help - { - get - { - return this.helpField; - } - set - { - this.helpFieldSet = true; - this.helpField = value; - } - } - - /// - /// This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference - /// to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text - /// attributes. - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes. - /// - public string Text - { - get - { - return this.textField; - } - set - { - this.textFieldSet = true; - this.textField = value; - } - } - - public string ToolTip - { - get - { - return this.toolTipField; - } - set - { - this.toolTipFieldSet = true; - this.toolTipField = value; - } - } - - /// - /// Value assigned to the associated control Property when this radio button is selected. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public string Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - public string X - { - get - { - return this.xField; - } - set - { - this.xFieldSet = true; - this.xField = value; - } - } - - public string Y - { - get - { - return this.yField; - } - set - { - this.yFieldSet = true; - this.yField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RadioButton", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.bitmapFieldSet) - { - writer.WriteAttributeString("Bitmap", this.bitmapField); - } - if (this.heightFieldSet) - { - writer.WriteAttributeString("Height", this.heightField); - } - if (this.helpFieldSet) - { - writer.WriteAttributeString("Help", this.helpField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.textFieldSet) - { - writer.WriteAttributeString("Text", this.textField); - } - if (this.toolTipFieldSet) - { - writer.WriteAttributeString("ToolTip", this.toolTipField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField); - } - if (this.xFieldSet) - { - writer.WriteAttributeString("X", this.xField); - } - if (this.yFieldSet) - { - writer.WriteAttributeString("Y", this.yField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Bitmap" == name)) - { - this.bitmapField = value; - this.bitmapFieldSet = true; - } - if (("Height" == name)) - { - this.heightField = value; - this.heightFieldSet = true; - } - if (("Help" == name)) - { - this.helpField = value; - this.helpFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("Text" == name)) - { - this.textField = value; - this.textFieldSet = true; - } - if (("ToolTip" == name)) - { - this.toolTipField = value; - this.toolTipFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = value; - this.widthFieldSet = true; - } - if (("X" == name)) - { - this.xField = value; - this.xFieldSet = true; - } - if (("Y" == name)) - { - this.yField = value; - this.yFieldSet = true; - } - } - } - - /// - /// Set of radio buttons tied to the specified Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RadioButtonGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public RadioButtonGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButton))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("RadioButton" == childName)) - { - childValue = new RadioButton(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RadioButtonGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Text associated with certain controls - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UIText : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Element value is text, may use CDATA if needed to escape XML delimiters - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UIText", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Reference to a UI element. This will force the entire referenced Fragment's contents - /// to be included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UIRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UIRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Enclosing element to compartmentalize UI specifications. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public UI() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedUI))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Error))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgressText))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BillboardAction))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComboBox))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListBox))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListView))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RadioButtonGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TextStyle))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIText))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Dialog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DialogRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("EmbeddedUI" == childName)) - { - childValue = new EmbeddedUI(); - } - if (("Error" == childName)) - { - childValue = new Error(); - } - if (("ProgressText" == childName)) - { - childValue = new ProgressText(); - } - if (("BillboardAction" == childName)) - { - childValue = new BillboardAction(); - } - if (("ComboBox" == childName)) - { - childValue = new ComboBox(); - } - if (("ListBox" == childName)) - { - childValue = new ListBox(); - } - if (("ListView" == childName)) - { - childValue = new ListView(); - } - if (("RadioButtonGroup" == childName)) - { - childValue = new RadioButtonGroup(); - } - if (("TextStyle" == childName)) - { - childValue = new TextStyle(); - } - if (("UIText" == childName)) - { - childValue = new UIText(); - } - if (("Dialog" == childName)) - { - childValue = new Dialog(); - } - if (("DialogRef" == childName)) - { - childValue = new DialogRef(); - } - if (("Publish" == childName)) - { - childValue = new Publish(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UI", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Defines a custom table for use from a custom action. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomTable : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType bootstrapperApplicationDataField; - - private bool bootstrapperApplicationDataFieldSet; - - private ISchemaElement parentElement; - - public CustomTable() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Column))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Row))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the custom table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Indicates the table data is transformed into the bootstrapper application data manifest. - /// - public YesNoType BootstrapperApplicationData - { - get - { - return this.bootstrapperApplicationDataField; - } - set - { - this.bootstrapperApplicationDataFieldSet = true; - this.bootstrapperApplicationDataField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Column" == childName)) - { - childValue = new Column(); - } - if (("Row" == childName)) - { - childValue = new Row(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomTable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.bootstrapperApplicationDataFieldSet) - { - if ((this.bootstrapperApplicationDataField == YesNoType.no)) - { - writer.WriteAttributeString("BootstrapperApplicationData", "no"); - } - if ((this.bootstrapperApplicationDataField == YesNoType.yes)) - { - writer.WriteAttributeString("BootstrapperApplicationData", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("BootstrapperApplicationData" == name)) - { - this.bootstrapperApplicationDataField = Enums.ParseYesNoType(value); - this.bootstrapperApplicationDataFieldSet = true; - } - } - } - - /// - /// Column definition for a Custom Table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Column : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryKeyField; - - private bool primaryKeyFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private int widthField; - - private bool widthFieldSet; - - private YesNoType nullableField; - - private bool nullableFieldSet; - - private YesNoType localizableField; - - private bool localizableFieldSet; - - private long minValueField; - - private bool minValueFieldSet; - - private long maxValueField; - - private bool maxValueFieldSet; - - private string keyTableField; - - private bool keyTableFieldSet; - - private int keyColumnField; - - private bool keyColumnFieldSet; - - private CategoryType categoryField; - - private bool categoryFieldSet; - - private string setField; - - private bool setFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private ModularizeType modularizeField; - - private bool modularizeFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for the column. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Whether this column is a primary key. - /// - public YesNoType PrimaryKey - { - get - { - return this.primaryKeyField; - } - set - { - this.primaryKeyFieldSet = true; - this.primaryKeyField = value; - } - } - - /// - /// The type of this column. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Width of this column. - /// - public int Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - /// - /// Whether this column can be left null. - /// - public YesNoType Nullable - { - get - { - return this.nullableField; - } - set - { - this.nullableFieldSet = true; - this.nullableField = value; - } - } - - /// - /// Whether this column can be localized. - /// - public YesNoType Localizable - { - get - { - return this.localizableField; - } - set - { - this.localizableFieldSet = true; - this.localizableField = value; - } - } - - /// - /// Minimum value for a numeric value, date or version in this column. - /// - public long MinValue - { - get - { - return this.minValueField; - } - set - { - this.minValueFieldSet = true; - this.minValueField = value; - } - } - - /// - /// Maximum value for a numeric value, date or version in this column. - /// - public long MaxValue - { - get - { - return this.maxValueField; - } - set - { - this.maxValueFieldSet = true; - this.maxValueField = value; - } - } - - /// - /// Table in which this column is an external key. Can be semicolon delimited. - /// - public string KeyTable - { - get - { - return this.keyTableField; - } - set - { - this.keyTableFieldSet = true; - this.keyTableField = value; - } - } - - /// - /// Column in the table in KeyTable attribute. - /// - public int KeyColumn - { - get - { - return this.keyColumnField; - } - set - { - this.keyColumnFieldSet = true; - this.keyColumnField = value; - } - } - - /// - /// Category of this column. - /// This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'. - /// - public CategoryType Category - { - get - { - return this.categoryField; - } - set - { - this.categoryFieldSet = true; - this.categoryField = value; - } - } - - /// - /// Semicolon delimited list of permissible values. - /// - public string Set - { - get - { - return this.setField; - } - set - { - this.setFieldSet = true; - this.setField = value; - } - } - - /// - /// Description of this column. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// How this column should be modularized, if at all. - /// - public ModularizeType Modularize - { - get - { - return this.modularizeField; - } - set - { - this.modularizeFieldSet = true; - this.modularizeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - Column.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("binary" == value)) - { - parsedValue = TypeType.binary; - } - else - { - if (("int" == value)) - { - parsedValue = TypeType.@int; - } - else - { - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a CategoryType from a string. - /// - public static CategoryType ParseCategoryType(string value) - { - CategoryType parsedValue; - Column.TryParseCategoryType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a CategoryType from a string. - /// - public static bool TryParseCategoryType(string value, out CategoryType parsedValue) - { - parsedValue = CategoryType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Text" == value)) - { - parsedValue = CategoryType.Text; - } - else - { - if (("UpperCase" == value)) - { - parsedValue = CategoryType.UpperCase; - } - else - { - if (("LowerCase" == value)) - { - parsedValue = CategoryType.LowerCase; - } - else - { - if (("Integer" == value)) - { - parsedValue = CategoryType.Integer; - } - else - { - if (("DoubleInteger" == value)) - { - parsedValue = CategoryType.DoubleInteger; - } - else - { - if (("TimeDate" == value)) - { - parsedValue = CategoryType.TimeDate; - } - else - { - if (("Identifier" == value)) - { - parsedValue = CategoryType.Identifier; - } - else - { - if (("Property" == value)) - { - parsedValue = CategoryType.Property; - } - else - { - if (("Filename" == value)) - { - parsedValue = CategoryType.Filename; - } - else - { - if (("WildCardFilename" == value)) - { - parsedValue = CategoryType.WildCardFilename; - } - else - { - if (("Path" == value)) - { - parsedValue = CategoryType.Path; - } - else - { - if (("Paths" == value)) - { - parsedValue = CategoryType.Paths; - } - else - { - if (("AnyPath" == value)) - { - parsedValue = CategoryType.AnyPath; - } - else - { - if (("DefaultDir" == value)) - { - parsedValue = CategoryType.DefaultDir; - } - else - { - if (("RegPath" == value)) - { - parsedValue = CategoryType.RegPath; - } - else - { - if (("Formatted" == value)) - { - parsedValue = CategoryType.Formatted; - } - else - { - if (("FormattedSddl" == value)) - { - parsedValue = CategoryType.FormattedSddl; - } - else - { - if (("Template" == value)) - { - parsedValue = CategoryType.Template; - } - else - { - if (("Condition" == value)) - { - parsedValue = CategoryType.Condition; - } - else - { - if (("Guid" == value)) - { - parsedValue = CategoryType.Guid; - } - else - { - if (("Version" == value)) - { - parsedValue = CategoryType.Version; - } - else - { - if (("Language" == value)) - { - parsedValue = CategoryType.Language; - } - else - { - if (("Binary" == value)) - { - parsedValue = CategoryType.Binary; - } - else - { - if (("CustomSource" == value)) - { - parsedValue = CategoryType.CustomSource; - } - else - { - if (("Cabinet" == value)) - { - parsedValue = CategoryType.Cabinet; - } - else - { - if (("Shortcut" == value)) - { - parsedValue = CategoryType.Shortcut; - } - else - { - parsedValue = CategoryType.IllegalValue; - return false; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return true; - } - - /// - /// Parses a ModularizeType from a string. - /// - public static ModularizeType ParseModularizeType(string value) - { - ModularizeType parsedValue; - Column.TryParseModularizeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ModularizeType from a string. - /// - public static bool TryParseModularizeType(string value, out ModularizeType parsedValue) - { - parsedValue = ModularizeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("None" == value)) - { - parsedValue = ModularizeType.None; - } - else - { - if (("Column" == value)) - { - parsedValue = ModularizeType.Column; - } - else - { - if (("Condition" == value)) - { - parsedValue = ModularizeType.Condition; - } - else - { - if (("Icon" == value)) - { - parsedValue = ModularizeType.Icon; - } - else - { - if (("Property" == value)) - { - parsedValue = ModularizeType.Property; - } - else - { - if (("SemicolonDelimited" == value)) - { - parsedValue = ModularizeType.SemicolonDelimited; - } - else - { - parsedValue = ModularizeType.IllegalValue; - return false; - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Column", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryKeyFieldSet) - { - if ((this.primaryKeyField == YesNoType.no)) - { - writer.WriteAttributeString("PrimaryKey", "no"); - } - if ((this.primaryKeyField == YesNoType.yes)) - { - writer.WriteAttributeString("PrimaryKey", "yes"); - } - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.binary)) - { - writer.WriteAttributeString("Type", "binary"); - } - if ((this.typeField == TypeType.@int)) - { - writer.WriteAttributeString("Type", "int"); - } - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); - } - if (this.nullableFieldSet) - { - if ((this.nullableField == YesNoType.no)) - { - writer.WriteAttributeString("Nullable", "no"); - } - if ((this.nullableField == YesNoType.yes)) - { - writer.WriteAttributeString("Nullable", "yes"); - } - } - if (this.localizableFieldSet) - { - if ((this.localizableField == YesNoType.no)) - { - writer.WriteAttributeString("Localizable", "no"); - } - if ((this.localizableField == YesNoType.yes)) - { - writer.WriteAttributeString("Localizable", "yes"); - } - } - if (this.minValueFieldSet) - { - writer.WriteAttributeString("MinValue", this.minValueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maxValueFieldSet) - { - writer.WriteAttributeString("MaxValue", this.maxValueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.keyTableFieldSet) - { - writer.WriteAttributeString("KeyTable", this.keyTableField); - } - if (this.keyColumnFieldSet) - { - writer.WriteAttributeString("KeyColumn", this.keyColumnField.ToString(CultureInfo.InvariantCulture)); - } - if (this.categoryFieldSet) - { - if ((this.categoryField == CategoryType.Text)) - { - writer.WriteAttributeString("Category", "Text"); - } - if ((this.categoryField == CategoryType.UpperCase)) - { - writer.WriteAttributeString("Category", "UpperCase"); - } - if ((this.categoryField == CategoryType.LowerCase)) - { - writer.WriteAttributeString("Category", "LowerCase"); - } - if ((this.categoryField == CategoryType.Integer)) - { - writer.WriteAttributeString("Category", "Integer"); - } - if ((this.categoryField == CategoryType.DoubleInteger)) - { - writer.WriteAttributeString("Category", "DoubleInteger"); - } - if ((this.categoryField == CategoryType.TimeDate)) - { - writer.WriteAttributeString("Category", "TimeDate"); - } - if ((this.categoryField == CategoryType.Identifier)) - { - writer.WriteAttributeString("Category", "Identifier"); - } - if ((this.categoryField == CategoryType.Property)) - { - writer.WriteAttributeString("Category", "Property"); - } - if ((this.categoryField == CategoryType.Filename)) - { - writer.WriteAttributeString("Category", "Filename"); - } - if ((this.categoryField == CategoryType.WildCardFilename)) - { - writer.WriteAttributeString("Category", "WildCardFilename"); - } - if ((this.categoryField == CategoryType.Path)) - { - writer.WriteAttributeString("Category", "Path"); - } - if ((this.categoryField == CategoryType.Paths)) - { - writer.WriteAttributeString("Category", "Paths"); - } - if ((this.categoryField == CategoryType.AnyPath)) - { - writer.WriteAttributeString("Category", "AnyPath"); - } - if ((this.categoryField == CategoryType.DefaultDir)) - { - writer.WriteAttributeString("Category", "DefaultDir"); - } - if ((this.categoryField == CategoryType.RegPath)) - { - writer.WriteAttributeString("Category", "RegPath"); - } - if ((this.categoryField == CategoryType.Formatted)) - { - writer.WriteAttributeString("Category", "Formatted"); - } - if ((this.categoryField == CategoryType.FormattedSddl)) - { - writer.WriteAttributeString("Category", "FormattedSddl"); - } - if ((this.categoryField == CategoryType.Template)) - { - writer.WriteAttributeString("Category", "Template"); - } - if ((this.categoryField == CategoryType.Condition)) - { - writer.WriteAttributeString("Category", "Condition"); - } - if ((this.categoryField == CategoryType.Guid)) - { - writer.WriteAttributeString("Category", "Guid"); - } - if ((this.categoryField == CategoryType.Version)) - { - writer.WriteAttributeString("Category", "Version"); - } - if ((this.categoryField == CategoryType.Language)) - { - writer.WriteAttributeString("Category", "Language"); - } - if ((this.categoryField == CategoryType.Binary)) - { - writer.WriteAttributeString("Category", "Binary"); - } - if ((this.categoryField == CategoryType.CustomSource)) - { - writer.WriteAttributeString("Category", "CustomSource"); - } - if ((this.categoryField == CategoryType.Cabinet)) - { - writer.WriteAttributeString("Category", "Cabinet"); - } - if ((this.categoryField == CategoryType.Shortcut)) - { - writer.WriteAttributeString("Category", "Shortcut"); - } - } - if (this.setFieldSet) - { - writer.WriteAttributeString("Set", this.setField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.modularizeFieldSet) - { - if ((this.modularizeField == ModularizeType.None)) - { - writer.WriteAttributeString("Modularize", "None"); - } - if ((this.modularizeField == ModularizeType.Column)) - { - writer.WriteAttributeString("Modularize", "Column"); - } - if ((this.modularizeField == ModularizeType.Condition)) - { - writer.WriteAttributeString("Modularize", "Condition"); - } - if ((this.modularizeField == ModularizeType.Icon)) - { - writer.WriteAttributeString("Modularize", "Icon"); - } - if ((this.modularizeField == ModularizeType.Property)) - { - writer.WriteAttributeString("Modularize", "Property"); - } - if ((this.modularizeField == ModularizeType.SemicolonDelimited)) - { - writer.WriteAttributeString("Modularize", "SemicolonDelimited"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("PrimaryKey" == name)) - { - this.primaryKeyField = Enums.ParseYesNoType(value); - this.primaryKeyFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Column.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.widthFieldSet = true; - } - if (("Nullable" == name)) - { - this.nullableField = Enums.ParseYesNoType(value); - this.nullableFieldSet = true; - } - if (("Localizable" == name)) - { - this.localizableField = Enums.ParseYesNoType(value); - this.localizableFieldSet = true; - } - if (("MinValue" == name)) - { - this.minValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.minValueFieldSet = true; - } - if (("MaxValue" == name)) - { - this.maxValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maxValueFieldSet = true; - } - if (("KeyTable" == name)) - { - this.keyTableField = value; - this.keyTableFieldSet = true; - } - if (("KeyColumn" == name)) - { - this.keyColumnField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.keyColumnFieldSet = true; - } - if (("Category" == name)) - { - this.categoryField = Column.ParseCategoryType(value); - this.categoryFieldSet = true; - } - if (("Set" == name)) - { - this.setField = value; - this.setFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Modularize" == name)) - { - this.modularizeField = Column.ParseModularizeType(value); - this.modularizeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Column contains a path to a file that will be inserted into the column as a binary object. - /// If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation. - /// - binary, - - /// - /// Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set). - /// - @int, - - /// - /// Column contains a non-localizable string value. - /// - @string, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum CategoryType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Text, - - UpperCase, - - LowerCase, - - Integer, - - DoubleInteger, - - TimeDate, - - Identifier, - - Property, - - Filename, - - WildCardFilename, - - Path, - - Paths, - - AnyPath, - - DefaultDir, - - RegPath, - - Formatted, - - FormattedSddl, - - Template, - - Condition, - - Guid, - - Version, - - Language, - - Binary, - - CustomSource, - - Cabinet, - - Shortcut, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ModularizeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Column should not be modularized. This is the default value. - /// - None, - - /// - /// Column should be modularized. - /// - Column, - - /// - /// Column is a condition and should be modularized. - /// - Condition, - - /// - /// When the column is an primary or foreign key to the Icon table it should be modularized special. - /// - Icon, - - /// - /// Any Properties in the column should be modularized. - /// - Property, - - /// - /// Semi-colon list of keys, all of which need to be modularized. - /// - SemicolonDelimited, - } - } - - /// - /// Row data for a Custom Table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Row : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public Row() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Data))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Data" == childName)) - { - childValue = new Data(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Row", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Used for a Custom Table. Specifies the data for the parent Row and specified Column. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Data : ISchemaElement, ISetAttributes - { - - private string columnField; - - private bool columnFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies in which column to insert this data. - /// - public string Column - { - get - { - return this.columnField; - } - set - { - this.columnFieldSet = true; - this.columnField = value; - } - } - - /// - /// A data value - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Data", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.columnFieldSet) - { - writer.WriteAttributeString("Column", this.columnField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Column" == name)) - { - this.columnField = value; - this.columnFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Use this element to ensure that a table appears in the installer database, even if its empty. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EnsureTable : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EnsureTable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// This element exposes advanced WiX functionality. Use this element to declare WiX variables - /// from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp - /// file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot - /// be used when an MSI file is being installed; it's a WiX-only concept. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WixVariable : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the variable. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this value to 'yes' in order to make the variable's value overridable either by - /// another WixVariable entry or via the command-line option -d<name>=<value> - /// for light.exe. If the same variable is declared overridable in multiple places it - /// will cause an error (since WiX won't know which value is correct). The default value - /// is 'no'. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - /// - /// The value of the variable. The value cannot be an empty string because that would - /// make it possible to accidentally set a column to null. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WixVariable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Use this element to contain definitions for instance transforms. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstanceTransforms : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public InstanceTransforms() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Instance))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The Id of the Property who's value should change for each instance. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Instance" == childName)) - { - childValue = new Instance(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstanceTransforms", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Defines an instance transform for your product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Instance : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private string productNameField; - - private bool productNameFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identity of the instance transform. This value will define the name by which the instance - /// should be referred to on the command line. In addition, the value of the this attribute will - /// determine what the value of the property specified in Property attribute on InstanceTransforms - /// will change to for each instance. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The ProductCode for this instance. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - /// - /// The ProductName for this instance. - /// - public string ProductName - { - get - { - return this.productNameField; - } - set - { - this.productNameFieldSet = true; - this.productNameField = value; - } - } - - /// - /// The UpgradeCode for this instance. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Instance", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - if (this.productNameFieldSet) - { - writer.WriteAttributeString("ProductName", this.productNameField); - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - if (("ProductName" == name)) - { - this.productNameField = value; - this.productNameFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - } - } - - /// - /// Simplifies authoring for major upgrades, including support for preventing downgrades. - /// - /// The parent Product element must have valid UpgradeCode and Version attributes. - /// - /// When the FindRelatedProducts action detects a related product installed on the system, - /// it appends the product code to the property named WIX_UPGRADE_DETECTED. After the - /// FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a - /// list of product codes, separated by semicolons (;), detected on the system. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MajorUpgrade : ISchemaElement, ISetAttributes - { - - private YesNoType allowDowngradesField; - - private bool allowDowngradesFieldSet; - - private YesNoType allowSameVersionUpgradesField; - - private bool allowSameVersionUpgradesFieldSet; - - private YesNoType disallowField; - - private bool disallowFieldSet; - - private string downgradeErrorMessageField; - - private bool downgradeErrorMessageFieldSet; - - private string disallowUpgradeErrorMessageField; - - private bool disallowUpgradeErrorMessageFieldSet; - - private YesNoType migrateFeaturesField; - - private bool migrateFeaturesFieldSet; - - private YesNoType ignoreLanguageField; - - private bool ignoreLanguageFieldSet; - - private YesNoType ignoreRemoveFailureField; - - private bool ignoreRemoveFailureFieldSet; - - private string removeFeaturesField; - - private bool removeFeaturesFieldSet; - - private ScheduleType scheduleField; - - private bool scheduleFieldSet; - - private ISchemaElement parentElement; - - /// - /// When set to no (the default), products with lower version numbers are blocked from - /// installing when a product with a higher version is installed; the DowngradeErrorMessage - /// attribute must also be specified. - /// - /// When set to yes, any version can be installed over any other version. - /// - public YesNoType AllowDowngrades - { - get - { - return this.allowDowngradesField; - } - set - { - this.allowDowngradesFieldSet = true; - this.allowDowngradesField = value; - } - } - - /// - /// When set to no (the default), installing a product with the same version and upgrade code - /// (but different product code) is allowed and treated by MSI as two products. When set to yes, - /// WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat - /// a product with the same version as a major upgrade. - /// - /// This is useful when two product versions differ only in the fourth version field. MSI - /// specifically ignores that field when comparing product versions, so two products that - /// differ only in the fourth version field are the same product and need this attribute set to - /// yes to be detected. - /// - /// Note that because MSI ignores the fourth product version field, setting this attribute to - /// yes also allows downgrades when the first three product version fields are identical. - /// For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the - /// same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change - /// the first three version fields and omit this attribute to get the default of no. - /// - /// This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades - /// already allows two products with the same version number to upgrade each other. - /// - public YesNoType AllowSameVersionUpgrades - { - get - { - return this.allowSameVersionUpgradesField; - } - set - { - this.allowSameVersionUpgradesFieldSet = true; - this.allowSameVersionUpgradesField = value; - } - } - - /// - /// When set to yes, products with higer version numbers are blocked from - /// installing when a product with a lower version is installed; the UpgradeErrorMessage - /// attribute must also be specified. - /// - /// When set to no (the default), any version can be installed over any lower version. - /// - public YesNoType Disallow - { - get - { - return this.disallowField; - } - set - { - this.disallowFieldSet = true; - this.disallowField = value; - } - } - - /// - /// The message displayed if users try to install a product with a lower version number - /// when a product with a higher version is installed. Used only when AllowDowngrades - /// is no (the default). - /// - public string DowngradeErrorMessage - { - get - { - return this.downgradeErrorMessageField; - } - set - { - this.downgradeErrorMessageFieldSet = true; - this.downgradeErrorMessageField = value; - } - } - - /// - /// The message displayed if users try to install a product with a higer version number - /// when a product with a lower version is installed. Used only when Disallow - /// is yes. - /// - public string DisallowUpgradeErrorMessage - { - get - { - return this.disallowUpgradeErrorMessageField; - } - set - { - this.disallowUpgradeErrorMessageFieldSet = true; - this.disallowUpgradeErrorMessageField = value; - } - } - - /// - /// When set to yes (the default), the MigrateFeatureStates standard action will set the - /// feature states of the upgrade product to those of the installed product. - /// - /// When set to no, the installed features have no effect on the upgrade installation. - /// - public YesNoType MigrateFeatures - { - get - { - return this.migrateFeaturesField; - } - set - { - this.migrateFeaturesFieldSet = true; - this.migrateFeaturesField = value; - } - } - - /// - /// When set to yes, the Upgrade table rows will match any product with the same UpgradeCode. - /// - /// When set to no (the default), the Upgrade table rows will match only products with the - /// same UpgradeCode and ProductLanguage. - /// - public YesNoType IgnoreLanguage - { - get - { - return this.ignoreLanguageField; - } - set - { - this.ignoreLanguageFieldSet = true; - this.ignoreLanguageField = value; - } - } - - /// - /// When set to yes, failures removing the installed product during the upgrade will be - /// ignored. - /// - /// When set to no (the default), failures removing the installed product during the upgrade - /// will be considered a failure and, depending on the scheduling, roll back the upgrade. - /// - public YesNoType IgnoreRemoveFailure - { - get - { - return this.ignoreRemoveFailureField; - } - set - { - this.ignoreRemoveFailureFieldSet = true; - this.ignoreRemoveFailureField = value; - } - } - - /// - /// A formatted string that contains the list of features to remove from the installed - /// product. The default is to remove all features. Note that if you use formatted property - /// values that evaluate to an empty string, no features will be removed; only omitting - /// this attribute defaults to removing all features. - /// - public string RemoveFeatures - { - get - { - return this.removeFeaturesField; - } - set - { - this.removeFeaturesFieldSet = true; - this.removeFeaturesField = value; - } - } - - /// - /// Determines the scheduling of the RemoveExistingProducts standard action, which is when - /// the installed product is removed. The default is "afterInstallValidate" which removes - /// the installed product entirely before installing the upgrade product. It's slowest but - /// gives the most flexibility in changing components and features in the upgrade product. - /// - /// For more information, see - /// - public ScheduleType Schedule - { - get - { - return this.scheduleField; - } - set - { - this.scheduleFieldSet = true; - this.scheduleField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ScheduleType from a string. - /// - public static ScheduleType ParseScheduleType(string value) - { - ScheduleType parsedValue; - MajorUpgrade.TryParseScheduleType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ScheduleType from a string. - /// - public static bool TryParseScheduleType(string value, out ScheduleType parsedValue) - { - parsedValue = ScheduleType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("afterInstallValidate" == value)) - { - parsedValue = ScheduleType.afterInstallValidate; - } - else - { - if (("afterInstallInitialize" == value)) - { - parsedValue = ScheduleType.afterInstallInitialize; - } - else - { - if (("afterInstallExecute" == value)) - { - parsedValue = ScheduleType.afterInstallExecute; - } - else - { - if (("afterInstallExecuteAgain" == value)) - { - parsedValue = ScheduleType.afterInstallExecuteAgain; - } - else - { - if (("afterInstallFinalize" == value)) - { - parsedValue = ScheduleType.afterInstallFinalize; - } - else - { - parsedValue = ScheduleType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MajorUpgrade", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.allowDowngradesFieldSet) - { - if ((this.allowDowngradesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowDowngrades", "no"); - } - if ((this.allowDowngradesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowDowngrades", "yes"); - } - } - if (this.allowSameVersionUpgradesFieldSet) - { - if ((this.allowSameVersionUpgradesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowSameVersionUpgrades", "no"); - } - if ((this.allowSameVersionUpgradesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowSameVersionUpgrades", "yes"); - } - } - if (this.disallowFieldSet) - { - if ((this.disallowField == YesNoType.no)) - { - writer.WriteAttributeString("Disallow", "no"); - } - if ((this.disallowField == YesNoType.yes)) - { - writer.WriteAttributeString("Disallow", "yes"); - } - } - if (this.downgradeErrorMessageFieldSet) - { - writer.WriteAttributeString("DowngradeErrorMessage", this.downgradeErrorMessageField); - } - if (this.disallowUpgradeErrorMessageFieldSet) - { - writer.WriteAttributeString("DisallowUpgradeErrorMessage", this.disallowUpgradeErrorMessageField); - } - if (this.migrateFeaturesFieldSet) - { - if ((this.migrateFeaturesField == YesNoType.no)) - { - writer.WriteAttributeString("MigrateFeatures", "no"); - } - if ((this.migrateFeaturesField == YesNoType.yes)) - { - writer.WriteAttributeString("MigrateFeatures", "yes"); - } - } - if (this.ignoreLanguageFieldSet) - { - if ((this.ignoreLanguageField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreLanguage", "no"); - } - if ((this.ignoreLanguageField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreLanguage", "yes"); - } - } - if (this.ignoreRemoveFailureFieldSet) - { - if ((this.ignoreRemoveFailureField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "no"); - } - if ((this.ignoreRemoveFailureField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); - } - } - if (this.removeFeaturesFieldSet) - { - writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); - } - if (this.scheduleFieldSet) - { - if ((this.scheduleField == ScheduleType.afterInstallValidate)) - { - writer.WriteAttributeString("Schedule", "afterInstallValidate"); - } - if ((this.scheduleField == ScheduleType.afterInstallInitialize)) - { - writer.WriteAttributeString("Schedule", "afterInstallInitialize"); - } - if ((this.scheduleField == ScheduleType.afterInstallExecute)) - { - writer.WriteAttributeString("Schedule", "afterInstallExecute"); - } - if ((this.scheduleField == ScheduleType.afterInstallExecuteAgain)) - { - writer.WriteAttributeString("Schedule", "afterInstallExecuteAgain"); - } - if ((this.scheduleField == ScheduleType.afterInstallFinalize)) - { - writer.WriteAttributeString("Schedule", "afterInstallFinalize"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("AllowDowngrades" == name)) - { - this.allowDowngradesField = Enums.ParseYesNoType(value); - this.allowDowngradesFieldSet = true; - } - if (("AllowSameVersionUpgrades" == name)) - { - this.allowSameVersionUpgradesField = Enums.ParseYesNoType(value); - this.allowSameVersionUpgradesFieldSet = true; - } - if (("Disallow" == name)) - { - this.disallowField = Enums.ParseYesNoType(value); - this.disallowFieldSet = true; - } - if (("DowngradeErrorMessage" == name)) - { - this.downgradeErrorMessageField = value; - this.downgradeErrorMessageFieldSet = true; - } - if (("DisallowUpgradeErrorMessage" == name)) - { - this.disallowUpgradeErrorMessageField = value; - this.disallowUpgradeErrorMessageFieldSet = true; - } - if (("MigrateFeatures" == name)) - { - this.migrateFeaturesField = Enums.ParseYesNoType(value); - this.migrateFeaturesFieldSet = true; - } - if (("IgnoreLanguage" == name)) - { - this.ignoreLanguageField = Enums.ParseYesNoType(value); - this.ignoreLanguageFieldSet = true; - } - if (("IgnoreRemoveFailure" == name)) - { - this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); - this.ignoreRemoveFailureFieldSet = true; - } - if (("RemoveFeatures" == name)) - { - this.removeFeaturesField = value; - this.removeFeaturesFieldSet = true; - } - if (("Schedule" == name)) - { - this.scheduleField = MajorUpgrade.ParseScheduleType(value); - this.scheduleFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ScheduleType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// (Default) Schedules RemoveExistingProducts after the InstallValidate standard - /// action. This scheduling removes the installed product entirely before installing - /// the upgrade product. It's slowest but gives the most flexibility in changing - /// components and features in the upgrade product. Note that if the installation - /// of the upgrade product fails, the machine will have neither version installed. - /// - afterInstallValidate, - - /// - /// Schedules RemoveExistingProducts after the InstallInitialize standard action. - /// This is similar to the afterInstallValidate scheduling, but if the installation - /// of the upgrade product fails, Windows Installer also rolls back the removal of - /// the installed product -- in other words, reinstalls it. - /// - afterInstallInitialize, - - /// - /// Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions. - /// This scheduling installs the upgrade product "on top of" the installed product then lets - /// RemoveExistingProducts uninstall any components that don't also exist in the upgrade product. - /// Note that this scheduling requires strict adherence to the component rules because it relies - /// on component reference counts to be accurate during installation of the upgrade product and - /// removal of the installed product. For more information, see - /// - afterInstallExecute, - - /// - /// Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions. - /// This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard - /// action instead of InstallExecute. - /// - afterInstallExecuteAgain, - - /// - /// Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the - /// afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the - /// installation transaction so if installation of the upgrade product fails, Windows Installer does - /// not roll back the removal of the installed product, so the machine will have both versions - /// installed. - /// - afterInstallFinalize, - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProductSearch : ISchemaElement, ISetAttributes - { - - private string minimumField; - - private bool minimumFieldSet; - - private string maximumField; - - private bool maximumFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private YesNoType includeMinimumField; - - private bool includeMinimumFieldSet; - - private YesNoType includeMaximumField; - - private bool includeMaximumFieldSet; - - private YesNoType excludeLanguagesField; - - private bool excludeLanguagesFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. - /// - public string Minimum - { - get - { - return this.minimumField; - } - set - { - this.minimumFieldSet = true; - this.minimumField = value; - } - } - - /// - /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. - /// - public string Maximum - { - get - { - return this.maximumField; - } - set - { - this.maximumFieldSet = true; - this.maximumField = value; - } - } - - /// - /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. - /// - public YesNoType IncludeMinimum - { - get - { - return this.includeMinimumField; - } - set - { - this.includeMinimumFieldSet = true; - this.includeMinimumField = value; - } - } - - /// - /// Set to "yes" to make the range of versions detected include the value specified in Maximum. - /// - public YesNoType IncludeMaximum - { - get - { - return this.includeMaximumField; - } - set - { - this.includeMaximumFieldSet = true; - this.includeMaximumField = value; - } - } - - /// - /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. - /// - public YesNoType ExcludeLanguages - { - get - { - return this.excludeLanguagesField; - } - set - { - this.excludeLanguagesFieldSet = true; - this.excludeLanguagesField = value; - } - } - - /// - /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProductSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.minimumFieldSet) - { - writer.WriteAttributeString("Minimum", this.minimumField); - } - if (this.maximumFieldSet) - { - writer.WriteAttributeString("Maximum", this.maximumField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.includeMinimumFieldSet) - { - if ((this.includeMinimumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMinimum", "no"); - } - if ((this.includeMinimumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMinimum", "yes"); - } - } - if (this.includeMaximumFieldSet) - { - if ((this.includeMaximumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMaximum", "no"); - } - if ((this.includeMaximumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMaximum", "yes"); - } - } - if (this.excludeLanguagesFieldSet) - { - if ((this.excludeLanguagesField == YesNoType.no)) - { - writer.WriteAttributeString("ExcludeLanguages", "no"); - } - if ((this.excludeLanguagesField == YesNoType.yes)) - { - writer.WriteAttributeString("ExcludeLanguages", "yes"); - } - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Minimum" == name)) - { - this.minimumField = value; - this.minimumFieldSet = true; - } - if (("Maximum" == name)) - { - this.maximumField = value; - this.maximumFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("IncludeMinimum" == name)) - { - this.includeMinimumField = Enums.ParseYesNoType(value); - this.includeMinimumFieldSet = true; - } - if (("IncludeMaximum" == name)) - { - this.includeMaximumField = Enums.ParseYesNoType(value); - this.includeMaximumFieldSet = true; - } - if (("ExcludeLanguages" == name)) - { - this.excludeLanguagesField = Enums.ParseYesNoType(value); - this.excludeLanguagesFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } -} diff --git a/src/WixToolset.Data/Data/messages.cs b/src/WixToolset.Data/Data/messages.cs deleted file mode 100644 index ef2fc446..00000000 --- a/src/WixToolset.Data/Data/messages.cs +++ /dev/null @@ -1,118 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WixToolset.Data -{ - using System; - using System.Reflection; - using System.Resources; - - - public class WixDataErrorEventArgs : MessageEventArgs - { - - private static ResourceManager resourceManager = new ResourceManager("WixToolset.Data.Data.Messages", Assembly.GetExecutingAssembly()); - - public WixDataErrorEventArgs(SourceLineNumber sourceLineNumbers, int id, string resourceName, params object[] messageArgs) : - base(sourceLineNumbers, id, resourceName, messageArgs) - { - base.Level = MessageLevel.Error; - base.ResourceManager = resourceManager; - } - } - - public sealed class WixDataErrors - { - - private WixDataErrors() - { - } - - public static MessageEventArgs UnexpectedFileFormat(string path, string expectedFormat, string actualFormat) - { - return new WixDataErrorEventArgs(null, 1, "WixDataErrors_UnexpectedFileFormat_1", path, expectedFormat, actualFormat); - } - - public static MessageEventArgs CorruptFileFormat(string path, string format) - { - return new WixDataErrorEventArgs(null, 2, "WixDataErrors_CorruptFileFormat_1", path, format); - } - - public static MessageEventArgs InvalidFileName(SourceLineNumber sourceLineNumbers, string fileName) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 85, "WixDataErrors_InvalidFileName_1", fileName); - } - - public static MessageEventArgs DuplicateLocalizationIdentifier(SourceLineNumber sourceLineNumbers, string localizationId) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 100, "WixDataErrors_DuplicateLocalizationIdentifier_1", localizationId); - } - - public static MessageEventArgs FileNotFound(SourceLineNumber sourceLineNumbers, string file) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 103, "WixDataErrors_FileNotFound_1", file); - } - - public static MessageEventArgs FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 103, "WixDataErrors_FileNotFound_2", file, fileType); - } - - public static MessageEventArgs DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 130, "WixDataErrors_DuplicatePrimaryKey_1", primaryKey, tableName); - } - - public static MessageEventArgs InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 136, "WixDataErrors_InvalidIdt_1", idtFile); - } - - public static MessageEventArgs InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile, string tableName) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 136, "WixDataErrors_InvalidIdt_2", idtFile, tableName); - } - - public static MessageEventArgs VersionMismatch(SourceLineNumber sourceLineNumbers, string fileType, string version, string expectedVersion) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 141, "WixDataErrors_VersionMismatch_1", fileType, version, expectedVersion); - } - - public static MessageEventArgs IllegalFileCompressionAttributes(SourceLineNumber sourceLineNumbers) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 167, "WixDataErrors_IllegalFileCompressionAttributes_1"); - } - - public static MessageEventArgs MissingTableDefinition(string tableName) - { - return new WixDataErrorEventArgs(null, 182, "WixDataErrors_MissingTableDefinition_1", tableName); - } - - public static MessageEventArgs RealTableMissingPrimaryKeyColumn(SourceLineNumber sourceLineNumbers, string tableName) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 225, "WixDataErrors_RealTableMissingPrimaryKeyColumn_1", tableName); - } - - public static MessageEventArgs PathTooLong(SourceLineNumber sourceLineNumbers, string fileName) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 262, "WixDataErrors_PathTooLong_1", fileName); - } - - public static MessageEventArgs InvalidStringForCodepage(SourceLineNumber sourceLineNumbers, string codepage) - { - return new WixDataErrorEventArgs(sourceLineNumbers, 311, "WixDataErrors_InvalidStringForCodepage_1", codepage); - } - - public static MessageEventArgs TooManyColumnsInRealTable(string tableName, int columnCount, int supportedColumnCount) - { - return new WixDataErrorEventArgs(null, 386, "WixDataErrors_TooManyColumnsInRealTable_1", tableName, columnCount, supportedColumnCount); - } - } -} diff --git a/src/WixToolset.Data/Data/messages.xml b/src/WixToolset.Data/Data/messages.xml new file mode 100644 index 00000000..3acb21ba --- /dev/null +++ b/src/WixToolset.Data/Data/messages.xml @@ -0,0 +1,4033 @@ + + + + + + + + + {0} Exception Type: {1} Stack Trace: {2} + + + + + + + + Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided. + + + + + + + + Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified. + + + + + + + The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. + + + + + + The {0} element contains an unexpected attribute '{1}'. + + + + + + + The {0} element contains an unexpected child element '{1}'. + + + + + + + The {0}/@{1} attribute's value cannot be an empty string. If a value is not required, simply remove the entire attribute. + + + + + The {0}/@{1} attribute's value cannot be an empty string. To use the default value "{2}", simply remove the entire attribute. + + + + + + + + The current version of the toolset is {0}, but version {1} is required. + + + + + The current version of the extension '{2}' is {0}, but version {1} is required. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal integer value. Legal integer values are from -2,147,483,648 to 2,147,483,647. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal guid value. + + + + + + + + The {0}/@{1} attribute was not found; it is required. + + + + + The {0} element must have a value for exactly one of the {1} or {2} attributes. + + + + + + + The {0}/@{1} attribute was not found; it is required when attribute {2} is specified. + + + + + + The {0}/@{1} attribute was not found; it is required when attribute {2} has a value of '{3}'. + + + + + + + The {0}/@{1} attribute was not found; it is required unless the attribute {2} has a value of '{3}'. + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a secure property, it must also be a public property. This means the Property/@Id value must be completely uppercase. + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a search property, it must also be a public property. This means the Property/@Id value must be completely uppercase. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long because it will be used to create a stream name. It cannot be more than than {4} characters long. + + + + + + + + The binary value in table '{0}' will be stored with a stream name, '{1}', that is {2} characters long. This is too long because the maximum allowed length for a stream name is 62 characters long. Since the stream name is created by concatenating the table name and values of the primary key for a row (delimited by periods), this error can be resolved by shortening a value that is part of the primary key. + + + + + + + + The {0} element's value, '{1}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + The {0}/@{1} attribute's value is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + + The {0}/@{1} attribute's value '{2}' contains an illegal identifier '{3}'. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal yes/no value. The only legal values are 'no' and 'yes'. + + + + + + + + Failed to create cab '{0}' while compressing file '{1}' with error 0x{2:X8}. + + + + + + Failed to create cab '{0}' with error 0x{1:X8}. + + + + + + + Failed to extract cab '{0}' to directory '{1}'. This is most likely due to a lack of available disk space on the destination drive. + + + + + Failed to extract cab '{0}' from merge module '{1}' to directory '{2}'. This is most likely due to a lack of available disk space on the destination drive. + + + + + + + + The {0}/@(1) attribute's value, '{2}' does not match the advertise state on its parent element: '{3}'. (Note: AppIds nested under Fragment, Module, or Product elements must be advertised.) + + + + + + + + + The {0}/@{1} attribute cannot be specified because the element is advertised. + + + + + + + The {0} element's inner text cannot be an empty string or completely whitespace. If you don't want a condition, then simply remove the entire {0} element. + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}'. + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', or '{4}'. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', or '{5}'. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', or '{6}'. + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', or '{7}'. + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', or '{8}'. + + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', or '{9}'. + + + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', or '{10}'. + + + + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', or '{28}'. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following source attributes specified at a time: {2}, {3}, {4}, {5}, or {6}. + + + + + + + + + + + + The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following target attributes specified at a time: {2}, {3}, {4}, {5}, {6}, {7}, or {8}. + + + + + + + + + + + + + + The {0} element contains illegal inner text: '{1}'. It may not contain inner text unless the {2} attribute is specified. + + + + + + + + The {0} element requires the {1} attribute because there is no parent {0} element. + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid 8.3-compliant name. Legal names contain no more than 8 non-period characters followed by an optional period and extension of no more than 3 non-period characters. Any character except for the follow may be used: \ ? | > < : / * " + , ; = [ ] (space). + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid filename because it contains illegal characters. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \ ? | > < : / * ". + + + + + + The {0}/@{1} attribute's value '{2}' contains a invalid filename '{3}'. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \ ? | > < : / * ". + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long. + + + + + + + + The {0}/@{1} attribute's value, '{2}', contains lowercase characters. Since this directory is user-configurable, it needs to be a public property. This means the value must be completely uppercase. + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'. These options would ask the installer to disallow the advertised state for this feature while at the same time favoring it. + + + + + + + + + + The {0}/@{1} attribute cannot be specified if the {2} attribute's value is '{3}'. These options would ask the installer to force this feature to follow the parent installation state and simultaneously favor a particular installation state just for this feature. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. The name is too long for an embedded cabinet. It cannot be more than than 62 characters long. + + + + + + + + + The {0}/{1} element cannot be specified if the {2} attribute's value is '{3}' or '{4}'. + + + + + + + + + + The {0}/@{1} attribute and a {0}/{2} element cannot both be specified. Only one may be specified if the {3} attribute's value is not 'multiString'. + + + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2} is present. + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2} is present with value '{3}'. + + + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2} or {3} is also present. + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, or {4} is also present. + + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, {4}, or {5} is also present. + + + + + + + + + + + The {0}/@{1} attribute can only be specified with the following attribute {2} present. + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present. + + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present with value '{4}'. + + + + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, or {4} present. + + + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, {4}, or {5} present. + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', can only be specified with attribute {3} present with value '{4}'. + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot be specified without attribute {3} present. + + + + + + + + + The integer value {0} collides with a sentinel value in the compiler code. + + + + The long integral value {0} collides with a sentinel value in the compiler code. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal Guid value. A Guid needs to be generated and put in place of '{2}' in the source file. + + + + + + + + The {0} element contains multiple {1} child elements. There can only be one {1} child element per {0} element. + + + + + + + The {0} element has multiple key paths set. The key path may only be set to '{2}' in extension elements that support it or one of the following locations: {0}/@{1}, {3}/@{1}, {4}/@{1}, or {5}/@{1}. + + + + + + + + + + + Failed to close cab '{0}'. + + + + Failed to close cab '{0}', error: {1}. + + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required. + + + + + + The {0} element's {1}, {2}, or {3} attribute was not found; one of these is required. + + + + + + + The {0} element's {1}, {2}, {3}, or {4} attribute was not found; one of these is required. + + + + + + + + The {0} element's {1}, {2}, {3}, {4}, or {5} attribute was not found; one of these is required. + + + + + + + + + The {0} element's {1}, {2}, {3}, {4}, {5}, or {6} attribute was not found; one of these is required. + + + + + + + + + + The {0} element's {1}, {2}, {3}, {4}, {5}, {6}, or {7} attribute was not found; one of these is required. + + + + + + + + + + + + + The {0} element's {1} or {2} attribute was not found; at least one of these attributes must be specified. + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} is present. + + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} has a value of '{4}'. + + + + + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required without attribute {3} present. + + + + + + + + + The {0} element is non-advertised and therefore requires a parent {1} element. + + + + + + + The document element name '{0}' is invalid. A WiX {1} file must use '{2}' as the document element name. + + + + + + + + The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2} element. + + + + + + The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2}/@{3} attribute. + + + + + + + + + Access to the path '{0}' is denied. + + + + + Cannot set both ExcludeLanguage and ExcludeExceptLanguage attributes on a ModuleExclusion element. + + + + The '{0}' dialog element does not have a valid tabbable control. You must either have a tabbable control that is not marked TabSkip='yes', or you must mark a control TabSkip='no'. If you have a page with no tabbable controls (a progress page, for example), you might want to set the first Text control to be TabSkip='no'. + + + + + + There is no data for column '{0}' in a contained row of custom table '{1}'. A non-null value must be supplied for this column. + + + + + + + The FileTypeMask/@Value and FileTypeMask/@Mask attributes must be the same length. + + + + + Only one search element can appear under a '{0}' element. + + + + + + The {1} attribute can only be specified on the {2} element. + + + + + + + + A '{0}' element must have a search element as a child. + + + + + + Under a '{0}' element, multiple identifiers were found: '{1}' and '{2}'. All search elements under this element must have the same id. + + + + + + + + The advertise state of this element: '{0}', does not match the advertise state set on the parent element: '{1}'. + + + + + + + The context value '{0}' was duplicated. Context values must be distinct. + + + + + + Cannot convert RelativePath into Registry elements. + + + + + The {0}/@{1} attribute cannot be specified when the {0} element is nested underneath a {2} element. If this {0} is a member of a ComponentGroup where ComponentGroup/@{1} is set, then the {0}/@{1} attribute should be removed. + + + + + + + + A {0} element must have at least one child element of type {1}. + + + + + A {0} element must have at least one child element of type {1} or {2}. + + + + + + A {0} element must have at least one child element of type {1}, {2}, or {3}. + + + + + + + A {0} element must have at least one child element of type {1}, {2}, {3}, or {4}. + + + + + + + + + + Registry/@Root attribute is invalid on a nested Registry element. Either remove the Root attribute or move the Registry element so it is not nested under another Registry element. + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/default value. The only legal values are 'default', 'no' or 'yes'. + + + + + + + + The {0}/@{1} attribute cannot be specified in a merge module. + + + + + + Permission elements cannot have GenericRead as the only permission specified. Include at least one other permission. + + + + The {0}/@{1} attribute cannot be specified when the element has body text as well. Specify either the attribute or the body, but not both. + + + + + + + A {0} element must have a search element as a child when the {0}/@{1} attribute has the value '{2}'. + + + + + + + + The {0} property was specified. Special MSI properties cannot be authored. Use the attributes on the Property element instead. + + + + + + A {0} element must have a Before attribute, After attribute, or a Sequence attribute. + + + + + + The {0}/@{1} attribute's value, '{2}, is not supported by the Windows Installer. + + + + + + + + A {0} element was specified with Type='{1}' and TabSkip='no'. Tabbable controls are not allowed in Billboards. + + + + + + + A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'. + + + + + + + Attempted to extract cab '{0}' from merge module '{1}' to directory '{2}'. The cab file was not found. This usually means that you have a merge module without a cabinet inside it. + + + + + + + All RadioButton elements in a RadioButtonGroup must be consistent with their use of the Bitmap, Icon, and Text attributes. Ensure all of the RadioButton elements in this group have the same attribute specified. + + + RadioButtonGroup elements that contain RadioButton elements with Bitmap or Icon attributes set to "yes" can only be specified under a Control element. Move your RadioButtonGroup element as a child of the appropriate Control element. + + + + Illegal value '{0}' for the -sw<N> command line option. Specify a particular warning number, like '-sw6' to suppress the warning with ID 6, or '-sw' alone to suppress all warnings. + + + + + + The variable named '{0}' is not allowed in a foreach expression. + + + + + + Could not find the prefix in parameter name: '{0}'. + + + + + + Could not find the preprocessor extension for parameter '{0}'. A preprocessor extension is expected because the parameter prefix, '{1}', is not one of the standard types: 'env', 'res', 'sys', or 'var'. + + + + + + + The file with id '{0}' and name '{1}' could not be found with source path: '{2}'. + + + + + + + + {0} + + + + + + Invalid file name '{0}'. + + + + + + A circular reference of groups was detected. The infinite loop includes: {0}. Group references must form a directed acyclic graph. + + + + + + The {0}/@{1} attribute's value, '{2}', is a mixed-case guid. All letters in a guid value should be uppercase. + + + + + + + + The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss. + + + + + + + + Multiple entry sections '{0}' and '{1}' found. Only one entry section may be present in a single target. + + + + + + Location of entry section related to previous error. + + + + Duplicate symbol '{0}' found. This typically means that an Id is duplicated. Access modifiers (internal, protected, private) cannot prevent these conflicts. Ensure all your identifiers of a given type (File, Component, Feature) are unique. + + + + Duplicate symbol '{0}' referenced by {1}. This typically means that an Id is duplicated. Ensure all your identifiers of a given type (File, Component, Feature) are unique or use an access modifier to scope the identfier. + + + + + + Location of symbol related to previous error. + + + + Could not find entry section in provided list of intermediates. Expected section of type '{0}'. + + + + + + The identifier '{0}' could not be found. Ensure you have typed the reference correctly and that all the necessary inputs are provided to the linker. + + + + The identifier '{0}' is inaccessible due to its protection level. + + + + + + + Multiple primary references were found for {0} '{1}' in {2} '{3}' and {4} '{5}'. + + + + + + + + + + + Component {0} cannot be contained in a Module twice. + + + + + + The merge module '{0}' contains a file identifier, '{1}', that is duplicated either in another merge module or in a File/@Id attribute. File identifiers must be unique. Please change one of the file identifiers to a different value. + + + + + + + The merge module '{0}' contains 2 or more file identifiers that only differ by case: '{1}' and '{2}'. The WiX toolset extracts merge module files to the file system using these identifiers. Since most file systems are not case-sensitive a collision is likely. Please contact the owner of the merge module for a fix. + + + + + + + + The component '{0}' does not have an explicit key path specified. If the ordering of the elements under the Component element changes, the key path will also change. To prevent accidental changes, the key path should be set to 'yes' in one of the following locations: Component/@KeyPath, File/@KeyPath, ODBCDataSource/@KeyPath, or Registry/@KeyPath. + + + + + + The localization variable !(loc.{0}) is unknown. Please ensure the variable is defined. + + + + + + The system cannot find the file '{0}'. + + + + The system cannot find the file '{0}' with type '{1}'. + + + + + + + Not a valid {0} file; detail: {1} + + + + + + ProgId elements may not be nested more than 1 level deep. + + + + The DirectorySearchRef {0} can not have a Parent attribute {1} and also be nested under parent element {2} + + + + + + + + Schema validation failed with the following error at line {1}, column {2}: {0} + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid version. Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid column width. Valid column widths are 2 or 4. + + + + + + + The CustomTable is missing a Column element with the PrimaryKey attribute set to 'yes'. At least one column must be marked as the primary key. + + + + The parameter '{0}' must be followed by the extension's type specification. The type specification should be a fully qualified class and assembly identity, for example: "MyNamespace.MyClass,myextension.dll". + + + + + + The parameter '{0}' must be followed by a file path. + + + + + + The parameter '{0}' must be followed by a directory path. + + + + + + The parameter '{0}' must be followed by a file or directory path. To specify a directory path the string must end with a backslash, for example: "C:\Path\". + + + + + + Path '{0}' contains a literal quote character. Quotes are often accidentally introduced when trying to refer to a directory path with spaces in it, such as "C:\Out Directory\" -- the backslash before the quote acts an escape character. The correct representation for that path is: "C:\Out Directory\\". + + + + + + Additional argument '{0}' was unexpected. Remove the argument and add the '-?' switch for more information. + + + + + + The {0}/@{1} attribute's value, '{2}', is incorrect. It should not contain values of '+', '-', or '*' when the {0}/@Value attribute is empty. Instead, use the proper element and attributes: for Name='+' use RegistryKey/@Action='createKey', for Name='-' use RemoveRegistryKey/@Action='removeOnUninstall', for Name='*' use RegistryKey/@Action='createAndRemoveOnUninstall'. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long for a family name because the maximum allowed length is 8 characters long. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', contains illegal characters for a family name. Legal values include letters, numbers, and underscores. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal long value. Legal long values are from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}. + + + + + + + + + + The extension '{0}' uses the same xml schema namespace, '{1}', as previously loaded extension '{2}'. Please either remove one of the extensions or rename the xml schema namespace to avoid the collision. + + + + + + + + The extension '{0}' contains a definition for table '{1}' that collides with a previously loaded table definition. Please remove one of the conflicting extensions or rename one of the tables to avoid the collision. + + + + + + + The extension '{0}' uses the same preprocessor variable prefix, '{1}', as previously loaded extension '{2}'. Please remove one of the extensions or rename the prefix to avoid the collision. + + + + + + + + The process can not access the file '{0}' because it is being used by another process. + + + + + + Cannot open the merge module '{0}' from file '{1}'. + + + + + + + The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision. + + + + + + + The file row with identifier '{0}' could not be found. + + + + + + The assembly file '{0}' appears to be invalid. Please ensure this is a valid assembly file and that the user has the appropriate access rights to this file. More information: {1} + + + + + + + The end element matching the '{0}' start element was not found. + + + + + + The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. + + + + + + The file '{0}' should be compressed but is not part of a compressed media. Files will be compressed if either the File/@Compressed or Package/@Compressed attributes are set to 'yes'. This can be fixed by setting the Media/@Cabinet attribute for media '{1}'. + + + + + + + There was an error importing the file '{0}'. + + + + There was an error importing table '{1}' from file '{0}'. + + + + + + + Found an invalid sequence table '{0}'. + + + + + + The directory '{0}' could not be found. + + + + + + The component '{0}' is not assigned to a feature. The component's {1} '{2}' requires it to be assigned to at least one feature. + + + + + + + + The action '{0}' is recursively placed in the '{1}' table. + + + + + + + The {0} file format version {1} is not compatible with the expected {0} file format version {2}. + + + + + + + + The {0} element contains an unexpected xml node of type {1}. + + + + + + + A parsed row has more fields that contain data for table '{0}' than are defined. This is potentially because a standard table is being redefined as a custom table or is based on an older table schema. + + + + + + The extension '{0}' could not be loaded. + + + + The extension '{0}' could not be loaded because of the following reason: {1} + + + + + The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}'. + + + + + + The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}' or '{3}'. + + + + + + + + + Found invalid subexpression '{0}' in expression '{1}'. + + + + + + + Found a <?{1}?> processing instruction without a matching <?{0}?> before it. + + + + + + + Found a <?{0}?> processing instruction without a matching <?{1}?> after it. + + + + + + + Expecting an argument for 'NOT' in expression '{0}'. + + + + + + Ill-formed preprocessor variable '$({0})'. Variables must have a prefix (like 'var.', 'env.', or 'sys.') and a name at least 1 character long. If the literal string '$({0})' is desired, use '$$({0})'. + + + + + + Undefined preprocessor variable '$({0})'. + + + + + + The define statement '<?define {0}?>' is not well-formed. Define statements should be in the form <?define variableName = "variable value"?>. + + + + + + The variable '{0}' with value '{1}' was previously declared with value '{2}'. + + + + + + + + The variable '{0}' cannot be undefined because its already undefined. + + + + + + The foreach statement '{0}' is illegal. The proper format for foreach is <?foreach varName in valueList?>. + + + + + + The {0}/@{1} attribute cannot be specified when a {2} element is nested underneath the {0} element. + + + + + + + A <?foreach?> statement was found that had no matching <?endforeach?>. + + + + The quotes don't match in the expression '{0}'. + + + + + + The parenthesis don't match in the expression '{0}'. + + + + + + A required variable was missing in the expression '{0}'. + + + + + + An unexpected literal was found in the expression '{0}'. + + + + + + An illegal number was found in the expression '{0}'. + + + + + + The operator '{0}' is unexpected. + + + + + + The empty subexpression is unexpected in the expression '{0}'. + + + + + + The custom table column '{0}' is unknown. + + + + + + Encountered an unknown custom table column type '{0}'. + + + + + Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column. + + + + The {0} table contains an action '{1}' that is declared overridable in two different locations. Please remove one of the actions or the Overridable='yes' attribute from one of the actions. + + + + + + The location of the action related to previous error. + + + + The {0} table contains an action '{1}' that is declared in two different locations. Please remove one of the actions or set the Overridable='yes' attribute on one of their elements. + + + + + + The location of the action related to previous error. + + + + The {0} table contains an action '{1}' that cannot be suppressed because it is not declared overridable in the base definition. Please stop suppressing the action or make it overridable in its base declaration. + + + + + + The location of the non-overridable definition of the action related to previous error. + + + + The {0} table contains a custom action '{1}' that has a sequence number specified. The Sequence attribute is not allowed for custom actions in a merge module. Please remove the action or use the Before or After attributes to specify where this action should be sequenced relative to another action. + + + + + + + The {0} table contains a standard action '{1}' that does not have a sequence number specified. The Sequence attribute is required for standard actions in a merge module. Please remove the action or use the Sequence attribute. + + + + + + + The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is also scheduled to come before or after action '{1}'. Please remove this circular dependency by changing the Before or After attribute for one of the actions. + + + + + + + + The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is a special action which only occurs when the installer terminates. These special actions can be identified by their negative sequence numbers. Please schedule the action '{1}' to come before or after a different action. + + + + + + + The location of the special termination action related to previous error(s). + + + + The {0} table contains an action '{1}' which cannot have a unique sequence number because it is scheduled before or after action '{2}'. There is not enough room before or after this action to assign a unique sequence number. Please schedule one of the actions differently so that it will be in a position with more sequence numbers available. Please note that sequence numbers must be an integer in the range 1 - 32767 (inclusive). + + + + + + + The location of the sequenced action related to previous error. + + + + The {0}/@{1} attribute's value '{2}' is invalid because it would make this action dependent upon itself. Please change the value to the name of a different action. + + + + + + + + Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. + + + + + + Could not find a row in the '{0}' table for this patch creation package. Patch creation packages must contain at least one row in the '{0}' table. + + + + + + An unexpected row in the '{0}' table was found in this merge module. Merge modules cannot contain the '{0}' table. + + + + + + An unexpected row in the '{0}' table was found in this patch creation package. Patch creation packages cannot contain the '{0}' table. + + + + + + The module '{0}' cannot be merged because it excludes or is excluded by the merge module with signature '{1}'. + + + + + + + The {0} table contains a row with primary key(s) '{1}' which requires a feature to properly merge from the merge module '{2}'. Nest a MergeRef element with an Id attribute set to the value '{3}' under a Feature element to fix this error. + + + + + + + + + The language '{0}' is supported but uses an invalid language transform in the merge module '{1}'. + + + + + + + Could not locate language '{0}' (or a transform for this language) in the merge module '{1}'. This is likely due to an incorrectly authored Merge/@Language attribute. + + + + + + + Decompilation of the {0} table has not been implemented by its extension. + + + + + + MIME element cannot be marked as the default when its advertise state differs from its parent element. Ensure that the advertise state of the MIME element matches its parents element or remove the Mime/@Advertise attribute completely. + + + + + Version independent ProgIds cannot have Icons. Remove the Icon and/or IconIndex attributes from your ProgId element. + + + + + The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present. + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present with value '{4}'. + + + + + + + + + + The Merge element '{0}' specified an invalid language '{1}'. Verify that localization tokens are being properly resolved to a numeric LCID. + + + + + + + The WiX variable '{0}' is declared in more than one location. Please remove one of the declarations. + + + + + + The WiX variable '{0}' was declared without a value. Please specify a value for the variable. + + + + + + The WiX variable !(wix.{0}) is unknown. Please ensure the variable is declared on the command line for light.exe, via a WixVariable element, or inline using the syntax !(wix.{0}=some value which doesn't contain parenthesis). + + + + + + The WiX variable $(wix.{0}) uses an illegal prefix '$'. Please use the '!' prefix instead. + + + + + + The {0} element has no namespace. Please make the {0} element look like the following: <{0} xmlns="{1}">. + + + + + The {0} element has an incorrect namespace of '{1}'. Please make the {0} element look like the following: <{0} xmlns="{2}">. + + + + + + + + The {0} element contains an unhandled extension element '{1}'. Please ensure that the extension for elements in the '{2}' namespace has been provided. + + + + + + + + The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided. + + + + + + + + The {0} element contains an unsupported extension attribute '{1}'. The {0} element does not currently support extension attributes. Is the {1} attribute using the correct XML namespace? + + + + + + + The {0} element contains an unsupported extension element '{1}'. The {0} element does not currently support extension elements. Is the {1} element using the correct XML namespace? + + + + + + + {0}: {1} + + + + + + + The Directory with Id '{0}' is not a valid root directory. There may only be a single root directory per product or module and its Id attribute value must be 'TARGETDIR' and its Name attribute value must be 'SourceDir'. + + + + + + The 'TARGETDIR' directory has an illegal DefaultDir value of '{0}'. The DefaultDir value is created from the *Name attributes of the Directory element. The TARGETDIR directory is a special directory which must have its Name attribute set to 'SourceDir'. + + + + + + The {0} element contains an unexpected child element '{1}'. The '{1}' element may only occur {2} time(s) under the {0} element. + + + + + + + The Column element specifies a binary column but does not have the correct Category specified. Windows Installer requires binary columns to specify their category as binary. Please set the Category attribute's value to 'Binary'. + + + The Feature element specifies a root feature with an illegal InstallDefault value of 'followParent'. Root features cannot follow their parent feature's install state because they don't have a parent feature. Please remove or change the value of the InstallDefault attribute. + + + + The {0}/@{1} attribute with value '{2}', is too long for a feature name. Due to limitations in the Windows Installer, feature names cannot be longer than 38 characters in length. + + + + + + + The DigitalSignature element cannot be nested under a Media element which specifies EmbedCab='yes'. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or change the value of the Media/@EmbedCab attribute to 'no'. + + + The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute. + + + + The localization variable '{0}' specifies an illegal inline default value of '{1}'. Localization variables cannot specify default values inline, instead the value should be specified in a WiX localization (.wxl) file. + + + + + + + The merge module '{0}' is not assigned to a feature. All merge modules must be assigned to at least one feature. + + + + + + An unexpected Win32 exception with error code 0x{0:X} occurred: {1} + + + + + An unexpected Win32 exception with error code 0x{0:X} occurred while accessing file '{1}': {2} + + + + + + + + Error executing unknown ICE action. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "{0}". + + + + Error executing ICE action '{1}'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "{0}". + + + + + + + Illegal number of threads to create cabinets: '{0}' for -ct <N> command line option. Specify the number of threads to use like -ct 2. + + + + + + The {0} environment variable is set to an invalid value of '{1}'. + + + + + + + The definition for the '{0}' table's '{1}' column is an invalid foreign key relationship to the {2} table's column number {3}. It is not a valid foreign key table column number because it is too small (less than 1) or greater than the count of columns in the foreign table's definition. + + + + + + + + + The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: one is {4} and the other is {5}. Change one of the modularization types so that they match. + + + + + + + + + + + The cube file '{0}' cannot be found. This file is required for MSI validation. + + + + + + Failed to open database '{0}'. Ensure it is a valid database, and it is not open by another process. + + + + + + The types of the outputs do not match. One output's type is '{0}' while the other is '{1}'. + + + + + + + The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal column name. It will collide with the sentinel values used in the _TransformView table. + + + + + + + + The transform being built did not contain any differences so it could not be created. + + + + + The code pages of the outputs do not match. One output's code page is '{0}' while the other is '{1}'. + + + + + + + The location of the mismatched code page related to the previous warning. + + + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components using a Directory as a KeyPath or containing ODBCDataSource child elements cannot use an automatically generated guid. Make sure your component doesn't have a Directory as the KeyPath and move any ODBCDataSource child elements to components with explicit component guids. + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with registry keypaths and files cannot use an automatically generated guid. Create multiple components, each with one file and/or one registry value keypath, to use automatically generated guids. + + + + + + The component '{0}' has a key file with path '{1}'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name "Common Files" under ProgramFilesFolder.) + + + + + + + The CustomAction/@TerminalServerAware attribute's value is 'yes' but the Execute attribute is not 'deferred,' 'rollback,' or 'commit.' Terminal-Server-aware custom actions must be deferred, rollback, or commit custom actions. For more information, see http://msdn.microsoft.com/library/aa372071.aspx." + + + + + The CustomAction sets a property but its Execute attribute is not 'immediate' (the default). Property-setting custom actions cannot be deferred." + + + + + Ill-formed preprocessor function '${0}'. Functions must have a prefix (like 'fun.'), a name at least 1 character long, and matching opening and closing parentheses. + + + + + + Undefined preprocessor function '$({0})'. + + + + + + In the preprocessor extension that handles prefix '{0}' while trying to call function '{1}({2})' and exception has occurred : {3} + + + + + + + + + In the preprocessor extension that handles prefix '{0}' while trying to get the value for variable '{1}' and exception has occured : {2} + + + + + + + + The manifest '{0}' does not have the required assembly/assemblyIdentity element. + + + + + + The file '{0}' is not a valid WiX Transform. + + + + + + The file '{0}' has an unexpected extension. Expected one of the following: '{1}'. + + + + + + + An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table. + + + + + + Invalid product version '{0}'. Product version must have a major version less than 256, a minor version less than 256, and a build version less than 65536. + + + + Invalid product version '{0}' in package '{1}'. When included in a bundle, all product version fields in an MSI package must be less than 65536. + + + + + + + Component '{0}' has a changed keypath in the transform '{1}'. Patches cannot change the keypath of a component. + + + + + + + The validator requires at least one extension. Add "ValidatorExtension, Wix" for the default implementation. + + + + + Unknown validation message type '{0}'. + + + + + + No transforms were provided to attach to the patch. + + + + + Multiple extensions were specified on the command line, only a single extension is supported. + + + + + The transform {0} was included twice on the command line. Each transform can be applied to a patch only once. + + + + + + No baseline was specified for one of the transforms specified. A baseline is required for all transforms in a patch. + + + + + {0} + + + + + + {0} is expected to be followed by a value argument. + + + + + + No valid transforms were provided to attach to the patch. Check to make sure the transforms you passed on the command line have a matching baseline authored in the patch. Also, make sure there are differences between your target and upgrade. + + + + + No decompiler was provided. {0} requires a decompiler. + + + + + + The table '{0}' was expected but was missing. + + + + + + The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}'. + + + + + + + The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}' or '{4}'. + + + + + + + + + + The WixMsp is missing the patch ID. + + + + + The WixMsp has no media rows defined. + + + + + The file '{0}' cannot be found. + + + + + + The WixMsp is missing the client patch ID. Recompile the patch source files with the latest WiX toolset. + + + + + Product '{0}': Table '{1}' has a new row '{2}' added. This makes the patch not uninstallable. + + + + + + + + This patch is not uninstallable. The 'Patch' element's attribute 'AllowRemoval' should be set to 'no'. + + + + + '{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. + + + + + + '{0}' is too large, file size must be less than 2147483648. + + + + + + The parameter '{0}' is missing or has an invalid value {1}. Possible values are x86, x64, or ia64. + + + + + + + The Platform attribute has an invalid value {0}. Possible values are x86, x64, or ia64. + + + + + + You may only specify a single default type using -t or specify custom validation using -serr and -val. + + + + + Found orphaned Component '{0}'. If this is a Product, every Component must have at least one parent Feature. To include a Component in a Module, you must include it directly as a Component element of the Module element or indirectly via ComponentRef, ComponentGroup, or ComponentGroupRef elements. + + + + + + '-{0}' cannot be specfied in combination with '-{1}'. + + + + + + + The value '*' is not valid for the ProductCode when used in a transform or in a patch. Copy the ProductCode from your target product MSI into the Product/@Id attribute value for your product authoring. + + + + + Invalid order of actions {1} and {2} in sequence table {0}. Action {3} must occur after {1} and before {2}, but {2} is currently sequenced after {1}. Please fix the ordering or explicitly supply a location for the action {3}. + + + + + + + + + Not enough space exists to sequence action {3} in table {0}. It must be sequenced after {1} and before {2}, but those two actions are currently sequenced next to each other. Please move one of those actions to allow {3} to be inserted between them. + + + + + + + + + File '{0}' is marked as a Win32 assembly but it refers to assembly manifest '{1}' that is not present in this product. + + + + + + + Unable to open merge module '{0}'. Check to make sure the module language is correct. '{1}' + + + + + + + The '{0}/@{1}' attribute was not found; it is required when element '{0}' is not nested under a '{2}' element. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal identifier. The {0}/@{1} attribute does not support formatted string values, such as property names enclosed in brackets ([LIKETHIS]). The value must be the identifier of another element, such as the Directory/@Id attribute value. + + + + + + + + The code page '{0}' is not a valid Windows code page. Please check the {1}/@{2} attribute value in your source file. + + + + + + + + The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'. + + + + + The transform schema does not match the database schema. The transform may have been generated from a different database. + + + + The table definition of '{0}' in the target database does not match the table definition in the updated database. A transform requires that the target database schema match the updated database schema. + + + + + + The {0} option requires a directory, but the provided path is a file: {1} + + + + + + + The {0} option requires a file, but the provided path is a directory: {1} + + + + + + + Assembly {0} in component {1} has no strong name and has been marked to be placed in the GAC. All assemblies installed to the GAC must have a valid strong name. + + + + + + + Error writing to the path: '{0}'. Error message: '{1}' + + + + + + + Invalid file name specified on the command line: '{0}'. Error message: '{1}' + + + + + + + When the {0}/@{1} attribute is specified, the {0} element must be nested under a {2} element. + + + + + + + + Illegal value '{0}' for the -wx<N> command line option. Specify a particular warning number, like '-wx6' to display the warning with ID 6 as an error, or '-wx' alone to suppress all warnings. + + + + + + Element '{0}' missing attribute '{1}' or child element '{2}'. Exactly one of those is required. + + + + + + + + The variable '{0}' with value '{1}' was previously declared with value '{2}'. + + + + + + + + The variable definition '{0}' is not valid. Variable definitions should be in the form -dname=value where the value is optional. + + + + + + Duplicate cabinet name '{0}' found. + + + + + + Duplicate cabinet name '{0}' error related to previous error. + + + + + + A row has been added to the File table with id '{1}' that does not have a sequence number assigned to it. Create your transform from a pair of msi's instead of xml outputs to get sequences assigned to your File table's rows. + + + + + + Multiple files with ID '{0}' exist. Windows Installer does not support file IDs that differ only by case. Change the file IDs to be unique. + + + + + + Unable to create temporary file. A common cause is that too many files that have names beginning with '{0}' are present. Delete any unneeded files in the '{1}' directory and try again. + + + + + + + An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file. + + + + + An error (ERROR_DISK_FULL) was returned while creating a CAB file. This means you have insufficient disk space - please clear more disk space and try this operation again. + + + + + Unresolved bind-time variable {0}. + + + + + + The destination name of file '{0}' does not match its assembly name '{1}' in your authoring. This will cause an installation failure for this assembly, because it will be installed to the Global Assembly Cache. To fix this error, update File/@Name of file '{0}' to be the actual name of the assembly. + + + + + + + Illegal characters in path '{0}'. Ensure you provided a valid path to the file. + + + + + + Failed to open the database. During validation, this most commonly happens when attempting to open a database using an unsupported code page or a file that is not a valid Windows Installer database. Please use a different code page in Module/@Codepage, Package/@SummaryCodepage, Product/@Codepage, or WixLocalization/@Codepage; or make sure you provide the path to a valid Windows Installer database. + + + + + You must specify an output file using the "-o" or "-out" switch when you provide more than one input file. + + + + + When the parent DirectorySearch/@Depth attribute is greater than 1 for the DirectorySearch '{1}', the FileSearch/@Id attribute must be absent for FileSearch '{0}' unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. Remove the FileSearch/@Id attribute for '{0}' to resolve this issue. + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long. {0}/@{1} attribute's must be {3} characters long or less. + + + + + + + + + Removing component '{0}' from feature '{1}' is not supported. Either the component was removed or the guid changed in the transform '{2}'. Add the component back, undo the change to the component guid, or remove the entire feature. + + + + + + + + An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element. + + + + + Either '{1}' was not defined in the assembly or the type defined in extension '{0}' could not be loaded. + + + + + The extension type '{1}' in extension '{0}' does not inherit from the expected class '{2}'. + + + + + + The type '{1}' in extension '{0}' could not be loaded. Exception type '{2}' returned the following message: {3} + + + + + + + + + Failed to open merge module for validation. The most common cause of this error is specifying that the merge module supports multiple languages (using the Package/@Languages attribute) but not including language-specific embedded transforms. To fix this error, make the merge module language-neutral, make it language-specific, embed language transforms as specified in the MSI SDK at http://msdn.microsoft.com/library/aa367799.aspx, or disable validation. + + + + + Failed to open package for validation. The most common cause of this error is validating an x64 package on an x86 system. To fix this error, run validation on an x64 system or disable validation. + + + + + A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. + + + + + + The EmbeddedUI/@Name attribute value, '{0}', does not contain an extension. Windows Installer will not load an embedded UI DLL without an extension. Include an extension or just omit the Name attribute so it defaults to the file name portion of the Source attribute value. + + + + + + The DirectorySearch element '{0}' requires that the child {1} element has a unique Id when the DirectorySearch/@AssignToProperty attribute is set to 'yes'. + + + + + + + The {0}/@{1} attribute value, '{2}', cannot be specified when the {0} element is nested underneath a {3} element. + + + + + + + + + Source information is required for the product '{0}'. If you ran torch.exe with both target and updated .msi files, you must first perform an administrative installation of both .msi files then pass -a when running torch.exe. + + + + + + The PatchBaseline/@Id attribute value '{0}' is a child of multiple Media elements. This prevents transforms from being resolved to distinct media. Change the PatchBaseline/@Id attribute values to be unique. + + + + + + Two different source paths '{1}' and '{2}' were detected for the same file identifier '{0}'. You must either author these under Media elements with different Id attribute values or in different patches. + + + + + + + + A harvest source must be specified after the harvest type and can be followed by harvester arguments. + + + + + The '-out' or '-o' parameter must specify a file path. + + + + + The command line option '{0}' has already been loaded by another Heat extension. + + + + + + The harvest type was not found in the list of loaded Heat extensions. + + + The harvest type '{0}' was specified. Harvest types cannot start with a '-'. Remove the '-' to specify a valid harvest type. + + + + + + Both the target and updated product authoring must define the Product/@UpgradeCode attribute if the transform validates the UpgradeCode (default). Either define the Product/@UpgradeCode attribute in both the target and updated authoring, or set the Validate/@UpgradeCode attribute to 'no' in the patch authoring. + + + + + Illegal binder class name specified for -binder command line option. + + + + + The specified binder class '{0}' was not found in any extensions. + + + + + + Cannot load binder file manager: {0}. Light can only load one binder file manager and has already loaded binder file manager: {1}. + + + + + + + Cannot load linker extension: {0}. Light can only load one link extension and has already loaded link extension: {1}. + + + + + + + Unable to get the authenticode certificate of '{0}'. More information: {1} + + + + + + + Unable to get the authenticode certificate of '{0}'. The cryptography API has limitations on Windows XP and Windows Server 2003. More information: {1} + + + + + + + Unable to output to file '{0}' because it is marked as read-only. + + + + + + The Component/@Id attribute was not found; it is required when there is no valid keypath to use as the default id value. + + + + + The parent {0} element is missing the {1} attribute that is required for the {2} child element. + + + + + + + + Exception thrown while processing pragma '{0}'. The exception's message is: {1} + + + + + + + Malformed preprocessor pragma '{0}'. Pragmas must have a prefix, a name of at least 1 character long, and be followed by optional arguments. + + + + + + Unknown input file format - expected a .msi or .msm file. + + + + + Files with an extension of .msp are not currently supported. + + + + + Path contains one or more invalid characters. + + + + + Stub executable '{0}' is not a valid Win32 executable. + + + + + + Stub executable '{0}' does not contain a .wixburn data section. + + + + + + Stub executable '{0}' .wixburn data section is too small to store the Burn container header. + + + + + + The Bundle is missing '{0}' data, and cannot continue. + + + + + + A group parent ('{0}'/'{1}') had an unexpected child ('{2}'/'{3}'). + + + + + + + + + A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph. + + + + + + An expected identifier ('{1}', of type '{0}') was not found. + + + + + + + '{0}' is a 64-bit merge module but the product consuming it is 32-bit. 32-bit products can consume only 32-bit merge modules. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid relative long name because it contains illegal characters. Legal relative long names contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: ? | > < : / * ". + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: {3}. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is one of the illegal options: {3}. + + + + + + + + + + The code page '{0}' is invalid for summary information. You must specify an ANSI code page. + + + + + + The package being validated requires a higher version of Windows Installer than is installed on this machine. Validation cannot continue. + + + + + Multiple source files ({0}) have resulted in the same output file '{1}'. This is likely because the source files only differ in extension or path. Rename the source files to avoid this problem. + + + + + + + Unable to read package '{0}'. {1} + + + + + + + A per-source file output specification has been provided ('{0}'), but multiple source files match the source specification ({1}). Specifying a unique output requires that only a single source file match. + + + + + + + Unable to read bundle executable '{0}'. This is not a valid WiX bundle. + + + + + + Unable to read bundle executable '{0}', because this bundle was created with a newer version of WiX (bundle version '{1}'). You must use a newer version of WiX in order to read this bundle. + + + + + + + + The extension '{0}' on the input specified '{1}' does not match the number of inputs required to handle an input with this extension. Check if you are missing an input or have too many. + + + + + + + Only one of Media and MediaTemplate tables should be authored. + + + + + CabinetTemplate attribute's value '{0}' must contain '{{0}}' and should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the follow may be used: \ ? | > < : / * " + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms). + + + + + + '{0}' is too large. Reduce the size of maximum uncompressed media size. + + + + + + File '{0}' could not be verified with a catalog file. + + + + + + Could not get hash of file '{0}'. Error: {2}. + + + + + + + The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix. + + + + + + + + The MSI '{0}' is explicitly marked to not elevate so it must be a per-user package but the ALLUSERS Property is set to '1' creating a per-machine package. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute to be explicit instead. + + + + + + The MSI '{0}' set the ALLUSERS Property to '{0}' which is not supported. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead. + + + + + + + The '{0}' MsiProperty is controlled by the bootstrapper and cannot be authored. (Illegal properties are: {1}.) Remove the MsiProperty element. + + + + + + + The merge module '{0}' from file '{1}' is either missing or has an invalid installer version. The value read from the installer version in module's summary information was '{2}'. This should be a numeric value representing a valid installer version such as 200 or 301. + + + + + + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component's keypath is not versioned. Create multiple components to use automatically generated guids. + + + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component has a non-keypath file that is versioned. Create multiple components to use automatically generated guids. + + + + + Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID. + + + + + + + The provider dependency key '{0}' was already imported from the package with Id '{1}'. Please remove the Provides element with the key '{0}' from the package authoring. + + + + + + + The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package. + + + + + + + The {0} element cannot have a child element '{1}' when attribute '{2}' is set. + + + + + + + + The {0} element must have attribute '{1}' when child element '{2}' is present. + + + + + + + + The localization for control {0} in dialog {1} is duplicated. Only one localization per control is allowed. + + + + + The localization for dialog {0} is duplicated. Only one localization per dialog is allowed. + + + + + + '{0}' is too large. Reduce the size of maximum cabinet size for large file splitting. The maximum permitted value is '{1}' MB. + + + + + + + Failed to register the copy command for cabinet '{0}' formed by splitting cabinet '{1}'. + + + + + + + The cabinet name '{0}' collides with the new cabinet formed by splitting cabinet '{1}', consider renaming cabinet '{0}'. + + + + + + + Could not find the last split cabinet '{2}' in the Media Table. So failed to add new cabinet '{0}' formed by splitting cabinet '{1}' to the installer package. + + + + + + + + Invalid AutoVersion template specified. + + + + + Invalid {0}/@Version '{1}'. {0} version has a max value of "65535.65535.65535.65535" and must be all numeric. + + + + + + + The element {1} does not support platform '{0}'. Consider removing the element or using the preprocessor to conditionally include the element based on the platform. + + + + + + + There is no media defined for disk id '{0}'. You must author either <Media Id='{0}' ...> or <MediaTemplate ...>. + + + + + + The RemotePayload element can only be used for ExePackage and MsuPackage payloads. + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/always value. The only legal values are 'always', 'no' or 'yes'. + + + + + + + + Include files cannot be nested more deeply than {0} times. Make sure included files don't accidentally include themselves. + + + + + + The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns. + + + + + + + + The {0}/@{1} attribute's value '{2}' only specifies a directory reference. The inline directory syntax requires that at least one directory be specified in addition to the value. For example, use '{3}:\foo\' to add a 'foo' directory. + + + + + + + + + The file name '{0}' creates an insecure bundle. Windows will load unnecessary compatibility shims into a bundle with that file name. These compatibility shims can be DLL hijacked allowing attackers to compromise your customers' computer. Choose a different bundle file name. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal path name: Payload names must be relative to their cache directory and cannot contain '..'. + + + + + + + + MSI transactions must install all x64 packages before any x86 package. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. It will be too long if modularized. The identifier shouldn't be longer than {4} characters long to allow for modularization (appending a guid for merge modules). + + + + + + + + + + The {0}/@{1} attribute's value cannot be an empty string. If you want the value to be null or empty, simply remove the entire attribute. + + + + + + + Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break. + + + + + + Since the CopyFile/@FileId attribute was specified but none of the following attributes (DestinationName, DestinationDirectory, DestinationProperty) were specified, this authoring will not do anything. + + + + The {0}.{1} column's value, '{2}', indicates a nested install. Nested installations are not supported by the WiX team. This action will be left out of the decompiled output. + + + + + + + + ProgId '{0}' is orphaned. It has no associated component, so it will never install. Every ProgId should have either a parent Class element or child Extension element (at any distance). + + + + + + Property '{0}' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored. + + + + + The RemoveFile/@Name attribute will soon become required. In order to match the old functionality of not specifying this attribute, please use the new RemoveFolder element instead. + + + + The action '{0}' in the {1} table is being suppressed. + + + + + + + The merged action '{0}' in the {1} table is being suppressed. + + + + + + + The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output. + + + + + Access denied; cannot delete '{0}'. + + + + + + The directory '{0}' is in use and cannot be deleted. + + + + + + Access denied; cannot set attributes on '{0}'. + + + + + + The {0} table contains an action '{1}' which is not a known custom action, dialog, or standard action. This action will be left out of the decompiled output. + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long for an identifier. Standard identifiers are 72 characters long or less. + + + + + + + + The {0} table contains a row with primary key '{1}' which has an unknown permission at bit {2}. + + + + + + + + The {0} element's {1} and {2} values are both '{3}'. This is redundant; the {2} attribute should be removed. + + + + + + + The {0} element's source and destination names are identical. This is redundant; the {1} and {2} attributes should be removed if present. + + + + + + + Unable to reset acls on destination files. + + + + The {0}/@{1} attribute's value, '{2}', is not a valid external cabinet name. Legal cabinet names should follow 8.3 format: they should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the following may be used: \ ? | > < : / * " + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms). + + + + + + + + The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead. + + + + + + + The {0} element's {1} and {2} attributes were found. Due to a bug with the Windows Installer, only the Name or LongName attribute should be used. Use the Name attribute for 8.3 compliant file names and the LongName attribute for longer ones. When using only the LongName attribute, ICE03 should be ignored for the Signature table's FileName column. + + + + + + + + The {0}/@{1} attribute's value '{2}' is an ambiguous short name because it ends with a '~' character followed by a number. Under some circumstances, this name could resolve to more than one file or directory name and lead to unpredictable results (for example 'MICROS~1' may correspond to 'Microsoft Shared' or 'Microsoft Foo' or literally 'Micros~1'). + + + + + + + + The Typelib table entry with Id '{0}' could have an incorrect version of '256.0'. InstallShield has a bug relating to the Typelib Version column: it will incorrectly set the value '65536' in to represent version '1.0'. However, this number actually corresponds to version '256.0'. This bug will not affect the typelib version that is registered during installation, however, it will prevent the Windows Installer from correctly identifying whether a typelib is already installed and lead to unnecessary reinstallations of the typelib. + + + + + + The component '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the ComponentRef/@Primary, ComponentGroupRef/@Primary, or FeatureGroupRef/@Primary locations for this component. + + + + + + The {0} table contains actions '{1}' and '{2}' which both have the same sequence number {3}. Please change the sequence number for one of these actions to avoid an ICE warning. + + + + + + + + The location of the action related to previous warning. + + + The location of the suppressed action related to previous warning. + + + + An unexpected row in the '{0}' table was found in this product. Products should not contain the '{0}' table. + + + + + + The {0}/@{1} attribute has been deprecated. + + + + + The {0}/@{1} attribute has been deprecated. Please use the {2} attribute instead. + + + + + + The {0}/@{1} attribute has been deprecated. Please use the {2} or {3} attribute instead. + + + + + + + + + The {0} table contains an action '{1}' which cannot be merged from the merge module '{2}'. This action is likely colliding with an action in the database that is being created. The colliding action may have been authored in the database or merged in from another merge module. If this is a standard action, it is likely colliding due to a difference in the condition for the action in the database and merge module. If this is a custom action, it should only be declared in the database or one merge module. + + + + + + + + The {0} table contains a row with primary key(s) '{1}' which cannot be merged from the merge module '{2}'. This is likely due to collision of rows with the same primary key(s) (but other different values in other columns) between the database and the merge module. + + + + + + + + The {0} table contains a standard action '{1}' that does not have a sequence number specified. A value in the Sequence column is required for standard actions in a merge module. Remove the action from the decompiled authoring to have WiX automatically sequence it. + + + + + + + The {0} table contains an action '{1}' which is not allowed in this table. If this is a standard action then it is not valid for this table, if it is a custom action or dialog then this table does not accept actions of that type. This action will be left out of the decompiled output. + + + + + + + The {0} table contains a row with primary key(s) '{1}' whose {2} column contains a value, '{3}', which specifies a foreign key relationship with the {4} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output. + + + + + + + + The {0} table contains a row with primary key(s) '{1}' whose {2} and {4} columns contain the values, '{3}' and '{5}', which specify a foreign key relationship with the {6} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output. + + + + + + + + + + + + The {0} table is being decompiled as a custom table. + + + + + + The {0} table is not legal in a patch creation file. The information in this table will be left out of the decompiled output. + + + + + + The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output. + + + + + + The {0} table can only be represented in WiX for patch creation files. The information in this table will be left out of the decompiled output. + + + + + + The {0}.{1} column's value, '{2}', cannot currently be represented in the WiX schema. + + + + + + + + The {0} table is not supported by the WiX toolset because it has been deprecated by the Windows Installer team. Any information in this table will be left out of the decompiled output. + + + + + + The {0} table is added to the install package by a transform from a patch package (.msp) and not authored directly into an install package (.msi). The information in this table will be left out of the decompiled output. + + + + + + The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output. + + + + + + + + The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute. + + + + + + + + + The short file name '{0}' was generated for multiple files that may be installed to the same directory. This could be due to conflicting long file names specified by the File/@Name attribute. If that is the case, please resolve the conflict in those attributes. Otherwise, please manually set the File/@ShortName attribute on the conflicting row to fix the collision. If one of the colliding files was added via a patch, that short file name should be specified manually to avoid disturbing the original short file name. + + + + + + The location of a conflicting generated short file name related to the previous warning. + + + + + Merge modules should not contain the '{0}' table because all merge conflicts cannot avoided. However, this warning can be suppressed if all of the consumers of the Merge Module agree to not duplicate identifiers in the '{0}' table. + + + + + + The localization variable $(loc.{0}) uses a deprecated prefix '$'. Please use the '!' prefix instead. Since the prefix '$' is also used by the preprocessor, it has been deprecated to avoid namespace collisions. + + + + + + The {0}/@{1} attribute's value, '{2}', is a placeholder value used in example files. Please replace this placeholder with the appropriate value. + + + + + + + The Product/@UpgradeCode attribute was not found; it is strongly recommended to ensure that this product can be upgraded. + + + + {0}: {1} + + + + + + + The '{0}' Property contains '[{1}]' in its value which is an illegal reference to another property. If this value is a string literal, not a property reference, please ignore this warning. To set a property with the value of another property, use a CustomAction with Property and Value attributes. + + + + + + Specifying a Property element as a child of an Upgrade element has been deprecated. Please specify this Property element as a child of a different element such as Product or Fragment. + + + + The cabinet '{0}' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it. + + + + The cabinet '{0}' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet. + + + + + + The Registry element has been deprecated. Please use one of the new elements which replaces its functionality: RegistryKey for creating registry keys, RegistryValue for writing registry values, RemoveRegistryKey for removing registry keys, and RemoveRegistryValue for removing registry values. + + + + Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath. + + + + + + + The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family. + + + + + + + The 'ProductID' property should not be directly authored because it will prevent the ValidateProductID standard action from performing any validation during the installation. This property will be set by the ValidateProductID standard action or control event. + + + + + The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component. + + + + + + The IgnoreModularization element has been deprecated. Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attribute instead. + + + + + The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. + + + + + The Package/@Compressed attribute is deprecated under the Module element because merge modules must always be compressed. + + + + + The Module/@Guid attribute is deprecated merge modules use their package code as the modularization guid. Use the Package/@Id attribute instead. + + + + + The {0}/@{1} attribute's value '????????-????-????-????-????????????' has been deprecated. Use '*' instead. + + + + + + + The Package/@Id attribute has been set. Setting this attribute will allow nonidentical .msi files to have the same package code. This may be a problem because the package code is the primary identifier used by the installer to search for and validate the correct package for a given installation. If a package is changed without changing the package code, the installer may not use the newer package if both are still accessible to the installer. Please remove the Id attribute in order to automatically generate a new package code for each new .msi file. + + + + + Invalid {0}/@Version '{1}'. {0} version has a max value of "65535.65535.65535.65535" and must be all numeric. + + + + + + + File '{0}' was removed from component '{1}'. Removing a file from a component will not result in the file being removed by a patch. You should author a RemoveFile element in your component to remove the file from the installation if you want the file to be removed. + + + + + + + {0} + + + + + + File '{0}' in Component '{1}' was changed, but the KeyPath file '{2}' was not. This file will not be patched on the target system if the REINSTALLMODE does not contain 'A'. The KeyPath file should also be changed and included in your patch. + + + + + + + + '{0}' is not a valid command line argument. + + + + + + Changing the ProductCode in a patch is not recommended because the patch cannot be uninstalled nor can it be sequenced along with other patches for the target product. See http://msdn2.microsoft.com/library/aa367571.aspx for more information. + + + + + Mismatch in RetainRangeCounts for the file '{0}' - ignoring the retain ranges. + + + + + + The DefaultLanguage '{0}' was used for file '{1}' which has no language. Specifying a language that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Either specify a value for DefaultLanguage or put the language in the version information resource to eliminate this warning. + + + + + + + The DefaultLanguage '{0}' was used for file '{1}' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning. + + + + + + + The DefaultVersion '{0}' was used for file '{1}' which has no version. No entry for this file will be placed in the MsiFileHash table. For unversioned files, specifying a version that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Version the resource to eliminate this warning. + + + + + + + Merge module '{0}' has an installer version of {1} which is greater than the product's installer version of {2}. Merging a module with a higher installer version than the product it is being merged into can result in invalid values in the resulting msi. You must set the Package/@InstallerVersion attribute to {1} or greater to merge this merge module into your product. + + + + + + + + Validation could not run due to system policy. To eliminate this warning, run the process as admin or suppress ICE validation. + + + + + Table '{0}' uses columns that require a version of Windows Installer greater than specified in your package ('{1}'). + + + + + + + Using table '{0}' requires a version of Windows Installer greater than specified in your package ('{1}'). + + + + + + + The command line switch '{0}' is deprecated. + + + + The command line switch '{0}' is deprecated. Please use '{1}' instead. + + + + + + + Found mismatched entry point <{0}>. Expected <{1}> for specified output package type {2}. + + + + + + + + Component '{0}' was added to feature '{1}' in the transform '{2}'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch. + + + + + + + + The value "{0}" for the {1}/@{2} attribute has been deprecated. Please use "{3}" instead. + + + + + + + + + Not enough permissions to harvest type library. On Windows Vista, you must either run Heat elevated, or install Windows Vista SP1 (or higher). + + + + + Because it is an advertised shortcut, the target of shortcut '{0}' will be the keypath of component '{2}' rather than parent file '{1}'. To eliminate this warning, you can (1) make the Shortcut element a child of the File element that is the keypath of component '{2}', (2) make file '{1}' the keypath of component '{2}', or (3) remove the @Advertise attribute so the shortcut is a non-advertised shortcut. + + + + + + + + Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output. + + + + + + + + The value '{0}' in table '{1}', column '{2}' is invalid according to the column's validation information. The decompiled output includes a best-effort representation of this value. + + + + + + + + The assembly in component '{0}' has a null or empty {1} assembly name value. + + + + + + + It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}. + + + + + + + + + The variable '{0}' with value '{1}' was previously declared with value '{2}'. + + + + + + + + The primary key '{0}' is duplicated in table '{1}' and will be ignored. Please remove one of the entries or rename a part of the primary key to avoid the collision. + + + + + + + Package/@InstallerVersion must be 200 or greater for a 64-bit package. The value will be changed to 200. Please specify a value of 200 or greater in order to eliminate this warning. + + + + + The installer database '{0}' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to run the insignia tool as part of your build. + + + + + + Failed to delete temporary directory: {0} + + + + + + The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders. + + + + + + + The pragma '{0}' is unknown. Please ensure you have referenced the extension that defines this pragma. + + + + + + The {0}/@Id attribute contains invalid characters for an identifier. Being able to use invalid identifier characters for a {0} identifier has been deprecated. + + + + + + A UX Payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, UX Payloads must be embedded in the Bundle, so the requested packaging is being ignored. + + + + + + The RollbackBoundary '{0}' was discarded because it was not followed by a package. Without a package the rollback boundary doesn't do anything. Verify that the RollbackBoundary element is not followed by another RollbackBoundary and that the element is not at the end of the chain. + + + + + + The {0} element has been deprecated. + + + + The {0} element has been deprecated. Please use the {1} element instead. + + + + + The {0} element has been deprecated. Please use the {1} or {2} element instead. + + + + + + + + Cannot update the timestamp of cached cabinet: '{0}'. If the timestamp is not updated, the build may rebuild more than is necessary. To fix the issue, ensure that the cabinet file is writable, error: {1} + + + + + + + The Payload '{0}' is embedded but included a @DownloadUrl attribute. Embedded Payloads cannot be downloaded so the download URL is being ignored. + + + + + + Bundles require a package to be either per-machine or per-user. The MSI '{0}' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-{1} and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead. + + + + + + + The MSI '{0}' does not explicitly indicate that it is a per-user package even though the ALLUSERS Property is blank. This suggests a per-user package so the Bundle will assume the package is per-user. If possible, use the Package/@InstallScope attribute to be explicit instead. + + + + + + The MSI '{0}' is a per-user package being forced to per-machine. Verify that the MsiPackage/@ForcePerMachine attribute is expected and that the per-user package works correctly when forced to install per-machine. + + + + + + The {0}/@{1} attribute value '{2}' should contain '{3}' when the {0}/@{4} attribute is set to '{5}'. + + + + + + + + + + + Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer but works as long as all components have mutually-exclusive conditions. It is recommended to give each component its own unique GUID. + + + + + + + The RegistryKey/@Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. + + + + + '{0}' is not a binary Wixlib and has no embedded files. + + + + + + Bundle dependencies will not be registered on per-machine package '{0}' for a per-user bundle. Either make sure that all packages are installed per-machine, or author any per-machine dependencies as permanent packages. + + + + + + The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored. + + + + + + The {0}/@{1} attribute is reserved for future use and has no effect in this version of the WiX toolset. + + + + + + + Package/@InstallerVersion must be 500 or greater for an Arm package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning. + + + + + The {0}/@Compressed attribute must have value 'no' when a RemotePayload child element is present. RemotePayload indicates that a package will always be downloaded and cannot be compressed into a bundle. To eliminate this warning, explicitly set the {0}/@Compressed attribute to 'no'. + + + + + + All changes between the baseline and upgraded packages will be included in the patch except for any change to the ProductCode. The 'All' element is supported primarily for testing purposes and negates the benefits of patch families. + + + + + Ignoring attribute {0} because attribute {1} is set to {2}. + + + + + + + + Backslash terminate the {0}/@{1} attribute's inline directory value '{2}'. A backslash ensures a directory name will not be mistaken for a directory reference. + + + + + + + + Product version {0} in package '{1}' is not valid per the MSI SDK and cannot be represented in a bundle. It has been truncated to {2}. + + + + + + + + {0} functionality is documented in the Windows Installer SDK to "not [work] as expected." Consider replacing {0} with the WixUtilExtension ServiceConfig element. + + + + + + + + + Importing binary stream from '{0}'. + + + + + + Importing icon stream from '{0}'. + + + + + + Copying file '{0}' to '{1}'. + + + + + + + Moving file '{0}' to '{1}'. + + + + + + + The directory '{0}' does not exist, creating it now. + + + + + + The destination file '{0}' already exists, attempting to remove it. + + + + + + Cabbing file {0} from '{1}'. + + + + + + Updating file information. + + + Generating database. + + + Merging modules. + + + Creating cabinet files. + + + Importing streams. + + + Laying out media. + + + + Decompiling the {0} table. + + + + + + {0}: {1} + + + + + + + Creating cabinet '{0}'. + + + + + Validating database. + + + + Opening merge module '{0}' with language '{1}'. + + + + + + + Merging merge module '{0}'. + + + + + + Connecting merge module '{0}' to feature '{1}'. + + + + + + Resequencing files from all merge modules. + + + + Binder temporary directory located at '{0}'. + + + + + + Validator temporary directory located at '{0}'. + + + + + + Generating Burn bundle '{0}' from stub '{1}'. + + + + + + + Generating resolved manifest '{0}'. + + + + + + Loading payload '{0}' into container. + + + + + + Assigning bundle GUID '{0}'. + + + + + + Copying external payload from '{0}' to '{1}'. + + + + + + + Embedding container '{0}' ({1} bytes) with '{2}' compression. + + + + + + + + Bundle switching from per-machine to per-user due to addition of per-user package '{0}'. + + + + + + There will be '{0}' threads used to produce CAB files. + + + + + + Multiple packages cannot reliably be validated simultaneously. This validation will resume when the other package being validated has completed. + + + + + Reusing cabinet '{0}' from cabinet cache path: '{1}'. + + + + + + + Multiple Cabinets with Large Files are splitting simultaneously. This current cabinet is waiting on a shared resource and splitting will resume when the other splitting has completed. + + + + + Validation complete: {0:N0}ms elapsed. + + + + + diff --git a/src/WixToolset.Data/Data/messages.xml.old b/src/WixToolset.Data/Data/messages.xml.old deleted file mode 100644 index 986426c3..00000000 --- a/src/WixToolset.Data/Data/messages.xml.old +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided. - - - - - - - - Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified. - - - - - - - Invalid file name '{0}'. - - - - - - The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. - - - - - - The system cannot find the file '{0}'. - - - - The system cannot find the file '{0}' with type '{1}'. - - - - - - - The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision. - - - - - - - There was an error importing the file '{0}'. - - - - There was an error importing table '{1}' from file '{0}'. - - - - - - - The {0} file format version {1} is not compatible with the expected {0} file format version {2}. - - - - - - - Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column. - - - - Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. - - - - - - The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched. - - - - - - '{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. - - - - - - A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. - - - - - - The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns. - - - - - - - diff --git a/src/WixToolset.Data/DuplicateSymbolsException.cs b/src/WixToolset.Data/DuplicateSymbolsException.cs deleted file mode 100644 index 6f14d049..00000000 --- a/src/WixToolset.Data/DuplicateSymbolsException.cs +++ /dev/null @@ -1,37 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections; - -#if false - /// - /// Duplicate symbols exception. - /// - [Serializable] - public sealed class DuplicateSymbolsException : Exception - { - [NonSerialized] - private Symbol[] duplicateSymbols; - - /// - /// Instantiate a new DuplicateSymbolException. - /// - /// The duplicated symbols. - public DuplicateSymbolsException(ArrayList symbols) - { - this.duplicateSymbols = (Symbol[])symbols.ToArray(typeof(Symbol)); - } - - /// - /// Gets the duplicate symbols. - /// - /// List of duplicate symbols. - public Symbol[] GetDuplicateSymbols() - { - return this.duplicateSymbols; - } - } -#endif -} diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs new file mode 100644 index 00000000..7ce94157 --- /dev/null +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -0,0 +1,2615 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Resources; + + public static class ErrorMessages + { + public static Message ActionCircularDependency(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) + { + return Message(sourceLineNumbers, Ids.ActionCircularDependency, "The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is also scheduled to come before or after action '{1}'. Please remove this circular dependency by changing the Before or After attribute for one of the actions.", sequenceTableName, actionName1, actionName2); + } + + public static Message ActionCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.ActionCollision, "The {0} table contains an action '{1}' that is declared in two different locations. Please remove one of the actions or set the Overridable='yes' attribute on one of their elements.", sequenceTableName, actionName); + } + + public static Message ActionCollision2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ActionCollision2, "The location of the action related to previous error."); + } + + public static Message ActionScheduledRelativeToItself(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToItself, "The {0}/@{1} attribute's value '{2}' is invalid because it would make this action dependent upon itself. Please change the value to the name of a different action.", elementName, attributeName, attributeValue); + } + + public static Message ActionScheduledRelativeToTerminationAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) + { + return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToTerminationAction, "The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is a special action which only occurs when the installer terminates. These special actions can be identified by their negative sequence numbers. Please schedule the action '{1}' to come before or after a different action.", sequenceTableName, actionName1, actionName2); + } + + public static Message ActionScheduledRelativeToTerminationAction2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToTerminationAction2, "The location of the special termination action related to previous error(s)."); + } + + public static Message AdditionalArgumentUnexpected(string argument) + { + return Message(null, Ids.AdditionalArgumentUnexpected, "Additional argument '{0}' was unexpected. Remove the argument and add the '-?' switch for more information.", argument); + } + + public static Message AdminImageRequired(string productCode) + { + return Message(null, Ids.AdminImageRequired, "Source information is required for the product '{0}'. If you ran torch.exe with both target and updated .msi files, you must first perform an administrative installation of both .msi files then pass -a when running torch.exe.", productCode); + } + + public static Message AdvertiseStateMustMatch(SourceLineNumber sourceLineNumbers, string advertiseState, string parentAdvertiseState) + { + return Message(sourceLineNumbers, Ids.AdvertiseStateMustMatch, "The advertise state of this element: '{0}', does not match the advertise state set on the parent element: '{1}'.", advertiseState, parentAdvertiseState); + } + + public static Message AppIdIncompatibleAdvertiseState(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string parentValue) + { + return Message(sourceLineNumbers, Ids.AppIdIncompatibleAdvertiseState, "The {0}/@(1) attribute's value, '{2}' does not match the advertise state on its parent element: '{3}'. (Note: AppIds nested under Fragment, Module, or Product elements must be advertised.)", elementName, attributeName, value, parentValue); + } + + public static Message BaselineRequired() + { + return Message(null, Ids.BaselineRequired, "No baseline was specified for one of the transforms specified. A baseline is required for all transforms in a patch."); + } + + public static Message BinderFileManagerMissingFile(SourceLineNumber sourceLineNumbers, string exceptionMessage) + { + return Message(sourceLineNumbers, Ids.BinderFileManagerMissingFile, "{0}", exceptionMessage); + } + + public static Message BothUpgradeCodesRequired() + { + return Message(null, Ids.BothUpgradeCodesRequired, "Both the target and updated product authoring must define the Product/@UpgradeCode attribute if the transform validates the UpgradeCode (default). Either define the Product/@UpgradeCode attribute in both the target and updated authoring, or set the Validate/@UpgradeCode attribute to 'no' in the patch authoring."); + } + + public static Message BundleTooNew(string bundleExecutable, long bundleVersion) + { + return Message(null, Ids.BundleTooNew, "Unable to read bundle executable '{0}', because this bundle was created with a newer version of WiX (bundle version '{1}'). You must use a newer version of WiX in order to read this bundle.", bundleExecutable, bundleVersion); + } + + public static Message CabClosureFailed(string cabinet) + { + return Message(null, Ids.CabClosureFailed, "Failed to close cab '{0}'.", cabinet); + } + + public static Message CabClosureFailed(string cabinet, int error) + { + return Message(null, Ids.CabClosureFailed, "Failed to close cab '{0}', error: {1}.", cabinet, error); + } + + public static Message CabCreationFailed(string cabName, string fileName, int error) + { + return Message(null, Ids.CabCreationFailed, "Failed to create cab '{0}' while compressing file '{1}' with error 0x{2:X8}.", cabName, fileName, error); + } + + public static Message CabCreationFailed(string cabName, int error) + { + return Message(null, Ids.CabCreationFailed, "Failed to create cab '{0}' with error 0x{1:X8}.", cabName, error); + } + + public static Message CabExtractionFailed(string cabName, string directoryName) + { + return Message(null, Ids.CabExtractionFailed, "Failed to extract cab '{0}' to directory '{1}'. This is most likely due to a lack of available disk space on the destination drive.", cabName, directoryName); + } + + public static Message CabExtractionFailed(string cabName, string mergeModulePath, string directoryName) + { + return Message(null, Ids.CabExtractionFailed, "Failed to extract cab '{0}' from merge module '{1}' to directory '{2}'. This is most likely due to a lack of available disk space on the destination drive.", cabName, mergeModulePath, directoryName); + } + + public static Message CabFileDoesNotExist(string cabName, string mergeModulePath, string directoryName) + { + return Message(null, Ids.CabFileDoesNotExist, "Attempted to extract cab '{0}' from merge module '{1}' to directory '{2}'. The cab file was not found. This usually means that you have a merge module without a cabinet inside it.", cabName, mergeModulePath, directoryName); + } + + public static Message CannotAuthorSpecialProperties(SourceLineNumber sourceLineNumbers, string propertyName) + { + return Message(sourceLineNumbers, Ids.CannotAuthorSpecialProperties, "The {0} property was specified. Special MSI properties cannot be authored. Use the attributes on the Property element instead.", propertyName); + } + + public static Message CannotDefaultComponentId(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CannotDefaultComponentId, "The Component/@Id attribute was not found; it is required when there is no valid keypath to use as the default id value."); + } + + public static Message CannotDefaultMismatchedAdvertiseStates(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CannotDefaultMismatchedAdvertiseStates, "MIME element cannot be marked as the default when its advertise state differs from its parent element. Ensure that the advertise state of the MIME element matches its parents element or remove the Mime/@Advertise attribute completely."); + } + + public static Message CannotFindFile(SourceLineNumber sourceLineNumbers, string fileId, string fileName, string filePath) + { + return Message(sourceLineNumbers, Ids.CannotFindFile, "The file with id '{0}' and name '{1}' could not be found with source path: '{2}'.", fileId, fileName, filePath); + } + + public static Message CanNotHaveTwoParents(SourceLineNumber sourceLineNumbers, string directorySearch, string parentAttribute, string parentElement) + { + return Message(sourceLineNumbers, Ids.CanNotHaveTwoParents, "The DirectorySearchRef {0} can not have a Parent attribute {1} and also be nested under parent element {2}", directorySearch, parentAttribute, parentElement); + } + + public static Message CannotLoadBinderFileManager(string binderFileManager, string currentBinderFileManager) + { + return Message(null, Ids.CannotLoadBinderFileManager, "Cannot load binder file manager: {0}. Light can only load one binder file manager and has already loaded binder file manager: {1}.", binderFileManager, currentBinderFileManager); + } + + public static Message CannotLoadLinkerExtension(string linkerExtension, string currentLinkerExtension) + { + return Message(null, Ids.CannotLoadLinkerExtension, "Cannot load linker extension: {0}. Light can only load one link extension and has already loaded link extension: {1}.", linkerExtension, currentLinkerExtension); + } + + public static Message CannotOpenMergeModule(SourceLineNumber sourceLineNumbers, string mergeModuleIdentifier, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.CannotOpenMergeModule, "Cannot open the merge module '{0}' from file '{1}'.", mergeModuleIdentifier, mergeModuleFile); + } + + public static Message CannotReundefineVariable(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.CannotReundefineVariable, "The variable '{0}' cannot be undefined because its already undefined.", variableName); + } + + public static Message CatalogFileHashFailed(string fileName, int errorCode) + { + return Message(null, Ids.CatalogFileHashFailed, "Could not get hash of file '{0}'. Error: {2}.", fileName, errorCode); + } + + public static Message CatalogVerificationFailed(string fileName) + { + return Message(null, Ids.CatalogVerificationFailed, "File '{0}' could not be verified with a catalog file.", fileName); + } + + public static Message CheckBoxValueOnlyValidWithCheckBox(SourceLineNumber sourceLineNumbers, string elementName, string controlType) + { + return Message(sourceLineNumbers, Ids.CheckBoxValueOnlyValidWithCheckBox, "A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'.", elementName, controlType); + } + + public static Message CollidingModularizationTypes(string tableName, string columnName, string foreignTableName, int foreignColumnNumber, string modularizationType, string foreignModularizationType) + { + return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: one is {4} and the other is {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); + } + + public static Message ComponentExpectedFeature(SourceLineNumber sourceLineNumbers, string component, string type, string target) + { + return Message(sourceLineNumbers, Ids.ComponentExpectedFeature, "The component '{0}' is not assigned to a feature. The component's {1} '{2}' requires it to be assigned to at least one feature.", component, type, target); + } + + public static Message ComponentMultipleKeyPaths(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string fileElementName, string registryElementName, string odbcDataSourceElementName) + { + return Message(sourceLineNumbers, Ids.ComponentMultipleKeyPaths, "The {0} element has multiple key paths set. The key path may only be set to '{2}' in extension elements that support it or one of the following locations: {0}/@{1}, {3}/@{1}, {4}/@{1}, or {5}/@{1}.", elementName, attributeName, value, fileElementName, registryElementName, odbcDataSourceElementName); + } + + public static Message ComponentReferencedTwice(SourceLineNumber sourceLineNumbers, string crefChildId) + { + return Message(sourceLineNumbers, Ids.ComponentReferencedTwice, "Component {0} cannot be contained in a Module twice.", crefChildId); + } + + public static Message ConditionExpected(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ConditionExpected, "The {0} element's inner text cannot be an empty string or completely whitespace. If you don't want a condition, then simply remove the entire {0} element.", elementName); + } + + public static Message CorruptFileFormat(string path, FileFormat format) + { + return Message(null, Ids.CorruptFileFormat, "Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified.", path, format.ToString().ToLowerInvariant()); + } + + public static Message CreateCabAddFileFailed() + { + return Message(null, Ids.CreateCabAddFileFailed, "An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file."); + } + + public static Message CreateCabInsufficientDiskSpace() + { + return Message(null, Ids.CreateCabInsufficientDiskSpace, "An error (ERROR_DISK_FULL) was returned while creating a CAB file. This means you have insufficient disk space - please clear more disk space and try this operation again."); + } + + public static Message CubeFileNotFound(string cubeFile) + { + return Message(null, Ids.CubeFileNotFound, "The cube file '{0}' cannot be found. This file is required for MSI validation.", cubeFile); + } + + public static Message CustomActionIllegalInnerText(SourceLineNumber sourceLineNumbers, string elementName, string innerText, string attributeName) + { + return Message(sourceLineNumbers, Ids.CustomActionIllegalInnerText, "The {0} element contains illegal inner text: '{1}'. It may not contain inner text unless the {2} attribute is specified.", elementName, innerText, attributeName); + } + + public static Message CustomActionMultipleSources(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5) + { + return Message(sourceLineNumbers, Ids.CustomActionMultipleSources, "The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following source attributes specified at a time: {2}, {3}, {4}, {5}, or {6}.", elementName, attributeName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5); + } + + public static Message CustomActionMultipleTargets(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6, string attributeName7) + { + return Message(sourceLineNumbers, Ids.CustomActionMultipleTargets, "The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following target attributes specified at a time: {2}, {3}, {4}, {5}, {6}, {7}, or {8}.", elementName, attributeName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6, attributeName7); + } + + public static Message CustomActionSequencedInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.CustomActionSequencedInModule, "The {0} table contains a custom action '{1}' that has a sequence number specified. The Sequence attribute is not allowed for custom actions in a merge module. Please remove the action or use the Before or After attributes to specify where this action should be sequenced relative to another action.", sequenceTableName, actionName); + } + + public static Message CustomTableIllegalColumnWidth(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int value) + { + return Message(sourceLineNumbers, Ids.CustomTableIllegalColumnWidth, "The {0}/@{1} attribute's value, '{2}', is not a valid column width. Valid column widths are 2 or 4.", elementName, attributeName, value); + } + + public static Message CustomTableMissingPrimaryKey(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CustomTableMissingPrimaryKey, "The CustomTable is missing a Column element with the PrimaryKey attribute set to 'yes'. At least one column must be marked as the primary key."); + } + + public static Message CustomTableNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.CustomTableNameTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long.", elementName, attributeName, value); + } + + public static Message DatabaseSchemaMismatch(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.DatabaseSchemaMismatch, "The table definition of '{0}' in the target database does not match the table definition in the updated database. A transform requires that the target database schema match the updated database schema.", tableName); + } + + public static Message DirectoryPathRequired(string parameter) + { + return Message(null, Ids.DirectoryPathRequired, "The parameter '{0}' must be followed by a directory path.", parameter); + } + + public static Message DirectoryRootWithoutName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DirectoryRootWithoutName, "The {0} element requires the {1} attribute because there is no parent {0} element.", elementName, attributeName); + } + + public static Message DisallowedMsiProperty(SourceLineNumber sourceLineNumbers, string property, string illegalValueList) + { + return Message(sourceLineNumbers, Ids.DisallowedMsiProperty, "The '{0}' MsiProperty is controlled by the bootstrapper and cannot be authored. (Illegal properties are: {1}.) Remove the MsiProperty element.", property, illegalValueList); + } + + public static Message DuplicateCabinetName(SourceLineNumber sourceLineNumbers, string cabinetName) + { + return Message(sourceLineNumbers, Ids.DuplicateCabinetName, "Duplicate cabinet name '{0}' found.", cabinetName); + } + + public static Message DuplicateCabinetName2(SourceLineNumber sourceLineNumbers, string cabinetName) + { + return Message(sourceLineNumbers, Ids.DuplicateCabinetName2, "Duplicate cabinet name '{0}' error related to previous error.", cabinetName); + } + + public static Message DuplicateCommandLineOptionInExtension(string arg) + { + return Message(null, Ids.DuplicateCommandLineOptionInExtension, "The command line option '{0}' has already been loaded by another Heat extension.", arg); + } + + public static Message DuplicateComponentGuids(SourceLineNumber sourceLineNumbers, string componentId, string guid) + { + return Message(sourceLineNumbers, Ids.DuplicateComponentGuids, "Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID.", componentId, guid); + } + + public static Message DuplicateContextValue(SourceLineNumber sourceLineNumbers, string contextValue) + { + return Message(sourceLineNumbers, Ids.DuplicateContextValue, "The context value '{0}' was duplicated. Context values must be distinct.", contextValue); + } + + public static Message DuplicatedUiLocalization(SourceLineNumber sourceLineNumbers, string controlName, string dialogName) + { + return Message(sourceLineNumbers, Ids.DuplicatedUiLocalization, "The localization for control {0} in dialog {1} is duplicated. Only one localization per control is allowed.", controlName, dialogName); + } + + public static Message DuplicatedUiLocalization(SourceLineNumber sourceLineNumbers, string dialogName) + { + return Message(sourceLineNumbers, Ids.DuplicatedUiLocalization, "The localization for dialog {0} is duplicated. Only one localization per dialog is allowed.", dialogName); + } + + public static Message DuplicateExtensionPreprocessorType(string extension, string variablePrefix, string collidingExtension) + { + return Message(null, Ids.DuplicateExtensionPreprocessorType, "The extension '{0}' uses the same preprocessor variable prefix, '{1}', as previously loaded extension '{2}'. Please remove one of the extensions or rename the prefix to avoid the collision.", extension, variablePrefix, collidingExtension); + } + + public static Message DuplicateExtensionTable(string extension, string tableName) + { + return Message(null, Ids.DuplicateExtensionTable, "The extension '{0}' contains a definition for table '{1}' that collides with a previously loaded table definition. Please remove one of the conflicting extensions or rename one of the tables to avoid the collision.", extension, tableName); + } + + public static Message DuplicateExtensionXmlSchemaNamespace(string extension, string extensionXmlSchemaNamespace, string collidingExtension) + { + return Message(null, Ids.DuplicateExtensionXmlSchemaNamespace, "The extension '{0}' uses the same xml schema namespace, '{1}', as previously loaded extension '{2}'. Please either remove one of the extensions or rename the xml schema namespace to avoid the collision.", extension, extensionXmlSchemaNamespace, collidingExtension); + } + + public static Message DuplicateFileId(string fileId) + { + return Message(null, Ids.DuplicateFileId, "Multiple files with ID '{0}' exist. Windows Installer does not support file IDs that differ only by case. Change the file IDs to be unique.", fileId); + } + + public static Message DuplicateLocalizationIdentifier(SourceLineNumber sourceLineNumbers, string localizationId) + { + return Message(sourceLineNumbers, Ids.DuplicateLocalizationIdentifier, "The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict.", localizationId); + } + + public static Message DuplicateModuleCaseInsensitiveFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId1, string fileId2) + { + return Message(sourceLineNumbers, Ids.DuplicateModuleCaseInsensitiveFileIdentifier, "The merge module '{0}' contains 2 or more file identifiers that only differ by case: '{1}' and '{2}'. The WiX toolset extracts merge module files to the file system using these identifiers. Since most file systems are not case-sensitive a collision is likely. Please contact the owner of the merge module for a fix.", moduleId, fileId1, fileId2); + } + + public static Message DuplicateModuleFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId) + { + return Message(sourceLineNumbers, Ids.DuplicateModuleFileIdentifier, "The merge module '{0}' contains a file identifier, '{1}', that is duplicated either in another merge module or in a File/@Id attribute. File identifiers must be unique. Please change one of the file identifiers to a different value.", moduleId, fileId); + } + + public static Message DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) + { + return Message(sourceLineNumbers, Ids.DuplicatePrimaryKey, "The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision.", primaryKey, tableName); + } + + public static Message DuplicateProviderDependencyKey(string providerKey, string packageId) + { + return Message(null, Ids.DuplicateProviderDependencyKey, "The provider dependency key '{0}' was already imported from the package with Id '{1}'. Please remove the Provides element with the key '{0}' from the package authoring.", providerKey, packageId); + } + + public static Message DuplicateSourcesForOutput(string sourceList, string outputFile) + { + return Message(null, Ids.DuplicateSourcesForOutput, "Multiple source files ({0}) have resulted in the same output file '{1}'. This is likely because the source files only differ in extension or path. Rename the source files to avoid this problem.", sourceList, outputFile); + } + + public static Message DuplicateSymbol(SourceLineNumber sourceLineNumbers, string symbolName) + { + return Message(sourceLineNumbers, Ids.DuplicateSymbol, "Duplicate symbol '{0}' found. This typically means that an Id is duplicated. Access modifiers (internal, protected, private) cannot prevent these conflicts. Ensure all your identifiers of a given type (File, Component, Feature) are unique.", symbolName); + } + + public static Message DuplicateSymbol(SourceLineNumber sourceLineNumbers, string symbolName, string referencingSourceLineNumber) + { + return Message(sourceLineNumbers, Ids.DuplicateSymbol, "Duplicate symbol '{0}' referenced by {1}. This typically means that an Id is duplicated. Ensure all your identifiers of a given type (File, Component, Feature) are unique or use an access modifier to scope the identfier.", symbolName, referencingSourceLineNumber); + } + + public static Message DuplicateSymbol2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DuplicateSymbol2, "Location of symbol related to previous error."); + } + + public static Message DuplicateTransform(string transform) + { + return Message(null, Ids.DuplicateTransform, "The transform {0} was included twice on the command line. Each transform can be applied to a patch only once.", transform); + } + + public static Message DuplicateVariableDefinition(string variableName, string variableValue, string variableCollidingValue) + { + return Message(null, Ids.DuplicateVariableDefinition, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); + } + + public static Message ExampleGuid(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.ExampleGuid, "The {0}/@{1} attribute's value, '{2}', is not a legal Guid value. A Guid needs to be generated and put in place of '{2}' in the source file.", elementName, attributeName, value); + } + + public static Message ExpectedArgument(string argument) + { + return Message(null, Ids.ExpectedArgument, "{0} is expected to be followed by a value argument.", argument); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required.", elementName, attributeName); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attribute1Name, string attribute2Name, Boolean eitherOr) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0} element must have a value for exactly one of the {1} or {2} attributes.", elementName, attribute1Name, attribute2Name, eitherOr); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required when attribute {2} is specified.", elementName, attributeName, otherAttributeName); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required when attribute {2} has a value of '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue, Boolean otherAttributeValueUnless) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required unless the attribute {2} has a value of '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue, otherAttributeValueUnless); + } + + public static Message ExpectedAttributeInElementOrParent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeInElementOrParent, "The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2} element.", elementName, attributeName, parentElementName); + } + + public static Message ExpectedAttributeInElementOrParent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName, string parentAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeInElementOrParent, "The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2}/@{3} attribute.", elementName, attributeName, parentElementName, parentAttributeName); + } + + public static Message ExpectedAttributeOrElement(SourceLineNumber sourceLineNumbers, string parentElement, string attribute, string childElement) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeOrElement, "Element '{0}' missing attribute '{1}' or child element '{2}'. Exactly one of those is required.", parentElement, attribute, childElement); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1} or {2} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, or {3} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, or {4} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, or {5} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, {5}, or {6} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6, string attributeName7) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, {5}, {6}, or {7} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6, attributeName7); + } + + public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; at least one of these attributes must be specified.", elementName, attributeName1, attributeName2); + } + + public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} is present.", elementName, attributeName1, attributeName2, otherAttributeName); + } + + public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} has a value of '{4}'.", elementName, attributeName1, attributeName2, otherAttributeName, otherAttributeValue); + } + + public static Message ExpectedAttributesWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithoutOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required without attribute {3} present.", elementName, attributeName1, attributeName2, otherAttributeName); + } + + public static Message ExpectedAttributeWhenElementNotUnderElement(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWhenElementNotUnderElement, "The '{0}/@{1}' attribute was not found; it is required when element '{0}' is not nested under a '{2}' element.", elementName, attributeName, parentElementName); + } + + public static Message ExpectedAttributeWithElement(SourceLineNumber sourceLineNumbers, string elementName, string attribute, string childElementName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithElement, "The {0} element must have attribute '{1}' when child element '{2}' is present.", elementName, attribute, childElementName); + } + + public static Message ExpectedBinaryCategory(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ExpectedBinaryCategory, "The Column element specifies a binary column but does not have the correct Category specified. Windows Installer requires binary columns to specify their category as binary. Please set the Category attribute's value to 'Binary'."); + } + + public static Message ExpectedClientPatchIdInWixMsp() + { + return Message(null, Ids.ExpectedClientPatchIdInWixMsp, "The WixMsp is missing the client patch ID. Recompile the patch source files with the latest WiX toolset."); + } + + public static Message ExpectedDecompiler(string identifier) + { + return Message(null, Ids.ExpectedDecompiler, "No decompiler was provided. {0} requires a decompiler.", identifier); + } + + public static Message ExpectedDirectory(string directory) + { + return Message(null, Ids.ExpectedDirectory, "The directory '{0}' could not be found.", directory); + } + + public static Message ExpectedDirectoryGotFile(string option, string path) + { + return Message(null, Ids.ExpectedDirectoryGotFile, "The {0} option requires a directory, but the provided path is a file: {1}", option, path); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}.", elementName, childName); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1} or {2}.", elementName, childName1, childName2); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2, string childName3) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}, {2}, or {3}.", elementName, childName1, childName2, childName3); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2, string childName3, string childName4) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}, {2}, {3}, or {4}.", elementName, childName1, childName2, childName3, childName4); + } + + public static Message ExpectedEndElement(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ExpectedEndElement, "The end element matching the '{0}' start element was not found.", elementName); + } + + public static Message ExpectedEndforeach(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ExpectedEndforeach, "A statement was found that had no matching ."); + } + + public static Message ExpectedExpressionAfterNot(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.ExpectedExpressionAfterNot, "Expecting an argument for 'NOT' in expression '{0}'.", expression); + } + + public static Message ExpectedFileGotDirectory(string option, string path) + { + return Message(null, Ids.ExpectedFileGotDirectory, "The {0} option requires a file, but the provided path is a directory: {1}", option, path); + } + + public static Message ExpectedMediaCabinet(SourceLineNumber sourceLineNumbers, string fileId, int diskId) + { + return Message(sourceLineNumbers, Ids.ExpectedMediaCabinet, "The file '{0}' should be compressed but is not part of a compressed media. Files will be compressed if either the File/@Compressed or Package/@Compressed attributes are set to 'yes'. This can be fixed by setting the Media/@Cabinet attribute for media '{1}'.", fileId, diskId); + } + + public static Message ExpectedMediaRowsInWixMsp() + { + return Message(null, Ids.ExpectedMediaRowsInWixMsp, "The WixMsp has no media rows defined."); + } + + public static Message ExpectedParentWithAttribute(SourceLineNumber sourceLineNumbers, string parentElement, string attribute, string grandparentElement) + { + return Message(sourceLineNumbers, Ids.ExpectedParentWithAttribute, "When the {0}/@{1} attribute is specified, the {0} element must be nested under a {2} element.", parentElement, attribute, grandparentElement); + } + + public static Message ExpectedPatchIdInWixMsp() + { + return Message(null, Ids.ExpectedPatchIdInWixMsp, "The WixMsp is missing the patch ID."); + } + + public static Message ExpectedRowInPatchCreationPackage(string tableName) + { + return Message(null, Ids.ExpectedRowInPatchCreationPackage, "Could not find a row in the '{0}' table for this patch creation package. Patch creation packages must contain at least one row in the '{0}' table.", tableName); + } + + public static Message ExpectedSignedCabinetName(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ExpectedSignedCabinetName, "The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute."); + } + + public static Message ExpectedTableInMergeModule(string identifier) + { + return Message(null, Ids.ExpectedTableInMergeModule, "The table '{0}' was expected but was missing.", identifier); + } + + public static Message ExpectedVariable(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.ExpectedVariable, "A required variable was missing in the expression '{0}'.", expression); + } + + public static Message ExpectedWixVariableValue(string variableId) + { + return Message(null, Ids.ExpectedWixVariableValue, "The WiX variable '{0}' was declared without a value. Please specify a value for the variable.", variableId); + } + + public static Message FamilyNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length) + { + return Message(sourceLineNumbers, Ids.FamilyNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long for a family name because the maximum allowed length is 8 characters long.", elementName, attributeName, value, length); + } + + public static Message FeatureCannotFavorAndDisallowAdvertise(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string otherAttributeName, string otherValue) + { + return Message(sourceLineNumbers, Ids.FeatureCannotFavorAndDisallowAdvertise, "The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'. These options would ask the installer to disallow the advertised state for this feature while at the same time favoring it.", elementName, attributeName, value, otherAttributeName, otherValue); + } + + public static Message FeatureCannotFollowParentAndFavorLocalOrSource(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherValue) + { + return Message(sourceLineNumbers, Ids.FeatureCannotFollowParentAndFavorLocalOrSource, "The {0}/@{1} attribute cannot be specified if the {2} attribute's value is '{3}'. These options would ask the installer to force this feature to follow the parent installation state and simultaneously favor a particular installation state just for this feature.", elementName, attributeName, otherAttributeName, otherValue); + } + + public static Message FeatureConfigurableDirectoryNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.FeatureConfigurableDirectoryNotUppercase, "The {0}/@{1} attribute's value, '{2}', contains lowercase characters. Since this directory is user-configurable, it needs to be a public property. This means the value must be completely uppercase.", elementName, attributeName, value); + } + + public static Message FeatureNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.FeatureNameTooLong, "The {0}/@{1} attribute with value '{2}', is too long for a feature name. Due to limitations in the Windows Installer, feature names cannot be longer than 38 characters in length.", elementName, attributeName, attributeValue); + } + + public static Message FileIdentifierNotFound(SourceLineNumber sourceLineNumbers, string fileIdentifier) + { + return Message(sourceLineNumbers, Ids.FileIdentifierNotFound, "The file row with identifier '{0}' could not be found.", fileIdentifier); + } + + public static Message FileInUse(SourceLineNumber sourceLineNumbers, string file) + { + return Message(sourceLineNumbers, Ids.FileInUse, "The process can not access the file '{0}' because it is being used by another process.", file); + } + + public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file) + { + return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}'.", file); + } + + public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType) + { + return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}' with type '{1}'.", file, fileType); + } + + public static Message FileOrDirectoryPathRequired(string parameter) + { + return Message(null, Ids.FileOrDirectoryPathRequired, "The parameter '{0}' must be followed by a file or directory path. To specify a directory path the string must end with a backslash, for example: \"C:\\Path\\\".", parameter); + } + + public static Message FilePathRequired(string parameter) + { + return Message(null, Ids.FilePathRequired, "The parameter '{0}' must be followed by a file path.", parameter); + } + + public static Message FileTooLarge(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.FileTooLarge, "'{0}' is too large, file size must be less than 2147483648.", fileName); + } + + public static Message FileWriteError(string path, string error) + { + return Message(null, Ids.FileWriteError, "Error writing to the path: '{0}'. Error message: '{1}'", path, error); + } + + public static Message FinishCabFailed() + { + return Message(null, Ids.FinishCabFailed, "An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element."); + } + + public static Message FullTempDirectory(string prefix, string directory) + { + return Message(null, Ids.FullTempDirectory, "Unable to create temporary file. A common cause is that too many files that have names beginning with '{0}' are present. Delete any unneeded files in the '{1}' directory and try again.", prefix, directory); + } + + public static Message GACAssemblyIdentityWarning(SourceLineNumber sourceLineNumbers, string fileName, string assemblyName) + { + return Message(sourceLineNumbers, Ids.GACAssemblyIdentityWarning, "The destination name of file '{0}' does not match its assembly name '{1}' in your authoring. This will cause an installation failure for this assembly, because it will be installed to the Global Assembly Cache. To fix this error, update File/@Name of file '{0}' to be the actual name of the assembly.", fileName, assemblyName); + } + + public static Message GacAssemblyNoStrongName(SourceLineNumber sourceLineNumbers, string assemblyName, string componentName) + { + return Message(sourceLineNumbers, Ids.GacAssemblyNoStrongName, "Assembly {0} in component {1} has no strong name and has been marked to be placed in the GAC. All assemblies installed to the GAC must have a valid strong name.", assemblyName, componentName); + } + + public static Message GenericReadNotAllowed(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.GenericReadNotAllowed, "Permission elements cannot have GenericRead as the only permission specified. Include at least one other permission."); + } + + public static Message GuidContainsLowercaseLetters(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.GuidContainsLowercaseLetters, "The {0}/@{1} attribute's value, '{2}', is a mixed-case guid. All letters in a guid value should be uppercase.", elementName, attributeName, value); + } + + public static Message HarvestSourceNotSpecified() + { + return Message(null, Ids.HarvestSourceNotSpecified, "A harvest source must be specified after the harvest type and can be followed by harvester arguments."); + } + + public static Message HarvestTypeNotFound() + { + return Message(null, Ids.HarvestTypeNotFound, "The harvest type was not found in the list of loaded Heat extensions."); + } + + public static Message HarvestTypeNotFound(string harvestType) + { + return Message(null, Ids.HarvestTypeNotFound, "The harvest type '{0}' was specified. Harvest types cannot start with a '-'. Remove the '-' to specify a valid harvest type.", harvestType); + } + + public static Message IdentifierNotFound(string type, string identifier) + { + return Message(null, Ids.IdentifierNotFound, "An expected identifier ('{1}', of type '{0}') was not found.", type, identifier); + } + + public static Message IdentifierTooLongError(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int maxLength) + { + return Message(sourceLineNumbers, Ids.IdentifierTooLongError, "The {0}/@{1} attribute's value, '{2}', is too long. {0}/@{1} attribute's must be {3} characters long or less.", elementName, attributeName, value, maxLength); + } + + public static Message IllegalAttributeExceptOnElement(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string expectedElementName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeExceptOnElement, "The {1} attribute can only be specified on the {2} element.", elementName, attributeName, expectedElementName); + } + + public static Message IllegalAttributeInMergeModule(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeInMergeModule, "The {0}/@{1} attribute cannot be specified in a merge module.", elementName, attributeName); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}'.", elementName, attributeName, value, legalValue1); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', or '{4}'.", elementName, attributeName, value, legalValue1, legalValue2); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', or '{5}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', or '{6}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', or '{7}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', or '{8}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', or '{9}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7, string legalValue8) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', or '{10}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7, legalValue8); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7, string legalValue8, string legalValue9, string legalValue10, string legalValue11, string legalValue12, string legalValue13, string legalValue14, string legalValue15, string legalValue16, string legalValue17, string legalValue18, string legalValue19, string legalValue20, string legalValue21, string legalValue22, string legalValue23, string legalValue24, string legalValue25, string legalValue26) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', or '{28}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7, legalValue8, legalValue9, legalValue10, legalValue11, legalValue12, legalValue13, legalValue14, legalValue15, legalValue16, legalValue17, legalValue18, legalValue19, legalValue20, legalValue21, legalValue22, legalValue23, legalValue24, legalValue25, legalValue26); + } + + public static Message IllegalAttributeValueWhenNested(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attrivuteValue, string parentElementName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWhenNested, "The {0}/@{1} attribute value, '{2}', cannot be specified when the {0} element is nested underneath a {3} element.", elementName, attributeName, attrivuteValue, parentElementName); + } + + public static Message IllegalAttributeValueWithIllegalList(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string illegalValueList) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithIllegalList, "The {0}/@{1} attribute's value, '{2}', is one of the illegal options: {3}.", elementName, attributeName, value, illegalValueList); + } + + public static Message IllegalAttributeValueWithLegalList(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValueList) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithLegalList, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: {3}.", elementName, attributeName, value, legalValueList); + } + + public static Message IllegalAttributeValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present.", elementName, attributeName, attributeValue, otherAttributeName); + } + + public static Message IllegalAttributeValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present with value '{4}'.", elementName, attributeName, attributeValue, otherAttributeName, otherAttributeValue); + } + + public static Message IllegalAttributeValueWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithoutOtherAttribute, "The {0}/@{1} attribute's value, '{2}', can only be specified with attribute {3} present with value '{4}'.", elementName, attributeName, attributeValue, otherAttributeName, otherAttributeValue); + } + + public static Message IllegalAttributeValueWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithoutOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified without attribute {3} present.", elementName, attributeName, attributeValue, otherAttributeName); + } + + public static Message IllegalAttributeWhenAdvertised(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWhenAdvertised, "The {0}/@{1} attribute cannot be specified because the element is advertised.", elementName, attributeName); + } + + public static Message IllegalAttributeWhenNested(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElement) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWhenNested, "The {0}/@{1} attribute cannot be specified when the {0} element is nested underneath a {2} element. If this {0} is a member of a ComponentGroup where ComponentGroup/@{1} is set, then the {0}/@{1} attribute should be removed.", elementName, attributeName, parentElement); + } + + public static Message IllegalAttributeWithInnerText(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithInnerText, "The {0}/@{1} attribute cannot be specified when the element has body text as well. Specify either the attribute or the body, but not both.", elementName, attributeName); + } + + public static Message IllegalAttributeWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttribute, "The {0}/@{1} attribute cannot be specified when attribute {2} is present.", elementName, attributeName, otherAttributeName); + } + + public static Message IllegalAttributeWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttribute, "The {0}/@{1} attribute cannot be specified when attribute {2} is present with value '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue); + } + + public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2} or {3} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); + } + + public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, or {4} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3); + } + + public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3, string otherAttributeName4) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, {4}, or {5} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3, otherAttributeName4); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with the following attribute {2} present.", elementName, attributeName, otherAttributeName); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeValue, Boolean uniquifier) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present with value '{4}'.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeValue, uniquifier); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, or {4} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3, string otherAttributeName4) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, {4}, or {5} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3, otherAttributeName4); + } + + public static Message IllegalBinderClassName() + { + return Message(null, Ids.IllegalBinderClassName, "Illegal binder class name specified for -binder command line option."); + } + + public static Message IllegalCabbingThreadCount(string numThreads) + { + return Message(null, Ids.IllegalCabbingThreadCount, "Illegal number of threads to create cabinets: '{0}' for -ct command line option. Specify the number of threads to use like -ct 2.", numThreads); + } + + public static Message IllegalCharactersInPath(string pathName) + { + return Message(null, Ids.IllegalCharactersInPath, "Illegal characters in path '{0}'. Ensure you provided a valid path to the file.", pathName); + } + + public static Message IllegalCodepage(int codepage) + { + return Message(null, Ids.IllegalCodepage, "The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); + } + + public static Message IllegalCodepageAttribute(SourceLineNumber sourceLineNumbers, string codepage, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalCodepageAttribute, "The code page '{0}' is not a valid Windows code page. Please check the {1}/@{2} attribute value in your source file.", codepage, elementName, attributeName); + } + + public static Message IllegalColumnName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalColumnName, "The {0}/@{1} attribute's value, '{2}', is not a legal column name. It will collide with the sentinel values used in the _TransformView table.", elementName, attributeName, value); + } + + public static Message IllegalCommandlineArgumentCombination(string arg1, string arg2) + { + return Message(null, Ids.IllegalCommandlineArgumentCombination, "'-{0}' cannot be specfied in combination with '-{1}'.", arg1, arg2); + } + + public static Message IllegalComponentWithAutoGeneratedGuid(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalComponentWithAutoGeneratedGuid, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components using a Directory as a KeyPath or containing ODBCDataSource child elements cannot use an automatically generated guid. Make sure your component doesn't have a Directory as the KeyPath and move any ODBCDataSource child elements to components with explicit component guids."); + } + + public static Message IllegalComponentWithAutoGeneratedGuid(SourceLineNumber sourceLineNumbers, Boolean registryKeyPath) + { + return Message(sourceLineNumbers, Ids.IllegalComponentWithAutoGeneratedGuid, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with registry keypaths and files cannot use an automatically generated guid. Create multiple components, each with one file and/or one registry value keypath, to use automatically generated guids.", registryKeyPath); + } + + public static Message IllegalCompressionLevel(string compressionLevel) + { + return Message(null, Ids.IllegalCompressionLevel, "The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'.", compressionLevel); + } + + public static Message IllegalDefineStatement(SourceLineNumber sourceLineNumbers, string defineStatement) + { + return Message(sourceLineNumbers, Ids.IllegalDefineStatement, "The define statement '' is not well-formed. Define statements should be in the form .", defineStatement); + } + + public static Message IllegalEmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalEmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. If a value is not required, simply remove the entire attribute.", elementName, attributeName); + } + + public static Message IllegalEmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string defaultValue) + { + return Message(sourceLineNumbers, Ids.IllegalEmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. To use the default value \"{2}\", simply remove the entire attribute.", elementName, attributeName, defaultValue); + } + + public static Message IllegalEnvironmentVariable(string environmentVariable, string value) + { + return Message(null, Ids.IllegalEnvironmentVariable, "The {0} environment variable is set to an invalid value of '{1}'.", environmentVariable, value); + } + + public static Message IllegalFamilyName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalFamilyName, "The {0}/@{1} attribute's value, '{2}', contains illegal characters for a family name. Legal values include letters, numbers, and underscores.", elementName, attributeName, value); + } + + public static Message IllegalFileCompressionAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalFileCompressionAttributes, "Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column."); + } + + public static Message IllegalForeach(SourceLineNumber sourceLineNumbers, string foreachStatement) + { + return Message(sourceLineNumbers, Ids.IllegalForeach, "The foreach statement '{0}' is illegal. The proper format for foreach is .", foreachStatement); + } + + public static Message IllegalGeneratedGuidComponentUnversionedKeypath(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalGeneratedGuidComponentUnversionedKeypath, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component's keypath is not versioned. Create multiple components to use automatically generated guids."); + } + + public static Message IllegalGeneratedGuidComponentVersionedNonkeypath(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalGeneratedGuidComponentVersionedNonkeypath, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component has a non-keypath file that is versioned. Create multiple components to use automatically generated guids."); + } + + public static Message IllegalGuidValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalGuidValue, "The {0}/@{1} attribute's value, '{2}', is not a legal guid value.", elementName, attributeName, value); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0} element's value, '{1}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, value); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int disambiguator) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, disambiguator); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value, '{2}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, value); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string identifier) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value '{2}' contains an illegal identifier '{3}'. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, value, identifier); + } + + public static Message IllegalIdentifierLooksLikeFormatted(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifierLooksLikeFormatted, "The {0}/@{1} attribute's value, '{2}', is not a legal identifier. The {0}/@{1} attribute does not support formatted string values, such as property names enclosed in brackets ([LIKETHIS]). The value must be the identifier of another element, such as the Directory/@Id attribute value.", elementName, attributeName, value); + } + + public static Message IllegalInlineLocVariable(SourceLineNumber sourceLineNumbers, string variableName, string variableValue) + { + return Message(sourceLineNumbers, Ids.IllegalInlineLocVariable, "The localization variable '{0}' specifies an illegal inline default value of '{1}'. Localization variables cannot specify default values inline, instead the value should be specified in a WiX localization (.wxl) file.", variableName, variableValue); + } + + public static Message IllegalIntegerInExpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.IllegalIntegerInExpression, "An illegal number was found in the expression '{0}'.", expression); + } + + public static Message IllegalIntegerValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIntegerValue, "The {0}/@{1} attribute's value, '{2}', is not a legal integer value. Legal integer values are from -2,147,483,648 to 2,147,483,647.", elementName, attributeName, value); + } + + public static Message IllegalLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalLongFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid filename because it contains illegal characters. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \\ ? | > < : / * \".", elementName, attributeName, value); + } + + public static Message IllegalLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string filename) + { + return Message(sourceLineNumbers, Ids.IllegalLongFilename, "The {0}/@{1} attribute's value '{2}' contains a invalid filename '{3}'. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \\ ? | > < : / * \".", elementName, attributeName, value, filename); + } + + public static Message IllegalLongValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalLongValue, "The {0}/@{1} attribute's value, '{2}', is not a legal long value. Legal long values are from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.", elementName, attributeName, value); + } + + public static Message IllegalModuleExclusionLanguageAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalModuleExclusionLanguageAttributes, "Cannot set both ExcludeLanguage and ExcludeExceptLanguage attributes on a ModuleExclusion element."); + } + + public static Message IllegalParentAttributeWhenNested(SourceLineNumber sourceLineNumbers, string parentElementName, string parentAttributeName, string childElement) + { + return Message(sourceLineNumbers, Ids.IllegalParentAttributeWhenNested, "The {0}/@{1} attribute cannot be specified when a {2} element is nested underneath the {0} element.", parentElementName, parentAttributeName, childElement); + } + + public static Message IllegalPathForGeneratedComponentGuid(SourceLineNumber sourceLineNumbers, string componentName, string keyFilePath) + { + return Message(sourceLineNumbers, Ids.IllegalPathForGeneratedComponentGuid, "The component '{0}' has a key file with path '{1}'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name \"Common Files\" under ProgramFilesFolder.)", componentName, keyFilePath); + } + + public static Message IllegalPropertyCustomActionAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalPropertyCustomActionAttributes, "The CustomAction sets a property but its Execute attribute is not 'immediate' (the default). Property-setting custom actions cannot be deferred.\""); + } + + public static Message IllegalRelativeLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalRelativeLongFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid relative long name because it contains illegal characters. Legal relative long names contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: ? | > < : / * \".", elementName, attributeName, value); + } + + public static Message IllegalRootDirectory(SourceLineNumber sourceLineNumbers, string directoryId) + { + return Message(sourceLineNumbers, Ids.IllegalRootDirectory, "The Directory with Id '{0}' is not a valid root directory. There may only be a single root directory per product or module and its Id attribute value must be 'TARGETDIR' and its Name attribute value must be 'SourceDir'.", directoryId); + } + + public static Message IllegalSearchIdForParentDepth(SourceLineNumber sourceLineNumbers, string id, string parentId) + { + return Message(sourceLineNumbers, Ids.IllegalSearchIdForParentDepth, "When the parent DirectorySearch/@Depth attribute is greater than 1 for the DirectorySearch '{1}', the FileSearch/@Id attribute must be absent for FileSearch '{0}' unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. Remove the FileSearch/@Id attribute for '{0}' to resolve this issue.", id, parentId); + } + + public static Message IllegalShortFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalShortFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid 8.3-compliant name. Legal names contain no more than 8 non-period characters followed by an optional period and extension of no more than 3 non-period characters. Any character except for the follow may be used: \\ ? | > < : / * \" + , ; = [ ] (space).", elementName, attributeName, value); + } + + public static Message IllegalSuppressWarningId(string suppressedId) + { + return Message(null, Ids.IllegalSuppressWarningId, "Illegal value '{0}' for the -sw command line option. Specify a particular warning number, like '-sw6' to suppress the warning with ID 6, or '-sw' alone to suppress all warnings.", suppressedId); + } + + public static Message IllegalTargetDirDefaultDir(SourceLineNumber sourceLineNumbers, string defaultDir) + { + return Message(sourceLineNumbers, Ids.IllegalTargetDirDefaultDir, "The 'TARGETDIR' directory has an illegal DefaultDir value of '{0}'. The DefaultDir value is created from the *Name attributes of the Directory element. The TARGETDIR directory is a special directory which must have its Name attribute set to 'SourceDir'.", defaultDir); + } + + public static Message IllegalTerminalServerCustomActionAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalTerminalServerCustomActionAttributes, "The CustomAction/@TerminalServerAware attribute's value is 'yes' but the Execute attribute is not 'deferred,' 'rollback,' or 'commit.' Terminal-Server-aware custom actions must be deferred, rollback, or commit custom actions. For more information, see http://msdn.microsoft.com/library/aa372071.aspx.\""); + } + + public static Message IllegalValidationArguments() + { + return Message(null, Ids.IllegalValidationArguments, "You may only specify a single default type using -t or specify custom validation using -serr and -val."); + } + + public static Message IllegalVersionValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalVersionValue, "The {0}/@{1} attribute's value, '{2}', is not a valid version. Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534.", elementName, attributeName, value); + } + + public static Message IllegalWarningIdAsError(string warningId) + { + return Message(null, Ids.IllegalWarningIdAsError, "Illegal value '{0}' for the -wx command line option. Specify a particular warning number, like '-wx6' to display the warning with ID 6 as an error, or '-wx' alone to suppress all warnings.", warningId); + } + + public static Message IllegalWixVariablePrefix(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.IllegalWixVariablePrefix, "The WiX variable $(wix.{0}) uses an illegal prefix '$'. Please use the '!' prefix instead.", variableId); + } + + public static Message IllegalYesNoAlwaysValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalYesNoAlwaysValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/always value. The only legal values are 'always', 'no' or 'yes'.", elementName, attributeName, value); + } + + public static Message IllegalYesNoDefaultValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalYesNoDefaultValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/default value. The only legal values are 'default', 'no' or 'yes'.", elementName, attributeName, value); + } + + public static Message IllegalYesNoValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalYesNoValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no value. The only legal values are 'no' and 'yes'.", elementName, attributeName, value); + } + + public static Message ImplicitComponentKeyPath(SourceLineNumber sourceLineNumbers, string componentId) + { + return Message(sourceLineNumbers, Ids.ImplicitComponentKeyPath, "The component '{0}' does not have an explicit key path specified. If the ordering of the elements under the Component element changes, the key path will also change. To prevent accidental changes, the key path should be set to 'yes' in one of the following locations: Component/@KeyPath, File/@KeyPath, ODBCDataSource/@KeyPath, or Registry/@KeyPath.", componentId); + } + + public static Message InlineDirectorySyntaxRequiresPath(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string identifier) + { + return Message(sourceLineNumbers, Ids.InlineDirectorySyntaxRequiresPath, "The {0}/@{1} attribute's value '{2}' only specifies a directory reference. The inline directory syntax requires that at least one directory be specified in addition to the value. For example, use '{3}:\\foo\\' to add a 'foo' directory.", elementName, attributeName, value, identifier); + } + + public static Message InsecureBundleFilename(string filename) + { + return Message(null, Ids.InsecureBundleFilename, "The file name '{0}' creates an insecure bundle. Windows will load unnecessary compatibility shims into a bundle with that file name. These compatibility shims can be DLL hijacked allowing attackers to compromise your customers' computer. Choose a different bundle file name.", filename); + } + + public static Message InsertInvalidSequenceActionOrder(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionNameBefore, string actionNameAfter, string actionNameNew) + { + return Message(sourceLineNumbers, Ids.InsertInvalidSequenceActionOrder, "Invalid order of actions {1} and {2} in sequence table {0}. Action {3} must occur after {1} and before {2}, but {2} is currently sequenced after {1}. Please fix the ordering or explicitly supply a location for the action {3}.", sequenceTableName, actionNameBefore, actionNameAfter, actionNameNew); + } + + public static Message InsertSequenceNoSpace(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionNameBefore, string actionNameAfter, string actionNameNew) + { + return Message(sourceLineNumbers, Ids.InsertSequenceNoSpace, "Not enough space exists to sequence action {3} in table {0}. It must be sequenced after {1} and before {2}, but those two actions are currently sequenced next to each other. Please move one of those actions to allow {3} to be inserted between them.", sequenceTableName, actionNameBefore, actionNameAfter, actionNameNew); + } + + public static Message InsufficientVersion(SourceLineNumber sourceLineNumbers, Version currentVersion, Version requiredVersion) + { + return Message(sourceLineNumbers, Ids.InsufficientVersion, "The current version of the toolset is {0}, but version {1} is required.", currentVersion, requiredVersion); + } + + public static Message InsufficientVersion(SourceLineNumber sourceLineNumbers, Version currentVersion, Version requiredVersion, string extension) + { + return Message(sourceLineNumbers, Ids.InsufficientVersion, "The current version of the extension '{2}' is {0}, but version {1} is required.", currentVersion, requiredVersion, extension); + } + + public static Message IntegralValueOutOfRange(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int value, int minimum, int maximum) + { + return Message(sourceLineNumbers, Ids.IntegralValueOutOfRange, "The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}.", elementName, attributeName, value, minimum, maximum); + } + + public static Message IntegralValueOutOfRange(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, long value, long minimum, long maximum) + { + return Message(sourceLineNumbers, Ids.IntegralValueOutOfRange, "The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}.", elementName, attributeName, value, minimum, maximum); + } + + public static Message IntegralValueSentinelCollision(SourceLineNumber sourceLineNumbers, int value) + { + return Message(sourceLineNumbers, Ids.IntegralValueSentinelCollision, "The integer value {0} collides with a sentinel value in the compiler code.", value); + } + + public static Message IntegralValueSentinelCollision(SourceLineNumber sourceLineNumbers, long value) + { + return Message(sourceLineNumbers, Ids.IntegralValueSentinelCollision, "The long integral value {0} collides with a sentinel value in the compiler code.", value); + } + + public static Message InvalidAddedFileRowWithoutSequence(SourceLineNumber sourceLineNumbers, string fileRowId) + { + return Message(sourceLineNumbers, Ids.InvalidAddedFileRowWithoutSequence, "A row has been added to the File table with id '{1}' that does not have a sequence number assigned to it. Create your transform from a pair of msi's instead of xml outputs to get sequences assigned to your File table's rows.", fileRowId); + } + + public static Message InvalidAssemblyFile(SourceLineNumber sourceLineNumbers, string assemblyFile, string moreInformation) + { + return Message(sourceLineNumbers, Ids.InvalidAssemblyFile, "The assembly file '{0}' appears to be invalid. Please ensure this is a valid assembly file and that the user has the appropriate access rights to this file. More information: {1}", assemblyFile, moreInformation); + } + + public static Message InvalidBundle(string bundleExecutable) + { + return Message(null, Ids.InvalidBundle, "Unable to read bundle executable '{0}'. This is not a valid WiX bundle.", bundleExecutable); + } + + public static Message InvalidCabinetTemplate(SourceLineNumber sourceLineNumbers, string cabinetTemplate) + { + return Message(sourceLineNumbers, Ids.InvalidCabinetTemplate, "CabinetTemplate attribute's value '{0}' must contain '{{0}}' and should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the follow may be used: \\ ? | > < : / * \" + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms).", cabinetTemplate); + } + + public static Message InvalidCommandLineFileName(string fileName, string error) + { + return Message(null, Ids.InvalidCommandLineFileName, "Invalid file name specified on the command line: '{0}'. Error message: '{1}'", fileName, error); + } + + public static Message InvalidDateTimeFormat(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.InvalidDateTimeFormat, "The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss.", elementName, attributeName, value); + } + + public static Message InvalidDocumentElement(SourceLineNumber sourceLineNumbers, string elementName, string fileType, string expectedElementName) + { + return Message(sourceLineNumbers, Ids.InvalidDocumentElement, "The document element name '{0}' is invalid. A WiX {1} file must use '{2}' as the document element name.", elementName, fileType, expectedElementName); + } + + public static Message InvalidEmbeddedUIFileName(SourceLineNumber sourceLineNumbers, string codepage) + { + return Message(sourceLineNumbers, Ids.InvalidEmbeddedUIFileName, "The EmbeddedUI/@Name attribute value, '{0}', does not contain an extension. Windows Installer will not load an embedded UI DLL without an extension. Include an extension or just omit the Name attribute so it defaults to the file name portion of the Source attribute value.", codepage); + } + + public static Message InvalidExtension(string extension) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be loaded.", extension); + } + + public static Message InvalidExtension(string extension, string invalidReason) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be loaded because of the following reason: {1}", extension, invalidReason); + } + + public static Message InvalidExtension(string extension, string extensionType, string expectedType) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}'.", extension, extensionType, expectedType); + } + + public static Message InvalidExtension(string extension, string extensionType, string expectedType1, string expectedType2) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}' or '{3}'.", extension, extensionType, expectedType1, expectedType2); + } + + public static Message InvalidExtensionType(string extension, string attributeType) + { + return Message(null, Ids.InvalidExtensionType, "Either '{1}' was not defined in the assembly or the type defined in extension '{0}' could not be loaded.", extension, attributeType); + } + + public static Message InvalidExtensionType(string extension, string className, string expectedType) + { + return Message(null, Ids.InvalidExtensionType, "The extension type '{1}' in extension '{0}' does not inherit from the expected class '{2}'.", extension, className, expectedType); + } + + public static Message InvalidExtensionType(string extension, string className, string exceptionType, string exceptionMessage) + { + return Message(null, Ids.InvalidExtensionType, "The type '{1}' in extension '{0}' could not be loaded. Exception type '{2}' returned the following message: {3}", extension, className, exceptionType, exceptionMessage); + } + + public static Message InvalidFileName(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.InvalidFileName, "Invalid file name '{0}'.", fileName); + } + + public static Message InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile) + { + return Message(sourceLineNumbers, Ids.InvalidIdt, "There was an error importing the file '{0}'.", idtFile); + } + + public static Message InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile, string tableName) + { + return Message(sourceLineNumbers, Ids.InvalidIdt, "There was an error importing table '{1}' from file '{0}'.", idtFile, tableName); + } + + public static Message InvalidKeyColumn(string tableName, string columnName, string foreignTableName, int foreignColumnNumber) + { + return Message(null, Ids.InvalidKeyColumn, "The definition for the '{0}' table's '{1}' column is an invalid foreign key relationship to the {2} table's column number {3}. It is not a valid foreign key table column number because it is too small (less than 1) or greater than the count of columns in the foreign table's definition.", tableName, columnName, foreignTableName, foreignColumnNumber); + } + + public static Message InvalidKeypathChange(SourceLineNumber sourceLineNumbers, string component, string transformPath) + { + return Message(sourceLineNumbers, Ids.InvalidKeypathChange, "Component '{0}' has a changed keypath in the transform '{1}'. Patches cannot change the keypath of a component.", component, transformPath); + } + + public static Message InvalidManifestContent(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.InvalidManifestContent, "The manifest '{0}' does not have the required assembly/assemblyIdentity element.", fileName); + } + + public static Message InvalidMergeLanguage(SourceLineNumber sourceLineNumbers, string mergeId, string mergeLanguage) + { + return Message(sourceLineNumbers, Ids.InvalidMergeLanguage, "The Merge element '{0}' specified an invalid language '{1}'. Verify that localization tokens are being properly resolved to a numeric LCID.", mergeId, mergeLanguage); + } + + public static Message InvalidModuleOrBundleVersion(SourceLineNumber sourceLineNumbers, string moduleOrBundle, string version) + { + return Message(sourceLineNumbers, Ids.InvalidModuleOrBundleVersion, "Invalid {0}/@Version '{1}'. {0} version has a max value of \"65535.65535.65535.65535\" and must be all numeric.", moduleOrBundle, version); + } + + public static Message InvalidPlatformParameter(string name, string value) + { + return Message(null, Ids.InvalidPlatformParameter, "The parameter '{0}' is missing or has an invalid value {1}. Possible values are x86, x64, or ia64.", name, value); + } + + public static Message InvalidPlatformValue(SourceLineNumber sourceLineNumbers, string value) + { + return Message(sourceLineNumbers, Ids.InvalidPlatformValue, "The Platform attribute has an invalid value {0}. Possible values are x86, x64, or ia64.", value); + } + + public static Message InvalidPreprocessorFunction(SourceLineNumber sourceLineNumbers, string variable) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorFunction, "Ill-formed preprocessor function '${0}'. Functions must have a prefix (like 'fun.'), a name at least 1 character long, and matching opening and closing parentheses.", variable); + } + + public static Message InvalidPreprocessorFunctionAutoVersion(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorFunctionAutoVersion, "Invalid AutoVersion template specified."); + } + + public static Message InvalidPreprocessorPragma(SourceLineNumber sourceLineNumbers, string variable) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorPragma, "Malformed preprocessor pragma '{0}'. Pragmas must have a prefix, a name of at least 1 character long, and be followed by optional arguments.", variable); + } + + public static Message InvalidPreprocessorVariable(SourceLineNumber sourceLineNumbers, string variable) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorVariable, "Ill-formed preprocessor variable '$({0})'. Variables must have a prefix (like 'var.', 'env.', or 'sys.') and a name at least 1 character long. If the literal string '$({0})' is desired, use '$$({0})'.", variable); + } + + public static Message InvalidProductVersion(SourceLineNumber sourceLineNumbers, string version) + { + return Message(sourceLineNumbers, Ids.InvalidProductVersion, "Invalid product version '{0}'. Product version must have a major version less than 256, a minor version less than 256, and a build version less than 65536.", version); + } + + public static Message InvalidProductVersion(SourceLineNumber sourceLineNumbers, string version, string packagePath) + { + return Message(sourceLineNumbers, Ids.InvalidProductVersion, "Invalid product version '{0}' in package '{1}'. When included in a bundle, all product version fields in an MSI package must be less than 65536.", version, packagePath); + } + + public static Message InvalidRemoveComponent(SourceLineNumber sourceLineNumbers, string component, string feature, string transformPath) + { + return Message(sourceLineNumbers, Ids.InvalidRemoveComponent, "Removing component '{0}' from feature '{1}' is not supported. Either the component was removed or the guid changed in the transform '{2}'. Add the component back, undo the change to the component guid, or remove the entire feature.", component, feature, transformPath); + } + + public static Message InvalidSequenceTable(string sequenceTableName) + { + return Message(null, Ids.InvalidSequenceTable, "Found an invalid sequence table '{0}'.", sequenceTableName); + } + + public static Message InvalidStringForCodepage(SourceLineNumber sourceLineNumbers, string codepage) + { + return Message(sourceLineNumbers, Ids.InvalidStringForCodepage, "A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); + } + + public static Message InvalidStubExe(string filename) + { + return Message(null, Ids.InvalidStubExe, "Stub executable '{0}' is not a valid Win32 executable.", filename); + } + + public static Message InvalidSubExpression(SourceLineNumber sourceLineNumbers, string subExpression, string expression) + { + return Message(sourceLineNumbers, Ids.InvalidSubExpression, "Found invalid subexpression '{0}' in expression '{1}'.", subExpression, expression); + } + + public static Message InvalidSummaryInfoCodePage(SourceLineNumber sourceLineNumbers, int codePage) + { + return Message(sourceLineNumbers, Ids.InvalidSummaryInfoCodePage, "The code page '{0}' is invalid for summary information. You must specify an ANSI code page.", codePage); + } + + public static Message InvalidValidatorMessageType(string type) + { + return Message(null, Ids.InvalidValidatorMessageType, "Unknown validation message type '{0}'.", type); + } + + public static Message InvalidVariableDefinition(string variableDefinition) + { + return Message(null, Ids.InvalidVariableDefinition, "The variable definition '{0}' is not valid. Variable definitions should be in the form -dname=value where the value is optional.", variableDefinition); + } + + public static Message InvalidWixTransform(string fileName) + { + return Message(null, Ids.InvalidWixTransform, "The file '{0}' is not a valid WiX Transform.", fileName); + } + + public static Message InvalidWixXmlNamespace(SourceLineNumber sourceLineNumbers, string wixElementName, string wixNamespace) + { + return Message(sourceLineNumbers, Ids.InvalidWixXmlNamespace, "The {0} element has no namespace. Please make the {0} element look like the following: <{0} xmlns=\"{1}\">.", wixElementName, wixNamespace); + } + + public static Message InvalidWixXmlNamespace(SourceLineNumber sourceLineNumbers, string wixElementName, string elementNamespace, string wixNamespace) + { + return Message(sourceLineNumbers, Ids.InvalidWixXmlNamespace, "The {0} element has an incorrect namespace of '{1}'. Please make the {0} element look like the following: <{0} xmlns=\"{2}\">.", wixElementName, elementNamespace, wixNamespace); + } + + public static Message InvalidXml(SourceLineNumber sourceLineNumbers, string fileType, string detail) + { + return Message(sourceLineNumbers, Ids.InvalidXml, "Not a valid {0} file; detail: {1}", fileType, detail); + } + + public static Message LocalizationVariableUnknown(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.LocalizationVariableUnknown, "The localization variable !(loc.{0}) is unknown. Please ensure the variable is defined.", variableId); + } + + public static Message MaximumCabinetSizeForLargeFileSplittingTooLarge(SourceLineNumber sourceLineNumbers, int maximumCabinetSizeForLargeFileSplitting, int maxValueOfMaxCabSizeForLargeFileSplitting) + { + return Message(sourceLineNumbers, Ids.MaximumCabinetSizeForLargeFileSplittingTooLarge, "'{0}' is too large. Reduce the size of maximum cabinet size for large file splitting. The maximum permitted value is '{1}' MB.", maximumCabinetSizeForLargeFileSplitting, maxValueOfMaxCabSizeForLargeFileSplitting); + } + + public static Message MaximumUncompressedMediaSizeTooLarge(SourceLineNumber sourceLineNumbers, int maximumUncompressedMediaSize) + { + return Message(sourceLineNumbers, Ids.MaximumUncompressedMediaSizeTooLarge, "'{0}' is too large. Reduce the size of maximum uncompressed media size.", maximumUncompressedMediaSize); + } + + public static Message MediaEmbeddedCabinetNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length) + { + return Message(sourceLineNumbers, Ids.MediaEmbeddedCabinetNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. The name is too long for an embedded cabinet. It cannot be more than than 62 characters long.", elementName, attributeName, value, length); + } + + public static Message MediaTableCollision(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MediaTableCollision, "Only one of Media and MediaTemplate tables should be authored."); + } + + public static Message MergeExcludedModule(SourceLineNumber sourceLineNumbers, string mergeId, string otherMergeId) + { + return Message(sourceLineNumbers, Ids.MergeExcludedModule, "The module '{0}' cannot be merged because it excludes or is excluded by the merge module with signature '{1}'.", mergeId, otherMergeId); + } + + public static Message MergeFeatureRequired(SourceLineNumber sourceLineNumbers, string tableName, string primaryKeys, string mergeModuleFile, string mergeId) + { + return Message(sourceLineNumbers, Ids.MergeFeatureRequired, "The {0} table contains a row with primary key(s) '{1}' which requires a feature to properly merge from the merge module '{2}'. Nest a MergeRef element with an Id attribute set to the value '{3}' under a Feature element to fix this error.", tableName, primaryKeys, mergeModuleFile, mergeId); + } + + public static Message MergeLanguageFailed(SourceLineNumber sourceLineNumbers, Int16 language, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeLanguageFailed, "The language '{0}' is supported but uses an invalid language transform in the merge module '{1}'.", language, mergeModuleFile); + } + + public static Message MergeLanguageUnsupported(SourceLineNumber sourceLineNumbers, Int16 language, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeLanguageUnsupported, "Could not locate language '{0}' (or a transform for this language) in the merge module '{1}'. This is likely due to an incorrectly authored Merge/@Language attribute.", language, mergeModuleFile); + } + + public static Message MergeModuleExpectedFeature(SourceLineNumber sourceLineNumbers, string mergeId) + { + return Message(sourceLineNumbers, Ids.MergeModuleExpectedFeature, "The merge module '{0}' is not assigned to a feature. All merge modules must be assigned to at least one feature.", mergeId); + } + + public static Message MergePlatformMismatch(SourceLineNumber sourceLineNumbers, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergePlatformMismatch, "'{0}' is a 64-bit merge module but the product consuming it is 32-bit. 32-bit products can consume only 32-bit merge modules.", mergeModuleFile); + } + + public static Message MissingBundleInformation(string data) + { + return Message(null, Ids.MissingBundleInformation, "The Bundle is missing '{0}' data, and cannot continue.", data); + } + + public static Message MissingDependencyVersion(string packageId) + { + return Message(null, Ids.MissingDependencyVersion, "The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package.", packageId); + } + + public static Message MissingEntrySection(string sectionType) + { + return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Expected section of type '{0}'.", sectionType); + } + + public static Message MissingManifestForWin32Assembly(SourceLineNumber sourceLineNumbers, string file, string manifest) + { + return Message(sourceLineNumbers, Ids.MissingManifestForWin32Assembly, "File '{0}' is marked as a Win32 assembly but it refers to assembly manifest '{1}' that is not present in this product.", file, manifest); + } + + public static Message MissingMedia(SourceLineNumber sourceLineNumbers, int diskId) + { + return Message(sourceLineNumbers, Ids.MissingMedia, "There is no media defined for disk id '{0}'. You must author either or .", diskId); + } + + public static Message MissingOrInvalidModuleInstallerVersion(SourceLineNumber sourceLineNumbers, string moduleId, string mergeModuleFile, string productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.MissingOrInvalidModuleInstallerVersion, "The merge module '{0}' from file '{1}' is either missing or has an invalid installer version. The value read from the installer version in module's summary information was '{2}'. This should be a numeric value representing a valid installer version such as 200 or 301.", moduleId, mergeModuleFile, productInstallerVersion); + } + + public static Message MissingTableDefinition(string tableName) + { + return Message(null, Ids.MissingTableDefinition, "Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter.", tableName); + } + + public static Message MissingTypeLibFile(SourceLineNumber sourceLineNumbers, string elementName, string fileElementName) + { + return Message(sourceLineNumbers, Ids.MissingTypeLibFile, "The {0} element is non-advertised and therefore requires a parent {1} element.", elementName, fileElementName); + } + + public static Message MissingValidatorExtension() + { + return Message(null, Ids.MissingValidatorExtension, "The validator requires at least one extension. Add \"ValidatorExtension, Wix\" for the default implementation."); + } + + public static Message MsiTransactionX86BeforeX64(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MsiTransactionX86BeforeX64, "MSI transactions must install all x64 packages before any x86 package."); + } + + public static Message MultipleEntrySections(SourceLineNumber sourceLineNumbers, string sectionName1, string sectionName2) + { + return Message(sourceLineNumbers, Ids.MultipleEntrySections, "Multiple entry sections '{0}' and '{1}' found. Only one entry section may be present in a single target.", sectionName1, sectionName2); + } + + public static Message MultipleEntrySections2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MultipleEntrySections2, "Location of entry section related to previous error."); + } + + public static Message MultipleFilesMatchedWithOutputSpecification(string sourceSpecification, string sourceList) + { + return Message(null, Ids.MultipleFilesMatchedWithOutputSpecification, "A per-source file output specification has been provided ('{0}'), but multiple source files match the source specification ({1}). Specifying a unique output requires that only a single source file match.", sourceSpecification, sourceList); + } + + public static Message MultipleIdentifiersFound(SourceLineNumber sourceLineNumbers, string elementName, string identifier, string mismatchIdentifier) + { + return Message(sourceLineNumbers, Ids.MultipleIdentifiersFound, "Under a '{0}' element, multiple identifiers were found: '{1}' and '{2}'. All search elements under this element must have the same id.", elementName, identifier, mismatchIdentifier); + } + + public static Message MultiplePrimaryReferences(SourceLineNumber sourceLineNumbers, string crefChildType, string crefChildId, string crefParentType, string crefParentId, string conflictParentType, string conflictParentId) + { + return Message(sourceLineNumbers, Ids.MultiplePrimaryReferences, "Multiple primary references were found for {0} '{1}' in {2} '{3}' and {4} '{5}'.", crefChildType, crefChildId, crefParentType, crefParentId, conflictParentType, conflictParentId); + } + + public static Message MustSpecifyOutputWithMoreThanOneInput() + { + return Message(null, Ids.MustSpecifyOutputWithMoreThanOneInput, "You must specify an output file using the \"-o\" or \"-out\" switch when you provide more than one input file."); + } + + public static Message NeedSequenceBeforeOrAfter(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.NeedSequenceBeforeOrAfter, "A {0} element must have a Before attribute, After attribute, or a Sequence attribute.", elementName); + } + + public static Message NewRowAddedInTable(SourceLineNumber sourceLineNumbers, string productCode, string tableName, string rowId) + { + return Message(sourceLineNumbers, Ids.NewRowAddedInTable, "Product '{0}': Table '{1}' has a new row '{2}' added. This makes the patch not uninstallable.", productCode, tableName, rowId); + } + + public static Message NoDataForColumn(SourceLineNumber sourceLineNumbers, string columnName, string tableName) + { + return Message(sourceLineNumbers, Ids.NoDataForColumn, "There is no data for column '{0}' in a contained row of custom table '{1}'. A non-null value must be supplied for this column.", columnName, tableName); + } + + public static Message NoDifferencesInTransform(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.NoDifferencesInTransform, "The transform being built did not contain any differences so it could not be created."); + } + + public static Message NoFirstControlSpecified(SourceLineNumber sourceLineNumbers, string dialogName) + { + return Message(sourceLineNumbers, Ids.NoFirstControlSpecified, "The '{0}' dialog element does not have a valid tabbable control. You must either have a tabbable control that is not marked TabSkip='yes', or you must mark a control TabSkip='no'. If you have a page with no tabbable controls (a progress page, for example), you might want to set the first Text control to be TabSkip='no'.", dialogName); + } + + public static Message NonterminatedPreprocessorInstruction(SourceLineNumber sourceLineNumbers, string beginInstruction, string endInstruction) + { + return Message(sourceLineNumbers, Ids.NonterminatedPreprocessorInstruction, "Found a processing instruction without a matching after it.", beginInstruction, endInstruction); + } + + public static Message NoUniqueActionSequenceNumber(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) + { + return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber, "The {0} table contains an action '{1}' which cannot have a unique sequence number because it is scheduled before or after action '{2}'. There is not enough room before or after this action to assign a unique sequence number. Please schedule one of the actions differently so that it will be in a position with more sequence numbers available. Please note that sequence numbers must be an integer in the range 1 - 32767 (inclusive).", sequenceTableName, actionName1, actionName2); + } + + public static Message NoUniqueActionSequenceNumber2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber2, "The location of the sequenced action related to previous error."); + } + + public static Message OpenDatabaseFailed(string databaseFile) + { + return Message(null, Ids.OpenDatabaseFailed, "Failed to open database '{0}'. Ensure it is a valid database, and it is not open by another process.", databaseFile); + } + + public static Message OrderingReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList) + { + return Message(sourceLineNumbers, Ids.OrderingReferenceLoopDetected, "A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph.", loopList); + } + + public static Message OrphanedComponent(SourceLineNumber sourceLineNumbers, string componentName) + { + return Message(sourceLineNumbers, Ids.OrphanedComponent, "Found orphaned Component '{0}'. If this is a Product, every Component must have at least one parent Feature. To include a Component in a Module, you must include it directly as a Component element of the Module element or indirectly via ComponentRef, ComponentGroup, or ComponentGroupRef elements.", componentName); + } + + public static Message OutputCodepageMismatch(SourceLineNumber sourceLineNumbers, int beforeCodepage, int afterCodepage) + { + return Message(sourceLineNumbers, Ids.OutputCodepageMismatch, "The code pages of the outputs do not match. One output's code page is '{0}' while the other is '{1}'.", beforeCodepage, afterCodepage); + } + + public static Message OutputCodepageMismatch2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.OutputCodepageMismatch2, "The location of the mismatched code page related to the previous warning."); + } + + public static Message OutputTargetNotSpecified() + { + return Message(null, Ids.OutputTargetNotSpecified, "The '-out' or '-o' parameter must specify a file path."); + } + + public static Message OutputTypeMismatch(SourceLineNumber sourceLineNumbers, string beforeOutputType, string afterOutputType) + { + return Message(sourceLineNumbers, Ids.OutputTypeMismatch, "The types of the outputs do not match. One output's type is '{0}' while the other is '{1}'.", beforeOutputType, afterOutputType); + } + + public static Message OverridableActionCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.OverridableActionCollision, "The {0} table contains an action '{1}' that is declared overridable in two different locations. Please remove one of the actions or the Overridable='yes' attribute from one of the actions.", sequenceTableName, actionName); + } + + public static Message OverridableActionCollision2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.OverridableActionCollision2, "The location of the action related to previous error."); + } + + public static Message ParentElementAttributeRequired(SourceLineNumber sourceLineNumbers, string parentElement, string parentAttribute, string childElement) + { + return Message(sourceLineNumbers, Ids.ParentElementAttributeRequired, "The parent {0} element is missing the {1} attribute that is required for the {2} child element.", parentElement, parentAttribute, childElement); + } + + public static Message PatchNotRemovable() + { + return Message(null, Ids.PatchNotRemovable, "This patch is not uninstallable. The 'Patch' element's attribute 'AllowRemoval' should be set to 'no'."); + } + + public static Message PatchWithoutTransforms() + { + return Message(null, Ids.PatchWithoutTransforms, "No transforms were provided to attach to the patch."); + } + + public static Message PatchWithoutValidTransforms() + { + return Message(null, Ids.PatchWithoutValidTransforms, "No valid transforms were provided to attach to the patch. Check to make sure the transforms you passed on the command line have a matching baseline authored in the patch. Also, make sure there are differences between your target and upgrade."); + } + + public static Message PathCannotContainQuote(string fileName) + { + return Message(null, Ids.PathCannotContainQuote, "Path '{0}' contains a literal quote character. Quotes are often accidentally introduced when trying to refer to a directory path with spaces in it, such as \"C:\\Out Directory\\\" -- the backslash before the quote acts an escape character. The correct representation for that path is: \"C:\\Out Directory\\\\\".", fileName); + } + + public static Message PathTooLong(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.PathTooLong, "'{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.", fileName); + } + + public static Message PayloadMustBeRelativeToCache(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.PayloadMustBeRelativeToCache, "The {0}/@{1} attribute's value, '{2}', is not a legal path name: Payload names must be relative to their cache directory and cannot contain '..'.", elementName, attributeName, attributeValue); + } + + public static Message PerUserButAllUsersEquals1(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.PerUserButAllUsersEquals1, "The MSI '{0}' is explicitly marked to not elevate so it must be a per-user package but the ALLUSERS Property is set to '1' creating a per-machine package. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute to be explicit instead.", path); + } + + public static Message PreprocessorError(SourceLineNumber sourceLineNumbers, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorError, "{0}", message); + } + + public static Message PreprocessorExtensionEvaluateFunctionFailed(SourceLineNumber sourceLineNumbers, string prefix, string function, string args, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionEvaluateFunctionFailed, "In the preprocessor extension that handles prefix '{0}' while trying to call function '{1}({2})' and exception has occurred : {3}", prefix, function, args, message); + } + + public static Message PreprocessorExtensionForParameterMissing(SourceLineNumber sourceLineNumbers, string parameterName, string parameterPrefix) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionForParameterMissing, "Could not find the preprocessor extension for parameter '{0}'. A preprocessor extension is expected because the parameter prefix, '{1}', is not one of the standard types: 'env', 'res', 'sys', or 'var'.", parameterName, parameterPrefix); + } + + public static Message PreprocessorExtensionGetVariableValueFailed(SourceLineNumber sourceLineNumbers, string prefix, string variable, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionGetVariableValueFailed, "In the preprocessor extension that handles prefix '{0}' while trying to get the value for variable '{1}' and exception has occured : {2}", prefix, variable, message); + } + + public static Message PreprocessorExtensionPragmaFailed(SourceLineNumber sourceLineNumbers, string pragma, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionPragmaFailed, "Exception thrown while processing pragma '{0}'. The exception's message is: {1}", pragma, message); + } + + public static Message PreprocessorIllegalForeachVariable(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.PreprocessorIllegalForeachVariable, "The variable named '{0}' is not allowed in a foreach expression.", variableName); + } + + public static Message PreprocessorMissingParameterPrefix(SourceLineNumber sourceLineNumbers, string parameterName) + { + return Message(sourceLineNumbers, Ids.PreprocessorMissingParameterPrefix, "Could not find the prefix in parameter name: '{0}'.", parameterName); + } + + public static Message ProductCodeInvalidForTransform(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ProductCodeInvalidForTransform, "The value '*' is not valid for the ProductCode when used in a transform or in a patch. Copy the ProductCode from your target product MSI into the Product/@Id attribute value for your product authoring."); + } + + public static Message ProgIdNestedTooDeep(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ProgIdNestedTooDeep, "ProgId elements may not be nested more than 1 level deep."); + } + + public static Message RadioButtonBitmapAndIconDisallowed(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RadioButtonBitmapAndIconDisallowed, "RadioButtonGroup elements that contain RadioButton elements with Bitmap or Icon attributes set to \"yes\" can only be specified under a Control element. Move your RadioButtonGroup element as a child of the appropriate Control element."); + } + + public static Message RadioButtonTypeInconsistent(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RadioButtonTypeInconsistent, "All RadioButton elements in a RadioButtonGroup must be consistent with their use of the Bitmap, Icon, and Text attributes. Ensure all of the RadioButton elements in this group have the same attribute specified."); + } + + public static Message ReadOnlyOutputFile(string filePath) + { + return Message(null, Ids.ReadOnlyOutputFile, "Unable to output to file '{0}' because it is marked as read-only.", filePath); + } + + public static Message RealTableMissingPrimaryKeyColumn(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.RealTableMissingPrimaryKeyColumn, "The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched.", tableName); + } + + public static Message RecursiveAction(string action, string tableName) + { + return Message(null, Ids.RecursiveAction, "The action '{0}' is recursively placed in the '{1}' table.", action, tableName); + } + + public static Message ReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList) + { + return Message(sourceLineNumbers, Ids.ReferenceLoopDetected, "A circular reference of groups was detected. The infinite loop includes: {0}. Group references must form a directed acyclic graph.", loopList); + } + + public static Message RegistryMultipleValuesWithoutMultiString(SourceLineNumber sourceLineNumbers, string registryElementName, string valueAttributeName, string registryValueElementName, string typeAttributeName) + { + return Message(sourceLineNumbers, Ids.RegistryMultipleValuesWithoutMultiString, "The {0}/@{1} attribute and a {0}/{2} element cannot both be specified. Only one may be specified if the {3} attribute's value is not 'multiString'.", registryElementName, valueAttributeName, registryValueElementName, typeAttributeName); + } + + public static Message RegistryNameValueIncorrect(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.RegistryNameValueIncorrect, "The {0}/@{1} attribute's value, '{2}', is incorrect. It should not contain values of '+', '-', or '*' when the {0}/@Value attribute is empty. Instead, use the proper element and attributes: for Name='+' use RegistryKey/@Action='createKey', for Name='-' use RemoveRegistryKey/@Action='removeOnUninstall', for Name='*' use RegistryKey/@Action='createAndRemoveOnUninstall'.", elementName, attributeName, value); + } + + public static Message RegistryRootInvalid(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RegistryRootInvalid, "Registry/@Root attribute is invalid on a nested Registry element. Either remove the Root attribute or move the Registry element so it is not nested under another Registry element."); + } + + public static Message RegistrySubElementCannotBeRemoved(SourceLineNumber sourceLineNumbers, string registryElementName, string registryValueElementName, string actionAttributeName, string removeValue, string removeKeyOnInstallValue) + { + return Message(sourceLineNumbers, Ids.RegistrySubElementCannotBeRemoved, "The {0}/{1} element cannot be specified if the {2} attribute's value is '{3}' or '{4}'.", registryElementName, registryValueElementName, actionAttributeName, removeValue, removeKeyOnInstallValue); + } + + public static Message RelativePathForRegistryElement(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RelativePathForRegistryElement, "Cannot convert RelativePath into Registry elements."); + } + + public static Message RemotePayloadUnsupported(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RemotePayloadUnsupported, "The RemotePayload element can only be used for ExePackage and MsuPackage payloads."); + } + + public static Message ReservedNamespaceViolation(SourceLineNumber sourceLineNumbers, string element, string attribute, string prefix) + { + return Message(sourceLineNumbers, Ids.ReservedNamespaceViolation, "The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix.", element, attribute, prefix); + } + + public static Message RootFeatureCannotFollowParent(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RootFeatureCannotFollowParent, "The Feature element specifies a root feature with an illegal InstallDefault value of 'followParent'. Root features cannot follow their parent feature's install state because they don't have a parent feature. Please remove or change the value of the InstallDefault attribute."); + } + + public static Message SameFileIdDifferentSource(SourceLineNumber sourceLineNumbers, string fileId, string sourcePath1, string sourcePath2) + { + return Message(sourceLineNumbers, Ids.SameFileIdDifferentSource, "Two different source paths '{1}' and '{2}' were detected for the same file identifier '{0}'. You must either author these under Media elements with different Id attribute values or in different patches.", fileId, sourcePath1, sourcePath2); + } + + public static Message SamePatchBaselineId(SourceLineNumber sourceLineNumbers, string id) + { + return Message(sourceLineNumbers, Ids.SamePatchBaselineId, "The PatchBaseline/@Id attribute value '{0}' is a child of multiple Media elements. This prevents transforms from being resolved to distinct media. Change the PatchBaseline/@Id attribute values to be unique.", id); + } + + public static Message SchemaValidationFailed(SourceLineNumber sourceLineNumbers, string validationError, int lineNumber, int linePosition) + { + return Message(sourceLineNumbers, Ids.SchemaValidationFailed, "Schema validation failed with the following error at line {1}, column {2}: {0}", validationError, lineNumber, linePosition); + } + + public static Message SearchElementRequired(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.SearchElementRequired, "A '{0}' element must have a search element as a child.", elementName); + } + + public static Message SearchElementRequiredWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.SearchElementRequiredWithAttribute, "A {0} element must have a search element as a child when the {0}/@{1} attribute has the value '{2}'.", elementName, attributeName, attributeValue); + } + + public static Message SearchPropertyNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.SearchPropertyNotUppercase, "The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a search property, it must also be a public property. This means the Property/@Id value must be completely uppercase.", elementName, attributeName, value); + } + + public static Message SecurePropertyNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string propertyId) + { + return Message(sourceLineNumbers, Ids.SecurePropertyNotUppercase, "The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a secure property, it must also be a public property. This means the Property/@Id value must be completely uppercase.", elementName, attributeName, propertyId); + } + + public static Message SignedEmbeddedCabinet(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.SignedEmbeddedCabinet, "The DigitalSignature element cannot be nested under a Media element which specifies EmbedCab='yes'. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or change the value of the Media/@EmbedCab attribute to 'no'."); + } + + public static Message SingleExtensionSupported() + { + return Message(null, Ids.SingleExtensionSupported, "Multiple extensions were specified on the command line, only a single extension is supported."); + } + + public static Message SmokeMalformedPath() + { + return Message(null, Ids.SmokeMalformedPath, "Path contains one or more invalid characters."); + } + + public static Message SmokeUnknownFileExtension() + { + return Message(null, Ids.SmokeUnknownFileExtension, "Unknown input file format - expected a .msi or .msm file."); + } + + public static Message SmokeUnsupportedFileExtension() + { + return Message(null, Ids.SmokeUnsupportedFileExtension, "Files with an extension of .msp are not currently supported."); + } + + public static Message SpecifiedBinderNotFound(string binderClass) + { + return Message(null, Ids.SpecifiedBinderNotFound, "The specified binder class '{0}' was not found in any extensions.", binderClass); + } + + public static Message SplitCabinetCopyRegistrationFailed(string newCabName, string firstCabName) + { + return Message(null, Ids.SplitCabinetCopyRegistrationFailed, "Failed to register the copy command for cabinet '{0}' formed by splitting cabinet '{1}'.", newCabName, firstCabName); + } + + public static Message SplitCabinetInsertionFailed(string newCabName, string firstCabName, string lastCabinetOfThisSequence) + { + return Message(null, Ids.SplitCabinetInsertionFailed, "Could not find the last split cabinet '{2}' in the Media Table. So failed to add new cabinet '{0}' formed by splitting cabinet '{1}' to the installer package.", newCabName, firstCabName, lastCabinetOfThisSequence); + } + + public static Message SplitCabinetNameCollision(string newCabName, string firstCabName) + { + return Message(null, Ids.SplitCabinetNameCollision, "The cabinet name '{0}' collides with the new cabinet formed by splitting cabinet '{1}', consider renaming cabinet '{0}'.", newCabName, firstCabName); + } + + public static Message StandardActionRelativelyScheduledInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.StandardActionRelativelyScheduledInModule, "The {0} table contains a standard action '{1}' that does not have a sequence number specified. The Sequence attribute is required for standard actions in a merge module. Please remove the action or use the Sequence attribute.", sequenceTableName, actionName); + } + + public static Message StreamNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length, int maximumLength) + { + return Message(sourceLineNumbers, Ids.StreamNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long because it will be used to create a stream name. It cannot be more than than {4} characters long.", elementName, attributeName, value, length, maximumLength); + } + + public static Message StreamNameTooLong(SourceLineNumber sourceLineNumbers, string tableName, string streamName, int streamLength) + { + return Message(sourceLineNumbers, Ids.StreamNameTooLong, "The binary value in table '{0}' will be stored with a stream name, '{1}', that is {2} characters long. This is too long because the maximum allowed length for a stream name is 62 characters long. Since the stream name is created by concatenating the table name and values of the primary key for a row (delimited by periods), this error can be resolved by shortening a value that is part of the primary key.", tableName, streamName, streamLength); + } + + public static Message StubMissingWixburnSection(string filename) + { + return Message(null, Ids.StubMissingWixburnSection, "Stub executable '{0}' does not contain a .wixburn data section.", filename); + } + + public static Message StubWixburnSectionTooSmall(string filename) + { + return Message(null, Ids.StubWixburnSectionTooSmall, "Stub executable '{0}' .wixburn data section is too small to store the Burn container header.", filename); + } + + public static Message SuppressNonoverridableAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.SuppressNonoverridableAction, "The {0} table contains an action '{1}' that cannot be suppressed because it is not declared overridable in the base definition. Please stop suppressing the action or make it overridable in its base declaration.", sequenceTableName, actionName); + } + + public static Message SuppressNonoverridableAction2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.SuppressNonoverridableAction2, "The location of the non-overridable definition of the action related to previous error."); + } + + public static Message TabbableControlNotAllowedInBillboard(SourceLineNumber sourceLineNumbers, string elementName, string controlType) + { + return Message(sourceLineNumbers, Ids.TabbableControlNotAllowedInBillboard, "A {0} element was specified with Type='{1}' and TabSkip='no'. Tabbable controls are not allowed in Billboards.", elementName, controlType); + } + + public static Message TableDecompilationUnimplemented(string tableName) + { + return Message(null, Ids.TableDecompilationUnimplemented, "Decompilation of the {0} table has not been implemented by its extension.", tableName); + } + + public static Message TableNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.TableNameTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long.", elementName, attributeName, value); + } + + public static Message TooDeeplyIncluded(SourceLineNumber sourceLineNumbers, int depth) + { + return Message(sourceLineNumbers, Ids.TooDeeplyIncluded, "Include files cannot be nested more deeply than {0} times. Make sure included files don't accidentally include themselves.", depth); + } + + public static Message TooManyChildren(SourceLineNumber sourceLineNumbers, string elementName, string childElementName) + { + return Message(sourceLineNumbers, Ids.TooManyChildren, "The {0} element contains multiple {1} child elements. There can only be one {1} child element per {0} element.", elementName, childElementName); + } + + public static Message TooManyColumnsInRealTable(string tableName, int columnCount, int supportedColumnCount) + { + return Message(null, Ids.TooManyColumnsInRealTable, "The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns.", tableName, columnCount, supportedColumnCount); + } + + public static Message TooManyElements(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, int expectedInstances) + { + return Message(sourceLineNumbers, Ids.TooManyElements, "The {0} element contains an unexpected child element '{1}'. The '{1}' element may only occur {2} time(s) under the {0} element.", elementName, childElementName, expectedInstances); + } + + public static Message TooManySearchElements(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.TooManySearchElements, "Only one search element can appear under a '{0}' element.", elementName); + } + + public static Message TransformSchemaMismatch() + { + return Message(null, Ids.TransformSchemaMismatch, "The transform schema does not match the database schema. The transform may have been generated from a different database."); + } + + public static Message TypeSpecificationForExtensionRequired(string parameter) + { + return Message(null, Ids.TypeSpecificationForExtensionRequired, "The parameter '{0}' must be followed by the extension's type specification. The type specification should be a fully qualified class and assembly identity, for example: \"MyNamespace.MyClass,myextension.dll\".", parameter); + } + + public static Message UnableToGetAuthenticodeCertOfFile(string filePath, string moreInformation) + { + return Message(null, Ids.UnableToGetAuthenticodeCertOfFile, "Unable to get the authenticode certificate of '{0}'. More information: {1}", filePath, moreInformation); + } + + public static Message UnableToGetAuthenticodeCertOfFileDownlevelOS(string filePath, string moreInformation) + { + return Message(null, Ids.UnableToGetAuthenticodeCertOfFileDownlevelOS, "Unable to get the authenticode certificate of '{0}'. The cryptography API has limitations on Windows XP and Windows Server 2003. More information: {1}", filePath, moreInformation); + } + + public static Message UnableToOpenModule(SourceLineNumber sourceLineNumbers, string modulePath, string message) + { + return Message(sourceLineNumbers, Ids.UnableToOpenModule, "Unable to open merge module '{0}'. Check to make sure the module language is correct. '{1}'", modulePath, message); + } + + public static Message UnableToReadPackageInformation(SourceLineNumber sourceLineNumbers, string packagePath, string detailedErrorMessage) + { + return Message(sourceLineNumbers, Ids.UnableToReadPackageInformation, "Unable to read package '{0}'. {1}", packagePath, detailedErrorMessage); + } + + public static Message UnauthorizedAccess(string filePath) + { + return Message(null, Ids.UnauthorizedAccess, "Access to the path '{0}' is denied.", filePath); + } + + public static Message UndefinedPreprocessorFunction(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.UndefinedPreprocessorFunction, "Undefined preprocessor function '$({0})'.", variableName); + } + + public static Message UndefinedPreprocessorVariable(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.UndefinedPreprocessorVariable, "Undefined preprocessor variable '$({0})'.", variableName); + } + + public static Message UnexpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.UnexpectedAttribute, "The {0} element contains an unexpected attribute '{1}'.", elementName, attributeName); + } + + public static Message UnexpectedColumnCount(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedColumnCount, "A parsed row has more fields that contain data for table '{0}' than are defined. This is potentially because a standard table is being redefined as a custom table or is based on an older table schema.", tableName); + } + + public static Message UnexpectedContentNode(SourceLineNumber sourceLineNumbers, string elementName, string unexpectedNodeType) + { + return Message(sourceLineNumbers, Ids.UnexpectedContentNode, "The {0} element contains an unexpected xml node of type {1}.", elementName, unexpectedNodeType); + } + + public static Message UnexpectedCustomTableColumn(SourceLineNumber sourceLineNumbers, string column) + { + return Message(sourceLineNumbers, Ids.UnexpectedCustomTableColumn, "The custom table column '{0}' is unknown.", column); + } + + public static Message UnexpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childElementName) + { + return Message(sourceLineNumbers, Ids.UnexpectedElement, "The {0} element contains an unexpected child element '{1}'.", elementName, childElementName); + } + + public static Message UnexpectedElementWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttribute, "The {0} element cannot have a child element '{1}' when attribute '{2}' is set.", elementName, childElementName, attribute); + } + + public static Message UnexpectedElementWithAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute, string attributeValue) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttributeValue, "The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}'.", elementName, childElementName, attribute, attributeValue); + } + + public static Message UnexpectedElementWithAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute, string attributeValue1, string attributeValue2) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttributeValue, "The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}' or '{4}'.", elementName, childElementName, attribute, attributeValue1, attributeValue2); + } + + public static Message UnexpectedEmptySubexpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnexpectedEmptySubexpression, "The empty subexpression is unexpected in the expression '{0}'.", expression); + } + + public static Message UnexpectedException(string message, string type, string stackTrace) + { + return Message(null, Ids.UnexpectedException, "{0}\r\n\r\nException Type: {1}\r\n\r\nStack Trace:\r\n{2}", message, type, stackTrace); + } + + public static Message UnexpectedExternalUIMessage(string message) + { + return Message(null, Ids.UnexpectedExternalUIMessage, "Error executing unknown ICE action. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: \"{0}\".", message); + } + + public static Message UnexpectedExternalUIMessage(string message, string action) + { + return Message(null, Ids.UnexpectedExternalUIMessage, "Error executing ICE action '{1}'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: \"{0}\".", message, action); + } + + public static Message UnexpectedFileExtension(string fileName, string expectedExtensions) + { + return Message(null, Ids.UnexpectedFileExtension, "The file '{0}' has an unexpected extension. Expected one of the following: '{1}'.", fileName, expectedExtensions); + } + + public static Message UnexpectedFileFormat(string path, FileFormat expectedFormat, FileFormat actualFormat) + { + return Message(null, Ids.UnexpectedFileFormat, "Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided.", path, expectedFormat.ToString().ToLowerInvariant(), actualFormat.ToString().ToLowerInvariant()); + } + + public static Message UnexpectedGroupChild(string parentType, string parentId, string childType, string childId) + { + return Message(null, Ids.UnexpectedGroupChild, "A group parent ('{0}'/'{1}') had an unexpected child ('{2}'/'{3}').", parentType, parentId, childType, childId); + } + + public static Message UnexpectedLiteral(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnexpectedLiteral, "An unexpected literal was found in the expression '{0}'.", expression); + } + + public static Message UnexpectedPreprocessorOperator(SourceLineNumber sourceLineNumbers, string op) + { + return Message(sourceLineNumbers, Ids.UnexpectedPreprocessorOperator, "The operator '{0}' is unexpected.", op); + } + + public static Message UnexpectedTableInMergeModule(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInMergeModule, "An unexpected row in the '{0}' table was found in this merge module. Merge modules cannot contain the '{0}' table.", tableName); + } + + public static Message UnexpectedTableInPatch(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInPatch, "An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table.", tableName); + } + + public static Message UnexpectedTableInPatchCreationPackage(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInPatchCreationPackage, "An unexpected row in the '{0}' table was found in this patch creation package. Patch creation packages cannot contain the '{0}' table.", tableName); + } + + public static Message UnhandledExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionAttributeName, string extensionNamespace) + { + return Message(sourceLineNumbers, Ids.UnhandledExtensionAttribute, "The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided.", elementName, extensionAttributeName, extensionNamespace); + } + + public static Message UnhandledExtensionElement(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName, string extensionNamespace) + { + return Message(sourceLineNumbers, Ids.UnhandledExtensionElement, "The {0} element contains an unhandled extension element '{1}'. Please ensure that the extension for elements in the '{2}' namespace has been provided.", elementName, extensionElementName, extensionNamespace); + } + + public static Message UniqueFileSearchIdRequired(SourceLineNumber sourceLineNumbers, string id, string elementName) + { + return Message(sourceLineNumbers, Ids.UniqueFileSearchIdRequired, "The DirectorySearch element '{0}' requires that the child {1} element has a unique Id when the DirectorySearch/@AssignToProperty attribute is set to 'yes'.", id, elementName); + } + + public static Message UnknownCustomTableColumnType(SourceLineNumber sourceLineNumbers, string columnType) + { + return Message(sourceLineNumbers, Ids.UnknownCustomTableColumnType, "Encountered an unknown custom table column type '{0}'.", columnType); + } + + public static Message UnmatchedParenthesisInExpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnmatchedParenthesisInExpression, "The parenthesis don't match in the expression '{0}'.", expression); + } + + public static Message UnmatchedPreprocessorInstruction(SourceLineNumber sourceLineNumbers, string beginInstruction, string endInstruction) + { + return Message(sourceLineNumbers, Ids.UnmatchedPreprocessorInstruction, "Found a processing instruction without a matching before it.", beginInstruction, endInstruction); + } + + public static Message UnmatchedQuotesInExpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnmatchedQuotesInExpression, "The quotes don't match in the expression '{0}'.", expression); + } + + public static Message UnresolvedBindReference(SourceLineNumber sourceLineNumbers, string BindRef) + { + return Message(sourceLineNumbers, Ids.UnresolvedBindReference, "Unresolved bind-time variable {0}.", BindRef); + } + + public static Message UnresolvedReference(SourceLineNumber sourceLineNumbers, string symbolName) + { + return Message(sourceLineNumbers, Ids.UnresolvedReference, "The identifier '{0}' could not be found. Ensure you have typed the reference correctly and that all the necessary inputs are provided to the linker.", symbolName); + } + + public static Message UnresolvedReference(SourceLineNumber sourceLineNumbers, string symbolName, WixToolset.Data.AccessModifier accessModifier) + { + return Message(sourceLineNumbers, Ids.UnresolvedReference, "The identifier '{0}' is inaccessible due to its protection level.", symbolName, accessModifier); + } + + public static Message UnsupportedAllUsersValue(SourceLineNumber sourceLineNumbers, string path, string value) + { + return Message(sourceLineNumbers, Ids.UnsupportedAllUsersValue, "The MSI '{0}' set the ALLUSERS Property to '{0}' which is not supported. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead.", path, value); + } + + public static Message UnsupportedExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName) + { + return Message(sourceLineNumbers, Ids.UnsupportedExtensionAttribute, "The {0} element contains an unsupported extension attribute '{1}'. The {0} element does not currently support extension attributes. Is the {1} attribute using the correct XML namespace?", elementName, extensionElementName); + } + + public static Message UnsupportedExtensionElement(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName) + { + return Message(sourceLineNumbers, Ids.UnsupportedExtensionElement, "The {0} element contains an unsupported extension element '{1}'. The {0} element does not currently support extension elements. Is the {1} element using the correct XML namespace?", elementName, extensionElementName); + } + + public static Message UnsupportedPlatformForElement(SourceLineNumber sourceLineNumbers, string platform, string elementName) + { + return Message(sourceLineNumbers, Ids.UnsupportedPlatformForElement, "The element {1} does not support platform '{0}'. Consider removing the element or using the preprocessor to conditionally include the element based on the platform.", platform, elementName); + } + + public static Message ValidationError(SourceLineNumber sourceLineNumbers, string ice, string message) + { + return Message(sourceLineNumbers, Ids.ValidationError, "{0}: {1}", ice, message); + } + + public static Message ValidationFailedDueToInvalidPackage() + { + return Message(null, Ids.ValidationFailedDueToInvalidPackage, "Failed to open package for validation. The most common cause of this error is validating an x64 package on an x86 system. To fix this error, run validation on an x64 system or disable validation."); + } + + public static Message ValidationFailedDueToLowMsiEngine() + { + return Message(null, Ids.ValidationFailedDueToLowMsiEngine, "The package being validated requires a higher version of Windows Installer than is installed on this machine. Validation cannot continue."); + } + + public static Message ValidationFailedDueToMultilanguageMergeModule() + { + return Message(null, Ids.ValidationFailedDueToMultilanguageMergeModule, "Failed to open merge module for validation. The most common cause of this error is specifying that the merge module supports multiple languages (using the Package/@Languages attribute) but not including language-specific embedded transforms. To fix this error, make the merge module language-neutral, make it language-specific, embed language transforms as specified in the MSI SDK at http://msdn.microsoft.com/library/aa367799.aspx, or disable validation."); + } + + public static Message ValidationFailedToOpenDatabase() + { + return Message(null, Ids.ValidationFailedToOpenDatabase, "Failed to open the database. During validation, this most commonly happens when attempting to open a database using an unsupported code page or a file that is not a valid Windows Installer database. Please use a different code page in Module/@Codepage, Package/@SummaryCodepage, Product/@Codepage, or WixLocalization/@Codepage; or make sure you provide the path to a valid Windows Installer database."); + } + + public static Message ValueAndMaskMustBeSameLength(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ValueAndMaskMustBeSameLength, "The FileTypeMask/@Value and FileTypeMask/@Mask attributes must be the same length."); + } + + public static Message ValueNotSupported(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.ValueNotSupported, "The {0}/@{1} attribute's value, '{2}, is not supported by the Windows Installer.", elementName, attributeName, attributeValue); + } + + public static Message VariableDeclarationCollision(SourceLineNumber sourceLineNumbers, string variableName, string variableValue, string variableCollidingValue) + { + return Message(sourceLineNumbers, Ids.VariableDeclarationCollision, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); + } + + public static Message VersionIndependentProgIdsCannotHaveIcons(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.VersionIndependentProgIdsCannotHaveIcons, "Version independent ProgIds cannot have Icons. Remove the Icon and/or IconIndex attributes from your ProgId element."); + } + + public static Message VersionMismatch(SourceLineNumber sourceLineNumbers, string fileType, string version, string expectedVersion) + { + return Message(sourceLineNumbers, Ids.VersionMismatch, "The {0} file format version {1} is not compatible with the expected {0} file format version {2}.", fileType, version, expectedVersion); + } + + public static Message Win32Exception(int nativeErrorCode, string message) + { + return Message(null, Ids.Win32Exception, "An unexpected Win32 exception with error code 0x{0:X} occurred: {1}", nativeErrorCode, message); + } + + public static Message Win32Exception(int nativeErrorCode, string file, string message) + { + return Message(null, Ids.Win32Exception, "An unexpected Win32 exception with error code 0x{0:X} occurred while accessing file '{1}': {2}", nativeErrorCode, file, message); + } + + public static Message WixFileNotFound(string file) + { + return Message(null, Ids.WixFileNotFound, "The file '{0}' cannot be found.", file); + } + + public static Message WixVariableCollision(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.WixVariableCollision, "The WiX variable '{0}' is declared in more than one location. Please remove one of the declarations.", variableId); + } + + public static Message WixVariableUnknown(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.WixVariableUnknown, "The WiX variable !(wix.{0}) is unknown. Please ensure the variable is declared on the command line for light.exe, via a WixVariable element, or inline using the syntax !(wix.{0}=some value which doesn't contain parenthesis).", variableId); + } + + public static Message WrongFileExtensionForNumberOfInputs(string inputExtension, string input) + { + return Message(null, Ids.WrongFileExtensionForNumberOfInputs, "The extension '{0}' on the input specified '{1}' does not match the number of inputs required to handle an input with this extension. Check if you are missing an input or have too many.", inputExtension, input); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Error, (int)id, resourceManager, resourceName, args); + } + + public enum Ids + { + UnexpectedException = 1, + UnexpectedFileFormat = 2, + CorruptFileFormat = 3, + UnexpectedAttribute = 4, + UnexpectedElement = 5, + IllegalEmptyAttributeValue = 6, + InsufficientVersion = 7, + IllegalIntegerValue = 8, + IllegalGuidValue = 9, + ExpectedAttribute = 10, + SecurePropertyNotUppercase = 11, + SearchPropertyNotUppercase = 12, + StreamNameTooLong = 13, + IllegalIdentifier = 14, + IllegalYesNoValue = 15, + CabCreationFailed = 16, + CabExtractionFailed = 17, + AppIdIncompatibleAdvertiseState = 18, + IllegalAttributeWhenAdvertised = 19, + ConditionExpected = 20, + IllegalAttributeValue = 21, + CustomActionMultipleSources = 22, + CustomActionMultipleTargets = 23, + CustomActionIllegalInnerText = 24, + DirectoryRootWithoutName = 25, + IllegalShortFilename = 26, + IllegalLongFilename = 27, + TableNameTooLong = 28, + FeatureConfigurableDirectoryNotUppercase = 29, + FeatureCannotFavorAndDisallowAdvertise = 30, + FeatureCannotFollowParentAndFavorLocalOrSource = 31, + MediaEmbeddedCabinetNameTooLong = 32, + RegistrySubElementCannotBeRemoved = 33, + RegistryMultipleValuesWithoutMultiString = 34, + IllegalAttributeWithOtherAttribute = 35, + IllegalAttributeWithOtherAttributes = 36, + IllegalAttributeWithoutOtherAttributes = 37, + IllegalAttributeValueWithoutOtherAttribute = 38, + IntegralValueSentinelCollision = 39, + ExampleGuid = 40, + TooManyChildren = 41, + ComponentMultipleKeyPaths = 42, + CabClosureFailed = 43, + ExpectedAttributes = 44, + ExpectedAttributesWithOtherAttribute = 45, + ExpectedAttributesWithoutOtherAttribute = 46, + MissingTypeLibFile = 47, + InvalidDocumentElement = 48, + ExpectedAttributeInElementOrParent = 49, + UnauthorizedAccess = 50, + IllegalModuleExclusionLanguageAttributes = 51, + NoFirstControlSpecified = 52, + NoDataForColumn = 53, + ValueAndMaskMustBeSameLength = 54, + TooManySearchElements = 55, + IllegalAttributeExceptOnElement = 56, + SearchElementRequired = 57, + MultipleIdentifiersFound = 58, + AdvertiseStateMustMatch = 59, + DuplicateContextValue = 60, + RelativePathForRegistryElement = 61, + IllegalAttributeWhenNested = 62, + ExpectedElement = 63, + RegistryRootInvalid = 64, + IllegalYesNoDefaultValue = 65, + IllegalAttributeInMergeModule = 66, + GenericReadNotAllowed = 67, + IllegalAttributeWithInnerText = 68, + SearchElementRequiredWithAttribute = 69, + CannotAuthorSpecialProperties = 70, + NeedSequenceBeforeOrAfter = 72, + ValueNotSupported = 73, + TabbableControlNotAllowedInBillboard = 74, + CheckBoxValueOnlyValidWithCheckBox = 75, + CabFileDoesNotExist = 76, + RadioButtonTypeInconsistent = 77, + RadioButtonBitmapAndIconDisallowed = 78, + IllegalSuppressWarningId = 79, + PreprocessorIllegalForeachVariable = 80, + PreprocessorMissingParameterPrefix = 81, + PreprocessorExtensionForParameterMissing = 82, + CannotFindFile = 83, + BinderFileManagerMissingFile = 84, + InvalidFileName = 85, + ReferenceLoopDetected = 86, + GuidContainsLowercaseLetters = 87, + InvalidDateTimeFormat = 88, + MultipleEntrySections = 89, + MultipleEntrySections2 = 90, + DuplicateSymbol = 91, + DuplicateSymbol2 = 92, + MissingEntrySection = 93, + UnresolvedReference = 94, + MultiplePrimaryReferences = 95, + ComponentReferencedTwice = 96, + DuplicateModuleFileIdentifier = 97, + DuplicateModuleCaseInsensitiveFileIdentifier = 98, + ImplicitComponentKeyPath = 99, + DuplicateLocalizationIdentifier = 100, + LocalizationVariableUnknown = 102, + FileNotFound = 103, + InvalidXml = 104, + ProgIdNestedTooDeep = 105, + CanNotHaveTwoParents = 106, + SchemaValidationFailed = 107, + IllegalVersionValue = 108, + CustomTableNameTooLong = 109, + CustomTableIllegalColumnWidth = 110, + CustomTableMissingPrimaryKey = 111, + TypeSpecificationForExtensionRequired = 113, + FilePathRequired = 114, + DirectoryPathRequired = 115, + FileOrDirectoryPathRequired = 116, + PathCannotContainQuote = 117, + AdditionalArgumentUnexpected = 118, + RegistryNameValueIncorrect = 119, + FamilyNameTooLong = 120, + IllegalFamilyName = 121, + IllegalLongValue = 122, + IntegralValueOutOfRange = 123, + DuplicateExtensionXmlSchemaNamespace = 125, + DuplicateExtensionTable = 126, + DuplicateExtensionPreprocessorType = 127, + FileInUse = 128, + CannotOpenMergeModule = 129, + DuplicatePrimaryKey = 130, + FileIdentifierNotFound = 131, + InvalidAssemblyFile = 132, + ExpectedEndElement = 133, + IllegalCodepage = 134, + ExpectedMediaCabinet = 135, + InvalidIdt = 136, + InvalidSequenceTable = 137, + ExpectedDirectory = 138, + ComponentExpectedFeature = 139, + RecursiveAction = 140, + VersionMismatch = 141, + UnexpectedContentNode = 142, + UnexpectedColumnCount = 143, + InvalidExtension = 144, + InvalidSubExpression = 145, + UnmatchedPreprocessorInstruction = 146, + NonterminatedPreprocessorInstruction = 147, + ExpectedExpressionAfterNot = 148, + InvalidPreprocessorVariable = 149, + UndefinedPreprocessorVariable = 150, + IllegalDefineStatement = 151, + VariableDeclarationCollision = 152, + CannotReundefineVariable = 153, + IllegalForeach = 154, + IllegalParentAttributeWhenNested = 155, + ExpectedEndforeach = 156, + UnmatchedQuotesInExpression = 158, + UnmatchedParenthesisInExpression = 159, + ExpectedVariable = 160, + UnexpectedLiteral = 161, + IllegalIntegerInExpression = 162, + UnexpectedPreprocessorOperator = 163, + UnexpectedEmptySubexpression = 164, + UnexpectedCustomTableColumn = 165, + UnknownCustomTableColumnType = 166, + IllegalFileCompressionAttributes = 167, + OverridableActionCollision = 168, + OverridableActionCollision2 = 169, + ActionCollision = 170, + ActionCollision2 = 171, + SuppressNonoverridableAction = 172, + SuppressNonoverridableAction2 = 173, + CustomActionSequencedInModule = 174, + StandardActionRelativelyScheduledInModule = 175, + ActionCircularDependency = 176, + ActionScheduledRelativeToTerminationAction = 177, + ActionScheduledRelativeToTerminationAction2 = 178, + NoUniqueActionSequenceNumber = 179, + NoUniqueActionSequenceNumber2 = 180, + ActionScheduledRelativeToItself = 181, + MissingTableDefinition = 182, + ExpectedRowInPatchCreationPackage = 183, + UnexpectedTableInMergeModule = 184, + UnexpectedTableInPatchCreationPackage = 185, + MergeExcludedModule = 186, + MergeFeatureRequired = 187, + MergeLanguageFailed = 188, + MergeLanguageUnsupported = 189, + TableDecompilationUnimplemented = 190, + CannotDefaultMismatchedAdvertiseStates = 191, + VersionIndependentProgIdsCannotHaveIcons = 192, + IllegalAttributeValueWithOtherAttribute = 193, + InvalidMergeLanguage = 194, + WixVariableCollision = 195, + ExpectedWixVariableValue = 196, + WixVariableUnknown = 197, + IllegalWixVariablePrefix = 198, + InvalidWixXmlNamespace = 199, + UnhandledExtensionElement = 200, + UnhandledExtensionAttribute = 201, + UnsupportedExtensionAttribute = 202, + UnsupportedExtensionElement = 203, + ValidationError = 204, + IllegalRootDirectory = 205, + IllegalTargetDirDefaultDir = 206, + TooManyElements = 207, + ExpectedBinaryCategory = 208, + RootFeatureCannotFollowParent = 209, + FeatureNameTooLong = 210, + SignedEmbeddedCabinet = 211, + ExpectedSignedCabinetName = 212, + IllegalInlineLocVariable = 213, + MergeModuleExpectedFeature = 215, + Win32Exception = 216, + UnexpectedExternalUIMessage = 217, + IllegalCabbingThreadCount = 218, + IllegalEnvironmentVariable = 219, + InvalidKeyColumn = 220, + CollidingModularizationTypes = 221, + CubeFileNotFound = 222, + OpenDatabaseFailed = 223, + OutputTypeMismatch = 224, + RealTableMissingPrimaryKeyColumn = 225, + IllegalColumnName = 226, + NoDifferencesInTransform = 227, + OutputCodepageMismatch = 228, + OutputCodepageMismatch2 = 229, + IllegalComponentWithAutoGeneratedGuid = 230, + IllegalPathForGeneratedComponentGuid = 231, + IllegalTerminalServerCustomActionAttributes = 232, + IllegalPropertyCustomActionAttributes = 233, + InvalidPreprocessorFunction = 234, + UndefinedPreprocessorFunction = 235, + PreprocessorExtensionEvaluateFunctionFailed = 236, + PreprocessorExtensionGetVariableValueFailed = 237, + InvalidManifestContent = 238, + InvalidWixTransform = 239, + UnexpectedFileExtension = 240, + UnexpectedTableInPatch = 241, + InvalidProductVersion = 242, + InvalidKeypathChange = 243, + MissingValidatorExtension = 244, + InvalidValidatorMessageType = 245, + PatchWithoutTransforms = 246, + SingleExtensionSupported = 247, + DuplicateTransform = 248, + BaselineRequired = 249, + PreprocessorError = 250, + ExpectedArgument = 251, + PatchWithoutValidTransforms = 252, + ExpectedDecompiler = 253, + ExpectedTableInMergeModule = 254, + UnexpectedElementWithAttributeValue = 255, + ExpectedPatchIdInWixMsp = 256, + ExpectedMediaRowsInWixMsp = 257, + WixFileNotFound = 258, + ExpectedClientPatchIdInWixMsp = 259, + NewRowAddedInTable = 260, + PatchNotRemovable = 261, + PathTooLong = 262, + FileTooLarge = 263, + InvalidPlatformParameter = 264, + InvalidPlatformValue = 265, + IllegalValidationArguments = 266, + OrphanedComponent = 267, + IllegalCommandlineArgumentCombination = 268, + ProductCodeInvalidForTransform = 269, + InsertInvalidSequenceActionOrder = 270, + InsertSequenceNoSpace = 271, + MissingManifestForWin32Assembly = 272, + UnableToOpenModule = 273, + ExpectedAttributeWhenElementNotUnderElement = 274, + IllegalIdentifierLooksLikeFormatted = 275, + IllegalCodepageAttribute = 276, + IllegalCompressionLevel = 277, + TransformSchemaMismatch = 278, + DatabaseSchemaMismatch = 279, + ExpectedDirectoryGotFile = 280, + ExpectedFileGotDirectory = 281, + GacAssemblyNoStrongName = 282, + FileWriteError = 283, + InvalidCommandLineFileName = 284, + ExpectedParentWithAttribute = 285, + IllegalWarningIdAsError = 286, + ExpectedAttributeOrElement = 287, + DuplicateVariableDefinition = 288, + InvalidVariableDefinition = 289, + DuplicateCabinetName = 290, + DuplicateCabinetName2 = 291, + InvalidAddedFileRowWithoutSequence = 292, + DuplicateFileId = 293, + FullTempDirectory = 294, + CreateCabAddFileFailed = 296, + CreateCabInsufficientDiskSpace = 297, + UnresolvedBindReference = 298, + GACAssemblyIdentityWarning = 299, + IllegalCharactersInPath = 300, + ValidationFailedToOpenDatabase = 301, + MustSpecifyOutputWithMoreThanOneInput = 302, + IllegalSearchIdForParentDepth = 303, + IdentifierTooLongError = 304, + InvalidRemoveComponent = 305, + FinishCabFailed = 306, + InvalidExtensionType = 307, + ValidationFailedDueToMultilanguageMergeModule = 309, + ValidationFailedDueToInvalidPackage = 310, + InvalidStringForCodepage = 311, + InvalidEmbeddedUIFileName = 312, + UniqueFileSearchIdRequired = 313, + IllegalAttributeValueWhenNested = 314, + AdminImageRequired = 315, + SamePatchBaselineId = 316, + SameFileIdDifferentSource = 317, + HarvestSourceNotSpecified = 318, + OutputTargetNotSpecified = 319, + DuplicateCommandLineOptionInExtension = 320, + HarvestTypeNotFound = 321, + BothUpgradeCodesRequired = 322, + IllegalBinderClassName = 323, + SpecifiedBinderNotFound = 324, + CannotLoadBinderFileManager = 325, + CannotLoadLinkerExtension = 326, + UnableToGetAuthenticodeCertOfFile = 327, + UnableToGetAuthenticodeCertOfFileDownlevelOS = 328, + ReadOnlyOutputFile = 329, + CannotDefaultComponentId = 330, + ParentElementAttributeRequired = 331, + PreprocessorExtensionPragmaFailed = 333, + InvalidPreprocessorPragma = 334, + SmokeUnknownFileExtension = 335, + SmokeUnsupportedFileExtension = 336, + SmokeMalformedPath = 337, + InvalidStubExe = 338, + StubMissingWixburnSection = 339, + StubWixburnSectionTooSmall = 340, + MissingBundleInformation = 341, + UnexpectedGroupChild = 342, + OrderingReferenceLoopDetected = 343, + IdentifierNotFound = 344, + MergePlatformMismatch = 345, + IllegalRelativeLongFilename = 346, + IllegalAttributeValueWithLegalList = 347, + IllegalAttributeValueWithIllegalList = 348, + InvalidSummaryInfoCodePage = 349, + ValidationFailedDueToLowMsiEngine = 350, + DuplicateSourcesForOutput = 351, + UnableToReadPackageInformation = 352, + MultipleFilesMatchedWithOutputSpecification = 353, + InvalidBundle = 354, + BundleTooNew = 355, + WrongFileExtensionForNumberOfInputs = 356, + MediaTableCollision = 357, + InvalidCabinetTemplate = 358, + MaximumUncompressedMediaSizeTooLarge = 359, + CatalogVerificationFailed = 360, + CatalogFileHashFailed = 361, + ReservedNamespaceViolation = 362, + PerUserButAllUsersEquals1 = 363, + UnsupportedAllUsersValue = 364, + DisallowedMsiProperty = 365, + MissingOrInvalidModuleInstallerVersion = 366, + IllegalGeneratedGuidComponentUnversionedKeypath = 367, + IllegalGeneratedGuidComponentVersionedNonkeypath = 368, + DuplicateComponentGuids = 369, + DuplicateProviderDependencyKey = 370, + MissingDependencyVersion = 371, + UnexpectedElementWithAttribute = 372, + ExpectedAttributeWithElement = 373, + DuplicatedUiLocalization = 374, + MaximumCabinetSizeForLargeFileSplittingTooLarge = 375, + SplitCabinetCopyRegistrationFailed = 376, + SplitCabinetNameCollision = 377, + SplitCabinetInsertionFailed = 378, + InvalidPreprocessorFunctionAutoVersion = 379, + InvalidModuleOrBundleVersion = 380, + UnsupportedPlatformForElement = 381, + MissingMedia = 382, + RemotePayloadUnsupported = 383, + IllegalYesNoAlwaysValue = 384, + TooDeeplyIncluded = 385, + TooManyColumnsInRealTable = 386, + InlineDirectorySyntaxRequiresPath = 387, + InsecureBundleFilename = 388, + PayloadMustBeRelativeToCache = 389, + MsiTransactionX86BeforeX64 = 390, + } + } +} diff --git a/src/WixToolset.Data/IMessageHandler.cs b/src/WixToolset.Data/IMessageHandler.cs deleted file mode 100644 index 5332fe4a..00000000 --- a/src/WixToolset.Data/IMessageHandler.cs +++ /dev/null @@ -1,18 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// Interface for handling messages (error/warning/verbose). - /// - public interface IMessageHandler - { - /// - /// Sends a message with the given arguments. - /// - /// Message arguments. - void OnMessage(MessageEventArgs e); - } -} diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 81a97151..a23cc091 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -244,7 +244,7 @@ namespace WixToolset.Data if (!Version.TryParse(versionJson, out var version) || !Intermediate.CurrentVersion.Equals(version)) { - throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(baseUri.AbsoluteUri), "intermediate", versionJson, Intermediate.CurrentVersion.ToString())); + throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(baseUri.AbsoluteUri), "intermediate", versionJson, Intermediate.CurrentVersion.ToString())); } } diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index a5e2ba14..10eff2e1 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs @@ -69,7 +69,7 @@ namespace WixToolset.Data } else if (!wixVariableRow.Overridable) { - throw new WixException(WixDataErrors.DuplicateLocalizationIdentifier(wixVariableRow.SourceLineNumbers, wixVariableRow.Id)); + throw new WixException(ErrorMessages.DuplicateLocalizationIdentifier(wixVariableRow.SourceLineNumbers, wixVariableRow.Id)); } } } diff --git a/src/WixToolset.Data/Message.cs b/src/WixToolset.Data/Message.cs new file mode 100644 index 00000000..6cd4105c --- /dev/null +++ b/src/WixToolset.Data/Message.cs @@ -0,0 +1,110 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Resources; + + /// + /// Event args for message events. + /// + public class Message + { + /// + /// Creates a new Message using a format string. + /// + /// Source line numbers for the message. + /// Message level. + /// Id for the message. + /// Format . + /// Arguments for the format string. + public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, string format, params object[] messageArgs) + { + this.SourceLineNumbers = sourceLineNumbers; + this.Level = level; + this.Id = id; + this.ResourceNameOrFormat = format; + this.MessageArgs = messageArgs; + } + + /// + /// Creates a new Message using a format string from a resource manager. + /// + /// Source line numbers for the message. + /// Message level. + /// Id for the message. + /// Resource manager. + /// Name of the resource. + /// Arguments for the format string. + public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, ResourceManager resourceManager, string resourceName, params object[] messageArgs) + { + this.SourceLineNumbers = sourceLineNumbers; + this.Level = level; + this.Id = id; + this.ResourceManager = resourceManager; + this.ResourceNameOrFormat = resourceName; + this.MessageArgs = messageArgs; + } + + /// + /// Gets the source line numbers. + /// + /// The source line numbers. + public SourceLineNumber SourceLineNumbers { get; } + + /// + /// Gets the Id for the message. + /// + /// The Id for the message. + public int Id { get; } + + /// + /// Gets the resource manager for this event args. + /// + /// The resource manager for this event args. + public ResourceManager ResourceManager { get; } + + /// + /// Gets the name of the resource or format string if no resource manager was provided. + /// + /// The name of the resource or format string. + public string ResourceNameOrFormat { get; } + + /// + /// Gets or sets the for the message. + /// + /// The for the message. + public MessageLevel Level { get; private set; } + + /// + /// Gets the arguments for the format string. + /// + /// The arguments for the format string. + public object[] MessageArgs { get; } + + /// + /// Makes a warning an error. + /// + public void ElevateWarningToError() + { + if (this.Level != MessageLevel.Warning) + { + throw new InvalidOperationException($"Cannot elevate {this.Level.ToString()} Message to an Error. Only Warning Messages can be elevated to an Error."); + } + + this.Level = MessageLevel.Error; + } + + public override string ToString() + { + if (this.ResourceManager == null) + { + return String.Format(this.ResourceNameOrFormat, this.MessageArgs); + } + else + { + return String.Format(this.ResourceManager.GetString(this.ResourceNameOrFormat), this.MessageArgs); + } + } + } +} diff --git a/src/WixToolset.Data/MessageEventArgs.cs b/src/WixToolset.Data/MessageEventArgs.cs deleted file mode 100644 index 472b5e95..00000000 --- a/src/WixToolset.Data/MessageEventArgs.cs +++ /dev/null @@ -1,176 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; - using System.Resources; - using System.Text; - - /// - /// Event args for message events. - /// - public abstract class MessageEventArgs : EventArgs - { - private SourceLineNumber sourceLineNumbers; - private int id; - private string resourceName; - private object[] messageArgs; - private MessageLevel level; - - /// - /// Creates a new MessageEventArgs. - /// - /// Source line numbers for the message. - /// Id for the message. - /// Name of the resource. - /// Arguments for the format string. - protected MessageEventArgs(SourceLineNumber sourceLineNumbers, int id, string resourceName, params object[] messageArgs) - { - this.sourceLineNumbers = sourceLineNumbers; - this.id = id; - this.resourceName = resourceName; - this.messageArgs = messageArgs; - - // Default to Nothing, since the default MessageEventArgs container - // classes define a level, and only WixErrorEventArgs previously - // determined that an error occured without throwing. - this.level = MessageLevel.Nothing; - } - - /// - /// Gets the resource manager for this event args. - /// - /// The resource manager for this event args. - public ResourceManager ResourceManager { get; protected set; } - - /// - /// Gets the source line numbers. - /// - /// The source line numbers. - public SourceLineNumber SourceLineNumbers - { - get { return this.sourceLineNumbers; } - } - - /// - /// Gets the Id for the message. - /// - /// The Id for the message. - public int Id - { - get { return this.id; } - } - - /// - /// Gets the name of the resource. - /// - /// The name of the resource. - public string ResourceName - { - get { return this.resourceName; } - } - - /// - /// Gets or sets the for the message. - /// - /// The for the message. - /// - /// The may set the level differently - /// depending on suppression and escalation of different message levels. - /// Message handlers should check the level to determine if an error - /// or other message level was raised. - /// - public MessageLevel Level - { - get { return this.level; } - set { this.level = value; } - } - - /// - /// Gets the arguments for the format string. - /// - /// The arguments for the format string. - [SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - public object[] MessageArgs - { - get { return this.messageArgs; } - } - - /// - /// Creates a properly formatted message string. - /// - /// Optional short form of the application name that generated the message. Defaults to "WIX" if unspecified. - /// Optional long form of the application name that generated the message. Defaults to "WIX" if unspecified. Will be overridden by the processed filename if one was provided. - /// Optional override level of the message, as generated by MessageLevel(MessageEventArgs). - /// String containing the formatted message. - public string GenerateMessageString(string shortAppName = null, string longAppName = null, MessageLevel overrideLevel = MessageLevel.Nothing) - { - MessageLevel messageLevel = MessageLevel.Nothing == overrideLevel ? this.Level : overrideLevel; - - List fileNames = new List(); - string errorFileName = String.IsNullOrEmpty(longAppName) ? "WIX" : longAppName; - for (SourceLineNumber sln = this.SourceLineNumbers; null != sln; sln = sln.Parent) - { - if (String.IsNullOrEmpty(sln.FileName)) - { - continue; - } - else if (sln.LineNumber.HasValue) - { - if (0 == fileNames.Count) - { - errorFileName = String.Format(CultureInfo.CurrentUICulture, WixDataStrings.Format_FirstLineNumber, sln.FileName, sln.LineNumber); - } - - fileNames.Add(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.Format_LineNumber, sln.FileName, sln.LineNumber)); - } - else - { - if (0 == fileNames.Count) - { - errorFileName = sln.FileName; - } - - fileNames.Add(sln.FileName); - } - } - - string messageType = String.Empty; - if (MessageLevel.Warning == messageLevel) - { - messageType = WixDataStrings.MessageType_Warning; - } - else if (MessageLevel.Error == messageLevel) - { - messageType = WixDataStrings.MessageType_Error; - } - - StringBuilder messageBuilder = new StringBuilder(); - string message = String.Format(CultureInfo.InvariantCulture, this.ResourceManager.GetString(this.ResourceName), this.MessageArgs); - if (MessageLevel.Information == messageLevel || MessageLevel.Verbose == messageLevel) - { - messageBuilder.AppendFormat(WixDataStrings.Format_InfoMessage, message); - } - else - { - messageBuilder.AppendFormat(WixDataStrings.Format_NonInfoMessage, errorFileName, messageType, String.IsNullOrEmpty(shortAppName) ? "WIX" : shortAppName, this.Id, message); - } - - if (1 < fileNames.Count) - { - messageBuilder.AppendFormat(WixDataStrings.INF_SourceTrace, Environment.NewLine); - foreach (string fileName in fileNames) - { - messageBuilder.AppendFormat(WixDataStrings.INF_SourceTraceLocation, fileName, Environment.NewLine); - } - - messageBuilder.Append(Environment.NewLine); - } - - return messageBuilder.ToString(); - } - } -} diff --git a/src/WixToolset.Data/Messaging.cs b/src/WixToolset.Data/Messaging.cs deleted file mode 100644 index de2cdcfe..00000000 --- a/src/WixToolset.Data/Messaging.cs +++ /dev/null @@ -1,173 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - - public class Messaging : IMessageHandler - { - private static readonly Messaging instance = new Messaging(); - - private HashSet suppressedWarnings = new HashSet(); - private HashSet warningsAsErrors = new HashSet(); - private string longAppName; - private string shortAppName; - - static Messaging() - { - } - - private Messaging() - { - } - - public static Messaging Instance { get { return Messaging.instance; } } - - /// - /// Event fired when messages are to be displayed. - /// - public event DisplayEventHandler Display; - - /// - /// Gets a bool indicating whether an error has been found. - /// - /// A bool indicating whether an error has been found. - public bool EncounteredError { get; private set; } - - /// - /// Gets the last error code encountered during messaging. - /// - /// The exit code for the process. - public int LastErrorNumber { get; private set; } - - /// - /// Gets or sets the option to show verbose messages. - /// - /// The option to show verbose messages. - public bool ShowVerboseMessages { get; set; } - - /// - /// Gets or sets the option to suppress all warning messages. - /// - /// The option to suppress all warning messages. - public bool SuppressAllWarnings { get; set; } - - /// - /// Gets and sets the option to treat warnings as errors. - /// - /// The option to treat warnings as errors. - public bool WarningsAsError { get; set; } - - /// - /// Implements IMessageHandler to display error messages. - /// - /// Message event arguments. - public void OnMessage(MessageEventArgs mea) - { - MessageLevel messageLevel = this.CalculateMessageLevel(mea); - - if (MessageLevel.Nothing == messageLevel) - { - return; - } - else if (MessageLevel.Error == messageLevel) - { - this.EncounteredError = true; - this.LastErrorNumber = mea.Id; - } - - if (null != this.Display) - { - string message = mea.GenerateMessageString(this.shortAppName, this.longAppName, messageLevel); - if (!String.IsNullOrEmpty(message)) - { - this.Display(this, new DisplayEventArgs() { Level = messageLevel, Message = message }); - } - } - else if (MessageLevel.Error == mea.Level) - { - throw new WixException(mea); - } - } - - /// - /// Sets the app names. - /// - /// Short application name; usually 4 uppercase characters. - /// Long application name; usually the executable name. - public Messaging InitializeAppName(string shortName, string longName) - { - this.EncounteredError = false; - this.LastErrorNumber = 0; - - this.Display = null; - this.ShowVerboseMessages = false; - this.SuppressAllWarnings = false; - this.WarningsAsError = false; - this.suppressedWarnings.Clear(); - this.warningsAsErrors.Clear(); - - this.shortAppName = shortName; - this.longAppName = longName; - - return this; - } - - /// - /// Adds a warning message id to be elevated to an error message. - /// - /// Id of the message to elevate. - /// - /// Suppressed warnings will not be elevated as errors. - /// - public void ElevateWarningMessage(int warningNumber) - { - this.warningsAsErrors.Add(warningNumber); - } - - /// - /// Adds a warning message id to be suppressed in message output. - /// - /// Id of the message to suppress. - /// - /// Suppressed warnings will not be elevated as errors. - /// - public void SuppressWarningMessage(int warningNumber) - { - this.suppressedWarnings.Add(warningNumber); - } - - /// - /// Determines the level of this message, when taking into account warning-as-error, - /// warning level, verbosity level and message suppressed by the caller. - /// - /// Event arguments for the message. - /// MessageLevel representing the level of this message. - private MessageLevel CalculateMessageLevel(MessageEventArgs mea) - { - MessageLevel messageLevel = mea.Level; - - if (MessageLevel.Verbose == messageLevel) - { - if (!this.ShowVerboseMessages) - { - messageLevel = MessageLevel.Nothing; - } - } - else if (MessageLevel.Warning == messageLevel) - { - if (this.SuppressAllWarnings || this.suppressedWarnings.Contains(mea.Id)) - { - messageLevel = MessageLevel.Nothing; - } - else if (this.WarningsAsError || this.warningsAsErrors.Contains(mea.Id)) - { - messageLevel = MessageLevel.Error; - } - } - - return messageLevel; - } - } -} diff --git a/src/WixToolset.Data/Serialize/wix.cs b/src/WixToolset.Data/Serialize/wix.cs new file mode 100644 index 00000000..3ff83699 --- /dev/null +++ b/src/WixToolset.Data/Serialize/wix.cs @@ -0,0 +1,57860 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WixToolset.Data.Serialize +{ + using System; + using System.CodeDom.Compiler; + using System.Collections; + using System.Diagnostics.CodeAnalysis; + using System.Globalization; + using System.Xml; + + + /// + /// Values of this type will either be "attached" or "detached". + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum BurnContainerType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + attached, + + detached, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Enums + { + + /// + /// Parses a BurnContainerType from a string. + /// + public static BurnContainerType ParseBurnContainerType(string value) + { + BurnContainerType parsedValue; + Enums.TryParseBurnContainerType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a BurnContainerType from a string. + /// + public static bool TryParseBurnContainerType(string value, out BurnContainerType parsedValue) + { + parsedValue = BurnContainerType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("attached" == value)) + { + parsedValue = BurnContainerType.attached; + } + else + { + if (("detached" == value)) + { + parsedValue = BurnContainerType.detached; + } + else + { + parsedValue = BurnContainerType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Parses a BurnExeProtocolType from a string. + /// + public static BurnExeProtocolType ParseBurnExeProtocolType(string value) + { + BurnExeProtocolType parsedValue; + Enums.TryParseBurnExeProtocolType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a BurnExeProtocolType from a string. + /// + public static bool TryParseBurnExeProtocolType(string value, out BurnExeProtocolType parsedValue) + { + parsedValue = BurnExeProtocolType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("none" == value)) + { + parsedValue = BurnExeProtocolType.none; + } + else + { + if (("burn" == value)) + { + parsedValue = BurnExeProtocolType.burn; + } + else + { + if (("netfx4" == value)) + { + parsedValue = BurnExeProtocolType.netfx4; + } + else + { + parsedValue = BurnExeProtocolType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a YesNoType from a string. + /// + public static YesNoType ParseYesNoType(string value) + { + YesNoType parsedValue; + Enums.TryParseYesNoType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a YesNoType from a string. + /// + public static bool TryParseYesNoType(string value, out YesNoType parsedValue) + { + parsedValue = YesNoType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("no" == value)) + { + parsedValue = YesNoType.no; + } + else + { + if (("yes" == value)) + { + parsedValue = YesNoType.yes; + } + else + { + parsedValue = YesNoType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Parses a YesNoButtonType from a string. + /// + public static YesNoButtonType ParseYesNoButtonType(string value) + { + YesNoButtonType parsedValue; + Enums.TryParseYesNoButtonType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a YesNoButtonType from a string. + /// + public static bool TryParseYesNoButtonType(string value, out YesNoButtonType parsedValue) + { + parsedValue = YesNoButtonType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("no" == value)) + { + parsedValue = YesNoButtonType.no; + } + else + { + if (("yes" == value)) + { + parsedValue = YesNoButtonType.yes; + } + else + { + if (("button" == value)) + { + parsedValue = YesNoButtonType.button; + } + else + { + parsedValue = YesNoButtonType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a YesNoDefaultType from a string. + /// + public static YesNoDefaultType ParseYesNoDefaultType(string value) + { + YesNoDefaultType parsedValue; + Enums.TryParseYesNoDefaultType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a YesNoDefaultType from a string. + /// + public static bool TryParseYesNoDefaultType(string value, out YesNoDefaultType parsedValue) + { + parsedValue = YesNoDefaultType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("default" == value)) + { + parsedValue = YesNoDefaultType.@default; + } + else + { + if (("no" == value)) + { + parsedValue = YesNoDefaultType.no; + } + else + { + if (("yes" == value)) + { + parsedValue = YesNoDefaultType.yes; + } + else + { + parsedValue = YesNoDefaultType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a YesNoAlwaysType from a string. + /// + public static YesNoAlwaysType ParseYesNoAlwaysType(string value) + { + YesNoAlwaysType parsedValue; + Enums.TryParseYesNoAlwaysType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a YesNoAlwaysType from a string. + /// + public static bool TryParseYesNoAlwaysType(string value, out YesNoAlwaysType parsedValue) + { + parsedValue = YesNoAlwaysType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("always" == value)) + { + parsedValue = YesNoAlwaysType.always; + } + else + { + if (("no" == value)) + { + parsedValue = YesNoAlwaysType.no; + } + else + { + if (("yes" == value)) + { + parsedValue = YesNoAlwaysType.yes; + } + else + { + parsedValue = YesNoAlwaysType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a RegistryRootType from a string. + /// + public static RegistryRootType ParseRegistryRootType(string value) + { + RegistryRootType parsedValue; + Enums.TryParseRegistryRootType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a RegistryRootType from a string. + /// + public static bool TryParseRegistryRootType(string value, out RegistryRootType parsedValue) + { + parsedValue = RegistryRootType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("HKMU" == value)) + { + parsedValue = RegistryRootType.HKMU; + } + else + { + if (("HKCR" == value)) + { + parsedValue = RegistryRootType.HKCR; + } + else + { + if (("HKCU" == value)) + { + parsedValue = RegistryRootType.HKCU; + } + else + { + if (("HKLM" == value)) + { + parsedValue = RegistryRootType.HKLM; + } + else + { + if (("HKU" == value)) + { + parsedValue = RegistryRootType.HKU; + } + else + { + parsedValue = RegistryRootType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Parses a ExitType from a string. + /// + public static ExitType ParseExitType(string value) + { + ExitType parsedValue; + Enums.TryParseExitType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ExitType from a string. + /// + public static bool TryParseExitType(string value, out ExitType parsedValue) + { + parsedValue = ExitType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("success" == value)) + { + parsedValue = ExitType.success; + } + else + { + if (("cancel" == value)) + { + parsedValue = ExitType.cancel; + } + else + { + if (("error" == value)) + { + parsedValue = ExitType.error; + } + else + { + if (("suspend" == value)) + { + parsedValue = ExitType.suspend; + } + else + { + parsedValue = ExitType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Parses a InstallUninstallType from a string. + /// + public static InstallUninstallType ParseInstallUninstallType(string value) + { + InstallUninstallType parsedValue; + Enums.TryParseInstallUninstallType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a InstallUninstallType from a string. + /// + public static bool TryParseInstallUninstallType(string value, out InstallUninstallType parsedValue) + { + parsedValue = InstallUninstallType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("install" == value)) + { + parsedValue = InstallUninstallType.install; + } + else + { + if (("uninstall" == value)) + { + parsedValue = InstallUninstallType.uninstall; + } + else + { + if (("both" == value)) + { + parsedValue = InstallUninstallType.both; + } + else + { + parsedValue = InstallUninstallType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a SequenceType from a string. + /// + public static SequenceType ParseSequenceType(string value) + { + SequenceType parsedValue; + Enums.TryParseSequenceType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a SequenceType from a string. + /// + public static bool TryParseSequenceType(string value, out SequenceType parsedValue) + { + parsedValue = SequenceType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("both" == value)) + { + parsedValue = SequenceType.both; + } + else + { + if (("first" == value)) + { + parsedValue = SequenceType.first; + } + else + { + if (("execute" == value)) + { + parsedValue = SequenceType.execute; + } + else + { + if (("ui" == value)) + { + parsedValue = SequenceType.ui; + } + else + { + parsedValue = SequenceType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Parses a CompressionLevelType from a string. + /// + public static CompressionLevelType ParseCompressionLevelType(string value) + { + CompressionLevelType parsedValue; + Enums.TryParseCompressionLevelType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a CompressionLevelType from a string. + /// + public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) + { + parsedValue = CompressionLevelType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("high" == value)) + { + parsedValue = CompressionLevelType.high; + } + else + { + if (("low" == value)) + { + parsedValue = CompressionLevelType.low; + } + else + { + if (("medium" == value)) + { + parsedValue = CompressionLevelType.medium; + } + else + { + if (("mszip" == value)) + { + parsedValue = CompressionLevelType.mszip; + } + else + { + if (("none" == value)) + { + parsedValue = CompressionLevelType.none; + } + else + { + parsedValue = CompressionLevelType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + } + + /// + /// The list of communcation protocols with executable packages Burn supports. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum BurnExeProtocolType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The executable package does not support a communication protocol. + /// + none, + + /// + /// The executable package is another Burn bundle and supports the Burn communication protocol. + /// + burn, + + /// + /// The executable package implements the .NET Framework v4.0 communication protocol. + /// + netfx4, + } + + /// + /// Values of this type will either be "yes" or "no". + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum YesNoType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + no, + + yes, + } + + /// + /// Values of this type will either be "button", "yes" or "no". + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum YesNoButtonType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + no, + + yes, + + button, + } + + /// + /// Values of this type will either be "default", "yes", or "no". + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum YesNoDefaultType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + @default, + + no, + + yes, + } + + /// + /// Values of this type will either be "always", "yes", or "no". + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum YesNoAlwaysType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + always, + + no, + + yes, + } + + /// + /// Values of this type represent possible registry roots. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum RegistryRootType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// A per-user installation will make the operation occur under HKEY_CURRENT_USER. + /// A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE. + /// + HKMU, + + /// + /// Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value + /// from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems, + /// the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations. + /// + HKCR, + + /// + /// Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values + /// in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer. + /// + HKCU, + + /// + /// Operation occurs under HKEY_LOCAL_MACHINE. + /// + HKLM, + + /// + /// Operation occurs under HKEY_USERS. + /// + HKU, + } + + /// + /// Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action. + /// Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ExitType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + success, + + cancel, + + error, + + suspend, + } + + /// + /// Specifies whether an action occur on install, uninstall or both. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum InstallUninstallType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The action should happen during install (msiInstallStateLocal or msiInstallStateSource). + /// + install, + + /// + /// The action should happen during uninstall (msiInstallStateAbsent). + /// + uninstall, + + /// + /// The action should happen during both install and uninstall. + /// + both, + } + + /// + /// Controls which sequences the item assignment is sequenced in. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum SequenceType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Schedules the assignment in the InstallUISequence and the InstallExecuteSequence. + /// + both, + + /// + /// Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped. + /// + first, + + /// + /// Schedules the assignment only in the the InstallExecuteSequence. + /// + execute, + + /// + /// Schedules the assignment only in the the InstallUISequence. + /// + ui, + } + + /// + /// Indicates the compression level for a cabinet. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum CompressionLevelType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + high, + + low, + + medium, + + mszip, + + none, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public abstract class ActionModuleSequenceType : ISchemaElement, ISetAttributes + { + + private string afterField; + + private bool afterFieldSet; + + private string beforeField; + + private bool beforeFieldSet; + + private YesNoType overridableField; + + private bool overridableFieldSet; + + private int sequenceField; + + private bool sequenceFieldSet; + + private YesNoType suppressField; + + private bool suppressFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of an action that this action should come after. + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// The name of an action that this action should come before. + /// + public string Before + { + get + { + return this.beforeField; + } + set + { + this.beforeFieldSet = true; + this.beforeField = value; + } + } + + /// + /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. + /// + public YesNoType Overridable + { + get + { + return this.overridableField; + } + set + { + this.overridableFieldSet = true; + this.overridableField = value; + } + } + + /// + /// A value used to indicate the position of this action in a sequence. + /// + public int Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + /// + /// If yes, this action will not occur. + /// + public YesNoType Suppress + { + get + { + return this.suppressField; + } + set + { + this.suppressFieldSet = true; + this.suppressField = value; + } + } + + /// + /// Text node specifies the condition of the action. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.beforeFieldSet) + { + writer.WriteAttributeString("Before", this.beforeField); + } + if (this.overridableFieldSet) + { + if ((this.overridableField == YesNoType.no)) + { + writer.WriteAttributeString("Overridable", "no"); + } + if ((this.overridableField == YesNoType.yes)) + { + writer.WriteAttributeString("Overridable", "yes"); + } + } + if (this.sequenceFieldSet) + { + writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); + } + if (this.suppressFieldSet) + { + if ((this.suppressField == YesNoType.no)) + { + writer.WriteAttributeString("Suppress", "no"); + } + if ((this.suppressField == YesNoType.yes)) + { + writer.WriteAttributeString("Suppress", "yes"); + } + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("Before" == name)) + { + this.beforeField = value; + this.beforeFieldSet = true; + } + if (("Overridable" == name)) + { + this.overridableField = Enums.ParseYesNoType(value); + this.overridableFieldSet = true; + } + if (("Sequence" == name)) + { + this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.sequenceFieldSet = true; + } + if (("Suppress" == name)) + { + this.suppressField = Enums.ParseYesNoType(value); + this.suppressFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public abstract class ActionSequenceType : ISchemaElement, ISetAttributes + { + + private int sequenceField; + + private bool sequenceFieldSet; + + private YesNoType suppressField; + + private bool suppressFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// A value used to indicate the position of this action in a sequence. + /// + public int Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + /// + /// If yes, this action will not occur. + /// + public YesNoType Suppress + { + get + { + return this.suppressField; + } + set + { + this.suppressFieldSet = true; + this.suppressField = value; + } + } + + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + if (this.sequenceFieldSet) + { + writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); + } + if (this.suppressFieldSet) + { + if ((this.suppressField == YesNoType.no)) + { + writer.WriteAttributeString("Suppress", "no"); + } + if ((this.suppressField == YesNoType.yes)) + { + writer.WriteAttributeString("Suppress", "yes"); + } + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Sequence" == name)) + { + this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.sequenceFieldSet = true; + } + if (("Suppress" == name)) + { + this.suppressField = Enums.ParseYesNoType(value); + this.suppressFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// This is the top-level container element for every wxs file. Among the possible children, + /// the Bundle, Product, Module, Patch, and PatchCreation elements are analogous to the main function in a C program. + /// There can only be one of these present when linking occurs. Product compiles into an msi file, + /// Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element + /// is an atomic unit which ultimately links into either a Product, Module, or PatchCreation. The + /// Fragment can either be completely included or excluded during linking. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Wix : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string requiredVersionField; + + private bool requiredVersionFieldSet; + + private ISchemaElement parentElement; + + public Wix() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); + ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Bundle))); + childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Product))); + childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Module))); + childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Patch))); + childCollection1.AddCollection(childCollection2); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(Fragment))); + childCollection0.AddCollection(childCollection1); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCreation))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Required version of the WiX toolset to compile this input file. + /// + public string RequiredVersion + { + get + { + return this.requiredVersionField; + } + set + { + this.requiredVersionFieldSet = true; + this.requiredVersionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Bundle" == childName)) + { + childValue = new Bundle(); + } + if (("Product" == childName)) + { + childValue = new Product(); + } + if (("Module" == childName)) + { + childValue = new Module(); + } + if (("Patch" == childName)) + { + childValue = new Patch(); + } + if (("Fragment" == childName)) + { + childValue = new Fragment(); + } + if (("PatchCreation" == childName)) + { + childValue = new PatchCreation(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Wix", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.requiredVersionFieldSet) + { + writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("RequiredVersion" == name)) + { + this.requiredVersionField = value; + this.requiredVersionFieldSet = true; + } + } + } + + /// + /// This is the top-level container element for every wxi file. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Include : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public Include() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Include", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + /// + /// The root element for creating bundled packages. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Bundle : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string aboutUrlField; + + private bool aboutUrlFieldSet; + + private string copyrightField; + + private bool copyrightFieldSet; + + private YesNoDefaultType compressedField; + + private bool compressedFieldSet; + + private YesNoButtonType disableModifyField; + + private bool disableModifyFieldSet; + + private YesNoType disableRemoveField; + + private bool disableRemoveFieldSet; + + private YesNoType disableRepairField; + + private bool disableRepairFieldSet; + + private string helpTelephoneField; + + private bool helpTelephoneFieldSet; + + private string helpUrlField; + + private bool helpUrlFieldSet; + + private string iconSourceFileField; + + private bool iconSourceFileFieldSet; + + private string manufacturerField; + + private bool manufacturerFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string parentNameField; + + private bool parentNameFieldSet; + + private string splashScreenSourceFileField; + + private bool splashScreenSourceFileFieldSet; + + private string tagField; + + private bool tagFieldSet; + + private string updateUrlField; + + private bool updateUrlFieldSet; + + private string upgradeCodeField; + + private bool upgradeCodeFieldSet; + + private string versionField; + + private bool versionFieldSet; + + private string conditionField; + + private bool conditionFieldSet; + + private ISchemaElement parentElement; + + public Bundle() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ApprovedExeForElevation))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Log))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Catalog))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(OptionalUpdateRegistration))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Chain))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ContainerRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Update))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// A URL for more information about the bundle to display in Programs and Features (also + /// known as Add/Remove Programs). + /// + public string AboutUrl + { + get + { + return this.aboutUrlField; + } + set + { + this.aboutUrlFieldSet = true; + this.aboutUrlField = value; + } + } + + /// + /// The legal copyright found in the version resources of final bundle executable. If + /// this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.". + /// + public string Copyright + { + get + { + return this.copyrightField; + } + set + { + this.copyrightFieldSet = true; + this.copyrightField = value; + } + } + + /// + /// Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes. + /// + public YesNoDefaultType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// Determines whether the bundle can be modified via the Programs and Features (also known as + /// Add/Remove Programs). If the value is "button" then Programs and Features will show a single + /// "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show + /// the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown. + /// See the DisableRemove attribute for information how to not display the bundle in Programs + /// and Features. + /// + public YesNoButtonType DisableModify + { + get + { + return this.disableModifyField; + } + set + { + this.disableModifyFieldSet = true; + this.disableModifyField = value; + } + } + + /// + /// Determines whether the bundle can be removed via the Programs and Features (also + /// known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will + /// not be displayed. The default is "no" which ensures there is an "Uninstall" button to + /// remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the + /// bundle will not be displayed in Progams and Features and another mechanism (such as + /// registering as a related bundle addon) must be used to ensure the bundle can be removed. + /// + public YesNoType DisableRemove + { + get + { + return this.disableRemoveField; + } + set + { + this.disableRemoveFieldSet = true; + this.disableRemoveField = value; + } + } + + public YesNoType DisableRepair + { + get + { + return this.disableRepairField; + } + set + { + this.disableRepairFieldSet = true; + this.disableRepairField = value; + } + } + + /// + /// A telephone number for help to display in Programs and Features (also known as + /// Add/Remove Programs). + /// + public string HelpTelephone + { + get + { + return this.helpTelephoneField; + } + set + { + this.helpTelephoneFieldSet = true; + this.helpTelephoneField = value; + } + } + + /// + /// A URL to the help for the bundle to display in Programs and Features (also known as + /// Add/Remove Programs). + /// + public string HelpUrl + { + get + { + return this.helpUrlField; + } + set + { + this.helpUrlFieldSet = true; + this.helpUrlField = value; + } + } + + /// + /// Path to an icon that will replace the default icon in the final Bundle executable. + /// This icon will also be displayed in Programs and Features (also known as Add/Remove + /// Programs). + /// + public string IconSourceFile + { + get + { + return this.iconSourceFileField; + } + set + { + this.iconSourceFileFieldSet = true; + this.iconSourceFileField = value; + } + } + + /// + /// The publisher of the bundle to display in Programs and Features (also known as + /// Add/Remove Programs). + /// + public string Manufacturer + { + get + { + return this.manufacturerField; + } + set + { + this.manufacturerFieldSet = true; + this.manufacturerField = value; + } + } + + /// + /// The name of the bundle to display in Programs and Features (also known as Add/Remove + /// Programs). This name can be accessed and overwritten by a BootstrapperApplication + /// using the WixBundleName bundle variable. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The name of the parent bundle to display in Installed Updates (also known as Add/Remove + /// Programs). This name is used to nest or group bundles that will appear as updates. + /// If the parent name does not actually exist, a virtual parent is created automatically. + /// + public string ParentName + { + get + { + return this.parentNameField; + } + set + { + this.parentNameFieldSet = true; + this.parentNameField = value; + } + } + + /// + /// Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed. + /// + public string SplashScreenSourceFile + { + get + { + return this.splashScreenSourceFileField; + } + set + { + this.splashScreenSourceFileFieldSet = true; + this.splashScreenSourceFileField = value; + } + } + + /// + /// Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality. + /// + public string Tag + { + get + { + return this.tagField; + } + set + { + this.tagFieldSet = true; + this.tagField = value; + } + } + + /// + /// A URL for updates of the bundle to display in Programs and Features (also + /// known as Add/Remove Programs). + /// + public string UpdateUrl + { + get + { + return this.updateUrlField; + } + set + { + this.updateUrlFieldSet = true; + this.updateUrlField = value; + } + } + + /// + /// Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the + /// bundle with the highest version will be installed. + /// + public string UpgradeCode + { + get + { + return this.upgradeCodeField; + } + set + { + this.upgradeCodeFieldSet = true; + this.upgradeCodeField = value; + } + } + + /// + /// The version of the bundle. Newer versions upgrade earlier versions of the bundles + /// with matching UpgradeCodes. If the bundle is registered in Programs and Features + /// then this attribute will be displayed in the Programs and Features user interface. + /// + public string Version + { + get + { + return this.versionField; + } + set + { + this.versionFieldSet = true; + this.versionField = value; + } + } + + /// + /// The condition of the bundle. If the condition is not met, the bundle will + /// refuse to run. Conditions are checked before the bootstrapper application is loaded + /// (before detect), and thus can only reference built-in variables such as + /// variables which indicate the version of the OS. + /// + public string Condition + { + get + { + return this.conditionField; + } + set + { + this.conditionFieldSet = true; + this.conditionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ApprovedExeForElevation" == childName)) + { + childValue = new ApprovedExeForElevation(); + } + if (("Log" == childName)) + { + childValue = new Log(); + } + if (("Catalog" == childName)) + { + childValue = new Catalog(); + } + if (("BootstrapperApplication" == childName)) + { + childValue = new BootstrapperApplication(); + } + if (("BootstrapperApplicationRef" == childName)) + { + childValue = new BootstrapperApplicationRef(); + } + if (("OptionalUpdateRegistration" == childName)) + { + childValue = new OptionalUpdateRegistration(); + } + if (("Chain" == childName)) + { + childValue = new Chain(); + } + if (("Container" == childName)) + { + childValue = new Container(); + } + if (("ContainerRef" == childName)) + { + childValue = new ContainerRef(); + } + if (("PayloadGroup" == childName)) + { + childValue = new PayloadGroup(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if (("RelatedBundle" == childName)) + { + childValue = new RelatedBundle(); + } + if (("Update" == childName)) + { + childValue = new Update(); + } + if (("Variable" == childName)) + { + childValue = new Variable(); + } + if (("WixVariable" == childName)) + { + childValue = new WixVariable(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Bundle", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.aboutUrlFieldSet) + { + writer.WriteAttributeString("AboutUrl", this.aboutUrlField); + } + if (this.copyrightFieldSet) + { + writer.WriteAttributeString("Copyright", this.copyrightField); + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("Compressed", "default"); + } + if ((this.compressedField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.disableModifyFieldSet) + { + if ((this.disableModifyField == YesNoButtonType.no)) + { + writer.WriteAttributeString("DisableModify", "no"); + } + if ((this.disableModifyField == YesNoButtonType.yes)) + { + writer.WriteAttributeString("DisableModify", "yes"); + } + if ((this.disableModifyField == YesNoButtonType.button)) + { + writer.WriteAttributeString("DisableModify", "button"); + } + } + if (this.disableRemoveFieldSet) + { + if ((this.disableRemoveField == YesNoType.no)) + { + writer.WriteAttributeString("DisableRemove", "no"); + } + if ((this.disableRemoveField == YesNoType.yes)) + { + writer.WriteAttributeString("DisableRemove", "yes"); + } + } + if (this.disableRepairFieldSet) + { + if ((this.disableRepairField == YesNoType.no)) + { + writer.WriteAttributeString("DisableRepair", "no"); + } + if ((this.disableRepairField == YesNoType.yes)) + { + writer.WriteAttributeString("DisableRepair", "yes"); + } + } + if (this.helpTelephoneFieldSet) + { + writer.WriteAttributeString("HelpTelephone", this.helpTelephoneField); + } + if (this.helpUrlFieldSet) + { + writer.WriteAttributeString("HelpUrl", this.helpUrlField); + } + if (this.iconSourceFileFieldSet) + { + writer.WriteAttributeString("IconSourceFile", this.iconSourceFileField); + } + if (this.manufacturerFieldSet) + { + writer.WriteAttributeString("Manufacturer", this.manufacturerField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.parentNameFieldSet) + { + writer.WriteAttributeString("ParentName", this.parentNameField); + } + if (this.splashScreenSourceFileFieldSet) + { + writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); + } + if (this.tagFieldSet) + { + writer.WriteAttributeString("Tag", this.tagField); + } + if (this.updateUrlFieldSet) + { + writer.WriteAttributeString("UpdateUrl", this.updateUrlField); + } + if (this.upgradeCodeFieldSet) + { + writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); + } + if (this.versionFieldSet) + { + writer.WriteAttributeString("Version", this.versionField); + } + if (this.conditionFieldSet) + { + writer.WriteAttributeString("Condition", this.conditionField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("AboutUrl" == name)) + { + this.aboutUrlField = value; + this.aboutUrlFieldSet = true; + } + if (("Copyright" == name)) + { + this.copyrightField = value; + this.copyrightFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoDefaultType(value); + this.compressedFieldSet = true; + } + if (("DisableModify" == name)) + { + this.disableModifyField = Enums.ParseYesNoButtonType(value); + this.disableModifyFieldSet = true; + } + if (("DisableRemove" == name)) + { + this.disableRemoveField = Enums.ParseYesNoType(value); + this.disableRemoveFieldSet = true; + } + if (("DisableRepair" == name)) + { + this.disableRepairField = Enums.ParseYesNoType(value); + this.disableRepairFieldSet = true; + } + if (("HelpTelephone" == name)) + { + this.helpTelephoneField = value; + this.helpTelephoneFieldSet = true; + } + if (("HelpUrl" == name)) + { + this.helpUrlField = value; + this.helpUrlFieldSet = true; + } + if (("IconSourceFile" == name)) + { + this.iconSourceFileField = value; + this.iconSourceFileFieldSet = true; + } + if (("Manufacturer" == name)) + { + this.manufacturerField = value; + this.manufacturerFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("ParentName" == name)) + { + this.parentNameField = value; + this.parentNameFieldSet = true; + } + if (("SplashScreenSourceFile" == name)) + { + this.splashScreenSourceFileField = value; + this.splashScreenSourceFileFieldSet = true; + } + if (("Tag" == name)) + { + this.tagField = value; + this.tagFieldSet = true; + } + if (("UpdateUrl" == name)) + { + this.updateUrlField = value; + this.updateUrlFieldSet = true; + } + if (("UpgradeCode" == name)) + { + this.upgradeCodeField = value; + this.upgradeCodeFieldSet = true; + } + if (("Version" == name)) + { + this.versionField = value; + this.versionFieldSet = true; + } + if (("Condition" == name)) + { + this.conditionField = value; + this.conditionFieldSet = true; + } + } + } + + /// + /// Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ApprovedExeForElevation : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private YesNoType win64Field; + + private bool win64FieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the ApprovedExeForElevation element. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The key path. + /// For security purposes, the root key will be HKLM and Variables are not supported. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// The value name. + /// For security purposes, Variables are not supported. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// Instructs the search to look in the 64-bit registry when the value is 'yes'. + /// When the value is 'no', the search looks in the 32-bit registry. + /// The default value is 'no'. + /// + public YesNoType Win64 + { + get + { + return this.win64Field; + } + set + { + this.win64FieldSet = true; + this.win64Field = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ApprovedExeForElevation", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.win64FieldSet) + { + if ((this.win64Field == YesNoType.no)) + { + writer.WriteAttributeString("Win64", "no"); + } + if ((this.win64Field == YesNoType.yes)) + { + writer.WriteAttributeString("Win64", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Win64" == name)) + { + this.win64Field = Enums.ParseYesNoType(value); + this.win64FieldSet = true; + } + } + } + + /// + /// Overrides the default log settings for a bundle. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Log : ISchemaElement, ISetAttributes + { + + private YesNoType disableField; + + private bool disableFieldSet; + + private string pathVariableField; + + private bool pathVariableFieldSet; + + private string prefixField; + + private bool prefixFieldSet; + + private string extensionField; + + private bool extensionFieldSet; + + private ISchemaElement parentElement; + + /// + /// Disables the default logging in the Bundle. The end user can still generate a + /// log file by specifying the "-l" command-line argument when installing the + /// Bundle. + /// + public YesNoType Disable + { + get + { + return this.disableField; + } + set + { + this.disableFieldSet = true; + this.disableField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file. An empty value + /// will cause the variable to not be set. The default is "WixBundleLog". + /// + public string PathVariable + { + get + { + return this.pathVariableField; + } + set + { + this.pathVariableFieldSet = true; + this.pathVariableField = value; + } + } + + /// + /// File name and optionally a relative path to use as the prefix for the log file. The + /// default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value + /// "Setup". + /// + public string Prefix + { + get + { + return this.prefixField; + } + set + { + this.prefixFieldSet = true; + this.prefixField = value; + } + } + + /// + /// The extension to use for the log. The default is ".log". + /// + public string Extension + { + get + { + return this.extensionField; + } + set + { + this.extensionFieldSet = true; + this.extensionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Log", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.disableFieldSet) + { + if ((this.disableField == YesNoType.no)) + { + writer.WriteAttributeString("Disable", "no"); + } + if ((this.disableField == YesNoType.yes)) + { + writer.WriteAttributeString("Disable", "yes"); + } + } + if (this.pathVariableFieldSet) + { + writer.WriteAttributeString("PathVariable", this.pathVariableField); + } + if (this.prefixFieldSet) + { + writer.WriteAttributeString("Prefix", this.prefixField); + } + if (this.extensionFieldSet) + { + writer.WriteAttributeString("Extension", this.extensionField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Disable" == name)) + { + this.disableField = Enums.ParseYesNoType(value); + this.disableFieldSet = true; + } + if (("PathVariable" == name)) + { + this.pathVariableField = value; + this.pathVariableFieldSet = true; + } + if (("Prefix" == name)) + { + this.prefixField = value; + this.prefixFieldSet = true; + } + if (("Extension" == name)) + { + this.extensionField = value; + this.extensionFieldSet = true; + } + } + } + + /// + /// Specify one or more catalog files that will be used to verify the contents of the bundle. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Catalog : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the catalog element. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The catalog file + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Catalog", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + } + } + + /// + /// Contains all the relevant information about the setup UI. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class BootstrapperApplication : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private ISchemaElement parentElement; + + public BootstrapperApplication() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The DLL with the bootstrapper application entry function. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// The relative destination path and file name for the bootstrapper application DLL. The default is the source file name. Use this attribute to rename the bootstrapper application DLL or extract it into a subfolder. The use of '..' directories is not allowed. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("BootstrapperApplication", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + } + } + + /// + /// Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class BootstrapperApplicationRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public BootstrapperApplicationRef() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The identifier of the BootstrapperApplication element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("BootstrapperApplicationRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// This element has been deprecated. Use the BootstrapperApplication element instead. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UX : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string splashScreenSourceFileField; + + private bool splashScreenSourceFileFieldSet; + + private ISchemaElement parentElement; + + public UX() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// See the BootstrapperApplication instead. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// See the BootstrapperApplication instead. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// See the BootstrapperApplication instead. + /// + public string SplashScreenSourceFile + { + get + { + return this.splashScreenSourceFileField; + } + set + { + this.splashScreenSourceFileFieldSet = true; + this.splashScreenSourceFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UX", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.splashScreenSourceFileFieldSet) + { + writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("SplashScreenSourceFile" == name)) + { + this.splashScreenSourceFileField = value; + this.splashScreenSourceFileFieldSet = true; + } + } + } + + /// + /// Writes additional information to the Windows registry that can be used to detect the bundle. + /// This registration is intended primarily for update to an existing product. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class OptionalUpdateRegistration : ISchemaElement, ISetAttributes + { + + private string manufacturerField; + + private bool manufacturerFieldSet; + + private string departmentField; + + private bool departmentFieldSet; + + private string productFamilyField; + + private bool productFamilyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string classificationField; + + private bool classificationFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of the manufacturer. The default is the Bundle/@Manufacturer attribute, + /// but may also be a short form, ex: Acme instead of Acme Corporation. + /// An error is generated at build time if neither attribute is specified. + /// + public string Manufacturer + { + get + { + return this.manufacturerField; + } + set + { + this.manufacturerFieldSet = true; + this.manufacturerField = value; + } + } + + /// + /// The name of the department or division publishing the update bundle. + /// The PublishingGroup registry value is not written if this attribute is not specified. + /// + public string Department + { + get + { + return this.departmentField; + } + set + { + this.departmentFieldSet = true; + this.departmentField = value; + } + } + + /// + /// The name of the family of products being updated. The default is the Bundle/@ParentName attribute. + /// The corresponding registry key is not created if neither attribute is specified. + /// + public string ProductFamily + { + get + { + return this.productFamilyField; + } + set + { + this.productFamilyFieldSet = true; + this.productFamilyField = value; + } + } + + /// + /// The name of the bundle. The default is the Bundle/@Name attribute, + /// but may also be a short form, ex: KB12345 instead of Update to Product (KB12345). + /// An error is generated at build time if neither attribute is specified. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The release type of the update bundle, such as Update, Security Update, Service Pack, etc. + /// The default value is Update. + /// + public string Classification + { + get + { + return this.classificationField; + } + set + { + this.classificationFieldSet = true; + this.classificationField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("OptionalUpdateRegistration", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.manufacturerFieldSet) + { + writer.WriteAttributeString("Manufacturer", this.manufacturerField); + } + if (this.departmentFieldSet) + { + writer.WriteAttributeString("Department", this.departmentField); + } + if (this.productFamilyFieldSet) + { + writer.WriteAttributeString("ProductFamily", this.productFamilyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.classificationFieldSet) + { + writer.WriteAttributeString("Classification", this.classificationField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Manufacturer" == name)) + { + this.manufacturerField = value; + this.manufacturerFieldSet = true; + } + if (("Department" == name)) + { + this.departmentField = value; + this.departmentFieldSet = true; + } + if (("ProductFamily" == name)) + { + this.productFamilyField = value; + this.productFamilyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Classification" == name)) + { + this.classificationField = value; + this.classificationFieldSet = true; + } + } + } + + /// + /// Contains the chain of packages to install. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Chain : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private YesNoType disableRollbackField; + + private bool disableRollbackFieldSet; + + private YesNoType disableSystemRestoreField; + + private bool disableSystemRestoreFieldSet; + + private YesNoType parallelCacheField; + + private bool parallelCacheFieldSet; + + private ISchemaElement parentElement; + + public Chain() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Specifies whether the bundle will attempt to rollback packages + /// executed in the chain. If "yes" is specified then when a vital + /// package fails to install only that package will rollback and the + /// chain will stop with the error. The default is "no" which + /// indicates all packages executed during the chain will be + /// rolledback to their previous state when a vital package fails. + /// + public YesNoType DisableRollback + { + get + { + return this.disableRollbackField; + } + set + { + this.disableRollbackFieldSet = true; + this.disableRollbackField = value; + } + } + + /// + /// Specifies whether the bundle will attempt to create a system + /// restore point when executing the chain. If "yes" is specified then + /// a system restore point will not be created. The default is "no" which + /// indicates a system restore point will be created when the bundle is + /// installed, uninstalled, repaired, modified, etc. If the system restore + /// point cannot be created, the bundle will log the issue and continue. + /// + public YesNoType DisableSystemRestore + { + get + { + return this.disableSystemRestoreField; + } + set + { + this.disableSystemRestoreFieldSet = true; + this.disableSystemRestoreField = value; + } + } + + /// + /// Specifies whether the bundle will start installing packages + /// while other packages are still being cached. If "yes", + /// packages will start executing when a rollback boundary is + /// encountered. The default is "no" which dictates all packages + /// must be cached before any packages will start to be installed. + /// + public YesNoType ParallelCache + { + get + { + return this.parallelCacheField; + } + set + { + this.parallelCacheFieldSet = true; + this.parallelCacheField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("MsiPackage" == childName)) + { + childValue = new MsiPackage(); + } + if (("MspPackage" == childName)) + { + childValue = new MspPackage(); + } + if (("MsuPackage" == childName)) + { + childValue = new MsuPackage(); + } + if (("ExePackage" == childName)) + { + childValue = new ExePackage(); + } + if (("RollbackBoundary" == childName)) + { + childValue = new RollbackBoundary(); + } + if (("PackageGroupRef" == childName)) + { + childValue = new PackageGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Chain", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.disableRollbackFieldSet) + { + if ((this.disableRollbackField == YesNoType.no)) + { + writer.WriteAttributeString("DisableRollback", "no"); + } + if ((this.disableRollbackField == YesNoType.yes)) + { + writer.WriteAttributeString("DisableRollback", "yes"); + } + } + if (this.disableSystemRestoreFieldSet) + { + if ((this.disableSystemRestoreField == YesNoType.no)) + { + writer.WriteAttributeString("DisableSystemRestore", "no"); + } + if ((this.disableSystemRestoreField == YesNoType.yes)) + { + writer.WriteAttributeString("DisableSystemRestore", "yes"); + } + } + if (this.parallelCacheFieldSet) + { + if ((this.parallelCacheField == YesNoType.no)) + { + writer.WriteAttributeString("ParallelCache", "no"); + } + if ((this.parallelCacheField == YesNoType.yes)) + { + writer.WriteAttributeString("ParallelCache", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("DisableRollback" == name)) + { + this.disableRollbackField = Enums.ParseYesNoType(value); + this.disableRollbackFieldSet = true; + } + if (("DisableSystemRestore" == name)) + { + this.disableSystemRestoreField = Enums.ParseYesNoType(value); + this.disableSystemRestoreFieldSet = true; + } + if (("ParallelCache" == name)) + { + this.parallelCacheField = Enums.ParseYesNoType(value); + this.parallelCacheFieldSet = true; + } + } + } + + /// + /// Describes a single msi package to install. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MsiPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string downloadUrlField; + + private bool downloadUrlFieldSet; + + private string idField; + + private bool idFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private string installSizeField; + + private bool installSizeFieldSet; + + private string installConditionField; + + private bool installConditionFieldSet; + + private YesNoAlwaysType cacheField; + + private bool cacheFieldSet; + + private string cacheIdField; + + private bool cacheIdFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string logPathVariableField; + + private bool logPathVariableFieldSet; + + private string rollbackLogPathVariableField; + + private bool rollbackLogPathVariableFieldSet; + + private YesNoType permanentField; + + private bool permanentFieldSet; + + private YesNoType vitalField; + + private bool vitalFieldSet; + + private YesNoDefaultType compressedField; + + private bool compressedFieldSet; + + private YesNoType enableSignatureVerificationField; + + private bool enableSignatureVerificationFieldSet; + + private YesNoType displayInternalUIField; + + private bool displayInternalUIFieldSet; + + private YesNoType enableFeatureSelectionField; + + private bool enableFeatureSelectionFieldSet; + + private YesNoType forcePerMachineField; + + private bool forcePerMachineFieldSet; + + private YesNoType suppressLooseFilePayloadGenerationField; + + private bool suppressLooseFilePayloadGenerationFieldSet; + + private YesNoType visibleField; + + private bool visibleFieldSet; + + private ISchemaElement parentElement; + + public MsiPackage() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SlipstreamMsp))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. + /// At a minimum, the SourceFile or Name attribute must be specified. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// The destination path and file name for this chain payload. Use this attribute to rename the + /// chain entry point or extract it into a subfolder. The default value is the file name from the + /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. + /// The use of '..' directories is not allowed. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + public string DownloadUrl + { + get + { + return this.downloadUrlField; + } + set + { + this.downloadUrlFieldSet = true; + this.downloadUrlField = value; + } + } + + /// + /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute + /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The identifier of another package that this one should be installed after. By default the After + /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this + /// attribute is specified ensure that a cycle is not created explicitly or implicitly. + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// The size this package will take on disk in bytes after it is installed. By default, the binder will + /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) + /// and use the total for the install size of the package. + /// + public string InstallSize + { + get + { + return this.installSizeField; + } + set + { + this.installSizeFieldSet = true; + this.installSizeField = value; + } + } + + /// + /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. + /// + public string InstallCondition + { + get + { + return this.installConditionField; + } + set + { + this.installConditionFieldSet = true; + this.installConditionField = value; + } + } + + /// + /// Whether to cache the package. The default is "yes". + /// + public YesNoAlwaysType Cache + { + get + { + return this.cacheField; + } + set + { + this.cacheFieldSet = true; + this.cacheField = value; + } + } + + /// + /// The identifier to use when caching the package. + /// + public string CacheId + { + get + { + return this.cacheIdField; + } + set + { + this.cacheIdFieldSet = true; + this.cacheIdField = value; + } + } + + /// + /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use + /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the + /// bootstrapper application data manifest. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use + /// the Description patch metadata property. Other package types must use this attribute to define a description in the + /// bootstrapper application data manifest. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not + /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. + /// + public string LogPathVariable + { + get + { + return this.logPathVariableField; + } + set + { + this.logPathVariableFieldSet = true; + this.logPathVariableField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause + /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which + /// default to no logging. + /// + public string RollbackLogPathVariable + { + get + { + return this.rollbackLogPathVariableField; + } + set + { + this.rollbackLogPathVariableFieldSet = true; + this.rollbackLogPathVariableField = value; + } + } + + /// + /// Specifies whether the package can be uninstalled. The default is "no". + /// + public YesNoType Permanent + { + get + { + return this.permanentField; + } + set + { + this.permanentFieldSet = true; + this.permanentField = value; + } + } + + /// + /// Specifies whether the package must succeed for the chain to continue. The default "yes" + /// indicates that if the package fails then the chain will fail and rollback or stop. If + /// "no" is specified then the chain will continue even if the package reports failure. + /// + public YesNoType Vital + { + get + { + return this.vitalField; + } + set + { + this.vitalFieldSet = true; + this.vitalField = value; + } + } + + /// + /// Whether the package payload should be embedded in a container or left as an external payload. + /// + public YesNoDefaultType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" + /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the + /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. + /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". + /// + public YesNoType EnableSignatureVerification + { + get + { + return this.enableSignatureVerificationField; + } + set + { + this.enableSignatureVerificationFieldSet = true; + this.enableSignatureVerificationField = value; + } + } + + /// + /// Specifies whether the bundle will show the UI authored into the msi package. The default is "no" + /// which means all information is routed to the bootstrapper application to provide a unified installation + /// experience. If "yes" is specified the UI authored into the msi package will be displayed on top of + /// any bootstrapper application UI. + /// + public YesNoType DisplayInternalUI + { + get + { + return this.displayInternalUIField; + } + set + { + this.displayInternalUIFieldSet = true; + this.displayInternalUIField = value; + } + } + + /// + /// Specifies whether the bundle will allow individual control over the installation state of Features inside + /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and + /// uninstall behavior of the package is always correct. The default is "no". + /// + public YesNoType EnableFeatureSelection + { + get + { + return this.enableFeatureSelectionField; + } + set + { + this.enableFeatureSelectionFieldSet = true; + this.enableFeatureSelectionField = value; + } + } + + /// + /// Override the automatic per-machine detection of MSI packages and force the package to be per-machine. + /// The default is "no", which allows the tools to detect the expected value. + /// + public YesNoType ForcePerMachine + { + get + { + return this.forcePerMachineField; + } + set + { + this.forcePerMachineFieldSet = true; + this.forcePerMachineField = value; + } + } + + /// + /// This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package + /// to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads. + /// The resulting Bundle may not be able to install the MSI package correctly. The default is "no". + /// + public YesNoType SuppressLooseFilePayloadGeneration + { + get + { + return this.suppressLooseFilePayloadGenerationField; + } + set + { + this.suppressLooseFilePayloadGenerationFieldSet = true; + this.suppressLooseFilePayloadGenerationField = value; + } + } + + /// + /// Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is + /// specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI + /// will not be displayed. + /// + public YesNoType Visible + { + get + { + return this.visibleField; + } + set + { + this.visibleFieldSet = true; + this.visibleField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("MsiProperty" == childName)) + { + childValue = new MsiProperty(); + } + if (("SlipstreamMsp" == childName)) + { + childValue = new SlipstreamMsp(); + } + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MsiPackage", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.downloadUrlFieldSet) + { + writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.installSizeFieldSet) + { + writer.WriteAttributeString("InstallSize", this.installSizeField); + } + if (this.installConditionFieldSet) + { + writer.WriteAttributeString("InstallCondition", this.installConditionField); + } + if (this.cacheFieldSet) + { + if ((this.cacheField == YesNoAlwaysType.always)) + { + writer.WriteAttributeString("Cache", "always"); + } + if ((this.cacheField == YesNoAlwaysType.no)) + { + writer.WriteAttributeString("Cache", "no"); + } + if ((this.cacheField == YesNoAlwaysType.yes)) + { + writer.WriteAttributeString("Cache", "yes"); + } + } + if (this.cacheIdFieldSet) + { + writer.WriteAttributeString("CacheId", this.cacheIdField); + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.logPathVariableFieldSet) + { + writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); + } + if (this.rollbackLogPathVariableFieldSet) + { + writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); + } + if (this.permanentFieldSet) + { + if ((this.permanentField == YesNoType.no)) + { + writer.WriteAttributeString("Permanent", "no"); + } + if ((this.permanentField == YesNoType.yes)) + { + writer.WriteAttributeString("Permanent", "yes"); + } + } + if (this.vitalFieldSet) + { + if ((this.vitalField == YesNoType.no)) + { + writer.WriteAttributeString("Vital", "no"); + } + if ((this.vitalField == YesNoType.yes)) + { + writer.WriteAttributeString("Vital", "yes"); + } + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("Compressed", "default"); + } + if ((this.compressedField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.enableSignatureVerificationFieldSet) + { + if ((this.enableSignatureVerificationField == YesNoType.no)) + { + writer.WriteAttributeString("EnableSignatureVerification", "no"); + } + if ((this.enableSignatureVerificationField == YesNoType.yes)) + { + writer.WriteAttributeString("EnableSignatureVerification", "yes"); + } + } + if (this.displayInternalUIFieldSet) + { + if ((this.displayInternalUIField == YesNoType.no)) + { + writer.WriteAttributeString("DisplayInternalUI", "no"); + } + if ((this.displayInternalUIField == YesNoType.yes)) + { + writer.WriteAttributeString("DisplayInternalUI", "yes"); + } + } + if (this.enableFeatureSelectionFieldSet) + { + if ((this.enableFeatureSelectionField == YesNoType.no)) + { + writer.WriteAttributeString("EnableFeatureSelection", "no"); + } + if ((this.enableFeatureSelectionField == YesNoType.yes)) + { + writer.WriteAttributeString("EnableFeatureSelection", "yes"); + } + } + if (this.forcePerMachineFieldSet) + { + if ((this.forcePerMachineField == YesNoType.no)) + { + writer.WriteAttributeString("ForcePerMachine", "no"); + } + if ((this.forcePerMachineField == YesNoType.yes)) + { + writer.WriteAttributeString("ForcePerMachine", "yes"); + } + } + if (this.suppressLooseFilePayloadGenerationFieldSet) + { + if ((this.suppressLooseFilePayloadGenerationField == YesNoType.no)) + { + writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "no"); + } + if ((this.suppressLooseFilePayloadGenerationField == YesNoType.yes)) + { + writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "yes"); + } + } + if (this.visibleFieldSet) + { + if ((this.visibleField == YesNoType.no)) + { + writer.WriteAttributeString("Visible", "no"); + } + if ((this.visibleField == YesNoType.yes)) + { + writer.WriteAttributeString("Visible", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("DownloadUrl" == name)) + { + this.downloadUrlField = value; + this.downloadUrlFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("InstallSize" == name)) + { + this.installSizeField = value; + this.installSizeFieldSet = true; + } + if (("InstallCondition" == name)) + { + this.installConditionField = value; + this.installConditionFieldSet = true; + } + if (("Cache" == name)) + { + this.cacheField = Enums.ParseYesNoAlwaysType(value); + this.cacheFieldSet = true; + } + if (("CacheId" == name)) + { + this.cacheIdField = value; + this.cacheIdFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("LogPathVariable" == name)) + { + this.logPathVariableField = value; + this.logPathVariableFieldSet = true; + } + if (("RollbackLogPathVariable" == name)) + { + this.rollbackLogPathVariableField = value; + this.rollbackLogPathVariableFieldSet = true; + } + if (("Permanent" == name)) + { + this.permanentField = Enums.ParseYesNoType(value); + this.permanentFieldSet = true; + } + if (("Vital" == name)) + { + this.vitalField = Enums.ParseYesNoType(value); + this.vitalFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoDefaultType(value); + this.compressedFieldSet = true; + } + if (("EnableSignatureVerification" == name)) + { + this.enableSignatureVerificationField = Enums.ParseYesNoType(value); + this.enableSignatureVerificationFieldSet = true; + } + if (("DisplayInternalUI" == name)) + { + this.displayInternalUIField = Enums.ParseYesNoType(value); + this.displayInternalUIFieldSet = true; + } + if (("EnableFeatureSelection" == name)) + { + this.enableFeatureSelectionField = Enums.ParseYesNoType(value); + this.enableFeatureSelectionFieldSet = true; + } + if (("ForcePerMachine" == name)) + { + this.forcePerMachineField = Enums.ParseYesNoType(value); + this.forcePerMachineFieldSet = true; + } + if (("SuppressLooseFilePayloadGeneration" == name)) + { + this.suppressLooseFilePayloadGenerationField = Enums.ParseYesNoType(value); + this.suppressLooseFilePayloadGenerationFieldSet = true; + } + if (("Visible" == name)) + { + this.visibleField = Enums.ParseYesNoType(value); + this.visibleFieldSet = true; + } + } + } + + /// + /// Describes a single msp package to install. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MspPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string downloadUrlField; + + private bool downloadUrlFieldSet; + + private string idField; + + private bool idFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private string installSizeField; + + private bool installSizeFieldSet; + + private string installConditionField; + + private bool installConditionFieldSet; + + private YesNoAlwaysType cacheField; + + private bool cacheFieldSet; + + private string cacheIdField; + + private bool cacheIdFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string logPathVariableField; + + private bool logPathVariableFieldSet; + + private string rollbackLogPathVariableField; + + private bool rollbackLogPathVariableFieldSet; + + private YesNoType permanentField; + + private bool permanentFieldSet; + + private YesNoType vitalField; + + private bool vitalFieldSet; + + private YesNoDefaultType compressedField; + + private bool compressedFieldSet; + + private YesNoType enableSignatureVerificationField; + + private bool enableSignatureVerificationFieldSet; + + private YesNoType displayInternalUIField; + + private bool displayInternalUIFieldSet; + + private YesNoDefaultType perMachineField; + + private bool perMachineFieldSet; + + private YesNoType slipstreamField; + + private bool slipstreamFieldSet; + + private ISchemaElement parentElement; + + public MspPackage() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. + /// At a minimum, the SourceFile or Name attribute must be specified. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// The destination path and file name for this chain payload. Use this attribute to rename the + /// chain entry point or extract it into a subfolder. The default value is the file name from the + /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. + /// The use of '..' directories is not allowed. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + public string DownloadUrl + { + get + { + return this.downloadUrlField; + } + set + { + this.downloadUrlFieldSet = true; + this.downloadUrlField = value; + } + } + + /// + /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute + /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The identifier of another package that this one should be installed after. By default the After + /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this + /// attribute is specified ensure that a cycle is not created explicitly or implicitly. + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// The size this package will take on disk in bytes after it is installed. By default, the binder will + /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) + /// and use the total for the install size of the package. + /// + public string InstallSize + { + get + { + return this.installSizeField; + } + set + { + this.installSizeFieldSet = true; + this.installSizeField = value; + } + } + + /// + /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. + /// + public string InstallCondition + { + get + { + return this.installConditionField; + } + set + { + this.installConditionFieldSet = true; + this.installConditionField = value; + } + } + + /// + /// Whether to cache the package. The default is "yes". + /// + public YesNoAlwaysType Cache + { + get + { + return this.cacheField; + } + set + { + this.cacheFieldSet = true; + this.cacheField = value; + } + } + + /// + /// The identifier to use when caching the package. + /// + public string CacheId + { + get + { + return this.cacheIdField; + } + set + { + this.cacheIdFieldSet = true; + this.cacheIdField = value; + } + } + + /// + /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use + /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the + /// bootstrapper application data manifest. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use + /// the Description patch metadata property. Other package types must use this attribute to define a description in the + /// bootstrapper application data manifest. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not + /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. + /// + public string LogPathVariable + { + get + { + return this.logPathVariableField; + } + set + { + this.logPathVariableFieldSet = true; + this.logPathVariableField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause + /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which + /// default to no logging. + /// + public string RollbackLogPathVariable + { + get + { + return this.rollbackLogPathVariableField; + } + set + { + this.rollbackLogPathVariableFieldSet = true; + this.rollbackLogPathVariableField = value; + } + } + + /// + /// Specifies whether the package can be uninstalled. The default is "no". + /// + public YesNoType Permanent + { + get + { + return this.permanentField; + } + set + { + this.permanentFieldSet = true; + this.permanentField = value; + } + } + + /// + /// Specifies whether the package must succeed for the chain to continue. The default "yes" + /// indicates that if the package fails then the chain will fail and rollback or stop. If + /// "no" is specified then the chain will continue even if the package reports failure. + /// + public YesNoType Vital + { + get + { + return this.vitalField; + } + set + { + this.vitalFieldSet = true; + this.vitalField = value; + } + } + + /// + /// Whether the package payload should be embedded in a container or left as an external payload. + /// + public YesNoDefaultType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" + /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the + /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. + /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". + /// + public YesNoType EnableSignatureVerification + { + get + { + return this.enableSignatureVerificationField; + } + set + { + this.enableSignatureVerificationFieldSet = true; + this.enableSignatureVerificationField = value; + } + } + + /// + /// Specifies whether the bundle will show the UI authored into the msp package. The default is "no" + /// which means all information is routed to the bootstrapper application to provide a unified installation + /// experience. If "yes" is specified the UI authored into the msp package will be displayed on top of + /// any bootstrapper application UI. + /// + public YesNoType DisplayInternalUI + { + get + { + return this.displayInternalUIField; + } + set + { + this.displayInternalUIFieldSet = true; + this.displayInternalUIField = value; + } + } + + /// + /// Indicates the package must be executed elevated. The default is "no". + /// + public YesNoDefaultType PerMachine + { + get + { + return this.perMachineField; + } + set + { + this.perMachineFieldSet = true; + this.perMachineField = value; + } + } + + /// + /// Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no". + /// Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired. + /// + public YesNoType Slipstream + { + get + { + return this.slipstreamField; + } + set + { + this.slipstreamFieldSet = true; + this.slipstreamField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("MsiProperty" == childName)) + { + childValue = new MsiProperty(); + } + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MspPackage", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.downloadUrlFieldSet) + { + writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.installSizeFieldSet) + { + writer.WriteAttributeString("InstallSize", this.installSizeField); + } + if (this.installConditionFieldSet) + { + writer.WriteAttributeString("InstallCondition", this.installConditionField); + } + if (this.cacheFieldSet) + { + if ((this.cacheField == YesNoAlwaysType.always)) + { + writer.WriteAttributeString("Cache", "always"); + } + if ((this.cacheField == YesNoAlwaysType.no)) + { + writer.WriteAttributeString("Cache", "no"); + } + if ((this.cacheField == YesNoAlwaysType.yes)) + { + writer.WriteAttributeString("Cache", "yes"); + } + } + if (this.cacheIdFieldSet) + { + writer.WriteAttributeString("CacheId", this.cacheIdField); + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.logPathVariableFieldSet) + { + writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); + } + if (this.rollbackLogPathVariableFieldSet) + { + writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); + } + if (this.permanentFieldSet) + { + if ((this.permanentField == YesNoType.no)) + { + writer.WriteAttributeString("Permanent", "no"); + } + if ((this.permanentField == YesNoType.yes)) + { + writer.WriteAttributeString("Permanent", "yes"); + } + } + if (this.vitalFieldSet) + { + if ((this.vitalField == YesNoType.no)) + { + writer.WriteAttributeString("Vital", "no"); + } + if ((this.vitalField == YesNoType.yes)) + { + writer.WriteAttributeString("Vital", "yes"); + } + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("Compressed", "default"); + } + if ((this.compressedField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.enableSignatureVerificationFieldSet) + { + if ((this.enableSignatureVerificationField == YesNoType.no)) + { + writer.WriteAttributeString("EnableSignatureVerification", "no"); + } + if ((this.enableSignatureVerificationField == YesNoType.yes)) + { + writer.WriteAttributeString("EnableSignatureVerification", "yes"); + } + } + if (this.displayInternalUIFieldSet) + { + if ((this.displayInternalUIField == YesNoType.no)) + { + writer.WriteAttributeString("DisplayInternalUI", "no"); + } + if ((this.displayInternalUIField == YesNoType.yes)) + { + writer.WriteAttributeString("DisplayInternalUI", "yes"); + } + } + if (this.perMachineFieldSet) + { + if ((this.perMachineField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("PerMachine", "default"); + } + if ((this.perMachineField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("PerMachine", "no"); + } + if ((this.perMachineField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("PerMachine", "yes"); + } + } + if (this.slipstreamFieldSet) + { + if ((this.slipstreamField == YesNoType.no)) + { + writer.WriteAttributeString("Slipstream", "no"); + } + if ((this.slipstreamField == YesNoType.yes)) + { + writer.WriteAttributeString("Slipstream", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("DownloadUrl" == name)) + { + this.downloadUrlField = value; + this.downloadUrlFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("InstallSize" == name)) + { + this.installSizeField = value; + this.installSizeFieldSet = true; + } + if (("InstallCondition" == name)) + { + this.installConditionField = value; + this.installConditionFieldSet = true; + } + if (("Cache" == name)) + { + this.cacheField = Enums.ParseYesNoAlwaysType(value); + this.cacheFieldSet = true; + } + if (("CacheId" == name)) + { + this.cacheIdField = value; + this.cacheIdFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("LogPathVariable" == name)) + { + this.logPathVariableField = value; + this.logPathVariableFieldSet = true; + } + if (("RollbackLogPathVariable" == name)) + { + this.rollbackLogPathVariableField = value; + this.rollbackLogPathVariableFieldSet = true; + } + if (("Permanent" == name)) + { + this.permanentField = Enums.ParseYesNoType(value); + this.permanentFieldSet = true; + } + if (("Vital" == name)) + { + this.vitalField = Enums.ParseYesNoType(value); + this.vitalFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoDefaultType(value); + this.compressedFieldSet = true; + } + if (("EnableSignatureVerification" == name)) + { + this.enableSignatureVerificationField = Enums.ParseYesNoType(value); + this.enableSignatureVerificationFieldSet = true; + } + if (("DisplayInternalUI" == name)) + { + this.displayInternalUIField = Enums.ParseYesNoType(value); + this.displayInternalUIFieldSet = true; + } + if (("PerMachine" == name)) + { + this.perMachineField = Enums.ParseYesNoDefaultType(value); + this.perMachineFieldSet = true; + } + if (("Slipstream" == name)) + { + this.slipstreamField = Enums.ParseYesNoType(value); + this.slipstreamFieldSet = true; + } + } + } + + /// + /// Describes a single msu package to install. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MsuPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string downloadUrlField; + + private bool downloadUrlFieldSet; + + private string idField; + + private bool idFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private string installSizeField; + + private bool installSizeFieldSet; + + private string installConditionField; + + private bool installConditionFieldSet; + + private YesNoAlwaysType cacheField; + + private bool cacheFieldSet; + + private string cacheIdField; + + private bool cacheIdFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string logPathVariableField; + + private bool logPathVariableFieldSet; + + private string rollbackLogPathVariableField; + + private bool rollbackLogPathVariableFieldSet; + + private YesNoType permanentField; + + private bool permanentFieldSet; + + private YesNoType vitalField; + + private bool vitalFieldSet; + + private YesNoDefaultType compressedField; + + private bool compressedFieldSet; + + private YesNoType enableSignatureVerificationField; + + private bool enableSignatureVerificationFieldSet; + + private string detectConditionField; + + private bool detectConditionFieldSet; + + private string kBField; + + private bool kBFieldSet; + + private ISchemaElement parentElement; + + public MsuPackage() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. + /// At a minimum, the SourceFile or Name attribute must be specified. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// The destination path and file name for this chain payload. Use this attribute to rename the + /// chain entry point or extract it into a subfolder. The default value is the file name from the + /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. + /// The use of '..' directories is not allowed. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + public string DownloadUrl + { + get + { + return this.downloadUrlField; + } + set + { + this.downloadUrlFieldSet = true; + this.downloadUrlField = value; + } + } + + /// + /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute + /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The identifier of another package that this one should be installed after. By default the After + /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this + /// attribute is specified ensure that a cycle is not created explicitly or implicitly. + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// The size this package will take on disk in bytes after it is installed. By default, the binder will + /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) + /// and use the total for the install size of the package. + /// + public string InstallSize + { + get + { + return this.installSizeField; + } + set + { + this.installSizeFieldSet = true; + this.installSizeField = value; + } + } + + /// + /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. + /// + public string InstallCondition + { + get + { + return this.installConditionField; + } + set + { + this.installConditionFieldSet = true; + this.installConditionField = value; + } + } + + /// + /// Whether to cache the package. The default is "yes". + /// + public YesNoAlwaysType Cache + { + get + { + return this.cacheField; + } + set + { + this.cacheFieldSet = true; + this.cacheField = value; + } + } + + /// + /// The identifier to use when caching the package. + /// + public string CacheId + { + get + { + return this.cacheIdField; + } + set + { + this.cacheIdFieldSet = true; + this.cacheIdField = value; + } + } + + /// + /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use + /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the + /// bootstrapper application data manifest. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use + /// the Description patch metadata property. Other package types must use this attribute to define a description in the + /// bootstrapper application data manifest. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not + /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. + /// + public string LogPathVariable + { + get + { + return this.logPathVariableField; + } + set + { + this.logPathVariableFieldSet = true; + this.logPathVariableField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause + /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which + /// default to no logging. + /// + public string RollbackLogPathVariable + { + get + { + return this.rollbackLogPathVariableField; + } + set + { + this.rollbackLogPathVariableFieldSet = true; + this.rollbackLogPathVariableField = value; + } + } + + /// + /// Specifies whether the package can be uninstalled. The default is "no". + /// + public YesNoType Permanent + { + get + { + return this.permanentField; + } + set + { + this.permanentFieldSet = true; + this.permanentField = value; + } + } + + /// + /// Specifies whether the package must succeed for the chain to continue. The default "yes" + /// indicates that if the package fails then the chain will fail and rollback or stop. If + /// "no" is specified then the chain will continue even if the package reports failure. + /// + public YesNoType Vital + { + get + { + return this.vitalField; + } + set + { + this.vitalFieldSet = true; + this.vitalField = value; + } + } + + /// + /// Whether the package payload should be embedded in a container or left as an external payload. + /// + public YesNoDefaultType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" + /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the + /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. + /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". + /// + public YesNoType EnableSignatureVerification + { + get + { + return this.enableSignatureVerificationField; + } + set + { + this.enableSignatureVerificationFieldSet = true; + this.enableSignatureVerificationField = value; + } + } + + /// + /// A condition that determines if the package is present on the target system. This condition can use built-in + /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a + /// method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this + /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being + /// installed, Burn will install this package. + /// + public string DetectCondition + { + get + { + return this.detectConditionField; + } + set + { + this.detectConditionFieldSet = true; + this.detectConditionField = value; + } + } + + /// + /// The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to + /// be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute + /// is specified, the Permanent attribute will the control whether the package is uninstalled. + /// + public string KB + { + get + { + return this.kBField; + } + set + { + this.kBFieldSet = true; + this.kBField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if (("RemotePayload" == childName)) + { + childValue = new RemotePayload(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MsuPackage", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.downloadUrlFieldSet) + { + writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.installSizeFieldSet) + { + writer.WriteAttributeString("InstallSize", this.installSizeField); + } + if (this.installConditionFieldSet) + { + writer.WriteAttributeString("InstallCondition", this.installConditionField); + } + if (this.cacheFieldSet) + { + if ((this.cacheField == YesNoAlwaysType.always)) + { + writer.WriteAttributeString("Cache", "always"); + } + if ((this.cacheField == YesNoAlwaysType.no)) + { + writer.WriteAttributeString("Cache", "no"); + } + if ((this.cacheField == YesNoAlwaysType.yes)) + { + writer.WriteAttributeString("Cache", "yes"); + } + } + if (this.cacheIdFieldSet) + { + writer.WriteAttributeString("CacheId", this.cacheIdField); + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.logPathVariableFieldSet) + { + writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); + } + if (this.rollbackLogPathVariableFieldSet) + { + writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); + } + if (this.permanentFieldSet) + { + if ((this.permanentField == YesNoType.no)) + { + writer.WriteAttributeString("Permanent", "no"); + } + if ((this.permanentField == YesNoType.yes)) + { + writer.WriteAttributeString("Permanent", "yes"); + } + } + if (this.vitalFieldSet) + { + if ((this.vitalField == YesNoType.no)) + { + writer.WriteAttributeString("Vital", "no"); + } + if ((this.vitalField == YesNoType.yes)) + { + writer.WriteAttributeString("Vital", "yes"); + } + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("Compressed", "default"); + } + if ((this.compressedField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.enableSignatureVerificationFieldSet) + { + if ((this.enableSignatureVerificationField == YesNoType.no)) + { + writer.WriteAttributeString("EnableSignatureVerification", "no"); + } + if ((this.enableSignatureVerificationField == YesNoType.yes)) + { + writer.WriteAttributeString("EnableSignatureVerification", "yes"); + } + } + if (this.detectConditionFieldSet) + { + writer.WriteAttributeString("DetectCondition", this.detectConditionField); + } + if (this.kBFieldSet) + { + writer.WriteAttributeString("KB", this.kBField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("DownloadUrl" == name)) + { + this.downloadUrlField = value; + this.downloadUrlFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("InstallSize" == name)) + { + this.installSizeField = value; + this.installSizeFieldSet = true; + } + if (("InstallCondition" == name)) + { + this.installConditionField = value; + this.installConditionFieldSet = true; + } + if (("Cache" == name)) + { + this.cacheField = Enums.ParseYesNoAlwaysType(value); + this.cacheFieldSet = true; + } + if (("CacheId" == name)) + { + this.cacheIdField = value; + this.cacheIdFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("LogPathVariable" == name)) + { + this.logPathVariableField = value; + this.logPathVariableFieldSet = true; + } + if (("RollbackLogPathVariable" == name)) + { + this.rollbackLogPathVariableField = value; + this.rollbackLogPathVariableFieldSet = true; + } + if (("Permanent" == name)) + { + this.permanentField = Enums.ParseYesNoType(value); + this.permanentFieldSet = true; + } + if (("Vital" == name)) + { + this.vitalField = Enums.ParseYesNoType(value); + this.vitalFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoDefaultType(value); + this.compressedFieldSet = true; + } + if (("EnableSignatureVerification" == name)) + { + this.enableSignatureVerificationField = Enums.ParseYesNoType(value); + this.enableSignatureVerificationFieldSet = true; + } + if (("DetectCondition" == name)) + { + this.detectConditionField = value; + this.detectConditionFieldSet = true; + } + if (("KB" == name)) + { + this.kBField = value; + this.kBFieldSet = true; + } + } + } + + /// + /// Describes a single exe package to install. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ExePackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string downloadUrlField; + + private bool downloadUrlFieldSet; + + private string idField; + + private bool idFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private string installSizeField; + + private bool installSizeFieldSet; + + private string installConditionField; + + private bool installConditionFieldSet; + + private YesNoAlwaysType cacheField; + + private bool cacheFieldSet; + + private string cacheIdField; + + private bool cacheIdFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string logPathVariableField; + + private bool logPathVariableFieldSet; + + private string rollbackLogPathVariableField; + + private bool rollbackLogPathVariableFieldSet; + + private YesNoType permanentField; + + private bool permanentFieldSet; + + private YesNoType vitalField; + + private bool vitalFieldSet; + + private YesNoDefaultType compressedField; + + private bool compressedFieldSet; + + private YesNoType enableSignatureVerificationField; + + private bool enableSignatureVerificationFieldSet; + + private string detectConditionField; + + private bool detectConditionFieldSet; + + private string installCommandField; + + private bool installCommandFieldSet; + + private string repairCommandField; + + private bool repairCommandFieldSet; + + private string uninstallCommandField; + + private bool uninstallCommandFieldSet; + + private YesNoDefaultType perMachineField; + + private bool perMachineFieldSet; + + private BurnExeProtocolType protocolField; + + private bool protocolFieldSet; + + private ISchemaElement parentElement; + + public ExePackage() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExitCode))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CommandLine))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. + /// At a minimum, the SourceFile or Name attribute must be specified. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// The destination path and file name for this chain payload. Use this attribute to rename the + /// chain entry point or extract it into a subfolder. The default value is the file name from the + /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. + /// The use of '..' directories is not allowed. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + public string DownloadUrl + { + get + { + return this.downloadUrlField; + } + set + { + this.downloadUrlFieldSet = true; + this.downloadUrlField = value; + } + } + + /// + /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute + /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The identifier of another package that this one should be installed after. By default the After + /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this + /// attribute is specified ensure that a cycle is not created explicitly or implicitly. + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// The size this package will take on disk in bytes after it is installed. By default, the binder will + /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) + /// and use the total for the install size of the package. + /// + public string InstallSize + { + get + { + return this.installSizeField; + } + set + { + this.installSizeFieldSet = true; + this.installSizeField = value; + } + } + + /// + /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. + /// + public string InstallCondition + { + get + { + return this.installConditionField; + } + set + { + this.installConditionFieldSet = true; + this.installConditionField = value; + } + } + + /// + /// Whether to cache the package. The default is "yes". + /// + public YesNoAlwaysType Cache + { + get + { + return this.cacheField; + } + set + { + this.cacheFieldSet = true; + this.cacheField = value; + } + } + + /// + /// The identifier to use when caching the package. + /// + public string CacheId + { + get + { + return this.cacheIdField; + } + set + { + this.cacheIdFieldSet = true; + this.cacheIdField = value; + } + } + + /// + /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use + /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the + /// bootstrapper application data manifest. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages + /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use + /// the Description patch metadata property. Other package types must use this attribute to define a description in the + /// bootstrapper application data manifest. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not + /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. + /// + public string LogPathVariable + { + get + { + return this.logPathVariableField; + } + set + { + this.logPathVariableFieldSet = true; + this.logPathVariableField = value; + } + } + + /// + /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause + /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which + /// default to no logging. + /// + public string RollbackLogPathVariable + { + get + { + return this.rollbackLogPathVariableField; + } + set + { + this.rollbackLogPathVariableFieldSet = true; + this.rollbackLogPathVariableField = value; + } + } + + /// + /// Specifies whether the package can be uninstalled. The default is "no". + /// + public YesNoType Permanent + { + get + { + return this.permanentField; + } + set + { + this.permanentFieldSet = true; + this.permanentField = value; + } + } + + /// + /// Specifies whether the package must succeed for the chain to continue. The default "yes" + /// indicates that if the package fails then the chain will fail and rollback or stop. If + /// "no" is specified then the chain will continue even if the package reports failure. + /// + public YesNoType Vital + { + get + { + return this.vitalField; + } + set + { + this.vitalFieldSet = true; + this.vitalField = value; + } + } + + /// + /// Whether the package payload should be embedded in a container or left as an external payload. + /// + public YesNoDefaultType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" + /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the + /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. + /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". + /// + public YesNoType EnableSignatureVerification + { + get + { + return this.enableSignatureVerificationField; + } + set + { + this.enableSignatureVerificationFieldSet = true; + this.enableSignatureVerificationField = value; + } + } + + /// + /// A condition that determines if the package is present on the target system. This condition can use built-in + /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a + /// method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this + /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being + /// installed, Burn will install this package. + /// + public string DetectCondition + { + get + { + return this.detectConditionField; + } + set + { + this.detectConditionFieldSet = true; + this.detectConditionField = value; + } + } + + /// + /// The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments. + /// + public string InstallCommand + { + get + { + return this.installCommandField; + } + set + { + this.installCommandFieldSet = true; + this.installCommandField = value; + } + } + + /// + /// The command-line arguments to specify to indicate a repair. If the executable package can be repaired but + /// does not require any special command-line arguments to do so then set the attribute's value to blank. To + /// indicate that the package does not support repair, omit this attribute. + /// + public string RepairCommand + { + get + { + return this.repairCommandField; + } + set + { + this.repairCommandFieldSet = true; + this.repairCommandField = value; + } + } + + /// + /// The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes". + /// + public string UninstallCommand + { + get + { + return this.uninstallCommandField; + } + set + { + this.uninstallCommandFieldSet = true; + this.uninstallCommandField = value; + } + } + + /// + /// Indicates the package must be executed elevated. The default is "no". + /// + public YesNoDefaultType PerMachine + { + get + { + return this.perMachineField; + } + set + { + this.perMachineFieldSet = true; + this.perMachineField = value; + } + } + + /// + /// Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none". + /// + public BurnExeProtocolType Protocol + { + get + { + return this.protocolField; + } + set + { + this.protocolFieldSet = true; + this.protocolField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if (("RemotePayload" == childName)) + { + childValue = new RemotePayload(); + } + if (("ExitCode" == childName)) + { + childValue = new ExitCode(); + } + if (("CommandLine" == childName)) + { + childValue = new CommandLine(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ExePackage", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.downloadUrlFieldSet) + { + writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.installSizeFieldSet) + { + writer.WriteAttributeString("InstallSize", this.installSizeField); + } + if (this.installConditionFieldSet) + { + writer.WriteAttributeString("InstallCondition", this.installConditionField); + } + if (this.cacheFieldSet) + { + if ((this.cacheField == YesNoAlwaysType.always)) + { + writer.WriteAttributeString("Cache", "always"); + } + if ((this.cacheField == YesNoAlwaysType.no)) + { + writer.WriteAttributeString("Cache", "no"); + } + if ((this.cacheField == YesNoAlwaysType.yes)) + { + writer.WriteAttributeString("Cache", "yes"); + } + } + if (this.cacheIdFieldSet) + { + writer.WriteAttributeString("CacheId", this.cacheIdField); + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.logPathVariableFieldSet) + { + writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); + } + if (this.rollbackLogPathVariableFieldSet) + { + writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); + } + if (this.permanentFieldSet) + { + if ((this.permanentField == YesNoType.no)) + { + writer.WriteAttributeString("Permanent", "no"); + } + if ((this.permanentField == YesNoType.yes)) + { + writer.WriteAttributeString("Permanent", "yes"); + } + } + if (this.vitalFieldSet) + { + if ((this.vitalField == YesNoType.no)) + { + writer.WriteAttributeString("Vital", "no"); + } + if ((this.vitalField == YesNoType.yes)) + { + writer.WriteAttributeString("Vital", "yes"); + } + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("Compressed", "default"); + } + if ((this.compressedField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.enableSignatureVerificationFieldSet) + { + if ((this.enableSignatureVerificationField == YesNoType.no)) + { + writer.WriteAttributeString("EnableSignatureVerification", "no"); + } + if ((this.enableSignatureVerificationField == YesNoType.yes)) + { + writer.WriteAttributeString("EnableSignatureVerification", "yes"); + } + } + if (this.detectConditionFieldSet) + { + writer.WriteAttributeString("DetectCondition", this.detectConditionField); + } + if (this.installCommandFieldSet) + { + writer.WriteAttributeString("InstallCommand", this.installCommandField); + } + if (this.repairCommandFieldSet) + { + writer.WriteAttributeString("RepairCommand", this.repairCommandField); + } + if (this.uninstallCommandFieldSet) + { + writer.WriteAttributeString("UninstallCommand", this.uninstallCommandField); + } + if (this.perMachineFieldSet) + { + if ((this.perMachineField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("PerMachine", "default"); + } + if ((this.perMachineField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("PerMachine", "no"); + } + if ((this.perMachineField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("PerMachine", "yes"); + } + } + if (this.protocolFieldSet) + { + if ((this.protocolField == BurnExeProtocolType.none)) + { + writer.WriteAttributeString("Protocol", "none"); + } + if ((this.protocolField == BurnExeProtocolType.burn)) + { + writer.WriteAttributeString("Protocol", "burn"); + } + if ((this.protocolField == BurnExeProtocolType.netfx4)) + { + writer.WriteAttributeString("Protocol", "netfx4"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("DownloadUrl" == name)) + { + this.downloadUrlField = value; + this.downloadUrlFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("InstallSize" == name)) + { + this.installSizeField = value; + this.installSizeFieldSet = true; + } + if (("InstallCondition" == name)) + { + this.installConditionField = value; + this.installConditionFieldSet = true; + } + if (("Cache" == name)) + { + this.cacheField = Enums.ParseYesNoAlwaysType(value); + this.cacheFieldSet = true; + } + if (("CacheId" == name)) + { + this.cacheIdField = value; + this.cacheIdFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("LogPathVariable" == name)) + { + this.logPathVariableField = value; + this.logPathVariableFieldSet = true; + } + if (("RollbackLogPathVariable" == name)) + { + this.rollbackLogPathVariableField = value; + this.rollbackLogPathVariableFieldSet = true; + } + if (("Permanent" == name)) + { + this.permanentField = Enums.ParseYesNoType(value); + this.permanentFieldSet = true; + } + if (("Vital" == name)) + { + this.vitalField = Enums.ParseYesNoType(value); + this.vitalFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoDefaultType(value); + this.compressedFieldSet = true; + } + if (("EnableSignatureVerification" == name)) + { + this.enableSignatureVerificationField = Enums.ParseYesNoType(value); + this.enableSignatureVerificationFieldSet = true; + } + if (("DetectCondition" == name)) + { + this.detectConditionField = value; + this.detectConditionFieldSet = true; + } + if (("InstallCommand" == name)) + { + this.installCommandField = value; + this.installCommandFieldSet = true; + } + if (("RepairCommand" == name)) + { + this.repairCommandField = value; + this.repairCommandFieldSet = true; + } + if (("UninstallCommand" == name)) + { + this.uninstallCommandField = value; + this.uninstallCommandFieldSet = true; + } + if (("PerMachine" == name)) + { + this.perMachineField = Enums.ParseYesNoDefaultType(value); + this.perMachineFieldSet = true; + } + if (("Protocol" == name)) + { + this.protocolField = Enums.ParseBurnExeProtocolType(value); + this.protocolFieldSet = true; + } + } + } + + /// + /// Describes a rollback boundary in the chain. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RollbackBoundary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private YesNoType vitalField; + + private bool vitalFieldSet; + + private YesNoType transactionField; + + private bool transactionFieldSet; + + private ISchemaElement parentElement; + + public RollbackBoundary() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is + /// not provided a stable identifier will be generated. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if + /// the rollback boundary is encountered then the chain will fail and rollback or stop. If "no" + /// is specified then the chain should continue successfuly at the next rollback boundary. + /// + public YesNoType Vital + { + get + { + return this.vitalField; + } + set + { + this.vitalFieldSet = true; + this.vitalField = value; + } + } + + /// + /// Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no" + /// + public YesNoType Transaction + { + get + { + return this.transactionField; + } + set + { + this.transactionFieldSet = true; + this.transactionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RollbackBoundary", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.vitalFieldSet) + { + if ((this.vitalField == YesNoType.no)) + { + writer.WriteAttributeString("Vital", "no"); + } + if ((this.vitalField == YesNoType.yes)) + { + writer.WriteAttributeString("Vital", "yes"); + } + } + if (this.transactionFieldSet) + { + if ((this.transactionField == YesNoType.no)) + { + writer.WriteAttributeString("Transaction", "no"); + } + if ((this.transactionField == YesNoType.yes)) + { + writer.WriteAttributeString("Transaction", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Vital" == name)) + { + this.vitalField = Enums.ParseYesNoType(value); + this.vitalFieldSet = true; + } + if (("Transaction" == name)) + { + this.transactionField = Enums.ParseYesNoType(value); + this.transactionFieldSet = true; + } + } + } + + /// + /// Describes a package group to a bootstrapper. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PackageGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public PackageGroup() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for package group. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("MsiPackage" == childName)) + { + childValue = new MsiPackage(); + } + if (("MspPackage" == childName)) + { + childValue = new MspPackage(); + } + if (("MsuPackage" == childName)) + { + childValue = new MsuPackage(); + } + if (("ExePackage" == childName)) + { + childValue = new ExePackage(); + } + if (("RollbackBoundary" == childName)) + { + childValue = new RollbackBoundary(); + } + if (("PackageGroupRef" == childName)) + { + childValue = new PackageGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PackageGroup", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Create a reference to PackageGroup element that exists inside a Bundle or Fragment element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PackageGroupRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the PackageGroup element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The identifier of a package that this group should be installed after. + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PackageGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + } + } + + /// + /// Allows an MSI property to be set based on the value of a burn engine expression. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MsiProperty : ISchemaElement, ISetAttributes + { + + private string nameField; + + private bool nameFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The value to set the property to. This string is evaluated by the burn engine and can be as simple as a burn engine variable reference or as complex as a full expression. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MsiProperty", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Specifies a patch included in the same bundle that is installed when the parent MSI package is installed. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SlipstreamMsp : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier for a MspPackage in the bundle. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SlipstreamMsp", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Describes a burn engine variable to define. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Variable : ISchemaElement, ISetAttributes + { + + private YesNoType hiddenField; + + private bool hiddenFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private YesNoType persistedField; + + private bool persistedFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private ISchemaElement parentElement; + + /// + /// Whether the value of the variable should be hidden. + /// + public YesNoType Hidden + { + get + { + return this.hiddenField; + } + set + { + this.hiddenFieldSet = true; + this.hiddenField = value; + } + } + + /// + /// The name for the variable. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Whether the variable should be persisted. + /// + public YesNoType Persisted + { + get + { + return this.persistedField; + } + set + { + this.persistedFieldSet = true; + this.persistedField = value; + } + } + + /// + /// Starting value for the variable. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// Type of the variable, inferred from the value if not specified. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + Variable.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("string" == value)) + { + parsedValue = TypeType.@string; + } + else + { + if (("numeric" == value)) + { + parsedValue = TypeType.numeric; + } + else + { + if (("version" == value)) + { + parsedValue = TypeType.version; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Variable", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.hiddenFieldSet) + { + if ((this.hiddenField == YesNoType.no)) + { + writer.WriteAttributeString("Hidden", "no"); + } + if ((this.hiddenField == YesNoType.yes)) + { + writer.WriteAttributeString("Hidden", "yes"); + } + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.persistedFieldSet) + { + if ((this.persistedField == YesNoType.no)) + { + writer.WriteAttributeString("Persisted", "no"); + } + if ((this.persistedField == YesNoType.yes)) + { + writer.WriteAttributeString("Persisted", "yes"); + } + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.@string)) + { + writer.WriteAttributeString("Type", "string"); + } + if ((this.typeField == TypeType.numeric)) + { + writer.WriteAttributeString("Type", "numeric"); + } + if ((this.typeField == TypeType.version)) + { + writer.WriteAttributeString("Type", "version"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Hidden" == name)) + { + this.hiddenField = Enums.ParseYesNoType(value); + this.hiddenFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Persisted" == name)) + { + this.persistedField = Enums.ParseYesNoType(value); + this.persistedFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = Variable.ParseTypeType(value); + this.typeFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + @string, + + numeric, + + version, + } + } + + /// + /// Representation of a file that contains one or more files. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Container : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string downloadUrlField; + + private bool downloadUrlFieldSet; + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private BurnContainerType typeField; + + private bool typeFieldSet; + + private ISchemaElement parentElement; + + public Container() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public string DownloadUrl + { + get + { + return this.downloadUrlField; + } + set + { + this.downloadUrlFieldSet = true; + this.downloadUrlField = value; + } + } + + /// + /// The unique identifier for the container. If this attribute is not specified the Name attribute will be used. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If + /// this attribute is not specified, the default is to create a detached container. + /// + public BurnContainerType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("PackageGroupRef" == childName)) + { + childValue = new PackageGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Container", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.downloadUrlFieldSet) + { + writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.typeFieldSet) + { + if ((this.typeField == BurnContainerType.attached)) + { + writer.WriteAttributeString("Type", "attached"); + } + if ((this.typeField == BurnContainerType.detached)) + { + writer.WriteAttributeString("Type", "detached"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("DownloadUrl" == name)) + { + this.downloadUrlField = value; + this.downloadUrlFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = Enums.ParseBurnContainerType(value); + this.typeFieldSet = true; + } + } + } + + /// + /// Create a reference to an existing Container element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ContainerRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of Container element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ContainerRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Describes map of exit code returned from executable package to a bootstrapper behavior. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ExitCode : ISchemaElement, ISetAttributes + { + + private int valueField; + + private bool valueFieldSet; + + private BehaviorType behaviorField; + + private bool behaviorFieldSet; + + private ISchemaElement parentElement; + + /// + /// Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior. + /// + public int Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot. + /// + public BehaviorType Behavior + { + get + { + return this.behaviorField; + } + set + { + this.behaviorFieldSet = true; + this.behaviorField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a BehaviorType from a string. + /// + public static BehaviorType ParseBehaviorType(string value) + { + BehaviorType parsedValue; + ExitCode.TryParseBehaviorType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a BehaviorType from a string. + /// + public static bool TryParseBehaviorType(string value, out BehaviorType parsedValue) + { + parsedValue = BehaviorType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("success" == value)) + { + parsedValue = BehaviorType.success; + } + else + { + if (("error" == value)) + { + parsedValue = BehaviorType.error; + } + else + { + if (("scheduleReboot" == value)) + { + parsedValue = BehaviorType.scheduleReboot; + } + else + { + if (("forceReboot" == value)) + { + parsedValue = BehaviorType.forceReboot; + } + else + { + parsedValue = BehaviorType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ExitCode", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField.ToString(CultureInfo.InvariantCulture)); + } + if (this.behaviorFieldSet) + { + if ((this.behaviorField == BehaviorType.success)) + { + writer.WriteAttributeString("Behavior", "success"); + } + if ((this.behaviorField == BehaviorType.error)) + { + writer.WriteAttributeString("Behavior", "error"); + } + if ((this.behaviorField == BehaviorType.scheduleReboot)) + { + writer.WriteAttributeString("Behavior", "scheduleReboot"); + } + if ((this.behaviorField == BehaviorType.forceReboot)) + { + writer.WriteAttributeString("Behavior", "forceReboot"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Value" == name)) + { + this.valueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.valueFieldSet = true; + } + if (("Behavior" == name)) + { + this.behaviorField = ExitCode.ParseBehaviorType(value); + this.behaviorFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum BehaviorType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + success, + + error, + + scheduleReboot, + + forceReboot, + } + } + + /// + /// Describes additional, conditional command-line arguments for an ExePackage. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CommandLine : ISchemaElement, ISetAttributes + { + + private string installArgumentField; + + private bool installArgumentFieldSet; + + private string uninstallArgumentField; + + private bool uninstallArgumentFieldSet; + + private string repairArgumentField; + + private bool repairArgumentFieldSet; + + private string conditionField; + + private bool conditionFieldSet; + + private ISchemaElement parentElement; + + /// + /// Additional command-line arguments to apply during package installation if Condition is true. + /// + public string InstallArgument + { + get + { + return this.installArgumentField; + } + set + { + this.installArgumentFieldSet = true; + this.installArgumentField = value; + } + } + + /// + /// Additional command-line arguments to apply during package uninstallation if Condition is true. + /// + public string UninstallArgument + { + get + { + return this.uninstallArgumentField; + } + set + { + this.uninstallArgumentFieldSet = true; + this.uninstallArgumentField = value; + } + } + + /// + /// Additional command-line arguments to apply during package repair if Condition is true. + /// + public string RepairArgument + { + get + { + return this.repairArgumentField; + } + set + { + this.repairArgumentFieldSet = true; + this.repairArgumentField = value; + } + } + + /// + /// The condition that controls whether the command-line arguments specified in the + /// InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the + /// command line passed to the ExePackage. Which attribute is used depends on the + /// action being applied to the ExePackage. For example, when the ExePackage is + /// being installed, the InstallArgument attribute value is appended to the command + /// line when the ExePackage is executed. + /// + public string Condition + { + get + { + return this.conditionField; + } + set + { + this.conditionFieldSet = true; + this.conditionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CommandLine", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.installArgumentFieldSet) + { + writer.WriteAttributeString("InstallArgument", this.installArgumentField); + } + if (this.uninstallArgumentFieldSet) + { + writer.WriteAttributeString("UninstallArgument", this.uninstallArgumentField); + } + if (this.repairArgumentFieldSet) + { + writer.WriteAttributeString("RepairArgument", this.repairArgumentField); + } + if (this.conditionFieldSet) + { + writer.WriteAttributeString("Condition", this.conditionField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("InstallArgument" == name)) + { + this.installArgumentField = value; + this.installArgumentFieldSet = true; + } + if (("UninstallArgument" == name)) + { + this.uninstallArgumentField = value; + this.uninstallArgumentFieldSet = true; + } + if (("RepairArgument" == name)) + { + this.repairArgumentField = value; + this.repairArgumentFieldSet = true; + } + if (("Condition" == name)) + { + this.conditionField = value; + this.conditionFieldSet = true; + } + } + } + + /// + /// Describes a payload to a bootstrapper. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Payload : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoDefaultType compressedField; + + private bool compressedFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string downloadUrlField; + + private bool downloadUrlFieldSet; + + private YesNoType enableSignatureVerificationField; + + private bool enableSignatureVerificationFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of Payload element. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Whether the payload should be embedded in a container or left as an external payload. + /// + public YesNoDefaultType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// Location of the source file. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + public string DownloadUrl + { + get + { + return this.downloadUrlField; + } + set + { + this.downloadUrlFieldSet = true; + this.downloadUrlField = value; + } + } + + /// + /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" + /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the + /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. + /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". + /// + public YesNoType EnableSignatureVerification + { + get + { + return this.enableSignatureVerificationField; + } + set + { + this.enableSignatureVerificationFieldSet = true; + this.enableSignatureVerificationField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Payload", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("Compressed", "default"); + } + if ((this.compressedField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.downloadUrlFieldSet) + { + writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); + } + if (this.enableSignatureVerificationFieldSet) + { + if ((this.enableSignatureVerificationField == YesNoType.no)) + { + writer.WriteAttributeString("EnableSignatureVerification", "no"); + } + if ((this.enableSignatureVerificationField == YesNoType.yes)) + { + writer.WriteAttributeString("EnableSignatureVerification", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoDefaultType(value); + this.compressedFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("DownloadUrl" == name)) + { + this.downloadUrlField = value; + this.downloadUrlFieldSet = true; + } + if (("EnableSignatureVerification" == name)) + { + this.enableSignatureVerificationField = Enums.ParseYesNoType(value); + this.enableSignatureVerificationFieldSet = true; + } + } + } + + /// + /// Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle. + /// PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage. + /// It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PayloadGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public PayloadGroup() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for payload group. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Payload" == childName)) + { + childValue = new Payload(); + } + if (("PayloadGroupRef" == childName)) + { + childValue = new PayloadGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PayloadGroup", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PayloadGroupRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the PayloadGroup element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PayloadGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Describes information about a remote file payload that is not available at the time of building the bundle. + /// The parent must specify DownloadUrl and must not specify SourceFile when using this element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemotePayload : ISchemaElement, ISetAttributes + { + + private string certificatePublicKeyField; + + private bool certificatePublicKeyFieldSet; + + private string certificateThumbprintField; + + private bool certificateThumbprintFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string hashField; + + private bool hashFieldSet; + + private string productNameField; + + private bool productNameFieldSet; + + private int sizeField; + + private bool sizeFieldSet; + + private string versionField; + + private bool versionFieldSet; + + private ISchemaElement parentElement; + + /// + /// Public key of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. + /// + public string CertificatePublicKey + { + get + { + return this.certificatePublicKeyField; + } + set + { + this.certificatePublicKeyFieldSet = true; + this.certificatePublicKeyField = value; + } + } + + /// + /// Thumbprint of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. + /// + public string CertificateThumbprint + { + get + { + return this.certificateThumbprintField; + } + set + { + this.certificateThumbprintFieldSet = true; + this.certificateThumbprintField = value; + } + } + + /// + /// Description of the file from version resources. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes. + /// + public string Hash + { + get + { + return this.hashField; + } + set + { + this.hashFieldSet = true; + this.hashField = value; + } + } + + /// + /// Product name of the file from version resouces. + /// + public string ProductName + { + get + { + return this.productNameField; + } + set + { + this.productNameFieldSet = true; + this.productNameField = value; + } + } + + /// + /// Size of the remote file in bytes. + /// + public int Size + { + get + { + return this.sizeField; + } + set + { + this.sizeFieldSet = true; + this.sizeField = value; + } + } + + /// + /// Version of the remote file + /// + public string Version + { + get + { + return this.versionField; + } + set + { + this.versionFieldSet = true; + this.versionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemotePayload", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.certificatePublicKeyFieldSet) + { + writer.WriteAttributeString("CertificatePublicKey", this.certificatePublicKeyField); + } + if (this.certificateThumbprintFieldSet) + { + writer.WriteAttributeString("CertificateThumbprint", this.certificateThumbprintField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.hashFieldSet) + { + writer.WriteAttributeString("Hash", this.hashField); + } + if (this.productNameFieldSet) + { + writer.WriteAttributeString("ProductName", this.productNameField); + } + if (this.sizeFieldSet) + { + writer.WriteAttributeString("Size", this.sizeField.ToString(CultureInfo.InvariantCulture)); + } + if (this.versionFieldSet) + { + writer.WriteAttributeString("Version", this.versionField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("CertificatePublicKey" == name)) + { + this.certificatePublicKeyField = value; + this.certificatePublicKeyFieldSet = true; + } + if (("CertificateThumbprint" == name)) + { + this.certificateThumbprintField = value; + this.certificateThumbprintFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("Hash" == name)) + { + this.hashField = value; + this.hashFieldSet = true; + } + if (("ProductName" == name)) + { + this.productNameField = value; + this.productNameFieldSet = true; + } + if (("Size" == name)) + { + this.sizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.sizeFieldSet = true; + } + if (("Version" == name)) + { + this.versionField = value; + this.versionFieldSet = true; + } + } + } + + /// + /// Create a RelatedBundle element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RelatedBundle : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ActionType actionField; + + private bool actionFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the RelatedBundle group. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The action to take on bundles related to this one. Detect is the default. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + RelatedBundle.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("Detect" == value)) + { + parsedValue = ActionType.Detect; + } + else + { + if (("Upgrade" == value)) + { + parsedValue = ActionType.Upgrade; + } + else + { + if (("Addon" == value)) + { + parsedValue = ActionType.Addon; + } + else + { + if (("Patch" == value)) + { + parsedValue = ActionType.Patch; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RelatedBundle", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.Detect)) + { + writer.WriteAttributeString("Action", "Detect"); + } + if ((this.actionField == ActionType.Upgrade)) + { + writer.WriteAttributeString("Action", "Upgrade"); + } + if ((this.actionField == ActionType.Addon)) + { + writer.WriteAttributeString("Action", "Addon"); + } + if ((this.actionField == ActionType.Patch)) + { + writer.WriteAttributeString("Action", "Patch"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Action" == name)) + { + this.actionField = RelatedBundle.ParseActionType(value); + this.actionFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + Detect, + + Upgrade, + + Addon, + + Patch, + } + } + + /// + /// Defines the update for a Bundle. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Update : ISchemaElement, ISetAttributes + { + + private string locationField; + + private bool locationFieldSet; + + private ISchemaElement parentElement; + + /// + /// The absolute path or URL to check for an update bundle. Currently the engine provides this value + /// in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the + /// future the engine will be able to acquire an update bundle from the location and determine if it + /// is newer than the current executing bundle. + /// + public string Location + { + get + { + return this.locationField; + } + set + { + this.locationFieldSet = true; + this.locationField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Update", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.locationFieldSet) + { + writer.WriteAttributeString("Location", this.locationField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Location" == name)) + { + this.locationField = value; + this.locationFieldSet = true; + } + } + } + + /// + /// The Product element is analogous to the main function in a C program. When linking, only one Product section + /// can be given to the linker to produce a successful result. Using this element creates an msi file. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Product : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string codepageField; + + private bool codepageFieldSet; + + private string languageField; + + private bool languageFieldSet; + + private string manufacturerField; + + private bool manufacturerFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string upgradeCodeField; + + private bool upgradeCodeFieldSet; + + private string versionField; + + private bool versionFieldSet; + + private ISchemaElement parentElement; + + public Product() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(InstanceTransforms))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MajorUpgrade))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); + ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); + childCollection1.AddCollection(childCollection2); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The product code GUID for the product. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The code page integer value or web name for the resulting MSI. See remarks for more information. + /// + public string Codepage + { + get + { + return this.codepageField; + } + set + { + this.codepageFieldSet = true; + this.codepageField = value; + } + } + + /// + /// The decimal language ID (LCID) for the product. + /// + public string Language + { + get + { + return this.languageField; + } + set + { + this.languageFieldSet = true; + this.languageField = value; + } + } + + /// + /// The manufacturer of the product. + /// + public string Manufacturer + { + get + { + return this.manufacturerField; + } + set + { + this.manufacturerFieldSet = true; + this.manufacturerField = value; + } + } + + /// + /// The descriptive name of the product. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The upgrade code GUID for the product. + /// + public string UpgradeCode + { + get + { + return this.upgradeCodeField; + } + set + { + this.upgradeCodeFieldSet = true; + this.upgradeCodeField = value; + } + } + + /// + /// The product's version string. + /// + public string Version + { + get + { + return this.versionField; + } + set + { + this.versionFieldSet = true; + this.versionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Package" == childName)) + { + childValue = new Package(); + } + if (("AppId" == childName)) + { + childValue = new AppId(); + } + if (("Binary" == childName)) + { + childValue = new Binary(); + } + if (("ComplianceCheck" == childName)) + { + childValue = new ComplianceCheck(); + } + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("ComponentGroup" == childName)) + { + childValue = new ComponentGroup(); + } + if (("Condition" == childName)) + { + childValue = new Condition(); + } + if (("CustomAction" == childName)) + { + childValue = new CustomAction(); + } + if (("CustomActionRef" == childName)) + { + childValue = new CustomActionRef(); + } + if (("CustomTable" == childName)) + { + childValue = new CustomTable(); + } + if (("Directory" == childName)) + { + childValue = new Directory(); + } + if (("DirectoryRef" == childName)) + { + childValue = new DirectoryRef(); + } + if (("EmbeddedChainer" == childName)) + { + childValue = new EmbeddedChainer(); + } + if (("EmbeddedChainerRef" == childName)) + { + childValue = new EmbeddedChainerRef(); + } + if (("EnsureTable" == childName)) + { + childValue = new EnsureTable(); + } + if (("Feature" == childName)) + { + childValue = new Feature(); + } + if (("FeatureRef" == childName)) + { + childValue = new FeatureRef(); + } + if (("FeatureGroupRef" == childName)) + { + childValue = new FeatureGroupRef(); + } + if (("Icon" == childName)) + { + childValue = new Icon(); + } + if (("InstanceTransforms" == childName)) + { + childValue = new InstanceTransforms(); + } + if (("MajorUpgrade" == childName)) + { + childValue = new MajorUpgrade(); + } + if (("Media" == childName)) + { + childValue = new Media(); + } + if (("MediaTemplate" == childName)) + { + childValue = new MediaTemplate(); + } + if (("PackageCertificates" == childName)) + { + childValue = new PackageCertificates(); + } + if (("PatchCertificates" == childName)) + { + childValue = new PatchCertificates(); + } + if (("Property" == childName)) + { + childValue = new Property(); + } + if (("PropertyRef" == childName)) + { + childValue = new PropertyRef(); + } + if (("SetDirectory" == childName)) + { + childValue = new SetDirectory(); + } + if (("SetProperty" == childName)) + { + childValue = new SetProperty(); + } + if (("SFPCatalog" == childName)) + { + childValue = new SFPCatalog(); + } + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if (("UI" == childName)) + { + childValue = new UI(); + } + if (("UIRef" == childName)) + { + childValue = new UIRef(); + } + if (("Upgrade" == childName)) + { + childValue = new Upgrade(); + } + if (("WixVariable" == childName)) + { + childValue = new WixVariable(); + } + if (("InstallExecuteSequence" == childName)) + { + childValue = new InstallExecuteSequence(); + } + if (("InstallUISequence" == childName)) + { + childValue = new InstallUISequence(); + } + if (("AdminExecuteSequence" == childName)) + { + childValue = new AdminExecuteSequence(); + } + if (("AdminUISequence" == childName)) + { + childValue = new AdminUISequence(); + } + if (("AdvertiseExecuteSequence" == childName)) + { + childValue = new AdvertiseExecuteSequence(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Product", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.codepageFieldSet) + { + writer.WriteAttributeString("Codepage", this.codepageField); + } + if (this.languageFieldSet) + { + writer.WriteAttributeString("Language", this.languageField); + } + if (this.manufacturerFieldSet) + { + writer.WriteAttributeString("Manufacturer", this.manufacturerField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.upgradeCodeFieldSet) + { + writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); + } + if (this.versionFieldSet) + { + writer.WriteAttributeString("Version", this.versionField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Codepage" == name)) + { + this.codepageField = value; + this.codepageFieldSet = true; + } + if (("Language" == name)) + { + this.languageField = value; + this.languageFieldSet = true; + } + if (("Manufacturer" == name)) + { + this.manufacturerField = value; + this.manufacturerFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("UpgradeCode" == name)) + { + this.upgradeCodeField = value; + this.upgradeCodeFieldSet = true; + } + if (("Version" == name)) + { + this.versionField = value; + this.versionFieldSet = true; + } + } + } + + /// + /// The Module element is analogous to the main function in a C program. When linking, only + /// one Module section can be given to the linker to produce a successful result. Using this + /// element creates an msm file. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Module : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string codepageField; + + private bool codepageFieldSet; + + private string guidField; + + private bool guidFieldSet; + + private string languageField; + + private bool languageFieldSet; + + private string versionField; + + private bool versionFieldSet; + + private ISchemaElement parentElement; + + public Module() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Configuration))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Dependency))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Exclusion))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreTable))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Substitution))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); + ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); + childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); + childCollection1.AddCollection(childCollection2); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The name of the merge module (not the file name). + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The code page integer value or web name for the resulting MSM. See remarks for more information. + /// + public string Codepage + { + get + { + return this.codepageField; + } + set + { + this.codepageFieldSet = true; + this.codepageField = value; + } + } + + /// + /// This attribute is deprecated. Use the Package/@Id attribute instead. + /// + public string Guid + { + get + { + return this.guidField; + } + set + { + this.guidFieldSet = true; + this.guidField = value; + } + } + + /// + /// The decimal language ID (LCID) of the merge module. + /// + public string Language + { + get + { + return this.languageField; + } + set + { + this.languageFieldSet = true; + this.languageField = value; + } + } + + /// + /// The major and minor versions of the merge module. + /// + public string Version + { + get + { + return this.versionField; + } + set + { + this.versionFieldSet = true; + this.versionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Package" == childName)) + { + childValue = new Package(); + } + if (("AppId" == childName)) + { + childValue = new AppId(); + } + if (("Binary" == childName)) + { + childValue = new Binary(); + } + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("ComponentGroupRef" == childName)) + { + childValue = new ComponentGroupRef(); + } + if (("ComponentRef" == childName)) + { + childValue = new ComponentRef(); + } + if (("Configuration" == childName)) + { + childValue = new Configuration(); + } + if (("CustomAction" == childName)) + { + childValue = new CustomAction(); + } + if (("CustomActionRef" == childName)) + { + childValue = new CustomActionRef(); + } + if (("CustomTable" == childName)) + { + childValue = new CustomTable(); + } + if (("Dependency" == childName)) + { + childValue = new Dependency(); + } + if (("Directory" == childName)) + { + childValue = new Directory(); + } + if (("DirectoryRef" == childName)) + { + childValue = new DirectoryRef(); + } + if (("EmbeddedChainer" == childName)) + { + childValue = new EmbeddedChainer(); + } + if (("EmbeddedChainerRef" == childName)) + { + childValue = new EmbeddedChainerRef(); + } + if (("EnsureTable" == childName)) + { + childValue = new EnsureTable(); + } + if (("Exclusion" == childName)) + { + childValue = new Exclusion(); + } + if (("Icon" == childName)) + { + childValue = new Icon(); + } + if (("IgnoreModularization" == childName)) + { + childValue = new IgnoreModularization(); + } + if (("IgnoreTable" == childName)) + { + childValue = new IgnoreTable(); + } + if (("Property" == childName)) + { + childValue = new Property(); + } + if (("PropertyRef" == childName)) + { + childValue = new PropertyRef(); + } + if (("SetDirectory" == childName)) + { + childValue = new SetDirectory(); + } + if (("SetProperty" == childName)) + { + childValue = new SetProperty(); + } + if (("SFPCatalog" == childName)) + { + childValue = new SFPCatalog(); + } + if (("Substitution" == childName)) + { + childValue = new Substitution(); + } + if (("UI" == childName)) + { + childValue = new UI(); + } + if (("UIRef" == childName)) + { + childValue = new UIRef(); + } + if (("WixVariable" == childName)) + { + childValue = new WixVariable(); + } + if (("InstallExecuteSequence" == childName)) + { + childValue = new InstallExecuteSequence(); + } + if (("InstallUISequence" == childName)) + { + childValue = new InstallUISequence(); + } + if (("AdminExecuteSequence" == childName)) + { + childValue = new AdminExecuteSequence(); + } + if (("AdminUISequence" == childName)) + { + childValue = new AdminUISequence(); + } + if (("AdvertiseExecuteSequence" == childName)) + { + childValue = new AdvertiseExecuteSequence(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Module", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.codepageFieldSet) + { + writer.WriteAttributeString("Codepage", this.codepageField); + } + if (this.guidFieldSet) + { + writer.WriteAttributeString("Guid", this.guidField); + } + if (this.languageFieldSet) + { + writer.WriteAttributeString("Language", this.languageField); + } + if (this.versionFieldSet) + { + writer.WriteAttributeString("Version", this.versionField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Codepage" == name)) + { + this.codepageField = value; + this.codepageFieldSet = true; + } + if (("Guid" == name)) + { + this.guidField = value; + this.guidFieldSet = true; + } + if (("Language" == name)) + { + this.languageField = value; + this.languageFieldSet = true; + } + if (("Version" == name)) + { + this.versionField = value; + this.versionFieldSet = true; + } + } + } + + /// + /// Declares a dependency on another merge module. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Dependency : ISchemaElement, ISetAttributes + { + + private string requiredIdField; + + private bool requiredIdFieldSet; + + private int requiredLanguageField; + + private bool requiredLanguageFieldSet; + + private string requiredVersionField; + + private bool requiredVersionFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier of the merge module required by the merge module. + /// + public string RequiredId + { + get + { + return this.requiredIdField; + } + set + { + this.requiredIdFieldSet = true; + this.requiredIdField = value; + } + } + + /// + /// Numeric language ID of the merge module in RequiredID. + /// + public int RequiredLanguage + { + get + { + return this.requiredLanguageField; + } + set + { + this.requiredLanguageFieldSet = true; + this.requiredLanguageField = value; + } + } + + /// + /// Version of the merge module in RequiredID. + /// + public string RequiredVersion + { + get + { + return this.requiredVersionField; + } + set + { + this.requiredVersionFieldSet = true; + this.requiredVersionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Dependency", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.requiredIdFieldSet) + { + writer.WriteAttributeString("RequiredId", this.requiredIdField); + } + if (this.requiredLanguageFieldSet) + { + writer.WriteAttributeString("RequiredLanguage", this.requiredLanguageField.ToString(CultureInfo.InvariantCulture)); + } + if (this.requiredVersionFieldSet) + { + writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("RequiredId" == name)) + { + this.requiredIdField = value; + this.requiredIdFieldSet = true; + } + if (("RequiredLanguage" == name)) + { + this.requiredLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.requiredLanguageFieldSet = true; + } + if (("RequiredVersion" == name)) + { + this.requiredVersionField = value; + this.requiredVersionFieldSet = true; + } + } + } + + /// + /// Declares a merge module with which this merge module is incompatible. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Exclusion : ISchemaElement, ISetAttributes + { + + private string excludedIdField; + + private bool excludedIdFieldSet; + + private int excludeExceptLanguageField; + + private bool excludeExceptLanguageFieldSet; + + private int excludeLanguageField; + + private bool excludeLanguageFieldSet; + + private string excludedMinVersionField; + + private bool excludedMinVersionFieldSet; + + private string excludedMaxVersionField; + + private bool excludedMaxVersionFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier of the merge module that is incompatible. + /// + public string ExcludedId + { + get + { + return this.excludedIdField; + } + set + { + this.excludedIdFieldSet = true; + this.excludedIdField = value; + } + } + + /// + /// Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. + /// + public int ExcludeExceptLanguage + { + get + { + return this.excludeExceptLanguageField; + } + set + { + this.excludeExceptLanguageFieldSet = true; + this.excludeExceptLanguageField = value; + } + } + + /// + /// Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. + /// + public int ExcludeLanguage + { + get + { + return this.excludeLanguageField; + } + set + { + this.excludeLanguageFieldSet = true; + this.excludeLanguageField = value; + } + } + + /// + /// Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version. + /// + public string ExcludedMinVersion + { + get + { + return this.excludedMinVersionField; + } + set + { + this.excludedMinVersionFieldSet = true; + this.excludedMinVersionField = value; + } + } + + /// + /// Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version. + /// + public string ExcludedMaxVersion + { + get + { + return this.excludedMaxVersionField; + } + set + { + this.excludedMaxVersionFieldSet = true; + this.excludedMaxVersionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Exclusion", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.excludedIdFieldSet) + { + writer.WriteAttributeString("ExcludedId", this.excludedIdField); + } + if (this.excludeExceptLanguageFieldSet) + { + writer.WriteAttributeString("ExcludeExceptLanguage", this.excludeExceptLanguageField.ToString(CultureInfo.InvariantCulture)); + } + if (this.excludeLanguageFieldSet) + { + writer.WriteAttributeString("ExcludeLanguage", this.excludeLanguageField.ToString(CultureInfo.InvariantCulture)); + } + if (this.excludedMinVersionFieldSet) + { + writer.WriteAttributeString("ExcludedMinVersion", this.excludedMinVersionField); + } + if (this.excludedMaxVersionFieldSet) + { + writer.WriteAttributeString("ExcludedMaxVersion", this.excludedMaxVersionField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("ExcludedId" == name)) + { + this.excludedIdField = value; + this.excludedIdFieldSet = true; + } + if (("ExcludeExceptLanguage" == name)) + { + this.excludeExceptLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.excludeExceptLanguageFieldSet = true; + } + if (("ExcludeLanguage" == name)) + { + this.excludeLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.excludeLanguageFieldSet = true; + } + if (("ExcludedMinVersion" == name)) + { + this.excludedMinVersionField = value; + this.excludedMinVersionFieldSet = true; + } + if (("ExcludedMaxVersion" == name)) + { + this.excludedMaxVersionField = value; + this.excludedMaxVersionFieldSet = true; + } + } + } + + /// + /// Defines the configurable attributes of merge module. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Configuration : ISchemaElement, ISetAttributes + { + + private string nameField; + + private bool nameFieldSet; + + private FormatType formatField; + + private bool formatFieldSet; + + private string typeField; + + private bool typeFieldSet; + + private string contextDataField; + + private bool contextDataFieldSet; + + private string defaultValueField; + + private bool defaultValueFieldSet; + + private YesNoType keyNoOrphanField; + + private bool keyNoOrphanFieldSet; + + private YesNoType nonNullableField; + + private bool nonNullableFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string helpLocationField; + + private bool helpLocationFieldSet; + + private string helpKeywordField; + + private bool helpKeywordFieldSet; + + private ISchemaElement parentElement; + + /// + /// Defines the name of the configurable item. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Specifies the format of the data being changed. + /// + public FormatType Format + { + get + { + return this.formatField; + } + set + { + this.formatFieldSet = true; + this.formatField = value; + } + } + + /// + /// Specifies the type of the data being changed. + /// + public string Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + /// + /// Specifies a semantic context for the requested data. + /// + public string ContextData + { + get + { + return this.contextDataField; + } + set + { + this.contextDataFieldSet = true; + this.contextDataField = value; + } + } + + /// + /// Specifies a default value for the item in this record if the merge tool declines to provide a value. + /// + public string DefaultValue + { + get + { + return this.defaultValueField; + } + set + { + this.defaultValueFieldSet = true; + this.defaultValueField = value; + } + } + + /// + /// Does not merge rule according to rules in MSI SDK. + /// + public YesNoType KeyNoOrphan + { + get + { + return this.keyNoOrphanField; + } + set + { + this.keyNoOrphanFieldSet = true; + this.keyNoOrphanField = value; + } + } + + /// + /// If yes, null is not a valid entry. + /// + public YesNoType NonNullable + { + get + { + return this.nonNullableField; + } + set + { + this.nonNullableFieldSet = true; + this.nonNullableField = value; + } + } + + /// + /// Display name for authoring. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// Description for authoring. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Location of chm file for authoring. + /// + public string HelpLocation + { + get + { + return this.helpLocationField; + } + set + { + this.helpLocationFieldSet = true; + this.helpLocationField = value; + } + } + + /// + /// Keyword into chm file for authoring. + /// + public string HelpKeyword + { + get + { + return this.helpKeywordField; + } + set + { + this.helpKeywordFieldSet = true; + this.helpKeywordField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a FormatType from a string. + /// + public static FormatType ParseFormatType(string value) + { + FormatType parsedValue; + Configuration.TryParseFormatType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a FormatType from a string. + /// + public static bool TryParseFormatType(string value, out FormatType parsedValue) + { + parsedValue = FormatType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("Text" == value)) + { + parsedValue = FormatType.Text; + } + else + { + if (("Key" == value)) + { + parsedValue = FormatType.Key; + } + else + { + if (("Integer" == value)) + { + parsedValue = FormatType.Integer; + } + else + { + if (("Bitfield" == value)) + { + parsedValue = FormatType.Bitfield; + } + else + { + parsedValue = FormatType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Configuration", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.formatFieldSet) + { + if ((this.formatField == FormatType.Text)) + { + writer.WriteAttributeString("Format", "Text"); + } + if ((this.formatField == FormatType.Key)) + { + writer.WriteAttributeString("Format", "Key"); + } + if ((this.formatField == FormatType.Integer)) + { + writer.WriteAttributeString("Format", "Integer"); + } + if ((this.formatField == FormatType.Bitfield)) + { + writer.WriteAttributeString("Format", "Bitfield"); + } + } + if (this.typeFieldSet) + { + writer.WriteAttributeString("Type", this.typeField); + } + if (this.contextDataFieldSet) + { + writer.WriteAttributeString("ContextData", this.contextDataField); + } + if (this.defaultValueFieldSet) + { + writer.WriteAttributeString("DefaultValue", this.defaultValueField); + } + if (this.keyNoOrphanFieldSet) + { + if ((this.keyNoOrphanField == YesNoType.no)) + { + writer.WriteAttributeString("KeyNoOrphan", "no"); + } + if ((this.keyNoOrphanField == YesNoType.yes)) + { + writer.WriteAttributeString("KeyNoOrphan", "yes"); + } + } + if (this.nonNullableFieldSet) + { + if ((this.nonNullableField == YesNoType.no)) + { + writer.WriteAttributeString("NonNullable", "no"); + } + if ((this.nonNullableField == YesNoType.yes)) + { + writer.WriteAttributeString("NonNullable", "yes"); + } + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.helpLocationFieldSet) + { + writer.WriteAttributeString("HelpLocation", this.helpLocationField); + } + if (this.helpKeywordFieldSet) + { + writer.WriteAttributeString("HelpKeyword", this.helpKeywordField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Format" == name)) + { + this.formatField = Configuration.ParseFormatType(value); + this.formatFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = value; + this.typeFieldSet = true; + } + if (("ContextData" == name)) + { + this.contextDataField = value; + this.contextDataFieldSet = true; + } + if (("DefaultValue" == name)) + { + this.defaultValueField = value; + this.defaultValueFieldSet = true; + } + if (("KeyNoOrphan" == name)) + { + this.keyNoOrphanField = Enums.ParseYesNoType(value); + this.keyNoOrphanFieldSet = true; + } + if (("NonNullable" == name)) + { + this.nonNullableField = Enums.ParseYesNoType(value); + this.nonNullableFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("HelpLocation" == name)) + { + this.helpLocationField = value; + this.helpLocationFieldSet = true; + } + if (("HelpKeyword" == name)) + { + this.helpKeywordField = value; + this.helpKeywordFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum FormatType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + Text, + + Key, + + Integer, + + Bitfield, + } + } + + /// + /// Specifies the configurable fields of a module database and provides a template for the configuration of each field. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Substitution : ISchemaElement, ISetAttributes + { + + private string tableField; + + private bool tableFieldSet; + + private string rowField; + + private bool rowFieldSet; + + private string columnField; + + private bool columnFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// Specifies the name of the table being modified in the module database. + /// + public string Table + { + get + { + return this.tableField; + } + set + { + this.tableFieldSet = true; + this.tableField = value; + } + } + + /// + /// Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons. + /// + public string Row + { + get + { + return this.rowField; + } + set + { + this.rowFieldSet = true; + this.rowField = value; + } + } + + /// + /// Specifies the target column in the row named in the Row column. + /// + public string Column + { + get + { + return this.columnField; + } + set + { + this.columnFieldSet = true; + this.columnField = value; + } + } + + /// + /// Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Substitution", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.tableFieldSet) + { + writer.WriteAttributeString("Table", this.tableField); + } + if (this.rowFieldSet) + { + writer.WriteAttributeString("Row", this.rowField); + } + if (this.columnFieldSet) + { + writer.WriteAttributeString("Column", this.columnField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Table" == name)) + { + this.tableField = value; + this.tableFieldSet = true; + } + if (("Row" == name)) + { + this.rowField = value; + this.rowFieldSet = true; + } + if (("Column" == name)) + { + this.columnField = value; + this.columnFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Specifies a table from the merge module that is not merged into an .msi file. + /// If the table already exists in an .msi file, it is not modified by the merge. + /// The specified table can therefore contain data that is unneeded after the merge. + /// To minimize the size of the .msm file, it is recommended that developers remove + /// unused tables from modules intended for redistribution rather than creating + /// IgnoreTable elements for those tables. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IgnoreTable : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of the table in the merge module that is not to be merged into the .msi file. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IgnoreTable", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// The Fragment element is the building block of creating an installer database in WiX. Once defined, + /// the Fragment becomes an immutable, atomic unit which can either be completely included or excluded + /// from a product. The contents of a Fragment element can be linked into a product by utilizing one + /// of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its + /// individual units. For instance, if a given Fragment contains two Component elements, you must link + /// both under features using ComponentRef for each linked Component. Otherwise, you will get a linker + /// warning and have a floating Component that does not appear under any Feature. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Fragment : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public Fragment() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); + childCollection0.AddCollection(childCollection1); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Optional identifier for a Fragment. Should only be set by advanced users to tag sections. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("AppId" == childName)) + { + childValue = new AppId(); + } + if (("Binary" == childName)) + { + childValue = new Binary(); + } + if (("BootstrapperApplication" == childName)) + { + childValue = new BootstrapperApplication(); + } + if (("BootstrapperApplicationRef" == childName)) + { + childValue = new BootstrapperApplicationRef(); + } + if (("ComplianceCheck" == childName)) + { + childValue = new ComplianceCheck(); + } + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("ComponentGroup" == childName)) + { + childValue = new ComponentGroup(); + } + if (("Condition" == childName)) + { + childValue = new Condition(); + } + if (("Container" == childName)) + { + childValue = new Container(); + } + if (("CustomAction" == childName)) + { + childValue = new CustomAction(); + } + if (("CustomActionRef" == childName)) + { + childValue = new CustomActionRef(); + } + if (("CustomTable" == childName)) + { + childValue = new CustomTable(); + } + if (("Directory" == childName)) + { + childValue = new Directory(); + } + if (("DirectoryRef" == childName)) + { + childValue = new DirectoryRef(); + } + if (("EmbeddedChainer" == childName)) + { + childValue = new EmbeddedChainer(); + } + if (("EmbeddedChainerRef" == childName)) + { + childValue = new EmbeddedChainerRef(); + } + if (("EnsureTable" == childName)) + { + childValue = new EnsureTable(); + } + if (("Feature" == childName)) + { + childValue = new Feature(); + } + if (("FeatureGroup" == childName)) + { + childValue = new FeatureGroup(); + } + if (("FeatureRef" == childName)) + { + childValue = new FeatureRef(); + } + if (("Icon" == childName)) + { + childValue = new Icon(); + } + if (("IgnoreModularization" == childName)) + { + childValue = new IgnoreModularization(); + } + if (("Media" == childName)) + { + childValue = new Media(); + } + if (("MediaTemplate" == childName)) + { + childValue = new MediaTemplate(); + } + if (("PackageGroup" == childName)) + { + childValue = new PackageGroup(); + } + if (("PackageCertificates" == childName)) + { + childValue = new PackageCertificates(); + } + if (("PatchCertificates" == childName)) + { + childValue = new PatchCertificates(); + } + if (("PatchFamily" == childName)) + { + childValue = new PatchFamily(); + } + if (("PatchFamilyGroup" == childName)) + { + childValue = new PatchFamilyGroup(); + } + if (("PayloadGroup" == childName)) + { + childValue = new PayloadGroup(); + } + if (("Property" == childName)) + { + childValue = new Property(); + } + if (("PropertyRef" == childName)) + { + childValue = new PropertyRef(); + } + if (("RelatedBundle" == childName)) + { + childValue = new RelatedBundle(); + } + if (("SetDirectory" == childName)) + { + childValue = new SetDirectory(); + } + if (("SetProperty" == childName)) + { + childValue = new SetProperty(); + } + if (("SFPCatalog" == childName)) + { + childValue = new SFPCatalog(); + } + if (("UI" == childName)) + { + childValue = new UI(); + } + if (("UIRef" == childName)) + { + childValue = new UIRef(); + } + if (("Upgrade" == childName)) + { + childValue = new Upgrade(); + } + if (("Variable" == childName)) + { + childValue = new Variable(); + } + if (("WixVariable" == childName)) + { + childValue = new WixVariable(); + } + if (("InstallExecuteSequence" == childName)) + { + childValue = new InstallExecuteSequence(); + } + if (("InstallUISequence" == childName)) + { + childValue = new InstallUISequence(); + } + if (("AdminExecuteSequence" == childName)) + { + childValue = new AdminExecuteSequence(); + } + if (("AdminUISequence" == childName)) + { + childValue = new AdminUISequence(); + } + if (("AdvertiseExecuteSequence" == childName)) + { + childValue = new AdvertiseExecuteSequence(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Fragment", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// The Patch element is analogous to the main function in a C program. When linking, only one Patch section + /// can be given to the linker to produce a successful result. Using this element creates an MSP file. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Patch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string codepageField; + + private bool codepageFieldSet; + + private YesNoType allowRemovalField; + + private bool allowRemovalFieldSet; + + private string classificationField; + + private bool classificationFieldSet; + + private string clientPatchIdField; + + private bool clientPatchIdFieldSet; + + private YesNoType apiPatchingSymbolNoImagehlpFlagField; + + private bool apiPatchingSymbolNoImagehlpFlagFieldSet; + + private YesNoType apiPatchingSymbolNoFailuresFlagField; + + private bool apiPatchingSymbolNoFailuresFlagFieldSet; + + private YesNoType apiPatchingSymbolUndecoratedTooFlagField; + + private bool apiPatchingSymbolUndecoratedTooFlagFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private string commentsField; + + private bool commentsFieldSet; + + private string manufacturerField; + + private bool manufacturerFieldSet; + + private YesNoType minorUpdateTargetRTMField; + + private bool minorUpdateTargetRTMFieldSet; + + private string moreInfoURLField; + + private bool moreInfoURLFieldSet; + + private YesNoType optimizedInstallModeField; + + private bool optimizedInstallModeFieldSet; + + private string targetProductNameField; + + private bool targetProductNameFieldSet; + + private YesNoType optimizePatchSizeForLargeFilesField; + + private bool optimizePatchSizeForLargeFilesFieldSet; + + private ISchemaElement parentElement; + + public Patch() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchInformation))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCodes))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Patch code for this patch. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The code page integer value or web name for the resulting MSP. See remarks for more information. + /// + public string Codepage + { + get + { + return this.codepageField; + } + set + { + this.codepageFieldSet = true; + this.codepageField = value; + } + } + + /// + /// Whether this is an uninstallable patch. + /// + public YesNoType AllowRemoval + { + get + { + return this.allowRemovalField; + } + set + { + this.allowRemovalFieldSet = true; + this.allowRemovalField = value; + } + } + + /// + /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. + /// + public string Classification + { + get + { + return this.classificationField; + } + set + { + this.classificationFieldSet = true; + this.classificationField = value; + } + } + + /// + /// An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information. + /// + public string ClientPatchId + { + get + { + return this.clientPatchIdField; + } + set + { + this.clientPatchIdFieldSet = true; + this.clientPatchIdField = value; + } + } + + /// + /// Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll. + /// + public YesNoType ApiPatchingSymbolNoImagehlpFlag + { + get + { + return this.apiPatchingSymbolNoImagehlpFlagField; + } + set + { + this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; + this.apiPatchingSymbolNoImagehlpFlagField = value; + } + } + + /// + /// Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures. + /// + public YesNoType ApiPatchingSymbolNoFailuresFlag + { + get + { + return this.apiPatchingSymbolNoFailuresFlagField; + } + set + { + this.apiPatchingSymbolNoFailuresFlagFieldSet = true; + this.apiPatchingSymbolNoFailuresFlagField = value; + } + } + + /// + /// Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names. + /// + public YesNoType ApiPatchingSymbolUndecoratedTooFlag + { + get + { + return this.apiPatchingSymbolUndecoratedTooFlagField; + } + set + { + this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; + this.apiPatchingSymbolUndecoratedTooFlagField = value; + } + } + + /// + /// Description of the patch. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// Optional comments for browsing. + /// + public string Comments + { + get + { + return this.commentsField; + } + set + { + this.commentsFieldSet = true; + this.commentsField = value; + } + } + + /// + /// Vendor releasing the package + /// + public string Manufacturer + { + get + { + return this.manufacturerField; + } + set + { + this.manufacturerFieldSet = true; + this.manufacturerField = value; + } + } + + /// + /// Indicates that the patch targets the RTM version of the product or the most recent major + /// upgrade patch. Author this optional property in minor update patches that contain sequencing + /// information to indicate that the patch removes all patches up to the RTM version of the + /// product, or up to the most recent major upgrade patch. This property is available beginning + /// with Windows Installer 3.1. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public YesNoType MinorUpdateTargetRTM + { + get + { + return this.minorUpdateTargetRTMField; + } + set + { + this.minorUpdateTargetRTMFieldSet = true; + this.minorUpdateTargetRTMField = value; + } + } + + /// + /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public string MoreInfoURL + { + get + { + return this.moreInfoURLField; + } + set + { + this.moreInfoURLFieldSet = true; + this.moreInfoURLField = value; + } + } + + /// + /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the + /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. + /// + public YesNoType OptimizedInstallMode + { + get + { + return this.optimizedInstallModeField; + } + set + { + this.optimizedInstallModeFieldSet = true; + this.optimizedInstallModeField = value; + } + } + + /// + /// Name of the application or target product suite. + /// + public string TargetProductName + { + get + { + return this.targetProductNameField; + } + set + { + this.targetProductNameFieldSet = true; + this.targetProductNameField = value; + } + } + + /// + /// When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller. + /// + public YesNoType OptimizePatchSizeForLargeFiles + { + get + { + return this.optimizePatchSizeForLargeFilesField; + } + set + { + this.optimizePatchSizeForLargeFilesFieldSet = true; + this.optimizePatchSizeForLargeFilesField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("PatchInformation" == childName)) + { + childValue = new PatchInformation(); + } + if (("Media" == childName)) + { + childValue = new Media(); + } + if (("OptimizeCustomActions" == childName)) + { + childValue = new OptimizeCustomActions(); + } + if (("PatchFamily" == childName)) + { + childValue = new PatchFamily(); + } + if (("PatchFamilyRef" == childName)) + { + childValue = new PatchFamilyRef(); + } + if (("PatchFamilyGroup" == childName)) + { + childValue = new PatchFamilyGroup(); + } + if (("PatchFamilyGroupRef" == childName)) + { + childValue = new PatchFamilyGroupRef(); + } + if (("PatchProperty" == childName)) + { + childValue = new PatchProperty(); + } + if (("TargetProductCodes" == childName)) + { + childValue = new TargetProductCodes(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Patch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.codepageFieldSet) + { + writer.WriteAttributeString("Codepage", this.codepageField); + } + if (this.allowRemovalFieldSet) + { + if ((this.allowRemovalField == YesNoType.no)) + { + writer.WriteAttributeString("AllowRemoval", "no"); + } + if ((this.allowRemovalField == YesNoType.yes)) + { + writer.WriteAttributeString("AllowRemoval", "yes"); + } + } + if (this.classificationFieldSet) + { + writer.WriteAttributeString("Classification", this.classificationField); + } + if (this.clientPatchIdFieldSet) + { + writer.WriteAttributeString("ClientPatchId", this.clientPatchIdField); + } + if (this.apiPatchingSymbolNoImagehlpFlagFieldSet) + { + if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.no)) + { + writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "no"); + } + if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.yes)) + { + writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "yes"); + } + } + if (this.apiPatchingSymbolNoFailuresFlagFieldSet) + { + if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.no)) + { + writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "no"); + } + if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.yes)) + { + writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "yes"); + } + } + if (this.apiPatchingSymbolUndecoratedTooFlagFieldSet) + { + if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.no)) + { + writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "no"); + } + if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.yes)) + { + writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "yes"); + } + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.commentsFieldSet) + { + writer.WriteAttributeString("Comments", this.commentsField); + } + if (this.manufacturerFieldSet) + { + writer.WriteAttributeString("Manufacturer", this.manufacturerField); + } + if (this.minorUpdateTargetRTMFieldSet) + { + if ((this.minorUpdateTargetRTMField == YesNoType.no)) + { + writer.WriteAttributeString("MinorUpdateTargetRTM", "no"); + } + if ((this.minorUpdateTargetRTMField == YesNoType.yes)) + { + writer.WriteAttributeString("MinorUpdateTargetRTM", "yes"); + } + } + if (this.moreInfoURLFieldSet) + { + writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); + } + if (this.optimizedInstallModeFieldSet) + { + if ((this.optimizedInstallModeField == YesNoType.no)) + { + writer.WriteAttributeString("OptimizedInstallMode", "no"); + } + if ((this.optimizedInstallModeField == YesNoType.yes)) + { + writer.WriteAttributeString("OptimizedInstallMode", "yes"); + } + } + if (this.targetProductNameFieldSet) + { + writer.WriteAttributeString("TargetProductName", this.targetProductNameField); + } + if (this.optimizePatchSizeForLargeFilesFieldSet) + { + if ((this.optimizePatchSizeForLargeFilesField == YesNoType.no)) + { + writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "no"); + } + if ((this.optimizePatchSizeForLargeFilesField == YesNoType.yes)) + { + writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Codepage" == name)) + { + this.codepageField = value; + this.codepageFieldSet = true; + } + if (("AllowRemoval" == name)) + { + this.allowRemovalField = Enums.ParseYesNoType(value); + this.allowRemovalFieldSet = true; + } + if (("Classification" == name)) + { + this.classificationField = value; + this.classificationFieldSet = true; + } + if (("ClientPatchId" == name)) + { + this.clientPatchIdField = value; + this.clientPatchIdFieldSet = true; + } + if (("ApiPatchingSymbolNoImagehlpFlag" == name)) + { + this.apiPatchingSymbolNoImagehlpFlagField = Enums.ParseYesNoType(value); + this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; + } + if (("ApiPatchingSymbolNoFailuresFlag" == name)) + { + this.apiPatchingSymbolNoFailuresFlagField = Enums.ParseYesNoType(value); + this.apiPatchingSymbolNoFailuresFlagFieldSet = true; + } + if (("ApiPatchingSymbolUndecoratedTooFlag" == name)) + { + this.apiPatchingSymbolUndecoratedTooFlagField = Enums.ParseYesNoType(value); + this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("Comments" == name)) + { + this.commentsField = value; + this.commentsFieldSet = true; + } + if (("Manufacturer" == name)) + { + this.manufacturerField = value; + this.manufacturerFieldSet = true; + } + if (("MinorUpdateTargetRTM" == name)) + { + this.minorUpdateTargetRTMField = Enums.ParseYesNoType(value); + this.minorUpdateTargetRTMFieldSet = true; + } + if (("MoreInfoURL" == name)) + { + this.moreInfoURLField = value; + this.moreInfoURLFieldSet = true; + } + if (("OptimizedInstallMode" == name)) + { + this.optimizedInstallModeField = Enums.ParseYesNoType(value); + this.optimizedInstallModeFieldSet = true; + } + if (("TargetProductName" == name)) + { + this.targetProductNameField = value; + this.targetProductNameFieldSet = true; + } + if (("OptimizePatchSizeForLargeFiles" == name)) + { + this.optimizePatchSizeForLargeFilesField = Enums.ParseYesNoType(value); + this.optimizePatchSizeForLargeFilesFieldSet = true; + } + } + } + + /// + /// Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Validate : ISchemaElement, ISetAttributes + { + + private YesNoType productIdField; + + private bool productIdFieldSet; + + private YesNoType productLanguageField; + + private bool productLanguageFieldSet; + + private ProductVersionType productVersionField; + + private bool productVersionFieldSet; + + private ProductVersionOperatorType productVersionOperatorField; + + private bool productVersionOperatorFieldSet; + + private YesNoType upgradeCodeField; + + private bool upgradeCodeFieldSet; + + private YesNoType ignoreAddExistingRowField; + + private bool ignoreAddExistingRowFieldSet; + + private YesNoType ignoreAddExistingTableField; + + private bool ignoreAddExistingTableFieldSet; + + private YesNoType ignoreDeleteMissingRowField; + + private bool ignoreDeleteMissingRowFieldSet; + + private YesNoType ignoreDeleteMissingTableField; + + private bool ignoreDeleteMissingTableFieldSet; + + private YesNoType ignoreUpdateMissingRowField; + + private bool ignoreUpdateMissingRowFieldSet; + + private YesNoType ignoreChangingCodePageField; + + private bool ignoreChangingCodePageFieldSet; + + private ISchemaElement parentElement; + + /// + /// Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'. + /// + public YesNoType ProductId + { + get + { + return this.productIdField; + } + set + { + this.productIdFieldSet = true; + this.productIdField = value; + } + } + + /// + /// Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'. + /// + public YesNoType ProductLanguage + { + get + { + return this.productLanguageField; + } + set + { + this.productLanguageFieldSet = true; + this.productLanguageField = value; + } + } + + /// + /// Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'. + /// + public ProductVersionType ProductVersion + { + get + { + return this.productVersionField; + } + set + { + this.productVersionFieldSet = true; + this.productVersionField = value; + } + } + + /// + /// Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'. + /// + public ProductVersionOperatorType ProductVersionOperator + { + get + { + return this.productVersionOperatorField; + } + set + { + this.productVersionOperatorFieldSet = true; + this.productVersionOperatorField = value; + } + } + + /// + /// Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'. + /// + public YesNoType UpgradeCode + { + get + { + return this.upgradeCodeField; + } + set + { + this.upgradeCodeFieldSet = true; + this.upgradeCodeField = value; + } + } + + /// + /// Ignore errors when adding existing rows. The default is 'yes'. + /// + public YesNoType IgnoreAddExistingRow + { + get + { + return this.ignoreAddExistingRowField; + } + set + { + this.ignoreAddExistingRowFieldSet = true; + this.ignoreAddExistingRowField = value; + } + } + + /// + /// Ignore errors when adding existing tables. The default is 'yes'. + /// + public YesNoType IgnoreAddExistingTable + { + get + { + return this.ignoreAddExistingTableField; + } + set + { + this.ignoreAddExistingTableFieldSet = true; + this.ignoreAddExistingTableField = value; + } + } + + /// + /// Ignore errors when deleting missing rows. The default is 'yes'. + /// + public YesNoType IgnoreDeleteMissingRow + { + get + { + return this.ignoreDeleteMissingRowField; + } + set + { + this.ignoreDeleteMissingRowFieldSet = true; + this.ignoreDeleteMissingRowField = value; + } + } + + /// + /// Ignore errors when deleting missing tables. The default is 'yes'. + /// + public YesNoType IgnoreDeleteMissingTable + { + get + { + return this.ignoreDeleteMissingTableField; + } + set + { + this.ignoreDeleteMissingTableFieldSet = true; + this.ignoreDeleteMissingTableField = value; + } + } + + /// + /// Ignore errors when updating missing rows. The default is 'yes'. + /// + public YesNoType IgnoreUpdateMissingRow + { + get + { + return this.ignoreUpdateMissingRowField; + } + set + { + this.ignoreUpdateMissingRowFieldSet = true; + this.ignoreUpdateMissingRowField = value; + } + } + + /// + /// Ignore errors when changing the database code page. The default is 'no'. + /// + public YesNoType IgnoreChangingCodePage + { + get + { + return this.ignoreChangingCodePageField; + } + set + { + this.ignoreChangingCodePageFieldSet = true; + this.ignoreChangingCodePageField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ProductVersionType from a string. + /// + public static ProductVersionType ParseProductVersionType(string value) + { + ProductVersionType parsedValue; + Validate.TryParseProductVersionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ProductVersionType from a string. + /// + public static bool TryParseProductVersionType(string value, out ProductVersionType parsedValue) + { + parsedValue = ProductVersionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("Major" == value)) + { + parsedValue = ProductVersionType.Major; + } + else + { + if (("Minor" == value)) + { + parsedValue = ProductVersionType.Minor; + } + else + { + if (("Update" == value)) + { + parsedValue = ProductVersionType.Update; + } + else + { + parsedValue = ProductVersionType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a ProductVersionOperatorType from a string. + /// + public static ProductVersionOperatorType ParseProductVersionOperatorType(string value) + { + ProductVersionOperatorType parsedValue; + Validate.TryParseProductVersionOperatorType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ProductVersionOperatorType from a string. + /// + public static bool TryParseProductVersionOperatorType(string value, out ProductVersionOperatorType parsedValue) + { + parsedValue = ProductVersionOperatorType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("Lesser" == value)) + { + parsedValue = ProductVersionOperatorType.Lesser; + } + else + { + if (("LesserOrEqual" == value)) + { + parsedValue = ProductVersionOperatorType.LesserOrEqual; + } + else + { + if (("Equal" == value)) + { + parsedValue = ProductVersionOperatorType.Equal; + } + else + { + if (("GreaterOrEqual" == value)) + { + parsedValue = ProductVersionOperatorType.GreaterOrEqual; + } + else + { + if (("Greater" == value)) + { + parsedValue = ProductVersionOperatorType.Greater; + } + else + { + parsedValue = ProductVersionOperatorType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Validate", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.productIdFieldSet) + { + if ((this.productIdField == YesNoType.no)) + { + writer.WriteAttributeString("ProductId", "no"); + } + if ((this.productIdField == YesNoType.yes)) + { + writer.WriteAttributeString("ProductId", "yes"); + } + } + if (this.productLanguageFieldSet) + { + if ((this.productLanguageField == YesNoType.no)) + { + writer.WriteAttributeString("ProductLanguage", "no"); + } + if ((this.productLanguageField == YesNoType.yes)) + { + writer.WriteAttributeString("ProductLanguage", "yes"); + } + } + if (this.productVersionFieldSet) + { + if ((this.productVersionField == ProductVersionType.Major)) + { + writer.WriteAttributeString("ProductVersion", "Major"); + } + if ((this.productVersionField == ProductVersionType.Minor)) + { + writer.WriteAttributeString("ProductVersion", "Minor"); + } + if ((this.productVersionField == ProductVersionType.Update)) + { + writer.WriteAttributeString("ProductVersion", "Update"); + } + } + if (this.productVersionOperatorFieldSet) + { + if ((this.productVersionOperatorField == ProductVersionOperatorType.Lesser)) + { + writer.WriteAttributeString("ProductVersionOperator", "Lesser"); + } + if ((this.productVersionOperatorField == ProductVersionOperatorType.LesserOrEqual)) + { + writer.WriteAttributeString("ProductVersionOperator", "LesserOrEqual"); + } + if ((this.productVersionOperatorField == ProductVersionOperatorType.Equal)) + { + writer.WriteAttributeString("ProductVersionOperator", "Equal"); + } + if ((this.productVersionOperatorField == ProductVersionOperatorType.GreaterOrEqual)) + { + writer.WriteAttributeString("ProductVersionOperator", "GreaterOrEqual"); + } + if ((this.productVersionOperatorField == ProductVersionOperatorType.Greater)) + { + writer.WriteAttributeString("ProductVersionOperator", "Greater"); + } + } + if (this.upgradeCodeFieldSet) + { + if ((this.upgradeCodeField == YesNoType.no)) + { + writer.WriteAttributeString("UpgradeCode", "no"); + } + if ((this.upgradeCodeField == YesNoType.yes)) + { + writer.WriteAttributeString("UpgradeCode", "yes"); + } + } + if (this.ignoreAddExistingRowFieldSet) + { + if ((this.ignoreAddExistingRowField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreAddExistingRow", "no"); + } + if ((this.ignoreAddExistingRowField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreAddExistingRow", "yes"); + } + } + if (this.ignoreAddExistingTableFieldSet) + { + if ((this.ignoreAddExistingTableField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreAddExistingTable", "no"); + } + if ((this.ignoreAddExistingTableField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreAddExistingTable", "yes"); + } + } + if (this.ignoreDeleteMissingRowFieldSet) + { + if ((this.ignoreDeleteMissingRowField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreDeleteMissingRow", "no"); + } + if ((this.ignoreDeleteMissingRowField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreDeleteMissingRow", "yes"); + } + } + if (this.ignoreDeleteMissingTableFieldSet) + { + if ((this.ignoreDeleteMissingTableField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreDeleteMissingTable", "no"); + } + if ((this.ignoreDeleteMissingTableField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreDeleteMissingTable", "yes"); + } + } + if (this.ignoreUpdateMissingRowFieldSet) + { + if ((this.ignoreUpdateMissingRowField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreUpdateMissingRow", "no"); + } + if ((this.ignoreUpdateMissingRowField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreUpdateMissingRow", "yes"); + } + } + if (this.ignoreChangingCodePageFieldSet) + { + if ((this.ignoreChangingCodePageField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreChangingCodePage", "no"); + } + if ((this.ignoreChangingCodePageField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreChangingCodePage", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("ProductId" == name)) + { + this.productIdField = Enums.ParseYesNoType(value); + this.productIdFieldSet = true; + } + if (("ProductLanguage" == name)) + { + this.productLanguageField = Enums.ParseYesNoType(value); + this.productLanguageFieldSet = true; + } + if (("ProductVersion" == name)) + { + this.productVersionField = Validate.ParseProductVersionType(value); + this.productVersionFieldSet = true; + } + if (("ProductVersionOperator" == name)) + { + this.productVersionOperatorField = Validate.ParseProductVersionOperatorType(value); + this.productVersionOperatorFieldSet = true; + } + if (("UpgradeCode" == name)) + { + this.upgradeCodeField = Enums.ParseYesNoType(value); + this.upgradeCodeFieldSet = true; + } + if (("IgnoreAddExistingRow" == name)) + { + this.ignoreAddExistingRowField = Enums.ParseYesNoType(value); + this.ignoreAddExistingRowFieldSet = true; + } + if (("IgnoreAddExistingTable" == name)) + { + this.ignoreAddExistingTableField = Enums.ParseYesNoType(value); + this.ignoreAddExistingTableFieldSet = true; + } + if (("IgnoreDeleteMissingRow" == name)) + { + this.ignoreDeleteMissingRowField = Enums.ParseYesNoType(value); + this.ignoreDeleteMissingRowFieldSet = true; + } + if (("IgnoreDeleteMissingTable" == name)) + { + this.ignoreDeleteMissingTableField = Enums.ParseYesNoType(value); + this.ignoreDeleteMissingTableFieldSet = true; + } + if (("IgnoreUpdateMissingRow" == name)) + { + this.ignoreUpdateMissingRowField = Enums.ParseYesNoType(value); + this.ignoreUpdateMissingRowFieldSet = true; + } + if (("IgnoreChangingCodePage" == name)) + { + this.ignoreChangingCodePageField = Enums.ParseYesNoType(value); + this.ignoreChangingCodePageFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ProductVersionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Checks the major version. + /// + Major, + + /// + /// Checks the major and minor versions. + /// + Minor, + + /// + /// Checks the major, minor, and update versions. + /// + Update, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ProductVersionOperatorType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Installed ProductVersion < target ProductVersion. + /// + Lesser, + + /// + /// Installed ProductVersion <= target ProductVersion. + /// + LesserOrEqual, + + /// + /// Installed ProductVersion = target ProductVersion. + /// + Equal, + + /// + /// Installed ProductVersion >= target ProductVersion. + /// + GreaterOrEqual, + + /// + /// Installed ProductVersion > target ProductVersion. + /// + Greater, + } + } + + /// + /// Indicates whether custom actions can be skipped when applying the patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class OptimizeCustomActions : ISchemaElement, ISetAttributes + { + + private YesNoType skipAssignmentField; + + private bool skipAssignmentFieldSet; + + private YesNoType skipImmediateField; + + private bool skipImmediateFieldSet; + + private YesNoType skipDeferredField; + + private bool skipDeferredFieldSet; + + private ISchemaElement parentElement; + + /// + /// Skip property (type 51) and directory (type 35) assignment custom actions. + /// + public YesNoType SkipAssignment + { + get + { + return this.skipAssignmentField; + } + set + { + this.skipAssignmentFieldSet = true; + this.skipAssignmentField = value; + } + } + + /// + /// Skip immediate custom actions that are not property or directory assignment custom actions. + /// + public YesNoType SkipImmediate + { + get + { + return this.skipImmediateField; + } + set + { + this.skipImmediateFieldSet = true; + this.skipImmediateField = value; + } + } + + /// + /// Skip custom actions that run within the script. + /// + public YesNoType SkipDeferred + { + get + { + return this.skipDeferredField; + } + set + { + this.skipDeferredFieldSet = true; + this.skipDeferredField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("OptimizeCustomActions", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.skipAssignmentFieldSet) + { + if ((this.skipAssignmentField == YesNoType.no)) + { + writer.WriteAttributeString("SkipAssignment", "no"); + } + if ((this.skipAssignmentField == YesNoType.yes)) + { + writer.WriteAttributeString("SkipAssignment", "yes"); + } + } + if (this.skipImmediateFieldSet) + { + if ((this.skipImmediateField == YesNoType.no)) + { + writer.WriteAttributeString("SkipImmediate", "no"); + } + if ((this.skipImmediateField == YesNoType.yes)) + { + writer.WriteAttributeString("SkipImmediate", "yes"); + } + } + if (this.skipDeferredFieldSet) + { + if ((this.skipDeferredField == YesNoType.no)) + { + writer.WriteAttributeString("SkipDeferred", "no"); + } + if ((this.skipDeferredField == YesNoType.yes)) + { + writer.WriteAttributeString("SkipDeferred", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SkipAssignment" == name)) + { + this.skipAssignmentField = Enums.ParseYesNoType(value); + this.skipAssignmentFieldSet = true; + } + if (("SkipImmediate" == name)) + { + this.skipImmediateField = Enums.ParseYesNoType(value); + this.skipImmediateFieldSet = true; + } + if (("SkipDeferred" == name)) + { + this.skipDeferredField = Enums.ParseYesNoType(value); + this.skipDeferredFieldSet = true; + } + } + } + + /// + /// Identifies a set of product versions. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchBaseline : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public PatchBaseline() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Validate))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for a set of product versions. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Validate" == childName)) + { + childValue = new Validate(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchBaseline", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Collection of items that should be kept from the differences between two products. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchFamily : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string productCodeField; + + private bool productCodeFieldSet; + + private string versionField; + + private bool versionFieldSet; + + private YesNoType supersedeField; + + private bool supersedeFieldSet; + + private ISchemaElement parentElement; + + public PatchFamily() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(All))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(BinaryRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificateRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IconRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier which indicates a sequence family to which this patch belongs. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Specifies the ProductCode of the product that this family applies to. + /// + public string ProductCode + { + get + { + return this.productCodeField; + } + set + { + this.productCodeFieldSet = true; + this.productCodeField = value; + } + } + + /// + /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. + /// + public string Version + { + get + { + return this.versionField; + } + set + { + this.versionFieldSet = true; + this.versionField = value; + } + } + + /// + /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. + /// The default value is 'no'. + /// + public YesNoType Supersede + { + get + { + return this.supersedeField; + } + set + { + this.supersedeFieldSet = true; + this.supersedeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("All" == childName)) + { + childValue = new All(); + } + if (("BinaryRef" == childName)) + { + childValue = new BinaryRef(); + } + if (("ComponentRef" == childName)) + { + childValue = new ComponentRef(); + } + if (("CustomActionRef" == childName)) + { + childValue = new CustomActionRef(); + } + if (("DigitalCertificateRef" == childName)) + { + childValue = new DigitalCertificateRef(); + } + if (("DirectoryRef" == childName)) + { + childValue = new DirectoryRef(); + } + if (("FeatureRef" == childName)) + { + childValue = new FeatureRef(); + } + if (("IconRef" == childName)) + { + childValue = new IconRef(); + } + if (("PropertyRef" == childName)) + { + childValue = new PropertyRef(); + } + if (("UIRef" == childName)) + { + childValue = new UIRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchFamily", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.productCodeFieldSet) + { + writer.WriteAttributeString("ProductCode", this.productCodeField); + } + if (this.versionFieldSet) + { + writer.WriteAttributeString("Version", this.versionField); + } + if (this.supersedeFieldSet) + { + if ((this.supersedeField == YesNoType.no)) + { + writer.WriteAttributeString("Supersede", "no"); + } + if ((this.supersedeField == YesNoType.yes)) + { + writer.WriteAttributeString("Supersede", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("ProductCode" == name)) + { + this.productCodeField = value; + this.productCodeFieldSet = true; + } + if (("Version" == name)) + { + this.versionField = value; + this.versionFieldSet = true; + } + if (("Supersede" == name)) + { + this.supersedeField = Enums.ParseYesNoType(value); + this.supersedeFieldSet = true; + } + } + } + + /// + /// Groups together multiple patch families to be used in other locations. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchFamilyGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public PatchFamilyGroup() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for the PatchFamilyGroup. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("PatchFamily" == childName)) + { + childValue = new PatchFamily(); + } + if (("PatchFamilyRef" == childName)) + { + childValue = new PatchFamilyRef(); + } + if (("PatchFamilyGroupRef" == childName)) + { + childValue = new PatchFamilyGroupRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchFamilyGroup", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Create a reference to a PatchFamilyGroup in another Fragment. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchFamilyGroupRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the PatchFamilyGroup to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchFamilyGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section + /// can be given to the linker to produce a successful result. Using this element creates a pcp file. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchCreation : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private YesNoType allowMajorVersionMismatchesField; + + private bool allowMajorVersionMismatchesFieldSet; + + private YesNoType allowProductCodeMismatchesField; + + private bool allowProductCodeMismatchesFieldSet; + + private YesNoType cleanWorkingFolderField; + + private bool cleanWorkingFolderFieldSet; + + private string codepageField; + + private bool codepageFieldSet; + + private string outputPathField; + + private bool outputPathFieldSet; + + private string sourceListField; + + private bool sourceListFieldSet; + + private int symbolFlagsField; + + private bool symbolFlagsFieldSet; + + private YesNoType wholeFilesOnlyField; + + private bool wholeFilesOnlyFieldSet; + + private ISchemaElement parentElement; + + public PatchCreation() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchInformation))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchMetadata))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Family))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchSequence))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ReplacePatch))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// PatchCreation identifier; this is the primary key for identifying patches. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Use this to set whether the major versions between the upgrade and target images match. See + /// + public YesNoType AllowMajorVersionMismatches + { + get + { + return this.allowMajorVersionMismatchesField; + } + set + { + this.allowMajorVersionMismatchesFieldSet = true; + this.allowMajorVersionMismatchesField = value; + } + } + + /// + /// Use this to set whether the product code between the upgrade and target images match. See + /// + public YesNoType AllowProductCodeMismatches + { + get + { + return this.allowProductCodeMismatchesField; + } + set + { + this.allowProductCodeMismatchesFieldSet = true; + this.allowProductCodeMismatchesField = value; + } + } + + /// + /// Use this to set whether Patchwiz should clean the temp folder when finished. See + /// + public YesNoType CleanWorkingFolder + { + get + { + return this.cleanWorkingFolderField; + } + set + { + this.cleanWorkingFolderFieldSet = true; + this.cleanWorkingFolderField = value; + } + } + + /// + /// The code page integer value or web name for the resulting PCP. See remarks for more information. + /// + public string Codepage + { + get + { + return this.codepageField; + } + set + { + this.codepageFieldSet = true; + this.codepageField = value; + } + } + + /// + /// The full path, including file name, of the patch package file that is to be generated. See + /// + public string OutputPath + { + get + { + return this.outputPathField; + } + set + { + this.outputPathFieldSet = true; + this.outputPathField = value; + } + } + + /// + /// Used to locate the .msp file for the patch if the cached copy is unavailable. See + /// + public string SourceList + { + get + { + return this.sourceListField; + } + set + { + this.sourceListFieldSet = true; + this.sourceListField = value; + } + } + + /// + /// An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See + /// + public int SymbolFlags + { + get + { + return this.symbolFlagsField; + } + set + { + this.symbolFlagsFieldSet = true; + this.symbolFlagsField = value; + } + } + + /// + /// Use this to set whether changing files should be included in their entirety. See + /// + public YesNoType WholeFilesOnly + { + get + { + return this.wholeFilesOnlyField; + } + set + { + this.wholeFilesOnlyFieldSet = true; + this.wholeFilesOnlyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("PatchInformation" == childName)) + { + childValue = new PatchInformation(); + } + if (("PatchMetadata" == childName)) + { + childValue = new PatchMetadata(); + } + if (("Family" == childName)) + { + childValue = new Family(); + } + if (("PatchProperty" == childName)) + { + childValue = new PatchProperty(); + } + if (("PatchSequence" == childName)) + { + childValue = new PatchSequence(); + } + if (("ReplacePatch" == childName)) + { + childValue = new ReplacePatch(); + } + if (("TargetProductCode" == childName)) + { + childValue = new TargetProductCode(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchCreation", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.allowMajorVersionMismatchesFieldSet) + { + if ((this.allowMajorVersionMismatchesField == YesNoType.no)) + { + writer.WriteAttributeString("AllowMajorVersionMismatches", "no"); + } + if ((this.allowMajorVersionMismatchesField == YesNoType.yes)) + { + writer.WriteAttributeString("AllowMajorVersionMismatches", "yes"); + } + } + if (this.allowProductCodeMismatchesFieldSet) + { + if ((this.allowProductCodeMismatchesField == YesNoType.no)) + { + writer.WriteAttributeString("AllowProductCodeMismatches", "no"); + } + if ((this.allowProductCodeMismatchesField == YesNoType.yes)) + { + writer.WriteAttributeString("AllowProductCodeMismatches", "yes"); + } + } + if (this.cleanWorkingFolderFieldSet) + { + if ((this.cleanWorkingFolderField == YesNoType.no)) + { + writer.WriteAttributeString("CleanWorkingFolder", "no"); + } + if ((this.cleanWorkingFolderField == YesNoType.yes)) + { + writer.WriteAttributeString("CleanWorkingFolder", "yes"); + } + } + if (this.codepageFieldSet) + { + writer.WriteAttributeString("Codepage", this.codepageField); + } + if (this.outputPathFieldSet) + { + writer.WriteAttributeString("OutputPath", this.outputPathField); + } + if (this.sourceListFieldSet) + { + writer.WriteAttributeString("SourceList", this.sourceListField); + } + if (this.symbolFlagsFieldSet) + { + writer.WriteAttributeString("SymbolFlags", this.symbolFlagsField.ToString(CultureInfo.InvariantCulture)); + } + if (this.wholeFilesOnlyFieldSet) + { + if ((this.wholeFilesOnlyField == YesNoType.no)) + { + writer.WriteAttributeString("WholeFilesOnly", "no"); + } + if ((this.wholeFilesOnlyField == YesNoType.yes)) + { + writer.WriteAttributeString("WholeFilesOnly", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("AllowMajorVersionMismatches" == name)) + { + this.allowMajorVersionMismatchesField = Enums.ParseYesNoType(value); + this.allowMajorVersionMismatchesFieldSet = true; + } + if (("AllowProductCodeMismatches" == name)) + { + this.allowProductCodeMismatchesField = Enums.ParseYesNoType(value); + this.allowProductCodeMismatchesFieldSet = true; + } + if (("CleanWorkingFolder" == name)) + { + this.cleanWorkingFolderField = Enums.ParseYesNoType(value); + this.cleanWorkingFolderFieldSet = true; + } + if (("Codepage" == name)) + { + this.codepageField = value; + this.codepageFieldSet = true; + } + if (("OutputPath" == name)) + { + this.outputPathField = value; + this.outputPathFieldSet = true; + } + if (("SourceList" == name)) + { + this.sourceListField = value; + this.sourceListFieldSet = true; + } + if (("SymbolFlags" == name)) + { + this.symbolFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.symbolFlagsFieldSet = true; + } + if (("WholeFilesOnly" == name)) + { + this.wholeFilesOnlyField = Enums.ParseYesNoType(value); + this.wholeFilesOnlyFieldSet = true; + } + } + } + + /// + /// Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchInformation : ISchemaElement, ISetAttributes + { + + private string descriptionField; + + private bool descriptionFieldSet; + + private string platformsField; + + private bool platformsFieldSet; + + private string languagesField; + + private bool languagesFieldSet; + + private string manufacturerField; + + private bool manufacturerFieldSet; + + private string keywordsField; + + private bool keywordsFieldSet; + + private string commentsField; + + private bool commentsFieldSet; + + private YesNoDefaultType readOnlyField; + + private bool readOnlyFieldSet; + + private string summaryCodepageField; + + private bool summaryCodepageFieldSet; + + private YesNoType shortNamesField; + + private bool shortNamesFieldSet; + + private YesNoType compressedField; + + private bool compressedFieldSet; + + private YesNoType adminImageField; + + private bool adminImageFieldSet; + + private ISchemaElement parentElement; + + /// + /// A short description of the patch that includes the name of the product. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + public string Platforms + { + get + { + return this.platformsField; + } + set + { + this.platformsFieldSet = true; + this.platformsField = value; + } + } + + public string Languages + { + get + { + return this.languagesField; + } + set + { + this.languagesFieldSet = true; + this.languagesField = value; + } + } + + /// + /// The name of the manufacturer of the patch package. + /// + public string Manufacturer + { + get + { + return this.manufacturerField; + } + set + { + this.manufacturerFieldSet = true; + this.manufacturerField = value; + } + } + + /// + /// A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database". + /// + public string Keywords + { + get + { + return this.keywordsField; + } + set + { + this.keywordsFieldSet = true; + this.keywordsField = value; + } + } + + /// + /// General purpose of the patch package. For example, "This patch contains the logic and data required to install + /// + public string Comments + { + get + { + return this.commentsField; + } + set + { + this.commentsFieldSet = true; + this.commentsField = value; + } + } + + /// + /// The value of this attribute conveys whether the package should be opened as read-only. + /// A database editing tool should not modify a read-only enforced database and should + /// issue a warning at attempts to modify a read-only recommended database. + /// + public YesNoDefaultType ReadOnly + { + get + { + return this.readOnlyField; + } + set + { + this.readOnlyFieldSet = true; + this.readOnlyField = value; + } + } + + /// + /// The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information. + /// + public string SummaryCodepage + { + get + { + return this.summaryCodepageField; + } + set + { + this.summaryCodepageFieldSet = true; + this.summaryCodepageField = value; + } + } + + public YesNoType ShortNames + { + get + { + return this.shortNamesField; + } + set + { + this.shortNamesFieldSet = true; + this.shortNamesField = value; + } + } + + public YesNoType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + public YesNoType AdminImage + { + get + { + return this.adminImageField; + } + set + { + this.adminImageFieldSet = true; + this.adminImageField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchInformation", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.platformsFieldSet) + { + writer.WriteAttributeString("Platforms", this.platformsField); + } + if (this.languagesFieldSet) + { + writer.WriteAttributeString("Languages", this.languagesField); + } + if (this.manufacturerFieldSet) + { + writer.WriteAttributeString("Manufacturer", this.manufacturerField); + } + if (this.keywordsFieldSet) + { + writer.WriteAttributeString("Keywords", this.keywordsField); + } + if (this.commentsFieldSet) + { + writer.WriteAttributeString("Comments", this.commentsField); + } + if (this.readOnlyFieldSet) + { + if ((this.readOnlyField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("ReadOnly", "default"); + } + if ((this.readOnlyField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("ReadOnly", "no"); + } + if ((this.readOnlyField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("ReadOnly", "yes"); + } + } + if (this.summaryCodepageFieldSet) + { + writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); + } + if (this.shortNamesFieldSet) + { + if ((this.shortNamesField == YesNoType.no)) + { + writer.WriteAttributeString("ShortNames", "no"); + } + if ((this.shortNamesField == YesNoType.yes)) + { + writer.WriteAttributeString("ShortNames", "yes"); + } + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.adminImageFieldSet) + { + if ((this.adminImageField == YesNoType.no)) + { + writer.WriteAttributeString("AdminImage", "no"); + } + if ((this.adminImageField == YesNoType.yes)) + { + writer.WriteAttributeString("AdminImage", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("Platforms" == name)) + { + this.platformsField = value; + this.platformsFieldSet = true; + } + if (("Languages" == name)) + { + this.languagesField = value; + this.languagesFieldSet = true; + } + if (("Manufacturer" == name)) + { + this.manufacturerField = value; + this.manufacturerFieldSet = true; + } + if (("Keywords" == name)) + { + this.keywordsField = value; + this.keywordsFieldSet = true; + } + if (("Comments" == name)) + { + this.commentsField = value; + this.commentsFieldSet = true; + } + if (("ReadOnly" == name)) + { + this.readOnlyField = Enums.ParseYesNoDefaultType(value); + this.readOnlyFieldSet = true; + } + if (("SummaryCodepage" == name)) + { + this.summaryCodepageField = value; + this.summaryCodepageFieldSet = true; + } + if (("ShortNames" == name)) + { + this.shortNamesField = Enums.ParseYesNoType(value); + this.shortNamesFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoType(value); + this.compressedFieldSet = true; + } + if (("AdminImage" == name)) + { + this.adminImageField = Enums.ParseYesNoType(value); + this.adminImageFieldSet = true; + } + } + } + + /// + /// Properties about the patch to be placed in the PatchMetadata table. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchMetadata : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private YesNoType allowRemovalField; + + private bool allowRemovalFieldSet; + + private string classificationField; + + private bool classificationFieldSet; + + private string creationTimeUTCField; + + private bool creationTimeUTCFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private string manufacturerNameField; + + private bool manufacturerNameFieldSet; + + private string minorUpdateTargetRTMField; + + private bool minorUpdateTargetRTMFieldSet; + + private string moreInfoURLField; + + private bool moreInfoURLFieldSet; + + private YesNoType optimizedInstallModeField; + + private bool optimizedInstallModeFieldSet; + + private string targetProductNameField; + + private bool targetProductNameFieldSet; + + private ISchemaElement parentElement; + + public PatchMetadata() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomProperty))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Whether this is an uninstallable patch. + /// + public YesNoType AllowRemoval + { + get + { + return this.allowRemovalField; + } + set + { + this.allowRemovalFieldSet = true; + this.allowRemovalField = value; + } + } + + /// + /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. + /// + public string Classification + { + get + { + return this.classificationField; + } + set + { + this.classificationFieldSet = true; + this.classificationField = value; + } + } + + /// + /// Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute). + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public string CreationTimeUTC + { + get + { + return this.creationTimeUTCField; + } + set + { + this.creationTimeUTCFieldSet = true; + this.creationTimeUTCField = value; + } + } + + /// + /// Description of the patch. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// Name of the manufacturer. + /// + public string ManufacturerName + { + get + { + return this.manufacturerNameField; + } + set + { + this.manufacturerNameFieldSet = true; + this.manufacturerNameField = value; + } + } + + /// + /// Indicates that the patch targets the RTM version of the product or the most recent major + /// upgrade patch. Author this optional property in minor update patches that contain sequencing + /// information to indicate that the patch removes all patches up to the RTM version of the + /// product, or up to the most recent major upgrade patch. This property is available beginning + /// with Windows Installer 3.1. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public string MinorUpdateTargetRTM + { + get + { + return this.minorUpdateTargetRTMField; + } + set + { + this.minorUpdateTargetRTMFieldSet = true; + this.minorUpdateTargetRTMField = value; + } + } + + /// + /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public string MoreInfoURL + { + get + { + return this.moreInfoURLField; + } + set + { + this.moreInfoURLFieldSet = true; + this.moreInfoURLField = value; + } + } + + /// + /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the + /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. + /// + public YesNoType OptimizedInstallMode + { + get + { + return this.optimizedInstallModeField; + } + set + { + this.optimizedInstallModeFieldSet = true; + this.optimizedInstallModeField = value; + } + } + + /// + /// Name of the application or target product suite. + /// + public string TargetProductName + { + get + { + return this.targetProductNameField; + } + set + { + this.targetProductNameFieldSet = true; + this.targetProductNameField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("CustomProperty" == childName)) + { + childValue = new CustomProperty(); + } + if (("OptimizeCustomActions" == childName)) + { + childValue = new OptimizeCustomActions(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchMetadata", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.allowRemovalFieldSet) + { + if ((this.allowRemovalField == YesNoType.no)) + { + writer.WriteAttributeString("AllowRemoval", "no"); + } + if ((this.allowRemovalField == YesNoType.yes)) + { + writer.WriteAttributeString("AllowRemoval", "yes"); + } + } + if (this.classificationFieldSet) + { + writer.WriteAttributeString("Classification", this.classificationField); + } + if (this.creationTimeUTCFieldSet) + { + writer.WriteAttributeString("CreationTimeUTC", this.creationTimeUTCField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.manufacturerNameFieldSet) + { + writer.WriteAttributeString("ManufacturerName", this.manufacturerNameField); + } + if (this.minorUpdateTargetRTMFieldSet) + { + writer.WriteAttributeString("MinorUpdateTargetRTM", this.minorUpdateTargetRTMField); + } + if (this.moreInfoURLFieldSet) + { + writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); + } + if (this.optimizedInstallModeFieldSet) + { + if ((this.optimizedInstallModeField == YesNoType.no)) + { + writer.WriteAttributeString("OptimizedInstallMode", "no"); + } + if ((this.optimizedInstallModeField == YesNoType.yes)) + { + writer.WriteAttributeString("OptimizedInstallMode", "yes"); + } + } + if (this.targetProductNameFieldSet) + { + writer.WriteAttributeString("TargetProductName", this.targetProductNameField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("AllowRemoval" == name)) + { + this.allowRemovalField = Enums.ParseYesNoType(value); + this.allowRemovalFieldSet = true; + } + if (("Classification" == name)) + { + this.classificationField = value; + this.classificationFieldSet = true; + } + if (("CreationTimeUTC" == name)) + { + this.creationTimeUTCField = value; + this.creationTimeUTCFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("ManufacturerName" == name)) + { + this.manufacturerNameField = value; + this.manufacturerNameFieldSet = true; + } + if (("MinorUpdateTargetRTM" == name)) + { + this.minorUpdateTargetRTMField = value; + this.minorUpdateTargetRTMFieldSet = true; + } + if (("MoreInfoURL" == name)) + { + this.moreInfoURLField = value; + this.moreInfoURLFieldSet = true; + } + if (("OptimizedInstallMode" == name)) + { + this.optimizedInstallModeField = Enums.ParseYesNoType(value); + this.optimizedInstallModeFieldSet = true; + } + if (("TargetProductName" == name)) + { + this.targetProductNameField = value; + this.targetProductNameFieldSet = true; + } + } + } + + /// + /// A custom property for the PatchMetadata table. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CustomProperty : ISchemaElement, ISetAttributes + { + + private string companyField; + + private bool companyFieldSet; + + private string propertyField; + + private bool propertyFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of the company. + /// + public string Company + { + get + { + return this.companyField; + } + set + { + this.companyFieldSet = true; + this.companyField = value; + } + } + + /// + /// The name of the metadata property. + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + /// + /// Value of the metadata property. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CustomProperty", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.companyFieldSet) + { + writer.WriteAttributeString("Company", this.companyField); + } + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Company" == name)) + { + this.companyField = value; + this.companyFieldSet = true; + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// A patch that is deprecated by this patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ReplacePatch : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// Patch GUID to be unregistered if it exists on the machine targeted by this patch. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ReplacePatch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// The product codes for products that can accept the patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class TargetProductCodes : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private YesNoType replaceField; + + private bool replaceFieldSet; + + private ISchemaElement parentElement; + + public TargetProductCodes() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Whether to replace the product codes that can accept the patch from the target packages with the child elements. + /// + public YesNoType Replace + { + get + { + return this.replaceField; + } + set + { + this.replaceFieldSet = true; + this.replaceField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("TargetProductCode" == childName)) + { + childValue = new TargetProductCode(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("TargetProductCodes", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.replaceFieldSet) + { + if ((this.replaceField == YesNoType.no)) + { + writer.WriteAttributeString("Replace", "no"); + } + if ((this.replaceField == YesNoType.yes)) + { + writer.WriteAttributeString("Replace", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Replace" == name)) + { + this.replaceField = Enums.ParseYesNoType(value); + this.replaceFieldSet = true; + } + } + } + + /// + /// A product code for a product that can accept the patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class TargetProductCode : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The product code for a product that can accept the patch. This can be '*'. See remarks for more information. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("TargetProductCode", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// A property for this patch database. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchProperty : ISchemaElement, ISetAttributes + { + + private string companyField; + + private bool companyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// Name of the company for a custom metadata property. + /// + public string Company + { + get + { + return this.companyField; + } + set + { + this.companyFieldSet = true; + this.companyField = value; + } + } + + /// + /// Name of the patch property. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Value of the patch property. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchProperty", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.companyFieldSet) + { + writer.WriteAttributeString("Company", this.companyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Company" == name)) + { + this.companyField = value; + this.companyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchSequence : ISchemaElement, ISetAttributes + { + + private string patchFamilyField; + + private bool patchFamilyFieldSet; + + private string productCodeField; + + private bool productCodeFieldSet; + + private string sequenceField; + + private bool sequenceFieldSet; + + private YesNoType supersedeField; + + private bool supersedeFieldSet; + + private string targetField; + + private bool targetFieldSet; + + private string targetImageField; + + private bool targetImageFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier which indicates a sequence family to which this patch belongs. + /// + public string PatchFamily + { + get + { + return this.patchFamilyField; + } + set + { + this.patchFamilyFieldSet = true; + this.patchFamilyField = value; + } + } + + /// + /// Specifies the ProductCode of the product that this family applies to. + /// This attribute cannot the specified if the TargetImage attribute is specified. + /// + public string ProductCode + { + get + { + return this.productCodeField; + } + set + { + this.productCodeFieldSet = true; + this.productCodeField = value; + } + } + + /// + /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. + /// + public string Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + /// + /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. + /// The default value is 'no'. + /// + public YesNoType Supersede + { + get + { + return this.supersedeField; + } + set + { + this.supersedeFieldSet = true; + this.supersedeField = value; + } + } + + public string Target + { + get + { + return this.targetField; + } + set + { + this.targetFieldSet = true; + this.targetField = value; + } + } + + /// + /// Specifies the TargetImage that this family applies to. + /// This attribute cannot the specified if the ProductCode attribute is specified. + /// + public string TargetImage + { + get + { + return this.targetImageField; + } + set + { + this.targetImageFieldSet = true; + this.targetImageField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchSequence", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.patchFamilyFieldSet) + { + writer.WriteAttributeString("PatchFamily", this.patchFamilyField); + } + if (this.productCodeFieldSet) + { + writer.WriteAttributeString("ProductCode", this.productCodeField); + } + if (this.sequenceFieldSet) + { + writer.WriteAttributeString("Sequence", this.sequenceField); + } + if (this.supersedeFieldSet) + { + if ((this.supersedeField == YesNoType.no)) + { + writer.WriteAttributeString("Supersede", "no"); + } + if ((this.supersedeField == YesNoType.yes)) + { + writer.WriteAttributeString("Supersede", "yes"); + } + } + if (this.targetFieldSet) + { + writer.WriteAttributeString("Target", this.targetField); + } + if (this.targetImageFieldSet) + { + writer.WriteAttributeString("TargetImage", this.targetImageField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("PatchFamily" == name)) + { + this.patchFamilyField = value; + this.patchFamilyFieldSet = true; + } + if (("ProductCode" == name)) + { + this.productCodeField = value; + this.productCodeFieldSet = true; + } + if (("Sequence" == name)) + { + this.sequenceField = value; + this.sequenceFieldSet = true; + } + if (("Supersede" == name)) + { + this.supersedeField = Enums.ParseYesNoType(value); + this.supersedeFieldSet = true; + } + if (("Target" == name)) + { + this.targetField = value; + this.targetFieldSet = true; + } + if (("TargetImage" == name)) + { + this.targetImageField = value; + this.targetImageFieldSet = true; + } + } + } + + /// + /// Group of one or more upgraded images of a product. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Family : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string diskIdField; + + private bool diskIdFieldSet; + + private string diskPromptField; + + private bool diskPromptFieldSet; + + private string mediaSrcPropField; + + private bool mediaSrcPropFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private int sequenceStartField; + + private bool sequenceStartFieldSet; + + private string volumeLabelField; + + private bool volumeLabelFieldSet; + + private ISchemaElement parentElement; + + public Family() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(UpgradeImage))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ExternalFile))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectFile))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Entered into the DiskId field of the new Media table record. + /// + public string DiskId + { + get + { + return this.diskIdField; + } + set + { + this.diskIdFieldSet = true; + this.diskIdField = value; + } + } + + /// + /// Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. + /// + public string DiskPrompt + { + get + { + return this.diskPromptField; + } + set + { + this.diskPromptFieldSet = true; + this.diskPromptField = value; + } + } + + /// + /// Entered into the Source field of the new Media table entry of the upgraded image. + /// + public string MediaSrcProp + { + get + { + return this.mediaSrcPropField; + } + set + { + this.mediaSrcPropFieldSet = true; + this.mediaSrcPropField = value; + } + } + + /// + /// Identifier for the family. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Sequence number for the starting file. + /// + public int SequenceStart + { + get + { + return this.sequenceStartField; + } + set + { + this.sequenceStartFieldSet = true; + this.sequenceStartField = value; + } + } + + /// + /// Entered into the VolumeLabel field of the new Media table record. + /// + public string VolumeLabel + { + get + { + return this.volumeLabelField; + } + set + { + this.volumeLabelFieldSet = true; + this.volumeLabelField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("UpgradeImage" == childName)) + { + childValue = new UpgradeImage(); + } + if (("ExternalFile" == childName)) + { + childValue = new ExternalFile(); + } + if (("ProtectFile" == childName)) + { + childValue = new ProtectFile(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Family", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.diskIdFieldSet) + { + writer.WriteAttributeString("DiskId", this.diskIdField); + } + if (this.diskPromptFieldSet) + { + writer.WriteAttributeString("DiskPrompt", this.diskPromptField); + } + if (this.mediaSrcPropFieldSet) + { + writer.WriteAttributeString("MediaSrcProp", this.mediaSrcPropField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.sequenceStartFieldSet) + { + writer.WriteAttributeString("SequenceStart", this.sequenceStartField.ToString(CultureInfo.InvariantCulture)); + } + if (this.volumeLabelFieldSet) + { + writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("DiskId" == name)) + { + this.diskIdField = value; + this.diskIdFieldSet = true; + } + if (("DiskPrompt" == name)) + { + this.diskPromptField = value; + this.diskPromptFieldSet = true; + } + if (("MediaSrcProp" == name)) + { + this.mediaSrcPropField = value; + this.mediaSrcPropFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("SequenceStart" == name)) + { + this.sequenceStartField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.sequenceStartFieldSet = true; + } + if (("VolumeLabel" == name)) + { + this.volumeLabelField = value; + this.volumeLabelFieldSet = true; + } + } + } + + /// + /// Contains information about the upgraded images of the product. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UpgradeImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private string sourcePatchField; + + private bool sourcePatchFieldSet; + + private string srcPatchField; + + private bool srcPatchFieldSet; + + private ISchemaElement parentElement; + + public UpgradeImage() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(TargetImage))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeFile))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier to connect target images with upgraded image. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Full path to location of msi file for upgraded image. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + /// + /// Modified copy of the upgraded installation database that contains additional authoring specific to patching. + /// + public string SourcePatch + { + get + { + return this.sourcePatchField; + } + set + { + this.sourcePatchFieldSet = true; + this.sourcePatchField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string srcPatch + { + get + { + return this.srcPatchField; + } + set + { + this.srcPatchFieldSet = true; + this.srcPatchField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("TargetImage" == childName)) + { + childValue = new TargetImage(); + } + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if (("UpgradeFile" == childName)) + { + childValue = new UpgradeFile(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UpgradeImage", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + if (this.sourcePatchFieldSet) + { + writer.WriteAttributeString("SourcePatch", this.sourcePatchField); + } + if (this.srcPatchFieldSet) + { + writer.WriteAttributeString("srcPatch", this.srcPatchField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + if (("SourcePatch" == name)) + { + this.sourcePatchField = value; + this.sourcePatchFieldSet = true; + } + if (("srcPatch" == name)) + { + this.srcPatchField = value; + this.srcPatchFieldSet = true; + } + } + } + + /// + /// Contains information about the target images of the product. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class TargetImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private int orderField; + + private bool orderFieldSet; + + private string validationField; + + private bool validationFieldSet; + + private YesNoType ignoreMissingFilesField; + + private bool ignoreMissingFilesFieldSet; + + private ISchemaElement parentElement; + + public TargetImage() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetFile))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for the target image. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Full path to the location of the msi file for the target image. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + /// + /// Relative order of the target image. + /// + public int Order + { + get + { + return this.orderField; + } + set + { + this.orderFieldSet = true; + this.orderField = value; + } + } + + /// + /// Product checking to avoid applying irrelevant transforms. + /// + public string Validation + { + get + { + return this.validationField; + } + set + { + this.validationFieldSet = true; + this.validationField = value; + } + } + + /// + /// Files missing from the target image are ignored by the installer. + /// + public YesNoType IgnoreMissingFiles + { + get + { + return this.ignoreMissingFilesField; + } + set + { + this.ignoreMissingFilesFieldSet = true; + this.ignoreMissingFilesField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if (("TargetFile" == childName)) + { + childValue = new TargetFile(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("TargetImage", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + if (this.orderFieldSet) + { + writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); + } + if (this.validationFieldSet) + { + writer.WriteAttributeString("Validation", this.validationField); + } + if (this.ignoreMissingFilesFieldSet) + { + if ((this.ignoreMissingFilesField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreMissingFiles", "no"); + } + if ((this.ignoreMissingFilesField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreMissingFiles", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + if (("Order" == name)) + { + this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.orderFieldSet = true; + } + if (("Validation" == name)) + { + this.validationField = value; + this.validationFieldSet = true; + } + if (("IgnoreMissingFiles" == name)) + { + this.ignoreMissingFilesField = Enums.ParseYesNoType(value); + this.ignoreMissingFilesFieldSet = true; + } + } + } + + /// + /// Information about specific files in a target image. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class TargetFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public TargetFile() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Foreign key into the File table. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if (("IgnoreRange" == childName)) + { + childValue = new IgnoreRange(); + } + if (("ProtectRange" == childName)) + { + childValue = new ProtectRange(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("TargetFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Specifies part of a file that is to be ignored during patching. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IgnoreRange : ISchemaElement, ISetAttributes + { + + private int offsetField; + + private bool offsetFieldSet; + + private int lengthField; + + private bool lengthFieldSet; + + private ISchemaElement parentElement; + + /// + /// Offset of the start of the range. + /// + public int Offset + { + get + { + return this.offsetField; + } + set + { + this.offsetFieldSet = true; + this.offsetField = value; + } + } + + /// + /// Length of the range. + /// + public int Length + { + get + { + return this.lengthField; + } + set + { + this.lengthFieldSet = true; + this.lengthField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IgnoreRange", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.offsetFieldSet) + { + writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); + } + if (this.lengthFieldSet) + { + writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Offset" == name)) + { + this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.offsetFieldSet = true; + } + if (("Length" == name)) + { + this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.lengthFieldSet = true; + } + } + } + + /// + /// Specifies part of a file that cannot be overwritten during patching. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ProtectRange : ISchemaElement, ISetAttributes + { + + private int offsetField; + + private bool offsetFieldSet; + + private int lengthField; + + private bool lengthFieldSet; + + private ISchemaElement parentElement; + + /// + /// Offset of the start of the range. + /// + public int Offset + { + get + { + return this.offsetField; + } + set + { + this.offsetFieldSet = true; + this.offsetField = value; + } + } + + /// + /// Length of the range. + /// + public int Length + { + get + { + return this.lengthField; + } + set + { + this.lengthFieldSet = true; + this.lengthField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ProtectRange", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.offsetFieldSet) + { + writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); + } + if (this.lengthFieldSet) + { + writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Offset" == name)) + { + this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.offsetFieldSet = true; + } + if (("Length" == name)) + { + this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.lengthFieldSet = true; + } + } + } + + /// + /// Specifies a file to be protected. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ProtectFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string fileField; + + private bool fileFieldSet; + + private ISchemaElement parentElement; + + public ProtectFile() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Foreign key into the File table. + /// + public string File + { + get + { + return this.fileField; + } + set + { + this.fileFieldSet = true; + this.fileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ProtectRange" == childName)) + { + childValue = new ProtectRange(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ProtectFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.fileFieldSet) + { + writer.WriteAttributeString("File", this.fileField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("File" == name)) + { + this.fileField = value; + this.fileFieldSet = true; + } + } + } + + /// + /// Contains information about specific files that are not part of a regular target image. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ExternalFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string fileField; + + private bool fileFieldSet; + + private string sourceField; + + private bool sourceFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private int orderField; + + private bool orderFieldSet; + + private ISchemaElement parentElement; + + public ExternalFile() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProtectRange))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Foreign key into the File table. + /// + public string File + { + get + { + return this.fileField; + } + set + { + this.fileFieldSet = true; + this.fileField = value; + } + } + + /// + /// Full path of the external file. + /// + public string Source + { + get + { + return this.sourceField; + } + set + { + this.sourceFieldSet = true; + this.sourceField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + /// + /// Specifies the order of the external files to use when creating the patch. + /// + public int Order + { + get + { + return this.orderField; + } + set + { + this.orderFieldSet = true; + this.orderField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ProtectRange" == childName)) + { + childValue = new ProtectRange(); + } + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if (("IgnoreRange" == childName)) + { + childValue = new IgnoreRange(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ExternalFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.fileFieldSet) + { + writer.WriteAttributeString("File", this.fileField); + } + if (this.sourceFieldSet) + { + writer.WriteAttributeString("Source", this.sourceField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + if (this.orderFieldSet) + { + writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("File" == name)) + { + this.fileField = value; + this.fileFieldSet = true; + } + if (("Source" == name)) + { + this.sourceField = value; + this.sourceFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + if (("Order" == name)) + { + this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.orderFieldSet = true; + } + } + } + + /// + /// Specifies files to either ignore or to specify optional data about a file. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UpgradeFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string fileField; + + private bool fileFieldSet; + + private YesNoType ignoreField; + + private bool ignoreFieldSet; + + private YesNoType allowIgnoreOnErrorField; + + private bool allowIgnoreOnErrorFieldSet; + + private YesNoType wholeFileField; + + private bool wholeFileFieldSet; + + private ISchemaElement parentElement; + + public UpgradeFile() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Foreign key into the File table. + /// + public string File + { + get + { + return this.fileField; + } + set + { + this.fileFieldSet = true; + this.fileField = value; + } + } + + /// + /// If yes, the file is ignored during patching, and the next two attributes are ignored. + /// + public YesNoType Ignore + { + get + { + return this.ignoreField; + } + set + { + this.ignoreFieldSet = true; + this.ignoreField = value; + } + } + + /// + /// Specifies whether patching this file is vital. + /// + public YesNoType AllowIgnoreOnError + { + get + { + return this.allowIgnoreOnErrorField; + } + set + { + this.allowIgnoreOnErrorFieldSet = true; + this.allowIgnoreOnErrorField = value; + } + } + + /// + /// Whether the whole file should be installed, rather than creating a binary patch. + /// + public YesNoType WholeFile + { + get + { + return this.wholeFileField; + } + set + { + this.wholeFileFieldSet = true; + this.wholeFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UpgradeFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.fileFieldSet) + { + writer.WriteAttributeString("File", this.fileField); + } + if (this.ignoreFieldSet) + { + if ((this.ignoreField == YesNoType.no)) + { + writer.WriteAttributeString("Ignore", "no"); + } + if ((this.ignoreField == YesNoType.yes)) + { + writer.WriteAttributeString("Ignore", "yes"); + } + } + if (this.allowIgnoreOnErrorFieldSet) + { + if ((this.allowIgnoreOnErrorField == YesNoType.no)) + { + writer.WriteAttributeString("AllowIgnoreOnError", "no"); + } + if ((this.allowIgnoreOnErrorField == YesNoType.yes)) + { + writer.WriteAttributeString("AllowIgnoreOnError", "yes"); + } + } + if (this.wholeFileFieldSet) + { + if ((this.wholeFileField == YesNoType.no)) + { + writer.WriteAttributeString("WholeFile", "no"); + } + if ((this.wholeFileField == YesNoType.yes)) + { + writer.WriteAttributeString("WholeFile", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("File" == name)) + { + this.fileField = value; + this.fileFieldSet = true; + } + if (("Ignore" == name)) + { + this.ignoreField = Enums.ParseYesNoType(value); + this.ignoreFieldSet = true; + } + if (("AllowIgnoreOnError" == name)) + { + this.allowIgnoreOnErrorField = Enums.ParseYesNoType(value); + this.allowIgnoreOnErrorFieldSet = true; + } + if (("WholeFile" == name)) + { + this.wholeFileField = Enums.ParseYesNoType(value); + this.wholeFileFieldSet = true; + } + } + } + + /// + /// A path to symbols. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SymbolPath : ISchemaElement, ISetAttributes + { + + private string pathField; + + private bool pathFieldSet; + + private ISchemaElement parentElement; + + /// + /// The path. + /// + public string Path + { + get + { + return this.pathField; + } + set + { + this.pathFieldSet = true; + this.pathField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SymbolPath", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.pathFieldSet) + { + writer.WriteAttributeString("Path", this.pathField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Path" == name)) + { + this.pathField = value; + this.pathFieldSet = true; + } + } + } + + /// + /// Properties about the package to be placed in the Summary Information Stream. These are + /// visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Package : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType adminImageField; + + private bool adminImageFieldSet; + + private string commentsField; + + private bool commentsFieldSet; + + private YesNoType compressedField; + + private bool compressedFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private InstallPrivilegesType installPrivilegesField; + + private bool installPrivilegesFieldSet; + + private InstallScopeType installScopeField; + + private bool installScopeFieldSet; + + private int installerVersionField; + + private bool installerVersionFieldSet; + + private string keywordsField; + + private bool keywordsFieldSet; + + private string languagesField; + + private bool languagesFieldSet; + + private string manufacturerField; + + private bool manufacturerFieldSet; + + private string platformsField; + + private bool platformsFieldSet; + + private PlatformType platformField; + + private bool platformFieldSet; + + private YesNoDefaultType readOnlyField; + + private bool readOnlyFieldSet; + + private YesNoType shortNamesField; + + private bool shortNamesFieldSet; + + private string summaryCodepageField; + + private bool summaryCodepageFieldSet; + + private ISchemaElement parentElement; + + /// + /// The package code GUID for a product or merge module. + /// When compiling a product, this attribute should not be set in order to allow the package + /// code to be generated for each build. + /// When compiling a merge module, this attribute must be set to the modularization guid. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set to 'yes' if the source is an admin image. + /// + public YesNoType AdminImage + { + get + { + return this.adminImageField; + } + set + { + this.adminImageFieldSet = true; + this.adminImageField = value; + } + } + + /// + /// Optional comments for browsing. + /// + public string Comments + { + get + { + return this.commentsField; + } + set + { + this.commentsFieldSet = true; + this.commentsField = value; + } + } + + /// + /// Set to 'yes' to have compressed files in the source. + /// This attribute cannot be set for merge modules. + /// + public YesNoType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// The product full name or description. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Use this attribute to specify the priviliges required to install the package on Windows Vista and above. + /// + public InstallPrivilegesType InstallPrivileges + { + get + { + return this.installPrivilegesField; + } + set + { + this.installPrivilegesFieldSet = true; + this.installPrivilegesField = value; + } + } + + /// + /// Use this attribute to specify the installation scope of this package: per-machine or per-user. + /// + public InstallScopeType InstallScope + { + get + { + return this.installScopeField; + } + set + { + this.installScopeFieldSet = true; + this.installScopeField = value; + } + } + + /// + /// The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer + /// and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and + /// "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as + /// Windows Installer 2.0 was the first version to support 64-bit packages. + /// + public int InstallerVersion + { + get + { + return this.installerVersionField; + } + set + { + this.installerVersionFieldSet = true; + this.installerVersionField = value; + } + } + + /// + /// Optional keywords for browsing. + /// + public string Keywords + { + get + { + return this.keywordsField; + } + set + { + this.keywordsFieldSet = true; + this.keywordsField = value; + } + } + + /// + /// The list of language IDs (LCIDs) supported in the package. + /// + public string Languages + { + get + { + return this.languagesField; + } + set + { + this.languagesFieldSet = true; + this.languagesField = value; + } + } + + /// + /// The vendor releasing the package. + /// + public string Manufacturer + { + get + { + return this.manufacturerField; + } + set + { + this.manufacturerFieldSet = true; + this.manufacturerField = value; + } + } + + /// + /// The list of platforms supported by the package. This attribute has been deprecated. + /// Specify the -arch switch at the candle.exe command line or the InstallerPlatform + /// property in a .wixproj MSBuild project. + /// + public string Platforms + { + get + { + return this.platformsField; + } + set + { + this.platformsFieldSet = true; + this.platformsField = value; + } + } + + /// + /// The platform supported by the package. Use of this attribute is discouraged; instead, + /// specify the -arch switch at the candle.exe command line or the InstallerPlatform + /// property in a .wixproj MSBuild project. + /// + public PlatformType Platform + { + get + { + return this.platformField; + } + set + { + this.platformFieldSet = true; + this.platformField = value; + } + } + + /// + /// The value of this attribute conveys whether the package should be opened as read-only. + /// A database editing tool should not modify a read-only enforced database and should + /// issue a warning at attempts to modify a read-only recommended database. + /// + public YesNoDefaultType ReadOnly + { + get + { + return this.readOnlyField; + } + set + { + this.readOnlyFieldSet = true; + this.readOnlyField = value; + } + } + + /// + /// Set to 'yes' to have short filenames in the source. + /// + public YesNoType ShortNames + { + get + { + return this.shortNamesField; + } + set + { + this.shortNamesFieldSet = true; + this.shortNamesField = value; + } + } + + /// + /// The code page integer value or web name for summary info strings only. See remarks for more information. + /// + public string SummaryCodepage + { + get + { + return this.summaryCodepageField; + } + set + { + this.summaryCodepageFieldSet = true; + this.summaryCodepageField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a InstallPrivilegesType from a string. + /// + public static InstallPrivilegesType ParseInstallPrivilegesType(string value) + { + InstallPrivilegesType parsedValue; + Package.TryParseInstallPrivilegesType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a InstallPrivilegesType from a string. + /// + public static bool TryParseInstallPrivilegesType(string value, out InstallPrivilegesType parsedValue) + { + parsedValue = InstallPrivilegesType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("limited" == value)) + { + parsedValue = InstallPrivilegesType.limited; + } + else + { + if (("elevated" == value)) + { + parsedValue = InstallPrivilegesType.elevated; + } + else + { + parsedValue = InstallPrivilegesType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Parses a InstallScopeType from a string. + /// + public static InstallScopeType ParseInstallScopeType(string value) + { + InstallScopeType parsedValue; + Package.TryParseInstallScopeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a InstallScopeType from a string. + /// + public static bool TryParseInstallScopeType(string value, out InstallScopeType parsedValue) + { + parsedValue = InstallScopeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("perMachine" == value)) + { + parsedValue = InstallScopeType.perMachine; + } + else + { + if (("perUser" == value)) + { + parsedValue = InstallScopeType.perUser; + } + else + { + parsedValue = InstallScopeType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Parses a PlatformType from a string. + /// + public static PlatformType ParsePlatformType(string value) + { + PlatformType parsedValue; + Package.TryParsePlatformType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a PlatformType from a string. + /// + public static bool TryParsePlatformType(string value, out PlatformType parsedValue) + { + parsedValue = PlatformType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("x86" == value)) + { + parsedValue = PlatformType.x86; + } + else + { + if (("ia64" == value)) + { + parsedValue = PlatformType.ia64; + } + else + { + if (("x64" == value)) + { + parsedValue = PlatformType.x64; + } + else + { + if (("arm" == value)) + { + parsedValue = PlatformType.arm; + } + else + { + if (("intel" == value)) + { + parsedValue = PlatformType.intel; + } + else + { + if (("intel64" == value)) + { + parsedValue = PlatformType.intel64; + } + else + { + parsedValue = PlatformType.IllegalValue; + return false; + } + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Package", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.adminImageFieldSet) + { + if ((this.adminImageField == YesNoType.no)) + { + writer.WriteAttributeString("AdminImage", "no"); + } + if ((this.adminImageField == YesNoType.yes)) + { + writer.WriteAttributeString("AdminImage", "yes"); + } + } + if (this.commentsFieldSet) + { + writer.WriteAttributeString("Comments", this.commentsField); + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.installPrivilegesFieldSet) + { + if ((this.installPrivilegesField == InstallPrivilegesType.limited)) + { + writer.WriteAttributeString("InstallPrivileges", "limited"); + } + if ((this.installPrivilegesField == InstallPrivilegesType.elevated)) + { + writer.WriteAttributeString("InstallPrivileges", "elevated"); + } + } + if (this.installScopeFieldSet) + { + if ((this.installScopeField == InstallScopeType.perMachine)) + { + writer.WriteAttributeString("InstallScope", "perMachine"); + } + if ((this.installScopeField == InstallScopeType.perUser)) + { + writer.WriteAttributeString("InstallScope", "perUser"); + } + } + if (this.installerVersionFieldSet) + { + writer.WriteAttributeString("InstallerVersion", this.installerVersionField.ToString(CultureInfo.InvariantCulture)); + } + if (this.keywordsFieldSet) + { + writer.WriteAttributeString("Keywords", this.keywordsField); + } + if (this.languagesFieldSet) + { + writer.WriteAttributeString("Languages", this.languagesField); + } + if (this.manufacturerFieldSet) + { + writer.WriteAttributeString("Manufacturer", this.manufacturerField); + } + if (this.platformsFieldSet) + { + writer.WriteAttributeString("Platforms", this.platformsField); + } + if (this.platformFieldSet) + { + if ((this.platformField == PlatformType.x86)) + { + writer.WriteAttributeString("Platform", "x86"); + } + if ((this.platformField == PlatformType.ia64)) + { + writer.WriteAttributeString("Platform", "ia64"); + } + if ((this.platformField == PlatformType.x64)) + { + writer.WriteAttributeString("Platform", "x64"); + } + if ((this.platformField == PlatformType.arm)) + { + writer.WriteAttributeString("Platform", "arm"); + } + if ((this.platformField == PlatformType.intel)) + { + writer.WriteAttributeString("Platform", "intel"); + } + if ((this.platformField == PlatformType.intel64)) + { + writer.WriteAttributeString("Platform", "intel64"); + } + } + if (this.readOnlyFieldSet) + { + if ((this.readOnlyField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("ReadOnly", "default"); + } + if ((this.readOnlyField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("ReadOnly", "no"); + } + if ((this.readOnlyField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("ReadOnly", "yes"); + } + } + if (this.shortNamesFieldSet) + { + if ((this.shortNamesField == YesNoType.no)) + { + writer.WriteAttributeString("ShortNames", "no"); + } + if ((this.shortNamesField == YesNoType.yes)) + { + writer.WriteAttributeString("ShortNames", "yes"); + } + } + if (this.summaryCodepageFieldSet) + { + writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("AdminImage" == name)) + { + this.adminImageField = Enums.ParseYesNoType(value); + this.adminImageFieldSet = true; + } + if (("Comments" == name)) + { + this.commentsField = value; + this.commentsFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoType(value); + this.compressedFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("InstallPrivileges" == name)) + { + this.installPrivilegesField = Package.ParseInstallPrivilegesType(value); + this.installPrivilegesFieldSet = true; + } + if (("InstallScope" == name)) + { + this.installScopeField = Package.ParseInstallScopeType(value); + this.installScopeFieldSet = true; + } + if (("InstallerVersion" == name)) + { + this.installerVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.installerVersionFieldSet = true; + } + if (("Keywords" == name)) + { + this.keywordsField = value; + this.keywordsFieldSet = true; + } + if (("Languages" == name)) + { + this.languagesField = value; + this.languagesFieldSet = true; + } + if (("Manufacturer" == name)) + { + this.manufacturerField = value; + this.manufacturerFieldSet = true; + } + if (("Platforms" == name)) + { + this.platformsField = value; + this.platformsFieldSet = true; + } + if (("Platform" == name)) + { + this.platformField = Package.ParsePlatformType(value); + this.platformFieldSet = true; + } + if (("ReadOnly" == name)) + { + this.readOnlyField = Enums.ParseYesNoDefaultType(value); + this.readOnlyFieldSet = true; + } + if (("ShortNames" == name)) + { + this.shortNamesField = Enums.ParseYesNoType(value); + this.shortNamesFieldSet = true; + } + if (("SummaryCodepage" == name)) + { + this.summaryCodepageField = value; + this.summaryCodepageFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum InstallPrivilegesType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Set this value to declare that the package does not require elevated privileges to install. + /// + limited, + + /// + /// Set this value to declare that the package requires elevated privileges to install. + /// This is the default value. + /// + elevated, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum InstallScopeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Set this value to declare that the package is a per-machine installation and requires elevated privileges to install. + /// Sets the ALLUSERS property to 1. + /// + perMachine, + + /// + /// Set this value to declare that the package is a per-user installation and does not require elevated privileges to install. + /// Sets the package's InstallPrivileges attribute to "limited." + /// + perUser, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum PlatformType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Set this value to declare that the package is an x86 package. + /// + x86, + + /// + /// Set this value to declare that the package is an ia64 package. + /// This value requires that the InstallerVersion property be set to 200 or greater. + /// + ia64, + + /// + /// Set this value to declare that the package is an x64 package. + /// This value requires that the InstallerVersion property be set to 200 or greater. + /// + x64, + + /// + /// Set this value to declare that the package is an arm package. + /// This value requires that the InstallerVersion property be set to 500 or greater. + /// + arm, + + /// + /// This value has been deprecated. Use "x86" instead. + /// + intel, + + /// + /// This value has been deprecated. Use "ia64" instead. + /// + intel64, + } + } + + /// + /// The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. + /// Consider using the Assembly attribute on File element to have the toolset populate these entries automatically. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AssemblyName : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// Name of the attribute associated with the value specified in the Value column. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Value associated with the name specified in the Name column. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AssemblyName", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Identifies the possible signer certificates used to digitally sign patches. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public PatchCertificates() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DigitalCertificate" == childName)) + { + childValue = new DigitalCertificate(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchCertificates", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + /// + /// Digital signatures that identify installation packages in a multi-product transaction. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PackageCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public PackageCertificates() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DigitalCertificate" == childName)) + { + childValue = new DigitalCertificate(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PackageCertificates", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + /// + /// Adds a digital certificate. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DigitalCertificate : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier for a certificate file. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The path to the certificate file. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DigitalCertificate", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + } + } + + /// + /// Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents + /// to be included in the installer database. This is only used for references when patching. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DigitalCertificateRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DigitalCertificateRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Adds a digital signature. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DigitalSignature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private ISchemaElement parentElement; + + public DigitalSignature() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The path to signature's optional hash file. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DigitalCertificate" == childName)) + { + childValue = new DigitalCertificate(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DigitalSignature", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + } + } + + /// + /// Adds a system file protection update catalog file + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SFPCatalog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string nameField; + + private bool nameFieldSet; + + private string dependencyField; + + private bool dependencyFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private ISchemaElement parentElement; + + public SFPCatalog() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPFile))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Filename for catalog file when installed. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Used to define dependency outside of the package. + /// + public string Dependency + { + get + { + return this.dependencyField; + } + set + { + this.dependencyFieldSet = true; + this.dependencyField = value; + } + } + + /// + /// Path to catalog file in binary. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("SFPCatalog" == childName)) + { + childValue = new SFPCatalog(); + } + if (("SFPFile" == childName)) + { + childValue = new SFPFile(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SFPCatalog", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.dependencyFieldSet) + { + writer.WriteAttributeString("Dependency", this.dependencyField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Dependency" == name)) + { + this.dependencyField = value; + this.dependencyFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + } + } + + /// + /// Provides a many-to-many mapping from the SFPCatalog table to the File table + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SFPFile : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// Primary Key to File Table. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SFPFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Adds or removes .ini file entries. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IniFile : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ActionType actionField; + + private bool actionFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string sectionField; + + private bool sectionFieldSet; + + private string shortNameField; + + private bool shortNameFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier for ini file. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The type of modification to be made. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// The localizable .ini file key within the section. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// In prior versions of the WiX toolset, this attribute specified the short name. + /// This attribute's value may now be either a short or long name. + /// If a short name is specified, the ShortName attribute may not be specified. + /// Also, if this value is a long name, the ShortName attribute may be omitted to + /// allow WiX to attempt to generate a unique short name. + /// However, if this name collides with another file or you wish to manually specify + /// the short name, then the ShortName attribute may be specified. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The localizable .ini file section. + /// + public string Section + { + get + { + return this.sectionField; + } + set + { + this.sectionFieldSet = true; + this.sectionField = value; + } + } + + /// + /// The short name of the in 8.3 format. + /// This attribute should only be set if there is a conflict between generated short names + /// or the user wants to manually specify the short name. + /// + public string ShortName + { + get + { + return this.shortNameField; + } + set + { + this.shortNameFieldSet = true; + this.shortNameField = value; + } + } + + /// + /// The localizable value to be written or deleted. This attribute must be set if + /// the Action attribute's value is "addLine", "addTag", or "createLine". + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + IniFile.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("addLine" == value)) + { + parsedValue = ActionType.addLine; + } + else + { + if (("addTag" == value)) + { + parsedValue = ActionType.addTag; + } + else + { + if (("createLine" == value)) + { + parsedValue = ActionType.createLine; + } + else + { + if (("removeLine" == value)) + { + parsedValue = ActionType.removeLine; + } + else + { + if (("removeTag" == value)) + { + parsedValue = ActionType.removeTag; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IniFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.addLine)) + { + writer.WriteAttributeString("Action", "addLine"); + } + if ((this.actionField == ActionType.addTag)) + { + writer.WriteAttributeString("Action", "addTag"); + } + if ((this.actionField == ActionType.createLine)) + { + writer.WriteAttributeString("Action", "createLine"); + } + if ((this.actionField == ActionType.removeLine)) + { + writer.WriteAttributeString("Action", "removeLine"); + } + if ((this.actionField == ActionType.removeTag)) + { + writer.WriteAttributeString("Action", "removeTag"); + } + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.sectionFieldSet) + { + writer.WriteAttributeString("Section", this.sectionField); + } + if (this.shortNameFieldSet) + { + writer.WriteAttributeString("ShortName", this.shortNameField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Action" == name)) + { + this.actionField = IniFile.ParseActionType(value); + this.actionFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Section" == name)) + { + this.sectionField = value; + this.sectionFieldSet = true; + } + if (("ShortName" == name)) + { + this.shortNameField = value; + this.shortNameFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Creates or updates an .ini entry. + /// + addLine, + + /// + /// Creates a new entry or appends a new comma-separated value to an existing entry. + /// + addTag, + + /// + /// Creates an .ini entry only if the entry does no already exist. + /// + createLine, + + /// + /// Removes an .ini entry. + /// + removeLine, + + /// + /// Removes a tag from an .ini entry. + /// + removeTag, + } + } + + /// + /// ODBCDataSource for a Component + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ODBCDataSource : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string driverNameField; + + private bool driverNameFieldSet; + + private RegistrationType registrationField; + + private bool registrationFieldSet; + + private YesNoType keyPathField; + + private bool keyPathFieldSet; + + private ISchemaElement parentElement; + + public ODBCDataSource() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier of the data source. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Name for the data source. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Required if not found as child of ODBCDriver element + /// + public string DriverName + { + get + { + return this.driverNameField; + } + set + { + this.driverNameFieldSet = true; + this.driverNameField = value; + } + } + + /// + /// Scope for which the data source should be registered. + /// + public RegistrationType Registration + { + get + { + return this.registrationField; + } + set + { + this.registrationFieldSet = true; + this.registrationField = value; + } + } + + /// + /// Set 'yes' to force this file to be key path for parent Component + /// + public YesNoType KeyPath + { + get + { + return this.keyPathField; + } + set + { + this.keyPathFieldSet = true; + this.keyPathField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Property" == childName)) + { + childValue = new Property(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a RegistrationType from a string. + /// + public static RegistrationType ParseRegistrationType(string value) + { + RegistrationType parsedValue; + ODBCDataSource.TryParseRegistrationType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a RegistrationType from a string. + /// + public static bool TryParseRegistrationType(string value, out RegistrationType parsedValue) + { + parsedValue = RegistrationType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("machine" == value)) + { + parsedValue = RegistrationType.machine; + } + else + { + if (("user" == value)) + { + parsedValue = RegistrationType.user; + } + else + { + parsedValue = RegistrationType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ODBCDataSource", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.driverNameFieldSet) + { + writer.WriteAttributeString("DriverName", this.driverNameField); + } + if (this.registrationFieldSet) + { + if ((this.registrationField == RegistrationType.machine)) + { + writer.WriteAttributeString("Registration", "machine"); + } + if ((this.registrationField == RegistrationType.user)) + { + writer.WriteAttributeString("Registration", "user"); + } + } + if (this.keyPathFieldSet) + { + if ((this.keyPathField == YesNoType.no)) + { + writer.WriteAttributeString("KeyPath", "no"); + } + if ((this.keyPathField == YesNoType.yes)) + { + writer.WriteAttributeString("KeyPath", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("DriverName" == name)) + { + this.driverNameField = value; + this.driverNameFieldSet = true; + } + if (("Registration" == name)) + { + this.registrationField = ODBCDataSource.ParseRegistrationType(value); + this.registrationFieldSet = true; + } + if (("KeyPath" == name)) + { + this.keyPathField = Enums.ParseYesNoType(value); + this.keyPathFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum RegistrationType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Data source is registered per machine. + /// + machine, + + /// + /// Data source is registered per user. + /// + user, + } + } + + /// + /// ODBCDriver for a Component + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ODBCDriver : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string fileField; + + private bool fileFieldSet; + + private string setupFileField; + + private bool setupFileFieldSet; + + private ISchemaElement parentElement; + + public ODBCDriver() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ODBCDataSource))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for the driver. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Name for the driver. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Required if not found as child of File element + /// + public string File + { + get + { + return this.fileField; + } + set + { + this.fileFieldSet = true; + this.fileField = value; + } + } + + /// + /// Required if not found as child of File element or different from File attribute above + /// + public string SetupFile + { + get + { + return this.setupFileField; + } + set + { + this.setupFileFieldSet = true; + this.setupFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Property" == childName)) + { + childValue = new Property(); + } + if (("ODBCDataSource" == childName)) + { + childValue = new ODBCDataSource(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ODBCDriver", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.fileFieldSet) + { + writer.WriteAttributeString("File", this.fileField); + } + if (this.setupFileFieldSet) + { + writer.WriteAttributeString("SetupFile", this.setupFileField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("File" == name)) + { + this.fileField = value; + this.fileFieldSet = true; + } + if (("SetupFile" == name)) + { + this.setupFileField = value; + this.setupFileFieldSet = true; + } + } + } + + /// + /// ODBCTranslator for a Component + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ODBCTranslator : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string fileField; + + private bool fileFieldSet; + + private string setupFileField; + + private bool setupFileFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier for the translator. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Name for the translator. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Required if not found as child of File element + /// + public string File + { + get + { + return this.fileField; + } + set + { + this.fileFieldSet = true; + this.fileField = value; + } + } + + /// + /// Required if not found as child of File element or different from File attribute above + /// + public string SetupFile + { + get + { + return this.setupFileField; + } + set + { + this.setupFileFieldSet = true; + this.setupFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ODBCTranslator", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.fileFieldSet) + { + writer.WriteAttributeString("File", this.fileField); + } + if (this.setupFileFieldSet) + { + writer.WriteAttributeString("SetupFile", this.setupFileField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("File" == name)) + { + this.fileField = value; + this.fileFieldSet = true; + } + if (("SetupFile" == name)) + { + this.setupFileField = value; + this.setupFileFieldSet = true; + } + } + } + + /// + /// Searches for file and assigns to fullpath value of parent Property + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FileSearch : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string shortNameField; + + private bool shortNameFieldSet; + + private int minSizeField; + + private bool minSizeFieldSet; + + private int maxSizeField; + + private bool maxSizeFieldSet; + + private string minVersionField; + + private bool minVersionFieldSet; + + private string maxVersionField; + + private bool maxVersionFieldSet; + + private DateTime minDateField; + + private bool minDateFieldSet; + + private DateTime maxDateField; + + private bool maxDateFieldSet; + + private string languagesField; + + private bool languagesFieldSet; + + private ISchemaElement parentElement; + + /// + /// Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// In prior versions of the WiX toolset, this attribute specified the short file name. + /// This attribute's value may now be either a short or long file name. + /// If a short file name is specified, the ShortName attribute may not be specified. + /// If you wish to manually specify the short file name, then the ShortName + /// attribute may be specified. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The short file name of the file in 8.3 format. + /// There is a Windows Installer bug which prevents the FileSearch functionality from working + /// if both a short and long file name are specified. Since the Name attribute allows either + /// a short or long name to be specified, it is the only attribute related to file names which + /// should be specified. + /// + public string ShortName + { + get + { + return this.shortNameField; + } + set + { + this.shortNameFieldSet = true; + this.shortNameField = value; + } + } + + /// + /// The minimum size of the file. + /// + public int MinSize + { + get + { + return this.minSizeField; + } + set + { + this.minSizeFieldSet = true; + this.minSizeField = value; + } + } + + /// + /// The maximum size of the file. + /// + public int MaxSize + { + get + { + return this.maxSizeField; + } + set + { + this.maxSizeFieldSet = true; + this.maxSizeField = value; + } + } + + /// + /// The minimum version of the file. + /// + public string MinVersion + { + get + { + return this.minVersionField; + } + set + { + this.minVersionFieldSet = true; + this.minVersionField = value; + } + } + + /// + /// The maximum version of the file. + /// + public string MaxVersion + { + get + { + return this.maxVersionField; + } + set + { + this.maxVersionFieldSet = true; + this.maxVersionField = value; + } + } + + /// + /// The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. + /// + public DateTime MinDate + { + get + { + return this.minDateField; + } + set + { + this.minDateFieldSet = true; + this.minDateField = value; + } + } + + /// + /// The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. + /// + public DateTime MaxDate + { + get + { + return this.maxDateField; + } + set + { + this.maxDateFieldSet = true; + this.maxDateField = value; + } + } + + /// + /// The languages supported by the file. + /// + public string Languages + { + get + { + return this.languagesField; + } + set + { + this.languagesFieldSet = true; + this.languagesField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.shortNameFieldSet) + { + writer.WriteAttributeString("ShortName", this.shortNameField); + } + if (this.minSizeFieldSet) + { + writer.WriteAttributeString("MinSize", this.minSizeField.ToString(CultureInfo.InvariantCulture)); + } + if (this.maxSizeFieldSet) + { + writer.WriteAttributeString("MaxSize", this.maxSizeField.ToString(CultureInfo.InvariantCulture)); + } + if (this.minVersionFieldSet) + { + writer.WriteAttributeString("MinVersion", this.minVersionField); + } + if (this.maxVersionFieldSet) + { + writer.WriteAttributeString("MaxVersion", this.maxVersionField); + } + if (this.minDateFieldSet) + { + writer.WriteAttributeString("MinDate", this.minDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); + } + if (this.maxDateFieldSet) + { + writer.WriteAttributeString("MaxDate", this.maxDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); + } + if (this.languagesFieldSet) + { + writer.WriteAttributeString("Languages", this.languagesField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("ShortName" == name)) + { + this.shortNameField = value; + this.shortNameFieldSet = true; + } + if (("MinSize" == name)) + { + this.minSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.minSizeFieldSet = true; + } + if (("MaxSize" == name)) + { + this.maxSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.maxSizeFieldSet = true; + } + if (("MinVersion" == name)) + { + this.minVersionField = value; + this.minVersionFieldSet = true; + } + if (("MaxVersion" == name)) + { + this.maxVersionField = value; + this.maxVersionFieldSet = true; + } + if (("MinDate" == name)) + { + this.minDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); + this.minDateFieldSet = true; + } + if (("MaxDate" == name)) + { + this.maxDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); + this.maxDateFieldSet = true; + } + if (("Languages" == name)) + { + this.languagesField = value; + this.languagesFieldSet = true; + } + } + } + + /// + /// References an existing FileSearch element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FileSearchRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// Specify the Id to the FileSearch to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Searches for directory and assigns to value of parent Property. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DirectorySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string pathField; + + private bool pathFieldSet; + + private int depthField; + + private bool depthFieldSet; + + private YesNoType assignToPropertyField; + + private bool assignToPropertyFieldSet; + + private ISchemaElement parentElement; + + public DirectorySearch() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for the directory search. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Path on the user's system. Either absolute, or relative to containing directories. + /// + public string Path + { + get + { + return this.pathField; + } + set + { + this.pathFieldSet = true; + this.pathField = value; + } + } + + /// + /// Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information. + /// + public int Depth + { + get + { + return this.depthField; + } + set + { + this.depthFieldSet = true; + this.depthField = value; + } + } + + /// + /// Set the value of the outer Property to the result of this search. See remarks for more information. + /// + public YesNoType AssignToProperty + { + get + { + return this.assignToPropertyField; + } + set + { + this.assignToPropertyFieldSet = true; + this.assignToPropertyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if (("DirectorySearchRef" == childName)) + { + childValue = new DirectorySearchRef(); + } + if (("FileSearch" == childName)) + { + childValue = new FileSearch(); + } + if (("FileSearchRef" == childName)) + { + childValue = new FileSearchRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.pathFieldSet) + { + writer.WriteAttributeString("Path", this.pathField); + } + if (this.depthFieldSet) + { + writer.WriteAttributeString("Depth", this.depthField.ToString(CultureInfo.InvariantCulture)); + } + if (this.assignToPropertyFieldSet) + { + if ((this.assignToPropertyField == YesNoType.no)) + { + writer.WriteAttributeString("AssignToProperty", "no"); + } + if ((this.assignToPropertyField == YesNoType.yes)) + { + writer.WriteAttributeString("AssignToProperty", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Path" == name)) + { + this.pathField = value; + this.pathFieldSet = true; + } + if (("Depth" == name)) + { + this.depthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.depthFieldSet = true; + } + if (("AssignToProperty" == name)) + { + this.assignToPropertyField = Enums.ParseYesNoType(value); + this.assignToPropertyFieldSet = true; + } + } + } + + /// + /// References an existing DirectorySearch element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DirectorySearchRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string parentField; + + private bool parentFieldSet; + + private string pathField; + + private bool pathFieldSet; + + private ISchemaElement parentElement; + + public DirectorySearchRef() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Id of the search being referred to. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables. + /// + public string Parent + { + get + { + return this.parentField; + } + set + { + this.parentFieldSet = true; + this.parentField = value; + } + } + + /// + /// Path on the user's system. Either absolute, or relative to containing directories. + /// + public string Path + { + get + { + return this.pathField; + } + set + { + this.pathFieldSet = true; + this.pathField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if (("DirectorySearchRef" == childName)) + { + childValue = new DirectorySearchRef(); + } + if (("FileSearch" == childName)) + { + childValue = new FileSearch(); + } + if (("FileSearchRef" == childName)) + { + childValue = new FileSearchRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.parentFieldSet) + { + writer.WriteAttributeString("Parent", this.parentField); + } + if (this.pathFieldSet) + { + writer.WriteAttributeString("Path", this.pathField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Parent" == name)) + { + this.parentField = value; + this.parentFieldSet = true; + } + if (("Path" == name)) + { + this.pathField = value; + this.pathFieldSet = true; + } + } + } + + /// + /// Searches for file or directory and assigns to value of parent Property. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ComponentSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string guidField; + + private bool guidFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private ISchemaElement parentElement; + + public ComponentSearch() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The component ID of the component whose key path is to be used for the search. + /// + public string Guid + { + get + { + return this.guidField; + } + set + { + this.guidFieldSet = true; + this.guidField = value; + } + } + + /// + /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if (("DirectorySearchRef" == childName)) + { + childValue = new DirectorySearchRef(); + } + if (("FileSearch" == childName)) + { + childValue = new FileSearch(); + } + if (("FileSearchRef" == childName)) + { + childValue = new FileSearchRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + ComponentSearch.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("directory" == value)) + { + parsedValue = TypeType.directory; + } + else + { + if (("file" == value)) + { + parsedValue = TypeType.file; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.guidFieldSet) + { + writer.WriteAttributeString("Guid", this.guidField); + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.directory)) + { + writer.WriteAttributeString("Type", "directory"); + } + if ((this.typeField == TypeType.file)) + { + writer.WriteAttributeString("Type", "file"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Guid" == name)) + { + this.guidField = value; + this.guidFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = ComponentSearch.ParseTypeType(value); + this.typeFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The key path of the component is a directory. + /// + directory, + + /// + /// The key path of the component is a file. This is the default value. + /// + file, + } + } + + /// + /// Searches for file, directory or registry key and assigns to value of parent Property + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IniFileSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private int fieldField; + + private bool fieldFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string sectionField; + + private bool sectionFieldSet; + + private string shortNameField; + + private bool shortNameFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private ISchemaElement parentElement; + + public IniFileSearch() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// External key into the Signature table. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The field in the .ini line. If field is Null or 0, the entire line is read. + /// + public int Field + { + get + { + return this.fieldField; + } + set + { + this.fieldFieldSet = true; + this.fieldField = value; + } + } + + /// + /// The key value within the section. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// In prior versions of the WiX toolset, this attribute specified the short name. + /// This attribute's value may now be either a short or long name. + /// If a short name is specified, the ShortName attribute may not be specified. + /// Also, if this value is a long name, the ShortName attribute may be omitted to + /// allow WiX to attempt to generate a unique short name. + /// However, if you wish to manually specify the short name, then the ShortName + /// attribute may be specified. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The localizable .ini file section. + /// + public string Section + { + get + { + return this.sectionField; + } + set + { + this.sectionFieldSet = true; + this.sectionField = value; + } + } + + /// + /// The short name of the file in 8.3 format. + /// This attribute should only be set if the user wants to manually specify the short name. + /// + public string ShortName + { + get + { + return this.shortNameField; + } + set + { + this.shortNameFieldSet = true; + this.shortNameField = value; + } + } + + /// + /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if (("DirectorySearchRef" == childName)) + { + childValue = new DirectorySearchRef(); + } + if (("FileSearch" == childName)) + { + childValue = new FileSearch(); + } + if (("FileSearchRef" == childName)) + { + childValue = new FileSearchRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + IniFileSearch.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("directory" == value)) + { + parsedValue = TypeType.directory; + } + else + { + if (("file" == value)) + { + parsedValue = TypeType.file; + } + else + { + if (("raw" == value)) + { + parsedValue = TypeType.raw; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IniFileSearch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.fieldFieldSet) + { + writer.WriteAttributeString("Field", this.fieldField.ToString(CultureInfo.InvariantCulture)); + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.sectionFieldSet) + { + writer.WriteAttributeString("Section", this.sectionField); + } + if (this.shortNameFieldSet) + { + writer.WriteAttributeString("ShortName", this.shortNameField); + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.directory)) + { + writer.WriteAttributeString("Type", "directory"); + } + if ((this.typeField == TypeType.file)) + { + writer.WriteAttributeString("Type", "file"); + } + if ((this.typeField == TypeType.raw)) + { + writer.WriteAttributeString("Type", "raw"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Field" == name)) + { + this.fieldField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.fieldFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Section" == name)) + { + this.sectionField = value; + this.sectionFieldSet = true; + } + if (("ShortName" == name)) + { + this.shortNameField = value; + this.shortNameFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = IniFileSearch.ParseTypeType(value); + this.typeFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// A directory location. + /// + directory, + + /// + /// A file location. This is the default value. + /// + file, + + /// + /// A raw .ini value. + /// + raw, + } + } + + /// + /// Searches for file, directory or registry key and assigns to value of parent Property + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegistrySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private RootType rootField; + + private bool rootFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private YesNoType win64Field; + + private bool win64FieldSet; + + private ISchemaElement parentElement; + + public RegistrySearch() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Signature to be used for the file, directory or registry key being searched for. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Root key for the registry value. + /// + public RootType Root + { + get + { + return this.rootField; + } + set + { + this.rootFieldSet = true; + this.rootField = value; + } + } + + /// + /// Key for the registry value. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + /// + /// Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. + /// The default value is based on the platform set by the -arch switch to candle.exe + /// or the InstallerPlatform property in a .wixproj MSBuild project: + /// For x86 and ARM, the default value is 'no'. + /// For x64 and IA64, the default value is 'yes'. + /// + public YesNoType Win64 + { + get + { + return this.win64Field; + } + set + { + this.win64FieldSet = true; + this.win64Field = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if (("DirectorySearchRef" == childName)) + { + childValue = new DirectorySearchRef(); + } + if (("FileSearch" == childName)) + { + childValue = new FileSearch(); + } + if (("FileSearchRef" == childName)) + { + childValue = new FileSearchRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a RootType from a string. + /// + public static RootType ParseRootType(string value) + { + RootType parsedValue; + RegistrySearch.TryParseRootType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a RootType from a string. + /// + public static bool TryParseRootType(string value, out RootType parsedValue) + { + parsedValue = RootType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("HKCR" == value)) + { + parsedValue = RootType.HKCR; + } + else + { + if (("HKCU" == value)) + { + parsedValue = RootType.HKCU; + } + else + { + if (("HKLM" == value)) + { + parsedValue = RootType.HKLM; + } + else + { + if (("HKU" == value)) + { + parsedValue = RootType.HKU; + } + else + { + parsedValue = RootType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + RegistrySearch.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("directory" == value)) + { + parsedValue = TypeType.directory; + } + else + { + if (("file" == value)) + { + parsedValue = TypeType.file; + } + else + { + if (("raw" == value)) + { + parsedValue = TypeType.raw; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegistrySearch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.rootFieldSet) + { + if ((this.rootField == RootType.HKCR)) + { + writer.WriteAttributeString("Root", "HKCR"); + } + if ((this.rootField == RootType.HKCU)) + { + writer.WriteAttributeString("Root", "HKCU"); + } + if ((this.rootField == RootType.HKLM)) + { + writer.WriteAttributeString("Root", "HKLM"); + } + if ((this.rootField == RootType.HKU)) + { + writer.WriteAttributeString("Root", "HKU"); + } + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.directory)) + { + writer.WriteAttributeString("Type", "directory"); + } + if ((this.typeField == TypeType.file)) + { + writer.WriteAttributeString("Type", "file"); + } + if ((this.typeField == TypeType.raw)) + { + writer.WriteAttributeString("Type", "raw"); + } + } + if (this.win64FieldSet) + { + if ((this.win64Field == YesNoType.no)) + { + writer.WriteAttributeString("Win64", "no"); + } + if ((this.win64Field == YesNoType.yes)) + { + writer.WriteAttributeString("Win64", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Root" == name)) + { + this.rootField = RegistrySearch.ParseRootType(value); + this.rootFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = RegistrySearch.ParseTypeType(value); + this.typeFieldSet = true; + } + if (("Win64" == name)) + { + this.win64Field = Enums.ParseYesNoType(value); + this.win64FieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum RootType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// HKEY_CLASSES_ROOT + /// + HKCR, + + /// + /// HKEY_CURRENT_USER + /// + HKCU, + + /// + /// HKEY_LOCAL_MACHINE + /// + HKLM, + + /// + /// HKEY_USERS + /// + HKU, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The registry value contains the path to a directory. + /// + directory, + + /// + /// The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned. + /// + file, + + /// + /// Sets the raw value from the registry value. Please note that this value will contain a prefix as follows: + /// + raw, + } + } + + /// + /// References an existing RegistrySearch element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegistrySearchRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// Specify the Id of the RegistrySearch to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegistrySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Sets the parent of a nested DirectorySearch element to CCP_DRIVE. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ComplianceDrive : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public ComplianceDrive() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if (("DirectorySearchRef" == childName)) + { + childValue = new DirectorySearchRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ComplianceDrive", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + /// + /// Adds a row to the CCPSearch table. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ComplianceCheck : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public ComplianceCheck() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); + childCollection0.AddCollection(childCollection1); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ComplianceDrive" == childName)) + { + childValue = new ComplianceDrive(); + } + if (("ComponentSearch" == childName)) + { + childValue = new ComponentSearch(); + } + if (("RegistrySearch" == childName)) + { + childValue = new RegistrySearch(); + } + if (("IniFileSearch" == childName)) + { + childValue = new IniFileSearch(); + } + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ComplianceCheck", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + /// + /// Property value for a Product or Module. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Property : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private YesNoType complianceCheckField; + + private bool complianceCheckFieldSet; + + private YesNoType adminField; + + private bool adminFieldSet; + + private YesNoType secureField; + + private bool secureFieldSet; + + private YesNoType hiddenField; + + private bool hiddenFieldSet; + + private YesNoType suppressModularizationField; + + private bool suppressModularizationFieldSet; + + private ISchemaElement parentElement; + + public Property() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearchRef))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearchRef))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ProductSearch))); + childCollection0.AddCollection(childCollection1); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for Property. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Sets a default value for the property. The value will be overwritten if the Property is used for a search. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element. + /// + public YesNoType ComplianceCheck + { + get + { + return this.complianceCheckField; + } + set + { + this.complianceCheckFieldSet = true; + this.complianceCheckField = value; + } + } + + /// + /// Denotes that the Property is saved during + /// + public YesNoType Admin + { + get + { + return this.adminField; + } + set + { + this.adminFieldSet = true; + this.adminField = value; + } + } + + /// + /// Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the + /// + public YesNoType Secure + { + get + { + return this.secureField; + } + set + { + this.secureFieldSet = true; + this.secureField = value; + } + } + + /// + /// Denotes that the Property is not logged during installation. See the + /// + public YesNoType Hidden + { + get + { + return this.hiddenField; + } + set + { + this.hiddenFieldSet = true; + this.hiddenField = value; + } + } + + /// + /// Use to suppress modularization of this property identifier in merge modules. + /// Using this functionality is strongly discouraged; it should only be + /// necessary as a workaround of last resort in rare scenarios. + /// + public YesNoType SuppressModularization + { + get + { + return this.suppressModularizationField; + } + set + { + this.suppressModularizationFieldSet = true; + this.suppressModularizationField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ComplianceDrive" == childName)) + { + childValue = new ComplianceDrive(); + } + if (("ComponentSearch" == childName)) + { + childValue = new ComponentSearch(); + } + if (("RegistrySearch" == childName)) + { + childValue = new RegistrySearch(); + } + if (("RegistrySearchRef" == childName)) + { + childValue = new RegistrySearchRef(); + } + if (("IniFileSearch" == childName)) + { + childValue = new IniFileSearch(); + } + if (("DirectorySearch" == childName)) + { + childValue = new DirectorySearch(); + } + if (("DirectorySearchRef" == childName)) + { + childValue = new DirectorySearchRef(); + } + if (("ProductSearch" == childName)) + { + childValue = new ProductSearch(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Property", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.complianceCheckFieldSet) + { + if ((this.complianceCheckField == YesNoType.no)) + { + writer.WriteAttributeString("ComplianceCheck", "no"); + } + if ((this.complianceCheckField == YesNoType.yes)) + { + writer.WriteAttributeString("ComplianceCheck", "yes"); + } + } + if (this.adminFieldSet) + { + if ((this.adminField == YesNoType.no)) + { + writer.WriteAttributeString("Admin", "no"); + } + if ((this.adminField == YesNoType.yes)) + { + writer.WriteAttributeString("Admin", "yes"); + } + } + if (this.secureFieldSet) + { + if ((this.secureField == YesNoType.no)) + { + writer.WriteAttributeString("Secure", "no"); + } + if ((this.secureField == YesNoType.yes)) + { + writer.WriteAttributeString("Secure", "yes"); + } + } + if (this.hiddenFieldSet) + { + if ((this.hiddenField == YesNoType.no)) + { + writer.WriteAttributeString("Hidden", "no"); + } + if ((this.hiddenField == YesNoType.yes)) + { + writer.WriteAttributeString("Hidden", "yes"); + } + } + if (this.suppressModularizationFieldSet) + { + if ((this.suppressModularizationField == YesNoType.no)) + { + writer.WriteAttributeString("SuppressModularization", "no"); + } + if ((this.suppressModularizationField == YesNoType.yes)) + { + writer.WriteAttributeString("SuppressModularization", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("ComplianceCheck" == name)) + { + this.complianceCheckField = Enums.ParseYesNoType(value); + this.complianceCheckFieldSet = true; + } + if (("Admin" == name)) + { + this.adminField = Enums.ParseYesNoType(value); + this.adminFieldSet = true; + } + if (("Secure" == name)) + { + this.secureField = Enums.ParseYesNoType(value); + this.secureFieldSet = true; + } + if (("Hidden" == name)) + { + this.hiddenField = Enums.ParseYesNoType(value); + this.hiddenFieldSet = true; + } + if (("SuppressModularization" == name)) + { + this.suppressModularizationField = Enums.ParseYesNoType(value); + this.suppressModularizationFieldSet = true; + } + } + } + + /// + /// Reference to a Property value. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PropertyRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier of Property to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PropertyRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Shortcut, default target is parent File, CreateFolder, or Component's Directory + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Shortcut : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string shortNameField; + + private bool shortNameFieldSet; + + private string targetField; + + private bool targetFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string argumentsField; + + private bool argumentsFieldSet; + + private int hotkeyField; + + private bool hotkeyFieldSet; + + private string iconField; + + private bool iconFieldSet; + + private int iconIndexField; + + private bool iconIndexFieldSet; + + private ShowType showField; + + private bool showFieldSet; + + private string workingDirectoryField; + + private bool workingDirectoryFieldSet; + + private YesNoType advertiseField; + + private bool advertiseFieldSet; + + private string displayResourceDllField; + + private bool displayResourceDllFieldSet; + + private int displayResourceIdField; + + private bool displayResourceIdFieldSet; + + private string descriptionResourceDllField; + + private bool descriptionResourceDllFieldSet; + + private int descriptionResourceIdField; + + private bool descriptionResourceIdFieldSet; + + private ISchemaElement parentElement; + + public Shortcut() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ShortcutProperty))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for the shortcut. This value will serve as the primary key for the row. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// In prior versions of the WiX toolset, this attribute specified the short name. + /// This attribute's value may now be either a short or long name. + /// If a short name is specified, the ShortName attribute may not be specified. + /// Also, if this value is a long name, the ShortName attribute may be omitted to + /// allow WiX to attempt to generate a unique short name. + /// However, if this name collides with another shortcut or you wish to manually specify + /// the short name, then the ShortName attribute may be specified. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The short name of the shortcut in 8.3 format. + /// This attribute should only be set if there is a conflict between generated short names + /// or the user wants to manually specify the short name. + /// + public string ShortName + { + get + { + return this.shortNameField; + } + set + { + this.shortNameFieldSet = true; + this.shortNameField = value; + } + } + + /// + /// This attribute can only be set if this Shortcut element is nested under a Component element. + /// When nested under a Component element, this attribute's value will default to the parent directory. + /// This attribute's value is the target for a non-advertised shortcut. + /// This attribute is not valid for advertised shortcuts. + /// If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut. + /// + public string Target + { + get + { + return this.targetField; + } + set + { + this.targetFieldSet = true; + this.targetField = value; + } + } + + /// + /// The localizable description for the shortcut. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// The command-line arguments for the shortcut. Note that the resolution of properties + /// in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the + /// property already has the intended value when the component owning the shortcut is installed. For example, for the + /// argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and + /// the component that owns the shortcut. + /// + public string Arguments + { + get + { + return this.argumentsField; + } + set + { + this.argumentsFieldSet = true; + this.argumentsField = value; + } + } + + /// + /// The hotkey for the shortcut. The low-order byte contains the virtual-key code for + /// the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of + /// installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a + /// users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys + /// for accessibility. + /// + public int Hotkey + { + get + { + return this.hotkeyField; + } + set + { + this.hotkeyFieldSet = true; + this.hotkeyField = value; + } + } + + /// + /// Identifier reference to Icon element. The Icon identifier should have the same extension + /// as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier + /// like "MyIcon.exe" + /// + public string Icon + { + get + { + return this.iconField; + } + set + { + this.iconFieldSet = true; + this.iconField = value; + } + } + + /// + /// Identifier reference to Icon element. + /// + public int IconIndex + { + get + { + return this.iconIndexField; + } + set + { + this.iconIndexFieldSet = true; + this.iconIndexField = value; + } + } + + public ShowType Show + { + get + { + return this.showField; + } + set + { + this.showFieldSet = true; + this.showField = value; + } + } + + /// + /// Directory identifier (or Property identifier that resolves to a directory) that resolves + /// to the path of the working directory for the shortcut. + /// + public string WorkingDirectory + { + get + { + return this.workingDirectoryField; + } + set + { + this.workingDirectoryFieldSet = true; + this.workingDirectoryField = value; + } + } + + /// + /// Specifies if the shortcut should be advertised or not. Note that advertised shortcuts + /// always point at a particular application, identified by a ProductCode, and should not be shared between applications. + /// Advertised shortcuts only work for the most recently installed application, and are removed when that application is + /// removed. The default value is 'no'. + /// + public YesNoType Advertise + { + get + { + return this.advertiseField; + } + set + { + this.advertiseFieldSet = true; + this.advertiseField = value; + } + } + + /// + /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally + /// authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also + /// be provided. + /// + /// This attribute is only used on Windows Vista and above. If this attribute is not populated and the install + /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and + /// the install is running on Vista and above, the value in the Name attribute is ignored. + /// + public string DisplayResourceDll + { + get + { + return this.displayResourceDllField; + } + set + { + this.displayResourceDllFieldSet = true; + this.displayResourceDllField = value; + } + } + + /// + /// The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the + /// DisplayResourceDll attribute must also be provided. + /// + /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install + /// is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and + /// the install is running on Vista and above, the value in the Name attribute is ignored. + /// + public int DisplayResourceId + { + get + { + return this.displayResourceIdField; + } + set + { + this.displayResourceIdFieldSet = true; + this.displayResourceIdField = value; + } + } + + /// + /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally + /// authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also + /// be provided. + /// + /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install + /// is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and + /// the install is running on Vista and above, the value in the Name attribute is ignored. + /// + public string DescriptionResourceDll + { + get + { + return this.descriptionResourceDllField; + } + set + { + this.descriptionResourceDllFieldSet = true; + this.descriptionResourceDllField = value; + } + } + + /// + /// The description name index for the shortcut. This must be a non-negative number. When this attribute is specified, + /// the DescriptionResourceDll attribute must also be populated. + /// + /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install + /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the + /// install is running on Vista and above, the value in the Name attribute is ignored. + /// + public int DescriptionResourceId + { + get + { + return this.descriptionResourceIdField; + } + set + { + this.descriptionResourceIdFieldSet = true; + this.descriptionResourceIdField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Icon" == childName)) + { + childValue = new Icon(); + } + if (("ShortcutProperty" == childName)) + { + childValue = new ShortcutProperty(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a ShowType from a string. + /// + public static ShowType ParseShowType(string value) + { + ShowType parsedValue; + Shortcut.TryParseShowType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ShowType from a string. + /// + public static bool TryParseShowType(string value, out ShowType parsedValue) + { + parsedValue = ShowType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("normal" == value)) + { + parsedValue = ShowType.normal; + } + else + { + if (("minimized" == value)) + { + parsedValue = ShowType.minimized; + } + else + { + if (("maximized" == value)) + { + parsedValue = ShowType.maximized; + } + else + { + parsedValue = ShowType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Shortcut", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.shortNameFieldSet) + { + writer.WriteAttributeString("ShortName", this.shortNameField); + } + if (this.targetFieldSet) + { + writer.WriteAttributeString("Target", this.targetField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.argumentsFieldSet) + { + writer.WriteAttributeString("Arguments", this.argumentsField); + } + if (this.hotkeyFieldSet) + { + writer.WriteAttributeString("Hotkey", this.hotkeyField.ToString(CultureInfo.InvariantCulture)); + } + if (this.iconFieldSet) + { + writer.WriteAttributeString("Icon", this.iconField); + } + if (this.iconIndexFieldSet) + { + writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); + } + if (this.showFieldSet) + { + if ((this.showField == ShowType.normal)) + { + writer.WriteAttributeString("Show", "normal"); + } + if ((this.showField == ShowType.minimized)) + { + writer.WriteAttributeString("Show", "minimized"); + } + if ((this.showField == ShowType.maximized)) + { + writer.WriteAttributeString("Show", "maximized"); + } + } + if (this.workingDirectoryFieldSet) + { + writer.WriteAttributeString("WorkingDirectory", this.workingDirectoryField); + } + if (this.advertiseFieldSet) + { + if ((this.advertiseField == YesNoType.no)) + { + writer.WriteAttributeString("Advertise", "no"); + } + if ((this.advertiseField == YesNoType.yes)) + { + writer.WriteAttributeString("Advertise", "yes"); + } + } + if (this.displayResourceDllFieldSet) + { + writer.WriteAttributeString("DisplayResourceDll", this.displayResourceDllField); + } + if (this.displayResourceIdFieldSet) + { + writer.WriteAttributeString("DisplayResourceId", this.displayResourceIdField.ToString(CultureInfo.InvariantCulture)); + } + if (this.descriptionResourceDllFieldSet) + { + writer.WriteAttributeString("DescriptionResourceDll", this.descriptionResourceDllField); + } + if (this.descriptionResourceIdFieldSet) + { + writer.WriteAttributeString("DescriptionResourceId", this.descriptionResourceIdField.ToString(CultureInfo.InvariantCulture)); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("ShortName" == name)) + { + this.shortNameField = value; + this.shortNameFieldSet = true; + } + if (("Target" == name)) + { + this.targetField = value; + this.targetFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("Arguments" == name)) + { + this.argumentsField = value; + this.argumentsFieldSet = true; + } + if (("Hotkey" == name)) + { + this.hotkeyField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.hotkeyFieldSet = true; + } + if (("Icon" == name)) + { + this.iconField = value; + this.iconFieldSet = true; + } + if (("IconIndex" == name)) + { + this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.iconIndexFieldSet = true; + } + if (("Show" == name)) + { + this.showField = Shortcut.ParseShowType(value); + this.showFieldSet = true; + } + if (("WorkingDirectory" == name)) + { + this.workingDirectoryField = value; + this.workingDirectoryFieldSet = true; + } + if (("Advertise" == name)) + { + this.advertiseField = Enums.ParseYesNoType(value); + this.advertiseFieldSet = true; + } + if (("DisplayResourceDll" == name)) + { + this.displayResourceDllField = value; + this.displayResourceDllFieldSet = true; + } + if (("DisplayResourceId" == name)) + { + this.displayResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.displayResourceIdFieldSet = true; + } + if (("DescriptionResourceDll" == name)) + { + this.descriptionResourceDllField = value; + this.descriptionResourceDllFieldSet = true; + } + if (("DescriptionResourceId" == name)) + { + this.descriptionResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.descriptionResourceIdFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ShowType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The shortcut target will be displayed using the SW_SHOWNORMAL attribute. + /// + normal, + + /// + /// The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute. + /// + minimized, + + /// + /// The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute. + /// + maximized, + } + } + + /// + /// Property values for a shortcut. This element's functionality is available starting with MSI 5.0. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ShortcutProperty : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// A formatted string identifying the property to be set. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// A formatted string supplying the value of the property. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ShortcutProperty", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used + /// if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute. + /// The table and key are taken from the parent element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Permission : ISchemaElement, ISetAttributes + { + + private string domainField; + + private bool domainFieldSet; + + private string userField; + + private bool userFieldSet; + + private YesNoType readField; + + private bool readFieldSet; + + private YesNoType deleteField; + + private bool deleteFieldSet; + + private YesNoType readPermissionField; + + private bool readPermissionFieldSet; + + private YesNoType changePermissionField; + + private bool changePermissionFieldSet; + + private YesNoType takeOwnershipField; + + private bool takeOwnershipFieldSet; + + private YesNoType specificRightsAllField; + + private bool specificRightsAllFieldSet; + + private YesNoType readAttributesField; + + private bool readAttributesFieldSet; + + private YesNoType writeAttributesField; + + private bool writeAttributesFieldSet; + + private YesNoType readExtendedAttributesField; + + private bool readExtendedAttributesFieldSet; + + private YesNoType writeExtendedAttributesField; + + private bool writeExtendedAttributesFieldSet; + + private YesNoType synchronizeField; + + private bool synchronizeFieldSet; + + private YesNoType createFileField; + + private bool createFileFieldSet; + + private YesNoType createChildField; + + private bool createChildFieldSet; + + private YesNoType deleteChildField; + + private bool deleteChildFieldSet; + + private YesNoType traverseField; + + private bool traverseFieldSet; + + private YesNoType appendField; + + private bool appendFieldSet; + + private YesNoType executeField; + + private bool executeFieldSet; + + private YesNoType fileAllRightsField; + + private bool fileAllRightsFieldSet; + + private YesNoType writeField; + + private bool writeFieldSet; + + private YesNoType createSubkeysField; + + private bool createSubkeysFieldSet; + + private YesNoType enumerateSubkeysField; + + private bool enumerateSubkeysFieldSet; + + private YesNoType notifyField; + + private bool notifyFieldSet; + + private YesNoType createLinkField; + + private bool createLinkFieldSet; + + private YesNoType genericAllField; + + private bool genericAllFieldSet; + + private YesNoType genericExecuteField; + + private bool genericExecuteFieldSet; + + private YesNoType genericWriteField; + + private bool genericWriteFieldSet; + + private YesNoType genericReadField; + + private bool genericReadFieldSet; + + private ISchemaElement parentElement; + + public string Domain + { + get + { + return this.domainField; + } + set + { + this.domainFieldSet = true; + this.domainField = value; + } + } + + public string User + { + get + { + return this.userField; + } + set + { + this.userFieldSet = true; + this.userField = value; + } + } + + public YesNoType Read + { + get + { + return this.readField; + } + set + { + this.readFieldSet = true; + this.readField = value; + } + } + + public YesNoType Delete + { + get + { + return this.deleteField; + } + set + { + this.deleteFieldSet = true; + this.deleteField = value; + } + } + + public YesNoType ReadPermission + { + get + { + return this.readPermissionField; + } + set + { + this.readPermissionFieldSet = true; + this.readPermissionField = value; + } + } + + public YesNoType ChangePermission + { + get + { + return this.changePermissionField; + } + set + { + this.changePermissionFieldSet = true; + this.changePermissionField = value; + } + } + + public YesNoType TakeOwnership + { + get + { + return this.takeOwnershipField; + } + set + { + this.takeOwnershipFieldSet = true; + this.takeOwnershipField = value; + } + } + + /// + /// Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF). + /// + public YesNoType SpecificRightsAll + { + get + { + return this.specificRightsAllField; + } + set + { + this.specificRightsAllFieldSet = true; + this.specificRightsAllField = value; + } + } + + public YesNoType ReadAttributes + { + get + { + return this.readAttributesField; + } + set + { + this.readAttributesFieldSet = true; + this.readAttributesField = value; + } + } + + public YesNoType WriteAttributes + { + get + { + return this.writeAttributesField; + } + set + { + this.writeAttributesFieldSet = true; + this.writeAttributesField = value; + } + } + + public YesNoType ReadExtendedAttributes + { + get + { + return this.readExtendedAttributesField; + } + set + { + this.readExtendedAttributesFieldSet = true; + this.readExtendedAttributesField = value; + } + } + + public YesNoType WriteExtendedAttributes + { + get + { + return this.writeExtendedAttributesField; + } + set + { + this.writeExtendedAttributesFieldSet = true; + this.writeExtendedAttributesField = value; + } + } + + public YesNoType Synchronize + { + get + { + return this.synchronizeField; + } + set + { + this.synchronizeFieldSet = true; + this.synchronizeField = value; + } + } + + /// + /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent. + /// + public YesNoType CreateFile + { + get + { + return this.createFileField; + } + set + { + this.createFileFieldSet = true; + this.createFileField = value; + } + } + + /// + /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent. + /// + public YesNoType CreateChild + { + get + { + return this.createChildField; + } + set + { + this.createChildFieldSet = true; + this.createChildField = value; + } + } + + /// + /// For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent. + /// + public YesNoType DeleteChild + { + get + { + return this.deleteChildField; + } + set + { + this.deleteChildFieldSet = true; + this.deleteChildField = value; + } + } + + /// + /// For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent. + /// + public YesNoType Traverse + { + get + { + return this.traverseField; + } + set + { + this.traverseFieldSet = true; + this.traverseField = value; + } + } + + public YesNoType Append + { + get + { + return this.appendField; + } + set + { + this.appendFieldSet = true; + this.appendField = value; + } + } + + public YesNoType Execute + { + get + { + return this.executeField; + } + set + { + this.executeFieldSet = true; + this.executeField = value; + } + } + + /// + /// Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF). + /// + public YesNoType FileAllRights + { + get + { + return this.fileAllRightsField; + } + set + { + this.fileAllRightsFieldSet = true; + this.fileAllRightsField = value; + } + } + + public YesNoType Write + { + get + { + return this.writeField; + } + set + { + this.writeFieldSet = true; + this.writeField = value; + } + } + + public YesNoType CreateSubkeys + { + get + { + return this.createSubkeysField; + } + set + { + this.createSubkeysFieldSet = true; + this.createSubkeysField = value; + } + } + + public YesNoType EnumerateSubkeys + { + get + { + return this.enumerateSubkeysField; + } + set + { + this.enumerateSubkeysFieldSet = true; + this.enumerateSubkeysField = value; + } + } + + public YesNoType Notify + { + get + { + return this.notifyField; + } + set + { + this.notifyFieldSet = true; + this.notifyField = value; + } + } + + public YesNoType CreateLink + { + get + { + return this.createLinkField; + } + set + { + this.createLinkFieldSet = true; + this.createLinkField = value; + } + } + + public YesNoType GenericAll + { + get + { + return this.genericAllField; + } + set + { + this.genericAllFieldSet = true; + this.genericAllField = value; + } + } + + public YesNoType GenericExecute + { + get + { + return this.genericExecuteField; + } + set + { + this.genericExecuteFieldSet = true; + this.genericExecuteField = value; + } + } + + public YesNoType GenericWrite + { + get + { + return this.genericWriteField; + } + set + { + this.genericWriteFieldSet = true; + this.genericWriteField = value; + } + } + + /// + /// specifying this will fail to grant read access + /// + public YesNoType GenericRead + { + get + { + return this.genericReadField; + } + set + { + this.genericReadFieldSet = true; + this.genericReadField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Permission", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.domainFieldSet) + { + writer.WriteAttributeString("Domain", this.domainField); + } + if (this.userFieldSet) + { + writer.WriteAttributeString("User", this.userField); + } + if (this.readFieldSet) + { + if ((this.readField == YesNoType.no)) + { + writer.WriteAttributeString("Read", "no"); + } + if ((this.readField == YesNoType.yes)) + { + writer.WriteAttributeString("Read", "yes"); + } + } + if (this.deleteFieldSet) + { + if ((this.deleteField == YesNoType.no)) + { + writer.WriteAttributeString("Delete", "no"); + } + if ((this.deleteField == YesNoType.yes)) + { + writer.WriteAttributeString("Delete", "yes"); + } + } + if (this.readPermissionFieldSet) + { + if ((this.readPermissionField == YesNoType.no)) + { + writer.WriteAttributeString("ReadPermission", "no"); + } + if ((this.readPermissionField == YesNoType.yes)) + { + writer.WriteAttributeString("ReadPermission", "yes"); + } + } + if (this.changePermissionFieldSet) + { + if ((this.changePermissionField == YesNoType.no)) + { + writer.WriteAttributeString("ChangePermission", "no"); + } + if ((this.changePermissionField == YesNoType.yes)) + { + writer.WriteAttributeString("ChangePermission", "yes"); + } + } + if (this.takeOwnershipFieldSet) + { + if ((this.takeOwnershipField == YesNoType.no)) + { + writer.WriteAttributeString("TakeOwnership", "no"); + } + if ((this.takeOwnershipField == YesNoType.yes)) + { + writer.WriteAttributeString("TakeOwnership", "yes"); + } + } + if (this.specificRightsAllFieldSet) + { + if ((this.specificRightsAllField == YesNoType.no)) + { + writer.WriteAttributeString("SpecificRightsAll", "no"); + } + if ((this.specificRightsAllField == YesNoType.yes)) + { + writer.WriteAttributeString("SpecificRightsAll", "yes"); + } + } + if (this.readAttributesFieldSet) + { + if ((this.readAttributesField == YesNoType.no)) + { + writer.WriteAttributeString("ReadAttributes", "no"); + } + if ((this.readAttributesField == YesNoType.yes)) + { + writer.WriteAttributeString("ReadAttributes", "yes"); + } + } + if (this.writeAttributesFieldSet) + { + if ((this.writeAttributesField == YesNoType.no)) + { + writer.WriteAttributeString("WriteAttributes", "no"); + } + if ((this.writeAttributesField == YesNoType.yes)) + { + writer.WriteAttributeString("WriteAttributes", "yes"); + } + } + if (this.readExtendedAttributesFieldSet) + { + if ((this.readExtendedAttributesField == YesNoType.no)) + { + writer.WriteAttributeString("ReadExtendedAttributes", "no"); + } + if ((this.readExtendedAttributesField == YesNoType.yes)) + { + writer.WriteAttributeString("ReadExtendedAttributes", "yes"); + } + } + if (this.writeExtendedAttributesFieldSet) + { + if ((this.writeExtendedAttributesField == YesNoType.no)) + { + writer.WriteAttributeString("WriteExtendedAttributes", "no"); + } + if ((this.writeExtendedAttributesField == YesNoType.yes)) + { + writer.WriteAttributeString("WriteExtendedAttributes", "yes"); + } + } + if (this.synchronizeFieldSet) + { + if ((this.synchronizeField == YesNoType.no)) + { + writer.WriteAttributeString("Synchronize", "no"); + } + if ((this.synchronizeField == YesNoType.yes)) + { + writer.WriteAttributeString("Synchronize", "yes"); + } + } + if (this.createFileFieldSet) + { + if ((this.createFileField == YesNoType.no)) + { + writer.WriteAttributeString("CreateFile", "no"); + } + if ((this.createFileField == YesNoType.yes)) + { + writer.WriteAttributeString("CreateFile", "yes"); + } + } + if (this.createChildFieldSet) + { + if ((this.createChildField == YesNoType.no)) + { + writer.WriteAttributeString("CreateChild", "no"); + } + if ((this.createChildField == YesNoType.yes)) + { + writer.WriteAttributeString("CreateChild", "yes"); + } + } + if (this.deleteChildFieldSet) + { + if ((this.deleteChildField == YesNoType.no)) + { + writer.WriteAttributeString("DeleteChild", "no"); + } + if ((this.deleteChildField == YesNoType.yes)) + { + writer.WriteAttributeString("DeleteChild", "yes"); + } + } + if (this.traverseFieldSet) + { + if ((this.traverseField == YesNoType.no)) + { + writer.WriteAttributeString("Traverse", "no"); + } + if ((this.traverseField == YesNoType.yes)) + { + writer.WriteAttributeString("Traverse", "yes"); + } + } + if (this.appendFieldSet) + { + if ((this.appendField == YesNoType.no)) + { + writer.WriteAttributeString("Append", "no"); + } + if ((this.appendField == YesNoType.yes)) + { + writer.WriteAttributeString("Append", "yes"); + } + } + if (this.executeFieldSet) + { + if ((this.executeField == YesNoType.no)) + { + writer.WriteAttributeString("Execute", "no"); + } + if ((this.executeField == YesNoType.yes)) + { + writer.WriteAttributeString("Execute", "yes"); + } + } + if (this.fileAllRightsFieldSet) + { + if ((this.fileAllRightsField == YesNoType.no)) + { + writer.WriteAttributeString("FileAllRights", "no"); + } + if ((this.fileAllRightsField == YesNoType.yes)) + { + writer.WriteAttributeString("FileAllRights", "yes"); + } + } + if (this.writeFieldSet) + { + if ((this.writeField == YesNoType.no)) + { + writer.WriteAttributeString("Write", "no"); + } + if ((this.writeField == YesNoType.yes)) + { + writer.WriteAttributeString("Write", "yes"); + } + } + if (this.createSubkeysFieldSet) + { + if ((this.createSubkeysField == YesNoType.no)) + { + writer.WriteAttributeString("CreateSubkeys", "no"); + } + if ((this.createSubkeysField == YesNoType.yes)) + { + writer.WriteAttributeString("CreateSubkeys", "yes"); + } + } + if (this.enumerateSubkeysFieldSet) + { + if ((this.enumerateSubkeysField == YesNoType.no)) + { + writer.WriteAttributeString("EnumerateSubkeys", "no"); + } + if ((this.enumerateSubkeysField == YesNoType.yes)) + { + writer.WriteAttributeString("EnumerateSubkeys", "yes"); + } + } + if (this.notifyFieldSet) + { + if ((this.notifyField == YesNoType.no)) + { + writer.WriteAttributeString("Notify", "no"); + } + if ((this.notifyField == YesNoType.yes)) + { + writer.WriteAttributeString("Notify", "yes"); + } + } + if (this.createLinkFieldSet) + { + if ((this.createLinkField == YesNoType.no)) + { + writer.WriteAttributeString("CreateLink", "no"); + } + if ((this.createLinkField == YesNoType.yes)) + { + writer.WriteAttributeString("CreateLink", "yes"); + } + } + if (this.genericAllFieldSet) + { + if ((this.genericAllField == YesNoType.no)) + { + writer.WriteAttributeString("GenericAll", "no"); + } + if ((this.genericAllField == YesNoType.yes)) + { + writer.WriteAttributeString("GenericAll", "yes"); + } + } + if (this.genericExecuteFieldSet) + { + if ((this.genericExecuteField == YesNoType.no)) + { + writer.WriteAttributeString("GenericExecute", "no"); + } + if ((this.genericExecuteField == YesNoType.yes)) + { + writer.WriteAttributeString("GenericExecute", "yes"); + } + } + if (this.genericWriteFieldSet) + { + if ((this.genericWriteField == YesNoType.no)) + { + writer.WriteAttributeString("GenericWrite", "no"); + } + if ((this.genericWriteField == YesNoType.yes)) + { + writer.WriteAttributeString("GenericWrite", "yes"); + } + } + if (this.genericReadFieldSet) + { + if ((this.genericReadField == YesNoType.no)) + { + writer.WriteAttributeString("GenericRead", "no"); + } + if ((this.genericReadField == YesNoType.yes)) + { + writer.WriteAttributeString("GenericRead", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Domain" == name)) + { + this.domainField = value; + this.domainFieldSet = true; + } + if (("User" == name)) + { + this.userField = value; + this.userFieldSet = true; + } + if (("Read" == name)) + { + this.readField = Enums.ParseYesNoType(value); + this.readFieldSet = true; + } + if (("Delete" == name)) + { + this.deleteField = Enums.ParseYesNoType(value); + this.deleteFieldSet = true; + } + if (("ReadPermission" == name)) + { + this.readPermissionField = Enums.ParseYesNoType(value); + this.readPermissionFieldSet = true; + } + if (("ChangePermission" == name)) + { + this.changePermissionField = Enums.ParseYesNoType(value); + this.changePermissionFieldSet = true; + } + if (("TakeOwnership" == name)) + { + this.takeOwnershipField = Enums.ParseYesNoType(value); + this.takeOwnershipFieldSet = true; + } + if (("SpecificRightsAll" == name)) + { + this.specificRightsAllField = Enums.ParseYesNoType(value); + this.specificRightsAllFieldSet = true; + } + if (("ReadAttributes" == name)) + { + this.readAttributesField = Enums.ParseYesNoType(value); + this.readAttributesFieldSet = true; + } + if (("WriteAttributes" == name)) + { + this.writeAttributesField = Enums.ParseYesNoType(value); + this.writeAttributesFieldSet = true; + } + if (("ReadExtendedAttributes" == name)) + { + this.readExtendedAttributesField = Enums.ParseYesNoType(value); + this.readExtendedAttributesFieldSet = true; + } + if (("WriteExtendedAttributes" == name)) + { + this.writeExtendedAttributesField = Enums.ParseYesNoType(value); + this.writeExtendedAttributesFieldSet = true; + } + if (("Synchronize" == name)) + { + this.synchronizeField = Enums.ParseYesNoType(value); + this.synchronizeFieldSet = true; + } + if (("CreateFile" == name)) + { + this.createFileField = Enums.ParseYesNoType(value); + this.createFileFieldSet = true; + } + if (("CreateChild" == name)) + { + this.createChildField = Enums.ParseYesNoType(value); + this.createChildFieldSet = true; + } + if (("DeleteChild" == name)) + { + this.deleteChildField = Enums.ParseYesNoType(value); + this.deleteChildFieldSet = true; + } + if (("Traverse" == name)) + { + this.traverseField = Enums.ParseYesNoType(value); + this.traverseFieldSet = true; + } + if (("Append" == name)) + { + this.appendField = Enums.ParseYesNoType(value); + this.appendFieldSet = true; + } + if (("Execute" == name)) + { + this.executeField = Enums.ParseYesNoType(value); + this.executeFieldSet = true; + } + if (("FileAllRights" == name)) + { + this.fileAllRightsField = Enums.ParseYesNoType(value); + this.fileAllRightsFieldSet = true; + } + if (("Write" == name)) + { + this.writeField = Enums.ParseYesNoType(value); + this.writeFieldSet = true; + } + if (("CreateSubkeys" == name)) + { + this.createSubkeysField = Enums.ParseYesNoType(value); + this.createSubkeysFieldSet = true; + } + if (("EnumerateSubkeys" == name)) + { + this.enumerateSubkeysField = Enums.ParseYesNoType(value); + this.enumerateSubkeysFieldSet = true; + } + if (("Notify" == name)) + { + this.notifyField = Enums.ParseYesNoType(value); + this.notifyFieldSet = true; + } + if (("CreateLink" == name)) + { + this.createLinkField = Enums.ParseYesNoType(value); + this.createLinkFieldSet = true; + } + if (("GenericAll" == name)) + { + this.genericAllField = Enums.ParseYesNoType(value); + this.genericAllFieldSet = true; + } + if (("GenericExecute" == name)) + { + this.genericExecuteField = Enums.ParseYesNoType(value); + this.genericExecuteFieldSet = true; + } + if (("GenericWrite" == name)) + { + this.genericWriteField = Enums.ParseYesNoType(value); + this.genericWriteFieldSet = true; + } + if (("GenericRead" == name)) + { + this.genericReadField = Enums.ParseYesNoType(value); + this.genericReadFieldSet = true; + } + } + } + + /// + /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used + /// if the Action attribute's value is remove or removeKeyOnInstall. This element is only available + /// when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the + /// WixUtilExtension. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PermissionEx : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string sddlField; + + private bool sddlFieldSet; + + private ISchemaElement parentElement; + + public PermissionEx() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Condition))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute + /// will be used instead. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Security descriptor to apply to parent object. + /// + public string Sddl + { + get + { + return this.sddlField; + } + set + { + this.sddlFieldSet = true; + this.sddlField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Condition" == childName)) + { + childValue = new Condition(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PermissionEx", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sddlFieldSet) + { + writer.WriteAttributeString("Sddl", this.sddlField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Sddl" == name)) + { + this.sddlField = value; + this.sddlFieldSet = true; + } + } + } + + /// + /// Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When + /// this element is nested under a File element, the parent file will be installed, then copied to the specified destination + /// if the parent component of the file is selected for installation or removal. When this element is nested under + /// a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine. + /// When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed, + /// then copied to the specified destination if the parent component is selected for installation or removal (use + /// this option to control the copy of a file in a different component by the parent component's installation state). If the + /// specified destination directory is the same as the directory containing the original file and the name for the proposed source + /// file is the same as the original, then no action takes place. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CopyFile : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string fileIdField; + + private bool fileIdFieldSet; + + private string sourceDirectoryField; + + private bool sourceDirectoryFieldSet; + + private string sourcePropertyField; + + private bool sourcePropertyFieldSet; + + private string sourceNameField; + + private bool sourceNameFieldSet; + + private string destinationDirectoryField; + + private bool destinationDirectoryFieldSet; + + private string destinationPropertyField; + + private bool destinationPropertyFieldSet; + + private string destinationNameField; + + private bool destinationNameFieldSet; + + private string destinationShortNameField; + + private bool destinationShortNameFieldSet; + + private YesNoType deleteField; + + private bool deleteFieldSet; + + private ISchemaElement parentElement; + + /// + /// Primary key used to identify this particular entry. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier + /// of a file from a different component to copy it based on the install state of the parent component. + /// + public string FileId + { + get + { + return this.fileIdField; + } + set + { + this.fileIdFieldSet = true; + this.fileIdField = value; + } + } + + /// + /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set + /// this value to the source directory from which to copy or move an existing file on the target machine. This Directory must + /// exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty. + /// + public string SourceDirectory + { + get + { + return this.sourceDirectoryField; + } + set + { + this.sourceDirectoryFieldSet = true; + this.sourceDirectoryField = value; + } + } + + /// + /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set + /// this value to a property that will have a value that resolves to the full path of the source directory (or full path + /// including file name if SourceName is not specified). The property does not have to exist in the installer database at + /// creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute + /// cannot be specified in conjunction with SourceDirectory. + /// + public string SourceProperty + { + get + { + return this.sourcePropertyField; + } + set + { + this.sourcePropertyFieldSet = true; + this.sourcePropertyField = value; + } + } + + /// + /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set + /// this value to the localizable name of the file(s) to be copied or moved. All of the files that + /// match the wild card will be removed from the specified directory. The value is a filename that may also + /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this + /// attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the + /// SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename. + /// If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied + /// files retain the file names from their sources. + /// + public string SourceName + { + get + { + return this.sourceNameField; + } + set + { + this.sourceNameFieldSet = true; + this.sourceNameField = value; + } + } + + /// + /// Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This + /// Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with + /// DestinationProperty. + /// + public string DestinationDirectory + { + get + { + return this.destinationDirectoryField; + } + set + { + this.destinationDirectoryFieldSet = true; + this.destinationDirectoryField = value; + } + } + + /// + /// Set this value to a property that will have a value that resolves to the full path of the destination directory. The property + /// does not have to exist in the installer database at creation time; it could be created at installation time by a custom + /// action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory. + /// + public string DestinationProperty + { + get + { + return this.destinationPropertyField; + } + set + { + this.destinationPropertyFieldSet = true; + this.destinationPropertyField = value; + } + } + + /// + /// In prior versions of the WiX toolset, this attribute specified the short file name. + /// Now set this value to the localizable name to be given to the original file after it is moved or copied. + /// If this attribute is not specified, then the destination file is given the same name as the source file. + /// If a short file name is specified, the DestinationShortName attribute may not be specified. + /// Also, if this value is a long file name, the DestinationShortName attribute may be omitted to + /// allow WiX to attempt to generate a unique short file name. + /// However, if this name collides with another file or you wish to manually specify + /// the short file name, then the DestinationShortName attribute may be specified. + /// + public string DestinationName + { + get + { + return this.destinationNameField; + } + set + { + this.destinationNameFieldSet = true; + this.destinationNameField = value; + } + } + + /// + /// The short file name of the file in 8.3 format. + /// This attribute should only be set if there is a conflict between generated short file names + /// or you wish to manually specify the short file name. + /// + public string DestinationShortName + { + get + { + return this.destinationShortNameField; + } + set + { + this.destinationShortNameFieldSet = true; + this.destinationShortNameField = value; + } + } + + /// + /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other + /// cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes" + /// in order to move the file (thus deleting the source file) instead of copying it. + /// + public YesNoType Delete + { + get + { + return this.deleteField; + } + set + { + this.deleteFieldSet = true; + this.deleteField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CopyFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.fileIdFieldSet) + { + writer.WriteAttributeString("FileId", this.fileIdField); + } + if (this.sourceDirectoryFieldSet) + { + writer.WriteAttributeString("SourceDirectory", this.sourceDirectoryField); + } + if (this.sourcePropertyFieldSet) + { + writer.WriteAttributeString("SourceProperty", this.sourcePropertyField); + } + if (this.sourceNameFieldSet) + { + writer.WriteAttributeString("SourceName", this.sourceNameField); + } + if (this.destinationDirectoryFieldSet) + { + writer.WriteAttributeString("DestinationDirectory", this.destinationDirectoryField); + } + if (this.destinationPropertyFieldSet) + { + writer.WriteAttributeString("DestinationProperty", this.destinationPropertyField); + } + if (this.destinationNameFieldSet) + { + writer.WriteAttributeString("DestinationName", this.destinationNameField); + } + if (this.destinationShortNameFieldSet) + { + writer.WriteAttributeString("DestinationShortName", this.destinationShortNameField); + } + if (this.deleteFieldSet) + { + if ((this.deleteField == YesNoType.no)) + { + writer.WriteAttributeString("Delete", "no"); + } + if ((this.deleteField == YesNoType.yes)) + { + writer.WriteAttributeString("Delete", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("FileId" == name)) + { + this.fileIdField = value; + this.fileIdFieldSet = true; + } + if (("SourceDirectory" == name)) + { + this.sourceDirectoryField = value; + this.sourceDirectoryFieldSet = true; + } + if (("SourceProperty" == name)) + { + this.sourcePropertyField = value; + this.sourcePropertyFieldSet = true; + } + if (("SourceName" == name)) + { + this.sourceNameField = value; + this.sourceNameFieldSet = true; + } + if (("DestinationDirectory" == name)) + { + this.destinationDirectoryField = value; + this.destinationDirectoryFieldSet = true; + } + if (("DestinationProperty" == name)) + { + this.destinationPropertyField = value; + this.destinationPropertyFieldSet = true; + } + if (("DestinationName" == name)) + { + this.destinationNameField = value; + this.destinationNameFieldSet = true; + } + if (("DestinationShortName" == name)) + { + this.destinationShortNameField = value; + this.destinationShortNameFieldSet = true; + } + if (("Delete" == name)) + { + this.deleteField = Enums.ParseYesNoType(value); + this.deleteFieldSet = true; + } + } + } + + /// + /// File specification for File table, must be child node of Component. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class File : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string companionFileField; + + private bool companionFileFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private YesNoType keyPathField; + + private bool keyPathFieldSet; + + private string shortNameField; + + private bool shortNameFieldSet; + + private YesNoType readOnlyField; + + private bool readOnlyFieldSet; + + private YesNoType hiddenField; + + private bool hiddenFieldSet; + + private YesNoType systemField; + + private bool systemFieldSet; + + private YesNoType vitalField; + + private bool vitalFieldSet; + + private YesNoType checksumField; + + private bool checksumFieldSet; + + private YesNoDefaultType compressedField; + + private bool compressedFieldSet; + + private string bindPathField; + + private bool bindPathFieldSet; + + private int selfRegCostField; + + private bool selfRegCostFieldSet; + + private YesNoType trueTypeField; + + private bool trueTypeFieldSet; + + private string fontTitleField; + + private bool fontTitleFieldSet; + + private string defaultLanguageField; + + private bool defaultLanguageFieldSet; + + private int defaultSizeField; + + private bool defaultSizeFieldSet; + + private string defaultVersionField; + + private bool defaultVersionFieldSet; + + private AssemblyType assemblyField; + + private bool assemblyFieldSet; + + private string assemblyManifestField; + + private bool assemblyManifestFieldSet; + + private string assemblyApplicationField; + + private bool assemblyApplicationFieldSet; + + private ProcessorArchitectureType processorArchitectureField; + + private bool processorArchitectureFieldSet; + + private string diskIdField; + + private bool diskIdFieldSet; + + private string sourceField; + + private bool sourceFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private int patchGroupField; + + private bool patchGroupFieldSet; + + private YesNoType patchIgnoreField; + + private bool patchIgnoreFieldSet; + + private YesNoType patchAllowIgnoreOnErrorField; + + private bool patchAllowIgnoreOnErrorFieldSet; + + private YesNoType patchWholeFileField; + + private bool patchWholeFileFieldSet; + + private ISchemaElement parentElement; + + public File() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AssemblyName))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value]. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set this attribute to make this file a companion child of another file. The installation + /// state of a companion file depends not on its own file versioning information, but on the versioning of its + /// companion parent. A file that is the key path for its component can not be a companion file (that means + /// this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along + /// with this attribute since companion files are not installed based on their own version. + /// + public string CompanionFile + { + get + { + return this.companionFileField; + } + set + { + this.companionFileFieldSet = true; + this.companionFileField = value; + } + } + + /// + /// In prior versions of the WiX toolset, this attribute specified the short file name. + /// This attribute's value may now be either a short or long file name. + /// If a short file name is specified, the ShortName attribute may not be specified. + /// Also, if this value is a long file name, the ShortName attribute may be omitted to + /// allow WiX to attempt to generate a unique short file name. + /// However, if this name collides with another file or you wish to manually specify + /// the short file name, then the ShortName attribute may be specified. + /// Finally, if this attribute is omitted then its default value is the file name portion + /// of the Source attribute, if one is specified, or the value of the Id attribute, if + /// the Source attribute is omitted or doesn't contain a file name. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Set to yes in order to force this file to be the key path for the parent component. + /// + public YesNoType KeyPath + { + get + { + return this.keyPathField; + } + set + { + this.keyPathFieldSet = true; + this.keyPathField = value; + } + } + + /// + /// The short file name of the file in 8.3 format. + /// This attribute should only be set if there is a conflict between generated short file names + /// or the user wants to manually specify the short file name. + /// + public string ShortName + { + get + { + return this.shortNameField; + } + set + { + this.shortNameFieldSet = true; + this.shortNameField = value; + } + } + + /// + /// Set to yes in order to have the file's read-only attribute set when it is installed on the target machine. + /// + public YesNoType ReadOnly + { + get + { + return this.readOnlyField; + } + set + { + this.readOnlyFieldSet = true; + this.readOnlyField = value; + } + } + + /// + /// Set to yes in order to have the file's hidden attribute set when it is installed on the target machine. + /// + public YesNoType Hidden + { + get + { + return this.hiddenField; + } + set + { + this.hiddenFieldSet = true; + this.hiddenField = value; + } + } + + /// + /// Set to yes in order to have the file's system attribute set when it is installed on the target machine. + /// + public YesNoType System + { + get + { + return this.systemField; + } + set + { + this.systemFieldSet = true; + this.systemField = value; + } + } + + /// + /// If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used. + /// + public YesNoType Vital + { + get + { + return this.vitalField; + } + set + { + this.vitalFieldSet = true; + this.vitalField = value; + } + } + + /// + /// This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall. + /// + public YesNoType Checksum + { + get + { + return this.checksumField; + } + set + { + this.checksumFieldSet = true; + this.checksumField = value; + } + } + + /// + /// Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property. + /// + public YesNoDefaultType Compressed + { + get + { + return this.compressedField; + } + set + { + this.compressedFieldSet = true; + this.compressedField = value; + } + } + + /// + /// A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table. + /// + public string BindPath + { + get + { + return this.bindPathField; + } + set + { + this.bindPathFieldSet = true; + this.bindPathField = value; + } + } + + /// + /// The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table. + /// + public int SelfRegCost + { + get + { + return this.selfRegCostField; + } + set + { + this.selfRegCostFieldSet = true; + this.selfRegCostField = value; + } + } + + /// + /// Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font. + /// + public YesNoType TrueType + { + get + { + return this.trueTypeField; + } + set + { + this.trueTypeFieldSet = true; + this.trueTypeField = value; + } + } + + /// + /// Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font. + /// + public string FontTitle + { + get + { + return this.fontTitleField; + } + set + { + this.fontTitleFieldSet = true; + this.fontTitleField = value; + } + } + + /// + /// This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used. + /// + public string DefaultLanguage + { + get + { + return this.defaultLanguageField; + } + set + { + this.defaultLanguageFieldSet = true; + this.defaultLanguageField = value; + } + } + + /// + /// This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used. + /// + public int DefaultSize + { + get + { + return this.defaultSizeField; + } + set + { + this.defaultSizeFieldSet = true; + this.defaultSizeField = value; + } + } + + /// + /// This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used. + /// + public string DefaultVersion + { + get + { + return this.defaultVersionField; + } + set + { + this.defaultVersionFieldSet = true; + this.defaultVersionField = value; + } + } + + /// + /// Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the + /// Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component. + /// + public AssemblyType Assembly + { + get + { + return this.assemblyField; + } + set + { + this.assemblyFieldSet = true; + this.assemblyField = value; + } + } + + /// + /// Specifies the file identifier of the manifest file that describes this assembly. + /// The manifest file should be in the same component as the assembly it describes. + /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. + /// + public string AssemblyManifest + { + get + { + return this.assemblyManifestField; + } + set + { + this.assemblyManifestFieldSet = true; + this.assemblyManifestField = value; + } + } + + /// + /// Specifies the file identifier of the application file. This assembly will be isolated + /// to the same directory as the application file. + /// If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC). + /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. + /// + public string AssemblyApplication + { + get + { + return this.assemblyApplicationField; + } + set + { + this.assemblyApplicationFieldSet = true; + this.assemblyApplicationField = value; + } + } + + /// + /// Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies. + /// + public ProcessorArchitectureType ProcessorArchitecture + { + get + { + return this.processorArchitectureField; + } + set + { + this.processorArchitectureFieldSet = true; + this.processorArchitectureField = value; + } + } + + /// + /// The value of this attribute should correspond to the Id attribute of a Media + /// element authored elsewhere. By creating this connection between a file and + /// its media, you set the packaging options to the values specified in the Media + /// element (values such as compression level, cab embedding, etc...). Specifying + /// the DiskId attribute on the File element overrides the default DiskId attribute + /// from the parent Component element. If no DiskId attribute is specified, + /// the default is "1". This DiskId attribute is ignored when creating a merge module + /// because merge modules do not have media. + /// + public string DiskId + { + get + { + return this.diskIdField; + } + set + { + this.diskIdFieldSet = true; + this.diskIdField = value; + } + } + + /// + /// Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see + /// + public string Source + { + get + { + return this.sourceField; + } + set + { + this.sourceFieldSet = true; + this.sourceField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + /// + /// This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups + /// numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the + /// second patch will have PatchGroup='2', etc... + /// + public int PatchGroup + { + get + { + return this.patchGroupField; + } + set + { + this.patchGroupFieldSet = true; + this.patchGroupField = value; + } + } + + /// + /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. + /// + public YesNoType PatchIgnore + { + get + { + return this.patchIgnoreField; + } + set + { + this.patchIgnoreFieldSet = true; + this.patchIgnoreField = value; + } + } + + /// + /// Set to indicate that the patch is non-vital. + /// + public YesNoType PatchAllowIgnoreOnError + { + get + { + return this.patchAllowIgnoreOnErrorField; + } + set + { + this.patchAllowIgnoreOnErrorFieldSet = true; + this.patchAllowIgnoreOnErrorField = value; + } + } + + /// + /// Set if the entire file should be installed rather than creating a binary patch. + /// + public YesNoType PatchWholeFile + { + get + { + return this.patchWholeFileField; + } + set + { + this.patchWholeFileFieldSet = true; + this.patchWholeFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("AssemblyName" == childName)) + { + childValue = new AssemblyName(); + } + if (("Permission" == childName)) + { + childValue = new Permission(); + } + if (("PermissionEx" == childName)) + { + childValue = new PermissionEx(); + } + if (("CopyFile" == childName)) + { + childValue = new CopyFile(); + } + if (("Shortcut" == childName)) + { + childValue = new Shortcut(); + } + if (("ODBCDriver" == childName)) + { + childValue = new ODBCDriver(); + } + if (("ODBCTranslator" == childName)) + { + childValue = new ODBCTranslator(); + } + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if (("Class" == childName)) + { + childValue = new Class(); + } + if (("AppId" == childName)) + { + childValue = new AppId(); + } + if (("TypeLib" == childName)) + { + childValue = new TypeLib(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a AssemblyType from a string. + /// + public static AssemblyType ParseAssemblyType(string value) + { + AssemblyType parsedValue; + File.TryParseAssemblyType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a AssemblyType from a string. + /// + public static bool TryParseAssemblyType(string value, out AssemblyType parsedValue) + { + parsedValue = AssemblyType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if ((".net" == value)) + { + parsedValue = AssemblyType.net; + } + else + { + if (("no" == value)) + { + parsedValue = AssemblyType.no; + } + else + { + if (("win32" == value)) + { + parsedValue = AssemblyType.win32; + } + else + { + parsedValue = AssemblyType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a ProcessorArchitectureType from a string. + /// + public static ProcessorArchitectureType ParseProcessorArchitectureType(string value) + { + ProcessorArchitectureType parsedValue; + File.TryParseProcessorArchitectureType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ProcessorArchitectureType from a string. + /// + public static bool TryParseProcessorArchitectureType(string value, out ProcessorArchitectureType parsedValue) + { + parsedValue = ProcessorArchitectureType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("msil" == value)) + { + parsedValue = ProcessorArchitectureType.msil; + } + else + { + if (("x86" == value)) + { + parsedValue = ProcessorArchitectureType.x86; + } + else + { + if (("x64" == value)) + { + parsedValue = ProcessorArchitectureType.x64; + } + else + { + if (("ia64" == value)) + { + parsedValue = ProcessorArchitectureType.ia64; + } + else + { + parsedValue = ProcessorArchitectureType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("File", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.companionFileFieldSet) + { + writer.WriteAttributeString("CompanionFile", this.companionFileField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.keyPathFieldSet) + { + if ((this.keyPathField == YesNoType.no)) + { + writer.WriteAttributeString("KeyPath", "no"); + } + if ((this.keyPathField == YesNoType.yes)) + { + writer.WriteAttributeString("KeyPath", "yes"); + } + } + if (this.shortNameFieldSet) + { + writer.WriteAttributeString("ShortName", this.shortNameField); + } + if (this.readOnlyFieldSet) + { + if ((this.readOnlyField == YesNoType.no)) + { + writer.WriteAttributeString("ReadOnly", "no"); + } + if ((this.readOnlyField == YesNoType.yes)) + { + writer.WriteAttributeString("ReadOnly", "yes"); + } + } + if (this.hiddenFieldSet) + { + if ((this.hiddenField == YesNoType.no)) + { + writer.WriteAttributeString("Hidden", "no"); + } + if ((this.hiddenField == YesNoType.yes)) + { + writer.WriteAttributeString("Hidden", "yes"); + } + } + if (this.systemFieldSet) + { + if ((this.systemField == YesNoType.no)) + { + writer.WriteAttributeString("System", "no"); + } + if ((this.systemField == YesNoType.yes)) + { + writer.WriteAttributeString("System", "yes"); + } + } + if (this.vitalFieldSet) + { + if ((this.vitalField == YesNoType.no)) + { + writer.WriteAttributeString("Vital", "no"); + } + if ((this.vitalField == YesNoType.yes)) + { + writer.WriteAttributeString("Vital", "yes"); + } + } + if (this.checksumFieldSet) + { + if ((this.checksumField == YesNoType.no)) + { + writer.WriteAttributeString("Checksum", "no"); + } + if ((this.checksumField == YesNoType.yes)) + { + writer.WriteAttributeString("Checksum", "yes"); + } + } + if (this.compressedFieldSet) + { + if ((this.compressedField == YesNoDefaultType.@default)) + { + writer.WriteAttributeString("Compressed", "default"); + } + if ((this.compressedField == YesNoDefaultType.no)) + { + writer.WriteAttributeString("Compressed", "no"); + } + if ((this.compressedField == YesNoDefaultType.yes)) + { + writer.WriteAttributeString("Compressed", "yes"); + } + } + if (this.bindPathFieldSet) + { + writer.WriteAttributeString("BindPath", this.bindPathField); + } + if (this.selfRegCostFieldSet) + { + writer.WriteAttributeString("SelfRegCost", this.selfRegCostField.ToString(CultureInfo.InvariantCulture)); + } + if (this.trueTypeFieldSet) + { + if ((this.trueTypeField == YesNoType.no)) + { + writer.WriteAttributeString("TrueType", "no"); + } + if ((this.trueTypeField == YesNoType.yes)) + { + writer.WriteAttributeString("TrueType", "yes"); + } + } + if (this.fontTitleFieldSet) + { + writer.WriteAttributeString("FontTitle", this.fontTitleField); + } + if (this.defaultLanguageFieldSet) + { + writer.WriteAttributeString("DefaultLanguage", this.defaultLanguageField); + } + if (this.defaultSizeFieldSet) + { + writer.WriteAttributeString("DefaultSize", this.defaultSizeField.ToString(CultureInfo.InvariantCulture)); + } + if (this.defaultVersionFieldSet) + { + writer.WriteAttributeString("DefaultVersion", this.defaultVersionField); + } + if (this.assemblyFieldSet) + { + if ((this.assemblyField == AssemblyType.net)) + { + writer.WriteAttributeString("Assembly", ".net"); + } + if ((this.assemblyField == AssemblyType.no)) + { + writer.WriteAttributeString("Assembly", "no"); + } + if ((this.assemblyField == AssemblyType.win32)) + { + writer.WriteAttributeString("Assembly", "win32"); + } + } + if (this.assemblyManifestFieldSet) + { + writer.WriteAttributeString("AssemblyManifest", this.assemblyManifestField); + } + if (this.assemblyApplicationFieldSet) + { + writer.WriteAttributeString("AssemblyApplication", this.assemblyApplicationField); + } + if (this.processorArchitectureFieldSet) + { + if ((this.processorArchitectureField == ProcessorArchitectureType.msil)) + { + writer.WriteAttributeString("ProcessorArchitecture", "msil"); + } + if ((this.processorArchitectureField == ProcessorArchitectureType.x86)) + { + writer.WriteAttributeString("ProcessorArchitecture", "x86"); + } + if ((this.processorArchitectureField == ProcessorArchitectureType.x64)) + { + writer.WriteAttributeString("ProcessorArchitecture", "x64"); + } + if ((this.processorArchitectureField == ProcessorArchitectureType.ia64)) + { + writer.WriteAttributeString("ProcessorArchitecture", "ia64"); + } + } + if (this.diskIdFieldSet) + { + writer.WriteAttributeString("DiskId", this.diskIdField); + } + if (this.sourceFieldSet) + { + writer.WriteAttributeString("Source", this.sourceField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + if (this.patchGroupFieldSet) + { + writer.WriteAttributeString("PatchGroup", this.patchGroupField.ToString(CultureInfo.InvariantCulture)); + } + if (this.patchIgnoreFieldSet) + { + if ((this.patchIgnoreField == YesNoType.no)) + { + writer.WriteAttributeString("PatchIgnore", "no"); + } + if ((this.patchIgnoreField == YesNoType.yes)) + { + writer.WriteAttributeString("PatchIgnore", "yes"); + } + } + if (this.patchAllowIgnoreOnErrorFieldSet) + { + if ((this.patchAllowIgnoreOnErrorField == YesNoType.no)) + { + writer.WriteAttributeString("PatchAllowIgnoreOnError", "no"); + } + if ((this.patchAllowIgnoreOnErrorField == YesNoType.yes)) + { + writer.WriteAttributeString("PatchAllowIgnoreOnError", "yes"); + } + } + if (this.patchWholeFileFieldSet) + { + if ((this.patchWholeFileField == YesNoType.no)) + { + writer.WriteAttributeString("PatchWholeFile", "no"); + } + if ((this.patchWholeFileField == YesNoType.yes)) + { + writer.WriteAttributeString("PatchWholeFile", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("CompanionFile" == name)) + { + this.companionFileField = value; + this.companionFileFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("KeyPath" == name)) + { + this.keyPathField = Enums.ParseYesNoType(value); + this.keyPathFieldSet = true; + } + if (("ShortName" == name)) + { + this.shortNameField = value; + this.shortNameFieldSet = true; + } + if (("ReadOnly" == name)) + { + this.readOnlyField = Enums.ParseYesNoType(value); + this.readOnlyFieldSet = true; + } + if (("Hidden" == name)) + { + this.hiddenField = Enums.ParseYesNoType(value); + this.hiddenFieldSet = true; + } + if (("System" == name)) + { + this.systemField = Enums.ParseYesNoType(value); + this.systemFieldSet = true; + } + if (("Vital" == name)) + { + this.vitalField = Enums.ParseYesNoType(value); + this.vitalFieldSet = true; + } + if (("Checksum" == name)) + { + this.checksumField = Enums.ParseYesNoType(value); + this.checksumFieldSet = true; + } + if (("Compressed" == name)) + { + this.compressedField = Enums.ParseYesNoDefaultType(value); + this.compressedFieldSet = true; + } + if (("BindPath" == name)) + { + this.bindPathField = value; + this.bindPathFieldSet = true; + } + if (("SelfRegCost" == name)) + { + this.selfRegCostField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.selfRegCostFieldSet = true; + } + if (("TrueType" == name)) + { + this.trueTypeField = Enums.ParseYesNoType(value); + this.trueTypeFieldSet = true; + } + if (("FontTitle" == name)) + { + this.fontTitleField = value; + this.fontTitleFieldSet = true; + } + if (("DefaultLanguage" == name)) + { + this.defaultLanguageField = value; + this.defaultLanguageFieldSet = true; + } + if (("DefaultSize" == name)) + { + this.defaultSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.defaultSizeFieldSet = true; + } + if (("DefaultVersion" == name)) + { + this.defaultVersionField = value; + this.defaultVersionFieldSet = true; + } + if (("Assembly" == name)) + { + this.assemblyField = File.ParseAssemblyType(value); + this.assemblyFieldSet = true; + } + if (("AssemblyManifest" == name)) + { + this.assemblyManifestField = value; + this.assemblyManifestFieldSet = true; + } + if (("AssemblyApplication" == name)) + { + this.assemblyApplicationField = value; + this.assemblyApplicationFieldSet = true; + } + if (("ProcessorArchitecture" == name)) + { + this.processorArchitectureField = File.ParseProcessorArchitectureType(value); + this.processorArchitectureFieldSet = true; + } + if (("DiskId" == name)) + { + this.diskIdField = value; + this.diskIdFieldSet = true; + } + if (("Source" == name)) + { + this.sourceField = value; + this.sourceFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + if (("PatchGroup" == name)) + { + this.patchGroupField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.patchGroupFieldSet = true; + } + if (("PatchIgnore" == name)) + { + this.patchIgnoreField = Enums.ParseYesNoType(value); + this.patchIgnoreFieldSet = true; + } + if (("PatchAllowIgnoreOnError" == name)) + { + this.patchAllowIgnoreOnErrorField = Enums.ParseYesNoType(value); + this.patchAllowIgnoreOnErrorFieldSet = true; + } + if (("PatchWholeFile" == name)) + { + this.patchWholeFileField = Enums.ParseYesNoType(value); + this.patchWholeFileFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum AssemblyType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The file is a .NET Framework assembly. + /// + net, + + /// + /// The file is not a .NET Framework or Win32 assembly. This is the default value. + /// + no, + + /// + /// The file is a Win32 assembly. + /// + win32, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ProcessorArchitectureType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The file is a .NET Framework assembly that is processor-neutral. + /// + msil, + + /// + /// The file is a .NET Framework assembly for the x86 processor. + /// + x86, + + /// + /// The file is a .NET Framework assembly for the x64 processor. + /// + x64, + + /// + /// The file is a .NET Framework assembly for the ia64 processor. + /// + ia64, + } + } + + /// + /// Use several of these elements to specify each registry value in a multiString registry value. This element + /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The + /// values should go in the text area of the MultiStringValue element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MultiStringValue : ISetAttributes, ISchemaElement + { + + private ISchemaElement parentElement; + + private string contentField; + + private bool contentFieldSet; + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Use several of these elements to specify each registry value in a multiString registry value. This element + /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The + /// values should go in the text area of the MultiStringValue element. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MultiStringValue", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + } + + /// + /// Used for organization of child RegistryValue elements or to create a registry key + /// (and optionally remove it during uninstallation). + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegistryKey : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ActionType actionField; + + private bool actionFieldSet; + + private YesNoType forceCreateOnInstallField; + + private bool forceCreateOnInstallFieldSet; + + private YesNoType forceDeleteOnUninstallField; + + private bool forceDeleteOnUninstallFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private RegistryRootType rootField; + + private bool rootFieldSet; + + private ISchemaElement parentElement; + + public RegistryKey() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + /// generated by hashing the parent Component identifier, Root, Key, and Name. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer + /// to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed. + /// This value is needed only to create an empty key with no subkeys or values. Windows Installer creates + /// keys as needed to store subkeys and values. The default is "no". + /// + public YesNoType ForceCreateOnInstall + { + get + { + return this.forceCreateOnInstallField; + } + set + { + this.forceCreateOnInstallFieldSet = true; + this.forceCreateOnInstallField = value; + } + } + + /// + /// Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled. + /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already + /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. + /// The default is "no". + /// + public YesNoType ForceDeleteOnUninstall + { + get + { + return this.forceDeleteOnUninstallField; + } + set + { + this.forceDeleteOnUninstallFieldSet = true; + this.forceDeleteOnUninstallField = value; + } + } + + /// + /// The localizable key for the registry value. + /// If the parent element is a RegistryKey, this value may be omitted to use the + /// path of the parent, or if its specified it will be appended to the path of the parent. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// The predefined root key for the registry value. + /// + public RegistryRootType Root + { + get + { + return this.rootField; + } + set + { + this.rootFieldSet = true; + this.rootField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("RegistryKey" == childName)) + { + childValue = new RegistryKey(); + } + if (("RegistryValue" == childName)) + { + childValue = new RegistryValue(); + } + if (("Permission" == childName)) + { + childValue = new Permission(); + } + if (("PermissionEx" == childName)) + { + childValue = new PermissionEx(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + RegistryKey.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("create" == value)) + { + parsedValue = ActionType.create; + } + else + { + if (("createAndRemoveOnUninstall" == value)) + { + parsedValue = ActionType.createAndRemoveOnUninstall; + } + else + { + if (("none" == value)) + { + parsedValue = ActionType.none; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.create)) + { + writer.WriteAttributeString("Action", "create"); + } + if ((this.actionField == ActionType.createAndRemoveOnUninstall)) + { + writer.WriteAttributeString("Action", "createAndRemoveOnUninstall"); + } + if ((this.actionField == ActionType.none)) + { + writer.WriteAttributeString("Action", "none"); + } + } + if (this.forceCreateOnInstallFieldSet) + { + if ((this.forceCreateOnInstallField == YesNoType.no)) + { + writer.WriteAttributeString("ForceCreateOnInstall", "no"); + } + if ((this.forceCreateOnInstallField == YesNoType.yes)) + { + writer.WriteAttributeString("ForceCreateOnInstall", "yes"); + } + } + if (this.forceDeleteOnUninstallFieldSet) + { + if ((this.forceDeleteOnUninstallField == YesNoType.no)) + { + writer.WriteAttributeString("ForceDeleteOnUninstall", "no"); + } + if ((this.forceDeleteOnUninstallField == YesNoType.yes)) + { + writer.WriteAttributeString("ForceDeleteOnUninstall", "yes"); + } + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.rootFieldSet) + { + if ((this.rootField == RegistryRootType.HKMU)) + { + writer.WriteAttributeString("Root", "HKMU"); + } + if ((this.rootField == RegistryRootType.HKCR)) + { + writer.WriteAttributeString("Root", "HKCR"); + } + if ((this.rootField == RegistryRootType.HKCU)) + { + writer.WriteAttributeString("Root", "HKCU"); + } + if ((this.rootField == RegistryRootType.HKLM)) + { + writer.WriteAttributeString("Root", "HKLM"); + } + if ((this.rootField == RegistryRootType.HKU)) + { + writer.WriteAttributeString("Root", "HKU"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Action" == name)) + { + this.actionField = RegistryKey.ParseActionType(value); + this.actionFieldSet = true; + } + if (("ForceCreateOnInstall" == name)) + { + this.forceCreateOnInstallField = Enums.ParseYesNoType(value); + this.forceCreateOnInstallFieldSet = true; + } + if (("ForceDeleteOnUninstall" == name)) + { + this.forceDeleteOnUninstallField = Enums.ParseYesNoType(value); + this.forceDeleteOnUninstallFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Root" == name)) + { + this.rootField = Enums.ParseRegistryRootType(value); + this.rootFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Creates the key, if absent, when the parent component is installed. + /// + create, + + /// + /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. + /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already + /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. + /// + createAndRemoveOnUninstall, + + /// + /// Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output. + /// This is the default value. + /// + none, + } + } + + /// + /// Used to create a registry value. For multi-string values, this can be used to prepend or append values. + /// + /// For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element + /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The + /// values should go in the text area of the RegistryValue element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegistryValue : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private RegistryRootType rootField; + + private bool rootFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private ActionType actionField; + + private bool actionFieldSet; + + private YesNoType keyPathField; + + private bool keyPathFieldSet; + + private ISchemaElement parentElement; + + public RegistryValue() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MultiStringValue))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + /// generated by hashing the parent Component identifier, Root, Key, and Name. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The predefined root key for the registry value. + /// + public RegistryRootType Root + { + get + { + return this.rootField; + } + set + { + this.rootFieldSet = true; + this.rootField = value; + } + } + + /// + /// The localizable key for the registry value. + /// If the parent element is a RegistryKey, this value may be omitted to use the + /// path of the parent, or if its specified it will be appended to the path of the parent. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// The localizable registry value name. If this attribute is not provided the default value for the registry key will + /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not + /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows + /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate + /// values in the Type attribute to get the desired behavior. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value + /// attribute or a child RegistryValue element is specified. This attribute + /// should only be set when the value of the Action attribute does not include the word 'remove'. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + /// + /// This is the action that will be taken for this registry value. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. + /// Only one resource (registry, file, etc) can be the KeyPath of a component. + /// + public YesNoType KeyPath + { + get + { + return this.keyPathField; + } + set + { + this.keyPathFieldSet = true; + this.keyPathField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Permission" == childName)) + { + childValue = new Permission(); + } + if (("PermissionEx" == childName)) + { + childValue = new PermissionEx(); + } + if (("MultiStringValue" == childName)) + { + childValue = new MultiStringValue(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + RegistryValue.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("string" == value)) + { + parsedValue = TypeType.@string; + } + else + { + if (("integer" == value)) + { + parsedValue = TypeType.integer; + } + else + { + if (("binary" == value)) + { + parsedValue = TypeType.binary; + } + else + { + if (("expandable" == value)) + { + parsedValue = TypeType.expandable; + } + else + { + if (("multiString" == value)) + { + parsedValue = TypeType.multiString; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + RegistryValue.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("append" == value)) + { + parsedValue = ActionType.append; + } + else + { + if (("prepend" == value)) + { + parsedValue = ActionType.prepend; + } + else + { + if (("write" == value)) + { + parsedValue = ActionType.write; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.rootFieldSet) + { + if ((this.rootField == RegistryRootType.HKMU)) + { + writer.WriteAttributeString("Root", "HKMU"); + } + if ((this.rootField == RegistryRootType.HKCR)) + { + writer.WriteAttributeString("Root", "HKCR"); + } + if ((this.rootField == RegistryRootType.HKCU)) + { + writer.WriteAttributeString("Root", "HKCU"); + } + if ((this.rootField == RegistryRootType.HKLM)) + { + writer.WriteAttributeString("Root", "HKLM"); + } + if ((this.rootField == RegistryRootType.HKU)) + { + writer.WriteAttributeString("Root", "HKU"); + } + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.@string)) + { + writer.WriteAttributeString("Type", "string"); + } + if ((this.typeField == TypeType.integer)) + { + writer.WriteAttributeString("Type", "integer"); + } + if ((this.typeField == TypeType.binary)) + { + writer.WriteAttributeString("Type", "binary"); + } + if ((this.typeField == TypeType.expandable)) + { + writer.WriteAttributeString("Type", "expandable"); + } + if ((this.typeField == TypeType.multiString)) + { + writer.WriteAttributeString("Type", "multiString"); + } + } + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.append)) + { + writer.WriteAttributeString("Action", "append"); + } + if ((this.actionField == ActionType.prepend)) + { + writer.WriteAttributeString("Action", "prepend"); + } + if ((this.actionField == ActionType.write)) + { + writer.WriteAttributeString("Action", "write"); + } + } + if (this.keyPathFieldSet) + { + if ((this.keyPathField == YesNoType.no)) + { + writer.WriteAttributeString("KeyPath", "no"); + } + if ((this.keyPathField == YesNoType.yes)) + { + writer.WriteAttributeString("KeyPath", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Root" == name)) + { + this.rootField = Enums.ParseRegistryRootType(value); + this.rootFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = RegistryValue.ParseTypeType(value); + this.typeFieldSet = true; + } + if (("Action" == name)) + { + this.actionField = RegistryValue.ParseActionType(value); + this.actionFieldSet = true; + } + if (("KeyPath" == name)) + { + this.keyPathField = Enums.ParseYesNoType(value); + this.keyPathFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The value is interpreted and stored as a string (REG_SZ). + /// + @string, + + /// + /// The value is interpreted and stored as an integer (REG_DWORD). + /// + integer, + + /// + /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). + /// + binary, + + /// + /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). + /// + expandable, + + /// + /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). + /// Please note that this value will only result in a multi-string value if there is more than one registry value + /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. + /// + multiString, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Appends the specified value(s) to a multiString registry value. + /// + append, + + /// + /// Prepends the specified value(s) to a multiString registry value. + /// + prepend, + + /// + /// Writes a registry value. This is the default value. + /// + write, + } + } + + /// + /// Used for removing registry keys and all child keys either during install or uninstall. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveRegistryKey : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ActionType actionField; + + private bool actionFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private RegistryRootType rootField; + + private bool rootFieldSet; + + private ISchemaElement parentElement; + + /// + /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + /// generated by hashing the parent Component identifier, Root, Key, and Name. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This is the action that will be taken for this registry value. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// The localizable key for the registry value. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// The predefined root key for the registry value. + /// + public RegistryRootType Root + { + get + { + return this.rootField; + } + set + { + this.rootFieldSet = true; + this.rootField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + RemoveRegistryKey.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("removeOnInstall" == value)) + { + parsedValue = ActionType.removeOnInstall; + } + else + { + if (("removeOnUninstall" == value)) + { + parsedValue = ActionType.removeOnUninstall; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveRegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.removeOnInstall)) + { + writer.WriteAttributeString("Action", "removeOnInstall"); + } + if ((this.actionField == ActionType.removeOnUninstall)) + { + writer.WriteAttributeString("Action", "removeOnUninstall"); + } + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.rootFieldSet) + { + if ((this.rootField == RegistryRootType.HKMU)) + { + writer.WriteAttributeString("Root", "HKMU"); + } + if ((this.rootField == RegistryRootType.HKCR)) + { + writer.WriteAttributeString("Root", "HKCR"); + } + if ((this.rootField == RegistryRootType.HKCU)) + { + writer.WriteAttributeString("Root", "HKCU"); + } + if ((this.rootField == RegistryRootType.HKLM)) + { + writer.WriteAttributeString("Root", "HKLM"); + } + if ((this.rootField == RegistryRootType.HKU)) + { + writer.WriteAttributeString("Root", "HKU"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Action" == name)) + { + this.actionField = RemoveRegistryKey.ParseActionType(value); + this.actionFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Root" == name)) + { + this.rootField = Enums.ParseRegistryRootType(value); + this.rootFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Removes a key with all its values and subkeys when the parent component is installed. + /// + removeOnInstall, + + /// + /// Removes a key with all its values and subkeys when the parent component is uninstalled. + /// + removeOnUninstall, + } + } + + /// + /// Used to remove a registry value during installation. + /// There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey). + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveRegistryValue : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private RegistryRootType rootField; + + private bool rootFieldSet; + + private ISchemaElement parentElement; + + /// + /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + /// generated by hashing the parent Component identifier, Root, Key, and Name. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The localizable key for the registry value. + /// If the parent element is a RegistryKey, this value may be omitted to use the + /// path of the parent, or if its specified it will be appended to the path of the parent. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// The localizable registry value name. If this attribute is not provided the default value for the registry key will + /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not + /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The predefined root key for the registry value. + /// + public RegistryRootType Root + { + get + { + return this.rootField; + } + set + { + this.rootFieldSet = true; + this.rootField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveRegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.rootFieldSet) + { + if ((this.rootField == RegistryRootType.HKMU)) + { + writer.WriteAttributeString("Root", "HKMU"); + } + if ((this.rootField == RegistryRootType.HKCR)) + { + writer.WriteAttributeString("Root", "HKCR"); + } + if ((this.rootField == RegistryRootType.HKCU)) + { + writer.WriteAttributeString("Root", "HKCU"); + } + if ((this.rootField == RegistryRootType.HKLM)) + { + writer.WriteAttributeString("Root", "HKLM"); + } + if ((this.rootField == RegistryRootType.HKU)) + { + writer.WriteAttributeString("Root", "HKU"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Root" == name)) + { + this.rootField = Enums.ParseRegistryRootType(value); + this.rootFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Registry : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ActionType actionField; + + private bool actionFieldSet; + + private string keyField; + + private bool keyFieldSet; + + private YesNoType keyPathField; + + private bool keyPathFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private RegistryRootType rootField; + + private bool rootFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + public Registry() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be + /// generated by hashing the parent Component identifier, Root, Key, and Name. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This is the action that will be taken for this registry key. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// The localizable key for the registry value. + /// + public string Key + { + get + { + return this.keyField; + } + set + { + this.keyFieldSet = true; + this.keyField = value; + } + } + + /// + /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry, + /// file, etc) can be the KeyPath of a component. + /// + public YesNoType KeyPath + { + get + { + return this.keyPathField; + } + set + { + this.keyPathFieldSet = true; + this.keyPathField = value; + } + } + + /// + /// The localizable registry value name. If this attribute is not provided the default value for the registry key will + /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not + /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The predefined root key for the registry value. + /// + public RegistryRootType Root + { + get + { + return this.rootField; + } + set + { + this.rootFieldSet = true; + this.rootField = value; + } + } + + /// + /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value + /// attribute or a child RegistryValue element is specified. This attribute + /// should only be set when the value of the Action attribute does not include the word 'remove'. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + /// + /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows + /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate + /// values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action + /// attribute's value contains the word 'remove'. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Permission" == childName)) + { + childValue = new Permission(); + } + if (("PermissionEx" == childName)) + { + childValue = new PermissionEx(); + } + if (("RegistryValue" == childName)) + { + childValue = new RegistryValue(); + } + if (("Registry" == childName)) + { + childValue = new Registry(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + Registry.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("append" == value)) + { + parsedValue = ActionType.append; + } + else + { + if (("createKey" == value)) + { + parsedValue = ActionType.createKey; + } + else + { + if (("createKeyAndRemoveKeyOnUninstall" == value)) + { + parsedValue = ActionType.createKeyAndRemoveKeyOnUninstall; + } + else + { + if (("prepend" == value)) + { + parsedValue = ActionType.prepend; + } + else + { + if (("remove" == value)) + { + parsedValue = ActionType.remove; + } + else + { + if (("removeKeyOnInstall" == value)) + { + parsedValue = ActionType.removeKeyOnInstall; + } + else + { + if (("removeKeyOnUninstall" == value)) + { + parsedValue = ActionType.removeKeyOnUninstall; + } + else + { + if (("write" == value)) + { + parsedValue = ActionType.write; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + } + } + } + } + } + } + return true; + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + Registry.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("string" == value)) + { + parsedValue = TypeType.@string; + } + else + { + if (("integer" == value)) + { + parsedValue = TypeType.integer; + } + else + { + if (("binary" == value)) + { + parsedValue = TypeType.binary; + } + else + { + if (("expandable" == value)) + { + parsedValue = TypeType.expandable; + } + else + { + if (("multiString" == value)) + { + parsedValue = TypeType.multiString; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Registry", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.append)) + { + writer.WriteAttributeString("Action", "append"); + } + if ((this.actionField == ActionType.createKey)) + { + writer.WriteAttributeString("Action", "createKey"); + } + if ((this.actionField == ActionType.createKeyAndRemoveKeyOnUninstall)) + { + writer.WriteAttributeString("Action", "createKeyAndRemoveKeyOnUninstall"); + } + if ((this.actionField == ActionType.prepend)) + { + writer.WriteAttributeString("Action", "prepend"); + } + if ((this.actionField == ActionType.remove)) + { + writer.WriteAttributeString("Action", "remove"); + } + if ((this.actionField == ActionType.removeKeyOnInstall)) + { + writer.WriteAttributeString("Action", "removeKeyOnInstall"); + } + if ((this.actionField == ActionType.removeKeyOnUninstall)) + { + writer.WriteAttributeString("Action", "removeKeyOnUninstall"); + } + if ((this.actionField == ActionType.write)) + { + writer.WriteAttributeString("Action", "write"); + } + } + if (this.keyFieldSet) + { + writer.WriteAttributeString("Key", this.keyField); + } + if (this.keyPathFieldSet) + { + if ((this.keyPathField == YesNoType.no)) + { + writer.WriteAttributeString("KeyPath", "no"); + } + if ((this.keyPathField == YesNoType.yes)) + { + writer.WriteAttributeString("KeyPath", "yes"); + } + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.rootFieldSet) + { + if ((this.rootField == RegistryRootType.HKMU)) + { + writer.WriteAttributeString("Root", "HKMU"); + } + if ((this.rootField == RegistryRootType.HKCR)) + { + writer.WriteAttributeString("Root", "HKCR"); + } + if ((this.rootField == RegistryRootType.HKCU)) + { + writer.WriteAttributeString("Root", "HKCU"); + } + if ((this.rootField == RegistryRootType.HKLM)) + { + writer.WriteAttributeString("Root", "HKLM"); + } + if ((this.rootField == RegistryRootType.HKU)) + { + writer.WriteAttributeString("Root", "HKU"); + } + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.@string)) + { + writer.WriteAttributeString("Type", "string"); + } + if ((this.typeField == TypeType.integer)) + { + writer.WriteAttributeString("Type", "integer"); + } + if ((this.typeField == TypeType.binary)) + { + writer.WriteAttributeString("Type", "binary"); + } + if ((this.typeField == TypeType.expandable)) + { + writer.WriteAttributeString("Type", "expandable"); + } + if ((this.typeField == TypeType.multiString)) + { + writer.WriteAttributeString("Type", "multiString"); + } + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Action" == name)) + { + this.actionField = Registry.ParseActionType(value); + this.actionFieldSet = true; + } + if (("Key" == name)) + { + this.keyField = value; + this.keyFieldSet = true; + } + if (("KeyPath" == name)) + { + this.keyPathField = Enums.ParseYesNoType(value); + this.keyPathFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Root" == name)) + { + this.rootField = Enums.ParseRegistryRootType(value); + this.rootFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = Registry.ParseTypeType(value); + this.typeFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Appends the specified value(s) to a multiString registry key. + /// + append, + + /// + /// Creates the key, if absent, when the parent component is installed. + /// + createKey, + + /// + /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. + /// + createKeyAndRemoveKeyOnUninstall, + + /// + /// Prepends the specified value(s) to a multiString registry key. + /// + prepend, + + /// + /// Removes a registry name when the parent component is installed. + /// + remove, + + /// + /// Removes a key with all its values and subkeys when the parent component is installed. + /// + removeKeyOnInstall, + + /// + /// Removes a key with all its values and subkeys when the parent component is uninstalled. + /// + removeKeyOnUninstall, + + /// + /// Writes a registry value. + /// + write, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The value is interpreted and stored as a string (REG_SZ). + /// + @string, + + /// + /// The value is interpreted and stored as an integer (REG_DWORD). + /// + integer, + + /// + /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). + /// + binary, + + /// + /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). + /// + expandable, + + /// + /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). + /// Please note that this value will only result in a multi-string value if there is more than one registry value + /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. + /// + multiString, + } + } + + /// + /// Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed + /// by specifying a wildcard for the value of the Name attribute. By default, the source + /// directory of the file is the directory of the parent component. This can be overridden by specifying the + /// Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property + /// attribute with a value corresponding to a property that will have a value that resolves to the full path + /// to the source directory. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveFile : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private string propertyField; + + private bool propertyFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string shortNameField; + + private bool shortNameFieldSet; + + private InstallUninstallType onField; + + private bool onFieldSet; + + private ISchemaElement parentElement; + + /// + /// Primary key used to identify this particular entry. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the + /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// Overrides the directory of the parent component with the value of the specified property. The property + /// should have a value that resolves to the full path of the source directory. The property does not have + /// to exist in the installer database at creation time; it could be created at installation time by a custom + /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + /// + /// This value should be set to the localizable name of the file(s) to be removed. All of the files that + /// match the wild card will be removed from the specified directory. The value is a filename that may also + /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. + /// In prior versions of the WiX toolset, this attribute specified the short file name. + /// This attribute's value may now be either a short or long file name. + /// If a short file name is specified, the ShortName attribute may not be specified. + /// Also, if this value is a long file name, the ShortName attribute may be omitted to + /// allow WiX to attempt to generate a unique short file name. + /// However, if you wish to manually specify the short file name, then the ShortName attribute may be specified. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The short file name of the file in 8.3 format. + /// This attribute should only be set if you want to manually specify the short file name. + /// + public string ShortName + { + get + { + return this.shortNameField; + } + set + { + this.shortNameFieldSet = true; + this.shortNameField = value; + } + } + + /// + /// This value determines the time at which the file(s) may be removed. For 'install', the file will + /// be removed only when the parent component is being installed (msiInstallStateLocal or + /// msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component + /// is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases. + /// + public InstallUninstallType On + { + get + { + return this.onField; + } + set + { + this.onFieldSet = true; + this.onField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveFile", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.shortNameFieldSet) + { + writer.WriteAttributeString("ShortName", this.shortNameField); + } + if (this.onFieldSet) + { + if ((this.onField == InstallUninstallType.install)) + { + writer.WriteAttributeString("On", "install"); + } + if ((this.onField == InstallUninstallType.uninstall)) + { + writer.WriteAttributeString("On", "uninstall"); + } + if ((this.onField == InstallUninstallType.both)) + { + writer.WriteAttributeString("On", "both"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("ShortName" == name)) + { + this.shortNameField = value; + this.shortNameFieldSet = true; + } + if (("On" == name)) + { + this.onField = Enums.ParseInstallUninstallType(value); + this.onFieldSet = true; + } + } + } + + /// + /// Remove an empty folder if the parent component is selected for installation or removal. By default, the folder + /// is the directory of the parent component. This can be overridden by specifying the Directory attribute + /// with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value + /// corresponding to a property that will have a value that resolves to the full path of the folder. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveFolder : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private string propertyField; + + private bool propertyFieldSet; + + private InstallUninstallType onField; + + private bool onFieldSet; + + private ISchemaElement parentElement; + + /// + /// Primary key used to identify this particular entry. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the + /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// Overrides the directory of the parent component with the value of the specified property. The property + /// should have a value that resolves to the full path of the source directory. The property does not have + /// to exist in the installer database at creation time; it could be created at installation time by a custom + /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + /// + /// This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component. + /// For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or + /// msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component + /// is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases. + /// + public InstallUninstallType On + { + get + { + return this.onField; + } + set + { + this.onFieldSet = true; + this.onField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveFolder", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + if (this.onFieldSet) + { + if ((this.onField == InstallUninstallType.install)) + { + writer.WriteAttributeString("On", "install"); + } + if ((this.onField == InstallUninstallType.uninstall)) + { + writer.WriteAttributeString("On", "uninstall"); + } + if ((this.onField == InstallUninstallType.both)) + { + writer.WriteAttributeString("On", "both"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + if (("On" == name)) + { + this.onField = Enums.ParseInstallUninstallType(value); + this.onFieldSet = true; + } + } + } + + /// + /// Create folder as part of parent Component. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CreateFolder : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string directoryField; + + private bool directoryFieldSet; + + private ISchemaElement parentElement; + + public CreateFolder() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier of Directory to create. Defaults to Directory of parent Component. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Shortcut" == childName)) + { + childValue = new Shortcut(); + } + if (("Permission" == childName)) + { + childValue = new Permission(); + } + if (("PermissionEx" == childName)) + { + childValue = new PermissionEx(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CreateFolder", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + } + } + + /// + /// Optional way for defining AppData, generally used for complex CDATA. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AppData : ISetAttributes, ISchemaElement + { + + private ISchemaElement parentElement; + + private string contentField; + + private bool contentFieldSet; + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Optional way for defining AppData, generally used for complex CDATA. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AppData", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + } + + /// + /// Qualified published component for parent Component + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Category : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string qualifierField; + + private bool qualifierFieldSet; + + private string appDataField; + + private bool appDataFieldSet; + + private string featureField; + + private bool featureFieldSet; + + private ISchemaElement parentElement; + + public Category() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(AppData))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// A string GUID that represents the category of components being grouped together. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages. + /// + public string Qualifier + { + get + { + return this.qualifierField; + } + set + { + this.qualifierFieldSet = true; + this.qualifierField = value; + } + } + + /// + /// An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category. + /// + public string AppData + { + get + { + return this.appDataField; + } + set + { + this.appDataFieldSet = true; + this.appDataField = value; + } + } + + /// + /// Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component . + /// + public string Feature + { + get + { + return this.featureField; + } + set + { + this.featureFieldSet = true; + this.featureField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("AppData" == childName)) + { + childValue = new AppData(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Category", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.qualifierFieldSet) + { + writer.WriteAttributeString("Qualifier", this.qualifierField); + } + if (this.appDataFieldSet) + { + writer.WriteAttributeString("AppData", this.appDataField); + } + if (this.featureFieldSet) + { + writer.WriteAttributeString("Feature", this.featureField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Qualifier" == name)) + { + this.qualifierField = value; + this.qualifierFieldSet = true; + } + if (("AppData" == name)) + { + this.appDataField = value; + this.appDataFieldSet = true; + } + if (("Feature" == name)) + { + this.featureField = value; + this.featureFieldSet = true; + } + } + } + + /// + /// MIME content-type for an Extension + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MIME : ISchemaElement, ISetAttributes + { + + private YesNoType advertiseField; + + private bool advertiseFieldSet; + + private string contentTypeField; + + private bool contentTypeFieldSet; + + private string classField; + + private bool classFieldSet; + + private YesNoType defaultField; + + private bool defaultFieldSet; + + private ISchemaElement parentElement; + + /// + /// Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either. + /// + public YesNoType Advertise + { + get + { + return this.advertiseField; + } + set + { + this.advertiseFieldSet = true; + this.advertiseField = value; + } + } + + /// + /// This is the identifier for the MIME content. It is commonly written in the form of type/format. + /// + public string ContentType + { + get + { + return this.contentTypeField; + } + set + { + this.contentTypeFieldSet = true; + this.contentTypeField = value; + } + } + + /// + /// Class ID for the COM server that is to be associated with the MIME content. + /// + public string Class + { + get + { + return this.classField; + } + set + { + this.classFieldSet = true; + this.classField = value; + } + } + + /// + /// If 'yes', become the content type for the parent Extension. The default value is 'no'. + /// + public YesNoType Default + { + get + { + return this.defaultField; + } + set + { + this.defaultFieldSet = true; + this.defaultField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MIME", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.advertiseFieldSet) + { + if ((this.advertiseField == YesNoType.no)) + { + writer.WriteAttributeString("Advertise", "no"); + } + if ((this.advertiseField == YesNoType.yes)) + { + writer.WriteAttributeString("Advertise", "yes"); + } + } + if (this.contentTypeFieldSet) + { + writer.WriteAttributeString("ContentType", this.contentTypeField); + } + if (this.classFieldSet) + { + writer.WriteAttributeString("Class", this.classField); + } + if (this.defaultFieldSet) + { + if ((this.defaultField == YesNoType.no)) + { + writer.WriteAttributeString("Default", "no"); + } + if ((this.defaultField == YesNoType.yes)) + { + writer.WriteAttributeString("Default", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Advertise" == name)) + { + this.advertiseField = Enums.ParseYesNoType(value); + this.advertiseFieldSet = true; + } + if (("ContentType" == name)) + { + this.contentTypeField = value; + this.contentTypeFieldSet = true; + } + if (("Class" == name)) + { + this.classField = value; + this.classFieldSet = true; + } + if (("Default" == name)) + { + this.defaultField = Enums.ParseYesNoType(value); + this.defaultFieldSet = true; + } + } + } + + /// + /// Verb definition for an Extension. When advertised, this element creates a row in the + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Verb : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string commandField; + + private bool commandFieldSet; + + private string argumentField; + + private bool argumentFieldSet; + + private int sequenceField; + + private bool sequenceFieldSet; + + private string targetField; + + private bool targetFieldSet; + + private string targetFileField; + + private bool targetFileFieldSet; + + private string targetPropertyField; + + private bool targetPropertyFieldSet; + + private ISchemaElement parentElement; + + /// + /// The verb for the command. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The localized text displayed on the context menu. + /// + public string Command + { + get + { + return this.commandField; + } + set + { + this.commandFieldSet = true; + this.commandField = value; + } + } + + /// + /// Value for the command arguments. Note that the resolution of properties in the + /// Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property + /// already has the intended value when the component owning the verb is installed. For example, for the argument + /// "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the + /// component that owns the verb. + /// + public string Argument + { + get + { + return this.argumentField; + } + set + { + this.argumentFieldSet = true; + this.argumentField = value; + } + } + + /// + /// The sequence of the commands. Only verbs for which the Sequence is specified + /// are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this + /// column becomes the default verb. Used only for Advertised verbs. + /// + public int Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + public string Target + { + get + { + return this.targetField; + } + set + { + this.targetFieldSet = true; + this.targetField = value; + } + } + + /// + /// Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb. + /// The value should be the identifier of the target file to be executed for the verb. + /// + public string TargetFile + { + get + { + return this.targetFileField; + } + set + { + this.targetFileFieldSet = true; + this.targetFileField = value; + } + } + + /// + /// Either this attribute or the TargetFile attribute must be specified for a non-advertised verb. + /// The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb. + /// + public string TargetProperty + { + get + { + return this.targetPropertyField; + } + set + { + this.targetPropertyFieldSet = true; + this.targetPropertyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Verb", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.commandFieldSet) + { + writer.WriteAttributeString("Command", this.commandField); + } + if (this.argumentFieldSet) + { + writer.WriteAttributeString("Argument", this.argumentField); + } + if (this.sequenceFieldSet) + { + writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); + } + if (this.targetFieldSet) + { + writer.WriteAttributeString("Target", this.targetField); + } + if (this.targetFileFieldSet) + { + writer.WriteAttributeString("TargetFile", this.targetFileField); + } + if (this.targetPropertyFieldSet) + { + writer.WriteAttributeString("TargetProperty", this.targetPropertyField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Command" == name)) + { + this.commandField = value; + this.commandFieldSet = true; + } + if (("Argument" == name)) + { + this.argumentField = value; + this.argumentFieldSet = true; + } + if (("Sequence" == name)) + { + this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.sequenceFieldSet = true; + } + if (("Target" == name)) + { + this.targetField = value; + this.targetFieldSet = true; + } + if (("TargetFile" == name)) + { + this.targetFileField = value; + this.targetFileFieldSet = true; + } + if (("TargetProperty" == name)) + { + this.targetPropertyField = value; + this.targetPropertyFieldSet = true; + } + } + } + + /// + /// Extension for a Component + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Extension : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string contentTypeField; + + private bool contentTypeFieldSet; + + private YesNoType advertiseField; + + private bool advertiseFieldSet; + + private ISchemaElement parentElement; + + public Extension() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MIME))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Verb))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// This is simply the file extension, like "doc" or "xml". Do not include the preceding period. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The MIME type that is to be written. + /// + public string ContentType + { + get + { + return this.contentTypeField; + } + set + { + this.contentTypeFieldSet = true; + this.contentTypeField = value; + } + } + + /// + /// Whether this extension is to be advertised. The default is "no". + /// + public YesNoType Advertise + { + get + { + return this.advertiseField; + } + set + { + this.advertiseFieldSet = true; + this.advertiseField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("MIME" == childName)) + { + childValue = new MIME(); + } + if (("Verb" == childName)) + { + childValue = new Verb(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Extension", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.contentTypeFieldSet) + { + writer.WriteAttributeString("ContentType", this.contentTypeField); + } + if (this.advertiseFieldSet) + { + if ((this.advertiseField == YesNoType.no)) + { + writer.WriteAttributeString("Advertise", "no"); + } + if ((this.advertiseField == YesNoType.yes)) + { + writer.WriteAttributeString("Advertise", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("ContentType" == name)) + { + this.contentTypeField = value; + this.contentTypeFieldSet = true; + } + if (("Advertise" == name)) + { + this.advertiseField = Enums.ParseYesNoType(value); + this.advertiseFieldSet = true; + } + } + } + + /// + /// Register a type library (TypeLib). Please note that in order to properly use this + /// non-advertised, you will need use this element with Advertise='no' and also author the + /// appropriate child Interface elements by extracting them from the type library itself. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class TypeLib : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private YesNoType advertiseField; + + private bool advertiseFieldSet; + + private YesNoType controlField; + + private bool controlFieldSet; + + private int costField; + + private bool costFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private YesNoType hasDiskImageField; + + private bool hasDiskImageFieldSet; + + private string helpDirectoryField; + + private bool helpDirectoryFieldSet; + + private YesNoType hiddenField; + + private bool hiddenFieldSet; + + private int languageField; + + private bool languageFieldSet; + + private int majorVersionField; + + private bool majorVersionFieldSet; + + private int minorVersionField; + + private bool minorVersionFieldSet; + + private int resourceIdField; + + private bool resourceIdFieldSet; + + private YesNoType restrictedField; + + private bool restrictedFieldSet; + + private ISchemaElement parentElement; + + public TypeLib() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The GUID that identifes the type library. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Value of 'yes' will create a row in the TypeLib table. + /// Value of 'no' will create rows in the Registry table. + /// The default value is 'no'. + /// + public YesNoType Advertise + { + get + { + return this.advertiseField; + } + set + { + this.advertiseFieldSet = true; + this.advertiseField = value; + } + } + + /// + /// Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects. + /// This attribute can only be set if Advertise='no'. + /// + public YesNoType Control + { + get + { + return this.controlField; + } + set + { + this.controlFieldSet = true; + this.controlField = value; + } + } + + /// + /// The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'. + /// + public int Cost + { + get + { + return this.costField; + } + set + { + this.costFieldSet = true; + this.costField = value; + } + } + + /// + /// The localizable description of the type library. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'. + /// + public YesNoType HasDiskImage + { + get + { + return this.hasDiskImageField; + } + set + { + this.hasDiskImageFieldSet = true; + this.hasDiskImageField = value; + } + } + + /// + /// The identifier of the Directory element for the help directory. + /// + public string HelpDirectory + { + get + { + return this.helpDirectoryField; + } + set + { + this.helpDirectoryFieldSet = true; + this.helpDirectoryField = value; + } + } + + /// + /// Value of 'yes' means the type library should not be displayed to users, although its use is not restricted. + /// Should be used by controls. Hosts should create a new type library that wraps the control with extended properties. + /// This attribute can only be set if Advertise='no'. + /// + public YesNoType Hidden + { + get + { + return this.hiddenField; + } + set + { + this.hiddenFieldSet = true; + this.hiddenField = value; + } + } + + /// + /// The language of the type library. This must be a non-negative integer. + /// + public int Language + { + get + { + return this.languageField; + } + set + { + this.languageFieldSet = true; + this.languageField = value; + } + } + + /// + /// The major version of the type library. The value should be an integer from 0 - 255. + /// + public int MajorVersion + { + get + { + return this.majorVersionField; + } + set + { + this.majorVersionFieldSet = true; + this.majorVersionField = value; + } + } + + /// + /// The minor version of the type library. The value should be an integer from 0 - 255. + /// + public int MinorVersion + { + get + { + return this.minorVersionField; + } + set + { + this.minorVersionFieldSet = true; + this.minorVersionField = value; + } + } + + /// + /// The resource id of a typelib. The value is appended to the end of the typelib path in the registry. + /// + public int ResourceId + { + get + { + return this.resourceIdField; + } + set + { + this.resourceIdFieldSet = true; + this.resourceIdField = value; + } + } + + /// + /// Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'. + /// + public YesNoType Restricted + { + get + { + return this.restrictedField; + } + set + { + this.restrictedFieldSet = true; + this.restrictedField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("AppId" == childName)) + { + childValue = new AppId(); + } + if (("Class" == childName)) + { + childValue = new Class(); + } + if (("Interface" == childName)) + { + childValue = new Interface(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("TypeLib", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.advertiseFieldSet) + { + if ((this.advertiseField == YesNoType.no)) + { + writer.WriteAttributeString("Advertise", "no"); + } + if ((this.advertiseField == YesNoType.yes)) + { + writer.WriteAttributeString("Advertise", "yes"); + } + } + if (this.controlFieldSet) + { + if ((this.controlField == YesNoType.no)) + { + writer.WriteAttributeString("Control", "no"); + } + if ((this.controlField == YesNoType.yes)) + { + writer.WriteAttributeString("Control", "yes"); + } + } + if (this.costFieldSet) + { + writer.WriteAttributeString("Cost", this.costField.ToString(CultureInfo.InvariantCulture)); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.hasDiskImageFieldSet) + { + if ((this.hasDiskImageField == YesNoType.no)) + { + writer.WriteAttributeString("HasDiskImage", "no"); + } + if ((this.hasDiskImageField == YesNoType.yes)) + { + writer.WriteAttributeString("HasDiskImage", "yes"); + } + } + if (this.helpDirectoryFieldSet) + { + writer.WriteAttributeString("HelpDirectory", this.helpDirectoryField); + } + if (this.hiddenFieldSet) + { + if ((this.hiddenField == YesNoType.no)) + { + writer.WriteAttributeString("Hidden", "no"); + } + if ((this.hiddenField == YesNoType.yes)) + { + writer.WriteAttributeString("Hidden", "yes"); + } + } + if (this.languageFieldSet) + { + writer.WriteAttributeString("Language", this.languageField.ToString(CultureInfo.InvariantCulture)); + } + if (this.majorVersionFieldSet) + { + writer.WriteAttributeString("MajorVersion", this.majorVersionField.ToString(CultureInfo.InvariantCulture)); + } + if (this.minorVersionFieldSet) + { + writer.WriteAttributeString("MinorVersion", this.minorVersionField.ToString(CultureInfo.InvariantCulture)); + } + if (this.resourceIdFieldSet) + { + writer.WriteAttributeString("ResourceId", this.resourceIdField.ToString(CultureInfo.InvariantCulture)); + } + if (this.restrictedFieldSet) + { + if ((this.restrictedField == YesNoType.no)) + { + writer.WriteAttributeString("Restricted", "no"); + } + if ((this.restrictedField == YesNoType.yes)) + { + writer.WriteAttributeString("Restricted", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Advertise" == name)) + { + this.advertiseField = Enums.ParseYesNoType(value); + this.advertiseFieldSet = true; + } + if (("Control" == name)) + { + this.controlField = Enums.ParseYesNoType(value); + this.controlFieldSet = true; + } + if (("Cost" == name)) + { + this.costField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.costFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("HasDiskImage" == name)) + { + this.hasDiskImageField = Enums.ParseYesNoType(value); + this.hasDiskImageFieldSet = true; + } + if (("HelpDirectory" == name)) + { + this.helpDirectoryField = value; + this.helpDirectoryFieldSet = true; + } + if (("Hidden" == name)) + { + this.hiddenField = Enums.ParseYesNoType(value); + this.hiddenFieldSet = true; + } + if (("Language" == name)) + { + this.languageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.languageFieldSet = true; + } + if (("MajorVersion" == name)) + { + this.majorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.majorVersionFieldSet = true; + } + if (("MinorVersion" == name)) + { + this.minorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.minorVersionFieldSet = true; + } + if (("ResourceId" == name)) + { + this.resourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.resourceIdFieldSet = true; + } + if (("Restricted" == name)) + { + this.restrictedField = Enums.ParseYesNoType(value); + this.restrictedFieldSet = true; + } + } + } + + /// + /// ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ProgId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string iconField; + + private bool iconFieldSet; + + private int iconIndexField; + + private bool iconIndexFieldSet; + + private YesNoType advertiseField; + + private bool advertiseFieldSet; + + private string noOpenField; + + private bool noOpenFieldSet; + + private ISchemaElement parentElement; + + public ProgId() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProgId))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Extension))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource. + /// + public string Icon + { + get + { + return this.iconField; + } + set + { + this.iconFieldSet = true; + this.iconField = value; + } + } + + public int IconIndex + { + get + { + return this.iconIndexField; + } + set + { + this.iconIndexFieldSet = true; + this.iconIndexField = value; + } + } + + public YesNoType Advertise + { + get + { + return this.advertiseField; + } + set + { + this.advertiseFieldSet = true; + this.advertiseField = value; + } + } + + /// + /// Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute. + /// + public string NoOpen + { + get + { + return this.noOpenField; + } + set + { + this.noOpenFieldSet = true; + this.noOpenField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ProgId" == childName)) + { + childValue = new ProgId(); + } + if (("Extension" == childName)) + { + childValue = new Extension(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ProgId", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.iconFieldSet) + { + writer.WriteAttributeString("Icon", this.iconField); + } + if (this.iconIndexFieldSet) + { + writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); + } + if (this.advertiseFieldSet) + { + if ((this.advertiseField == YesNoType.no)) + { + writer.WriteAttributeString("Advertise", "no"); + } + if ((this.advertiseField == YesNoType.yes)) + { + writer.WriteAttributeString("Advertise", "yes"); + } + } + if (this.noOpenFieldSet) + { + writer.WriteAttributeString("NoOpen", this.noOpenField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("Icon" == name)) + { + this.iconField = value; + this.iconFieldSet = true; + } + if (("IconIndex" == name)) + { + this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.iconIndexFieldSet = true; + } + if (("Advertise" == name)) + { + this.advertiseField = Enums.ParseYesNoType(value); + this.advertiseFieldSet = true; + } + if (("NoOpen" == name)) + { + this.noOpenField = value; + this.noOpenFieldSet = true; + } + } + } + + /// + /// Application ID containing DCOM information for the associated application GUID. + /// If this element is nested under a Fragment, Module, or Product element, it must be + /// advertised. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AppId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private YesNoType activateAtStorageField; + + private bool activateAtStorageFieldSet; + + private YesNoType advertiseField; + + private bool advertiseFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string dllSurrogateField; + + private bool dllSurrogateFieldSet; + + private string idField; + + private bool idFieldSet; + + private string localServiceField; + + private bool localServiceFieldSet; + + private string remoteServerNameField; + + private bool remoteServerNameFieldSet; + + private YesNoType runAsInteractiveUserField; + + private bool runAsInteractiveUserFieldSet; + + private string serviceParametersField; + + private bool serviceParametersFieldSet; + + private ISchemaElement parentElement; + + public AppId() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Set this value to 'yes' to configure the client to activate on the same system as persistent storage. + /// + public YesNoType ActivateAtStorage + { + get + { + return this.activateAtStorageField; + } + set + { + this.activateAtStorageFieldSet = true; + this.activateAtStorageField = value; + } + } + + /// + /// Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to + /// generate Registry rows that perform similar registration (without the often problematic Windows Installer + /// advertising behavior). + /// + public YesNoType Advertise + { + get + { + return this.advertiseField; + } + set + { + this.advertiseFieldSet = true; + this.advertiseField = value; + } + } + + /// + /// Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE + /// process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value. + /// + public string DllSurrogate + { + get + { + return this.dllSurrogateField; + } + set + { + this.dllSurrogateFieldSet = true; + this.dllSurrogateField = value; + } + } + + /// + /// Set this value to the AppID GUID that corresponds to the named executable. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set this value to the name of a service to allow the object to be installed as a Win32 service. + /// + public string LocalService + { + get + { + return this.localServiceField; + } + set + { + this.localServiceFieldSet = true; + this.localServiceField = value; + } + } + + /// + /// Set this value to the name of the remote server to configure the client to request the object + /// be run at a particular machine whenever an activation function is called for which a COSERVERINFO + /// structure is not specified. + /// + public string RemoteServerName + { + get + { + return this.remoteServerNameField; + } + set + { + this.remoteServerNameFieldSet = true; + this.remoteServerNameField = value; + } + } + + /// + /// Set this value to 'yes' to configure a class to run under the identity of the user currently + /// logged on and connected to the interactive desktop when activated by a remote client without + /// being written as a Win32 service. + /// + public YesNoType RunAsInteractiveUser + { + get + { + return this.runAsInteractiveUserField; + } + set + { + this.runAsInteractiveUserFieldSet = true; + this.runAsInteractiveUserField = value; + } + } + + /// + /// Set this value to the parameters to be passed to a LocalService on invocation. + /// + public string ServiceParameters + { + get + { + return this.serviceParametersField; + } + set + { + this.serviceParametersFieldSet = true; + this.serviceParametersField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Class" == childName)) + { + childValue = new Class(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AppId", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.activateAtStorageFieldSet) + { + if ((this.activateAtStorageField == YesNoType.no)) + { + writer.WriteAttributeString("ActivateAtStorage", "no"); + } + if ((this.activateAtStorageField == YesNoType.yes)) + { + writer.WriteAttributeString("ActivateAtStorage", "yes"); + } + } + if (this.advertiseFieldSet) + { + if ((this.advertiseField == YesNoType.no)) + { + writer.WriteAttributeString("Advertise", "no"); + } + if ((this.advertiseField == YesNoType.yes)) + { + writer.WriteAttributeString("Advertise", "yes"); + } + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.dllSurrogateFieldSet) + { + writer.WriteAttributeString("DllSurrogate", this.dllSurrogateField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.localServiceFieldSet) + { + writer.WriteAttributeString("LocalService", this.localServiceField); + } + if (this.remoteServerNameFieldSet) + { + writer.WriteAttributeString("RemoteServerName", this.remoteServerNameField); + } + if (this.runAsInteractiveUserFieldSet) + { + if ((this.runAsInteractiveUserField == YesNoType.no)) + { + writer.WriteAttributeString("RunAsInteractiveUser", "no"); + } + if ((this.runAsInteractiveUserField == YesNoType.yes)) + { + writer.WriteAttributeString("RunAsInteractiveUser", "yes"); + } + } + if (this.serviceParametersFieldSet) + { + writer.WriteAttributeString("ServiceParameters", this.serviceParametersField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("ActivateAtStorage" == name)) + { + this.activateAtStorageField = Enums.ParseYesNoType(value); + this.activateAtStorageFieldSet = true; + } + if (("Advertise" == name)) + { + this.advertiseField = Enums.ParseYesNoType(value); + this.advertiseFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("DllSurrogate" == name)) + { + this.dllSurrogateField = value; + this.dllSurrogateFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("LocalService" == name)) + { + this.localServiceField = value; + this.localServiceFieldSet = true; + } + if (("RemoteServerName" == name)) + { + this.remoteServerNameField = value; + this.remoteServerNameFieldSet = true; + } + if (("RunAsInteractiveUser" == name)) + { + this.runAsInteractiveUserField = Enums.ParseYesNoType(value); + this.runAsInteractiveUserFieldSet = true; + } + if (("ServiceParameters" == name)) + { + this.serviceParametersField = value; + this.serviceParametersFieldSet = true; + } + } + } + + /// + /// COM Class registration for parent Component. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Class : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ContextType contextField; + + private bool contextFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string appIdField; + + private bool appIdFieldSet; + + private string iconField; + + private bool iconFieldSet; + + private int iconIndexField; + + private bool iconIndexFieldSet; + + private string handlerField; + + private bool handlerFieldSet; + + private string argumentField; + + private bool argumentFieldSet; + + private YesNoType relativePathField; + + private bool relativePathFieldSet; + + private YesNoType advertiseField; + + private bool advertiseFieldSet; + + private ThreadingModelType threadingModelField; + + private bool threadingModelFieldSet; + + private string versionField; + + private bool versionFieldSet; + + private YesNoType insertableField; + + private bool insertableFieldSet; + + private YesNoType programmableField; + + private bool programmableFieldSet; + + private string foreignServerField; + + private bool foreignServerFieldSet; + + private string serverField; + + private bool serverFieldSet; + + private YesNoType shortPathField; + + private bool shortPathFieldSet; + + private YesNoType safeForScriptingField; + + private bool safeForScriptingFieldSet; + + private YesNoType safeForInitializingField; + + private bool safeForInitializingFieldSet; + + private YesNoType controlField; + + private bool controlFieldSet; + + private ISchemaElement parentElement; + + public Class() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileTypeMask))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The Class identifier (CLSID) of a COM server. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable". + /// Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value + /// for the Context attribute. + /// + public ContextType Context + { + get + { + return this.contextField; + } + set + { + this.contextFieldSet = true; + this.contextField = value; + } + } + + /// + /// Localized description associated with the Class ID and Program ID. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID + /// containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an + /// AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised + /// class, nest the class within a parent AppId element. + /// + public string AppId + { + get + { + return this.appIdField; + } + set + { + this.appIdFieldSet = true; + this.appIdField = value; + } + } + + /// + /// The file providing the icon associated with this CLSID. Reference to an Icon element + /// (should match the Id attribute of an Icon element). This is currently not supported if the + /// value of the Advertise attribute is "no". + /// + public string Icon + { + get + { + return this.iconField; + } + set + { + this.iconFieldSet = true; + this.iconField = value; + } + } + + /// + /// Icon index into the icon file. + /// + public int IconIndex + { + get + { + return this.iconIndexField; + } + set + { + this.iconIndexFieldSet = true; + this.iconIndexField = value; + } + } + + /// + /// The default inproc handler. May be optionally provided only for Context = LocalServer or + /// LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler + /// value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value). + /// Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated + /// as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value). + /// + public string Handler + { + get + { + return this.handlerField; + } + set + { + this.handlerFieldSet = true; + this.handlerField = value; + } + } + + /// + /// This column is optional only when the Context column is set to "LocalServer" + /// or "LocalServer32" server context. The text is registered as the argument against + /// the OLE server and is used by OLE for invoking the server. Note that the resolution + /// of properties in the Argument field is limited. A property formatted as [Property] in + /// this field can only be resolved if the property already has the intended value when + /// the component owning the class is installed. For example, for the argument "[#MyDoc.doc]" + /// to resolve to the correct value, the same process must be installing the file MyDoc.doc and the + /// component that owns the class. + /// + public string Argument + { + get + { + return this.argumentField; + } + set + { + this.argumentFieldSet = true; + this.argumentField = value; + } + } + + /// + /// When the value is "yes", the bare file name can be used for COM servers. The installer + /// registers the file name only instead of the complete path. This enables the server in + /// the current directory to take precedence and allows multiple copies of the same component. + /// + public YesNoType RelativePath + { + get + { + return this.relativePathField; + } + set + { + this.relativePathFieldSet = true; + this.relativePathField = value; + } + } + + /// + /// Set this value to "yes" in order to create a normal Class table row. Set this value to + /// "no" in order to generate Registry rows that perform similar registration (without the + /// often problematic Windows Installer advertising behavior). + /// + public YesNoType Advertise + { + get + { + return this.advertiseField; + } + set + { + this.advertiseFieldSet = true; + this.advertiseField = value; + } + } + + /// + /// Threading model for the CLSID. + /// + public ThreadingModelType ThreadingModel + { + get + { + return this.threadingModelField; + } + set + { + this.threadingModelFieldSet = true; + this.threadingModelField = value; + } + } + + /// + /// Version for the CLSID. + /// + public string Version + { + get + { + return this.versionField; + } + set + { + this.versionFieldSet = true; + this.versionField = value; + } + } + + /// + /// Specifies the CLSID may be insertable. + /// + public YesNoType Insertable + { + get + { + return this.insertableField; + } + set + { + this.insertableFieldSet = true; + this.insertableField = value; + } + } + + /// + /// Specifies the CLSID may be programmable. + /// + public YesNoType Programmable + { + get + { + return this.programmableField; + } + set + { + this.programmableFieldSet = true; + this.programmableField = value; + } + } + + /// + /// May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only + /// be used when the Class element is directly under the Component element. The value can be + /// that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed. + /// + public string ForeignServer + { + get + { + return this.foreignServerField; + } + set + { + this.foreignServerFieldSet = true; + this.foreignServerField = value; + } + } + + /// + /// May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the + /// COM server file. If this element is nested under a File element, this value defaults to + /// the value of the parent File/@Id. + /// + public string Server + { + get + { + return this.serverField; + } + set + { + this.serverFieldSet = true; + this.serverField = value; + } + } + + /// + /// Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server. + /// + public YesNoType ShortPath + { + get + { + return this.shortPathField; + } + set + { + this.shortPathFieldSet = true; + this.shortPathField = value; + } + } + + /// + /// May only be specified if the value of the Advertise attribute is "no". + /// + public YesNoType SafeForScripting + { + get + { + return this.safeForScriptingField; + } + set + { + this.safeForScriptingFieldSet = true; + this.safeForScriptingField = value; + } + } + + /// + /// May only be specified if the value of the Advertise attribute is "no". + /// + public YesNoType SafeForInitializing + { + get + { + return this.safeForInitializingField; + } + set + { + this.safeForInitializingFieldSet = true; + this.safeForInitializingField = value; + } + } + + /// + /// Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'. + /// + public YesNoType Control + { + get + { + return this.controlField; + } + set + { + this.controlFieldSet = true; + this.controlField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ProgId" == childName)) + { + childValue = new ProgId(); + } + if (("FileTypeMask" == childName)) + { + childValue = new FileTypeMask(); + } + if (("Interface" == childName)) + { + childValue = new Interface(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Tries to parse a ContextType from a string. + /// + public static bool TryParseContextType(string value, out ContextType parsedValue) + { + parsedValue = ContextType.None; + if (string.IsNullOrEmpty(value)) + { + return false; + } + string[] splitValue = value.Split(" \t\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); + for (System.Collections.IEnumerator enumerator = splitValue.GetEnumerator(); enumerator.MoveNext(); + ) + { + string currentValue = ((string)(enumerator.Current)); + if (("LocalServer" == currentValue)) + { + parsedValue = (parsedValue | ContextType.LocalServer); + } + else + { + if (("LocalServer32" == currentValue)) + { + parsedValue = (parsedValue | ContextType.LocalServer32); + } + else + { + if (("InprocServer" == currentValue)) + { + parsedValue = (parsedValue | ContextType.InprocServer); + } + else + { + if (("InprocServer32" == currentValue)) + { + parsedValue = (parsedValue | ContextType.InprocServer32); + } + else + { + parsedValue = ContextType.None; + return false; + } + } + } + } + } + return true; + } + + /// + /// Parses a ThreadingModelType from a string. + /// + public static ThreadingModelType ParseThreadingModelType(string value) + { + ThreadingModelType parsedValue; + Class.TryParseThreadingModelType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ThreadingModelType from a string. + /// + public static bool TryParseThreadingModelType(string value, out ThreadingModelType parsedValue) + { + parsedValue = ThreadingModelType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("apartment" == value)) + { + parsedValue = ThreadingModelType.apartment; + } + else + { + if (("free" == value)) + { + parsedValue = ThreadingModelType.free; + } + else + { + if (("both" == value)) + { + parsedValue = ThreadingModelType.both; + } + else + { + if (("neutral" == value)) + { + parsedValue = ThreadingModelType.neutral; + } + else + { + if (("single" == value)) + { + parsedValue = ThreadingModelType.single; + } + else + { + if (("rental" == value)) + { + parsedValue = ThreadingModelType.rental; + } + else + { + parsedValue = ThreadingModelType.IllegalValue; + return false; + } + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Class", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.contextFieldSet) + { + string outputValue = ""; + if (((this.contextField & ContextType.LocalServer) + != 0)) + { + if ((outputValue.Length != 0)) + { + outputValue = (outputValue + " "); + } + outputValue = (outputValue + "LocalServer"); + } + if (((this.contextField & ContextType.LocalServer32) + != 0)) + { + if ((outputValue.Length != 0)) + { + outputValue = (outputValue + " "); + } + outputValue = (outputValue + "LocalServer32"); + } + if (((this.contextField & ContextType.InprocServer) + != 0)) + { + if ((outputValue.Length != 0)) + { + outputValue = (outputValue + " "); + } + outputValue = (outputValue + "InprocServer"); + } + if (((this.contextField & ContextType.InprocServer32) + != 0)) + { + if ((outputValue.Length != 0)) + { + outputValue = (outputValue + " "); + } + outputValue = (outputValue + "InprocServer32"); + } + writer.WriteAttributeString("Context", outputValue); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.appIdFieldSet) + { + writer.WriteAttributeString("AppId", this.appIdField); + } + if (this.iconFieldSet) + { + writer.WriteAttributeString("Icon", this.iconField); + } + if (this.iconIndexFieldSet) + { + writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); + } + if (this.handlerFieldSet) + { + writer.WriteAttributeString("Handler", this.handlerField); + } + if (this.argumentFieldSet) + { + writer.WriteAttributeString("Argument", this.argumentField); + } + if (this.relativePathFieldSet) + { + if ((this.relativePathField == YesNoType.no)) + { + writer.WriteAttributeString("RelativePath", "no"); + } + if ((this.relativePathField == YesNoType.yes)) + { + writer.WriteAttributeString("RelativePath", "yes"); + } + } + if (this.advertiseFieldSet) + { + if ((this.advertiseField == YesNoType.no)) + { + writer.WriteAttributeString("Advertise", "no"); + } + if ((this.advertiseField == YesNoType.yes)) + { + writer.WriteAttributeString("Advertise", "yes"); + } + } + if (this.threadingModelFieldSet) + { + if ((this.threadingModelField == ThreadingModelType.apartment)) + { + writer.WriteAttributeString("ThreadingModel", "apartment"); + } + if ((this.threadingModelField == ThreadingModelType.free)) + { + writer.WriteAttributeString("ThreadingModel", "free"); + } + if ((this.threadingModelField == ThreadingModelType.both)) + { + writer.WriteAttributeString("ThreadingModel", "both"); + } + if ((this.threadingModelField == ThreadingModelType.neutral)) + { + writer.WriteAttributeString("ThreadingModel", "neutral"); + } + if ((this.threadingModelField == ThreadingModelType.single)) + { + writer.WriteAttributeString("ThreadingModel", "single"); + } + if ((this.threadingModelField == ThreadingModelType.rental)) + { + writer.WriteAttributeString("ThreadingModel", "rental"); + } + } + if (this.versionFieldSet) + { + writer.WriteAttributeString("Version", this.versionField); + } + if (this.insertableFieldSet) + { + if ((this.insertableField == YesNoType.no)) + { + writer.WriteAttributeString("Insertable", "no"); + } + if ((this.insertableField == YesNoType.yes)) + { + writer.WriteAttributeString("Insertable", "yes"); + } + } + if (this.programmableFieldSet) + { + if ((this.programmableField == YesNoType.no)) + { + writer.WriteAttributeString("Programmable", "no"); + } + if ((this.programmableField == YesNoType.yes)) + { + writer.WriteAttributeString("Programmable", "yes"); + } + } + if (this.foreignServerFieldSet) + { + writer.WriteAttributeString("ForeignServer", this.foreignServerField); + } + if (this.serverFieldSet) + { + writer.WriteAttributeString("Server", this.serverField); + } + if (this.shortPathFieldSet) + { + if ((this.shortPathField == YesNoType.no)) + { + writer.WriteAttributeString("ShortPath", "no"); + } + if ((this.shortPathField == YesNoType.yes)) + { + writer.WriteAttributeString("ShortPath", "yes"); + } + } + if (this.safeForScriptingFieldSet) + { + if ((this.safeForScriptingField == YesNoType.no)) + { + writer.WriteAttributeString("SafeForScripting", "no"); + } + if ((this.safeForScriptingField == YesNoType.yes)) + { + writer.WriteAttributeString("SafeForScripting", "yes"); + } + } + if (this.safeForInitializingFieldSet) + { + if ((this.safeForInitializingField == YesNoType.no)) + { + writer.WriteAttributeString("SafeForInitializing", "no"); + } + if ((this.safeForInitializingField == YesNoType.yes)) + { + writer.WriteAttributeString("SafeForInitializing", "yes"); + } + } + if (this.controlFieldSet) + { + if ((this.controlField == YesNoType.no)) + { + writer.WriteAttributeString("Control", "no"); + } + if ((this.controlField == YesNoType.yes)) + { + writer.WriteAttributeString("Control", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Context" == name)) + { + Class.TryParseContextType(value, out this.contextField); + this.contextFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("AppId" == name)) + { + this.appIdField = value; + this.appIdFieldSet = true; + } + if (("Icon" == name)) + { + this.iconField = value; + this.iconFieldSet = true; + } + if (("IconIndex" == name)) + { + this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.iconIndexFieldSet = true; + } + if (("Handler" == name)) + { + this.handlerField = value; + this.handlerFieldSet = true; + } + if (("Argument" == name)) + { + this.argumentField = value; + this.argumentFieldSet = true; + } + if (("RelativePath" == name)) + { + this.relativePathField = Enums.ParseYesNoType(value); + this.relativePathFieldSet = true; + } + if (("Advertise" == name)) + { + this.advertiseField = Enums.ParseYesNoType(value); + this.advertiseFieldSet = true; + } + if (("ThreadingModel" == name)) + { + this.threadingModelField = Class.ParseThreadingModelType(value); + this.threadingModelFieldSet = true; + } + if (("Version" == name)) + { + this.versionField = value; + this.versionFieldSet = true; + } + if (("Insertable" == name)) + { + this.insertableField = Enums.ParseYesNoType(value); + this.insertableFieldSet = true; + } + if (("Programmable" == name)) + { + this.programmableField = Enums.ParseYesNoType(value); + this.programmableFieldSet = true; + } + if (("ForeignServer" == name)) + { + this.foreignServerField = value; + this.foreignServerFieldSet = true; + } + if (("Server" == name)) + { + this.serverField = value; + this.serverFieldSet = true; + } + if (("ShortPath" == name)) + { + this.shortPathField = Enums.ParseYesNoType(value); + this.shortPathFieldSet = true; + } + if (("SafeForScripting" == name)) + { + this.safeForScriptingField = Enums.ParseYesNoType(value); + this.safeForScriptingFieldSet = true; + } + if (("SafeForInitializing" == name)) + { + this.safeForInitializingField = Enums.ParseYesNoType(value); + this.safeForInitializingFieldSet = true; + } + if (("Control" == name)) + { + this.controlField = Enums.ParseYesNoType(value); + this.controlFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + [Flags()] + public enum ContextType + { + + None = 0, + + /// + /// A 16-bit local server application. + /// + LocalServer = 1, + + /// + /// A 32-bit local server application. + /// + LocalServer32 = 2, + + /// + /// A 16-bit in-process server DLL. + /// + InprocServer = 4, + + /// + /// A 32-bit in-process server DLL. + /// + InprocServer32 = 8, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ThreadingModelType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + apartment, + + free, + + both, + + neutral, + + single, + + rental, + } + } + + /// + /// COM Interface registration for parent TypeLib. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Interface : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string baseInterfaceField; + + private bool baseInterfaceFieldSet; + + private string proxyStubClassIdField; + + private bool proxyStubClassIdFieldSet; + + private string proxyStubClassId32Field; + + private bool proxyStubClassId32FieldSet; + + private int numMethodsField; + + private bool numMethodsFieldSet; + + private YesNoType versionedField; + + private bool versionedFieldSet; + + private ISchemaElement parentElement; + + /// + /// GUID identifier for COM Interface. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Name for COM Interface. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Identifies the interface from which the current interface is derived. + /// + public string BaseInterface + { + get + { + return this.baseInterfaceField; + } + set + { + this.baseInterfaceFieldSet = true; + this.baseInterfaceField = value; + } + } + + /// + /// GUID CLSID for proxy stub to COM Interface. + /// + public string ProxyStubClassId + { + get + { + return this.proxyStubClassIdField; + } + set + { + this.proxyStubClassIdFieldSet = true; + this.proxyStubClassIdField = value; + } + } + + /// + /// GUID CLSID for 32-bit proxy stub to COM Interface. + /// + public string ProxyStubClassId32 + { + get + { + return this.proxyStubClassId32Field; + } + set + { + this.proxyStubClassId32FieldSet = true; + this.proxyStubClassId32Field = value; + } + } + + /// + /// Number of methods implemented on COM Interface. + /// + public int NumMethods + { + get + { + return this.numMethodsField; + } + set + { + this.numMethodsFieldSet = true; + this.numMethodsField = value; + } + } + + /// + /// Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'. + /// + public YesNoType Versioned + { + get + { + return this.versionedField; + } + set + { + this.versionedFieldSet = true; + this.versionedField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Interface", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.baseInterfaceFieldSet) + { + writer.WriteAttributeString("BaseInterface", this.baseInterfaceField); + } + if (this.proxyStubClassIdFieldSet) + { + writer.WriteAttributeString("ProxyStubClassId", this.proxyStubClassIdField); + } + if (this.proxyStubClassId32FieldSet) + { + writer.WriteAttributeString("ProxyStubClassId32", this.proxyStubClassId32Field); + } + if (this.numMethodsFieldSet) + { + writer.WriteAttributeString("NumMethods", this.numMethodsField.ToString(CultureInfo.InvariantCulture)); + } + if (this.versionedFieldSet) + { + if ((this.versionedField == YesNoType.no)) + { + writer.WriteAttributeString("Versioned", "no"); + } + if ((this.versionedField == YesNoType.yes)) + { + writer.WriteAttributeString("Versioned", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("BaseInterface" == name)) + { + this.baseInterfaceField = value; + this.baseInterfaceFieldSet = true; + } + if (("ProxyStubClassId" == name)) + { + this.proxyStubClassIdField = value; + this.proxyStubClassIdFieldSet = true; + } + if (("ProxyStubClassId32" == name)) + { + this.proxyStubClassId32Field = value; + this.proxyStubClassId32FieldSet = true; + } + if (("NumMethods" == name)) + { + this.numMethodsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.numMethodsFieldSet = true; + } + if (("Versioned" == name)) + { + this.versionedField = Enums.ParseYesNoType(value); + this.versionedFieldSet = true; + } + } + } + + /// + /// FileType data for class Id registration. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FileTypeMask : ISchemaElement, ISetAttributes + { + + private int offsetField; + + private bool offsetFieldSet; + + private string maskField; + + private bool maskFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// Offset into file. If positive, offset is from the beginning; if negative, offset is from the end. + /// + public int Offset + { + get + { + return this.offsetField; + } + set + { + this.offsetFieldSet = true; + this.offsetField = value; + } + } + + /// + /// Hex value that is AND'd against the bytes in the file at Offset. + /// + public string Mask + { + get + { + return this.maskField; + } + set + { + this.maskFieldSet = true; + this.maskField = value; + } + } + + /// + /// If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FileTypeMask", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.offsetFieldSet) + { + writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); + } + if (this.maskFieldSet) + { + writer.WriteAttributeString("Mask", this.maskField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Offset" == name)) + { + this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.offsetFieldSet = true; + } + if (("Mask" == name)) + { + this.maskField = value; + this.maskFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Service or group of services that must start before the parent service. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ServiceDependency : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType groupField; + + private bool groupFieldSet; + + private ISchemaElement parentElement; + + /// + /// The value of this attribute should be one of the following: + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. + /// + public YesNoType Group + { + get + { + return this.groupField; + } + set + { + this.groupFieldSet = true; + this.groupField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ServiceDependency", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.groupFieldSet) + { + if ((this.groupField == YesNoType.no)) + { + writer.WriteAttributeString("Group", "no"); + } + if ((this.groupField == YesNoType.yes)) + { + writer.WriteAttributeString("Group", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Group" == name)) + { + this.groupField = Enums.ParseYesNoType(value); + this.groupFieldSet = true; + } + } + } + + /// + /// Adds services for parent Component. Use the ServiceControl element to remove services. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ServiceInstall : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string displayNameField; + + private bool displayNameFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private YesNoType interactiveField; + + private bool interactiveFieldSet; + + private StartType startField; + + private bool startFieldSet; + + private ErrorControlType errorControlField; + + private bool errorControlFieldSet; + + private YesNoType vitalField; + + private bool vitalFieldSet; + + private string loadOrderGroupField; + + private bool loadOrderGroupFieldSet; + + private string accountField; + + private bool accountFieldSet; + + private string passwordField; + + private bool passwordFieldSet; + + private string argumentsField; + + private bool argumentsFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private YesNoType eraseDescriptionField; + + private bool eraseDescriptionFieldSet; + + private ISchemaElement parentElement; + + public ServiceInstall() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceDependency))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for this service configuration. This value will default to the Name attribute if not + /// specified. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This column is the string that gives the service name to install. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// This column is the localizable string that user interface programs use to identify the service. + /// + public string DisplayName + { + get + { + return this.displayNameField; + } + set + { + this.displayNameFieldSet = true; + this.displayNameField = value; + } + } + + /// + /// The Windows Installer does not currently support kernelDriver or systemDriver. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + /// + /// Whether or not the service interacts with the desktop. + /// + public YesNoType Interactive + { + get + { + return this.interactiveField; + } + set + { + this.interactiveFieldSet = true; + this.interactiveField = value; + } + } + + /// + /// Determines when the service should be started. The Windows Installer does not support boot or system. + /// + public StartType Start + { + get + { + return this.startField; + } + set + { + this.startFieldSet = true; + this.startField = value; + } + } + + /// + /// Determines what action should be taken on an error. + /// + public ErrorControlType ErrorControl + { + get + { + return this.errorControlField; + } + set + { + this.errorControlFieldSet = true; + this.errorControlField = value; + } + } + + /// + /// The overall install should fail if this service fails to install. + /// + public YesNoType Vital + { + get + { + return this.vitalField; + } + set + { + this.vitalFieldSet = true; + this.vitalField = value; + } + } + + /// + /// The load ordering group that this service should be a part of. + /// + public string LoadOrderGroup + { + get + { + return this.loadOrderGroupField; + } + set + { + this.loadOrderGroupFieldSet = true; + this.loadOrderGroupField = value; + } + } + + /// + /// Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess. + /// + public string Account + { + get + { + return this.accountField; + } + set + { + this.accountFieldSet = true; + this.accountField = value; + } + } + + /// + /// The password for the account. Valid only when the account has a password. + /// + public string Password + { + get + { + return this.passwordField; + } + set + { + this.passwordFieldSet = true; + this.passwordField = value; + } + } + + /// + /// Contains any command line arguments or properties required to run the service. + /// + public string Arguments + { + get + { + return this.argumentsField; + } + set + { + this.argumentsFieldSet = true; + this.argumentsField = value; + } + } + + /// + /// Sets the description of the service. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set. + /// + public YesNoType EraseDescription + { + get + { + return this.eraseDescriptionField; + } + set + { + this.eraseDescriptionFieldSet = true; + this.eraseDescriptionField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("PermissionEx" == childName)) + { + childValue = new PermissionEx(); + } + if (("ServiceDependency" == childName)) + { + childValue = new ServiceDependency(); + } + if (("ServiceConfig" == childName)) + { + childValue = new ServiceConfig(); + } + if (("ServiceConfigFailureActions" == childName)) + { + childValue = new ServiceConfigFailureActions(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + ServiceInstall.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("ownProcess" == value)) + { + parsedValue = TypeType.ownProcess; + } + else + { + if (("shareProcess" == value)) + { + parsedValue = TypeType.shareProcess; + } + else + { + if (("kernelDriver" == value)) + { + parsedValue = TypeType.kernelDriver; + } + else + { + if (("systemDriver" == value)) + { + parsedValue = TypeType.systemDriver; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Parses a StartType from a string. + /// + public static StartType ParseStartType(string value) + { + StartType parsedValue; + ServiceInstall.TryParseStartType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a StartType from a string. + /// + public static bool TryParseStartType(string value, out StartType parsedValue) + { + parsedValue = StartType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("auto" == value)) + { + parsedValue = StartType.auto; + } + else + { + if (("demand" == value)) + { + parsedValue = StartType.demand; + } + else + { + if (("disabled" == value)) + { + parsedValue = StartType.disabled; + } + else + { + if (("boot" == value)) + { + parsedValue = StartType.boot; + } + else + { + if (("system" == value)) + { + parsedValue = StartType.system; + } + else + { + parsedValue = StartType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Parses a ErrorControlType from a string. + /// + public static ErrorControlType ParseErrorControlType(string value) + { + ErrorControlType parsedValue; + ServiceInstall.TryParseErrorControlType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ErrorControlType from a string. + /// + public static bool TryParseErrorControlType(string value, out ErrorControlType parsedValue) + { + parsedValue = ErrorControlType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("ignore" == value)) + { + parsedValue = ErrorControlType.ignore; + } + else + { + if (("normal" == value)) + { + parsedValue = ErrorControlType.normal; + } + else + { + if (("critical" == value)) + { + parsedValue = ErrorControlType.critical; + } + else + { + parsedValue = ErrorControlType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ServiceInstall", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.displayNameFieldSet) + { + writer.WriteAttributeString("DisplayName", this.displayNameField); + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.ownProcess)) + { + writer.WriteAttributeString("Type", "ownProcess"); + } + if ((this.typeField == TypeType.shareProcess)) + { + writer.WriteAttributeString("Type", "shareProcess"); + } + if ((this.typeField == TypeType.kernelDriver)) + { + writer.WriteAttributeString("Type", "kernelDriver"); + } + if ((this.typeField == TypeType.systemDriver)) + { + writer.WriteAttributeString("Type", "systemDriver"); + } + } + if (this.interactiveFieldSet) + { + if ((this.interactiveField == YesNoType.no)) + { + writer.WriteAttributeString("Interactive", "no"); + } + if ((this.interactiveField == YesNoType.yes)) + { + writer.WriteAttributeString("Interactive", "yes"); + } + } + if (this.startFieldSet) + { + if ((this.startField == StartType.auto)) + { + writer.WriteAttributeString("Start", "auto"); + } + if ((this.startField == StartType.demand)) + { + writer.WriteAttributeString("Start", "demand"); + } + if ((this.startField == StartType.disabled)) + { + writer.WriteAttributeString("Start", "disabled"); + } + if ((this.startField == StartType.boot)) + { + writer.WriteAttributeString("Start", "boot"); + } + if ((this.startField == StartType.system)) + { + writer.WriteAttributeString("Start", "system"); + } + } + if (this.errorControlFieldSet) + { + if ((this.errorControlField == ErrorControlType.ignore)) + { + writer.WriteAttributeString("ErrorControl", "ignore"); + } + if ((this.errorControlField == ErrorControlType.normal)) + { + writer.WriteAttributeString("ErrorControl", "normal"); + } + if ((this.errorControlField == ErrorControlType.critical)) + { + writer.WriteAttributeString("ErrorControl", "critical"); + } + } + if (this.vitalFieldSet) + { + if ((this.vitalField == YesNoType.no)) + { + writer.WriteAttributeString("Vital", "no"); + } + if ((this.vitalField == YesNoType.yes)) + { + writer.WriteAttributeString("Vital", "yes"); + } + } + if (this.loadOrderGroupFieldSet) + { + writer.WriteAttributeString("LoadOrderGroup", this.loadOrderGroupField); + } + if (this.accountFieldSet) + { + writer.WriteAttributeString("Account", this.accountField); + } + if (this.passwordFieldSet) + { + writer.WriteAttributeString("Password", this.passwordField); + } + if (this.argumentsFieldSet) + { + writer.WriteAttributeString("Arguments", this.argumentsField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.eraseDescriptionFieldSet) + { + if ((this.eraseDescriptionField == YesNoType.no)) + { + writer.WriteAttributeString("EraseDescription", "no"); + } + if ((this.eraseDescriptionField == YesNoType.yes)) + { + writer.WriteAttributeString("EraseDescription", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("DisplayName" == name)) + { + this.displayNameField = value; + this.displayNameFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = ServiceInstall.ParseTypeType(value); + this.typeFieldSet = true; + } + if (("Interactive" == name)) + { + this.interactiveField = Enums.ParseYesNoType(value); + this.interactiveFieldSet = true; + } + if (("Start" == name)) + { + this.startField = ServiceInstall.ParseStartType(value); + this.startFieldSet = true; + } + if (("ErrorControl" == name)) + { + this.errorControlField = ServiceInstall.ParseErrorControlType(value); + this.errorControlFieldSet = true; + } + if (("Vital" == name)) + { + this.vitalField = Enums.ParseYesNoType(value); + this.vitalFieldSet = true; + } + if (("LoadOrderGroup" == name)) + { + this.loadOrderGroupField = value; + this.loadOrderGroupFieldSet = true; + } + if (("Account" == name)) + { + this.accountField = value; + this.accountFieldSet = true; + } + if (("Password" == name)) + { + this.passwordField = value; + this.passwordFieldSet = true; + } + if (("Arguments" == name)) + { + this.argumentsField = value; + this.argumentsFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("EraseDescription" == name)) + { + this.eraseDescriptionField = Enums.ParseYesNoType(value); + this.eraseDescriptionFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// A Win32 service that runs its own process. + /// + ownProcess, + + /// + /// A Win32 service that shares a process. + /// + shareProcess, + + /// + /// A kernel driver service. This value is not currently supported by the Windows Installer. + /// + kernelDriver, + + /// + /// A file system driver service. This value is not currently supported by the Windows Installer. + /// + systemDriver, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum StartType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// The service will start during startup of the system. + /// + auto, + + /// + /// The service will start when the service control manager calls the StartService function. + /// + demand, + + /// + /// The service can no longer be started. + /// + disabled, + + /// + /// The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer. + /// + boot, + + /// + /// The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer. + /// + system, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ErrorControlType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Logs the error and continues with the startup operation. + /// + ignore, + + /// + /// Logs the error, displays a message box and continues the startup operation. + /// + normal, + + /// + /// Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails. + /// + critical, + } + } + + /// + /// Argument used in ServiceControl parent + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ServiceArgument : ISetAttributes, ISchemaElement + { + + private ISchemaElement parentElement; + + private string contentField; + + private bool contentFieldSet; + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Argument used in ServiceControl parent + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ServiceArgument", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + } + + /// + /// Starts, stops, and removes services for parent Component. This element is used to control the state + /// of a service installed by the MSI or MSM file by using the start, stop and remove attributes. + /// For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install, + /// remove the service when the product is uninstalled, and stop the service both on install and uninstall. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ServiceControl : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private InstallUninstallType startField; + + private bool startFieldSet; + + private InstallUninstallType stopField; + + private bool stopFieldSet; + + private InstallUninstallType removeField; + + private bool removeFieldSet; + + private YesNoType waitField; + + private bool waitFieldSet; + + private ISchemaElement parentElement; + + public ServiceControl() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ServiceArgument))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Name of the service. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Specifies whether the service should be started by the StartServices action on install, uninstall or both. + /// For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or + /// msiInstallStateSource); for 'uninstall', the service will be started only when the parent component + /// is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases. + /// + public InstallUninstallType Start + { + get + { + return this.startField; + } + set + { + this.startFieldSet = true; + this.startField = value; + } + } + + /// + /// Specifies whether the service should be stopped by the StopServices action on install, uninstall or both. + /// For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or + /// msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component + /// is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases. + /// + public InstallUninstallType Stop + { + get + { + return this.stopField; + } + set + { + this.stopFieldSet = true; + this.stopField = value; + } + } + + /// + /// Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both. + /// For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or + /// msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component + /// is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases. + /// + public InstallUninstallType Remove + { + get + { + return this.removeField; + } + set + { + this.removeFieldSet = true; + this.removeField = value; + } + } + + /// + /// Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'. + /// + public YesNoType Wait + { + get + { + return this.waitField; + } + set + { + this.waitFieldSet = true; + this.waitField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ServiceArgument" == childName)) + { + childValue = new ServiceArgument(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ServiceControl", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.startFieldSet) + { + if ((this.startField == InstallUninstallType.install)) + { + writer.WriteAttributeString("Start", "install"); + } + if ((this.startField == InstallUninstallType.uninstall)) + { + writer.WriteAttributeString("Start", "uninstall"); + } + if ((this.startField == InstallUninstallType.both)) + { + writer.WriteAttributeString("Start", "both"); + } + } + if (this.stopFieldSet) + { + if ((this.stopField == InstallUninstallType.install)) + { + writer.WriteAttributeString("Stop", "install"); + } + if ((this.stopField == InstallUninstallType.uninstall)) + { + writer.WriteAttributeString("Stop", "uninstall"); + } + if ((this.stopField == InstallUninstallType.both)) + { + writer.WriteAttributeString("Stop", "both"); + } + } + if (this.removeFieldSet) + { + if ((this.removeField == InstallUninstallType.install)) + { + writer.WriteAttributeString("Remove", "install"); + } + if ((this.removeField == InstallUninstallType.uninstall)) + { + writer.WriteAttributeString("Remove", "uninstall"); + } + if ((this.removeField == InstallUninstallType.both)) + { + writer.WriteAttributeString("Remove", "both"); + } + } + if (this.waitFieldSet) + { + if ((this.waitField == YesNoType.no)) + { + writer.WriteAttributeString("Wait", "no"); + } + if ((this.waitField == YesNoType.yes)) + { + writer.WriteAttributeString("Wait", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Start" == name)) + { + this.startField = Enums.ParseInstallUninstallType(value); + this.startFieldSet = true; + } + if (("Stop" == name)) + { + this.stopField = Enums.ParseInstallUninstallType(value); + this.stopFieldSet = true; + } + if (("Remove" == name)) + { + this.removeField = Enums.ParseInstallUninstallType(value); + this.removeFieldSet = true; + } + if (("Wait" == name)) + { + this.waitField = Enums.ParseYesNoType(value); + this.waitFieldSet = true; + } + } + } + + /// + /// Privilege required by service configured by ServiceConfig parent. Valid values are a + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RequiredPrivilege : ISetAttributes, ISchemaElement + { + + private ISchemaElement parentElement; + + private string contentField; + + private bool contentFieldSet; + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Privilege required by service configured by ServiceConfig parent. Valid values are a + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RequiredPrivilege", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + } + + /// + /// Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ServiceConfig : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string delayedAutoStartField; + + private bool delayedAutoStartFieldSet; + + private string failureActionsWhenField; + + private bool failureActionsWhenFieldSet; + + private string preShutdownDelayField; + + private bool preShutdownDelayFieldSet; + + private YesNoType onInstallField; + + private bool onInstallFieldSet; + + private YesNoType onReinstallField; + + private bool onReinstallFieldSet; + + private YesNoType onUninstallField; + + private bool onUninstallFieldSet; + + private string serviceNameField; + + private bool serviceNameFieldSet; + + private string serviceSidField; + + private bool serviceSidFieldSet; + + private ISchemaElement parentElement; + + public ServiceConfig() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RequiredPrivilege))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not + /// specified. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This attribute specifies whether an auto-start service should delay its start until after all other auto-start + /// services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that + /// resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured. + /// + public string DelayedAutoStart + { + get + { + return this.delayedAutoStartField; + } + set + { + this.delayedAutoStartFieldSet = true; + this.delayedAutoStartField = value; + } + } + + /// + /// This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError" + /// or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute + /// is not present the setting is not configured. + /// + public string FailureActionsWhen + { + get + { + return this.failureActionsWhenField; + } + set + { + this.failureActionsWhenFieldSet = true; + this.failureActionsWhenField = value; + } + } + + /// + /// This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system + /// shutdown. If this attribute is not present the default value, 3 minutes, is used. + /// + public string PreShutdownDelay + { + get + { + return this.preShutdownDelayField; + } + set + { + this.preShutdownDelayFieldSet = true; + this.preShutdownDelayField = value; + } + } + + /// + /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall + /// and OnUninstall. + /// + public YesNoType OnInstall + { + get + { + return this.onInstallField; + } + set + { + this.onInstallFieldSet = true; + this.onInstallField = value; + } + } + + /// + /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall + /// and OnUninstall. + /// + public YesNoType OnReinstall + { + get + { + return this.onReinstallField; + } + set + { + this.onReinstallFieldSet = true; + this.onReinstallField = value; + } + } + + /// + /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall + /// and OnReinstall. + /// + public YesNoType OnUninstall + { + get + { + return this.onUninstallField; + } + set + { + this.onUninstallFieldSet = true; + this.onUninstallField = value; + } + } + + /// + /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under + /// a ServiceInstall element. + /// + public string ServiceName + { + get + { + return this.serviceNameField; + } + set + { + this.serviceNameFieldSet = true; + this.serviceNameField = value; + } + } + + /// + /// Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property + /// that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the + /// setting is not configured. + /// + public string ServiceSid + { + get + { + return this.serviceSidField; + } + set + { + this.serviceSidFieldSet = true; + this.serviceSidField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("RequiredPrivilege" == childName)) + { + childValue = new RequiredPrivilege(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ServiceConfig", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.delayedAutoStartFieldSet) + { + writer.WriteAttributeString("DelayedAutoStart", this.delayedAutoStartField); + } + if (this.failureActionsWhenFieldSet) + { + writer.WriteAttributeString("FailureActionsWhen", this.failureActionsWhenField); + } + if (this.preShutdownDelayFieldSet) + { + writer.WriteAttributeString("PreShutdownDelay", this.preShutdownDelayField); + } + if (this.onInstallFieldSet) + { + if ((this.onInstallField == YesNoType.no)) + { + writer.WriteAttributeString("OnInstall", "no"); + } + if ((this.onInstallField == YesNoType.yes)) + { + writer.WriteAttributeString("OnInstall", "yes"); + } + } + if (this.onReinstallFieldSet) + { + if ((this.onReinstallField == YesNoType.no)) + { + writer.WriteAttributeString("OnReinstall", "no"); + } + if ((this.onReinstallField == YesNoType.yes)) + { + writer.WriteAttributeString("OnReinstall", "yes"); + } + } + if (this.onUninstallFieldSet) + { + if ((this.onUninstallField == YesNoType.no)) + { + writer.WriteAttributeString("OnUninstall", "no"); + } + if ((this.onUninstallField == YesNoType.yes)) + { + writer.WriteAttributeString("OnUninstall", "yes"); + } + } + if (this.serviceNameFieldSet) + { + writer.WriteAttributeString("ServiceName", this.serviceNameField); + } + if (this.serviceSidFieldSet) + { + writer.WriteAttributeString("ServiceSid", this.serviceSidField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("DelayedAutoStart" == name)) + { + this.delayedAutoStartField = value; + this.delayedAutoStartFieldSet = true; + } + if (("FailureActionsWhen" == name)) + { + this.failureActionsWhenField = value; + this.failureActionsWhenFieldSet = true; + } + if (("PreShutdownDelay" == name)) + { + this.preShutdownDelayField = value; + this.preShutdownDelayFieldSet = true; + } + if (("OnInstall" == name)) + { + this.onInstallField = Enums.ParseYesNoType(value); + this.onInstallFieldSet = true; + } + if (("OnReinstall" == name)) + { + this.onReinstallField = Enums.ParseYesNoType(value); + this.onReinstallFieldSet = true; + } + if (("OnUninstall" == name)) + { + this.onUninstallField = Enums.ParseYesNoType(value); + this.onUninstallFieldSet = true; + } + if (("ServiceName" == name)) + { + this.serviceNameField = value; + this.serviceNameFieldSet = true; + } + if (("ServiceSid" == name)) + { + this.serviceSidField = value; + this.serviceSidFieldSet = true; + } + } + } + + /// + /// Failure action for a ServiceConfigFailureActions element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Failure : ISchemaElement, ISetAttributes + { + + private string actionField; + + private bool actionFieldSet; + + private string delayField; + + private bool delayFieldSet; + + private ISchemaElement parentElement; + + /// + /// Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property + /// that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand"). + /// + public string Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// Specifies the time in milliseconds to wait before performing the value from the Action attribute. + /// + public string Delay + { + get + { + return this.delayField; + } + set + { + this.delayFieldSet = true; + this.delayField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Failure", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.actionFieldSet) + { + writer.WriteAttributeString("Action", this.actionField); + } + if (this.delayFieldSet) + { + writer.WriteAttributeString("Delay", this.delayField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Action" == name)) + { + this.actionField = value; + this.actionFieldSet = true; + } + if (("Delay" == name)) + { + this.delayField = value; + this.delayFieldSet = true; + } + } + } + + /// + /// Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ServiceConfigFailureActions : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string commandField; + + private bool commandFieldSet; + + private YesNoType onInstallField; + + private bool onInstallFieldSet; + + private YesNoType onReinstallField; + + private bool onReinstallFieldSet; + + private YesNoType onUninstallField; + + private bool onUninstallFieldSet; + + private string rebootMessageField; + + private bool rebootMessageFieldSet; + + private string resetPeriodField; + + private bool resetPeriodFieldSet; + + private string serviceNameField; + + private bool serviceNameFieldSet; + + private ISchemaElement parentElement; + + public ServiceConfigFailureActions() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Failure))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not + /// specified. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears + /// the existing command. If this attribute is not present the setting is not changed. + /// + public string Command + { + get + { + return this.commandField; + } + set + { + this.commandFieldSet = true; + this.commandField = value; + } + } + + /// + /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall + /// and OnUninstall. + /// + public YesNoType OnInstall + { + get + { + return this.onInstallField; + } + set + { + this.onInstallFieldSet = true; + this.onInstallField = value; + } + } + + /// + /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall + /// and OnUninstall. + /// + public YesNoType OnReinstall + { + get + { + return this.onReinstallField; + } + set + { + this.onReinstallFieldSet = true; + this.onReinstallField = value; + } + } + + /// + /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall + /// and OnReinstall. + /// + public YesNoType OnUninstall + { + get + { + return this.onUninstallField; + } + set + { + this.onUninstallFieldSet = true; + this.onUninstallField = value; + } + } + + /// + /// Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this + /// attribute is not present the setting is not changed. + /// + public string RebootMessage + { + get + { + return this.rebootMessageField; + } + set + { + this.rebootMessageFieldSet = true; + this.rebootMessageField = value; + } + } + + /// + /// Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset. + /// + public string ResetPeriod + { + get + { + return this.resetPeriodField; + } + set + { + this.resetPeriodFieldSet = true; + this.resetPeriodField = value; + } + } + + /// + /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under + /// a ServiceInstall element. + /// + public string ServiceName + { + get + { + return this.serviceNameField; + } + set + { + this.serviceNameFieldSet = true; + this.serviceNameField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Failure" == childName)) + { + childValue = new Failure(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ServiceConfigFailureActions", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.commandFieldSet) + { + writer.WriteAttributeString("Command", this.commandField); + } + if (this.onInstallFieldSet) + { + if ((this.onInstallField == YesNoType.no)) + { + writer.WriteAttributeString("OnInstall", "no"); + } + if ((this.onInstallField == YesNoType.yes)) + { + writer.WriteAttributeString("OnInstall", "yes"); + } + } + if (this.onReinstallFieldSet) + { + if ((this.onReinstallField == YesNoType.no)) + { + writer.WriteAttributeString("OnReinstall", "no"); + } + if ((this.onReinstallField == YesNoType.yes)) + { + writer.WriteAttributeString("OnReinstall", "yes"); + } + } + if (this.onUninstallFieldSet) + { + if ((this.onUninstallField == YesNoType.no)) + { + writer.WriteAttributeString("OnUninstall", "no"); + } + if ((this.onUninstallField == YesNoType.yes)) + { + writer.WriteAttributeString("OnUninstall", "yes"); + } + } + if (this.rebootMessageFieldSet) + { + writer.WriteAttributeString("RebootMessage", this.rebootMessageField); + } + if (this.resetPeriodFieldSet) + { + writer.WriteAttributeString("ResetPeriod", this.resetPeriodField); + } + if (this.serviceNameFieldSet) + { + writer.WriteAttributeString("ServiceName", this.serviceNameField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Command" == name)) + { + this.commandField = value; + this.commandFieldSet = true; + } + if (("OnInstall" == name)) + { + this.onInstallField = Enums.ParseYesNoType(value); + this.onInstallFieldSet = true; + } + if (("OnReinstall" == name)) + { + this.onReinstallField = Enums.ParseYesNoType(value); + this.onReinstallFieldSet = true; + } + if (("OnUninstall" == name)) + { + this.onUninstallField = Enums.ParseYesNoType(value); + this.onUninstallFieldSet = true; + } + if (("RebootMessage" == name)) + { + this.rebootMessageField = value; + this.rebootMessageFieldSet = true; + } + if (("ResetPeriod" == name)) + { + this.resetPeriodField = value; + this.resetPeriodFieldSet = true; + } + if (("ServiceName" == name)) + { + this.serviceNameField = value; + this.serviceNameFieldSet = true; + } + } + } + + /// + /// Environment variables added or removed for the parent component. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Environment : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private string separatorField; + + private bool separatorFieldSet; + + private ActionType actionField; + + private bool actionFieldSet; + + private PartType partField; + + private bool partFieldSet; + + private YesNoType permanentField; + + private bool permanentFieldSet; + + private YesNoType systemField; + + private bool systemFieldSet; + + private ISchemaElement parentElement; + + /// + /// Unique identifier for environment entry. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Name of the environment variable. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The value to set into the environment variable. + /// If this attribute is not set, the environment variable is removed during installation if it exists on the machine. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// Optional attribute to change the separator used between values. By default a semicolon is used. + /// + public string Separator + { + get + { + return this.separatorField; + } + set + { + this.separatorFieldSet = true; + this.separatorField = value; + } + } + + /// + /// Specfies whether the environmental variable should be created, set or removed when the parent component is installed. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + public PartType Part + { + get + { + return this.partField; + } + set + { + this.partFieldSet = true; + this.partField = value; + } + } + + /// + /// Specifies that the environment variable should not be removed on uninstall. + /// + public YesNoType Permanent + { + get + { + return this.permanentField; + } + set + { + this.permanentFieldSet = true; + this.permanentField = value; + } + } + + /// + /// Specifies that the environment variable should be added to the system environment space. The default + /// is 'no' which indicates the environment variable is added to the user environment space. + /// + public YesNoType System + { + get + { + return this.systemField; + } + set + { + this.systemFieldSet = true; + this.systemField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + Environment.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("create" == value)) + { + parsedValue = ActionType.create; + } + else + { + if (("set" == value)) + { + parsedValue = ActionType.set; + } + else + { + if (("remove" == value)) + { + parsedValue = ActionType.remove; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a PartType from a string. + /// + public static PartType ParsePartType(string value) + { + PartType parsedValue; + Environment.TryParsePartType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a PartType from a string. + /// + public static bool TryParsePartType(string value, out PartType parsedValue) + { + parsedValue = PartType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("all" == value)) + { + parsedValue = PartType.all; + } + else + { + if (("first" == value)) + { + parsedValue = PartType.first; + } + else + { + if (("last" == value)) + { + parsedValue = PartType.last; + } + else + { + parsedValue = PartType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Environment", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.separatorFieldSet) + { + writer.WriteAttributeString("Separator", this.separatorField); + } + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.create)) + { + writer.WriteAttributeString("Action", "create"); + } + if ((this.actionField == ActionType.set)) + { + writer.WriteAttributeString("Action", "set"); + } + if ((this.actionField == ActionType.remove)) + { + writer.WriteAttributeString("Action", "remove"); + } + } + if (this.partFieldSet) + { + if ((this.partField == PartType.all)) + { + writer.WriteAttributeString("Part", "all"); + } + if ((this.partField == PartType.first)) + { + writer.WriteAttributeString("Part", "first"); + } + if ((this.partField == PartType.last)) + { + writer.WriteAttributeString("Part", "last"); + } + } + if (this.permanentFieldSet) + { + if ((this.permanentField == YesNoType.no)) + { + writer.WriteAttributeString("Permanent", "no"); + } + if ((this.permanentField == YesNoType.yes)) + { + writer.WriteAttributeString("Permanent", "yes"); + } + } + if (this.systemFieldSet) + { + if ((this.systemField == YesNoType.no)) + { + writer.WriteAttributeString("System", "no"); + } + if ((this.systemField == YesNoType.yes)) + { + writer.WriteAttributeString("System", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Separator" == name)) + { + this.separatorField = value; + this.separatorFieldSet = true; + } + if (("Action" == name)) + { + this.actionField = Environment.ParseActionType(value); + this.actionFieldSet = true; + } + if (("Part" == name)) + { + this.partField = Environment.ParsePartType(value); + this.partFieldSet = true; + } + if (("Permanent" == name)) + { + this.permanentField = Enums.ParseYesNoType(value); + this.permanentFieldSet = true; + } + if (("System" == name)) + { + this.systemField = Enums.ParseYesNoType(value); + this.systemFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists. + /// + create, + + /// + /// Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation. + /// + set, + + /// + /// Removes the environment variable during an installation. + /// The installer only removes an environment variable during an installation if the name and value + /// of the variable match the entries in the Name and Value attributes. + /// If you want to remove an environment variable, regardless of its value, do not set the Value attribute. + /// + remove, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum PartType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// This value is the entire environmental variable. This is the default. + /// + all, + + /// + /// This value is prefixed. + /// + first, + + /// + /// This value is appended. + /// + last, + } + } + + /// + /// Conditions for components, controls, features, and products. The condition is specified in the inner text of the element. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Condition : ISchemaElement, ISetAttributes + { + + private ActionType actionField; + + private bool actionFieldSet; + + private int levelField; + + private bool levelFieldSet; + + private string messageField; + + private bool messageFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// Used only under Control elements and is required. Allows specific actions to be applied to a control based + /// on the result of this condition. + /// + public ActionType Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// Used only under Feature elements and is required. Allows modifying the level of a Feature based on the + /// result of this condition. + /// + public int Level + { + get + { + return this.levelField; + } + set + { + this.levelFieldSet = true; + this.levelField = value; + } + } + + /// + /// Used only under Fragment or Product elements and is required. Set the value to the text to display when the + /// condition fails and the installation must be terminated. + /// + public string Message + { + get + { + return this.messageField; + } + set + { + this.messageFieldSet = true; + this.messageField = value; + } + } + + /// + /// Under a Component element, the condition becomes the condition of the component. Under a Control element, + /// the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition + /// entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ActionType from a string. + /// + public static ActionType ParseActionType(string value) + { + ActionType parsedValue; + Condition.TryParseActionType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ActionType from a string. + /// + public static bool TryParseActionType(string value, out ActionType parsedValue) + { + parsedValue = ActionType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("default" == value)) + { + parsedValue = ActionType.@default; + } + else + { + if (("enable" == value)) + { + parsedValue = ActionType.enable; + } + else + { + if (("disable" == value)) + { + parsedValue = ActionType.disable; + } + else + { + if (("hide" == value)) + { + parsedValue = ActionType.hide; + } + else + { + if (("show" == value)) + { + parsedValue = ActionType.show; + } + else + { + parsedValue = ActionType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Condition", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.actionFieldSet) + { + if ((this.actionField == ActionType.@default)) + { + writer.WriteAttributeString("Action", "default"); + } + if ((this.actionField == ActionType.enable)) + { + writer.WriteAttributeString("Action", "enable"); + } + if ((this.actionField == ActionType.disable)) + { + writer.WriteAttributeString("Action", "disable"); + } + if ((this.actionField == ActionType.hide)) + { + writer.WriteAttributeString("Action", "hide"); + } + if ((this.actionField == ActionType.show)) + { + writer.WriteAttributeString("Action", "show"); + } + } + if (this.levelFieldSet) + { + writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); + } + if (this.messageFieldSet) + { + writer.WriteAttributeString("Message", this.messageField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Action" == name)) + { + this.actionField = Condition.ParseActionType(value); + this.actionFieldSet = true; + } + if (("Level" == name)) + { + this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.levelFieldSet = true; + } + if (("Message" == name)) + { + this.messageField = value; + this.messageFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ActionType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Set the Control as the default. Only used under Control elements. + /// + @default, + + /// + /// Enable the Control. Only used under Control elements. + /// + enable, + + /// + /// Disable the Control. Only used under Control elements. + /// + disable, + + /// + /// Hide the Control. Only used under Control elements. + /// + hide, + + /// + /// Display the Control. Only used under Control elements. + /// + show, + } + } + + /// + /// Shared Component to be privately replicated in folder of parent Component + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IsolateComponent : ISchemaElement, ISetAttributes + { + + private string sharedField; + + private bool sharedFieldSet; + + private ISchemaElement parentElement; + + /// + /// Shared Component for this application Component. + /// + public string Shared + { + get + { + return this.sharedField; + } + set + { + this.sharedFieldSet = true; + this.sharedField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IsolateComponent", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sharedFieldSet) + { + writer.WriteAttributeString("Shared", this.sharedField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Shared" == name)) + { + this.sharedField = value; + this.sharedFieldSet = true; + } + } + } + + /// + /// Disk cost to reserve in a folder for running locally and/or from source. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ReserveCost : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private int runFromSourceField; + + private bool runFromSourceFieldSet; + + private int runLocalField; + + private bool runLocalFieldSet; + + private ISchemaElement parentElement; + + /// + /// A primary key that uniquely identifies this ReserveCost entry. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory. + /// If this attribute is not set, it will default to the directory of parent component. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// The number of bytes of disk space to reserve if the component is installed to run from source. + /// + public int RunFromSource + { + get + { + return this.runFromSourceField; + } + set + { + this.runFromSourceFieldSet = true; + this.runFromSourceField = value; + } + } + + /// + /// The number of bytes of disk space to reserve if the component is installed to run locally. + /// + public int RunLocal + { + get + { + return this.runLocalField; + } + set + { + this.runLocalFieldSet = true; + this.runLocalField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ReserveCost", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.runFromSourceFieldSet) + { + writer.WriteAttributeString("RunFromSource", this.runFromSourceField.ToString(CultureInfo.InvariantCulture)); + } + if (this.runLocalFieldSet) + { + writer.WriteAttributeString("RunLocal", this.runLocalField.ToString(CultureInfo.InvariantCulture)); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("RunFromSource" == name)) + { + this.runFromSourceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.runFromSourceFieldSet = true; + } + if (("RunLocal" == name)) + { + this.runLocalField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.runLocalFieldSet = true; + } + } + } + + /// + /// Component for parent Directory + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Component : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private int comPlusFlagsField; + + private bool comPlusFlagsFieldSet; + + private YesNoType disableRegistryReflectionField; + + private bool disableRegistryReflectionFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private string diskIdField; + + private bool diskIdFieldSet; + + private string featureField; + + private bool featureFieldSet; + + private string guidField; + + private bool guidFieldSet; + + private YesNoType keyPathField; + + private bool keyPathFieldSet; + + private LocationType locationField; + + private bool locationFieldSet; + + private YesNoType multiInstanceField; + + private bool multiInstanceFieldSet; + + private YesNoType neverOverwriteField; + + private bool neverOverwriteFieldSet; + + private YesNoType permanentField; + + private bool permanentFieldSet; + + private YesNoType sharedField; + + private bool sharedFieldSet; + + private YesNoType sharedDllRefCountField; + + private bool sharedDllRefCountFieldSet; + + private YesNoType transitiveField; + + private bool transitiveFieldSet; + + private YesNoType uninstallWhenSupersededField; + + private bool uninstallWhenSupersededFieldSet; + + private YesNoType win64Field; + + private bool win64FieldSet; + + private ISchemaElement parentElement; + + public Component() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Category))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolder))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Environment))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Extension))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(File))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IniFile))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponent))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDataSource))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFile))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolder))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryKey))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValue))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ReserveCost))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceControl))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceInstall))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Component identifier; this is the primary key for identifying components. If omitted, + /// the compiler defaults the identifier to the identifier of the resource that is the + /// explicit keypath of the component (for example, a child File element with KeyPath + /// attribute with value 'yes'. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set this attribute to create a ComPlus entry. The value should be the export flags used + /// during the generation of the .msi file. For more information see the COM+ documentation + /// in the Platform SDK. + /// + public int ComPlusFlags + { + get + { + return this.comPlusFlagsField; + } + set + { + this.comPlusFlagsFieldSet = true; + this.comPlusFlagsField = value; + } + } + + /// + /// Set this attribute to 'yes' in order to disable registry reflection on all existing and + /// new registry keys affected by this component. + /// When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key + /// being accessed by the component. + /// This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems. + /// + public YesNoType DisableRegistryReflection + { + get + { + return this.disableRegistryReflectionField; + } + set + { + this.disableRegistryReflectionFieldSet = true; + this.disableRegistryReflectionField = value; + } + } + + /// + /// Sets the Directory of the Component. If this element is nested under a Directory element, + /// this value defaults to the value of the parent Directory/@Id. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// This attribute provides a default DiskId attribute for all child File elements. Specifying + /// the DiskId on a Component element will override any DiskId attributes set by parent Directory + /// or DirectoryRef elements. See the File element's DiskId attribute for more information about + /// the purpose of the DiskId. + /// + public string DiskId + { + get + { + return this.diskIdField; + } + set + { + this.diskIdFieldSet = true; + this.diskIdField = value; + } + } + + /// + /// Identifies a feature to which this component belongs, as a shorthand for a child + /// ComponentRef element of the Feature element. The value of this attribute should + /// correspond to the Id attribute of a Feature element authored elsewhere. Note that + /// a single component can belong to multiple features but this attribute allows you + /// to specify only a single feature. + /// + public string Feature + { + get + { + return this.featureField; + } + set + { + this.featureFieldSet = true; + this.featureField = value; + } + } + + /// + /// This value should be a guid that uniquely identifies this component's contents, language, platform, and version. + /// If omitted, the default value is '*' which indicates that the linker should generate a stable guid. + /// Generatable guids are supported only for components with a single file as the component's keypath + /// or no files and a registry value as the keypath. + /// It's also possible to set the value to an empty string to specify an unmanaged component. + /// Unmanaged components are a security vulnerability because the component cannot be removed or repaired + /// by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should + /// always be specified for any component which contains resources that may need to be patched in the future. + /// + public string Guid + { + get + { + return this.guidField; + } + set + { + this.guidFieldSet = true; + this.guidField = value; + } + } + + /// + /// If this attribute's value is set to 'yes', then the Directory of this Component is used + /// as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the + /// KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the + /// Component or for a child Registry value or File, WiX will look at the child elements under the + /// Component in sequential order and try to automatically select one of them as a key path. Allowing + /// WiX to automatically select a key path can be dangerous because adding or removing child elements + /// under the Component can inadvertantly cause the key path to change, which can lead to + /// installation problems. + /// + public YesNoType KeyPath + { + get + { + return this.keyPathField; + } + set + { + this.keyPathFieldSet = true; + this.keyPathField = value; + } + } + + /// + /// Optional value that specifies the location that the component can be run from. + /// + public LocationType Location + { + get + { + return this.locationField; + } + set + { + this.locationFieldSet = true; + this.locationField = value; + } + } + + /// + /// If this attribute is set to 'yes', a new Component/@Guid will be generated for each + /// instance transform. Ensure that all of the resources contained in a multi-instance + /// Component will be installed to different paths based on the instance Property; otherwise, + /// the Component Rules will be violated. + /// + public YesNoType MultiInstance + { + get + { + return this.multiInstanceField; + } + set + { + this.multiInstanceFieldSet = true; + this.multiInstanceField = value; + } + } + + /// + /// If this attribute is set to 'yes', the installer does not install or reinstall the + /// component if a key path file or a key path registry entry for the component already + /// exists. The application does register itself as a client of the component. Use this + /// flag only for components that are being registered by the Registry table. Do not use + /// this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and + /// Verb tables. + /// + public YesNoType NeverOverwrite + { + get + { + return this.neverOverwriteField; + } + set + { + this.neverOverwriteFieldSet = true; + this.neverOverwriteField = value; + } + } + + /// + /// If this attribute is set to 'yes', the installer does not remove the component during + /// an uninstall. The installer registers an extra system client for the component in + /// the Windows Installer registry settings (which basically just means that at least one + /// product is always referencing this component). Note that this option differs from the + /// behavior of not setting a guid because although the component is permanent, it is still + /// patchable (because Windows Installer still tracks it), it's just not uninstallable. + /// + public YesNoType Permanent + { + get + { + return this.permanentField; + } + set + { + this.permanentFieldSet = true; + this.permanentField = value; + } + } + + /// + /// If this attribute's value is set to 'yes', enables advanced patching semantics for + /// Components that are shared across multiple Products. Specifically, the Windows Installer + /// will cache the shared files to improve patch uninstall. This functionality is available + /// in Windows Installer 4.5 and later. + /// + public YesNoType Shared + { + get + { + return this.sharedField; + } + set + { + this.sharedFieldSet = true; + this.sharedField = value; + } + } + + /// + /// If this attribute's value is set to 'yes', the installer increments the reference count + /// in the shared DLL registry of the component's key file. If this bit is not set, the + /// installer increments the reference count only if the reference count already exists. + /// + public YesNoType SharedDllRefCount + { + get + { + return this.sharedDllRefCountField; + } + set + { + this.sharedDllRefCountFieldSet = true; + this.sharedDllRefCountField = value; + } + } + + /// + /// If this attribute is set to 'yes', the installer reevaluates the value of the statement + /// in the Condition upon a reinstall. If the value was previously False and has changed to + /// True, the installer installs the component. If the value was previously True and has + /// changed to False, the installer removes the component even if the component has other + /// products as clients. + /// + public YesNoType Transitive + { + get + { + return this.transitiveField; + } + set + { + this.transitiveFieldSet = true; + this.transitiveField = value; + } + } + + /// + /// If this attribute is set to 'yes', the installer will uninstall the Component's files + /// and registry keys when it is superseded by a patch. This functionality is available in + /// Windows Installer 4.5 and later. + /// + public YesNoType UninstallWhenSuperseded + { + get + { + return this.uninstallWhenSupersededField; + } + set + { + this.uninstallWhenSupersededFieldSet = true; + this.uninstallWhenSupersededField = value; + } + } + + /// + /// Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates + /// the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit + /// component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute. + /// The default value is based on the platform set by the -arch switch to candle.exe + /// or the InstallerPlatform property in a .wixproj MSBuild project: + /// For x86 and ARM, the default value is 'no'. + /// For x64 and IA64, the default value is 'yes'. + /// + public YesNoType Win64 + { + get + { + return this.win64Field; + } + set + { + this.win64FieldSet = true; + this.win64Field = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("AppId" == childName)) + { + childValue = new AppId(); + } + if (("Category" == childName)) + { + childValue = new Category(); + } + if (("Class" == childName)) + { + childValue = new Class(); + } + if (("Condition" == childName)) + { + childValue = new Condition(); + } + if (("CopyFile" == childName)) + { + childValue = new CopyFile(); + } + if (("CreateFolder" == childName)) + { + childValue = new CreateFolder(); + } + if (("Environment" == childName)) + { + childValue = new Environment(); + } + if (("Extension" == childName)) + { + childValue = new Extension(); + } + if (("File" == childName)) + { + childValue = new File(); + } + if (("IniFile" == childName)) + { + childValue = new IniFile(); + } + if (("Interface" == childName)) + { + childValue = new Interface(); + } + if (("IsolateComponent" == childName)) + { + childValue = new IsolateComponent(); + } + if (("ODBCDataSource" == childName)) + { + childValue = new ODBCDataSource(); + } + if (("ODBCDriver" == childName)) + { + childValue = new ODBCDriver(); + } + if (("ODBCTranslator" == childName)) + { + childValue = new ODBCTranslator(); + } + if (("ProgId" == childName)) + { + childValue = new ProgId(); + } + if (("Registry" == childName)) + { + childValue = new Registry(); + } + if (("RegistryKey" == childName)) + { + childValue = new RegistryKey(); + } + if (("RegistryValue" == childName)) + { + childValue = new RegistryValue(); + } + if (("RemoveFile" == childName)) + { + childValue = new RemoveFile(); + } + if (("RemoveFolder" == childName)) + { + childValue = new RemoveFolder(); + } + if (("RemoveRegistryKey" == childName)) + { + childValue = new RemoveRegistryKey(); + } + if (("RemoveRegistryValue" == childName)) + { + childValue = new RemoveRegistryValue(); + } + if (("ReserveCost" == childName)) + { + childValue = new ReserveCost(); + } + if (("ServiceControl" == childName)) + { + childValue = new ServiceControl(); + } + if (("ServiceConfig" == childName)) + { + childValue = new ServiceConfig(); + } + if (("ServiceConfigFailureActions" == childName)) + { + childValue = new ServiceConfigFailureActions(); + } + if (("ServiceInstall" == childName)) + { + childValue = new ServiceInstall(); + } + if (("Shortcut" == childName)) + { + childValue = new Shortcut(); + } + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if (("TypeLib" == childName)) + { + childValue = new TypeLib(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a LocationType from a string. + /// + public static LocationType ParseLocationType(string value) + { + LocationType parsedValue; + Component.TryParseLocationType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a LocationType from a string. + /// + public static bool TryParseLocationType(string value, out LocationType parsedValue) + { + parsedValue = LocationType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("local" == value)) + { + parsedValue = LocationType.local; + } + else + { + if (("source" == value)) + { + parsedValue = LocationType.source; + } + else + { + if (("either" == value)) + { + parsedValue = LocationType.either; + } + else + { + parsedValue = LocationType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Component", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.comPlusFlagsFieldSet) + { + writer.WriteAttributeString("ComPlusFlags", this.comPlusFlagsField.ToString(CultureInfo.InvariantCulture)); + } + if (this.disableRegistryReflectionFieldSet) + { + if ((this.disableRegistryReflectionField == YesNoType.no)) + { + writer.WriteAttributeString("DisableRegistryReflection", "no"); + } + if ((this.disableRegistryReflectionField == YesNoType.yes)) + { + writer.WriteAttributeString("DisableRegistryReflection", "yes"); + } + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.diskIdFieldSet) + { + writer.WriteAttributeString("DiskId", this.diskIdField); + } + if (this.featureFieldSet) + { + writer.WriteAttributeString("Feature", this.featureField); + } + if (this.guidFieldSet) + { + writer.WriteAttributeString("Guid", this.guidField); + } + if (this.keyPathFieldSet) + { + if ((this.keyPathField == YesNoType.no)) + { + writer.WriteAttributeString("KeyPath", "no"); + } + if ((this.keyPathField == YesNoType.yes)) + { + writer.WriteAttributeString("KeyPath", "yes"); + } + } + if (this.locationFieldSet) + { + if ((this.locationField == LocationType.local)) + { + writer.WriteAttributeString("Location", "local"); + } + if ((this.locationField == LocationType.source)) + { + writer.WriteAttributeString("Location", "source"); + } + if ((this.locationField == LocationType.either)) + { + writer.WriteAttributeString("Location", "either"); + } + } + if (this.multiInstanceFieldSet) + { + if ((this.multiInstanceField == YesNoType.no)) + { + writer.WriteAttributeString("MultiInstance", "no"); + } + if ((this.multiInstanceField == YesNoType.yes)) + { + writer.WriteAttributeString("MultiInstance", "yes"); + } + } + if (this.neverOverwriteFieldSet) + { + if ((this.neverOverwriteField == YesNoType.no)) + { + writer.WriteAttributeString("NeverOverwrite", "no"); + } + if ((this.neverOverwriteField == YesNoType.yes)) + { + writer.WriteAttributeString("NeverOverwrite", "yes"); + } + } + if (this.permanentFieldSet) + { + if ((this.permanentField == YesNoType.no)) + { + writer.WriteAttributeString("Permanent", "no"); + } + if ((this.permanentField == YesNoType.yes)) + { + writer.WriteAttributeString("Permanent", "yes"); + } + } + if (this.sharedFieldSet) + { + if ((this.sharedField == YesNoType.no)) + { + writer.WriteAttributeString("Shared", "no"); + } + if ((this.sharedField == YesNoType.yes)) + { + writer.WriteAttributeString("Shared", "yes"); + } + } + if (this.sharedDllRefCountFieldSet) + { + if ((this.sharedDllRefCountField == YesNoType.no)) + { + writer.WriteAttributeString("SharedDllRefCount", "no"); + } + if ((this.sharedDllRefCountField == YesNoType.yes)) + { + writer.WriteAttributeString("SharedDllRefCount", "yes"); + } + } + if (this.transitiveFieldSet) + { + if ((this.transitiveField == YesNoType.no)) + { + writer.WriteAttributeString("Transitive", "no"); + } + if ((this.transitiveField == YesNoType.yes)) + { + writer.WriteAttributeString("Transitive", "yes"); + } + } + if (this.uninstallWhenSupersededFieldSet) + { + if ((this.uninstallWhenSupersededField == YesNoType.no)) + { + writer.WriteAttributeString("UninstallWhenSuperseded", "no"); + } + if ((this.uninstallWhenSupersededField == YesNoType.yes)) + { + writer.WriteAttributeString("UninstallWhenSuperseded", "yes"); + } + } + if (this.win64FieldSet) + { + if ((this.win64Field == YesNoType.no)) + { + writer.WriteAttributeString("Win64", "no"); + } + if ((this.win64Field == YesNoType.yes)) + { + writer.WriteAttributeString("Win64", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("ComPlusFlags" == name)) + { + this.comPlusFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.comPlusFlagsFieldSet = true; + } + if (("DisableRegistryReflection" == name)) + { + this.disableRegistryReflectionField = Enums.ParseYesNoType(value); + this.disableRegistryReflectionFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("DiskId" == name)) + { + this.diskIdField = value; + this.diskIdFieldSet = true; + } + if (("Feature" == name)) + { + this.featureField = value; + this.featureFieldSet = true; + } + if (("Guid" == name)) + { + this.guidField = value; + this.guidFieldSet = true; + } + if (("KeyPath" == name)) + { + this.keyPathField = Enums.ParseYesNoType(value); + this.keyPathFieldSet = true; + } + if (("Location" == name)) + { + this.locationField = Component.ParseLocationType(value); + this.locationFieldSet = true; + } + if (("MultiInstance" == name)) + { + this.multiInstanceField = Enums.ParseYesNoType(value); + this.multiInstanceFieldSet = true; + } + if (("NeverOverwrite" == name)) + { + this.neverOverwriteField = Enums.ParseYesNoType(value); + this.neverOverwriteFieldSet = true; + } + if (("Permanent" == name)) + { + this.permanentField = Enums.ParseYesNoType(value); + this.permanentFieldSet = true; + } + if (("Shared" == name)) + { + this.sharedField = Enums.ParseYesNoType(value); + this.sharedFieldSet = true; + } + if (("SharedDllRefCount" == name)) + { + this.sharedDllRefCountField = Enums.ParseYesNoType(value); + this.sharedDllRefCountFieldSet = true; + } + if (("Transitive" == name)) + { + this.transitiveField = Enums.ParseYesNoType(value); + this.transitiveFieldSet = true; + } + if (("UninstallWhenSuperseded" == name)) + { + this.uninstallWhenSupersededField = Enums.ParseYesNoType(value); + this.uninstallWhenSupersededFieldSet = true; + } + if (("Win64" == name)) + { + this.win64Field = Enums.ParseYesNoType(value); + this.win64FieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum LocationType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set). + /// + local, + + /// + /// Enforces that the component can only be run from the source (it cannot be run from the user's computer). + /// + source, + + /// + /// Allows the component to run from source or locally. + /// + either, + } + } + + /// + /// Groups together multiple components to be used in other locations. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ComponentGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private string sourceField; + + private bool sourceFieldSet; + + private ISchemaElement parentElement; + + public ComponentGroup() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for the ComponentGroup. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Sets the default directory identifier for child Component elements. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// Used to set the default file system source for child Component elements. For more information, see + /// + public string Source + { + get + { + return this.sourceField; + } + set + { + this.sourceFieldSet = true; + this.sourceField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("ComponentGroupRef" == childName)) + { + childValue = new ComponentGroupRef(); + } + if (("ComponentRef" == childName)) + { + childValue = new ComponentRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ComponentGroup", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.sourceFieldSet) + { + writer.WriteAttributeString("Source", this.sourceField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("Source" == name)) + { + this.sourceField = value; + this.sourceFieldSet = true; + } + } + } + + /// + /// Create a reference to a ComponentGroup in another Fragment. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ComponentGroupRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType primaryField; + + private bool primaryFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the ComponentGroup to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set this attribute to 'yes' in order to make the parent feature of this component + /// the primary feature for this component. Components may belong to multiple features. + /// By designating a feature as the primary feature of a component, you ensure that + /// whenever a component is selected for install-on-demand (IOD), the primary feature + /// will be the one to install it. This attribute should only be set if a component + /// actually nests under multiple features. If a component nests under only one feature, + /// that feature is the primary feature for the component. You cannot set more than one + /// feature as the primary feature of a given component. + /// + public YesNoType Primary + { + get + { + return this.primaryField; + } + set + { + this.primaryFieldSet = true; + this.primaryField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ComponentGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.primaryFieldSet) + { + if ((this.primaryField == YesNoType.no)) + { + writer.WriteAttributeString("Primary", "no"); + } + if ((this.primaryField == YesNoType.yes)) + { + writer.WriteAttributeString("Primary", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Primary" == name)) + { + this.primaryField = Enums.ParseYesNoType(value); + this.primaryFieldSet = true; + } + } + } + + /// + /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class All : ISetAttributes, ISchemaElement + { + + private ISchemaElement parentElement; + + private string contentField; + + private bool contentFieldSet; + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("All", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + } + + /// + /// Used only for PatchFamilies to include only a binary table entry in a patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class BinaryRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the Binary element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("BinaryRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Used only for PatchFamilies to include only a icon table entry in a patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IconRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the Icon element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IconRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Create a reference to a Feature element in another Fragment. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ComponentRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType primaryField; + + private bool primaryFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the Component element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set this attribute to 'yes' in order to make the parent feature of this component + /// the primary feature for this component. Components may belong to multiple features. + /// By designating a feature as the primary feature of a component, you ensure that + /// whenever a component is selected for install-on-demand (IOD), the primary feature + /// will be the one to install it. This attribute should only be set if a component + /// actually nests under multiple features. If a component nests under only one feature, + /// that feature is the primary feature for the component. You cannot set more than one + /// feature as the primary feature of a given component. + /// + public YesNoType Primary + { + get + { + return this.primaryField; + } + set + { + this.primaryFieldSet = true; + this.primaryField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ComponentRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.primaryFieldSet) + { + if ((this.primaryField == YesNoType.no)) + { + writer.WriteAttributeString("Primary", "no"); + } + if ((this.primaryField == YesNoType.yes)) + { + writer.WriteAttributeString("Primary", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Primary" == name)) + { + this.primaryField = Enums.ParseYesNoType(value); + this.primaryFieldSet = true; + } + } + } + + /// + /// Merge directive to bring in a merge module that will be redirected to the parent directory. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Merge : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string diskIdField; + + private bool diskIdFieldSet; + + private YesNoType fileCompressionField; + + private bool fileCompressionFieldSet; + + private string languageField; + + private bool languageFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private ISchemaElement parentElement; + + public Merge() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ConfigurationData))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The value of this attribute should correspond to the Id attribute of a + /// Media element authored elsewhere. By creating this connection between the merge module and Media + /// element, you set the packaging options to the values specified in the Media + /// element (values such as compression level, cab embedding, etc...). + /// + public string DiskId + { + get + { + return this.diskIdField; + } + set + { + this.diskIdFieldSet = true; + this.diskIdField = value; + } + } + + /// + /// Specifies if the files in the merge module should be compressed. + /// + public YesNoType FileCompression + { + get + { + return this.fileCompressionField; + } + set + { + this.fileCompressionFieldSet = true; + this.fileCompressionField = value; + } + } + + /// + /// Specifies the decimal LCID or localization token for the language to merge the Module in as. + /// + public string Language + { + get + { + return this.languageField; + } + set + { + this.languageFieldSet = true; + this.languageField = value; + } + } + + /// + /// Path to the source location of the merge module. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ConfigurationData" == childName)) + { + childValue = new ConfigurationData(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Merge", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.diskIdFieldSet) + { + writer.WriteAttributeString("DiskId", this.diskIdField); + } + if (this.fileCompressionFieldSet) + { + if ((this.fileCompressionField == YesNoType.no)) + { + writer.WriteAttributeString("FileCompression", "no"); + } + if ((this.fileCompressionField == YesNoType.yes)) + { + writer.WriteAttributeString("FileCompression", "yes"); + } + } + if (this.languageFieldSet) + { + writer.WriteAttributeString("Language", this.languageField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("DiskId" == name)) + { + this.diskIdField = value; + this.diskIdFieldSet = true; + } + if (("FileCompression" == name)) + { + this.fileCompressionField = Enums.ParseYesNoType(value); + this.fileCompressionFieldSet = true; + } + if (("Language" == name)) + { + this.languageField = value; + this.languageFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + } + } + + /// + /// Merge reference to connect a Merge Module to parent Feature + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MergeRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType primaryField; + + private bool primaryFieldSet; + + private ISchemaElement parentElement; + + /// + /// The unique identifier for the Merge element to be referenced. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components. + /// + public YesNoType Primary + { + get + { + return this.primaryField; + } + set + { + this.primaryFieldSet = true; + this.primaryField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MergeRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.primaryFieldSet) + { + if ((this.primaryField == YesNoType.no)) + { + writer.WriteAttributeString("Primary", "no"); + } + if ((this.primaryField == YesNoType.yes)) + { + writer.WriteAttributeString("Primary", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Primary" == name)) + { + this.primaryField = Enums.ParseYesNoType(value); + this.primaryFieldSet = true; + } + } + } + + /// + /// Data to use as input to a configurable merge module. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ConfigurationData : ISchemaElement, ISetAttributes + { + + private string nameField; + + private bool nameFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// Name of the item in the ModuleConfiguration table. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Value to be passed to configurable merge module. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ConfigurationData", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Directory layout for the product. Also specifies the mappings between source and target directories. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Directory : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string componentGuidGenerationSeedField; + + private bool componentGuidGenerationSeedFieldSet; + + private string diskIdField; + + private bool diskIdFieldSet; + + private string fileSourceField; + + private bool fileSourceFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string shortNameField; + + private bool shortNameFieldSet; + + private string shortSourceNameField; + + private bool shortSourceNameFieldSet; + + private string sourceNameField; + + private bool sourceNameFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private ISchemaElement parentElement; + + public Directory() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// This value is the unique identifier of the directory entry. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*") + /// is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder). + /// It is recommended that this attribute be avoided and that developers install their Components under standard + /// directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is + /// important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until + /// (and must be changed when) the path to that directory, including itself and all parent directories, changes. + /// + public string ComponentGuidGenerationSeed + { + get + { + return this.componentGuidGenerationSeedField; + } + set + { + this.componentGuidGenerationSeedFieldSet = true; + this.componentGuidGenerationSeedField = value; + } + } + + /// + /// Sets the default disk identifier for the files contained in this directory. + /// This attribute's value may be overridden by a child Component, Directory, + /// Merge or File element. See the File or Merge elements' DiskId attribute for + /// more information. + /// + public string DiskId + { + get + { + return this.diskIdField; + } + set + { + this.diskIdFieldSet = true; + this.diskIdField = value; + } + } + + /// + /// Used to set the file system source for this directory's child elements. For more information, see + /// + public string FileSource + { + get + { + return this.fileSourceField; + } + set + { + this.fileSourceFieldSet = true; + this.fileSourceField = value; + } + } + + /// + /// The name of the directory. + /// + /// Do not specify this attribute if this directory represents + /// the same directory as the parent (see the Windows Installer SDK's + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The short name of the directory in 8.3 format. + /// This attribute should only be set if there is a conflict between generated short directory names + /// or the user wants to manually specify the short directory name. + /// + public string ShortName + { + get + { + return this.shortNameField; + } + set + { + this.shortNameFieldSet = true; + this.shortNameField = value; + } + } + + /// + /// The short name of the directory on the source media in 8.3 format. + /// This attribute should only be set if there is a conflict between generated short directory names + /// or the user wants to manually specify the short source directory name. + /// + public string ShortSourceName + { + get + { + return this.shortSourceNameField; + } + set + { + this.shortSourceNameFieldSet = true; + this.shortSourceNameField = value; + } + } + + /// + /// The name of the directory on the source media. + /// If this attribute is not specified, Windows Installer will default to the Name attribute. + /// + /// In prior versions of the WiX toolset, this attribute specified the short source directory name. + /// This attribute's value may now be either a short or long directory name. + /// If a short directory name is specified, the ShortSourceName attribute may not be specified. + /// If a long directory name is specified, the LongSource attribute may not be specified. + /// Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to + /// allow WiX to attempt to generate a unique short directory name. + /// However, if this name collides with another directory or you wish to manually specify + /// the short directory name, then the ShortSourceName attribute may be specified. + /// + public string SourceName + { + get + { + return this.sourceNameField; + } + set + { + this.sourceNameFieldSet = true; + this.sourceNameField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("Directory" == childName)) + { + childValue = new Directory(); + } + if (("Merge" == childName)) + { + childValue = new Merge(); + } + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Directory", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.componentGuidGenerationSeedFieldSet) + { + writer.WriteAttributeString("ComponentGuidGenerationSeed", this.componentGuidGenerationSeedField); + } + if (this.diskIdFieldSet) + { + writer.WriteAttributeString("DiskId", this.diskIdField); + } + if (this.fileSourceFieldSet) + { + writer.WriteAttributeString("FileSource", this.fileSourceField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.shortNameFieldSet) + { + writer.WriteAttributeString("ShortName", this.shortNameField); + } + if (this.shortSourceNameFieldSet) + { + writer.WriteAttributeString("ShortSourceName", this.shortSourceNameField); + } + if (this.sourceNameFieldSet) + { + writer.WriteAttributeString("SourceName", this.sourceNameField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("ComponentGuidGenerationSeed" == name)) + { + this.componentGuidGenerationSeedField = value; + this.componentGuidGenerationSeedFieldSet = true; + } + if (("DiskId" == name)) + { + this.diskIdField = value; + this.diskIdFieldSet = true; + } + if (("FileSource" == name)) + { + this.fileSourceField = value; + this.fileSourceFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("ShortName" == name)) + { + this.shortNameField = value; + this.shortNameFieldSet = true; + } + if (("ShortSourceName" == name)) + { + this.shortSourceNameField = value; + this.shortSourceNameFieldSet = true; + } + if (("SourceName" == name)) + { + this.sourceNameField = value; + this.sourceNameFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + } + } + + /// + /// Create a reference to a Directory element in another Fragment. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DirectoryRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string diskIdField; + + private bool diskIdFieldSet; + + private string fileSourceField; + + private bool fileSourceFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private ISchemaElement parentElement; + + public DirectoryRef() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The identifier of the Directory element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Sets the default disk identifier for the files contained in this directory. + /// This attribute's value may be overridden by a child Component, Directory, + /// Merge or File element. See the File or Merge elements' DiskId attribute for + /// more information. + /// + public string DiskId + { + get + { + return this.diskIdField; + } + set + { + this.diskIdFieldSet = true; + this.diskIdField = value; + } + } + + /// + /// Used to set the file system source for this DirectoryRef's child elements. For more information, see + /// + public string FileSource + { + get + { + return this.fileSourceField; + } + set + { + this.fileSourceFieldSet = true; + this.fileSourceField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("Directory" == childName)) + { + childValue = new Directory(); + } + if (("Merge" == childName)) + { + childValue = new Merge(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DirectoryRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.diskIdFieldSet) + { + writer.WriteAttributeString("DiskId", this.diskIdField); + } + if (this.fileSourceFieldSet) + { + writer.WriteAttributeString("FileSource", this.fileSourceField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("DiskId" == name)) + { + this.diskIdField = value; + this.diskIdFieldSet = true; + } + if (("FileSource" == name)) + { + this.fileSourceField = value; + this.fileSourceFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UpgradeVersion : ISchemaElement, ISetAttributes + { + + private string minimumField; + + private bool minimumFieldSet; + + private string maximumField; + + private bool maximumFieldSet; + + private string languageField; + + private bool languageFieldSet; + + private string removeFeaturesField; + + private bool removeFeaturesFieldSet; + + private string propertyField; + + private bool propertyFieldSet; + + private YesNoType migrateFeaturesField; + + private bool migrateFeaturesFieldSet; + + private YesNoType onlyDetectField; + + private bool onlyDetectFieldSet; + + private YesNoType ignoreRemoveFailureField; + + private bool ignoreRemoveFailureFieldSet; + + private YesNoType includeMinimumField; + + private bool includeMinimumFieldSet; + + private YesNoType includeMaximumField; + + private bool includeMaximumFieldSet; + + private YesNoType excludeLanguagesField; + + private bool excludeLanguagesFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. + /// + public string Minimum + { + get + { + return this.minimumField; + } + set + { + this.minimumFieldSet = true; + this.minimumField = value; + } + } + + /// + /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. + /// + public string Maximum + { + get + { + return this.maximumField; + } + set + { + this.maximumFieldSet = true; + this.maximumField = value; + } + } + + /// + /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. + /// + public string Language + { + get + { + return this.languageField; + } + set + { + this.languageFieldSet = true; + this.languageField = value; + } + } + + /// + /// The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty. + /// + public string RemoveFeatures + { + get + { + return this.removeFeaturesField; + } + set + { + this.removeFeaturesFieldSet = true; + this.removeFeaturesField = value; + } + } + + /// + /// When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + /// + /// Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action. + /// + public YesNoType MigrateFeatures + { + get + { + return this.migrateFeaturesField; + } + set + { + this.migrateFeaturesFieldSet = true; + this.migrateFeaturesField = value; + } + } + + /// + /// Set to "yes" to detect products and applications but do not uninstall. + /// + public YesNoType OnlyDetect + { + get + { + return this.onlyDetectField; + } + set + { + this.onlyDetectFieldSet = true; + this.onlyDetectField = value; + } + } + + /// + /// Set to "yes" to continue installation upon failure to remove a product or application. + /// + public YesNoType IgnoreRemoveFailure + { + get + { + return this.ignoreRemoveFailureField; + } + set + { + this.ignoreRemoveFailureFieldSet = true; + this.ignoreRemoveFailureField = value; + } + } + + /// + /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. + /// + public YesNoType IncludeMinimum + { + get + { + return this.includeMinimumField; + } + set + { + this.includeMinimumFieldSet = true; + this.includeMinimumField = value; + } + } + + /// + /// Set to "yes" to make the range of versions detected include the value specified in Maximum. + /// + public YesNoType IncludeMaximum + { + get + { + return this.includeMaximumField; + } + set + { + this.includeMaximumFieldSet = true; + this.includeMaximumField = value; + } + } + + /// + /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. + /// + public YesNoType ExcludeLanguages + { + get + { + return this.excludeLanguagesField; + } + set + { + this.excludeLanguagesFieldSet = true; + this.excludeLanguagesField = value; + } + } + + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UpgradeVersion", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.minimumFieldSet) + { + writer.WriteAttributeString("Minimum", this.minimumField); + } + if (this.maximumFieldSet) + { + writer.WriteAttributeString("Maximum", this.maximumField); + } + if (this.languageFieldSet) + { + writer.WriteAttributeString("Language", this.languageField); + } + if (this.removeFeaturesFieldSet) + { + writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); + } + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + if (this.migrateFeaturesFieldSet) + { + if ((this.migrateFeaturesField == YesNoType.no)) + { + writer.WriteAttributeString("MigrateFeatures", "no"); + } + if ((this.migrateFeaturesField == YesNoType.yes)) + { + writer.WriteAttributeString("MigrateFeatures", "yes"); + } + } + if (this.onlyDetectFieldSet) + { + if ((this.onlyDetectField == YesNoType.no)) + { + writer.WriteAttributeString("OnlyDetect", "no"); + } + if ((this.onlyDetectField == YesNoType.yes)) + { + writer.WriteAttributeString("OnlyDetect", "yes"); + } + } + if (this.ignoreRemoveFailureFieldSet) + { + if ((this.ignoreRemoveFailureField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreRemoveFailure", "no"); + } + if ((this.ignoreRemoveFailureField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); + } + } + if (this.includeMinimumFieldSet) + { + if ((this.includeMinimumField == YesNoType.no)) + { + writer.WriteAttributeString("IncludeMinimum", "no"); + } + if ((this.includeMinimumField == YesNoType.yes)) + { + writer.WriteAttributeString("IncludeMinimum", "yes"); + } + } + if (this.includeMaximumFieldSet) + { + if ((this.includeMaximumField == YesNoType.no)) + { + writer.WriteAttributeString("IncludeMaximum", "no"); + } + if ((this.includeMaximumField == YesNoType.yes)) + { + writer.WriteAttributeString("IncludeMaximum", "yes"); + } + } + if (this.excludeLanguagesFieldSet) + { + if ((this.excludeLanguagesField == YesNoType.no)) + { + writer.WriteAttributeString("ExcludeLanguages", "no"); + } + if ((this.excludeLanguagesField == YesNoType.yes)) + { + writer.WriteAttributeString("ExcludeLanguages", "yes"); + } + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Minimum" == name)) + { + this.minimumField = value; + this.minimumFieldSet = true; + } + if (("Maximum" == name)) + { + this.maximumField = value; + this.maximumFieldSet = true; + } + if (("Language" == name)) + { + this.languageField = value; + this.languageFieldSet = true; + } + if (("RemoveFeatures" == name)) + { + this.removeFeaturesField = value; + this.removeFeaturesFieldSet = true; + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + if (("MigrateFeatures" == name)) + { + this.migrateFeaturesField = Enums.ParseYesNoType(value); + this.migrateFeaturesFieldSet = true; + } + if (("OnlyDetect" == name)) + { + this.onlyDetectField = Enums.ParseYesNoType(value); + this.onlyDetectFieldSet = true; + } + if (("IgnoreRemoveFailure" == name)) + { + this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); + this.ignoreRemoveFailureFieldSet = true; + } + if (("IncludeMinimum" == name)) + { + this.includeMinimumField = Enums.ParseYesNoType(value); + this.includeMinimumFieldSet = true; + } + if (("IncludeMaximum" == name)) + { + this.includeMaximumField = Enums.ParseYesNoType(value); + this.includeMaximumFieldSet = true; + } + if (("ExcludeLanguages" == name)) + { + this.excludeLanguagesField = Enums.ParseYesNoType(value); + this.excludeLanguagesFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// Upgrade info for a particular UpgradeCode + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Upgrade : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public Upgrade() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeVersion))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("UpgradeVersion" == childName)) + { + childValue = new UpgradeVersion(); + } + if (("Property" == childName)) + { + childValue = new Property(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Upgrade", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more + /// detailed information on the myriad installation options for a feature. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Feature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private AbsentType absentField; + + private bool absentFieldSet; + + private AllowAdvertiseType allowAdvertiseField; + + private bool allowAdvertiseFieldSet; + + private string configurableDirectoryField; + + private bool configurableDirectoryFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private string displayField; + + private bool displayFieldSet; + + private InstallDefaultType installDefaultField; + + private bool installDefaultFieldSet; + + private int levelField; + + private bool levelFieldSet; + + private string titleField; + + private bool titleFieldSet; + + private TypicalDefaultType typicalDefaultField; + + private bool typicalDefaultFieldSet; + + private ISchemaElement parentElement; + + public Feature() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier of the feature. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This attribute determines if a user will have the option to set a feature to absent in the user interface. + /// + public AbsentType Absent + { + get + { + return this.absentField; + } + set + { + this.absentFieldSet = true; + this.absentField = value; + } + } + + /// + /// This attribute determines the possible advertise states for this feature. + /// + public AllowAdvertiseType AllowAdvertise + { + get + { + return this.allowAdvertiseField; + } + set + { + this.allowAdvertiseFieldSet = true; + this.allowAdvertiseField = value; + } + } + + /// + /// Specify the Id of a Directory that can be configured by the user at installation time. This identifier + /// must be a public property and therefore completely uppercase. + /// + public string ConfigurableDirectory + { + get + { + return this.configurableDirectoryField; + } + set + { + this.configurableDirectoryFieldSet = true; + this.configurableDirectoryField = value; + } + } + + /// + /// Longer string of text describing the feature. This localizable string is displayed by the + /// Text Control of the Selection Dialog. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// Determines the initial display of this feature in the feature tree. + /// This attribute's value should be one of the following: + /// + public string Display + { + get + { + return this.displayField; + } + set + { + this.displayFieldSet = true; + this.displayField = value; + } + } + + /// + /// This attribute determines the default install/run location of a feature. This attribute cannot be specified + /// if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature + /// to follow the parent installation state and simultaneously favor a particular installation state just for this feature. + /// + public InstallDefaultType InstallDefault + { + get + { + return this.installDefaultField; + } + set + { + this.installDefaultFieldSet = true; + this.installDefaultField = value; + } + } + + /// + /// Sets the install level of this feature. A value of 0 will disable the feature. Processing the + /// Condition Table can modify the level value (this is set via the Condition child element). The + /// default value is "1". + /// + public int Level + { + get + { + return this.levelField; + } + set + { + this.levelFieldSet = true; + this.levelField = value; + } + } + + /// + /// Short string of text identifying the feature. This string is listed as an item by the + /// SelectionTree control of the Selection Dialog. + /// + public string Title + { + get + { + return this.titleField; + } + set + { + this.titleFieldSet = true; + this.titleField = value; + } + } + + /// + /// This attribute determines the default advertise state of the feature. + /// + public TypicalDefaultType TypicalDefault + { + get + { + return this.typicalDefaultField; + } + set + { + this.typicalDefaultFieldSet = true; + this.typicalDefaultField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("ComponentGroupRef" == childName)) + { + childValue = new ComponentGroupRef(); + } + if (("ComponentRef" == childName)) + { + childValue = new ComponentRef(); + } + if (("Condition" == childName)) + { + childValue = new Condition(); + } + if (("Feature" == childName)) + { + childValue = new Feature(); + } + if (("FeatureGroupRef" == childName)) + { + childValue = new FeatureGroupRef(); + } + if (("FeatureRef" == childName)) + { + childValue = new FeatureRef(); + } + if (("MergeRef" == childName)) + { + childValue = new MergeRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a AbsentType from a string. + /// + public static AbsentType ParseAbsentType(string value) + { + AbsentType parsedValue; + Feature.TryParseAbsentType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a AbsentType from a string. + /// + public static bool TryParseAbsentType(string value, out AbsentType parsedValue) + { + parsedValue = AbsentType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("allow" == value)) + { + parsedValue = AbsentType.allow; + } + else + { + if (("disallow" == value)) + { + parsedValue = AbsentType.disallow; + } + else + { + parsedValue = AbsentType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Parses a AllowAdvertiseType from a string. + /// + public static AllowAdvertiseType ParseAllowAdvertiseType(string value) + { + AllowAdvertiseType parsedValue; + Feature.TryParseAllowAdvertiseType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a AllowAdvertiseType from a string. + /// + public static bool TryParseAllowAdvertiseType(string value, out AllowAdvertiseType parsedValue) + { + parsedValue = AllowAdvertiseType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("no" == value)) + { + parsedValue = AllowAdvertiseType.no; + } + else + { + if (("system" == value)) + { + parsedValue = AllowAdvertiseType.system; + } + else + { + if (("yes" == value)) + { + parsedValue = AllowAdvertiseType.yes; + } + else + { + parsedValue = AllowAdvertiseType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a InstallDefaultType from a string. + /// + public static InstallDefaultType ParseInstallDefaultType(string value) + { + InstallDefaultType parsedValue; + Feature.TryParseInstallDefaultType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a InstallDefaultType from a string. + /// + public static bool TryParseInstallDefaultType(string value, out InstallDefaultType parsedValue) + { + parsedValue = InstallDefaultType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("followParent" == value)) + { + parsedValue = InstallDefaultType.followParent; + } + else + { + if (("local" == value)) + { + parsedValue = InstallDefaultType.local; + } + else + { + if (("source" == value)) + { + parsedValue = InstallDefaultType.source; + } + else + { + parsedValue = InstallDefaultType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a TypicalDefaultType from a string. + /// + public static TypicalDefaultType ParseTypicalDefaultType(string value) + { + TypicalDefaultType parsedValue; + Feature.TryParseTypicalDefaultType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypicalDefaultType from a string. + /// + public static bool TryParseTypicalDefaultType(string value, out TypicalDefaultType parsedValue) + { + parsedValue = TypicalDefaultType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("advertise" == value)) + { + parsedValue = TypicalDefaultType.advertise; + } + else + { + if (("install" == value)) + { + parsedValue = TypicalDefaultType.install; + } + else + { + parsedValue = TypicalDefaultType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Feature", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.absentFieldSet) + { + if ((this.absentField == AbsentType.allow)) + { + writer.WriteAttributeString("Absent", "allow"); + } + if ((this.absentField == AbsentType.disallow)) + { + writer.WriteAttributeString("Absent", "disallow"); + } + } + if (this.allowAdvertiseFieldSet) + { + if ((this.allowAdvertiseField == AllowAdvertiseType.no)) + { + writer.WriteAttributeString("AllowAdvertise", "no"); + } + if ((this.allowAdvertiseField == AllowAdvertiseType.system)) + { + writer.WriteAttributeString("AllowAdvertise", "system"); + } + if ((this.allowAdvertiseField == AllowAdvertiseType.yes)) + { + writer.WriteAttributeString("AllowAdvertise", "yes"); + } + } + if (this.configurableDirectoryFieldSet) + { + writer.WriteAttributeString("ConfigurableDirectory", this.configurableDirectoryField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.displayFieldSet) + { + writer.WriteAttributeString("Display", this.displayField); + } + if (this.installDefaultFieldSet) + { + if ((this.installDefaultField == InstallDefaultType.followParent)) + { + writer.WriteAttributeString("InstallDefault", "followParent"); + } + if ((this.installDefaultField == InstallDefaultType.local)) + { + writer.WriteAttributeString("InstallDefault", "local"); + } + if ((this.installDefaultField == InstallDefaultType.source)) + { + writer.WriteAttributeString("InstallDefault", "source"); + } + } + if (this.levelFieldSet) + { + writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); + } + if (this.titleFieldSet) + { + writer.WriteAttributeString("Title", this.titleField); + } + if (this.typicalDefaultFieldSet) + { + if ((this.typicalDefaultField == TypicalDefaultType.advertise)) + { + writer.WriteAttributeString("TypicalDefault", "advertise"); + } + if ((this.typicalDefaultField == TypicalDefaultType.install)) + { + writer.WriteAttributeString("TypicalDefault", "install"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Absent" == name)) + { + this.absentField = Feature.ParseAbsentType(value); + this.absentFieldSet = true; + } + if (("AllowAdvertise" == name)) + { + this.allowAdvertiseField = Feature.ParseAllowAdvertiseType(value); + this.allowAdvertiseFieldSet = true; + } + if (("ConfigurableDirectory" == name)) + { + this.configurableDirectoryField = value; + this.configurableDirectoryFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("Display" == name)) + { + this.displayField = value; + this.displayFieldSet = true; + } + if (("InstallDefault" == name)) + { + this.installDefaultField = Feature.ParseInstallDefaultType(value); + this.installDefaultFieldSet = true; + } + if (("Level" == name)) + { + this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.levelFieldSet = true; + } + if (("Title" == name)) + { + this.titleField = value; + this.titleFieldSet = true; + } + if (("TypicalDefault" == name)) + { + this.typicalDefaultField = Feature.ParseTypicalDefaultType(value); + this.typicalDefaultFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum AbsentType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Allows the user interface to display an option to change the feature state to Absent. + /// + allow, + + /// + /// Prevents the user interface from displaying an option to change the feature state + /// to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature + /// to the installation state, whether or not the feature is visible in the UI. + /// + disallow, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum AllowAdvertiseType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute. + /// + no, + + /// + /// Prevents advertising for this feature if the operating system shell does not support Windows Installer + /// descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute. + /// + system, + + /// + /// Allows the feature to be advertised. + /// + yes, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum InstallDefaultType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Forces the feature to follow the same installation state as its parent feature. + /// + followParent, + + /// + /// Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute. + /// + local, + + /// + /// Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute. + /// + source, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypicalDefaultType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute. + /// This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to + /// disallow the advertised state for this feature while at the same time favoring it. + /// + advertise, + + /// + /// Sets the feature to the default non-advertised installation option. + /// + install, + } + } + + /// + /// Groups together multiple components, features, and merges to be used in other locations. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FeatureGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public FeatureGroup() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for the FeatureGroup. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("ComponentGroupRef" == childName)) + { + childValue = new ComponentGroupRef(); + } + if (("ComponentRef" == childName)) + { + childValue = new ComponentRef(); + } + if (("Feature" == childName)) + { + childValue = new Feature(); + } + if (("FeatureGroupRef" == childName)) + { + childValue = new FeatureGroupRef(); + } + if (("FeatureRef" == childName)) + { + childValue = new FeatureRef(); + } + if (("MergeRef" == childName)) + { + childValue = new MergeRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FeatureGroup", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Create a reference to a FeatureGroup in another Fragment. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FeatureGroupRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType ignoreParentField; + + private bool ignoreParentFieldSet; + + private YesNoType primaryField; + + private bool primaryFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the FeatureGroup to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Normally feature group references that end up nested under a parent element create a + /// connection to that parent. This behavior is undesirable when trying to simply reference + /// to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group + /// reference not create a connection to its parent. The default is 'no'. + /// + public YesNoType IgnoreParent + { + get + { + return this.ignoreParentField; + } + set + { + this.ignoreParentFieldSet = true; + this.ignoreParentField = value; + } + } + + /// + /// Set this attribute to 'yes' in order to make the parent feature of this group + /// the primary feature for any components and merges contained in the group. + /// Features may belong to multiple features. By designating a feature as the + /// primary feature of a component or merge, you ensure that whenever a component is + /// selected for install-on-demand (IOD), the primary feature will be the one to install + /// it. This attribute should only be set if a component actually nests under multiple + /// features. If a component nests under only one feature, that feature is the primary + /// feature for the component. You cannot set more than one feature as the primary + /// feature of a given component. + /// + public YesNoType Primary + { + get + { + return this.primaryField; + } + set + { + this.primaryFieldSet = true; + this.primaryField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FeatureGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.ignoreParentFieldSet) + { + if ((this.ignoreParentField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreParent", "no"); + } + if ((this.ignoreParentField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreParent", "yes"); + } + } + if (this.primaryFieldSet) + { + if ((this.primaryField == YesNoType.no)) + { + writer.WriteAttributeString("Primary", "no"); + } + if ((this.primaryField == YesNoType.yes)) + { + writer.WriteAttributeString("Primary", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("IgnoreParent" == name)) + { + this.ignoreParentField = Enums.ParseYesNoType(value); + this.ignoreParentFieldSet = true; + } + if (("Primary" == name)) + { + this.primaryField = Enums.ParseYesNoType(value); + this.primaryFieldSet = true; + } + } + } + + /// + /// Create a reference to a Feature element in another Fragment. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FeatureRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private YesNoType ignoreParentField; + + private bool ignoreParentFieldSet; + + private ISchemaElement parentElement; + + public FeatureRef() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The identifier of the Feature element to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Normally feature references that are nested under a parent element create a connection to that + /// parent. This behavior is undesirable when trying to simply reference a Feature in a different + /// Fragment. Specify 'yes' to have this feature reference not create a connection to its parent. + /// The default is 'no'. + /// + public YesNoType IgnoreParent + { + get + { + return this.ignoreParentField; + } + set + { + this.ignoreParentFieldSet = true; + this.ignoreParentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Component" == childName)) + { + childValue = new Component(); + } + if (("ComponentGroupRef" == childName)) + { + childValue = new ComponentGroupRef(); + } + if (("ComponentRef" == childName)) + { + childValue = new ComponentRef(); + } + if (("Feature" == childName)) + { + childValue = new Feature(); + } + if (("FeatureRef" == childName)) + { + childValue = new FeatureRef(); + } + if (("FeatureGroup" == childName)) + { + childValue = new FeatureGroup(); + } + if (("FeatureGroupRef" == childName)) + { + childValue = new FeatureGroupRef(); + } + if (("MergeRef" == childName)) + { + childValue = new MergeRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FeatureRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.ignoreParentFieldSet) + { + if ((this.ignoreParentField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreParent", "no"); + } + if ((this.ignoreParentField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreParent", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("IgnoreParent" == name)) + { + this.ignoreParentField = Enums.ParseYesNoType(value); + this.ignoreParentFieldSet = true; + } + } + } + + /// + /// Media element describes a disk that makes up the source media for the installation. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Media : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string cabinetField; + + private bool cabinetFieldSet; + + private CompressionLevelType compressionLevelField; + + private bool compressionLevelFieldSet; + + private string diskPromptField; + + private bool diskPromptFieldSet; + + private YesNoType embedCabField; + + private bool embedCabFieldSet; + + private string layoutField; + + private bool layoutFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private string volumeLabelField; + + private bool volumeLabelFieldSet; + + private string sourceField; + + private bool sourceFieldSet; + + private ISchemaElement parentElement; + + public Media() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalSignature))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchBaseline))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Disk identifier for Media table. This number must be equal to or greater than 1. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set. + /// + public string Cabinet + { + get + { + return this.cabinetField; + } + set + { + this.cabinetFieldSet = true; + this.cabinetField = value; + } + } + + /// + /// Indicates the compression level for the Media's cabinet. This attribute can + /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. + /// + public CompressionLevelType CompressionLevel + { + get + { + return this.compressionLevelField; + } + set + { + this.compressionLevelFieldSet = true; + this.compressionLevelField = value; + } + } + + /// + /// The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. + /// + public string DiskPrompt + { + get + { + return this.diskPromptField; + } + set + { + this.diskPromptFieldSet = true; + this.diskPromptField = value; + } + } + + /// + /// Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute. + /// + public YesNoType EmbedCab + { + get + { + return this.embedCabField; + } + set + { + this.embedCabFieldSet = true; + this.embedCabField = value; + } + } + + /// + /// This attribute specifies the root directory for the uncompressed files that + /// are a part of this Media element. By default, the src will be the output + /// directory for the final image. The default value ensures the binder generates + /// an installable image. If a relative path is specified in the src attribute, + /// the value will be appended to the image's output directory. If an absolute + /// path is provided, that path will be used without modification. The latter two + /// options are provided to ease the layout of an image onto multiple medias (CDs/DVDs). + /// + public string Layout + { + get + { + return this.layoutField; + } + set + { + this.layoutFieldSet = true; + this.layoutField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + /// + /// The label attributed to the volume. This is the volume label returned + /// by the GetVolumeInformation function. If the SourceDir property refers + /// to a removable (floppy or CD-ROM) volume, then this volume label is + /// used to verify that the proper disk is in the drive before attempting + /// to install files. The entry in this column must match the volume label + /// of the physical media. + /// + public string VolumeLabel + { + get + { + return this.volumeLabelField; + } + set + { + this.volumeLabelFieldSet = true; + this.volumeLabelField = value; + } + } + + /// + /// Optional property that identifies the source of the embedded cabinet. + /// If a cabinet is specified for a patch, this property should be defined + /// and unique to each patch so that the embedded cabinet containing patched + /// and new files can be located in the patch package. If the cabinet is not + /// embedded - this is not typical - the cabinet can be found in the directory + /// referenced in this column. If empty, the external cabinet must be located + /// in the SourceDir directory. + /// + public string Source + { + get + { + return this.sourceField; + } + set + { + this.sourceFieldSet = true; + this.sourceField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("DigitalSignature" == childName)) + { + childValue = new DigitalSignature(); + } + if (("PatchBaseline" == childName)) + { + childValue = new PatchBaseline(); + } + if (("SymbolPath" == childName)) + { + childValue = new SymbolPath(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Media", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.cabinetFieldSet) + { + writer.WriteAttributeString("Cabinet", this.cabinetField); + } + if (this.compressionLevelFieldSet) + { + if ((this.compressionLevelField == CompressionLevelType.high)) + { + writer.WriteAttributeString("CompressionLevel", "high"); + } + if ((this.compressionLevelField == CompressionLevelType.low)) + { + writer.WriteAttributeString("CompressionLevel", "low"); + } + if ((this.compressionLevelField == CompressionLevelType.medium)) + { + writer.WriteAttributeString("CompressionLevel", "medium"); + } + if ((this.compressionLevelField == CompressionLevelType.mszip)) + { + writer.WriteAttributeString("CompressionLevel", "mszip"); + } + if ((this.compressionLevelField == CompressionLevelType.none)) + { + writer.WriteAttributeString("CompressionLevel", "none"); + } + } + if (this.diskPromptFieldSet) + { + writer.WriteAttributeString("DiskPrompt", this.diskPromptField); + } + if (this.embedCabFieldSet) + { + if ((this.embedCabField == YesNoType.no)) + { + writer.WriteAttributeString("EmbedCab", "no"); + } + if ((this.embedCabField == YesNoType.yes)) + { + writer.WriteAttributeString("EmbedCab", "yes"); + } + } + if (this.layoutFieldSet) + { + writer.WriteAttributeString("Layout", this.layoutField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + if (this.volumeLabelFieldSet) + { + writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); + } + if (this.sourceFieldSet) + { + writer.WriteAttributeString("Source", this.sourceField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Cabinet" == name)) + { + this.cabinetField = value; + this.cabinetFieldSet = true; + } + if (("CompressionLevel" == name)) + { + this.compressionLevelField = Enums.ParseCompressionLevelType(value); + this.compressionLevelFieldSet = true; + } + if (("DiskPrompt" == name)) + { + this.diskPromptField = value; + this.diskPromptFieldSet = true; + } + if (("EmbedCab" == name)) + { + this.embedCabField = Enums.ParseYesNoType(value); + this.embedCabFieldSet = true; + } + if (("Layout" == name)) + { + this.layoutField = value; + this.layoutFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + if (("VolumeLabel" == name)) + { + this.volumeLabelField = value; + this.volumeLabelFieldSet = true; + } + if (("Source" == name)) + { + this.sourceField = value; + this.sourceFieldSet = true; + } + } + } + + /// + /// MediaTeplate element describes information to automatically assign files to cabinets. + /// A maximumum number of cabinets created is 999. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MediaTemplate : ISchemaElement, ISetAttributes + { + + private string cabinetTemplateField; + + private bool cabinetTemplateFieldSet; + + private CompressionLevelType compressionLevelField; + + private bool compressionLevelFieldSet; + + private string diskPromptField; + + private bool diskPromptFieldSet; + + private YesNoType embedCabField; + + private bool embedCabFieldSet; + + private string volumeLabelField; + + private bool volumeLabelFieldSet; + + private int maximumUncompressedMediaSizeField; + + private bool maximumUncompressedMediaSizeFieldSet; + + private int maximumCabinetSizeForLargeFileSplittingField; + + private bool maximumCabinetSizeForLargeFileSplittingFieldSet; + + private ISchemaElement parentElement; + + /// + /// Templated name of the cabinet if some or all of the files stored on the media are in + /// a cabinet file. This name must begin with either a letter or an underscore, contain + /// maximum of five characters and {0} in the cabinet name part and must end three character extension. + /// The default is cab{0}.cab. + /// + public string CabinetTemplate + { + get + { + return this.cabinetTemplateField; + } + set + { + this.cabinetTemplateFieldSet = true; + this.cabinetTemplateField = value; + } + } + + /// + /// Indicates the compression level for the Media's cabinet. This attribute can + /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. + /// + public CompressionLevelType CompressionLevel + { + get + { + return this.compressionLevelField; + } + set + { + this.compressionLevelFieldSet = true; + this.compressionLevelField = value; + } + } + + /// + /// The disk name, which is usually the visible text printed on the disk. This localizable text is used + /// to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the + /// DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. + /// + public string DiskPrompt + { + get + { + return this.diskPromptField; + } + set + { + this.diskPromptFieldSet = true; + this.diskPromptField = value; + } + } + + /// + /// Instructs the binder to embed the cabinets in the product if 'yes'. + /// + public YesNoType EmbedCab + { + get + { + return this.embedCabField; + } + set + { + this.embedCabFieldSet = true; + this.embedCabField = value; + } + } + + /// + /// The label attributed to the volume. This is the volume label returned + /// by the GetVolumeInformation function. If the SourceDir property refers + /// to a removable (floppy or CD-ROM) volume, then this volume label is + /// used to verify that the proper disk is in the drive before attempting + /// to install files. The entry in this column must match the volume label + /// of the physical media. + /// + public string VolumeLabel + { + get + { + return this.volumeLabelField; + } + set + { + this.volumeLabelFieldSet = true; + this.volumeLabelField = value; + } + } + + /// + /// Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable + /// can be used to override this value. Default value is 200 MB. + /// + public int MaximumUncompressedMediaSize + { + get + { + return this.maximumUncompressedMediaSizeField; + } + set + { + this.maximumUncompressedMediaSizeFieldSet = true; + this.maximumUncompressedMediaSizeField = value; + } + } + + /// + /// Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging + /// files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size + /// exceed this value, then setting this attribute will cause the file to be split into multiple + /// cabinets of this maximum size. For simply controlling cabinet size without file splitting use + /// MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature + /// for this Fragment / Product. Setting WIX_MCSLFS environment variable can be used to override this + /// value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default + /// value of this attribute is 2048 MB (2 GB). + /// + public int MaximumCabinetSizeForLargeFileSplitting + { + get + { + return this.maximumCabinetSizeForLargeFileSplittingField; + } + set + { + this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; + this.maximumCabinetSizeForLargeFileSplittingField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a CompressionLevelType from a string. + /// + public static CompressionLevelType ParseCompressionLevelType(string value) + { + CompressionLevelType parsedValue; + MediaTemplate.TryParseCompressionLevelType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a CompressionLevelType from a string. + /// + public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) + { + parsedValue = CompressionLevelType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("high" == value)) + { + parsedValue = CompressionLevelType.high; + } + else + { + if (("low" == value)) + { + parsedValue = CompressionLevelType.low; + } + else + { + if (("medium" == value)) + { + parsedValue = CompressionLevelType.medium; + } + else + { + if (("mszip" == value)) + { + parsedValue = CompressionLevelType.mszip; + } + else + { + if (("none" == value)) + { + parsedValue = CompressionLevelType.none; + } + else + { + parsedValue = CompressionLevelType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MediaTemplate", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.cabinetTemplateFieldSet) + { + writer.WriteAttributeString("CabinetTemplate", this.cabinetTemplateField); + } + if (this.compressionLevelFieldSet) + { + if ((this.compressionLevelField == CompressionLevelType.high)) + { + writer.WriteAttributeString("CompressionLevel", "high"); + } + if ((this.compressionLevelField == CompressionLevelType.low)) + { + writer.WriteAttributeString("CompressionLevel", "low"); + } + if ((this.compressionLevelField == CompressionLevelType.medium)) + { + writer.WriteAttributeString("CompressionLevel", "medium"); + } + if ((this.compressionLevelField == CompressionLevelType.mszip)) + { + writer.WriteAttributeString("CompressionLevel", "mszip"); + } + if ((this.compressionLevelField == CompressionLevelType.none)) + { + writer.WriteAttributeString("CompressionLevel", "none"); + } + } + if (this.diskPromptFieldSet) + { + writer.WriteAttributeString("DiskPrompt", this.diskPromptField); + } + if (this.embedCabFieldSet) + { + if ((this.embedCabField == YesNoType.no)) + { + writer.WriteAttributeString("EmbedCab", "no"); + } + if ((this.embedCabField == YesNoType.yes)) + { + writer.WriteAttributeString("EmbedCab", "yes"); + } + } + if (this.volumeLabelFieldSet) + { + writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); + } + if (this.maximumUncompressedMediaSizeFieldSet) + { + writer.WriteAttributeString("MaximumUncompressedMediaSize", this.maximumUncompressedMediaSizeField.ToString(CultureInfo.InvariantCulture)); + } + if (this.maximumCabinetSizeForLargeFileSplittingFieldSet) + { + writer.WriteAttributeString("MaximumCabinetSizeForLargeFileSplitting", this.maximumCabinetSizeForLargeFileSplittingField.ToString(CultureInfo.InvariantCulture)); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("CabinetTemplate" == name)) + { + this.cabinetTemplateField = value; + this.cabinetTemplateFieldSet = true; + } + if (("CompressionLevel" == name)) + { + this.compressionLevelField = MediaTemplate.ParseCompressionLevelType(value); + this.compressionLevelFieldSet = true; + } + if (("DiskPrompt" == name)) + { + this.diskPromptField = value; + this.diskPromptFieldSet = true; + } + if (("EmbedCab" == name)) + { + this.embedCabField = Enums.ParseYesNoType(value); + this.embedCabFieldSet = true; + } + if (("VolumeLabel" == name)) + { + this.volumeLabelField = value; + this.volumeLabelFieldSet = true; + } + if (("MaximumUncompressedMediaSize" == name)) + { + this.maximumUncompressedMediaSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.maximumUncompressedMediaSizeFieldSet = true; + } + if (("MaximumCabinetSizeForLargeFileSplitting" == name)) + { + this.maximumCabinetSizeForLargeFileSplittingField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum CompressionLevelType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + high, + + low, + + medium, + + mszip, + + none, + } + } + + /// + /// This element has been deprecated. + /// Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IgnoreModularization : ISchemaElement, ISetAttributes + { + + private string nameField; + + private bool nameFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of the item to ignore modularization for. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// The type of the item to ignore modularization for. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + IgnoreModularization.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("Action" == value)) + { + parsedValue = TypeType.Action; + } + else + { + if (("Property" == value)) + { + parsedValue = TypeType.Property; + } + else + { + if (("Directory" == value)) + { + parsedValue = TypeType.Directory; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IgnoreModularization", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.Action)) + { + writer.WriteAttributeString("Type", "Action"); + } + if ((this.typeField == TypeType.Property)) + { + writer.WriteAttributeString("Type", "Property"); + } + if ((this.typeField == TypeType.Directory)) + { + writer.WriteAttributeString("Type", "Directory"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = IgnoreModularization.ParseTypeType(value); + this.typeFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + Action, + + Property, + + Directory, + } + } + + /// + /// Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element + /// correspond to different custom action types. For more information about custom actions see the + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CustomAction : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string binaryKeyField; + + private bool binaryKeyFieldSet; + + private string fileKeyField; + + private bool fileKeyFieldSet; + + private string propertyField; + + private bool propertyFieldSet; + + private string directoryField; + + private bool directoryFieldSet; + + private string dllEntryField; + + private bool dllEntryFieldSet; + + private string exeCommandField; + + private bool exeCommandFieldSet; + + private string jScriptCallField; + + private bool jScriptCallFieldSet; + + private string vBScriptCallField; + + private bool vBScriptCallFieldSet; + + private ScriptType scriptField; + + private bool scriptFieldSet; + + private YesNoType suppressModularizationField; + + private bool suppressModularizationFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private string errorField; + + private bool errorFieldSet; + + private ReturnType returnField; + + private bool returnFieldSet; + + private ExecuteType executeField; + + private bool executeFieldSet; + + private YesNoType impersonateField; + + private bool impersonateFieldSet; + + private YesNoType patchUninstallField; + + private bool patchUninstallFieldSet; + + private YesNoType win64Field; + + private bool win64FieldSet; + + private YesNoType terminalServerAwareField; + + private bool terminalServerAwareFieldSet; + + private YesNoType hideTargetField; + + private bool hideTargetFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the custom action. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains + /// the custom action for use during install. The custom action will not be installed into a target directory. This attribute is + /// typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand + /// attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes + /// to specify a type 5 or 6 custom action. + /// + public string BinaryKey + { + get + { + return this.binaryKeyField; + } + set + { + this.binaryKeyFieldSet = true; + this.binaryKeyField = value; + } + } + + /// + /// This attribute specifies a reference to a File element with matching Id attribute that + /// will execute the custom action code in the file after the file is installed. This + /// attribute is typically used with the ExeCommand attribute to specify a type 18 custom action + /// that runs an installed executable, with the DllEntry attribute to specify an installed custom + /// action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall + /// attributes to specify a type 21 or 22 custom action. + /// + public string FileKey + { + get + { + return this.fileKeyField; + } + set + { + this.fileKeyFieldSet = true; + this.fileKeyField = value; + } + } + + /// + /// This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property + /// to be used or updated on execution of this custom action. This attribute is + /// typically used with the Value attribute to create a type 51 custom action that parses + /// the text in Value and places it into the specified Property. This attribute is also used with + /// the ExeCommand attribute to create a type 50 custom action that uses the value of the + /// given property to specify the path to the executable. Type 51 custom actions are often useful to + /// pass values to a deferred custom action. + /// See + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + /// + /// This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. + /// This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34 + /// custom action, or with the Value attribute to specify a formatted string to place in the specified Directory + /// table entry in a type 35 custom action. + /// + public string Directory + { + get + { + return this.directoryField; + } + set + { + this.directoryFieldSet = true; + this.directoryField = value; + } + } + + /// + /// This attribute specifies the name of a function in a custom action to execute. + /// This attribute is used with the BinaryKey attribute to create a type 1 custom + /// action, or with the FileKey attribute to create a type 17 custom action. + /// + public string DllEntry + { + get + { + return this.dllEntryField; + } + set + { + this.dllEntryFieldSet = true; + this.dllEntryField = value; + } + } + + /// + /// This attribute specifies the command line parameters to supply to an externally + /// run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action, + /// the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action, + /// or the Directory attribute for a type 34 custom action that specify the executable to run. + /// + public string ExeCommand + { + get + { + return this.exeCommandField; + } + set + { + this.exeCommandFieldSet = true; + this.exeCommandField = value; + } + } + + /// + /// This attribute specifies the name of the JScript function to execute in a script. The script must be + /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this + /// attribute must be specified in conjunction with the BinaryKey attribute. + /// + public string JScriptCall + { + get + { + return this.jScriptCallField; + } + set + { + this.jScriptCallFieldSet = true; + this.jScriptCallField = value; + } + } + + /// + /// This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be + /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this + /// attribute must be specified in conjunction with the BinaryKey attribute. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public string VBScriptCall + { + get + { + return this.vBScriptCallField; + } + set + { + this.vBScriptCallFieldSet = true; + this.vBScriptCallField = value; + } + } + + /// + /// Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package. + /// + public ScriptType Script + { + get + { + return this.scriptField; + } + set + { + this.scriptFieldSet = true; + this.scriptField = value; + } + } + + /// + /// Use to suppress modularization of this custom action name in merge modules. + /// This should only be necessary for table-driven custom actions because the + /// table name which they interact with cannot be modularized, so there can only + /// be one instance of the table. + /// + public YesNoType SuppressModularization + { + get + { + return this.suppressModularizationField; + } + set + { + this.suppressModularizationFieldSet = true; + this.suppressModularizationField = value; + } + } + + /// + /// This attribute specifies a string value to use in the custom action. This attribute + /// must be used with the Property attribute to set the property as part of a + /// type 51 custom action or with the Directory attribute to set a directory path in that + /// table in a type 35 custom action. The value can be a literal value or derived from a + /// Property element using the + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// This attribute specifies an index in the MSI Error table to use as an error message for a + /// type 19 custom action that displays the error message and aborts a product's installation. + /// + public string Error + { + get + { + return this.errorField; + } + set + { + this.errorFieldSet = true; + this.errorField = value; + } + } + + /// + /// Set this attribute to set the return behavior of the custom action. + /// + public ReturnType Return + { + get + { + return this.returnField; + } + set + { + this.returnFieldSet = true; + this.returnField = value; + } + } + + /// + /// This attribute indicates the scheduling of the custom action. + /// + public ExecuteType Execute + { + get + { + return this.executeField; + } + set + { + this.executeFieldSet = true; + this.executeField = value; + } + } + + /// + /// This attribute specifies whether the Windows Installer, which executes as LocalSystem, + /// should impersonate the user context of the installing user when executing this custom action. + /// Typically the value should be 'yes', except when the custom action needs elevated privileges + /// to apply changes to the machine. + /// + public YesNoType Impersonate + { + get + { + return this.impersonateField; + } + set + { + this.impersonateFieldSet = true; + this.impersonateField = value; + } + } + + /// + /// This attribute specifies that the Windows Installer, execute the custom action only when + /// a patch is being uninstalled. These custom actions should also be conditioned using the + /// MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5) + /// behavior. + /// + public YesNoType PatchUninstall + { + get + { + return this.patchUninstallField; + } + set + { + this.patchUninstallFieldSet = true; + this.patchUninstallField = value; + } + } + + /// + /// Specifies that a script custom action targets a 64-bit platform. Valid only when used with + /// the Script, VBScriptCall, and JScriptCall attributes. + /// The default value is based on the platform set by the -arch switch to candle.exe + /// or the InstallerPlatform property in a .wixproj MSBuild project: + /// For x86 and ARM, the default value is 'no'. + /// For x64 and IA64, the default value is 'yes'. + /// + public YesNoType Win64 + { + get + { + return this.win64Field; + } + set + { + this.win64FieldSet = true; + this.win64Field = value; + } + } + + /// + /// This attribute specifies controls whether the custom action will impersonate the + /// installing user during per-machine installs on Terminal Server machines. + /// Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no', + /// will run with no user impersonation on Terminal Server machines during + /// per-machine installations. This attribute is only applicable when installing on the + /// Windows Server 2003 family. + /// + public YesNoType TerminalServerAware + { + get + { + return this.terminalServerAwareField; + } + set + { + this.terminalServerAwareFieldSet = true; + this.terminalServerAwareField = value; + } + } + + /// + /// Ensures the installer does not log the CustomActionData for the deferred custom action. + /// + public YesNoType HideTarget + { + get + { + return this.hideTargetField; + } + set + { + this.hideTargetFieldSet = true; + this.hideTargetField = value; + } + } + + /// + /// The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ScriptType from a string. + /// + public static ScriptType ParseScriptType(string value) + { + ScriptType parsedValue; + CustomAction.TryParseScriptType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ScriptType from a string. + /// + public static bool TryParseScriptType(string value, out ScriptType parsedValue) + { + parsedValue = ScriptType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("jscript" == value)) + { + parsedValue = ScriptType.jscript; + } + else + { + if (("vbscript" == value)) + { + parsedValue = ScriptType.vbscript; + } + else + { + parsedValue = ScriptType.IllegalValue; + return false; + } + } + return true; + } + + /// + /// Parses a ReturnType from a string. + /// + public static ReturnType ParseReturnType(string value) + { + ReturnType parsedValue; + CustomAction.TryParseReturnType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ReturnType from a string. + /// + public static bool TryParseReturnType(string value, out ReturnType parsedValue) + { + parsedValue = ReturnType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("asyncNoWait" == value)) + { + parsedValue = ReturnType.asyncNoWait; + } + else + { + if (("asyncWait" == value)) + { + parsedValue = ReturnType.asyncWait; + } + else + { + if (("check" == value)) + { + parsedValue = ReturnType.check; + } + else + { + if (("ignore" == value)) + { + parsedValue = ReturnType.ignore; + } + else + { + parsedValue = ReturnType.IllegalValue; + return false; + } + } + } + } + return true; + } + + /// + /// Parses a ExecuteType from a string. + /// + public static ExecuteType ParseExecuteType(string value) + { + ExecuteType parsedValue; + CustomAction.TryParseExecuteType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ExecuteType from a string. + /// + public static bool TryParseExecuteType(string value, out ExecuteType parsedValue) + { + parsedValue = ExecuteType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("commit" == value)) + { + parsedValue = ExecuteType.commit; + } + else + { + if (("deferred" == value)) + { + parsedValue = ExecuteType.deferred; + } + else + { + if (("firstSequence" == value)) + { + parsedValue = ExecuteType.firstSequence; + } + else + { + if (("immediate" == value)) + { + parsedValue = ExecuteType.immediate; + } + else + { + if (("oncePerProcess" == value)) + { + parsedValue = ExecuteType.oncePerProcess; + } + else + { + if (("rollback" == value)) + { + parsedValue = ExecuteType.rollback; + } + else + { + if (("secondSequence" == value)) + { + parsedValue = ExecuteType.secondSequence; + } + else + { + parsedValue = ExecuteType.IllegalValue; + return false; + } + } + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CustomAction", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.binaryKeyFieldSet) + { + writer.WriteAttributeString("BinaryKey", this.binaryKeyField); + } + if (this.fileKeyFieldSet) + { + writer.WriteAttributeString("FileKey", this.fileKeyField); + } + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + if (this.directoryFieldSet) + { + writer.WriteAttributeString("Directory", this.directoryField); + } + if (this.dllEntryFieldSet) + { + writer.WriteAttributeString("DllEntry", this.dllEntryField); + } + if (this.exeCommandFieldSet) + { + writer.WriteAttributeString("ExeCommand", this.exeCommandField); + } + if (this.jScriptCallFieldSet) + { + writer.WriteAttributeString("JScriptCall", this.jScriptCallField); + } + if (this.vBScriptCallFieldSet) + { + writer.WriteAttributeString("VBScriptCall", this.vBScriptCallField); + } + if (this.scriptFieldSet) + { + if ((this.scriptField == ScriptType.jscript)) + { + writer.WriteAttributeString("Script", "jscript"); + } + if ((this.scriptField == ScriptType.vbscript)) + { + writer.WriteAttributeString("Script", "vbscript"); + } + } + if (this.suppressModularizationFieldSet) + { + if ((this.suppressModularizationField == YesNoType.no)) + { + writer.WriteAttributeString("SuppressModularization", "no"); + } + if ((this.suppressModularizationField == YesNoType.yes)) + { + writer.WriteAttributeString("SuppressModularization", "yes"); + } + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.errorFieldSet) + { + writer.WriteAttributeString("Error", this.errorField); + } + if (this.returnFieldSet) + { + if ((this.returnField == ReturnType.asyncNoWait)) + { + writer.WriteAttributeString("Return", "asyncNoWait"); + } + if ((this.returnField == ReturnType.asyncWait)) + { + writer.WriteAttributeString("Return", "asyncWait"); + } + if ((this.returnField == ReturnType.check)) + { + writer.WriteAttributeString("Return", "check"); + } + if ((this.returnField == ReturnType.ignore)) + { + writer.WriteAttributeString("Return", "ignore"); + } + } + if (this.executeFieldSet) + { + if ((this.executeField == ExecuteType.commit)) + { + writer.WriteAttributeString("Execute", "commit"); + } + if ((this.executeField == ExecuteType.deferred)) + { + writer.WriteAttributeString("Execute", "deferred"); + } + if ((this.executeField == ExecuteType.firstSequence)) + { + writer.WriteAttributeString("Execute", "firstSequence"); + } + if ((this.executeField == ExecuteType.immediate)) + { + writer.WriteAttributeString("Execute", "immediate"); + } + if ((this.executeField == ExecuteType.oncePerProcess)) + { + writer.WriteAttributeString("Execute", "oncePerProcess"); + } + if ((this.executeField == ExecuteType.rollback)) + { + writer.WriteAttributeString("Execute", "rollback"); + } + if ((this.executeField == ExecuteType.secondSequence)) + { + writer.WriteAttributeString("Execute", "secondSequence"); + } + } + if (this.impersonateFieldSet) + { + if ((this.impersonateField == YesNoType.no)) + { + writer.WriteAttributeString("Impersonate", "no"); + } + if ((this.impersonateField == YesNoType.yes)) + { + writer.WriteAttributeString("Impersonate", "yes"); + } + } + if (this.patchUninstallFieldSet) + { + if ((this.patchUninstallField == YesNoType.no)) + { + writer.WriteAttributeString("PatchUninstall", "no"); + } + if ((this.patchUninstallField == YesNoType.yes)) + { + writer.WriteAttributeString("PatchUninstall", "yes"); + } + } + if (this.win64FieldSet) + { + if ((this.win64Field == YesNoType.no)) + { + writer.WriteAttributeString("Win64", "no"); + } + if ((this.win64Field == YesNoType.yes)) + { + writer.WriteAttributeString("Win64", "yes"); + } + } + if (this.terminalServerAwareFieldSet) + { + if ((this.terminalServerAwareField == YesNoType.no)) + { + writer.WriteAttributeString("TerminalServerAware", "no"); + } + if ((this.terminalServerAwareField == YesNoType.yes)) + { + writer.WriteAttributeString("TerminalServerAware", "yes"); + } + } + if (this.hideTargetFieldSet) + { + if ((this.hideTargetField == YesNoType.no)) + { + writer.WriteAttributeString("HideTarget", "no"); + } + if ((this.hideTargetField == YesNoType.yes)) + { + writer.WriteAttributeString("HideTarget", "yes"); + } + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("BinaryKey" == name)) + { + this.binaryKeyField = value; + this.binaryKeyFieldSet = true; + } + if (("FileKey" == name)) + { + this.fileKeyField = value; + this.fileKeyFieldSet = true; + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + if (("Directory" == name)) + { + this.directoryField = value; + this.directoryFieldSet = true; + } + if (("DllEntry" == name)) + { + this.dllEntryField = value; + this.dllEntryFieldSet = true; + } + if (("ExeCommand" == name)) + { + this.exeCommandField = value; + this.exeCommandFieldSet = true; + } + if (("JScriptCall" == name)) + { + this.jScriptCallField = value; + this.jScriptCallFieldSet = true; + } + if (("VBScriptCall" == name)) + { + this.vBScriptCallField = value; + this.vBScriptCallFieldSet = true; + } + if (("Script" == name)) + { + this.scriptField = CustomAction.ParseScriptType(value); + this.scriptFieldSet = true; + } + if (("SuppressModularization" == name)) + { + this.suppressModularizationField = Enums.ParseYesNoType(value); + this.suppressModularizationFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Error" == name)) + { + this.errorField = value; + this.errorFieldSet = true; + } + if (("Return" == name)) + { + this.returnField = CustomAction.ParseReturnType(value); + this.returnFieldSet = true; + } + if (("Execute" == name)) + { + this.executeField = CustomAction.ParseExecuteType(value); + this.executeFieldSet = true; + } + if (("Impersonate" == name)) + { + this.impersonateField = Enums.ParseYesNoType(value); + this.impersonateFieldSet = true; + } + if (("PatchUninstall" == name)) + { + this.patchUninstallField = Enums.ParseYesNoType(value); + this.patchUninstallFieldSet = true; + } + if (("Win64" == name)) + { + this.win64Field = Enums.ParseYesNoType(value); + this.win64FieldSet = true; + } + if (("TerminalServerAware" == name)) + { + this.terminalServerAwareField = Enums.ParseYesNoType(value); + this.terminalServerAwareFieldSet = true; + } + if (("HideTarget" == name)) + { + this.hideTargetField = Enums.ParseYesNoType(value); + this.hideTargetFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ScriptType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + jscript, + + vbscript, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ReturnType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Indicates that the custom action will run asyncronously and execution may continue after the installer terminates. + /// + asyncNoWait, + + /// + /// Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end. + /// + asyncWait, + + /// + /// Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default. + /// + check, + + /// + /// Indicates that the custom action will run synchronously and the return code will not be checked. + /// + ignore, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ExecuteType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Indicates that the custom action will run after successful completion of the installation script (at the end of the installation). + /// + commit, + + /// + /// Indicates that the custom action runs in-script (possibly with elevated privileges). + /// + deferred, + + /// + /// Indicates that the custom action will only run in the first sequence that runs it. + /// + firstSequence, + + /// + /// Indicates that the custom action will run during normal processing time with user privileges. This is the default. + /// + immediate, + + /// + /// Indicates that the custom action will only run in the first sequence that runs it in the same process. + /// + oncePerProcess, + + /// + /// Indicates that a custom action will run in the rollback sequence when a failure + /// occurs during installation, usually to undo changes made by a deferred custom action. + /// + rollback, + + /// + /// Indicates that a custom action should be run a second time if it was previously run in an earlier sequence. + /// + secondSequence, + } + } + + /// + /// This will cause the entire contents of the Fragment containing the referenced CustomAction to be + /// included in the installer database. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CustomActionRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the CustomAction to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CustomActionRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in + /// the InstallUISequence and InstallExecuteSequence. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SetDirectory : ISchemaElement, ISetAttributes + { + + private string actionField; + + private bool actionFieldSet; + + private string idField; + + private bool idFieldSet; + + private SequenceType sequenceField; + + private bool sequenceFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case + /// where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions). + /// + public string Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to + /// the Value attribute. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Controls which sequences the Directory assignment is sequenced in. + /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. + /// For 'ui', the assignment is scheduled in the InstallUISequence. + /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. + /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. + /// The default is 'both'. + /// + public SequenceType Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + /// + /// This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a + /// Property element using the + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SetDirectory", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.actionFieldSet) + { + writer.WriteAttributeString("Action", this.actionField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sequenceFieldSet) + { + if ((this.sequenceField == SequenceType.both)) + { + writer.WriteAttributeString("Sequence", "both"); + } + if ((this.sequenceField == SequenceType.first)) + { + writer.WriteAttributeString("Sequence", "first"); + } + if ((this.sequenceField == SequenceType.execute)) + { + writer.WriteAttributeString("Sequence", "execute"); + } + if ((this.sequenceField == SequenceType.ui)) + { + writer.WriteAttributeString("Sequence", "ui"); + } + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Action" == name)) + { + this.actionField = value; + this.actionFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Sequence" == name)) + { + this.sequenceField = Enums.ParseSequenceType(value); + this.sequenceFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in + /// the InstallUISequence and InstallExecuteSequence. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SetProperty : ISchemaElement, ISetAttributes + { + + private string actionField; + + private bool actionFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private string beforeField; + + private bool beforeFieldSet; + + private string idField; + + private bool idFieldSet; + + private SequenceType sequenceField; + + private bool sequenceFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case + /// where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions). + /// + public string Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property. + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property. + /// + public string Before + { + get + { + return this.beforeField; + } + set + { + this.beforeFieldSet = true; + this.beforeField = value; + } + } + + /// + /// This attribute specifies the Property to set to the Value. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Controls which sequences the Property assignment is sequenced in. + /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. + /// For 'ui', the assignment is scheduled in the InstallUISequence. + /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. + /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. + /// The default is 'both'. + /// + public SequenceType Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + /// + /// This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a + /// Property element using the + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SetProperty", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.actionFieldSet) + { + writer.WriteAttributeString("Action", this.actionField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.beforeFieldSet) + { + writer.WriteAttributeString("Before", this.beforeField); + } + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sequenceFieldSet) + { + if ((this.sequenceField == SequenceType.both)) + { + writer.WriteAttributeString("Sequence", "both"); + } + if ((this.sequenceField == SequenceType.first)) + { + writer.WriteAttributeString("Sequence", "first"); + } + if ((this.sequenceField == SequenceType.execute)) + { + writer.WriteAttributeString("Sequence", "execute"); + } + if ((this.sequenceField == SequenceType.ui)) + { + writer.WriteAttributeString("Sequence", "ui"); + } + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Action" == name)) + { + this.actionField = value; + this.actionFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("Before" == name)) + { + this.beforeField = value; + this.beforeFieldSet = true; + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Sequence" == name)) + { + this.sequenceField = Enums.ParseSequenceType(value); + this.sequenceFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// This will cause the entire contents of the Fragment containing the referenced PatchFamily to be + /// used in the process of creating a patch. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchFamilyRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string productCodeField; + + private bool productCodeFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the PatchFamily to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Specifies the ProductCode of the product that this family applies to. + /// + public string ProductCode + { + get + { + return this.productCodeField; + } + set + { + this.productCodeFieldSet = true; + this.productCodeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchFamilyRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.productCodeFieldSet) + { + writer.WriteAttributeString("ProductCode", this.productCodeField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("ProductCode" == name)) + { + this.productCodeField = value; + this.productCodeFieldSet = true; + } + } + } + + /// + /// Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ValidateProductID : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ValidateProductID", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CostInitialize : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CostInitialize", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FileCost : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FileCost", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class IsolateComponents : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("IsolateComponents", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CostFinalize : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CostFinalize", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SetODBCFolders : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SetODBCFolders", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MigrateFeatureStates : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MigrateFeatureStates", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Initiates the execution sequence. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ExecuteAction : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ExecuteAction", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallValidate : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallValidate", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallInitialize : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallInitialize", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AllocateRegistrySpace : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AllocateRegistrySpace", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ProcessComponents : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ProcessComponents", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnpublishComponents : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnpublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MsiUnpublishAssemblies : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MsiUnpublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnpublishFeatures : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnpublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Stops system services. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class StopServices : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("StopServices", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DeleteServices : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DeleteServices", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnregisterComPlus : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnregisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SelfUnregModules : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SelfUnregModules", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnregisterTypeLibraries : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnregisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveODBC : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveODBC", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnregisterFonts : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnregisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveRegistryValues : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnregisterClassInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnregisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnregisterExtensionInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnregisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnregisterProgIdInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnregisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UnregisterMIMEInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UnregisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveIniValues : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveIniValues", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveShortcuts : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveEnvironmentStrings : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveDuplicateFiles : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveDuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveFiles : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveFolders : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveFolders", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CreateFolders : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CreateFolders", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MoveFiles : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallAdminPackage : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallAdminPackage", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallFiles : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallFiles", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DuplicateFiles : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PatchFiles : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PatchFiles", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class BindImage : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("BindImage", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CreateShortcuts : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CreateShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterClassInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterExtensionInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterProgIdInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterMIMEInfo : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Sets up an application's registry information. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class WriteRegistryValues : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("WriteRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class WriteIniValues : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("WriteIniValues", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class WriteEnvironmentStrings : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("WriteEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers installed fonts with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterFonts : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallODBC : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallODBC", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers type libraries with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterTypeLibraries : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class SelfRegModules : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("SelfRegModules", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers COM+ applications. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterComPlus : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers a service for the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallServices : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallServices", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Starts system services. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class StartServices : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("StartServices", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterUser : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterUser", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Registers the product information with the installer. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RegisterProduct : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RegisterProduct", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PublishComponents : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MsiPublishAssemblies : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MsiPublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PublishFeatures : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class PublishProduct : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("PublishProduct", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallFinalize : ActionSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallFinalize", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AppSearch : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AppSearch", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CCPSearch : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RMCCPSearch : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RMCCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class LaunchConditions : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("LaunchConditions", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class FindRelatedProducts : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("FindRelatedProducts", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallExecute : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallExecute", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallExecuteAgain : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallExecuteAgain", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DisableRollback : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DisableRollback", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RemoveExistingProducts : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RemoveExistingProducts", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ScheduleReboot : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ScheduleReboot", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ForceReboot : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ForceReboot", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ResolveSource : ActionModuleSequenceType, ISchemaElement + { + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public override void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ResolveSource", "http://wixtoolset.org/schemas/v4/wxs"); + base.OutputXml(writer); + writer.WriteEndElement(); + } + } + + /// + /// Use to sequence a custom action. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Custom : ISchemaElement, ISetAttributes + { + + private string actionField; + + private bool actionFieldSet; + + private ExitType onExitField; + + private bool onExitFieldSet; + + private string beforeField; + + private bool beforeFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private YesNoType overridableField; + + private bool overridableFieldSet; + + private int sequenceField; + + private bool sequenceFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// The action to which the Custom element applies. + /// + public string Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// Mutually exclusive with Before, After, and Sequence attributes + /// + public ExitType OnExit + { + get + { + return this.onExitField; + } + set + { + this.onExitFieldSet = true; + this.onExitField = value; + } + } + + /// + /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes + /// + public string Before + { + get + { + return this.beforeField; + } + set + { + this.beforeFieldSet = true; + this.beforeField = value; + } + } + + /// + /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes + /// + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. + /// + public YesNoType Overridable + { + get + { + return this.overridableField; + } + set + { + this.overridableFieldSet = true; + this.overridableField = value; + } + } + + /// + /// The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes + /// + public int Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + /// + /// Text node specifies the condition of the action. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Custom", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.actionFieldSet) + { + writer.WriteAttributeString("Action", this.actionField); + } + if (this.onExitFieldSet) + { + if ((this.onExitField == ExitType.success)) + { + writer.WriteAttributeString("OnExit", "success"); + } + if ((this.onExitField == ExitType.cancel)) + { + writer.WriteAttributeString("OnExit", "cancel"); + } + if ((this.onExitField == ExitType.error)) + { + writer.WriteAttributeString("OnExit", "error"); + } + if ((this.onExitField == ExitType.suspend)) + { + writer.WriteAttributeString("OnExit", "suspend"); + } + } + if (this.beforeFieldSet) + { + writer.WriteAttributeString("Before", this.beforeField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.overridableFieldSet) + { + if ((this.overridableField == YesNoType.no)) + { + writer.WriteAttributeString("Overridable", "no"); + } + if ((this.overridableField == YesNoType.yes)) + { + writer.WriteAttributeString("Overridable", "yes"); + } + } + if (this.sequenceFieldSet) + { + writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Action" == name)) + { + this.actionField = value; + this.actionFieldSet = true; + } + if (("OnExit" == name)) + { + this.onExitField = Enums.ParseExitType(value); + this.onExitFieldSet = true; + } + if (("Before" == name)) + { + this.beforeField = value; + this.beforeFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("Overridable" == name)) + { + this.overridableField = Enums.ParseYesNoType(value); + this.overridableFieldSet = true; + } + if (("Sequence" == name)) + { + this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.sequenceFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Show : ISchemaElement, ISetAttributes + { + + private string dialogField; + + private bool dialogFieldSet; + + private ExitType onExitField; + + private bool onExitFieldSet; + + private string beforeField; + + private bool beforeFieldSet; + + private string afterField; + + private bool afterFieldSet; + + private YesNoType overridableField; + + private bool overridableFieldSet; + + private int sequenceField; + + private bool sequenceFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + public string Dialog + { + get + { + return this.dialogField; + } + set + { + this.dialogFieldSet = true; + this.dialogField = value; + } + } + + /// + /// mutually exclusive with Before, After, and Sequence attributes + /// + public ExitType OnExit + { + get + { + return this.onExitField; + } + set + { + this.onExitFieldSet = true; + this.onExitField = value; + } + } + + public string Before + { + get + { + return this.beforeField; + } + set + { + this.beforeFieldSet = true; + this.beforeField = value; + } + } + + public string After + { + get + { + return this.afterField; + } + set + { + this.afterFieldSet = true; + this.afterField = value; + } + } + + /// + /// If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. + /// + public YesNoType Overridable + { + get + { + return this.overridableField; + } + set + { + this.overridableFieldSet = true; + this.overridableField = value; + } + } + + public int Sequence + { + get + { + return this.sequenceField; + } + set + { + this.sequenceFieldSet = true; + this.sequenceField = value; + } + } + + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Show", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.dialogFieldSet) + { + writer.WriteAttributeString("Dialog", this.dialogField); + } + if (this.onExitFieldSet) + { + if ((this.onExitField == ExitType.success)) + { + writer.WriteAttributeString("OnExit", "success"); + } + if ((this.onExitField == ExitType.cancel)) + { + writer.WriteAttributeString("OnExit", "cancel"); + } + if ((this.onExitField == ExitType.error)) + { + writer.WriteAttributeString("OnExit", "error"); + } + if ((this.onExitField == ExitType.suspend)) + { + writer.WriteAttributeString("OnExit", "suspend"); + } + } + if (this.beforeFieldSet) + { + writer.WriteAttributeString("Before", this.beforeField); + } + if (this.afterFieldSet) + { + writer.WriteAttributeString("After", this.afterField); + } + if (this.overridableFieldSet) + { + if ((this.overridableField == YesNoType.no)) + { + writer.WriteAttributeString("Overridable", "no"); + } + if ((this.overridableField == YesNoType.yes)) + { + writer.WriteAttributeString("Overridable", "yes"); + } + } + if (this.sequenceFieldSet) + { + writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Dialog" == name)) + { + this.dialogField = value; + this.dialogFieldSet = true; + } + if (("OnExit" == name)) + { + this.onExitField = Enums.ParseExitType(value); + this.onExitFieldSet = true; + } + if (("Before" == name)) + { + this.beforeField = value; + this.beforeFieldSet = true; + } + if (("After" == name)) + { + this.afterField = value; + this.afterFieldSet = true; + } + if (("Overridable" == name)) + { + this.overridableField = Enums.ParseYesNoType(value); + this.overridableFieldSet = true; + } + if (("Sequence" == name)) + { + this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.sequenceFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public InstallUISequence() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Custom" == childName)) + { + childValue = new Custom(); + } + if (("Show" == childName)) + { + childValue = new Show(); + } + if (("ScheduleReboot" == childName)) + { + childValue = new ScheduleReboot(); + } + if (("LaunchConditions" == childName)) + { + childValue = new LaunchConditions(); + } + if (("FindRelatedProducts" == childName)) + { + childValue = new FindRelatedProducts(); + } + if (("AppSearch" == childName)) + { + childValue = new AppSearch(); + } + if (("CCPSearch" == childName)) + { + childValue = new CCPSearch(); + } + if (("RMCCPSearch" == childName)) + { + childValue = new RMCCPSearch(); + } + if (("ValidateProductID" == childName)) + { + childValue = new ValidateProductID(); + } + if (("CostInitialize" == childName)) + { + childValue = new CostInitialize(); + } + if (("FileCost" == childName)) + { + childValue = new FileCost(); + } + if (("IsolateComponents" == childName)) + { + childValue = new IsolateComponents(); + } + if (("ResolveSource" == childName)) + { + childValue = new ResolveSource(); + } + if (("CostFinalize" == childName)) + { + childValue = new CostFinalize(); + } + if (("MigrateFeatureStates" == childName)) + { + childValue = new MigrateFeatureStates(); + } + if (("ExecuteAction" == childName)) + { + childValue = new ExecuteAction(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallUISequence", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstallExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public InstallExecuteSequence() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ForceReboot))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetODBCFolders))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AllocateRegistrySpace))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProcessComponents))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishComponents))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishFeatures))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StopServices))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DeleteServices))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterComPlus))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfUnregModules))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterTypeLibraries))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveODBC))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterFonts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValues))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterClassInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterExtensionInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterProgIdInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterMIMEInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveIniValues))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveShortcuts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveEnvironmentStrings))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveDuplicateFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolders))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolders))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MoveFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DuplicateFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BindImage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteRegistryValues))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteIniValues))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteEnvironmentStrings))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterFonts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallODBC))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterTypeLibraries))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfRegModules))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterComPlus))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallServices))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StartServices))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterUser))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProduct))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveExistingProducts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DisableRollback))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecute))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecuteAgain))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiUnpublishAssemblies))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Custom" == childName)) + { + childValue = new Custom(); + } + if (("ScheduleReboot" == childName)) + { + childValue = new ScheduleReboot(); + } + if (("ForceReboot" == childName)) + { + childValue = new ForceReboot(); + } + if (("ResolveSource" == childName)) + { + childValue = new ResolveSource(); + } + if (("LaunchConditions" == childName)) + { + childValue = new LaunchConditions(); + } + if (("FindRelatedProducts" == childName)) + { + childValue = new FindRelatedProducts(); + } + if (("AppSearch" == childName)) + { + childValue = new AppSearch(); + } + if (("CCPSearch" == childName)) + { + childValue = new CCPSearch(); + } + if (("RMCCPSearch" == childName)) + { + childValue = new RMCCPSearch(); + } + if (("ValidateProductID" == childName)) + { + childValue = new ValidateProductID(); + } + if (("CostInitialize" == childName)) + { + childValue = new CostInitialize(); + } + if (("FileCost" == childName)) + { + childValue = new FileCost(); + } + if (("IsolateComponents" == childName)) + { + childValue = new IsolateComponents(); + } + if (("CostFinalize" == childName)) + { + childValue = new CostFinalize(); + } + if (("SetODBCFolders" == childName)) + { + childValue = new SetODBCFolders(); + } + if (("MigrateFeatureStates" == childName)) + { + childValue = new MigrateFeatureStates(); + } + if (("InstallValidate" == childName)) + { + childValue = new InstallValidate(); + } + if (("InstallInitialize" == childName)) + { + childValue = new InstallInitialize(); + } + if (("AllocateRegistrySpace" == childName)) + { + childValue = new AllocateRegistrySpace(); + } + if (("ProcessComponents" == childName)) + { + childValue = new ProcessComponents(); + } + if (("UnpublishComponents" == childName)) + { + childValue = new UnpublishComponents(); + } + if (("UnpublishFeatures" == childName)) + { + childValue = new UnpublishFeatures(); + } + if (("StopServices" == childName)) + { + childValue = new StopServices(); + } + if (("DeleteServices" == childName)) + { + childValue = new DeleteServices(); + } + if (("UnregisterComPlus" == childName)) + { + childValue = new UnregisterComPlus(); + } + if (("SelfUnregModules" == childName)) + { + childValue = new SelfUnregModules(); + } + if (("UnregisterTypeLibraries" == childName)) + { + childValue = new UnregisterTypeLibraries(); + } + if (("RemoveODBC" == childName)) + { + childValue = new RemoveODBC(); + } + if (("UnregisterFonts" == childName)) + { + childValue = new UnregisterFonts(); + } + if (("RemoveRegistryValues" == childName)) + { + childValue = new RemoveRegistryValues(); + } + if (("UnregisterClassInfo" == childName)) + { + childValue = new UnregisterClassInfo(); + } + if (("UnregisterExtensionInfo" == childName)) + { + childValue = new UnregisterExtensionInfo(); + } + if (("UnregisterProgIdInfo" == childName)) + { + childValue = new UnregisterProgIdInfo(); + } + if (("UnregisterMIMEInfo" == childName)) + { + childValue = new UnregisterMIMEInfo(); + } + if (("RemoveIniValues" == childName)) + { + childValue = new RemoveIniValues(); + } + if (("RemoveShortcuts" == childName)) + { + childValue = new RemoveShortcuts(); + } + if (("RemoveEnvironmentStrings" == childName)) + { + childValue = new RemoveEnvironmentStrings(); + } + if (("RemoveDuplicateFiles" == childName)) + { + childValue = new RemoveDuplicateFiles(); + } + if (("RemoveFiles" == childName)) + { + childValue = new RemoveFiles(); + } + if (("RemoveFolders" == childName)) + { + childValue = new RemoveFolders(); + } + if (("CreateFolders" == childName)) + { + childValue = new CreateFolders(); + } + if (("MoveFiles" == childName)) + { + childValue = new MoveFiles(); + } + if (("InstallFiles" == childName)) + { + childValue = new InstallFiles(); + } + if (("DuplicateFiles" == childName)) + { + childValue = new DuplicateFiles(); + } + if (("PatchFiles" == childName)) + { + childValue = new PatchFiles(); + } + if (("BindImage" == childName)) + { + childValue = new BindImage(); + } + if (("CreateShortcuts" == childName)) + { + childValue = new CreateShortcuts(); + } + if (("RegisterClassInfo" == childName)) + { + childValue = new RegisterClassInfo(); + } + if (("RegisterExtensionInfo" == childName)) + { + childValue = new RegisterExtensionInfo(); + } + if (("RegisterProgIdInfo" == childName)) + { + childValue = new RegisterProgIdInfo(); + } + if (("RegisterMIMEInfo" == childName)) + { + childValue = new RegisterMIMEInfo(); + } + if (("WriteRegistryValues" == childName)) + { + childValue = new WriteRegistryValues(); + } + if (("WriteIniValues" == childName)) + { + childValue = new WriteIniValues(); + } + if (("WriteEnvironmentStrings" == childName)) + { + childValue = new WriteEnvironmentStrings(); + } + if (("RegisterFonts" == childName)) + { + childValue = new RegisterFonts(); + } + if (("InstallODBC" == childName)) + { + childValue = new InstallODBC(); + } + if (("RegisterTypeLibraries" == childName)) + { + childValue = new RegisterTypeLibraries(); + } + if (("SelfRegModules" == childName)) + { + childValue = new SelfRegModules(); + } + if (("RegisterComPlus" == childName)) + { + childValue = new RegisterComPlus(); + } + if (("InstallServices" == childName)) + { + childValue = new InstallServices(); + } + if (("StartServices" == childName)) + { + childValue = new StartServices(); + } + if (("RegisterUser" == childName)) + { + childValue = new RegisterUser(); + } + if (("RegisterProduct" == childName)) + { + childValue = new RegisterProduct(); + } + if (("PublishComponents" == childName)) + { + childValue = new PublishComponents(); + } + if (("PublishFeatures" == childName)) + { + childValue = new PublishFeatures(); + } + if (("PublishProduct" == childName)) + { + childValue = new PublishProduct(); + } + if (("InstallFinalize" == childName)) + { + childValue = new InstallFinalize(); + } + if (("RemoveExistingProducts" == childName)) + { + childValue = new RemoveExistingProducts(); + } + if (("DisableRollback" == childName)) + { + childValue = new DisableRollback(); + } + if (("InstallExecute" == childName)) + { + childValue = new InstallExecute(); + } + if (("InstallExecuteAgain" == childName)) + { + childValue = new InstallExecuteAgain(); + } + if (("MsiPublishAssemblies" == childName)) + { + childValue = new MsiPublishAssemblies(); + } + if (("MsiUnpublishAssemblies" == childName)) + { + childValue = new MsiUnpublishAssemblies(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstallExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AdminUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public AdminUISequence() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Custom" == childName)) + { + childValue = new Custom(); + } + if (("Show" == childName)) + { + childValue = new Show(); + } + if (("CostInitialize" == childName)) + { + childValue = new CostInitialize(); + } + if (("FileCost" == childName)) + { + childValue = new FileCost(); + } + if (("CostFinalize" == childName)) + { + childValue = new CostFinalize(); + } + if (("ExecuteAction" == childName)) + { + childValue = new ExecuteAction(); + } + if (("InstallValidate" == childName)) + { + childValue = new InstallValidate(); + } + if (("InstallInitialize" == childName)) + { + childValue = new InstallInitialize(); + } + if (("InstallAdminPackage" == childName)) + { + childValue = new InstallAdminPackage(); + } + if (("InstallFiles" == childName)) + { + childValue = new InstallFiles(); + } + if (("InstallFinalize" == childName)) + { + childValue = new InstallFinalize(); + } + if (("LaunchConditions" == childName)) + { + childValue = new LaunchConditions(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AdminUISequence", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AdminExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public AdminExecuteSequence() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Custom" == childName)) + { + childValue = new Custom(); + } + if (("CostInitialize" == childName)) + { + childValue = new CostInitialize(); + } + if (("FileCost" == childName)) + { + childValue = new FileCost(); + } + if (("CostFinalize" == childName)) + { + childValue = new CostFinalize(); + } + if (("InstallValidate" == childName)) + { + childValue = new InstallValidate(); + } + if (("InstallInitialize" == childName)) + { + childValue = new InstallInitialize(); + } + if (("InstallAdminPackage" == childName)) + { + childValue = new InstallAdminPackage(); + } + if (("InstallFiles" == childName)) + { + childValue = new InstallFiles(); + } + if (("PatchFiles" == childName)) + { + childValue = new PatchFiles(); + } + if (("InstallFinalize" == childName)) + { + childValue = new InstallFinalize(); + } + if (("LaunchConditions" == childName)) + { + childValue = new LaunchConditions(); + } + if (("ResolveSource" == childName)) + { + childValue = new ResolveSource(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AdminExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class AdvertiseExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public AdvertiseExecuteSequence() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("CostInitialize" == childName)) + { + childValue = new CostInitialize(); + } + if (("CostFinalize" == childName)) + { + childValue = new CostFinalize(); + } + if (("Custom" == childName)) + { + childValue = new Custom(); + } + if (("InstallValidate" == childName)) + { + childValue = new InstallValidate(); + } + if (("InstallInitialize" == childName)) + { + childValue = new InstallInitialize(); + } + if (("CreateShortcuts" == childName)) + { + childValue = new CreateShortcuts(); + } + if (("RegisterClassInfo" == childName)) + { + childValue = new RegisterClassInfo(); + } + if (("RegisterExtensionInfo" == childName)) + { + childValue = new RegisterExtensionInfo(); + } + if (("RegisterMIMEInfo" == childName)) + { + childValue = new RegisterMIMEInfo(); + } + if (("RegisterProgIdInfo" == childName)) + { + childValue = new RegisterProgIdInfo(); + } + if (("PublishComponents" == childName)) + { + childValue = new PublishComponents(); + } + if (("PublishFeatures" == childName)) + { + childValue = new PublishFeatures(); + } + if (("PublishProduct" == childName)) + { + childValue = new PublishProduct(); + } + if (("InstallFinalize" == childName)) + { + childValue = new InstallFinalize(); + } + if (("MsiPublishAssemblies" == childName)) + { + childValue = new MsiPublishAssemblies(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("AdvertiseExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + /// + /// Binary data used for CustomAction elements and UI controls. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Binary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private YesNoType suppressModularizationField; + + private bool suppressModularizationFieldSet; + + private ISchemaElement parentElement; + + public Binary() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Path to the binary file. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + /// + /// Use to suppress modularization of this Binary identifier in merge modules. + /// + public YesNoType SuppressModularization + { + get + { + return this.suppressModularizationField; + } + set + { + this.suppressModularizationFieldSet = true; + this.suppressModularizationField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Binary", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + if (this.suppressModularizationFieldSet) + { + if ((this.suppressModularizationField == YesNoType.no)) + { + writer.WriteAttributeString("SuppressModularization", "no"); + } + if ((this.suppressModularizationField == YesNoType.yes)) + { + writer.WriteAttributeString("SuppressModularization", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + if (("SuppressModularization" == name)) + { + this.suppressModularizationField = Enums.ParseYesNoType(value); + this.suppressModularizationFieldSet = true; + } + } + } + + /// + /// Icon used for Shortcut, ProgId, or Class elements (but not UI controls) + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Icon : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private ISchemaElement parentElement; + + /// + /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Path to the icon file. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Icon", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class EmbeddedChainer : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string commandLineField; + + private bool commandLineFieldSet; + + private string binarySourceField; + + private bool binarySourceFieldSet; + + private string fileSourceField; + + private bool fileSourceFieldSet; + + private string propertySourceField; + + private bool propertySourceFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// Unique identifier for embedded chainer. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Value to append to the transaction handle and passed to the chainer executable. + /// + public string CommandLine + { + get + { + return this.commandLineField; + } + set + { + this.commandLineFieldSet = true; + this.commandLineField = value; + } + } + + /// + /// Reference to the Binary element that contains the chainer executable. Mutually exclusive with + /// the FileSource and PropertySource attributes. + /// + public string BinarySource + { + get + { + return this.binarySourceField; + } + set + { + this.binarySourceFieldSet = true; + this.binarySourceField = value; + } + } + + /// + /// Reference to the File element that is the chainer executable. Mutually exclusive with + /// the BinarySource and PropertySource attributes. + /// + public string FileSource + { + get + { + return this.fileSourceField; + } + set + { + this.fileSourceFieldSet = true; + this.fileSourceField = value; + } + } + + /// + /// Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with + /// the BinarySource and FileSource attributes. + /// + public string PropertySource + { + get + { + return this.propertySourceField; + } + set + { + this.propertySourceFieldSet = true; + this.propertySourceField = value; + } + } + + /// + /// Element value is the condition. CDATA may be used to when a condition contains many XML characters + /// that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition + /// to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer + /// that executes is undeterministic. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("EmbeddedChainer", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.commandLineFieldSet) + { + writer.WriteAttributeString("CommandLine", this.commandLineField); + } + if (this.binarySourceFieldSet) + { + writer.WriteAttributeString("BinarySource", this.binarySourceField); + } + if (this.fileSourceFieldSet) + { + writer.WriteAttributeString("FileSource", this.fileSourceField); + } + if (this.propertySourceFieldSet) + { + writer.WriteAttributeString("PropertySource", this.propertySourceField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("CommandLine" == name)) + { + this.commandLineField = value; + this.commandLineFieldSet = true; + } + if (("BinarySource" == name)) + { + this.binarySourceField = value; + this.binarySourceFieldSet = true; + } + if (("FileSource" == name)) + { + this.fileSourceField = value; + this.fileSourceFieldSet = true; + } + if (("PropertySource" == name)) + { + this.propertySourceField = value; + this.propertySourceFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents + /// to be included in the installer database. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class EmbeddedChainerRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("EmbeddedChainerRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Element value is the condition. Use CDATA if message contains delimiter characters. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class EmbeddedUI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private YesNoType ignoreFatalExitField; + + private bool ignoreFatalExitFieldSet; + + private YesNoType ignoreErrorField; + + private bool ignoreErrorFieldSet; + + private YesNoType ignoreWarningField; + + private bool ignoreWarningFieldSet; + + private YesNoType ignoreUserField; + + private bool ignoreUserFieldSet; + + private YesNoType ignoreInfoField; + + private bool ignoreInfoFieldSet; + + private YesNoType ignoreFilesInUseField; + + private bool ignoreFilesInUseFieldSet; + + private YesNoType ignoreResolveSourceField; + + private bool ignoreResolveSourceFieldSet; + + private YesNoType ignoreOutOfDiskSpaceField; + + private bool ignoreOutOfDiskSpaceFieldSet; + + private YesNoType ignoreActionStartField; + + private bool ignoreActionStartFieldSet; + + private YesNoType ignoreActionDataField; + + private bool ignoreActionDataFieldSet; + + private YesNoType ignoreProgressField; + + private bool ignoreProgressFieldSet; + + private YesNoType ignoreCommonDataField; + + private bool ignoreCommonDataFieldSet; + + private YesNoType ignoreInitializeField; + + private bool ignoreInitializeFieldSet; + + private YesNoType ignoreTerminateField; + + private bool ignoreTerminateFieldSet; + + private YesNoType ignoreShowDialogField; + + private bool ignoreShowDialogFieldSet; + + private YesNoType ignoreRMFilesInUseField; + + private bool ignoreRMFilesInUseFieldSet; + + private YesNoType ignoreInstallStartField; + + private bool ignoreInstallStartFieldSet; + + private YesNoType ignoreInstallEndField; + + private bool ignoreInstallEndFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private YesNoType supportBasicUIField; + + private bool supportBasicUIFieldSet; + + private ISchemaElement parentElement; + + public EmbeddedUI() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(EmbeddedUIResource))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name + /// portion of the SourceFile attribute will be used. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages. + /// + public YesNoType IgnoreFatalExit + { + get + { + return this.ignoreFatalExitField; + } + set + { + this.ignoreFatalExitFieldSet = true; + this.ignoreFatalExitField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages. + /// + public YesNoType IgnoreError + { + get + { + return this.ignoreErrorField; + } + set + { + this.ignoreErrorFieldSet = true; + this.ignoreErrorField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages. + /// + public YesNoType IgnoreWarning + { + get + { + return this.ignoreWarningField; + } + set + { + this.ignoreWarningFieldSet = true; + this.ignoreWarningField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_USER messages. + /// + public YesNoType IgnoreUser + { + get + { + return this.ignoreUserField; + } + set + { + this.ignoreUserFieldSet = true; + this.ignoreUserField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_INFO messages. + /// + public YesNoType IgnoreInfo + { + get + { + return this.ignoreInfoField; + } + set + { + this.ignoreInfoFieldSet = true; + this.ignoreInfoField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages. + /// + public YesNoType IgnoreFilesInUse + { + get + { + return this.ignoreFilesInUseField; + } + set + { + this.ignoreFilesInUseFieldSet = true; + this.ignoreFilesInUseField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages. + /// + public YesNoType IgnoreResolveSource + { + get + { + return this.ignoreResolveSourceField; + } + set + { + this.ignoreResolveSourceFieldSet = true; + this.ignoreResolveSourceField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages. + /// + public YesNoType IgnoreOutOfDiskSpace + { + get + { + return this.ignoreOutOfDiskSpaceField; + } + set + { + this.ignoreOutOfDiskSpaceFieldSet = true; + this.ignoreOutOfDiskSpaceField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages. + /// + public YesNoType IgnoreActionStart + { + get + { + return this.ignoreActionStartField; + } + set + { + this.ignoreActionStartFieldSet = true; + this.ignoreActionStartField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages. + /// + public YesNoType IgnoreActionData + { + get + { + return this.ignoreActionDataField; + } + set + { + this.ignoreActionDataFieldSet = true; + this.ignoreActionDataField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages. + /// + public YesNoType IgnoreProgress + { + get + { + return this.ignoreProgressField; + } + set + { + this.ignoreProgressFieldSet = true; + this.ignoreProgressField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages. + /// + public YesNoType IgnoreCommonData + { + get + { + return this.ignoreCommonDataField; + } + set + { + this.ignoreCommonDataFieldSet = true; + this.ignoreCommonDataField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages. + /// + public YesNoType IgnoreInitialize + { + get + { + return this.ignoreInitializeField; + } + set + { + this.ignoreInitializeFieldSet = true; + this.ignoreInitializeField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages. + /// + public YesNoType IgnoreTerminate + { + get + { + return this.ignoreTerminateField; + } + set + { + this.ignoreTerminateFieldSet = true; + this.ignoreTerminateField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages. + /// + public YesNoType IgnoreShowDialog + { + get + { + return this.ignoreShowDialogField; + } + set + { + this.ignoreShowDialogFieldSet = true; + this.ignoreShowDialogField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public YesNoType IgnoreRMFilesInUse + { + get + { + return this.ignoreRMFilesInUseField; + } + set + { + this.ignoreRMFilesInUseFieldSet = true; + this.ignoreRMFilesInUseField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages. + /// + public YesNoType IgnoreInstallStart + { + get + { + return this.ignoreInstallStartField; + } + set + { + this.ignoreInstallStartFieldSet = true; + this.ignoreInstallStartField = value; + } + } + + /// + /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages. + /// + public YesNoType IgnoreInstallEnd + { + get + { + return this.ignoreInstallEndField; + } + set + { + this.ignoreInstallEndFieldSet = true; + this.ignoreInstallEndField = value; + } + } + + /// + /// The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer + /// does not support the typical short filename and long filename combination for embedded UI files as it + /// does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile + /// attribute will be used. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Path to the binary file that is the embedded UI. This must be a DLL that exports the following + /// three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + /// + /// Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation. + /// + public YesNoType SupportBasicUI + { + get + { + return this.supportBasicUIField; + } + set + { + this.supportBasicUIFieldSet = true; + this.supportBasicUIField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("EmbeddedUIResource" == childName)) + { + childValue = new EmbeddedUIResource(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("EmbeddedUI", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.ignoreFatalExitFieldSet) + { + if ((this.ignoreFatalExitField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreFatalExit", "no"); + } + if ((this.ignoreFatalExitField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreFatalExit", "yes"); + } + } + if (this.ignoreErrorFieldSet) + { + if ((this.ignoreErrorField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreError", "no"); + } + if ((this.ignoreErrorField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreError", "yes"); + } + } + if (this.ignoreWarningFieldSet) + { + if ((this.ignoreWarningField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreWarning", "no"); + } + if ((this.ignoreWarningField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreWarning", "yes"); + } + } + if (this.ignoreUserFieldSet) + { + if ((this.ignoreUserField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreUser", "no"); + } + if ((this.ignoreUserField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreUser", "yes"); + } + } + if (this.ignoreInfoFieldSet) + { + if ((this.ignoreInfoField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreInfo", "no"); + } + if ((this.ignoreInfoField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreInfo", "yes"); + } + } + if (this.ignoreFilesInUseFieldSet) + { + if ((this.ignoreFilesInUseField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreFilesInUse", "no"); + } + if ((this.ignoreFilesInUseField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreFilesInUse", "yes"); + } + } + if (this.ignoreResolveSourceFieldSet) + { + if ((this.ignoreResolveSourceField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreResolveSource", "no"); + } + if ((this.ignoreResolveSourceField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreResolveSource", "yes"); + } + } + if (this.ignoreOutOfDiskSpaceFieldSet) + { + if ((this.ignoreOutOfDiskSpaceField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreOutOfDiskSpace", "no"); + } + if ((this.ignoreOutOfDiskSpaceField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreOutOfDiskSpace", "yes"); + } + } + if (this.ignoreActionStartFieldSet) + { + if ((this.ignoreActionStartField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreActionStart", "no"); + } + if ((this.ignoreActionStartField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreActionStart", "yes"); + } + } + if (this.ignoreActionDataFieldSet) + { + if ((this.ignoreActionDataField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreActionData", "no"); + } + if ((this.ignoreActionDataField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreActionData", "yes"); + } + } + if (this.ignoreProgressFieldSet) + { + if ((this.ignoreProgressField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreProgress", "no"); + } + if ((this.ignoreProgressField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreProgress", "yes"); + } + } + if (this.ignoreCommonDataFieldSet) + { + if ((this.ignoreCommonDataField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreCommonData", "no"); + } + if ((this.ignoreCommonDataField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreCommonData", "yes"); + } + } + if (this.ignoreInitializeFieldSet) + { + if ((this.ignoreInitializeField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreInitialize", "no"); + } + if ((this.ignoreInitializeField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreInitialize", "yes"); + } + } + if (this.ignoreTerminateFieldSet) + { + if ((this.ignoreTerminateField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreTerminate", "no"); + } + if ((this.ignoreTerminateField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreTerminate", "yes"); + } + } + if (this.ignoreShowDialogFieldSet) + { + if ((this.ignoreShowDialogField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreShowDialog", "no"); + } + if ((this.ignoreShowDialogField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreShowDialog", "yes"); + } + } + if (this.ignoreRMFilesInUseFieldSet) + { + if ((this.ignoreRMFilesInUseField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreRMFilesInUse", "no"); + } + if ((this.ignoreRMFilesInUseField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreRMFilesInUse", "yes"); + } + } + if (this.ignoreInstallStartFieldSet) + { + if ((this.ignoreInstallStartField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreInstallStart", "no"); + } + if ((this.ignoreInstallStartField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreInstallStart", "yes"); + } + } + if (this.ignoreInstallEndFieldSet) + { + if ((this.ignoreInstallEndField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreInstallEnd", "no"); + } + if ((this.ignoreInstallEndField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreInstallEnd", "yes"); + } + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.supportBasicUIFieldSet) + { + if ((this.supportBasicUIField == YesNoType.no)) + { + writer.WriteAttributeString("SupportBasicUI", "no"); + } + if ((this.supportBasicUIField == YesNoType.yes)) + { + writer.WriteAttributeString("SupportBasicUI", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("IgnoreFatalExit" == name)) + { + this.ignoreFatalExitField = Enums.ParseYesNoType(value); + this.ignoreFatalExitFieldSet = true; + } + if (("IgnoreError" == name)) + { + this.ignoreErrorField = Enums.ParseYesNoType(value); + this.ignoreErrorFieldSet = true; + } + if (("IgnoreWarning" == name)) + { + this.ignoreWarningField = Enums.ParseYesNoType(value); + this.ignoreWarningFieldSet = true; + } + if (("IgnoreUser" == name)) + { + this.ignoreUserField = Enums.ParseYesNoType(value); + this.ignoreUserFieldSet = true; + } + if (("IgnoreInfo" == name)) + { + this.ignoreInfoField = Enums.ParseYesNoType(value); + this.ignoreInfoFieldSet = true; + } + if (("IgnoreFilesInUse" == name)) + { + this.ignoreFilesInUseField = Enums.ParseYesNoType(value); + this.ignoreFilesInUseFieldSet = true; + } + if (("IgnoreResolveSource" == name)) + { + this.ignoreResolveSourceField = Enums.ParseYesNoType(value); + this.ignoreResolveSourceFieldSet = true; + } + if (("IgnoreOutOfDiskSpace" == name)) + { + this.ignoreOutOfDiskSpaceField = Enums.ParseYesNoType(value); + this.ignoreOutOfDiskSpaceFieldSet = true; + } + if (("IgnoreActionStart" == name)) + { + this.ignoreActionStartField = Enums.ParseYesNoType(value); + this.ignoreActionStartFieldSet = true; + } + if (("IgnoreActionData" == name)) + { + this.ignoreActionDataField = Enums.ParseYesNoType(value); + this.ignoreActionDataFieldSet = true; + } + if (("IgnoreProgress" == name)) + { + this.ignoreProgressField = Enums.ParseYesNoType(value); + this.ignoreProgressFieldSet = true; + } + if (("IgnoreCommonData" == name)) + { + this.ignoreCommonDataField = Enums.ParseYesNoType(value); + this.ignoreCommonDataFieldSet = true; + } + if (("IgnoreInitialize" == name)) + { + this.ignoreInitializeField = Enums.ParseYesNoType(value); + this.ignoreInitializeFieldSet = true; + } + if (("IgnoreTerminate" == name)) + { + this.ignoreTerminateField = Enums.ParseYesNoType(value); + this.ignoreTerminateFieldSet = true; + } + if (("IgnoreShowDialog" == name)) + { + this.ignoreShowDialogField = Enums.ParseYesNoType(value); + this.ignoreShowDialogFieldSet = true; + } + if (("IgnoreRMFilesInUse" == name)) + { + this.ignoreRMFilesInUseField = Enums.ParseYesNoType(value); + this.ignoreRMFilesInUseFieldSet = true; + } + if (("IgnoreInstallStart" == name)) + { + this.ignoreInstallStartField = Enums.ParseYesNoType(value); + this.ignoreInstallStartFieldSet = true; + } + if (("IgnoreInstallEnd" == name)) + { + this.ignoreInstallEndField = Enums.ParseYesNoType(value); + this.ignoreInstallEndFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("SupportBasicUI" == name)) + { + this.supportBasicUIField = Enums.ParseYesNoType(value); + this.supportBasicUIFieldSet = true; + } + } + } + + /// + /// Defines a resource for use by the embedded UI. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class EmbeddedUIResource : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string nameField; + + private bool nameFieldSet; + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier for the embedded UI resource. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows + /// Installer does not support the typical short filename and long filename combination for embedded UI files + /// as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used. + /// + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameFieldSet = true; + this.nameField = value; + } + } + + /// + /// Path to the binary file that is the embedded UI resource. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("EmbeddedUIResource", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.nameFieldSet) + { + writer.WriteAttributeString("Name", this.nameField); + } + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Name" == name)) + { + this.nameField = value; + this.nameFieldSet = true; + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Error : ISchemaElement, ISetAttributes + { + + private int idField; + + private bool idFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// Number of the error for which a message is being provided. See MSI SDK for error definitions. + /// + public int Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Element value is Message, use CDATA if message contains delimiter characters + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Error", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField.ToString(CultureInfo.InvariantCulture)); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.idFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Publish : ISchemaElement, ISetAttributes + { + + private string controlField; + + private bool controlFieldSet; + + private string dialogField; + + private bool dialogFieldSet; + + private string eventField; + + private bool eventFieldSet; + + private string orderField; + + private bool orderFieldSet; + + private string propertyField; + + private bool propertyFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// The parent Control for this Publish element, should only be specified when this element is a child of the UI element. + /// + public string Control + { + get + { + return this.controlField; + } + set + { + this.controlFieldSet = true; + this.controlField = value; + } + } + + /// + /// The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element. + /// This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary. + /// + public string Dialog + { + get + { + return this.dialogField; + } + set + { + this.dialogFieldSet = true; + this.dialogField = value; + } + } + + /// + /// Set this attribute's value to one of the standard control events to trigger that event. + /// Either this attribute or the Property attribute must be set, but not both at the same time. + /// + public string Event + { + get + { + return this.eventField; + } + set + { + this.eventFieldSet = true; + this.eventField = value; + } + } + + /// + /// This attribute should only need to be set if this element is nested under a UI element in order to + /// control the order in which this publish event will be started. + /// If this element is nested under a Control element, the default value will be one greater than any + /// previous Publish element's order (the first element's default value is 1). + /// If this element is nested under a UI element, the default value is always 1 (it does not get a + /// default value based on any previous Publish elements). + /// + public string Order + { + get + { + return this.orderField; + } + set + { + this.orderFieldSet = true; + this.orderField = value; + } + } + + /// + /// Set this attribute's value to a property name to set that property. + /// Either this attribute or the Event attribute must be set, but not both at the same time. + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + /// + /// If the Property attribute is specified, set the value of this attribute to the new value for the property. + /// To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}'). + /// Otherwise, this attribute's value should be the argument for the event specified in the Event attribute. + /// If the event doesn't take an attribute, a common value to use is "0". + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// The element value is the optional Condition expression. + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Publish", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.controlFieldSet) + { + writer.WriteAttributeString("Control", this.controlField); + } + if (this.dialogFieldSet) + { + writer.WriteAttributeString("Dialog", this.dialogField); + } + if (this.eventFieldSet) + { + writer.WriteAttributeString("Event", this.eventField); + } + if (this.orderFieldSet) + { + writer.WriteAttributeString("Order", this.orderField); + } + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Control" == name)) + { + this.controlField = value; + this.controlFieldSet = true; + } + if (("Dialog" == name)) + { + this.dialogField = value; + this.dialogFieldSet = true; + } + if (("Event" == name)) + { + this.eventField = value; + this.eventFieldSet = true; + } + if (("Order" == name)) + { + this.orderField = value; + this.orderFieldSet = true; + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// Sets attributes for events in the EventMapping table + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Subscribe : ISchemaElement, ISetAttributes + { + + private string eventField; + + private bool eventFieldSet; + + private string attributeField; + + private bool attributeFieldSet; + + private ISchemaElement parentElement; + + /// + /// must be one of the standard control events' + /// + public string Event + { + get + { + return this.eventField; + } + set + { + this.eventFieldSet = true; + this.eventField = value; + } + } + + /// + /// if not present can only handle enable, disable, hide, unhide events + /// + public string Attribute + { + get + { + return this.attributeField; + } + set + { + this.attributeFieldSet = true; + this.attributeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Subscribe", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.eventFieldSet) + { + writer.WriteAttributeString("Event", this.eventField); + } + if (this.attributeFieldSet) + { + writer.WriteAttributeString("Attribute", this.attributeField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Event" == name)) + { + this.eventField = value; + this.eventFieldSet = true; + } + if (("Attribute" == name)) + { + this.attributeField = value; + this.attributeFieldSet = true; + } + } + } + + /// + /// An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Text : ISchemaElement, ISetAttributes + { + + private string sourceFileField; + + private bool sourceFileFieldSet; + + private string srcField; + + private bool srcFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// Instructs the text to be imported from a file instead of the element value during the binding process. + /// + public string SourceFile + { + get + { + return this.sourceFileField; + } + set + { + this.sourceFileFieldSet = true; + this.sourceFileField = value; + } + } + + [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] + public string src + { + get + { + return this.srcField; + } + set + { + this.srcFieldSet = true; + this.srcField = value; + } + } + + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Text", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.sourceFileFieldSet) + { + writer.WriteAttributeString("SourceFile", this.sourceFileField); + } + if (this.srcFieldSet) + { + writer.WriteAttributeString("src", this.srcField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("SourceFile" == name)) + { + this.sourceFileField = value; + this.sourceFileFieldSet = true; + } + if (("src" == name)) + { + this.srcField = value; + this.srcFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// Contains the controls that appear on each dialog. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Control : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string typeField; + + private bool typeFieldSet; + + private string xField; + + private bool xFieldSet; + + private string yField; + + private bool yFieldSet; + + private string widthField; + + private bool widthFieldSet; + + private string heightField; + + private bool heightFieldSet; + + private string propertyField; + + private bool propertyFieldSet; + + private string textField; + + private bool textFieldSet; + + private string helpField; + + private bool helpFieldSet; + + private string toolTipField; + + private bool toolTipFieldSet; + + private string checkBoxValueField; + + private bool checkBoxValueFieldSet; + + private string checkBoxPropertyRefField; + + private bool checkBoxPropertyRefFieldSet; + + private YesNoType tabSkipField; + + private bool tabSkipFieldSet; + + private YesNoType defaultField; + + private bool defaultFieldSet; + + private YesNoType cancelField; + + private bool cancelFieldSet; + + private YesNoType hiddenField; + + private bool hiddenFieldSet; + + private YesNoType disabledField; + + private bool disabledFieldSet; + + private YesNoType sunkenField; + + private bool sunkenFieldSet; + + private YesNoType indirectField; + + private bool indirectFieldSet; + + private YesNoType integerField; + + private bool integerFieldSet; + + private YesNoType rightToLeftField; + + private bool rightToLeftFieldSet; + + private YesNoType rightAlignedField; + + private bool rightAlignedFieldSet; + + private YesNoType leftScrollField; + + private bool leftScrollFieldSet; + + private YesNoType transparentField; + + private bool transparentFieldSet; + + private YesNoType noPrefixField; + + private bool noPrefixFieldSet; + + private YesNoType noWrapField; + + private bool noWrapFieldSet; + + private YesNoType formatSizeField; + + private bool formatSizeFieldSet; + + private YesNoType userLanguageField; + + private bool userLanguageFieldSet; + + private YesNoType multilineField; + + private bool multilineFieldSet; + + private YesNoType passwordField; + + private bool passwordFieldSet; + + private YesNoType progressBlocksField; + + private bool progressBlocksFieldSet; + + private YesNoType removableField; + + private bool removableFieldSet; + + private YesNoType fixedField; + + private bool fixedFieldSet; + + private YesNoType remoteField; + + private bool remoteFieldSet; + + private YesNoType cDROMField; + + private bool cDROMFieldSet; + + private YesNoType rAMDiskField; + + private bool rAMDiskFieldSet; + + private YesNoType floppyField; + + private bool floppyFieldSet; + + private YesNoType showRollbackCostField; + + private bool showRollbackCostFieldSet; + + private YesNoType sortedField; + + private bool sortedFieldSet; + + private YesNoType comboListField; + + private bool comboListFieldSet; + + private YesNoType imageField; + + private bool imageFieldSet; + + private IconSizeType iconSizeField; + + private bool iconSizeFieldSet; + + private YesNoType fixedSizeField; + + private bool fixedSizeFieldSet; + + private YesNoType iconField; + + private bool iconFieldSet; + + private YesNoType bitmapField; + + private bool bitmapFieldSet; + + private YesNoType pushLikeField; + + private bool pushLikeFieldSet; + + private YesNoType hasBorderField; + + private bool hasBorderFieldSet; + + private YesNoType elevationShieldField; + + private bool elevationShieldFieldSet; + + private ISchemaElement parentElement; + + public Control() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Text))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ComboBox))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListBox))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListView))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButtonGroup))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Binary))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); + childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Subscribe))); + childCollection0.AddCollection(childCollection1); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Combined with the Dialog Id to make up the primary key of the Control table. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo + /// + public string Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + /// + /// Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. + /// + public string X + { + get + { + return this.xField; + } + set + { + this.xFieldSet = true; + this.xField = value; + } + } + + /// + /// Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. + /// + public string Y + { + get + { + return this.yField; + } + set + { + this.yFieldSet = true; + this.yField = value; + } + } + + /// + /// Width of the rectangular boundary of the control. This must be a non-negative number. + /// + public string Width + { + get + { + return this.widthField; + } + set + { + this.widthFieldSet = true; + this.widthField = value; + } + } + + /// + /// Height of the rectangular boundary of the control. This must be a non-negative number. + /// + public string Height + { + get + { + return this.heightField; + } + set + { + this.heightFieldSet = true; + this.heightField = value; + } + } + + /// + /// The name of a defined property to be linked to this control. This column is required for active controls. + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + /// + /// A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see + /// + public string Text + { + get + { + return this.textField; + } + set + { + this.textFieldSet = true; + this.textField = value; + } + } + + /// + /// This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something. + /// + public string Help + { + get + { + return this.helpField; + } + set + { + this.helpFieldSet = true; + this.helpField = value; + } + } + + /// + /// The string used for the Tooltip. + /// + public string ToolTip + { + get + { + return this.toolTipField; + } + set + { + this.toolTipFieldSet = true; + this.toolTipField = value; + } + } + + /// + /// This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked. + /// + public string CheckBoxValue + { + get + { + return this.checkBoxValueField; + } + set + { + this.checkBoxValueFieldSet = true; + this.checkBoxValueField = value; + } + } + + /// + /// This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property. + /// + public string CheckBoxPropertyRef + { + get + { + return this.checkBoxPropertyRefField; + } + set + { + this.checkBoxPropertyRefFieldSet = true; + this.checkBoxPropertyRefField = value; + } + } + + /// + /// Set this attribute to "yes" to cause this Control to be skipped in the tab sequence. + /// + public YesNoType TabSkip + { + get + { + return this.tabSkipField; + } + set + { + this.tabSkipFieldSet = true; + this.tabSkipField = value; + } + } + + /// + /// Set this attribute to "yes" to cause this Control to be invoked by the return key. + /// + public YesNoType Default + { + get + { + return this.defaultField; + } + set + { + this.defaultFieldSet = true; + this.defaultField = value; + } + } + + /// + /// Set this attribute to "yes" to cause this Control to be invoked by the escape key. + /// + public YesNoType Cancel + { + get + { + return this.cancelField; + } + set + { + this.cancelFieldSet = true; + this.cancelField = value; + } + } + + /// + /// Set this attribute to "yes" to cause the Control to be hidden. + /// + public YesNoType Hidden + { + get + { + return this.hiddenField; + } + set + { + this.hiddenFieldSet = true; + this.hiddenField = value; + } + } + + /// + /// Set this attribute to "yes" to cause the Control to be disabled. + /// + public YesNoType Disabled + { + get + { + return this.disabledField; + } + set + { + this.disabledFieldSet = true; + this.disabledField = value; + } + } + + /// + /// Set this attribute to "yes" to cause the Control to be sunken. + /// + public YesNoType Sunken + { + get + { + return this.sunkenField; + } + set + { + this.sunkenFieldSet = true; + this.sunkenField = value; + } + } + + /// + /// Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table. + /// + public YesNoType Indirect + { + get + { + return this.indirectField; + } + set + { + this.indirectFieldSet = true; + this.indirectField = value; + } + } + + /// + /// Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string. + /// + public YesNoType Integer + { + get + { + return this.integerField; + } + set + { + this.integerFieldSet = true; + this.integerField = value; + } + } + + /// + /// Set this attribute to "yes" to cause the Control to display from right to left. + /// + public YesNoType RightToLeft + { + get + { + return this.rightToLeftField; + } + set + { + this.rightToLeftFieldSet = true; + this.rightToLeftField = value; + } + } + + /// + /// Set this attribute to "yes" to cause the Control to be right aligned. + /// + public YesNoType RightAligned + { + get + { + return this.rightAlignedField; + } + set + { + this.rightAlignedFieldSet = true; + this.rightAlignedField = value; + } + } + + /// + /// Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. + /// + public YesNoType LeftScroll + { + get + { + return this.leftScrollField; + } + set + { + this.leftScrollFieldSet = true; + this.leftScrollField = value; + } + } + + /// + /// This attribute is only valid for Text Controls. + /// + public YesNoType Transparent + { + get + { + return this.transparentField; + } + set + { + this.transparentFieldSet = true; + this.transparentField = value; + } + } + + /// + /// This attribute is only valid for Text Controls. + /// + public YesNoType NoPrefix + { + get + { + return this.noPrefixField; + } + set + { + this.noPrefixFieldSet = true; + this.noPrefixField = value; + } + } + + /// + /// This attribute is only valid for Text Controls. + /// + public YesNoType NoWrap + { + get + { + return this.noWrapField; + } + set + { + this.noWrapFieldSet = true; + this.noWrapField = value; + } + } + + /// + /// This attribute is only valid for Text Controls. + /// + public YesNoType FormatSize + { + get + { + return this.formatSizeField; + } + set + { + this.formatSizeFieldSet = true; + this.formatSizeField = value; + } + } + + /// + /// This attribute is only valid for Text Controls. + /// + public YesNoType UserLanguage + { + get + { + return this.userLanguageField; + } + set + { + this.userLanguageFieldSet = true; + this.userLanguageField = value; + } + } + + /// + /// This attribute is only valid for Edit Controls. + /// + public YesNoType Multiline + { + get + { + return this.multilineField; + } + set + { + this.multilineFieldSet = true; + this.multilineField = value; + } + } + + /// + /// This attribute is only valid for Edit Controls. + /// + public YesNoType Password + { + get + { + return this.passwordField; + } + set + { + this.passwordFieldSet = true; + this.passwordField = value; + } + } + + /// + /// This attribute is only valid for ProgressBar Controls. + /// + public YesNoType ProgressBlocks + { + get + { + return this.progressBlocksField; + } + set + { + this.progressBlocksFieldSet = true; + this.progressBlocksField = value; + } + } + + /// + /// This attribute is only valid for Volume and Directory Controls. + /// + public YesNoType Removable + { + get + { + return this.removableField; + } + set + { + this.removableFieldSet = true; + this.removableField = value; + } + } + + /// + /// This attribute is only valid for Volume and Directory Controls. + /// + public YesNoType Fixed + { + get + { + return this.fixedField; + } + set + { + this.fixedFieldSet = true; + this.fixedField = value; + } + } + + /// + /// This attribute is only valid for Volume and Directory Controls. + /// + public YesNoType Remote + { + get + { + return this.remoteField; + } + set + { + this.remoteFieldSet = true; + this.remoteField = value; + } + } + + /// + /// This attribute is only valid for Volume and Directory Controls. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public YesNoType CDROM + { + get + { + return this.cDROMField; + } + set + { + this.cDROMFieldSet = true; + this.cDROMField = value; + } + } + + /// + /// This attribute is only valid for Volume and Directory Controls. + /// + [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] + public YesNoType RAMDisk + { + get + { + return this.rAMDiskField; + } + set + { + this.rAMDiskFieldSet = true; + this.rAMDiskField = value; + } + } + + /// + /// This attribute is only valid for Volume and Directory Controls. + /// + public YesNoType Floppy + { + get + { + return this.floppyField; + } + set + { + this.floppyFieldSet = true; + this.floppyField = value; + } + } + + /// + /// This attribute is only valid for VolumeCostList Controls. + /// + public YesNoType ShowRollbackCost + { + get + { + return this.showRollbackCostField; + } + set + { + this.showRollbackCostFieldSet = true; + this.showRollbackCostField = value; + } + } + + /// + /// This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set + /// the value of this attribute to "yes" to have entries appear in the order specified under the Control. + /// If the attribute value is "no" or absent the entries in the control will appear in alphabetical order. + /// + public YesNoType Sorted + { + get + { + return this.sortedField; + } + set + { + this.sortedFieldSet = true; + this.sortedField = value; + } + } + + /// + /// This attribute is only valid for ComboBox Controls. + /// + public YesNoType ComboList + { + get + { + return this.comboListField; + } + set + { + this.comboListFieldSet = true; + this.comboListField = value; + } + } + + /// + /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. + /// + public YesNoType Image + { + get + { + return this.imageField; + } + set + { + this.imageFieldSet = true; + this.imageField = value; + } + } + + /// + /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. + /// + public IconSizeType IconSize + { + get + { + return this.iconSizeField; + } + set + { + this.iconSizeFieldSet = true; + this.iconSizeField = value; + } + } + + /// + /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. + /// + public YesNoType FixedSize + { + get + { + return this.fixedSizeField; + } + set + { + this.fixedSizeFieldSet = true; + this.fixedSizeField = value; + } + } + + /// + /// This attribute is only valid for RadioButton and PushButton Controls. + /// + public YesNoType Icon + { + get + { + return this.iconField; + } + set + { + this.iconFieldSet = true; + this.iconField = value; + } + } + + /// + /// This attribute is only valid for RadioButton and PushButton Controls. + /// + public YesNoType Bitmap + { + get + { + return this.bitmapField; + } + set + { + this.bitmapFieldSet = true; + this.bitmapField = value; + } + } + + /// + /// This attribute is only valid for RadioButton and Checkbox Controls. + /// + public YesNoType PushLike + { + get + { + return this.pushLikeField; + } + set + { + this.pushLikeFieldSet = true; + this.pushLikeField = value; + } + } + + /// + /// This attribute is only valid for RadioButton Controls. + /// + public YesNoType HasBorder + { + get + { + return this.hasBorderField; + } + set + { + this.hasBorderFieldSet = true; + this.hasBorderField = value; + } + } + + /// + /// This attribute is only valid for PushButton controls. + /// Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control. + /// If this attribute's value is "yes" and the installation is not yet running with elevated privileges, + /// the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon). + /// If this attribute's value is "yes" and the installation is already running with elevated privileges, + /// the pushbutton control is created using the other icon attributes. + /// Otherwise, the pushbutton control is created using the other icon attributes. + /// + public YesNoType ElevationShield + { + get + { + return this.elevationShieldField; + } + set + { + this.elevationShieldFieldSet = true; + this.elevationShieldField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Text" == childName)) + { + childValue = new Text(); + } + if (("ComboBox" == childName)) + { + childValue = new ComboBox(); + } + if (("ListBox" == childName)) + { + childValue = new ListBox(); + } + if (("ListView" == childName)) + { + childValue = new ListView(); + } + if (("RadioButtonGroup" == childName)) + { + childValue = new RadioButtonGroup(); + } + if (("Property" == childName)) + { + childValue = new Property(); + } + if (("Binary" == childName)) + { + childValue = new Binary(); + } + if (("Condition" == childName)) + { + childValue = new Condition(); + } + if (("Publish" == childName)) + { + childValue = new Publish(); + } + if (("Subscribe" == childName)) + { + childValue = new Subscribe(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Parses a IconSizeType from a string. + /// + public static IconSizeType ParseIconSizeType(string value) + { + IconSizeType parsedValue; + Control.TryParseIconSizeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a IconSizeType from a string. + /// + public static bool TryParseIconSizeType(string value, out IconSizeType parsedValue) + { + parsedValue = IconSizeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("16" == value)) + { + parsedValue = IconSizeType.Item16; + } + else + { + if (("32" == value)) + { + parsedValue = IconSizeType.Item32; + } + else + { + if (("48" == value)) + { + parsedValue = IconSizeType.Item48; + } + else + { + parsedValue = IconSizeType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Control", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.typeFieldSet) + { + writer.WriteAttributeString("Type", this.typeField); + } + if (this.xFieldSet) + { + writer.WriteAttributeString("X", this.xField); + } + if (this.yFieldSet) + { + writer.WriteAttributeString("Y", this.yField); + } + if (this.widthFieldSet) + { + writer.WriteAttributeString("Width", this.widthField); + } + if (this.heightFieldSet) + { + writer.WriteAttributeString("Height", this.heightField); + } + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + if (this.textFieldSet) + { + writer.WriteAttributeString("Text", this.textField); + } + if (this.helpFieldSet) + { + writer.WriteAttributeString("Help", this.helpField); + } + if (this.toolTipFieldSet) + { + writer.WriteAttributeString("ToolTip", this.toolTipField); + } + if (this.checkBoxValueFieldSet) + { + writer.WriteAttributeString("CheckBoxValue", this.checkBoxValueField); + } + if (this.checkBoxPropertyRefFieldSet) + { + writer.WriteAttributeString("CheckBoxPropertyRef", this.checkBoxPropertyRefField); + } + if (this.tabSkipFieldSet) + { + if ((this.tabSkipField == YesNoType.no)) + { + writer.WriteAttributeString("TabSkip", "no"); + } + if ((this.tabSkipField == YesNoType.yes)) + { + writer.WriteAttributeString("TabSkip", "yes"); + } + } + if (this.defaultFieldSet) + { + if ((this.defaultField == YesNoType.no)) + { + writer.WriteAttributeString("Default", "no"); + } + if ((this.defaultField == YesNoType.yes)) + { + writer.WriteAttributeString("Default", "yes"); + } + } + if (this.cancelFieldSet) + { + if ((this.cancelField == YesNoType.no)) + { + writer.WriteAttributeString("Cancel", "no"); + } + if ((this.cancelField == YesNoType.yes)) + { + writer.WriteAttributeString("Cancel", "yes"); + } + } + if (this.hiddenFieldSet) + { + if ((this.hiddenField == YesNoType.no)) + { + writer.WriteAttributeString("Hidden", "no"); + } + if ((this.hiddenField == YesNoType.yes)) + { + writer.WriteAttributeString("Hidden", "yes"); + } + } + if (this.disabledFieldSet) + { + if ((this.disabledField == YesNoType.no)) + { + writer.WriteAttributeString("Disabled", "no"); + } + if ((this.disabledField == YesNoType.yes)) + { + writer.WriteAttributeString("Disabled", "yes"); + } + } + if (this.sunkenFieldSet) + { + if ((this.sunkenField == YesNoType.no)) + { + writer.WriteAttributeString("Sunken", "no"); + } + if ((this.sunkenField == YesNoType.yes)) + { + writer.WriteAttributeString("Sunken", "yes"); + } + } + if (this.indirectFieldSet) + { + if ((this.indirectField == YesNoType.no)) + { + writer.WriteAttributeString("Indirect", "no"); + } + if ((this.indirectField == YesNoType.yes)) + { + writer.WriteAttributeString("Indirect", "yes"); + } + } + if (this.integerFieldSet) + { + if ((this.integerField == YesNoType.no)) + { + writer.WriteAttributeString("Integer", "no"); + } + if ((this.integerField == YesNoType.yes)) + { + writer.WriteAttributeString("Integer", "yes"); + } + } + if (this.rightToLeftFieldSet) + { + if ((this.rightToLeftField == YesNoType.no)) + { + writer.WriteAttributeString("RightToLeft", "no"); + } + if ((this.rightToLeftField == YesNoType.yes)) + { + writer.WriteAttributeString("RightToLeft", "yes"); + } + } + if (this.rightAlignedFieldSet) + { + if ((this.rightAlignedField == YesNoType.no)) + { + writer.WriteAttributeString("RightAligned", "no"); + } + if ((this.rightAlignedField == YesNoType.yes)) + { + writer.WriteAttributeString("RightAligned", "yes"); + } + } + if (this.leftScrollFieldSet) + { + if ((this.leftScrollField == YesNoType.no)) + { + writer.WriteAttributeString("LeftScroll", "no"); + } + if ((this.leftScrollField == YesNoType.yes)) + { + writer.WriteAttributeString("LeftScroll", "yes"); + } + } + if (this.transparentFieldSet) + { + if ((this.transparentField == YesNoType.no)) + { + writer.WriteAttributeString("Transparent", "no"); + } + if ((this.transparentField == YesNoType.yes)) + { + writer.WriteAttributeString("Transparent", "yes"); + } + } + if (this.noPrefixFieldSet) + { + if ((this.noPrefixField == YesNoType.no)) + { + writer.WriteAttributeString("NoPrefix", "no"); + } + if ((this.noPrefixField == YesNoType.yes)) + { + writer.WriteAttributeString("NoPrefix", "yes"); + } + } + if (this.noWrapFieldSet) + { + if ((this.noWrapField == YesNoType.no)) + { + writer.WriteAttributeString("NoWrap", "no"); + } + if ((this.noWrapField == YesNoType.yes)) + { + writer.WriteAttributeString("NoWrap", "yes"); + } + } + if (this.formatSizeFieldSet) + { + if ((this.formatSizeField == YesNoType.no)) + { + writer.WriteAttributeString("FormatSize", "no"); + } + if ((this.formatSizeField == YesNoType.yes)) + { + writer.WriteAttributeString("FormatSize", "yes"); + } + } + if (this.userLanguageFieldSet) + { + if ((this.userLanguageField == YesNoType.no)) + { + writer.WriteAttributeString("UserLanguage", "no"); + } + if ((this.userLanguageField == YesNoType.yes)) + { + writer.WriteAttributeString("UserLanguage", "yes"); + } + } + if (this.multilineFieldSet) + { + if ((this.multilineField == YesNoType.no)) + { + writer.WriteAttributeString("Multiline", "no"); + } + if ((this.multilineField == YesNoType.yes)) + { + writer.WriteAttributeString("Multiline", "yes"); + } + } + if (this.passwordFieldSet) + { + if ((this.passwordField == YesNoType.no)) + { + writer.WriteAttributeString("Password", "no"); + } + if ((this.passwordField == YesNoType.yes)) + { + writer.WriteAttributeString("Password", "yes"); + } + } + if (this.progressBlocksFieldSet) + { + if ((this.progressBlocksField == YesNoType.no)) + { + writer.WriteAttributeString("ProgressBlocks", "no"); + } + if ((this.progressBlocksField == YesNoType.yes)) + { + writer.WriteAttributeString("ProgressBlocks", "yes"); + } + } + if (this.removableFieldSet) + { + if ((this.removableField == YesNoType.no)) + { + writer.WriteAttributeString("Removable", "no"); + } + if ((this.removableField == YesNoType.yes)) + { + writer.WriteAttributeString("Removable", "yes"); + } + } + if (this.fixedFieldSet) + { + if ((this.fixedField == YesNoType.no)) + { + writer.WriteAttributeString("Fixed", "no"); + } + if ((this.fixedField == YesNoType.yes)) + { + writer.WriteAttributeString("Fixed", "yes"); + } + } + if (this.remoteFieldSet) + { + if ((this.remoteField == YesNoType.no)) + { + writer.WriteAttributeString("Remote", "no"); + } + if ((this.remoteField == YesNoType.yes)) + { + writer.WriteAttributeString("Remote", "yes"); + } + } + if (this.cDROMFieldSet) + { + if ((this.cDROMField == YesNoType.no)) + { + writer.WriteAttributeString("CDROM", "no"); + } + if ((this.cDROMField == YesNoType.yes)) + { + writer.WriteAttributeString("CDROM", "yes"); + } + } + if (this.rAMDiskFieldSet) + { + if ((this.rAMDiskField == YesNoType.no)) + { + writer.WriteAttributeString("RAMDisk", "no"); + } + if ((this.rAMDiskField == YesNoType.yes)) + { + writer.WriteAttributeString("RAMDisk", "yes"); + } + } + if (this.floppyFieldSet) + { + if ((this.floppyField == YesNoType.no)) + { + writer.WriteAttributeString("Floppy", "no"); + } + if ((this.floppyField == YesNoType.yes)) + { + writer.WriteAttributeString("Floppy", "yes"); + } + } + if (this.showRollbackCostFieldSet) + { + if ((this.showRollbackCostField == YesNoType.no)) + { + writer.WriteAttributeString("ShowRollbackCost", "no"); + } + if ((this.showRollbackCostField == YesNoType.yes)) + { + writer.WriteAttributeString("ShowRollbackCost", "yes"); + } + } + if (this.sortedFieldSet) + { + if ((this.sortedField == YesNoType.no)) + { + writer.WriteAttributeString("Sorted", "no"); + } + if ((this.sortedField == YesNoType.yes)) + { + writer.WriteAttributeString("Sorted", "yes"); + } + } + if (this.comboListFieldSet) + { + if ((this.comboListField == YesNoType.no)) + { + writer.WriteAttributeString("ComboList", "no"); + } + if ((this.comboListField == YesNoType.yes)) + { + writer.WriteAttributeString("ComboList", "yes"); + } + } + if (this.imageFieldSet) + { + if ((this.imageField == YesNoType.no)) + { + writer.WriteAttributeString("Image", "no"); + } + if ((this.imageField == YesNoType.yes)) + { + writer.WriteAttributeString("Image", "yes"); + } + } + if (this.iconSizeFieldSet) + { + if ((this.iconSizeField == IconSizeType.Item16)) + { + writer.WriteAttributeString("IconSize", "16"); + } + if ((this.iconSizeField == IconSizeType.Item32)) + { + writer.WriteAttributeString("IconSize", "32"); + } + if ((this.iconSizeField == IconSizeType.Item48)) + { + writer.WriteAttributeString("IconSize", "48"); + } + } + if (this.fixedSizeFieldSet) + { + if ((this.fixedSizeField == YesNoType.no)) + { + writer.WriteAttributeString("FixedSize", "no"); + } + if ((this.fixedSizeField == YesNoType.yes)) + { + writer.WriteAttributeString("FixedSize", "yes"); + } + } + if (this.iconFieldSet) + { + if ((this.iconField == YesNoType.no)) + { + writer.WriteAttributeString("Icon", "no"); + } + if ((this.iconField == YesNoType.yes)) + { + writer.WriteAttributeString("Icon", "yes"); + } + } + if (this.bitmapFieldSet) + { + if ((this.bitmapField == YesNoType.no)) + { + writer.WriteAttributeString("Bitmap", "no"); + } + if ((this.bitmapField == YesNoType.yes)) + { + writer.WriteAttributeString("Bitmap", "yes"); + } + } + if (this.pushLikeFieldSet) + { + if ((this.pushLikeField == YesNoType.no)) + { + writer.WriteAttributeString("PushLike", "no"); + } + if ((this.pushLikeField == YesNoType.yes)) + { + writer.WriteAttributeString("PushLike", "yes"); + } + } + if (this.hasBorderFieldSet) + { + if ((this.hasBorderField == YesNoType.no)) + { + writer.WriteAttributeString("HasBorder", "no"); + } + if ((this.hasBorderField == YesNoType.yes)) + { + writer.WriteAttributeString("HasBorder", "yes"); + } + } + if (this.elevationShieldFieldSet) + { + if ((this.elevationShieldField == YesNoType.no)) + { + writer.WriteAttributeString("ElevationShield", "no"); + } + if ((this.elevationShieldField == YesNoType.yes)) + { + writer.WriteAttributeString("ElevationShield", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = value; + this.typeFieldSet = true; + } + if (("X" == name)) + { + this.xField = value; + this.xFieldSet = true; + } + if (("Y" == name)) + { + this.yField = value; + this.yFieldSet = true; + } + if (("Width" == name)) + { + this.widthField = value; + this.widthFieldSet = true; + } + if (("Height" == name)) + { + this.heightField = value; + this.heightFieldSet = true; + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + if (("Text" == name)) + { + this.textField = value; + this.textFieldSet = true; + } + if (("Help" == name)) + { + this.helpField = value; + this.helpFieldSet = true; + } + if (("ToolTip" == name)) + { + this.toolTipField = value; + this.toolTipFieldSet = true; + } + if (("CheckBoxValue" == name)) + { + this.checkBoxValueField = value; + this.checkBoxValueFieldSet = true; + } + if (("CheckBoxPropertyRef" == name)) + { + this.checkBoxPropertyRefField = value; + this.checkBoxPropertyRefFieldSet = true; + } + if (("TabSkip" == name)) + { + this.tabSkipField = Enums.ParseYesNoType(value); + this.tabSkipFieldSet = true; + } + if (("Default" == name)) + { + this.defaultField = Enums.ParseYesNoType(value); + this.defaultFieldSet = true; + } + if (("Cancel" == name)) + { + this.cancelField = Enums.ParseYesNoType(value); + this.cancelFieldSet = true; + } + if (("Hidden" == name)) + { + this.hiddenField = Enums.ParseYesNoType(value); + this.hiddenFieldSet = true; + } + if (("Disabled" == name)) + { + this.disabledField = Enums.ParseYesNoType(value); + this.disabledFieldSet = true; + } + if (("Sunken" == name)) + { + this.sunkenField = Enums.ParseYesNoType(value); + this.sunkenFieldSet = true; + } + if (("Indirect" == name)) + { + this.indirectField = Enums.ParseYesNoType(value); + this.indirectFieldSet = true; + } + if (("Integer" == name)) + { + this.integerField = Enums.ParseYesNoType(value); + this.integerFieldSet = true; + } + if (("RightToLeft" == name)) + { + this.rightToLeftField = Enums.ParseYesNoType(value); + this.rightToLeftFieldSet = true; + } + if (("RightAligned" == name)) + { + this.rightAlignedField = Enums.ParseYesNoType(value); + this.rightAlignedFieldSet = true; + } + if (("LeftScroll" == name)) + { + this.leftScrollField = Enums.ParseYesNoType(value); + this.leftScrollFieldSet = true; + } + if (("Transparent" == name)) + { + this.transparentField = Enums.ParseYesNoType(value); + this.transparentFieldSet = true; + } + if (("NoPrefix" == name)) + { + this.noPrefixField = Enums.ParseYesNoType(value); + this.noPrefixFieldSet = true; + } + if (("NoWrap" == name)) + { + this.noWrapField = Enums.ParseYesNoType(value); + this.noWrapFieldSet = true; + } + if (("FormatSize" == name)) + { + this.formatSizeField = Enums.ParseYesNoType(value); + this.formatSizeFieldSet = true; + } + if (("UserLanguage" == name)) + { + this.userLanguageField = Enums.ParseYesNoType(value); + this.userLanguageFieldSet = true; + } + if (("Multiline" == name)) + { + this.multilineField = Enums.ParseYesNoType(value); + this.multilineFieldSet = true; + } + if (("Password" == name)) + { + this.passwordField = Enums.ParseYesNoType(value); + this.passwordFieldSet = true; + } + if (("ProgressBlocks" == name)) + { + this.progressBlocksField = Enums.ParseYesNoType(value); + this.progressBlocksFieldSet = true; + } + if (("Removable" == name)) + { + this.removableField = Enums.ParseYesNoType(value); + this.removableFieldSet = true; + } + if (("Fixed" == name)) + { + this.fixedField = Enums.ParseYesNoType(value); + this.fixedFieldSet = true; + } + if (("Remote" == name)) + { + this.remoteField = Enums.ParseYesNoType(value); + this.remoteFieldSet = true; + } + if (("CDROM" == name)) + { + this.cDROMField = Enums.ParseYesNoType(value); + this.cDROMFieldSet = true; + } + if (("RAMDisk" == name)) + { + this.rAMDiskField = Enums.ParseYesNoType(value); + this.rAMDiskFieldSet = true; + } + if (("Floppy" == name)) + { + this.floppyField = Enums.ParseYesNoType(value); + this.floppyFieldSet = true; + } + if (("ShowRollbackCost" == name)) + { + this.showRollbackCostField = Enums.ParseYesNoType(value); + this.showRollbackCostFieldSet = true; + } + if (("Sorted" == name)) + { + this.sortedField = Enums.ParseYesNoType(value); + this.sortedFieldSet = true; + } + if (("ComboList" == name)) + { + this.comboListField = Enums.ParseYesNoType(value); + this.comboListFieldSet = true; + } + if (("Image" == name)) + { + this.imageField = Enums.ParseYesNoType(value); + this.imageFieldSet = true; + } + if (("IconSize" == name)) + { + this.iconSizeField = Control.ParseIconSizeType(value); + this.iconSizeFieldSet = true; + } + if (("FixedSize" == name)) + { + this.fixedSizeField = Enums.ParseYesNoType(value); + this.fixedSizeFieldSet = true; + } + if (("Icon" == name)) + { + this.iconField = Enums.ParseYesNoType(value); + this.iconFieldSet = true; + } + if (("Bitmap" == name)) + { + this.bitmapField = Enums.ParseYesNoType(value); + this.bitmapFieldSet = true; + } + if (("PushLike" == name)) + { + this.pushLikeField = Enums.ParseYesNoType(value); + this.pushLikeFieldSet = true; + } + if (("HasBorder" == name)) + { + this.hasBorderField = Enums.ParseYesNoType(value); + this.hasBorderFieldSet = true; + } + if (("ElevationShield" == name)) + { + this.elevationShieldField = Enums.ParseYesNoType(value); + this.elevationShieldFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum IconSizeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + Item16, + + Item32, + + Item48, + } + } + + /// + /// Billboard to display during install of a Feature + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Billboard : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private string featureField; + + private bool featureFieldSet; + + private ISchemaElement parentElement; + + public Billboard() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for the Billboard. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Feature whose state determines if the Billboard is shown. + /// + public string Feature + { + get + { + return this.featureField; + } + set + { + this.featureFieldSet = true; + this.featureField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Control" == childName)) + { + childValue = new Control(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Billboard", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.featureFieldSet) + { + writer.WriteAttributeString("Feature", this.featureField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Feature" == name)) + { + this.featureField = value; + this.featureFieldSet = true; + } + } + } + + /// + /// Billboard action during which child Billboards are displayed + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class BillboardAction : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public BillboardAction() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Billboard))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Action name that determines when the Billboard should be shown. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Billboard" == childName)) + { + childValue = new Billboard(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("BillboardAction", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Defines a dialog box in the Dialog Table. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Dialog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private int xField; + + private bool xFieldSet; + + private int yField; + + private bool yFieldSet; + + private int widthField; + + private bool widthFieldSet; + + private int heightField; + + private bool heightFieldSet; + + private string titleField; + + private bool titleFieldSet; + + private YesNoType hiddenField; + + private bool hiddenFieldSet; + + private YesNoType modelessField; + + private bool modelessFieldSet; + + private YesNoType noMinimizeField; + + private bool noMinimizeFieldSet; + + private YesNoType systemModalField; + + private bool systemModalFieldSet; + + private YesNoType keepModelessField; + + private bool keepModelessFieldSet; + + private YesNoType trackDiskSpaceField; + + private bool trackDiskSpaceFieldSet; + + private YesNoType customPaletteField; + + private bool customPaletteFieldSet; + + private YesNoType rightToLeftField; + + private bool rightToLeftFieldSet; + + private YesNoType rightAlignedField; + + private bool rightAlignedFieldSet; + + private YesNoType leftScrollField; + + private bool leftScrollFieldSet; + + private YesNoType errorDialogField; + + private bool errorDialogFieldSet; + + private ISchemaElement parentElement; + + public Dialog() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Unique identifier for the dialog. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Horizontal placement of the dialog box as a percentage of screen width. The default value is 50. + /// + public int X + { + get + { + return this.xField; + } + set + { + this.xFieldSet = true; + this.xField = value; + } + } + + /// + /// Vertical placement of the dialog box as a percentage of screen height. The default value is 50. + /// + public int Y + { + get + { + return this.yField; + } + set + { + this.yFieldSet = true; + this.yField = value; + } + } + + /// + /// The width of the dialog box in dialog units. + /// + public int Width + { + get + { + return this.widthField; + } + set + { + this.widthFieldSet = true; + this.widthField = value; + } + } + + /// + /// The height of the dialog box in dialog units. + /// + public int Height + { + get + { + return this.heightField; + } + set + { + this.heightFieldSet = true; + this.heightField = value; + } + } + + /// + /// The title of the dialog box. + /// + public string Title + { + get + { + return this.titleField; + } + set + { + this.titleFieldSet = true; + this.titleField = value; + } + } + + /// + /// Used to hide the dialog. + /// + public YesNoType Hidden + { + get + { + return this.hiddenField; + } + set + { + this.hiddenFieldSet = true; + this.hiddenField = value; + } + } + + /// + /// Used to set the dialog as modeless. + /// + public YesNoType Modeless + { + get + { + return this.modelessField; + } + set + { + this.modelessFieldSet = true; + this.modelessField = value; + } + } + + /// + /// Used to specify if the dialog can be minimized. + /// + public YesNoType NoMinimize + { + get + { + return this.noMinimizeField; + } + set + { + this.noMinimizeFieldSet = true; + this.noMinimizeField = value; + } + } + + /// + /// Used to set the dialog as system modal. + /// + public YesNoType SystemModal + { + get + { + return this.systemModalField; + } + set + { + this.systemModalFieldSet = true; + this.systemModalField = value; + } + } + + /// + /// Keep modeless dialogs alive when this dialog is created through DoAction. + /// + public YesNoType KeepModeless + { + get + { + return this.keepModelessField; + } + set + { + this.keepModelessFieldSet = true; + this.keepModelessField = value; + } + } + + /// + /// Have the dialog periodically call the installer to check if available disk space has changed. + /// + public YesNoType TrackDiskSpace + { + get + { + return this.trackDiskSpaceField; + } + set + { + this.trackDiskSpaceFieldSet = true; + this.trackDiskSpaceField = value; + } + } + + /// + /// Used to specify if pictures in the dialog box are rendered with a custom palette. + /// + public YesNoType CustomPalette + { + get + { + return this.customPaletteField; + } + set + { + this.customPaletteFieldSet = true; + this.customPaletteField = value; + } + } + + /// + /// Used to specify if the text in the dialog should be displayed in right to left reading order. + /// + public YesNoType RightToLeft + { + get + { + return this.rightToLeftField; + } + set + { + this.rightToLeftFieldSet = true; + this.rightToLeftField = value; + } + } + + /// + /// Align text on the right. + /// + public YesNoType RightAligned + { + get + { + return this.rightAlignedField; + } + set + { + this.rightAlignedFieldSet = true; + this.rightAlignedField = value; + } + } + + /// + /// Used to align the scroll bar on the left. + /// + public YesNoType LeftScroll + { + get + { + return this.leftScrollField; + } + set + { + this.leftScrollFieldSet = true; + this.leftScrollField = value; + } + } + + /// + /// Specifies this dialog as an error dialog. + /// + public YesNoType ErrorDialog + { + get + { + return this.errorDialogField; + } + set + { + this.errorDialogFieldSet = true; + this.errorDialogField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Control" == childName)) + { + childValue = new Control(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Dialog", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.xFieldSet) + { + writer.WriteAttributeString("X", this.xField.ToString(CultureInfo.InvariantCulture)); + } + if (this.yFieldSet) + { + writer.WriteAttributeString("Y", this.yField.ToString(CultureInfo.InvariantCulture)); + } + if (this.widthFieldSet) + { + writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); + } + if (this.heightFieldSet) + { + writer.WriteAttributeString("Height", this.heightField.ToString(CultureInfo.InvariantCulture)); + } + if (this.titleFieldSet) + { + writer.WriteAttributeString("Title", this.titleField); + } + if (this.hiddenFieldSet) + { + if ((this.hiddenField == YesNoType.no)) + { + writer.WriteAttributeString("Hidden", "no"); + } + if ((this.hiddenField == YesNoType.yes)) + { + writer.WriteAttributeString("Hidden", "yes"); + } + } + if (this.modelessFieldSet) + { + if ((this.modelessField == YesNoType.no)) + { + writer.WriteAttributeString("Modeless", "no"); + } + if ((this.modelessField == YesNoType.yes)) + { + writer.WriteAttributeString("Modeless", "yes"); + } + } + if (this.noMinimizeFieldSet) + { + if ((this.noMinimizeField == YesNoType.no)) + { + writer.WriteAttributeString("NoMinimize", "no"); + } + if ((this.noMinimizeField == YesNoType.yes)) + { + writer.WriteAttributeString("NoMinimize", "yes"); + } + } + if (this.systemModalFieldSet) + { + if ((this.systemModalField == YesNoType.no)) + { + writer.WriteAttributeString("SystemModal", "no"); + } + if ((this.systemModalField == YesNoType.yes)) + { + writer.WriteAttributeString("SystemModal", "yes"); + } + } + if (this.keepModelessFieldSet) + { + if ((this.keepModelessField == YesNoType.no)) + { + writer.WriteAttributeString("KeepModeless", "no"); + } + if ((this.keepModelessField == YesNoType.yes)) + { + writer.WriteAttributeString("KeepModeless", "yes"); + } + } + if (this.trackDiskSpaceFieldSet) + { + if ((this.trackDiskSpaceField == YesNoType.no)) + { + writer.WriteAttributeString("TrackDiskSpace", "no"); + } + if ((this.trackDiskSpaceField == YesNoType.yes)) + { + writer.WriteAttributeString("TrackDiskSpace", "yes"); + } + } + if (this.customPaletteFieldSet) + { + if ((this.customPaletteField == YesNoType.no)) + { + writer.WriteAttributeString("CustomPalette", "no"); + } + if ((this.customPaletteField == YesNoType.yes)) + { + writer.WriteAttributeString("CustomPalette", "yes"); + } + } + if (this.rightToLeftFieldSet) + { + if ((this.rightToLeftField == YesNoType.no)) + { + writer.WriteAttributeString("RightToLeft", "no"); + } + if ((this.rightToLeftField == YesNoType.yes)) + { + writer.WriteAttributeString("RightToLeft", "yes"); + } + } + if (this.rightAlignedFieldSet) + { + if ((this.rightAlignedField == YesNoType.no)) + { + writer.WriteAttributeString("RightAligned", "no"); + } + if ((this.rightAlignedField == YesNoType.yes)) + { + writer.WriteAttributeString("RightAligned", "yes"); + } + } + if (this.leftScrollFieldSet) + { + if ((this.leftScrollField == YesNoType.no)) + { + writer.WriteAttributeString("LeftScroll", "no"); + } + if ((this.leftScrollField == YesNoType.yes)) + { + writer.WriteAttributeString("LeftScroll", "yes"); + } + } + if (this.errorDialogFieldSet) + { + if ((this.errorDialogField == YesNoType.no)) + { + writer.WriteAttributeString("ErrorDialog", "no"); + } + if ((this.errorDialogField == YesNoType.yes)) + { + writer.WriteAttributeString("ErrorDialog", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("X" == name)) + { + this.xField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.xFieldSet = true; + } + if (("Y" == name)) + { + this.yField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.yFieldSet = true; + } + if (("Width" == name)) + { + this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.widthFieldSet = true; + } + if (("Height" == name)) + { + this.heightField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.heightFieldSet = true; + } + if (("Title" == name)) + { + this.titleField = value; + this.titleFieldSet = true; + } + if (("Hidden" == name)) + { + this.hiddenField = Enums.ParseYesNoType(value); + this.hiddenFieldSet = true; + } + if (("Modeless" == name)) + { + this.modelessField = Enums.ParseYesNoType(value); + this.modelessFieldSet = true; + } + if (("NoMinimize" == name)) + { + this.noMinimizeField = Enums.ParseYesNoType(value); + this.noMinimizeFieldSet = true; + } + if (("SystemModal" == name)) + { + this.systemModalField = Enums.ParseYesNoType(value); + this.systemModalFieldSet = true; + } + if (("KeepModeless" == name)) + { + this.keepModelessField = Enums.ParseYesNoType(value); + this.keepModelessFieldSet = true; + } + if (("TrackDiskSpace" == name)) + { + this.trackDiskSpaceField = Enums.ParseYesNoType(value); + this.trackDiskSpaceFieldSet = true; + } + if (("CustomPalette" == name)) + { + this.customPaletteField = Enums.ParseYesNoType(value); + this.customPaletteFieldSet = true; + } + if (("RightToLeft" == name)) + { + this.rightToLeftField = Enums.ParseYesNoType(value); + this.rightToLeftFieldSet = true; + } + if (("RightAligned" == name)) + { + this.rightAlignedField = Enums.ParseYesNoType(value); + this.rightAlignedFieldSet = true; + } + if (("LeftScroll" == name)) + { + this.leftScrollField = Enums.ParseYesNoType(value); + this.leftScrollFieldSet = true; + } + if (("ErrorDialog" == name)) + { + this.errorDialogField = Enums.ParseYesNoType(value); + this.errorDialogFieldSet = true; + } + } + } + + /// + /// Reference to a Dialog. This will cause the entire referenced section's contents + /// to be included in the installer database. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class DialogRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identifier of the Dialog to reference. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("DialogRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ProgressText : ISchemaElement, ISetAttributes + { + + private string actionField; + + private bool actionFieldSet; + + private string templateField; + + private bool templateFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + public string Action + { + get + { + return this.actionField; + } + set + { + this.actionFieldSet = true; + this.actionField = value; + } + } + + /// + /// used to format ActionData messages from action processing + /// + public string Template + { + get + { + return this.templateField; + } + set + { + this.templateFieldSet = true; + this.templateField = value; + } + } + + /// + /// Element value is progress message text for action + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ProgressText", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.actionFieldSet) + { + writer.WriteAttributeString("Action", this.actionField); + } + if (this.templateFieldSet) + { + writer.WriteAttributeString("Template", this.templateField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Action" == name)) + { + this.actionField = value; + this.actionFieldSet = true; + } + if (("Template" == name)) + { + this.templateField = value; + this.templateFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class TextStyle : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string faceNameField; + + private bool faceNameFieldSet; + + private string sizeField; + + private bool sizeFieldSet; + + private int redField; + + private bool redFieldSet; + + private int greenField; + + private bool greenFieldSet; + + private int blueField; + + private bool blueFieldSet; + + private YesNoType boldField; + + private bool boldFieldSet; + + private YesNoType italicField; + + private bool italicFieldSet; + + private YesNoType underlineField; + + private bool underlineFieldSet; + + private YesNoType strikeField; + + private bool strikeFieldSet; + + private ISchemaElement parentElement; + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public string FaceName + { + get + { + return this.faceNameField; + } + set + { + this.faceNameFieldSet = true; + this.faceNameField = value; + } + } + + public string Size + { + get + { + return this.sizeField; + } + set + { + this.sizeFieldSet = true; + this.sizeField = value; + } + } + + /// + /// 0 to 255 + /// + public int Red + { + get + { + return this.redField; + } + set + { + this.redFieldSet = true; + this.redField = value; + } + } + + /// + /// 0 to 255 + /// + public int Green + { + get + { + return this.greenField; + } + set + { + this.greenFieldSet = true; + this.greenField = value; + } + } + + /// + /// 0 to 255 + /// + public int Blue + { + get + { + return this.blueField; + } + set + { + this.blueFieldSet = true; + this.blueField = value; + } + } + + public YesNoType Bold + { + get + { + return this.boldField; + } + set + { + this.boldFieldSet = true; + this.boldField = value; + } + } + + public YesNoType Italic + { + get + { + return this.italicField; + } + set + { + this.italicFieldSet = true; + this.italicField = value; + } + } + + public YesNoType Underline + { + get + { + return this.underlineField; + } + set + { + this.underlineFieldSet = true; + this.underlineField = value; + } + } + + public YesNoType Strike + { + get + { + return this.strikeField; + } + set + { + this.strikeFieldSet = true; + this.strikeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("TextStyle", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.faceNameFieldSet) + { + writer.WriteAttributeString("FaceName", this.faceNameField); + } + if (this.sizeFieldSet) + { + writer.WriteAttributeString("Size", this.sizeField); + } + if (this.redFieldSet) + { + writer.WriteAttributeString("Red", this.redField.ToString(CultureInfo.InvariantCulture)); + } + if (this.greenFieldSet) + { + writer.WriteAttributeString("Green", this.greenField.ToString(CultureInfo.InvariantCulture)); + } + if (this.blueFieldSet) + { + writer.WriteAttributeString("Blue", this.blueField.ToString(CultureInfo.InvariantCulture)); + } + if (this.boldFieldSet) + { + if ((this.boldField == YesNoType.no)) + { + writer.WriteAttributeString("Bold", "no"); + } + if ((this.boldField == YesNoType.yes)) + { + writer.WriteAttributeString("Bold", "yes"); + } + } + if (this.italicFieldSet) + { + if ((this.italicField == YesNoType.no)) + { + writer.WriteAttributeString("Italic", "no"); + } + if ((this.italicField == YesNoType.yes)) + { + writer.WriteAttributeString("Italic", "yes"); + } + } + if (this.underlineFieldSet) + { + if ((this.underlineField == YesNoType.no)) + { + writer.WriteAttributeString("Underline", "no"); + } + if ((this.underlineField == YesNoType.yes)) + { + writer.WriteAttributeString("Underline", "yes"); + } + } + if (this.strikeFieldSet) + { + if ((this.strikeField == YesNoType.no)) + { + writer.WriteAttributeString("Strike", "no"); + } + if ((this.strikeField == YesNoType.yes)) + { + writer.WriteAttributeString("Strike", "yes"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("FaceName" == name)) + { + this.faceNameField = value; + this.faceNameFieldSet = true; + } + if (("Size" == name)) + { + this.sizeField = value; + this.sizeFieldSet = true; + } + if (("Red" == name)) + { + this.redField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.redFieldSet = true; + } + if (("Green" == name)) + { + this.greenField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.greenFieldSet = true; + } + if (("Blue" == name)) + { + this.blueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.blueFieldSet = true; + } + if (("Bold" == name)) + { + this.boldField = Enums.ParseYesNoType(value); + this.boldFieldSet = true; + } + if (("Italic" == name)) + { + this.italicField = Enums.ParseYesNoType(value); + this.italicFieldSet = true; + } + if (("Underline" == name)) + { + this.underlineField = Enums.ParseYesNoType(value); + this.underlineFieldSet = true; + } + if (("Strike" == name)) + { + this.strikeField = Enums.ParseYesNoType(value); + this.strikeFieldSet = true; + } + } + } + + /// + /// The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ListItem : ISchemaElement, ISetAttributes + { + + private string valueField; + + private bool valueFieldSet; + + private string textField; + + private bool textFieldSet; + + private string iconField; + + private bool iconFieldSet; + + private ISchemaElement parentElement; + + /// + /// The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + /// + /// The localizable, visible text to be assigned to the item. + /// If not specified, this will default to the value of the Value attribute. + /// + public string Text + { + get + { + return this.textField; + } + set + { + this.textFieldSet = true; + this.textField = value; + } + } + + /// + /// The identifier of the Binary (not Icon) element containing the icon to associate with this item. + /// This value is only valid when nested under a ListView element. + /// + public string Icon + { + get + { + return this.iconField; + } + set + { + this.iconFieldSet = true; + this.iconField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ListItem", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.textFieldSet) + { + writer.WriteAttributeString("Text", this.textField); + } + if (this.iconFieldSet) + { + writer.WriteAttributeString("Icon", this.iconField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Text" == name)) + { + this.textField = value; + this.textFieldSet = true; + } + if (("Icon" == name)) + { + this.iconField = value; + this.iconFieldSet = true; + } + } + } + + /// + /// Set of items for a particular ListBox control tied to an install Property + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ListBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string propertyField; + + private bool propertyFieldSet; + + private ISchemaElement parentElement; + + public ListBox() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Property tied to this group + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ListItem" == childName)) + { + childValue = new ListItem(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ListBox", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + } + } + + /// + /// Set of items for a particular ComboBox control tied to an install Property + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ComboBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string propertyField; + + private bool propertyFieldSet; + + private ISchemaElement parentElement; + + public ComboBox() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Property tied to this group + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ListItem" == childName)) + { + childValue = new ListItem(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ComboBox", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + } + } + + /// + /// Set of items for a particular ListView control tied to an install Property + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ListView : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string propertyField; + + private bool propertyFieldSet; + + private ISchemaElement parentElement; + + public ListView() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Property tied to this group + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("ListItem" == childName)) + { + childValue = new ListItem(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ListView", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + } + } + + /// + /// Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RadioButton : ISchemaElement, ISetAttributes + { + + private string bitmapField; + + private bool bitmapFieldSet; + + private string heightField; + + private bool heightFieldSet; + + private string helpField; + + private bool helpFieldSet; + + private string iconField; + + private bool iconFieldSet; + + private string textField; + + private bool textFieldSet; + + private string toolTipField; + + private bool toolTipFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private string widthField; + + private bool widthFieldSet; + + private string xField; + + private bool xFieldSet; + + private string yField; + + private bool yFieldSet; + + private ISchemaElement parentElement; + + /// + /// This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference + /// to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text + /// attributes. + /// + public string Bitmap + { + get + { + return this.bitmapField; + } + set + { + this.bitmapFieldSet = true; + this.bitmapField = value; + } + } + + public string Height + { + get + { + return this.heightField; + } + set + { + this.heightFieldSet = true; + this.heightField = value; + } + } + + public string Help + { + get + { + return this.helpField; + } + set + { + this.helpFieldSet = true; + this.helpField = value; + } + } + + /// + /// This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference + /// to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text + /// attributes. + /// + public string Icon + { + get + { + return this.iconField; + } + set + { + this.iconFieldSet = true; + this.iconField = value; + } + } + + /// + /// Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes. + /// + public string Text + { + get + { + return this.textField; + } + set + { + this.textFieldSet = true; + this.textField = value; + } + } + + public string ToolTip + { + get + { + return this.toolTipField; + } + set + { + this.toolTipFieldSet = true; + this.toolTipField = value; + } + } + + /// + /// Value assigned to the associated control Property when this radio button is selected. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public string Width + { + get + { + return this.widthField; + } + set + { + this.widthFieldSet = true; + this.widthField = value; + } + } + + public string X + { + get + { + return this.xField; + } + set + { + this.xFieldSet = true; + this.xField = value; + } + } + + public string Y + { + get + { + return this.yField; + } + set + { + this.yFieldSet = true; + this.yField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RadioButton", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.bitmapFieldSet) + { + writer.WriteAttributeString("Bitmap", this.bitmapField); + } + if (this.heightFieldSet) + { + writer.WriteAttributeString("Height", this.heightField); + } + if (this.helpFieldSet) + { + writer.WriteAttributeString("Help", this.helpField); + } + if (this.iconFieldSet) + { + writer.WriteAttributeString("Icon", this.iconField); + } + if (this.textFieldSet) + { + writer.WriteAttributeString("Text", this.textField); + } + if (this.toolTipFieldSet) + { + writer.WriteAttributeString("ToolTip", this.toolTipField); + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + if (this.widthFieldSet) + { + writer.WriteAttributeString("Width", this.widthField); + } + if (this.xFieldSet) + { + writer.WriteAttributeString("X", this.xField); + } + if (this.yFieldSet) + { + writer.WriteAttributeString("Y", this.yField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Bitmap" == name)) + { + this.bitmapField = value; + this.bitmapFieldSet = true; + } + if (("Height" == name)) + { + this.heightField = value; + this.heightFieldSet = true; + } + if (("Help" == name)) + { + this.helpField = value; + this.helpFieldSet = true; + } + if (("Icon" == name)) + { + this.iconField = value; + this.iconFieldSet = true; + } + if (("Text" == name)) + { + this.textField = value; + this.textFieldSet = true; + } + if (("ToolTip" == name)) + { + this.toolTipField = value; + this.toolTipFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + if (("Width" == name)) + { + this.widthField = value; + this.widthFieldSet = true; + } + if (("X" == name)) + { + this.xField = value; + this.xFieldSet = true; + } + if (("Y" == name)) + { + this.yField = value; + this.yFieldSet = true; + } + } + } + + /// + /// Set of radio buttons tied to the specified Property + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class RadioButtonGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string propertyField; + + private bool propertyFieldSet; + + private ISchemaElement parentElement; + + public RadioButtonGroup() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButton))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Property tied to this group. + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("RadioButton" == childName)) + { + childValue = new RadioButton(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("RadioButtonGroup", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + } + } + + /// + /// Text associated with certain controls + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UIText : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Element value is text, may use CDATA if needed to escape XML delimiters + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UIText", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// Reference to a UI element. This will force the entire referenced Fragment's contents + /// to be included in the installer database. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UIRef : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UIRef", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Enclosing element to compartmentalize UI specifications. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class UI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + public UI() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedUI))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Error))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgressText))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BillboardAction))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComboBox))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListBox))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListView))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RadioButtonGroup))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TextStyle))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIText))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Dialog))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DialogRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); + ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); + childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); + childCollection0.AddCollection(childCollection1); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("EmbeddedUI" == childName)) + { + childValue = new EmbeddedUI(); + } + if (("Error" == childName)) + { + childValue = new Error(); + } + if (("ProgressText" == childName)) + { + childValue = new ProgressText(); + } + if (("BillboardAction" == childName)) + { + childValue = new BillboardAction(); + } + if (("ComboBox" == childName)) + { + childValue = new ComboBox(); + } + if (("ListBox" == childName)) + { + childValue = new ListBox(); + } + if (("ListView" == childName)) + { + childValue = new ListView(); + } + if (("RadioButtonGroup" == childName)) + { + childValue = new RadioButtonGroup(); + } + if (("TextStyle" == childName)) + { + childValue = new TextStyle(); + } + if (("UIText" == childName)) + { + childValue = new UIText(); + } + if (("Dialog" == childName)) + { + childValue = new Dialog(); + } + if (("DialogRef" == childName)) + { + childValue = new DialogRef(); + } + if (("Publish" == childName)) + { + childValue = new Publish(); + } + if (("PropertyRef" == childName)) + { + childValue = new PropertyRef(); + } + if (("Property" == childName)) + { + childValue = new Property(); + } + if (("Binary" == childName)) + { + childValue = new Binary(); + } + if (("AdminUISequence" == childName)) + { + childValue = new AdminUISequence(); + } + if (("InstallUISequence" == childName)) + { + childValue = new InstallUISequence(); + } + if (("UIRef" == childName)) + { + childValue = new UIRef(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("UI", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// Defines a custom table for use from a custom action. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class CustomTable : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string idField; + + private bool idFieldSet; + + private YesNoType bootstrapperApplicationDataField; + + private bool bootstrapperApplicationDataFieldSet; + + private ISchemaElement parentElement; + + public CustomTable() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Column))); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Row))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// Identifier for the custom table. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Indicates the table data is transformed into the bootstrapper application data manifest. + /// + public YesNoType BootstrapperApplicationData + { + get + { + return this.bootstrapperApplicationDataField; + } + set + { + this.bootstrapperApplicationDataFieldSet = true; + this.bootstrapperApplicationDataField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Column" == childName)) + { + childValue = new Column(); + } + if (("Row" == childName)) + { + childValue = new Row(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("CustomTable", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.bootstrapperApplicationDataFieldSet) + { + if ((this.bootstrapperApplicationDataField == YesNoType.no)) + { + writer.WriteAttributeString("BootstrapperApplicationData", "no"); + } + if ((this.bootstrapperApplicationDataField == YesNoType.yes)) + { + writer.WriteAttributeString("BootstrapperApplicationData", "yes"); + } + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("BootstrapperApplicationData" == name)) + { + this.bootstrapperApplicationDataField = Enums.ParseYesNoType(value); + this.bootstrapperApplicationDataFieldSet = true; + } + } + } + + /// + /// Column definition for a Custom Table + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Column : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType primaryKeyField; + + private bool primaryKeyFieldSet; + + private TypeType typeField; + + private bool typeFieldSet; + + private int widthField; + + private bool widthFieldSet; + + private YesNoType nullableField; + + private bool nullableFieldSet; + + private YesNoType localizableField; + + private bool localizableFieldSet; + + private long minValueField; + + private bool minValueFieldSet; + + private long maxValueField; + + private bool maxValueFieldSet; + + private string keyTableField; + + private bool keyTableFieldSet; + + private int keyColumnField; + + private bool keyColumnFieldSet; + + private CategoryType categoryField; + + private bool categoryFieldSet; + + private string setField; + + private bool setFieldSet; + + private string descriptionField; + + private bool descriptionFieldSet; + + private ModularizeType modularizeField; + + private bool modularizeFieldSet; + + private ISchemaElement parentElement; + + /// + /// Identifier for the column. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Whether this column is a primary key. + /// + public YesNoType PrimaryKey + { + get + { + return this.primaryKeyField; + } + set + { + this.primaryKeyFieldSet = true; + this.primaryKeyField = value; + } + } + + /// + /// The type of this column. + /// + public TypeType Type + { + get + { + return this.typeField; + } + set + { + this.typeFieldSet = true; + this.typeField = value; + } + } + + /// + /// Width of this column. + /// + public int Width + { + get + { + return this.widthField; + } + set + { + this.widthFieldSet = true; + this.widthField = value; + } + } + + /// + /// Whether this column can be left null. + /// + public YesNoType Nullable + { + get + { + return this.nullableField; + } + set + { + this.nullableFieldSet = true; + this.nullableField = value; + } + } + + /// + /// Whether this column can be localized. + /// + public YesNoType Localizable + { + get + { + return this.localizableField; + } + set + { + this.localizableFieldSet = true; + this.localizableField = value; + } + } + + /// + /// Minimum value for a numeric value, date or version in this column. + /// + public long MinValue + { + get + { + return this.minValueField; + } + set + { + this.minValueFieldSet = true; + this.minValueField = value; + } + } + + /// + /// Maximum value for a numeric value, date or version in this column. + /// + public long MaxValue + { + get + { + return this.maxValueField; + } + set + { + this.maxValueFieldSet = true; + this.maxValueField = value; + } + } + + /// + /// Table in which this column is an external key. Can be semicolon delimited. + /// + public string KeyTable + { + get + { + return this.keyTableField; + } + set + { + this.keyTableFieldSet = true; + this.keyTableField = value; + } + } + + /// + /// Column in the table in KeyTable attribute. + /// + public int KeyColumn + { + get + { + return this.keyColumnField; + } + set + { + this.keyColumnFieldSet = true; + this.keyColumnField = value; + } + } + + /// + /// Category of this column. + /// This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'. + /// + public CategoryType Category + { + get + { + return this.categoryField; + } + set + { + this.categoryFieldSet = true; + this.categoryField = value; + } + } + + /// + /// Semicolon delimited list of permissible values. + /// + public string Set + { + get + { + return this.setField; + } + set + { + this.setFieldSet = true; + this.setField = value; + } + } + + /// + /// Description of this column. + /// + public string Description + { + get + { + return this.descriptionField; + } + set + { + this.descriptionFieldSet = true; + this.descriptionField = value; + } + } + + /// + /// How this column should be modularized, if at all. + /// + public ModularizeType Modularize + { + get + { + return this.modularizeField; + } + set + { + this.modularizeFieldSet = true; + this.modularizeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a TypeType from a string. + /// + public static TypeType ParseTypeType(string value) + { + TypeType parsedValue; + Column.TryParseTypeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a TypeType from a string. + /// + public static bool TryParseTypeType(string value, out TypeType parsedValue) + { + parsedValue = TypeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("binary" == value)) + { + parsedValue = TypeType.binary; + } + else + { + if (("int" == value)) + { + parsedValue = TypeType.@int; + } + else + { + if (("string" == value)) + { + parsedValue = TypeType.@string; + } + else + { + parsedValue = TypeType.IllegalValue; + return false; + } + } + } + return true; + } + + /// + /// Parses a CategoryType from a string. + /// + public static CategoryType ParseCategoryType(string value) + { + CategoryType parsedValue; + Column.TryParseCategoryType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a CategoryType from a string. + /// + public static bool TryParseCategoryType(string value, out CategoryType parsedValue) + { + parsedValue = CategoryType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("Text" == value)) + { + parsedValue = CategoryType.Text; + } + else + { + if (("UpperCase" == value)) + { + parsedValue = CategoryType.UpperCase; + } + else + { + if (("LowerCase" == value)) + { + parsedValue = CategoryType.LowerCase; + } + else + { + if (("Integer" == value)) + { + parsedValue = CategoryType.Integer; + } + else + { + if (("DoubleInteger" == value)) + { + parsedValue = CategoryType.DoubleInteger; + } + else + { + if (("TimeDate" == value)) + { + parsedValue = CategoryType.TimeDate; + } + else + { + if (("Identifier" == value)) + { + parsedValue = CategoryType.Identifier; + } + else + { + if (("Property" == value)) + { + parsedValue = CategoryType.Property; + } + else + { + if (("Filename" == value)) + { + parsedValue = CategoryType.Filename; + } + else + { + if (("WildCardFilename" == value)) + { + parsedValue = CategoryType.WildCardFilename; + } + else + { + if (("Path" == value)) + { + parsedValue = CategoryType.Path; + } + else + { + if (("Paths" == value)) + { + parsedValue = CategoryType.Paths; + } + else + { + if (("AnyPath" == value)) + { + parsedValue = CategoryType.AnyPath; + } + else + { + if (("DefaultDir" == value)) + { + parsedValue = CategoryType.DefaultDir; + } + else + { + if (("RegPath" == value)) + { + parsedValue = CategoryType.RegPath; + } + else + { + if (("Formatted" == value)) + { + parsedValue = CategoryType.Formatted; + } + else + { + if (("FormattedSddl" == value)) + { + parsedValue = CategoryType.FormattedSddl; + } + else + { + if (("Template" == value)) + { + parsedValue = CategoryType.Template; + } + else + { + if (("Condition" == value)) + { + parsedValue = CategoryType.Condition; + } + else + { + if (("Guid" == value)) + { + parsedValue = CategoryType.Guid; + } + else + { + if (("Version" == value)) + { + parsedValue = CategoryType.Version; + } + else + { + if (("Language" == value)) + { + parsedValue = CategoryType.Language; + } + else + { + if (("Binary" == value)) + { + parsedValue = CategoryType.Binary; + } + else + { + if (("CustomSource" == value)) + { + parsedValue = CategoryType.CustomSource; + } + else + { + if (("Cabinet" == value)) + { + parsedValue = CategoryType.Cabinet; + } + else + { + if (("Shortcut" == value)) + { + parsedValue = CategoryType.Shortcut; + } + else + { + parsedValue = CategoryType.IllegalValue; + return false; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return true; + } + + /// + /// Parses a ModularizeType from a string. + /// + public static ModularizeType ParseModularizeType(string value) + { + ModularizeType parsedValue; + Column.TryParseModularizeType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ModularizeType from a string. + /// + public static bool TryParseModularizeType(string value, out ModularizeType parsedValue) + { + parsedValue = ModularizeType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("None" == value)) + { + parsedValue = ModularizeType.None; + } + else + { + if (("Column" == value)) + { + parsedValue = ModularizeType.Column; + } + else + { + if (("Condition" == value)) + { + parsedValue = ModularizeType.Condition; + } + else + { + if (("Icon" == value)) + { + parsedValue = ModularizeType.Icon; + } + else + { + if (("Property" == value)) + { + parsedValue = ModularizeType.Property; + } + else + { + if (("SemicolonDelimited" == value)) + { + parsedValue = ModularizeType.SemicolonDelimited; + } + else + { + parsedValue = ModularizeType.IllegalValue; + return false; + } + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Column", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.primaryKeyFieldSet) + { + if ((this.primaryKeyField == YesNoType.no)) + { + writer.WriteAttributeString("PrimaryKey", "no"); + } + if ((this.primaryKeyField == YesNoType.yes)) + { + writer.WriteAttributeString("PrimaryKey", "yes"); + } + } + if (this.typeFieldSet) + { + if ((this.typeField == TypeType.binary)) + { + writer.WriteAttributeString("Type", "binary"); + } + if ((this.typeField == TypeType.@int)) + { + writer.WriteAttributeString("Type", "int"); + } + if ((this.typeField == TypeType.@string)) + { + writer.WriteAttributeString("Type", "string"); + } + } + if (this.widthFieldSet) + { + writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); + } + if (this.nullableFieldSet) + { + if ((this.nullableField == YesNoType.no)) + { + writer.WriteAttributeString("Nullable", "no"); + } + if ((this.nullableField == YesNoType.yes)) + { + writer.WriteAttributeString("Nullable", "yes"); + } + } + if (this.localizableFieldSet) + { + if ((this.localizableField == YesNoType.no)) + { + writer.WriteAttributeString("Localizable", "no"); + } + if ((this.localizableField == YesNoType.yes)) + { + writer.WriteAttributeString("Localizable", "yes"); + } + } + if (this.minValueFieldSet) + { + writer.WriteAttributeString("MinValue", this.minValueField.ToString(CultureInfo.InvariantCulture)); + } + if (this.maxValueFieldSet) + { + writer.WriteAttributeString("MaxValue", this.maxValueField.ToString(CultureInfo.InvariantCulture)); + } + if (this.keyTableFieldSet) + { + writer.WriteAttributeString("KeyTable", this.keyTableField); + } + if (this.keyColumnFieldSet) + { + writer.WriteAttributeString("KeyColumn", this.keyColumnField.ToString(CultureInfo.InvariantCulture)); + } + if (this.categoryFieldSet) + { + if ((this.categoryField == CategoryType.Text)) + { + writer.WriteAttributeString("Category", "Text"); + } + if ((this.categoryField == CategoryType.UpperCase)) + { + writer.WriteAttributeString("Category", "UpperCase"); + } + if ((this.categoryField == CategoryType.LowerCase)) + { + writer.WriteAttributeString("Category", "LowerCase"); + } + if ((this.categoryField == CategoryType.Integer)) + { + writer.WriteAttributeString("Category", "Integer"); + } + if ((this.categoryField == CategoryType.DoubleInteger)) + { + writer.WriteAttributeString("Category", "DoubleInteger"); + } + if ((this.categoryField == CategoryType.TimeDate)) + { + writer.WriteAttributeString("Category", "TimeDate"); + } + if ((this.categoryField == CategoryType.Identifier)) + { + writer.WriteAttributeString("Category", "Identifier"); + } + if ((this.categoryField == CategoryType.Property)) + { + writer.WriteAttributeString("Category", "Property"); + } + if ((this.categoryField == CategoryType.Filename)) + { + writer.WriteAttributeString("Category", "Filename"); + } + if ((this.categoryField == CategoryType.WildCardFilename)) + { + writer.WriteAttributeString("Category", "WildCardFilename"); + } + if ((this.categoryField == CategoryType.Path)) + { + writer.WriteAttributeString("Category", "Path"); + } + if ((this.categoryField == CategoryType.Paths)) + { + writer.WriteAttributeString("Category", "Paths"); + } + if ((this.categoryField == CategoryType.AnyPath)) + { + writer.WriteAttributeString("Category", "AnyPath"); + } + if ((this.categoryField == CategoryType.DefaultDir)) + { + writer.WriteAttributeString("Category", "DefaultDir"); + } + if ((this.categoryField == CategoryType.RegPath)) + { + writer.WriteAttributeString("Category", "RegPath"); + } + if ((this.categoryField == CategoryType.Formatted)) + { + writer.WriteAttributeString("Category", "Formatted"); + } + if ((this.categoryField == CategoryType.FormattedSddl)) + { + writer.WriteAttributeString("Category", "FormattedSddl"); + } + if ((this.categoryField == CategoryType.Template)) + { + writer.WriteAttributeString("Category", "Template"); + } + if ((this.categoryField == CategoryType.Condition)) + { + writer.WriteAttributeString("Category", "Condition"); + } + if ((this.categoryField == CategoryType.Guid)) + { + writer.WriteAttributeString("Category", "Guid"); + } + if ((this.categoryField == CategoryType.Version)) + { + writer.WriteAttributeString("Category", "Version"); + } + if ((this.categoryField == CategoryType.Language)) + { + writer.WriteAttributeString("Category", "Language"); + } + if ((this.categoryField == CategoryType.Binary)) + { + writer.WriteAttributeString("Category", "Binary"); + } + if ((this.categoryField == CategoryType.CustomSource)) + { + writer.WriteAttributeString("Category", "CustomSource"); + } + if ((this.categoryField == CategoryType.Cabinet)) + { + writer.WriteAttributeString("Category", "Cabinet"); + } + if ((this.categoryField == CategoryType.Shortcut)) + { + writer.WriteAttributeString("Category", "Shortcut"); + } + } + if (this.setFieldSet) + { + writer.WriteAttributeString("Set", this.setField); + } + if (this.descriptionFieldSet) + { + writer.WriteAttributeString("Description", this.descriptionField); + } + if (this.modularizeFieldSet) + { + if ((this.modularizeField == ModularizeType.None)) + { + writer.WriteAttributeString("Modularize", "None"); + } + if ((this.modularizeField == ModularizeType.Column)) + { + writer.WriteAttributeString("Modularize", "Column"); + } + if ((this.modularizeField == ModularizeType.Condition)) + { + writer.WriteAttributeString("Modularize", "Condition"); + } + if ((this.modularizeField == ModularizeType.Icon)) + { + writer.WriteAttributeString("Modularize", "Icon"); + } + if ((this.modularizeField == ModularizeType.Property)) + { + writer.WriteAttributeString("Modularize", "Property"); + } + if ((this.modularizeField == ModularizeType.SemicolonDelimited)) + { + writer.WriteAttributeString("Modularize", "SemicolonDelimited"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("PrimaryKey" == name)) + { + this.primaryKeyField = Enums.ParseYesNoType(value); + this.primaryKeyFieldSet = true; + } + if (("Type" == name)) + { + this.typeField = Column.ParseTypeType(value); + this.typeFieldSet = true; + } + if (("Width" == name)) + { + this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.widthFieldSet = true; + } + if (("Nullable" == name)) + { + this.nullableField = Enums.ParseYesNoType(value); + this.nullableFieldSet = true; + } + if (("Localizable" == name)) + { + this.localizableField = Enums.ParseYesNoType(value); + this.localizableFieldSet = true; + } + if (("MinValue" == name)) + { + this.minValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.minValueFieldSet = true; + } + if (("MaxValue" == name)) + { + this.maxValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.maxValueFieldSet = true; + } + if (("KeyTable" == name)) + { + this.keyTableField = value; + this.keyTableFieldSet = true; + } + if (("KeyColumn" == name)) + { + this.keyColumnField = Convert.ToInt32(value, CultureInfo.InvariantCulture); + this.keyColumnFieldSet = true; + } + if (("Category" == name)) + { + this.categoryField = Column.ParseCategoryType(value); + this.categoryFieldSet = true; + } + if (("Set" == name)) + { + this.setField = value; + this.setFieldSet = true; + } + if (("Description" == name)) + { + this.descriptionField = value; + this.descriptionFieldSet = true; + } + if (("Modularize" == name)) + { + this.modularizeField = Column.ParseModularizeType(value); + this.modularizeFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum TypeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Column contains a path to a file that will be inserted into the column as a binary object. + /// If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation. + /// + binary, + + /// + /// Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set). + /// + @int, + + /// + /// Column contains a non-localizable string value. + /// + @string, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum CategoryType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + Text, + + UpperCase, + + LowerCase, + + Integer, + + DoubleInteger, + + TimeDate, + + Identifier, + + Property, + + Filename, + + WildCardFilename, + + Path, + + Paths, + + AnyPath, + + DefaultDir, + + RegPath, + + Formatted, + + FormattedSddl, + + Template, + + Condition, + + Guid, + + Version, + + Language, + + Binary, + + CustomSource, + + Cabinet, + + Shortcut, + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ModularizeType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// Column should not be modularized. This is the default value. + /// + None, + + /// + /// Column should be modularized. + /// + Column, + + /// + /// Column is a condition and should be modularized. + /// + Condition, + + /// + /// When the column is an primary or foreign key to the Icon table it should be modularized special. + /// + Icon, + + /// + /// Any Properties in the column should be modularized. + /// + Property, + + /// + /// Semi-colon list of keys, all of which need to be modularized. + /// + SemicolonDelimited, + } + } + + /// + /// Row data for a Custom Table + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Row : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private ISchemaElement parentElement; + + public Row() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); + childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Data))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Data" == childName)) + { + childValue = new Data(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Row", "http://wixtoolset.org/schemas/v4/wxs"); + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + } + } + + /// + /// Used for a Custom Table. Specifies the data for the parent Row and specified Column. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Data : ISchemaElement, ISetAttributes + { + + private string columnField; + + private bool columnFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// Specifies in which column to insert this data. + /// + public string Column + { + get + { + return this.columnField; + } + set + { + this.columnFieldSet = true; + this.columnField = value; + } + } + + /// + /// A data value + /// + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Data", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.columnFieldSet) + { + writer.WriteAttributeString("Column", this.columnField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Column" == name)) + { + this.columnField = value; + this.columnFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } + + /// + /// Use this element to ensure that a table appears in the installer database, even if its empty. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class EnsureTable : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of the table. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("EnsureTable", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + } + } + + /// + /// This element exposes advanced WiX functionality. Use this element to declare WiX variables + /// from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp + /// file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot + /// be used when an MSI file is being installed; it's a WiX-only concept. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class WixVariable : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private YesNoType overridableField; + + private bool overridableFieldSet; + + private string valueField; + + private bool valueFieldSet; + + private ISchemaElement parentElement; + + /// + /// The name of the variable. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// Set this value to 'yes' in order to make the variable's value overridable either by + /// another WixVariable entry or via the command-line option -d<name>=<value> + /// for light.exe. If the same variable is declared overridable in multiple places it + /// will cause an error (since WiX won't know which value is correct). The default value + /// is 'no'. + /// + public YesNoType Overridable + { + get + { + return this.overridableField; + } + set + { + this.overridableFieldSet = true; + this.overridableField = value; + } + } + + /// + /// The value of the variable. The value cannot be an empty string because that would + /// make it possible to accidentally set a column to null. + /// + public string Value + { + get + { + return this.valueField; + } + set + { + this.valueFieldSet = true; + this.valueField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("WixVariable", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.overridableFieldSet) + { + if ((this.overridableField == YesNoType.no)) + { + writer.WriteAttributeString("Overridable", "no"); + } + if ((this.overridableField == YesNoType.yes)) + { + writer.WriteAttributeString("Overridable", "yes"); + } + } + if (this.valueFieldSet) + { + writer.WriteAttributeString("Value", this.valueField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("Overridable" == name)) + { + this.overridableField = Enums.ParseYesNoType(value); + this.overridableFieldSet = true; + } + if (("Value" == name)) + { + this.valueField = value; + this.valueFieldSet = true; + } + } + } + + /// + /// Use this element to contain definitions for instance transforms. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class InstanceTransforms : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes + { + + private ElementCollection children; + + private string propertyField; + + private bool propertyFieldSet; + + private ISchemaElement parentElement; + + public InstanceTransforms() + { + ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); + childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Instance))); + this.children = childCollection0; + } + + public virtual IEnumerable Children + { + get + { + return this.children; + } + } + + [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] + public virtual IEnumerable this[System.Type childType] + { + get + { + return this.children.Filter(childType); + } + } + + /// + /// The Id of the Property who's value should change for each instance. + /// + public string Property + { + get + { + return this.propertyField; + } + set + { + this.propertyFieldSet = true; + this.propertyField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + public virtual void AddChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.AddElement(child); + child.ParentElement = this; + } + + public virtual void RemoveChild(ISchemaElement child) + { + if ((null == child)) + { + throw new ArgumentNullException("child"); + } + this.children.RemoveElement(child); + child.ParentElement = null; + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + ISchemaElement ICreateChildren.CreateChild(string childName) + { + if (String.IsNullOrEmpty(childName)) + { + throw new ArgumentNullException("childName"); + } + ISchemaElement childValue = null; + if (("Instance" == childName)) + { + childValue = new Instance(); + } + if ((null == childValue)) + { + throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); + } + return childValue; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("InstanceTransforms", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.propertyFieldSet) + { + writer.WriteAttributeString("Property", this.propertyField); + } + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) + { + ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); + childElement.OutputXml(writer); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Property" == name)) + { + this.propertyField = value; + this.propertyFieldSet = true; + } + } + } + + /// + /// Defines an instance transform for your product. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class Instance : ISchemaElement, ISetAttributes + { + + private string idField; + + private bool idFieldSet; + + private string productCodeField; + + private bool productCodeFieldSet; + + private string productNameField; + + private bool productNameFieldSet; + + private string upgradeCodeField; + + private bool upgradeCodeFieldSet; + + private ISchemaElement parentElement; + + /// + /// The identity of the instance transform. This value will define the name by which the instance + /// should be referred to on the command line. In addition, the value of the this attribute will + /// determine what the value of the property specified in Property attribute on InstanceTransforms + /// will change to for each instance. + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idFieldSet = true; + this.idField = value; + } + } + + /// + /// The ProductCode for this instance. + /// + public string ProductCode + { + get + { + return this.productCodeField; + } + set + { + this.productCodeFieldSet = true; + this.productCodeField = value; + } + } + + /// + /// The ProductName for this instance. + /// + public string ProductName + { + get + { + return this.productNameField; + } + set + { + this.productNameFieldSet = true; + this.productNameField = value; + } + } + + /// + /// The UpgradeCode for this instance. + /// + public string UpgradeCode + { + get + { + return this.upgradeCodeField; + } + set + { + this.upgradeCodeFieldSet = true; + this.upgradeCodeField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("Instance", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.idFieldSet) + { + writer.WriteAttributeString("Id", this.idField); + } + if (this.productCodeFieldSet) + { + writer.WriteAttributeString("ProductCode", this.productCodeField); + } + if (this.productNameFieldSet) + { + writer.WriteAttributeString("ProductName", this.productNameField); + } + if (this.upgradeCodeFieldSet) + { + writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Id" == name)) + { + this.idField = value; + this.idFieldSet = true; + } + if (("ProductCode" == name)) + { + this.productCodeField = value; + this.productCodeFieldSet = true; + } + if (("ProductName" == name)) + { + this.productNameField = value; + this.productNameFieldSet = true; + } + if (("UpgradeCode" == name)) + { + this.upgradeCodeField = value; + this.upgradeCodeFieldSet = true; + } + } + } + + /// + /// Simplifies authoring for major upgrades, including support for preventing downgrades. + /// + /// The parent Product element must have valid UpgradeCode and Version attributes. + /// + /// When the FindRelatedProducts action detects a related product installed on the system, + /// it appends the product code to the property named WIX_UPGRADE_DETECTED. After the + /// FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a + /// list of product codes, separated by semicolons (;), detected on the system. + /// + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class MajorUpgrade : ISchemaElement, ISetAttributes + { + + private YesNoType allowDowngradesField; + + private bool allowDowngradesFieldSet; + + private YesNoType allowSameVersionUpgradesField; + + private bool allowSameVersionUpgradesFieldSet; + + private YesNoType disallowField; + + private bool disallowFieldSet; + + private string downgradeErrorMessageField; + + private bool downgradeErrorMessageFieldSet; + + private string disallowUpgradeErrorMessageField; + + private bool disallowUpgradeErrorMessageFieldSet; + + private YesNoType migrateFeaturesField; + + private bool migrateFeaturesFieldSet; + + private YesNoType ignoreLanguageField; + + private bool ignoreLanguageFieldSet; + + private YesNoType ignoreRemoveFailureField; + + private bool ignoreRemoveFailureFieldSet; + + private string removeFeaturesField; + + private bool removeFeaturesFieldSet; + + private ScheduleType scheduleField; + + private bool scheduleFieldSet; + + private ISchemaElement parentElement; + + /// + /// When set to no (the default), products with lower version numbers are blocked from + /// installing when a product with a higher version is installed; the DowngradeErrorMessage + /// attribute must also be specified. + /// + /// When set to yes, any version can be installed over any other version. + /// + public YesNoType AllowDowngrades + { + get + { + return this.allowDowngradesField; + } + set + { + this.allowDowngradesFieldSet = true; + this.allowDowngradesField = value; + } + } + + /// + /// When set to no (the default), installing a product with the same version and upgrade code + /// (but different product code) is allowed and treated by MSI as two products. When set to yes, + /// WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat + /// a product with the same version as a major upgrade. + /// + /// This is useful when two product versions differ only in the fourth version field. MSI + /// specifically ignores that field when comparing product versions, so two products that + /// differ only in the fourth version field are the same product and need this attribute set to + /// yes to be detected. + /// + /// Note that because MSI ignores the fourth product version field, setting this attribute to + /// yes also allows downgrades when the first three product version fields are identical. + /// For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the + /// same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change + /// the first three version fields and omit this attribute to get the default of no. + /// + /// This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades + /// already allows two products with the same version number to upgrade each other. + /// + public YesNoType AllowSameVersionUpgrades + { + get + { + return this.allowSameVersionUpgradesField; + } + set + { + this.allowSameVersionUpgradesFieldSet = true; + this.allowSameVersionUpgradesField = value; + } + } + + /// + /// When set to yes, products with higer version numbers are blocked from + /// installing when a product with a lower version is installed; the UpgradeErrorMessage + /// attribute must also be specified. + /// + /// When set to no (the default), any version can be installed over any lower version. + /// + public YesNoType Disallow + { + get + { + return this.disallowField; + } + set + { + this.disallowFieldSet = true; + this.disallowField = value; + } + } + + /// + /// The message displayed if users try to install a product with a lower version number + /// when a product with a higher version is installed. Used only when AllowDowngrades + /// is no (the default). + /// + public string DowngradeErrorMessage + { + get + { + return this.downgradeErrorMessageField; + } + set + { + this.downgradeErrorMessageFieldSet = true; + this.downgradeErrorMessageField = value; + } + } + + /// + /// The message displayed if users try to install a product with a higer version number + /// when a product with a lower version is installed. Used only when Disallow + /// is yes. + /// + public string DisallowUpgradeErrorMessage + { + get + { + return this.disallowUpgradeErrorMessageField; + } + set + { + this.disallowUpgradeErrorMessageFieldSet = true; + this.disallowUpgradeErrorMessageField = value; + } + } + + /// + /// When set to yes (the default), the MigrateFeatureStates standard action will set the + /// feature states of the upgrade product to those of the installed product. + /// + /// When set to no, the installed features have no effect on the upgrade installation. + /// + public YesNoType MigrateFeatures + { + get + { + return this.migrateFeaturesField; + } + set + { + this.migrateFeaturesFieldSet = true; + this.migrateFeaturesField = value; + } + } + + /// + /// When set to yes, the Upgrade table rows will match any product with the same UpgradeCode. + /// + /// When set to no (the default), the Upgrade table rows will match only products with the + /// same UpgradeCode and ProductLanguage. + /// + public YesNoType IgnoreLanguage + { + get + { + return this.ignoreLanguageField; + } + set + { + this.ignoreLanguageFieldSet = true; + this.ignoreLanguageField = value; + } + } + + /// + /// When set to yes, failures removing the installed product during the upgrade will be + /// ignored. + /// + /// When set to no (the default), failures removing the installed product during the upgrade + /// will be considered a failure and, depending on the scheduling, roll back the upgrade. + /// + public YesNoType IgnoreRemoveFailure + { + get + { + return this.ignoreRemoveFailureField; + } + set + { + this.ignoreRemoveFailureFieldSet = true; + this.ignoreRemoveFailureField = value; + } + } + + /// + /// A formatted string that contains the list of features to remove from the installed + /// product. The default is to remove all features. Note that if you use formatted property + /// values that evaluate to an empty string, no features will be removed; only omitting + /// this attribute defaults to removing all features. + /// + public string RemoveFeatures + { + get + { + return this.removeFeaturesField; + } + set + { + this.removeFeaturesFieldSet = true; + this.removeFeaturesField = value; + } + } + + /// + /// Determines the scheduling of the RemoveExistingProducts standard action, which is when + /// the installed product is removed. The default is "afterInstallValidate" which removes + /// the installed product entirely before installing the upgrade product. It's slowest but + /// gives the most flexibility in changing components and features in the upgrade product. + /// + /// For more information, see + /// + public ScheduleType Schedule + { + get + { + return this.scheduleField; + } + set + { + this.scheduleFieldSet = true; + this.scheduleField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Parses a ScheduleType from a string. + /// + public static ScheduleType ParseScheduleType(string value) + { + ScheduleType parsedValue; + MajorUpgrade.TryParseScheduleType(value, out parsedValue); + return parsedValue; + } + + /// + /// Tries to parse a ScheduleType from a string. + /// + public static bool TryParseScheduleType(string value, out ScheduleType parsedValue) + { + parsedValue = ScheduleType.NotSet; + if (string.IsNullOrEmpty(value)) + { + return false; + } + if (("afterInstallValidate" == value)) + { + parsedValue = ScheduleType.afterInstallValidate; + } + else + { + if (("afterInstallInitialize" == value)) + { + parsedValue = ScheduleType.afterInstallInitialize; + } + else + { + if (("afterInstallExecute" == value)) + { + parsedValue = ScheduleType.afterInstallExecute; + } + else + { + if (("afterInstallExecuteAgain" == value)) + { + parsedValue = ScheduleType.afterInstallExecuteAgain; + } + else + { + if (("afterInstallFinalize" == value)) + { + parsedValue = ScheduleType.afterInstallFinalize; + } + else + { + parsedValue = ScheduleType.IllegalValue; + return false; + } + } + } + } + } + return true; + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("MajorUpgrade", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.allowDowngradesFieldSet) + { + if ((this.allowDowngradesField == YesNoType.no)) + { + writer.WriteAttributeString("AllowDowngrades", "no"); + } + if ((this.allowDowngradesField == YesNoType.yes)) + { + writer.WriteAttributeString("AllowDowngrades", "yes"); + } + } + if (this.allowSameVersionUpgradesFieldSet) + { + if ((this.allowSameVersionUpgradesField == YesNoType.no)) + { + writer.WriteAttributeString("AllowSameVersionUpgrades", "no"); + } + if ((this.allowSameVersionUpgradesField == YesNoType.yes)) + { + writer.WriteAttributeString("AllowSameVersionUpgrades", "yes"); + } + } + if (this.disallowFieldSet) + { + if ((this.disallowField == YesNoType.no)) + { + writer.WriteAttributeString("Disallow", "no"); + } + if ((this.disallowField == YesNoType.yes)) + { + writer.WriteAttributeString("Disallow", "yes"); + } + } + if (this.downgradeErrorMessageFieldSet) + { + writer.WriteAttributeString("DowngradeErrorMessage", this.downgradeErrorMessageField); + } + if (this.disallowUpgradeErrorMessageFieldSet) + { + writer.WriteAttributeString("DisallowUpgradeErrorMessage", this.disallowUpgradeErrorMessageField); + } + if (this.migrateFeaturesFieldSet) + { + if ((this.migrateFeaturesField == YesNoType.no)) + { + writer.WriteAttributeString("MigrateFeatures", "no"); + } + if ((this.migrateFeaturesField == YesNoType.yes)) + { + writer.WriteAttributeString("MigrateFeatures", "yes"); + } + } + if (this.ignoreLanguageFieldSet) + { + if ((this.ignoreLanguageField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreLanguage", "no"); + } + if ((this.ignoreLanguageField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreLanguage", "yes"); + } + } + if (this.ignoreRemoveFailureFieldSet) + { + if ((this.ignoreRemoveFailureField == YesNoType.no)) + { + writer.WriteAttributeString("IgnoreRemoveFailure", "no"); + } + if ((this.ignoreRemoveFailureField == YesNoType.yes)) + { + writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); + } + } + if (this.removeFeaturesFieldSet) + { + writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); + } + if (this.scheduleFieldSet) + { + if ((this.scheduleField == ScheduleType.afterInstallValidate)) + { + writer.WriteAttributeString("Schedule", "afterInstallValidate"); + } + if ((this.scheduleField == ScheduleType.afterInstallInitialize)) + { + writer.WriteAttributeString("Schedule", "afterInstallInitialize"); + } + if ((this.scheduleField == ScheduleType.afterInstallExecute)) + { + writer.WriteAttributeString("Schedule", "afterInstallExecute"); + } + if ((this.scheduleField == ScheduleType.afterInstallExecuteAgain)) + { + writer.WriteAttributeString("Schedule", "afterInstallExecuteAgain"); + } + if ((this.scheduleField == ScheduleType.afterInstallFinalize)) + { + writer.WriteAttributeString("Schedule", "afterInstallFinalize"); + } + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("AllowDowngrades" == name)) + { + this.allowDowngradesField = Enums.ParseYesNoType(value); + this.allowDowngradesFieldSet = true; + } + if (("AllowSameVersionUpgrades" == name)) + { + this.allowSameVersionUpgradesField = Enums.ParseYesNoType(value); + this.allowSameVersionUpgradesFieldSet = true; + } + if (("Disallow" == name)) + { + this.disallowField = Enums.ParseYesNoType(value); + this.disallowFieldSet = true; + } + if (("DowngradeErrorMessage" == name)) + { + this.downgradeErrorMessageField = value; + this.downgradeErrorMessageFieldSet = true; + } + if (("DisallowUpgradeErrorMessage" == name)) + { + this.disallowUpgradeErrorMessageField = value; + this.disallowUpgradeErrorMessageFieldSet = true; + } + if (("MigrateFeatures" == name)) + { + this.migrateFeaturesField = Enums.ParseYesNoType(value); + this.migrateFeaturesFieldSet = true; + } + if (("IgnoreLanguage" == name)) + { + this.ignoreLanguageField = Enums.ParseYesNoType(value); + this.ignoreLanguageFieldSet = true; + } + if (("IgnoreRemoveFailure" == name)) + { + this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); + this.ignoreRemoveFailureFieldSet = true; + } + if (("RemoveFeatures" == name)) + { + this.removeFeaturesField = value; + this.removeFeaturesFieldSet = true; + } + if (("Schedule" == name)) + { + this.scheduleField = MajorUpgrade.ParseScheduleType(value); + this.scheduleFieldSet = true; + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public enum ScheduleType + { + + IllegalValue = int.MaxValue, + + NotSet = -1, + + /// + /// (Default) Schedules RemoveExistingProducts after the InstallValidate standard + /// action. This scheduling removes the installed product entirely before installing + /// the upgrade product. It's slowest but gives the most flexibility in changing + /// components and features in the upgrade product. Note that if the installation + /// of the upgrade product fails, the machine will have neither version installed. + /// + afterInstallValidate, + + /// + /// Schedules RemoveExistingProducts after the InstallInitialize standard action. + /// This is similar to the afterInstallValidate scheduling, but if the installation + /// of the upgrade product fails, Windows Installer also rolls back the removal of + /// the installed product -- in other words, reinstalls it. + /// + afterInstallInitialize, + + /// + /// Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions. + /// This scheduling installs the upgrade product "on top of" the installed product then lets + /// RemoveExistingProducts uninstall any components that don't also exist in the upgrade product. + /// Note that this scheduling requires strict adherence to the component rules because it relies + /// on component reference counts to be accurate during installation of the upgrade product and + /// removal of the installed product. For more information, see + /// + afterInstallExecute, + + /// + /// Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions. + /// This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard + /// action instead of InstallExecute. + /// + afterInstallExecuteAgain, + + /// + /// Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the + /// afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the + /// installation transaction so if installation of the upgrade product fails, Windows Installer does + /// not roll back the removal of the installed product, so the machine will have both versions + /// installed. + /// + afterInstallFinalize, + } + } + + [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] + public class ProductSearch : ISchemaElement, ISetAttributes + { + + private string minimumField; + + private bool minimumFieldSet; + + private string maximumField; + + private bool maximumFieldSet; + + private string languageField; + + private bool languageFieldSet; + + private YesNoType includeMinimumField; + + private bool includeMinimumFieldSet; + + private YesNoType includeMaximumField; + + private bool includeMaximumFieldSet; + + private YesNoType excludeLanguagesField; + + private bool excludeLanguagesFieldSet; + + private string upgradeCodeField; + + private bool upgradeCodeFieldSet; + + private string contentField; + + private bool contentFieldSet; + + private ISchemaElement parentElement; + + /// + /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. + /// + public string Minimum + { + get + { + return this.minimumField; + } + set + { + this.minimumFieldSet = true; + this.minimumField = value; + } + } + + /// + /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. + /// + public string Maximum + { + get + { + return this.maximumField; + } + set + { + this.maximumFieldSet = true; + this.maximumField = value; + } + } + + /// + /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. + /// + public string Language + { + get + { + return this.languageField; + } + set + { + this.languageFieldSet = true; + this.languageField = value; + } + } + + /// + /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. + /// + public YesNoType IncludeMinimum + { + get + { + return this.includeMinimumField; + } + set + { + this.includeMinimumFieldSet = true; + this.includeMinimumField = value; + } + } + + /// + /// Set to "yes" to make the range of versions detected include the value specified in Maximum. + /// + public YesNoType IncludeMaximum + { + get + { + return this.includeMaximumField; + } + set + { + this.includeMaximumFieldSet = true; + this.includeMaximumField = value; + } + } + + /// + /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. + /// + public YesNoType ExcludeLanguages + { + get + { + return this.excludeLanguagesField; + } + set + { + this.excludeLanguagesFieldSet = true; + this.excludeLanguagesField = value; + } + } + + /// + /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. + /// + public string UpgradeCode + { + get + { + return this.upgradeCodeField; + } + set + { + this.upgradeCodeFieldSet = true; + this.upgradeCodeField = value; + } + } + + public string Content + { + get + { + return this.contentField; + } + set + { + this.contentFieldSet = true; + this.contentField = value; + } + } + + public virtual ISchemaElement ParentElement + { + get + { + return this.parentElement; + } + set + { + this.parentElement = value; + } + } + + /// + /// Processes this element and all child elements into an XmlWriter. + /// + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual void OutputXml(XmlWriter writer) + { + if ((null == writer)) + { + throw new ArgumentNullException("writer"); + } + writer.WriteStartElement("ProductSearch", "http://wixtoolset.org/schemas/v4/wxs"); + if (this.minimumFieldSet) + { + writer.WriteAttributeString("Minimum", this.minimumField); + } + if (this.maximumFieldSet) + { + writer.WriteAttributeString("Maximum", this.maximumField); + } + if (this.languageFieldSet) + { + writer.WriteAttributeString("Language", this.languageField); + } + if (this.includeMinimumFieldSet) + { + if ((this.includeMinimumField == YesNoType.no)) + { + writer.WriteAttributeString("IncludeMinimum", "no"); + } + if ((this.includeMinimumField == YesNoType.yes)) + { + writer.WriteAttributeString("IncludeMinimum", "yes"); + } + } + if (this.includeMaximumFieldSet) + { + if ((this.includeMaximumField == YesNoType.no)) + { + writer.WriteAttributeString("IncludeMaximum", "no"); + } + if ((this.includeMaximumField == YesNoType.yes)) + { + writer.WriteAttributeString("IncludeMaximum", "yes"); + } + } + if (this.excludeLanguagesFieldSet) + { + if ((this.excludeLanguagesField == YesNoType.no)) + { + writer.WriteAttributeString("ExcludeLanguages", "no"); + } + if ((this.excludeLanguagesField == YesNoType.yes)) + { + writer.WriteAttributeString("ExcludeLanguages", "yes"); + } + } + if (this.upgradeCodeFieldSet) + { + writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); + } + if (this.contentFieldSet) + { + writer.WriteString(this.contentField); + } + writer.WriteEndElement(); + } + + [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + void ISetAttributes.SetAttribute(string name, string value) + { + if (String.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name"); + } + if (("Minimum" == name)) + { + this.minimumField = value; + this.minimumFieldSet = true; + } + if (("Maximum" == name)) + { + this.maximumField = value; + this.maximumFieldSet = true; + } + if (("Language" == name)) + { + this.languageField = value; + this.languageFieldSet = true; + } + if (("IncludeMinimum" == name)) + { + this.includeMinimumField = Enums.ParseYesNoType(value); + this.includeMinimumFieldSet = true; + } + if (("IncludeMaximum" == name)) + { + this.includeMaximumField = Enums.ParseYesNoType(value); + this.includeMaximumFieldSet = true; + } + if (("ExcludeLanguages" == name)) + { + this.excludeLanguagesField = Enums.ParseYesNoType(value); + this.excludeLanguagesFieldSet = true; + } + if (("UpgradeCode" == name)) + { + this.upgradeCodeField = value; + this.upgradeCodeFieldSet = true; + } + if (("Content" == name)) + { + this.contentField = value; + this.contentFieldSet = true; + } + } + } +} diff --git a/src/WixToolset.Data/Symbol.cs b/src/WixToolset.Data/Symbol.cs index df2b5aeb..8bcdd4f0 100644 --- a/src/WixToolset.Data/Symbol.cs +++ b/src/WixToolset.Data/Symbol.cs @@ -29,25 +29,25 @@ namespace WixToolset.Data /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. /// /// Accessbility of the symbol. - public AccessModifier Access { get { return this.Row.Id.Access; } } + public AccessModifier Access => this.Row.Id.Access; /// /// Gets the name of the symbol. /// /// Name of the symbol. - public string Name { get; private set; } + public string Name { get; } /// /// Gets the row for this symbol. /// /// Row for this symbol. - public IntermediateTuple Row { get; private set; } + public IntermediateTuple Row { get; } /// /// Gets the section for the symbol. /// /// Section for the symbol. - public IntermediateSection Section { get; private set; } //{ get { return this.Row.Section; } } + public IntermediateSection Section { get; } /// /// Gets any duplicates of this symbol that are possible conflicts. diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index 6c184b63..2f283406 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -17,12 +17,12 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(FileTupleFields.FileSize), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(FileTupleFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ReadOnly), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.System), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Vital), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Checksum), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.ReadOnly), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.System), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.Checksum), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.Compressed), IntermediateFieldType.Bool), }, typeof(FileTuple)); } diff --git a/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs b/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs deleted file mode 100644 index 0e8fe8e7..00000000 --- a/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs +++ /dev/null @@ -1,55 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition ComponentOriginal = new IntermediateTupleDefinition(TupleDefinitionType.Component, new[] - { - new IntermediateFieldDefinition("Guid", IntermediateFieldType.String), - new IntermediateFieldDefinition("Directory", IntermediateFieldType.String), - new IntermediateFieldDefinition("Condition", IntermediateFieldType.String), - new IntermediateFieldDefinition("KeyPath", IntermediateFieldType.String), - new IntermediateFieldDefinition("LocalOnly", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("SourceOnly", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("Optional", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("RegistryKeyPath", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("SharedDllRefCount", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("Permanent", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("OdbcDataSource", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("Transitive", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("NeverOverwrite", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("x64", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("DisableRegistryReflection", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("UnisntallOnSupersedence", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("Shared", IntermediateFieldType.Bool), - }, typeof(ComponentTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - using System; - - public class ComponentTupleOriginal : IntermediateTuple - { - public ComponentTupleOriginal(IntermediateTupleDefinition definition) : base(definition, null, null) - { - if (definition != TupleDefinitions.ComponentOriginal) throw new ArgumentException(nameof(definition)); - } - - public string Guid - { - get => (string)this[0]?.Value; - set => this.Set(0, value); - } - - public string Directory - { - get => (string)this[1]?.Value; - set => this.Set(1, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs b/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs deleted file mode 100644 index 79fb31e5..00000000 --- a/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs +++ /dev/null @@ -1,88 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - //public static partial class TupleDefinitionNames - //{ - // public const string File = nameof(TupleDefinitionNames.File); - //} - - /* - [ - { - "File" : [ - { "Component" : "string" }, - { "Name" : "string" }, - { "Compressed" : "bool" }, - ] - }, - { - "Component": [ - { "Guid" : "string" }, - ] - }, - ] - */ - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition FileOriginal = new IntermediateTupleDefinition( - TupleDefinitionType.File, - new[] - { - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Component), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Size), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ReadOnly), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.System), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Vital), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Checksum), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Compressed), IntermediateFieldType.Bool), - }, - typeof(FileTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum FileTupleFieldsOriginal - { - Component, - Name, - ShortName, - Size, - Version, - Language, - ReadOnly, - Hidden, - System, - Vital, - Checksum, - Compressed, - } - - public class FileTupleOriginal : IntermediateTuple - { - public FileTupleOriginal() : base(TupleDefinitions.File, null, null) - { - } - - public FileTupleOriginal(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.File, sourceLineNumber, id) - { - } - - public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; - - public string Component - { - get => (string)this.Fields[(int)FileTupleFieldsOriginal.Component]?.Value; - set => this.Set((int)FileTupleFieldsOriginal.Component, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs b/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs deleted file mode 100644 index 0cb0feeb..00000000 --- a/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs +++ /dev/null @@ -1,55 +0,0 @@ -// 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. - -#if false -namespace WixToolset.Data.Tuples -{ - using System; - - //public enum TupleDefinitionType - //{ - // Component, - // File, - // MustBeFromAnExtension, - //} - - public static partial class TupleDefinitionsOriginal - { - public static readonly Version Version = new Version("4.0.0"); - - public static IntermediateTupleDefinition ByName(string name) - { - if (!Enum.TryParse(name, out TupleDefinitionType type) || type == TupleDefinitionType.MustBeFromAnExtension) - { - return null; - } - - return ByType(type); - } - - public static IntermediateTupleDefinition ByType(TupleDefinitionType type) - { - switch (type) - { - //case TupleDefinitionType.Component: - // return TupleDefinitions.Component; - - //case TupleDefinitionType.File: - // return TupleDefinitions.File; - - default: - throw new ArgumentOutOfRangeException(nameof(type)); - } - } - - //public static T CreateTuple() where T : IntermediateTuple - //{ - // if (TypeToName.TryGetValue(typeof(T), out var name)) - // { - // return ByName(name)?.CreateTuple(); - // } - - // return null; - //} - } -} -#endif diff --git a/src/WixToolset.Data/VerboseMessages.cs b/src/WixToolset.Data/VerboseMessages.cs new file mode 100644 index 00000000..8342aa5e --- /dev/null +++ b/src/WixToolset.Data/VerboseMessages.cs @@ -0,0 +1,234 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Resources; + + public static class VerboseMessages + { + public static Message BinderTempDirLocatedAt(string directory) + { + return Message(null, Ids.BinderTempDirLocatedAt, "Binder temporary directory located at '{0}'.", directory); + } + + public static Message BundleGuid(string bundleGuid) + { + return Message(null, Ids.BundleGuid, "Assigning bundle GUID '{0}'.", bundleGuid); + } + + public static Message CabFile(string fileId, string filePath) + { + return Message(null, Ids.CabFile, "Cabbing file {0} from '{1}'.", fileId, filePath); + } + + public static Message CabinetsSplitInParallel() + { + return Message(null, Ids.CabinetsSplitInParallel, "Multiple Cabinets with Large Files are splitting simultaneously. This current cabinet is waiting on a shared resource and splitting will resume when the other splitting has completed."); + } + + public static Message ConnectingMergeModule(string modulePath, string feature) + { + return Message(null, Ids.ConnectingMergeModule, "Connecting merge module '{0}' to feature '{1}'.", modulePath, feature); + } + + public static Message CopyFile(string sourceFile, string destinationFile) + { + return Message(null, Ids.CopyFile, "Copying file '{0}' to '{1}'.", sourceFile, destinationFile); + } + + public static Message CopyingExternalPayload(string payload, string outputDirectory) + { + return Message(null, Ids.CopyingExternalPayload, "Copying external payload from '{0}' to '{1}'.", payload, outputDirectory); + } + + public static Message CreateCabinet(string cabinet) + { + return Message(null, Ids.CreateCabinet, "Creating cabinet '{0}'.", cabinet); + } + + public static Message CreateDirectory(string directory) + { + return Message(null, Ids.CreateDirectory, "The directory '{0}' does not exist, creating it now.", directory); + } + + public static Message CreatingCabinetFiles() + { + return Message(null, Ids.CreatingCabinetFiles, "Creating cabinet files."); + } + + public static Message DecompilingTable(string tableName) + { + return Message(null, Ids.DecompilingTable, "Decompiling the {0} table.", tableName); + } + + public static Message EmbeddingContainer(string container, long size, string compression) + { + return Message(null, Ids.EmbeddingContainer, "Embedding container '{0}' ({1} bytes) with '{2}' compression.", container, size, compression); + } + + public static Message GeneratingBundle(string bundleFile, string stubFile) + { + return Message(null, Ids.GeneratingBundle, "Generating Burn bundle '{0}' from stub '{1}'.", bundleFile, stubFile); + } + + public static Message GeneratingDatabase() + { + return Message(null, Ids.GeneratingDatabase, "Generating database."); + } + + public static Message ImportBinaryStream(string streamSource) + { + return Message(null, Ids.ImportBinaryStream, "Importing binary stream from '{0}'.", streamSource); + } + + public static Message ImportIconStream(string streamSource) + { + return Message(null, Ids.ImportIconStream, "Importing icon stream from '{0}'.", streamSource); + } + + public static Message ImportingStreams() + { + return Message(null, Ids.ImportingStreams, "Importing streams."); + } + + public static Message LayingOutMedia() + { + return Message(null, Ids.LayingOutMedia, "Laying out media."); + } + + public static Message LoadingPayload(string payload) + { + return Message(null, Ids.LoadingPayload, "Loading payload '{0}' into container.", payload); + } + + public static Message MergingMergeModule(string modulePath) + { + return Message(null, Ids.MergingMergeModule, "Merging merge module '{0}'.", modulePath); + } + + public static Message MergingModules() + { + return Message(null, Ids.MergingModules, "Merging modules."); + } + + public static Message MoveFile(string sourceFile, string destinationFile) + { + return Message(null, Ids.MoveFile, "Moving file '{0}' to '{1}'.", sourceFile, destinationFile); + } + + public static Message OpeningMergeModule(string modulePath, Int16 language) + { + return Message(null, Ids.OpeningMergeModule, "Opening merge module '{0}' with language '{1}'.", modulePath, language); + } + + public static Message RemoveDestinationFile(string destinationFile) + { + return Message(null, Ids.RemoveDestinationFile, "The destination file '{0}' already exists, attempting to remove it.", destinationFile); + } + + public static Message ResequencingMergeModuleFiles() + { + return Message(null, Ids.ResequencingMergeModuleFiles, "Resequencing files from all merge modules."); + } + + public static Message ResolvingManifest(string manifestFile) + { + return Message(null, Ids.ResolvingManifest, "Generating resolved manifest '{0}'.", manifestFile); + } + + public static Message ReusingCabCache(SourceLineNumber sourceLineNumbers, string cabinetName, string source) + { + return Message(sourceLineNumbers, Ids.ReusingCabCache, "Reusing cabinet '{0}' from cabinet cache path: '{1}'.", cabinetName, source); + } + + public static Message SetCabbingThreadCount(string threads) + { + return Message(null, Ids.SetCabbingThreadCount, "There will be '{0}' threads used to produce CAB files.", threads); + } + + public static Message SwitchingToPerUserPackage(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.SwitchingToPerUserPackage, "Bundle switching from per-machine to per-user due to addition of per-user package '{0}'.", path); + } + + public static Message UpdatingFileInformation() + { + return Message(null, Ids.UpdatingFileInformation, "Updating file information."); + } + + public static Message ValidatedDatabase(long size) + { + return Message(null, Ids.ValidatedDatabase, "Validation complete: {0:N0}ms elapsed.", size); + } + + public static Message ValidatingDatabase() + { + return Message(null, Ids.ValidatingDatabase, "Validating database."); + } + + public static Message ValidationInfo(string ice, string message) + { + return Message(null, Ids.ValidationInfo, "{0}: {1}", ice, message); + } + + public static Message ValidationSerialized() + { + return Message(null, Ids.ValidationSerialized, "Multiple packages cannot reliably be validated simultaneously. This validation will resume when the other package being validated has completed."); + } + + public static Message ValidatorTempDirLocatedAt(string directory) + { + return Message(null, Ids.ValidatorTempDirLocatedAt, "Validator temporary directory located at '{0}'.", directory); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, format, args); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, resourceManager, resourceName, args); + } + + public enum Ids + { + ImportBinaryStream = 9000, + ImportIconStream = 9001, + CopyFile = 9002, + MoveFile = 9003, + CreateDirectory = 9004, + RemoveDestinationFile = 9005, + CabFile = 9006, + UpdatingFileInformation = 9007, + GeneratingDatabase = 9008, + MergingModules = 9009, + CreatingCabinetFiles = 9010, + ImportingStreams = 9011, + LayingOutMedia = 9012, + DecompilingTable = 9013, + ValidationInfo = 9014, + CreateCabinet = 9015, + ValidatingDatabase = 9016, + OpeningMergeModule = 9017, + MergingMergeModule = 9018, + ConnectingMergeModule = 9019, + ResequencingMergeModuleFiles = 9020, + BinderTempDirLocatedAt = 9021, + ValidatorTempDirLocatedAt = 9022, + GeneratingBundle = 9023, + ResolvingManifest = 9024, + LoadingPayload = 9025, + BundleGuid = 9026, + CopyingExternalPayload = 9027, + EmbeddingContainer = 9028, + SwitchingToPerUserPackage = 9029, + SetCabbingThreadCount = 9030, + ValidationSerialized = 9031, + ReusingCabCache = 9032, + CabinetsSplitInParallel = 9033, + ValidatedDatabase = 9034, + } + } +} diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs new file mode 100644 index 00000000..25e189bb --- /dev/null +++ b/src/WixToolset.Data/WarningMessages.cs @@ -0,0 +1,778 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Resources; + + public static class WarningMessages + { + public static Message AccessDeniedForDeletion(SourceLineNumber sourceLineNumbers, string tempFilesBasePath) + { + return Message(sourceLineNumbers, Ids.AccessDeniedForDeletion, "Access denied; cannot delete '{0}'.", tempFilesBasePath); + } + + public static Message AccessDeniedForSettingAttributes(SourceLineNumber sourceLineNumbers, string filePath) + { + return Message(sourceLineNumbers, Ids.AccessDeniedForSettingAttributes, "Access denied; cannot set attributes on '{0}'.", filePath); + } + + public static Message ActionSequenceCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2, int sequenceNumber) + { + return Message(sourceLineNumbers, Ids.ActionSequenceCollision, "The {0} table contains actions '{1}' and '{2}' which both have the same sequence number {3}. Please change the sequence number for one of these actions to avoid an ICE warning.", sequenceTableName, actionName1, actionName2, sequenceNumber); + } + + public static Message ActionSequenceCollision2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ActionSequenceCollision2, "The location of the action related to previous warning."); + } + + public static Message AllChangesIncludedInPatch(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.AllChangesIncludedInPatch, "All changes between the baseline and upgraded packages will be included in the patch except for any change to the ProductCode. The 'All' element is supported primarily for testing purposes and negates the benefits of patch families."); + } + + public static Message AmbiguousFileOrDirectoryName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.AmbiguousFileOrDirectoryName, "The {0}/@{1} attribute's value '{2}' is an ambiguous short name because it ends with a '~' character followed by a number. Under some circumstances, this name could resolve to more than one file or directory name and lead to unpredictable results (for example 'MICROS~1' may correspond to 'Microsoft Shared' or 'Microsoft Foo' or literally 'Micros~1').", elementName, attributeName, value); + } + + public static Message AttributeShouldContain(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string expectedContains, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.AttributeShouldContain, "The {0}/@{1} attribute value '{2}' should contain '{3}' when the {0}/@{4} attribute is set to '{5}'.", elementName, attributeName, attributeValue, expectedContains, otherAttributeName, otherAttributeValue); + } + + public static Message BackslashTerminateInlineDirectorySyntax(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.BackslashTerminateInlineDirectorySyntax, "Backslash terminate the {0}/@{1} attribute's inline directory value '{2}'. A backslash ensures a directory name will not be mistaken for a directory reference.", elementName, attributeName, value); + } + + public static Message BadColumnDataIgnored(SourceLineNumber sourceLineNumbers, string value, string tableName, string columnName) + { + return Message(sourceLineNumbers, Ids.BadColumnDataIgnored, "The value '{0}' in table '{1}', column '{2}' is invalid according to the column's validation information. The decompiled output includes a best-effort representation of this value.", value, tableName, columnName); + } + + public static Message CannotUpdateCabCache(SourceLineNumber sourceLineNumbers, string cabinetPath, string detail) + { + return Message(sourceLineNumbers, Ids.CannotUpdateCabCache, "Cannot update the timestamp of cached cabinet: '{0}'. If the timestamp is not updated, the build may rebuild more than is necessary. To fix the issue, ensure that the cabinet file is writable, error: {1}", cabinetPath, detail); + } + + public static Message ColumnsIncompatibleWithInstallerVersion(SourceLineNumber sourceLineNumbers, string tableName, int productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.ColumnsIncompatibleWithInstallerVersion, "Table '{0}' uses columns that require a version of Windows Installer greater than specified in your package ('{1}').", tableName, productInstallerVersion); + } + + public static Message CopyFileFileIdUseless(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CopyFileFileIdUseless, "Since the CopyFile/@FileId attribute was specified but none of the following attributes (DestinationName, DestinationDirectory, DestinationProperty) were specified, this authoring will not do anything."); + } + + public static Message DangerousTableInMergeModule(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.DangerousTableInMergeModule, "Merge modules should not contain the '{0}' table because all merge conflicts cannot avoided. However, this warning can be suppressed if all of the consumers of the Merge Module agree to not duplicate identifiers in the '{0}' table.", tableName); + } + + public static Message DecompiledStandardActionRelativelyScheduledInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.DecompiledStandardActionRelativelyScheduledInModule, "The {0} table contains a standard action '{1}' that does not have a sequence number specified. A value in the Sequence column is required for standard actions in a merge module. Remove the action from the decompiled authoring to have WiX automatically sequence it.", sequenceTableName, actionName); + } + + public static Message DecompilingAsCustomTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.DecompilingAsCustomTable, "The {0} table is being decompiled as a custom table.", tableName); + } + + public static Message DefaultLanguageUsedForUnversionedFile(SourceLineNumber sourceLineNumbers, string language, string fileId) + { + return Message(sourceLineNumbers, Ids.DefaultLanguageUsedForUnversionedFile, "The DefaultLanguage '{0}' was used for file '{1}' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning.", language, fileId); + } + + public static Message DefaultLanguageUsedForVersionedFile(SourceLineNumber sourceLineNumbers, string language, string fileId) + { + return Message(sourceLineNumbers, Ids.DefaultLanguageUsedForVersionedFile, "The DefaultLanguage '{0}' was used for file '{1}' which has no language. Specifying a language that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Either specify a value for DefaultLanguage or put the language in the version information resource to eliminate this warning.", language, fileId); + } + + public static Message DefaultVersionUsedForUnversionedFile(SourceLineNumber sourceLineNumbers, string version, string fileId) + { + return Message(sourceLineNumbers, Ids.DefaultVersionUsedForUnversionedFile, "The DefaultVersion '{0}' was used for file '{1}' which has no version. No entry for this file will be placed in the MsiFileHash table. For unversioned files, specifying a version that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Version the resource to eliminate this warning.", version, fileId); + } + + public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated.", elementName, attributeName); + } + + public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string newAttributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated. Please use the {2} attribute instead.", elementName, attributeName, newAttributeName); + } + + public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string newAttributeName1, string newAttributeName2) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated. Please use the {2} or {3} attribute instead.", elementName, attributeName, newAttributeName1, newAttributeName2); + } + + public static Message DeprecatedAttributeValue(SourceLineNumber sourceLineNumbers, string attributeValue, string elementName, string attributeName, string newAttributeValue) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Please use \"{3}\" instead.", attributeValue, elementName, attributeName, newAttributeValue); + } + + public static Message DeprecatedCommandLineSwitch(string oldSwitch) + { + return Message(null, Ids.DeprecatedCommandLineSwitch, "The command line switch '{0}' is deprecated.", oldSwitch); + } + + public static Message DeprecatedCommandLineSwitch(string oldSwitch, string newSwitch) + { + return Message(null, Ids.DeprecatedCommandLineSwitch, "The command line switch '{0}' is deprecated. Please use '{1}' instead.", oldSwitch, newSwitch); + } + + public static Message DeprecatedComponentGroupId(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.DeprecatedComponentGroupId, "The {0}/@Id attribute contains invalid characters for an identifier. Being able to use invalid identifier characters for a {0} identifier has been deprecated.", elementName); + } + + public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated.", elementName); + } + + public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName) + { + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} element instead.", elementName, newElementName); + } + + public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName1, string newElementName2) + { + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} or {2} element instead.", elementName, newElementName1, newElementName2); + } + + public static Message DeprecatedIgnoreModularizationElement(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedIgnoreModularizationElement, "The IgnoreModularization element has been deprecated. Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attribute instead."); + } + + public static Message DeprecatedLocalizationVariablePrefix(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.DeprecatedLocalizationVariablePrefix, "The localization variable $(loc.{0}) uses a deprecated prefix '$'. Please use the '!' prefix instead. Since the prefix '$' is also used by the preprocessor, it has been deprecated to avoid namespace collisions.", variableId); + } + + public static Message DeprecatedLongNameAttribute(SourceLineNumber sourceLineNumbers, string elementName, string longNameAttributeName, string nameAttributeName, string shortNameAttributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedLongNameAttribute, "The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute.", elementName, longNameAttributeName, nameAttributeName, shortNameAttributeName); + } + + public static Message DeprecatedModuleGuidAttribute(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedModuleGuidAttribute, "The Module/@Guid attribute is deprecated merge modules use their package code as the modularization guid. Use the Package/@Id attribute instead."); + } + + public static Message DeprecatedPackageCompressedAttribute(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedPackageCompressedAttribute, "The Package/@Compressed attribute is deprecated under the Module element because merge modules must always be compressed."); + } + + public static Message DeprecatedPatchSequenceTargetAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedPatchSequenceTargetAttribute, "The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family.", elementName, attributeName); + } + + public static Message DeprecatedPreProcVariable(SourceLineNumber sourceLineNumbers, string oldName, string newName) + { + return Message(sourceLineNumbers, Ids.DeprecatedPreProcVariable, "The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead.", oldName, newName); + } + + public static Message DeprecatedQuestionMarksGuid(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedQuestionMarksGuid, "The {0}/@{1} attribute's value '????????-????-????-????-????????????' has been deprecated. Use '*' instead.", elementName, attributeName); + } + + public static Message DeprecatedRegistryElement(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedRegistryElement, "The Registry element has been deprecated. Please use one of the new elements which replaces its functionality: RegistryKey for creating registry keys, RegistryValue for writing registry values, RemoveRegistryKey for removing registry keys, and RemoveRegistryValue for removing registry values."); + } + + public static Message DeprecatedRegistryKeyActionAttribute(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedRegistryKeyActionAttribute, "The RegistryKey/@Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead."); + } + + public static Message DeprecatedTable(string tableName) + { + return Message(null, Ids.DeprecatedTable, "The {0} table is not supported by the WiX toolset because it has been deprecated by the Windows Installer team. Any information in this table will be left out of the decompiled output.", tableName); + } + + public static Message DeprecatedUpgradeProperty(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedUpgradeProperty, "Specifying a Property element as a child of an Upgrade element has been deprecated. Please specify this Property element as a child of a different element such as Product or Fragment."); + } + + public static Message DirectoryInUse(SourceLineNumber sourceLineNumbers, string filePath) + { + return Message(sourceLineNumbers, Ids.DirectoryInUse, "The directory '{0}' is in use and cannot be deleted.", filePath); + } + + public static Message DirectoryRedundantNames(SourceLineNumber sourceLineNumbers, string elementName, string shortNameAttributeName, string longNameAttributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.DirectoryRedundantNames, "The {0} element's {1} and {2} values are both '{3}'. This is redundant; the {2} attribute should be removed.", elementName, shortNameAttributeName, longNameAttributeName, attributeValue); + } + + public static Message DirectoryRedundantNames(SourceLineNumber sourceLineNumbers, string elementName, string sourceNameAttributeName, string longSourceAttributeName) + { + return Message(sourceLineNumbers, Ids.DirectoryRedundantNames, "The {0} element's source and destination names are identical. This is redundant; the {1} and {2} attributes should be removed if present.", elementName, sourceNameAttributeName, longSourceAttributeName); + } + + public static Message DiscardedRollbackBoundary(SourceLineNumber sourceLineNumbers, string rollbackBoundaryId) + { + return Message(sourceLineNumbers, Ids.DiscardedRollbackBoundary, "The RollbackBoundary '{0}' was discarded because it was not followed by a package. Without a package the rollback boundary doesn't do anything. Verify that the RollbackBoundary element is not followed by another RollbackBoundary and that the element is not at the end of the chain.", rollbackBoundaryId); + } + + public static Message DiscouragedAllUsersValue(SourceLineNumber sourceLineNumbers, string path, string machineOrUser) + { + return Message(sourceLineNumbers, Ids.DiscouragedAllUsersValue, "Bundles require a package to be either per-machine or per-user. The MSI '{0}' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-{1} and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead.", path, machineOrUser); + } + + public static Message DownloadUrlNotSupportedForAttachedContainers(SourceLineNumber sourceLineNumbers, string containerId) + { + return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForAttachedContainers, "The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored.", containerId); + } + + public static Message DownloadUrlNotSupportedForEmbeddedPayloads(SourceLineNumber sourceLineNumbers, string payloadId) + { + return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForEmbeddedPayloads, "The Payload '{0}' is embedded but included a @DownloadUrl attribute. Embedded Payloads cannot be downloaded so the download URL is being ignored.", payloadId); + } + + public static Message DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(SourceLineNumber sourceLineNumbers, string componentId, string guid) + { + return Message(sourceLineNumbers, Ids.DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions, "Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer but works as long as all components have mutually-exclusive conditions. It is recommended to give each component its own unique GUID.", componentId, guid); + } + + public static Message DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) + { + return Message(sourceLineNumbers, Ids.DuplicatePrimaryKey, "The primary key '{0}' is duplicated in table '{1}' and will be ignored. Please remove one of the entries or rename a part of the primary key to avoid the collision.", primaryKey, tableName); + } + + public static Message EmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.EmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. If you want the value to be null or empty, simply remove the entire attribute.", elementName, attributeName); + } + + public static Message EmptyCabinet(SourceLineNumber sourceLineNumbers, string cabinetName) + { + return Message(sourceLineNumbers, Ids.EmptyCabinet, "The cabinet '{0}' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it.", cabinetName); + } + + public static Message EmptyCabinet(SourceLineNumber sourceLineNumbers, string cabinetName, Boolean isPatch) + { + return Message(sourceLineNumbers, Ids.EmptyCabinet, "The cabinet '{0}' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet.", cabinetName, isPatch); + } + + public static Message ExpectedForeignRow(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, string columnName, string columnValue, string foreignTableName) + { + return Message(sourceLineNumbers, Ids.ExpectedForeignRow, "The {0} table contains a row with primary key(s) '{1}' whose {2} column contains a value, '{3}', which specifies a foreign key relationship with the {4} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output.", tableName, primaryKey, columnName, columnValue, foreignTableName); + } + + public static Message ExpectedForeignRow(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, string columnName1, string columnValue1, string columnName2, string columnValue2, string foreignTableName) + { + return Message(sourceLineNumbers, Ids.ExpectedForeignRow, "The {0} table contains a row with primary key(s) '{1}' whose {2} and {4} columns contain the values, '{3}' and '{5}', which specify a foreign key relationship with the {6} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output.", tableName, primaryKey, columnName1, columnValue1, columnName2, columnValue2, foreignTableName); + } + + public static Message ExternalCabsAreNotSigned(string databaseFile) + { + return Message(null, Ids.ExternalCabsAreNotSigned, "The installer database '{0}' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to run the insignia tool as part of your build.", databaseFile); + } + + public static Message FailedToDeleteTempDir(string directory) + { + return Message(null, Ids.FailedToDeleteTempDir, "Failed to delete temporary directory: {0}", directory); + } + + public static Message FileSearchFileNameIssue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) + { + return Message(sourceLineNumbers, Ids.FileSearchFileNameIssue, "The {0} element's {1} and {2} attributes were found. Due to a bug with the Windows Installer, only the Name or LongName attribute should be used. Use the Name attribute for 8.3 compliant file names and the LongName attribute for longer ones. When using only the LongName attribute, ICE03 should be ignored for the Signature table's FileName column.", elementName, attributeName1, attributeName2); + } + + public static Message GeneratedShortFileNameConflict(SourceLineNumber sourceLineNumbers, string shortFileName) + { + return Message(sourceLineNumbers, Ids.GeneratedShortFileNameConflict, "The short file name '{0}' was generated for multiple files that may be installed to the same directory. This could be due to conflicting long file names specified by the File/@Name attribute. If that is the case, please resolve the conflict in those attributes. Otherwise, please manually set the File/@ShortName attribute on the conflicting row to fix the collision. If one of the colliding files was added via a patch, that short file name should be specified manually to avoid disturbing the original short file name.", shortFileName); + } + + public static Message GeneratedShortFileNameConflict2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.GeneratedShortFileNameConflict2, "The location of a conflicting generated short file name related to the previous warning."); + } + + public static Message IdentifierCannotBeModularized(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string identifier, int length, int maximumLength) + { + return Message(sourceLineNumbers, Ids.IdentifierCannotBeModularized, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. It will be too long if modularized. The identifier shouldn't be longer than {4} characters long to allow for modularization (appending a guid for merge modules).", elementName, attributeName, identifier, length, maximumLength); + } + + public static Message IdentifierTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IdentifierTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for an identifier. Standard identifiers are 72 characters long or less.", elementName, attributeName, value); + } + + public static Message IllegalActionInSequence(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.IllegalActionInSequence, "The {0} table contains an action '{1}' which is not allowed in this table. If this is a standard action then it is not valid for this table, if it is a custom action or dialog then this table does not accept actions of that type. This action will be left out of the decompiled output.", sequenceTableName, actionName); + } + + public static Message IllegalColumnValue(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) + { + return Message(sourceLineNumbers, Ids.IllegalColumnValue, "The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output.", tableName, columnName, value); + } + + public static Message IllegalPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.IllegalPatchCreationTable, "The {0} table is not legal in a patch creation file. The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message IllegalRegistryKeyPath(SourceLineNumber sourceLineNumbers, string componentName, string registryId) + { + return Message(sourceLineNumbers, Ids.IllegalRegistryKeyPath, "Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath.", componentName, registryId); + } + + public static Message ImplicitComponentPrimaryFeature(string componentId) + { + return Message(null, Ids.ImplicitComponentPrimaryFeature, "The component '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the ComponentRef/@Primary, ComponentGroupRef/@Primary, or FeatureGroupRef/@Primary locations for this component.", componentId); + } + + public static Message ImplicitlyPerUser(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.ImplicitlyPerUser, "The MSI '{0}' does not explicitly indicate that it is a per-user package even though the ALLUSERS Property is blank. This suggests a per-user package so the Bundle will assume the package is per-user. If possible, use the Package/@InstallScope attribute to be explicit instead.", path); + } + + public static Message ImplicitMergeModulePrimaryFeature(string componentId) + { + return Message(null, Ids.ImplicitMergeModulePrimaryFeature, "The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component.", componentId); + } + + public static Message InsufficientPermissionHarvestTypeLib() + { + return Message(null, Ids.InsufficientPermissionHarvestTypeLib, "Not enough permissions to harvest type library. On Windows Vista, you must either run Heat elevated, or install Windows Vista SP1 (or higher)."); + } + + public static Message InvalidAttributeCombination(SourceLineNumber sourceLineNumbers, string attrib1, string attrib2, string name, string value) + { + return Message(sourceLineNumbers, Ids.InvalidAttributeCombination, "It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}.", attrib1, attrib2, name, value); + } + + public static Message InvalidHigherInstallerVersionInModule(SourceLineNumber sourceLineNumbers, string moduleId, int moduleInstallerVersion, int productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.InvalidHigherInstallerVersionInModule, "Merge module '{0}' has an installer version of {1} which is greater than the product's installer version of {2}. Merging a module with a higher installer version than the product it is being merged into can result in invalid values in the resulting msi. You must set the Package/@InstallerVersion attribute to {1} or greater to merge this merge module into your product.", moduleId, moduleInstallerVersion, productInstallerVersion); + } + + public static Message InvalidModuleOrBundleVersion(SourceLineNumber sourceLineNumbers, string moduleOrBundle, string version) + { + return Message(sourceLineNumbers, Ids.InvalidModuleOrBundleVersion, "Invalid {0}/@Version '{1}'. {0} version has a max value of \"65535.65535.65535.65535\" and must be all numeric.", moduleOrBundle, version); + } + + public static Message InvalidRemoveFile(SourceLineNumber sourceLineNumbers, string file, string component) + { + return Message(sourceLineNumbers, Ids.InvalidRemoveFile, "File '{0}' was removed from component '{1}'. Removing a file from a component will not result in the file being removed by a patch. You should author a RemoveFile element in your component to remove the file from the installation if you want the file to be removed.", file, component); + } + + public static Message MajorUpgradePatchNotRecommended() + { + return Message(null, Ids.MajorUpgradePatchNotRecommended, "Changing the ProductCode in a patch is not recommended because the patch cannot be uninstalled nor can it be sequenced along with other patches for the target product. See http://msdn2.microsoft.com/library/aa367571.aspx for more information."); + } + + public static Message MediaExternalCabinetFilenameIllegal(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.MediaExternalCabinetFilenameIllegal, "The {0}/@{1} attribute's value, '{2}', is not a valid external cabinet name. Legal cabinet names should follow 8.3 format: they should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the following may be used: \\ ? | > < : / * \" + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms).", elementName, attributeName, value); + } + + public static Message MergeRescheduledAction(SourceLineNumber sourceLineNumbers, string tableName, string actionName, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeRescheduledAction, "The {0} table contains an action '{1}' which cannot be merged from the merge module '{2}'. This action is likely colliding with an action in the database that is being created. The colliding action may have been authored in the database or merged in from another merge module. If this is a standard action, it is likely colliding due to a difference in the condition for the action in the database and merge module. If this is a custom action, it should only be declared in the database or one merge module.", tableName, actionName, mergeModuleFile); + } + + public static Message MergeTableFailed(SourceLineNumber sourceLineNumbers, string tableName, string primaryKeys, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeTableFailed, "The {0} table contains a row with primary key(s) '{1}' which cannot be merged from the merge module '{2}'. This is likely due to collision of rows with the same primary key(s) (but other different values in other columns) between the database and the merge module.", tableName, primaryKeys, mergeModuleFile); + } + + public static Message MissingUpgradeCode(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MissingUpgradeCode, "The Product/@UpgradeCode attribute was not found; it is strongly recommended to ensure that this product can be upgraded."); + } + + public static Message NestedInstall(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) + { + return Message(sourceLineNumbers, Ids.NestedInstall, "The {0}.{1} column's value, '{2}', indicates a nested install. Nested installations are not supported by the WiX team. This action will be left out of the decompiled output.", tableName, columnName, value); + } + + public static Message NewComponentAddedToExistingFeature(SourceLineNumber sourceLineNumbers, string component, string feature, string transformPath) + { + return Message(sourceLineNumbers, Ids.NewComponentAddedToExistingFeature, "Component '{0}' was added to feature '{1}' in the transform '{2}'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch.", component, feature, transformPath); + } + + public static Message NoPerMachineDependencies(SourceLineNumber sourceLineNumbers, string packageId) + { + return Message(sourceLineNumbers, Ids.NoPerMachineDependencies, "Bundle dependencies will not be registered on per-machine package '{0}' for a per-user bundle. Either make sure that all packages are installed per-machine, or author any per-machine dependencies as permanent packages.", packageId); + } + + public static Message NotABinaryWixlib(string wixlib) + { + return Message(null, Ids.NotABinaryWixlib, "'{0}' is not a binary Wixlib and has no embedded files.", wixlib); + } + + public static Message NullMsiAssemblyNameValue(SourceLineNumber sourceLineNumbers, string componentName, string name) + { + return Message(sourceLineNumbers, Ids.NullMsiAssemblyNameValue, "The assembly in component '{0}' has a null or empty {1} assembly name value.", componentName, name); + } + + public static Message OrphanedProgId(SourceLineNumber sourceLineNumbers, string progId) + { + return Message(sourceLineNumbers, Ids.OrphanedProgId, "ProgId '{0}' is orphaned. It has no associated component, so it will never install. Every ProgId should have either a parent Class element or child Extension element (at any distance).", progId); + } + + public static Message PackageCodeSet(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.PackageCodeSet, "The Package/@Id attribute has been set. Setting this attribute will allow nonidentical .msi files to have the same package code. This may be a problem because the package code is the primary identifier used by the installer to search for and validate the correct package for a given installation. If a package is changed without changing the package code, the installer may not use the newer package if both are still accessible to the installer. Please remove the Id attribute in order to automatically generate a new package code for each new .msi file."); + } + + public static Message PatchTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.PatchTable, "The {0} table is added to the install package by a transform from a patch package (.msp) and not authored directly into an install package (.msi). The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message PerUserButForcingPerMachine(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.PerUserButForcingPerMachine, "The MSI '{0}' is a per-user package being forced to per-machine. Verify that the MsiPackage/@ForcePerMachine attribute is expected and that the per-user package works correctly when forced to install per-machine.", path); + } + + public static Message PlaceholderValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.PlaceholderValue, "The {0}/@{1} attribute's value, '{2}', is a placeholder value used in example files. Please replace this placeholder with the appropriate value.", elementName, attributeName, value); + } + + public static Message PossiblyIncorrectTypelibVersion(SourceLineNumber sourceLineNumbers, string id) + { + return Message(sourceLineNumbers, Ids.PossiblyIncorrectTypelibVersion, "The Typelib table entry with Id '{0}' could have an incorrect version of '256.0'. InstallShield has a bug relating to the Typelib Version column: it will incorrectly set the value '65536' in to represent version '1.0'. However, this number actually corresponds to version '256.0'. This bug will not affect the typelib version that is registered during installation, however, it will prevent the Windows Installer from correctly identifying whether a typelib is already installed and lead to unnecessary reinstallations of the typelib.", id); + } + + public static Message PreprocessorUnknownPragma(SourceLineNumber sourceLineNumbers, string pragmaName) + { + return Message(sourceLineNumbers, Ids.PreprocessorUnknownPragma, "The pragma '{0}' is unknown. Please ensure you have referenced the extension that defines this pragma.", pragmaName); + } + + public static Message PreprocessorWarning(SourceLineNumber sourceLineNumbers, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorWarning, "{0}", message); + } + + public static Message ProductIdAuthored(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ProductIdAuthored, "The 'ProductID' property should not be directly authored because it will prevent the ValidateProductID standard action from performing any validation during the installation. This property will be set by the ValidateProductID standard action or control event."); + } + + public static Message PropertyModularizationSuppressed(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.PropertyModularizationSuppressed, "The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios."); + } + + public static Message PropertyUseless(SourceLineNumber sourceLineNumbers, string id) + { + return Message(sourceLineNumbers, Ids.PropertyUseless, "Property '{0}' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored.", id); + } + + public static Message PropertyValueContainsPropertyReference(SourceLineNumber sourceLineNumbers, string propertyId, string otherProperty) + { + return Message(sourceLineNumbers, Ids.PropertyValueContainsPropertyReference, "The '{0}' Property contains '[{1}]' in its value which is an illegal reference to another property. If this value is a string literal, not a property reference, please ignore this warning. To set a property with the value of another property, use a CustomAction with Property and Value attributes.", propertyId, otherProperty); + } + + public static Message RelatedAttributeConditionallyIgnored(SourceLineNumber sourceLineNumbers, string recessiveAttribute, string dominantAttribute, string dominantValue) + { + return Message(sourceLineNumbers, Ids.RelatedAttributeConditionallyIgnored, "Ignoring attribute {0} because attribute {1} is set to {2}.", recessiveAttribute, dominantAttribute, dominantValue); + } + + public static Message RemotePayloadsMustNotAlsoBeCompressed(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.RemotePayloadsMustNotAlsoBeCompressed, "The {0}/@Compressed attribute must have value 'no' when a RemotePayload child element is present. RemotePayload indicates that a package will always be downloaded and cannot be compressed into a bundle. To eliminate this warning, explicitly set the {0}/@Compressed attribute to 'no'.", elementName); + } + + public static Message RemoveFileNameRequired(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RemoveFileNameRequired, "The RemoveFile/@Name attribute will soon become required. In order to match the old functionality of not specifying this attribute, please use the new RemoveFolder element instead."); + } + + public static Message RequiresMsi200for64bitPackage(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RequiresMsi200for64bitPackage, "Package/@InstallerVersion must be 200 or greater for a 64-bit package. The value will be changed to 200. Please specify a value of 200 or greater in order to eliminate this warning."); + } + + public static Message RequiresMsi500forArmPackage(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an Arm package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning."); + } + + public static Message ReservedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.ReservedAttribute, "The {0}/@{1} attribute is reserved for future use and has no effect in this version of the WiX toolset.", elementName, attributeName); + } + + public static Message RetainRangeMismatch(SourceLineNumber sourceLineNumbers, string fileId) + { + return Message(sourceLineNumbers, Ids.RetainRangeMismatch, "Mismatch in RetainRangeCounts for the file '{0}' - ignoring the retain ranges.", fileId); + } + + public static Message ServiceConfigFamilyNotSupported(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ServiceConfigFamilyNotSupported, "{0} functionality is documented in the Windows Installer SDK to \"not [work] as expected.\" Consider replacing {0} with the WixUtilExtension ServiceConfig element.", elementName); + } + + public static Message SkippingMergeModuleTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.SkippingMergeModuleTable, "The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message SkippingPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.SkippingPatchCreationTable, "The {0} table can only be represented in WiX for patch creation files. The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message StandardDirectoryConflictInMergeModule(SourceLineNumber sourceLineNumbers, string directory, string standardDirectory) + { + return Message(sourceLineNumbers, Ids.StandardDirectoryConflictInMergeModule, "The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders.", directory, standardDirectory); + } + + public static Message SuppressAction(SourceLineNumber sourceLineNumbers, string action, string sequenceName) + { + return Message(sourceLineNumbers, Ids.SuppressAction, "The action '{0}' in the {1} table is being suppressed.", action, sequenceName); + } + + public static Message SuppressAction2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.SuppressAction2, "The location of the suppressed action related to previous warning."); + } + + public static Message SuppressMergedAction(string action, string sequenceName) + { + return Message(null, Ids.SuppressMergedAction, "The merged action '{0}' in the {1} table is being suppressed.", action, sequenceName); + } + + public static Message TableIncompatibleWithInstallerVersion(SourceLineNumber sourceLineNumbers, string tableName, int productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.TableIncompatibleWithInstallerVersion, "Using table '{0}' requires a version of Windows Installer greater than specified in your package ('{1}').", tableName, productInstallerVersion); + } + + public static Message TargetDirCorrectedDefaultDir() + { + return Message(null, Ids.TargetDirCorrectedDefaultDir, "The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output."); + } + + public static Message TooManyProgIds(SourceLineNumber sourceLineNumbers, string clsId, string progId, string otherClsId) + { + return Message(sourceLineNumbers, Ids.TooManyProgIds, "Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output.", clsId, progId, otherClsId); + } + + public static Message UnableToFindFileFromCabOrImage(SourceLineNumber sourceLineNumbers, string existingFileSpec, string srcFileSpec) + { + return Message(sourceLineNumbers, Ids.UnableToFindFileFromCabOrImage, "Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break.", existingFileSpec, srcFileSpec); + } + + public static Message UnableToResetAcls() + { + return Message(null, Ids.UnableToResetAcls, "Unable to reset acls on destination files."); + } + + public static Message UnclearShortcut(SourceLineNumber sourceLineNumbers, string shortcutId, string fileId, string componentId) + { + return Message(sourceLineNumbers, Ids.UnclearShortcut, "Because it is an advertised shortcut, the target of shortcut '{0}' will be the keypath of component '{2}' rather than parent file '{1}'. To eliminate this warning, you can (1) make the Shortcut element a child of the File element that is the keypath of component '{2}', (2) make file '{1}' the keypath of component '{2}', or (3) remove the @Advertise attribute so the shortcut is a non-advertised shortcut.", shortcutId, fileId, componentId); + } + + public static Message UnexpectedEntrySection(SourceLineNumber sourceLineNumbers, string sectionType, string expectedType, string outputExtension) + { + return Message(sourceLineNumbers, Ids.UnexpectedEntrySection, "Found mismatched entry point <{0}>. Expected <{1}> for specified output package type {2}.", sectionType, expectedType, outputExtension); + } + + public static Message UnexpectedTableInProduct(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInProduct, "An unexpected row in the '{0}' table was found in this product. Products should not contain the '{0}' table.", tableName); + } + + public static Message UnknownAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.UnknownAction, "The {0} table contains an action '{1}' which is not a known custom action, dialog, or standard action. This action will be left out of the decompiled output.", sequenceTableName, actionName); + } + + public static Message UnknownPermission(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, int bitPosition) + { + return Message(sourceLineNumbers, Ids.UnknownPermission, "The {0} table contains a row with primary key '{1}' which has an unknown permission at bit {2}.", tableName, primaryKey, bitPosition); + } + + public static Message UnrepresentableColumnValue(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) + { + return Message(sourceLineNumbers, Ids.UnrepresentableColumnValue, "The {0}.{1} column's value, '{2}', cannot currently be represented in the WiX schema.", tableName, columnName, value); + } + + public static Message UnsupportedCommandLineArgument(string arg) + { + return Message(null, Ids.UnsupportedCommandLineArgument, "'{0}' is not a valid command line argument.", arg); + } + + public static Message UpdateOfNonKeyPathFile(string nonKeyPathFileId, string componentId, string keyPathFileId) + { + return Message(null, Ids.UpdateOfNonKeyPathFile, "File '{0}' in Component '{1}' was changed, but the KeyPath file '{2}' was not. This file will not be patched on the target system if the REINSTALLMODE does not contain 'A'. The KeyPath file should also be changed and included in your patch.", nonKeyPathFileId, componentId, keyPathFileId); + } + + public static Message UxPayloadsOnlySupportEmbedding(SourceLineNumber sourceLineNumbers, string sourceFile) + { + return Message(sourceLineNumbers, Ids.UxPayloadsOnlySupportEmbedding, "A UX Payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, UX Payloads must be embedded in the Bundle, so the requested packaging is being ignored.", sourceFile); + } + + public static Message ValidationFailedDueToSystemPolicy() + { + return Message(null, Ids.ValidationFailedDueToSystemPolicy, "Validation could not run due to system policy. To eliminate this warning, run the process as admin or suppress ICE validation."); + } + + public static Message ValidationWarning(SourceLineNumber sourceLineNumbers, string ice, string message) + { + return Message(sourceLineNumbers, Ids.ValidationWarning, "{0}: {1}", ice, message); + } + + public static Message VariableDeclarationCollision(SourceLineNumber sourceLineNumbers, string variableName, string variableValue, string variableCollidingValue) + { + return Message(sourceLineNumbers, Ids.VariableDeclarationCollision, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); + } + + public static Message VersionTruncated(SourceLineNumber sourceLineNumbers, string originalVersion, string package, string truncatedVersion) + { + return Message(sourceLineNumbers, Ids.VersionTruncated, "Product version {0} in package '{1}' is not valid per the MSI SDK and cannot be represented in a bundle. It has been truncated to {2}.", originalVersion, package, truncatedVersion); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, format, args); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, resourceManager, resourceName, args); + } + + public enum Ids + { + IdentifierCannotBeModularized = 1000, + EmptyAttributeValue = 1001, + UnableToFindFileFromCabOrImage = 1002, + CopyFileFileIdUseless = 1003, + NestedInstall = 1004, + OrphanedProgId = 1005, + PropertyUseless = 1006, + RemoveFileNameRequired = 1007, + SuppressAction = 1008, + SuppressMergedAction = 1009, + TargetDirCorrectedDefaultDir = 1010, + AccessDeniedForDeletion = 1011, + DirectoryInUse = 1012, + AccessDeniedForSettingAttributes = 1013, + UnknownAction = 1024, + IdentifierTooLong = 1026, + UnknownPermission = 1030, + DirectoryRedundantNames = 1031, + UnableToResetAcls = 1032, + MediaExternalCabinetFilenameIllegal = 1033, + DeprecatedPreProcVariable = 1034, + FileSearchFileNameIssue = 1043, + AmbiguousFileOrDirectoryName = 1044, + PossiblyIncorrectTypelibVersion = 1048, + ImplicitComponentPrimaryFeature = 1049, + ActionSequenceCollision = 1050, + ActionSequenceCollision2 = 1051, + SuppressAction2 = 1052, + UnexpectedTableInProduct = 1053, + DeprecatedAttribute = 1054, + MergeRescheduledAction = 1055, + MergeTableFailed = 1056, + DecompiledStandardActionRelativelyScheduledInModule = 1057, + IllegalActionInSequence = 1058, + ExpectedForeignRow = 1059, + DecompilingAsCustomTable = 1060, + IllegalPatchCreationTable = 1061, + SkippingMergeModuleTable = 1062, + SkippingPatchCreationTable = 1063, + UnrepresentableColumnValue = 1064, + DeprecatedTable = 1065, + PatchTable = 1066, + IllegalColumnValue = 1067, + DeprecatedLongNameAttribute = 1069, + GeneratedShortFileNameConflict = 1070, + GeneratedShortFileNameConflict2 = 1071, + DangerousTableInMergeModule = 1072, + DeprecatedLocalizationVariablePrefix = 1073, + PlaceholderValue = 1074, + MissingUpgradeCode = 1075, + ValidationWarning = 1076, + PropertyValueContainsPropertyReference = 1077, + DeprecatedUpgradeProperty = 1078, + EmptyCabinet = 1079, + DeprecatedRegistryElement = 1080, + IllegalRegistryKeyPath = 1081, + DeprecatedPatchSequenceTargetAttribute = 1082, + ProductIdAuthored = 1083, + ImplicitMergeModulePrimaryFeature = 1084, + DeprecatedIgnoreModularizationElement = 1085, + PropertyModularizationSuppressed = 1086, + DeprecatedPackageCompressedAttribute = 1087, + DeprecatedModuleGuidAttribute = 1088, + DeprecatedQuestionMarksGuid = 1090, + PackageCodeSet = 1091, + InvalidModuleOrBundleVersion = 1093, + InvalidRemoveFile = 1095, + PreprocessorWarning = 1096, + UpdateOfNonKeyPathFile = 1097, + UnsupportedCommandLineArgument = 1098, + MajorUpgradePatchNotRecommended = 1099, + RetainRangeMismatch = 1100, + DefaultLanguageUsedForVersionedFile = 1101, + DefaultLanguageUsedForUnversionedFile = 1102, + DefaultVersionUsedForUnversionedFile = 1103, + InvalidHigherInstallerVersionInModule = 1104, + ValidationFailedDueToSystemPolicy = 1105, + ColumnsIncompatibleWithInstallerVersion = 1106, + TableIncompatibleWithInstallerVersion = 1107, + DeprecatedCommandLineSwitch = 1108, + UnexpectedEntrySection = 1109, + NewComponentAddedToExistingFeature = 1110, + DeprecatedAttributeValue = 1111, + InsufficientPermissionHarvestTypeLib = 1112, + UnclearShortcut = 1113, + TooManyProgIds = 1114, + BadColumnDataIgnored = 1115, + NullMsiAssemblyNameValue = 1116, + InvalidAttributeCombination = 1117, + VariableDeclarationCollision = 1118, + DuplicatePrimaryKey = 1119, + RequiresMsi200for64bitPackage = 1121, + ExternalCabsAreNotSigned = 1122, + FailedToDeleteTempDir = 1123, + StandardDirectoryConflictInMergeModule = 1124, + PreprocessorUnknownPragma = 1125, + DeprecatedComponentGroupId = 1126, + UxPayloadsOnlySupportEmbedding = 1127, + DiscardedRollbackBoundary = 1129, + DeprecatedElement = 1130, + CannotUpdateCabCache = 1131, + DownloadUrlNotSupportedForEmbeddedPayloads = 1132, + DiscouragedAllUsersValue = 1133, + ImplicitlyPerUser = 1134, + PerUserButForcingPerMachine = 1135, + AttributeShouldContain = 1136, + DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions = 1137, + DeprecatedRegistryKeyActionAttribute = 1138, + NotABinaryWixlib = 1139, + NoPerMachineDependencies = 1140, + DownloadUrlNotSupportedForAttachedContainers = 1141, + ReservedAttribute = 1142, + RequiresMsi500forArmPackage = 1143, + RemotePayloadsMustNotAlsoBeCompressed = 1144, + AllChangesIncludedInPatch = 1145, + RelatedAttributeConditionallyIgnored = 1146, + BackslashTerminateInlineDirectorySyntax = 1147, + VersionTruncated = 1148, + ServiceConfigFamilyNotSupported = 1149, + } + } +} diff --git a/src/WixToolset.Data/WindowsInstaller/Output.cs b/src/WixToolset.Data/WindowsInstaller/Output.cs index 6164622d..7f2990f4 100644 --- a/src/WixToolset.Data/WindowsInstaller/Output.cs +++ b/src/WixToolset.Data/WindowsInstaller/Output.cs @@ -165,7 +165,7 @@ namespace WixToolset.Data.WindowsInstaller if (!suppressVersionCheck && null != version && !Output.CurrentVersion.Equals(version)) { - throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString())); + throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString())); } // loop through the rest of the xml building up the Output object diff --git a/src/WixToolset.Data/WindowsInstaller/Pdb.cs b/src/WixToolset.Data/WindowsInstaller/Pdb.cs index 41700b0d..d3fea0fe 100644 --- a/src/WixToolset.Data/WindowsInstaller/Pdb.cs +++ b/src/WixToolset.Data/WindowsInstaller/Pdb.cs @@ -107,7 +107,7 @@ namespace WixToolset.Data.WindowsInstaller if (!suppressVersionCheck && null != version && !Pdb.CurrentVersion.Equals(version)) { - throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString())); + throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString())); } // loop through the rest of the pdb building up the Output object diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs index 7fc34b3d..673d2315 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs @@ -179,7 +179,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows if (compressedFlag && noncompressedFlag) { - throw new WixException(WixDataErrors.IllegalFileCompressionAttributes(this.SourceLineNumbers)); + throw new WixException(ErrorMessages.IllegalFileCompressionAttributes(this.SourceLineNumbers)); } else if (compressedFlag) { diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index 7fcc1b31..ccdcb40b 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -323,7 +323,7 @@ namespace WixToolset.Data.WindowsInstaller if (primaryKeys.TryGetValue(primaryKey, out var collisionSourceLineNumber)) { - throw new WixException(WixDataErrors.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); + throw new WixException(ErrorMessages.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); } primaryKeys.Add(primaryKey, row.SourceLineNumbers); diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 518f0926..2fb655e5 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -175,7 +175,7 @@ namespace WixToolset.Data.WindowsInstaller if (!unreal && !bootstrapperApplicationData && !hasPrimaryKeyColumn) { - throw new WixException(WixDataErrors.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); + throw new WixException(ErrorMessages.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); } if (!done) diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs index 0954e9de..619a5206 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs @@ -59,7 +59,7 @@ namespace WixToolset.Data.WindowsInstaller { if (!this.collection.TryGetValue(tableName, out var table)) { - throw new WixMissingTableDefinitionException(WixDataErrors.MissingTableDefinition(tableName)); + throw new WixMissingTableDefinitionException(ErrorMessages.MissingTableDefinition(tableName)); } return table; diff --git a/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs b/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs index 4b15c0e5..9f7e5fa8 100644 --- a/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs +++ b/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs @@ -14,7 +14,7 @@ namespace WixToolset.Data.WindowsInstaller /// Instantiate new WixMissingTableDefinitionException. /// /// Localized error information. - public WixMissingTableDefinitionException(MessageEventArgs error) + public WixMissingTableDefinitionException(Message error) : base(error) { } diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd new file mode 100644 index 00000000..a4504c01 --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd @@ -0,0 +1,66 @@ + + + + + + + + Schema for describing WiX Library files (.wixlib). + + + + + + + + + + + + + + + + Version of WiX used to create this library file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd new file mode 100644 index 00000000..5d95a59c --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd @@ -0,0 +1,143 @@ + + + + + + + + Schema for describing WiX Object files (.wixobj). + + + + + + + + + + + + Version of WiX used to create this object file. + + + + + + + + + + + + + Identifier for section (optional for Fragments) + + + + + Type of section + + + + + Codepage for output file, only valid on entry sections. + + + + + + + + + + + + + Name of table in Windows Installer database + + + + + + + + + + + + + + + + Row in a table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Data for a particular field in a row. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd new file mode 100644 index 00000000..00e20f12 --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd @@ -0,0 +1,66 @@ + + + + + + + + Schema for describing WiX Output files (.wixout). + + + + + + + + + + + + + + + + Codepage of the output. + + + + + Type of the output. + + + + + + + + + + + + + + + Version of WiX used to create this output file. + + + + + + + + + + + + + Name of the substorage. + + + + + diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd new file mode 100644 index 00000000..c1d1756d --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd @@ -0,0 +1,32 @@ + + + + + + + + Schema for describing WiX Pdb files (.wixpdb). + + + + + + + + + + + + + + + + Version of WiX used to create this pdb file + + + + + diff --git a/src/WixToolset.Data/WixCorruptFileException.cs b/src/WixToolset.Data/WixCorruptFileException.cs index f663b92d..f77f0d8a 100644 --- a/src/WixToolset.Data/WixCorruptFileException.cs +++ b/src/WixToolset.Data/WixCorruptFileException.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data public class WixCorruptFileException : WixException { public WixCorruptFileException(string path, FileFormat format, Exception innerException = null) - : base(WixDataErrors.CorruptFileFormat(path, format.ToString().ToLowerInvariant()), innerException) + : base(ErrorMessages.CorruptFileFormat(path, format), innerException) { this.Path = path; this.FileFormat = format; @@ -19,11 +19,11 @@ namespace WixToolset.Data /// /// Gets the actual file format found in the file. /// - public FileFormat FileFormat { get; private set; } + public FileFormat FileFormat { get; } /// /// Gets the path to the file with unexpected format. /// - public string Path { get; set; } + public string Path { get; } } } diff --git a/src/WixToolset.Data/WixDataStrings.Designer.cs b/src/WixToolset.Data/WixDataStrings.Designer.cs index 37cced32..23555d3c 100644 --- a/src/WixToolset.Data/WixDataStrings.Designer.cs +++ b/src/WixToolset.Data/WixDataStrings.Designer.cs @@ -52,15 +52,6 @@ namespace WixToolset.Data { } } - /// - /// Looks up a localized string similar to Cannot index into a FileRowCollection that allows duplicate FileIds. - /// - internal static string EXP_CannotIndexIntoFileRowCollection { - get { - return ResourceManager.GetString("EXP_CannotIndexIntoFileRowCollection", resourceCulture); - } - } - /// /// Looks up a localized string similar to The value '{0}' is not a legal identifier and therefore cannot be modularized.. /// @@ -88,15 +79,6 @@ namespace WixToolset.Data { } } - /// - /// Looks up a localized string similar to Didn't find duplicated symbol.. - /// - internal static string EXP_DidnotFindDuplicateSymbol { - get { - return ResourceManager.GetString("EXP_DidnotFindDuplicateSymbol", resourceCulture); - } - } - /// /// Looks up a localized string similar to Element must be a subclass of {0}, but was of type {1}.. /// @@ -124,15 +106,6 @@ namespace WixToolset.Data { } } - /// - /// Looks up a localized string similar to Expected ComplexReference type.. - /// - internal static string EXP_ExpectedComplexReferenceType { - get { - return ResourceManager.GetString("EXP_ExpectedComplexReferenceType", resourceCulture); - } - } - /// /// Looks up a localized string similar to ISchemaElement with name {0} does not implement ICreateChildren.. /// @@ -169,15 +142,6 @@ namespace WixToolset.Data { } } - /// - /// Looks up a localized string similar to The other object is not a FileRow.. - /// - internal static string EXP_OtherObjectIsNotFileRow { - get { - return ResourceManager.GetString("EXP_OtherObjectIsNotFileRow", resourceCulture); - } - } - /// /// Looks up a localized string similar to Type {0} is not valid for this collection.. /// @@ -187,15 +151,6 @@ namespace WixToolset.Data { } } - /// - /// Looks up a localized string similar to Unexpected entry section type: {0}. - /// - public static string EXP_UnexpectedEntrySectionType { - get { - return ResourceManager.GetString("EXP_UnexpectedEntrySectionType", resourceCulture); - } - } - /// /// Looks up a localized string similar to Unknown column type: {0}. /// @@ -205,15 +160,6 @@ namespace WixToolset.Data { } } - /// - /// Looks up a localized string similar to Unknown compression level type: {0}. - /// - internal static string EXP_UnknownCompressionLevelType { - get { - return ResourceManager.GetString("EXP_UnknownCompressionLevelType", resourceCulture); - } - } - /// /// Looks up a localized string similar to The table {0} is not supported.. /// @@ -231,77 +177,5 @@ namespace WixToolset.Data { return ResourceManager.GetString("EXP_XmlElementDoesnotHaveISchemaElement", resourceCulture); } } - - /// - /// Looks up a localized string similar to {0}({1}). - /// - internal static string Format_FirstLineNumber { - get { - return ResourceManager.GetString("Format_FirstLineNumber", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0}. - /// - internal static string Format_InfoMessage { - get { - return ResourceManager.GetString("Format_InfoMessage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0}: line {1}. - /// - internal static string Format_LineNumber { - get { - return ResourceManager.GetString("Format_LineNumber", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} : {1} {2}{3:0000} : {4}. - /// - internal static string Format_NonInfoMessage { - get { - return ResourceManager.GetString("Format_NonInfoMessage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Source trace:{0}. - /// - internal static string INF_SourceTrace { - get { - return ResourceManager.GetString("INF_SourceTrace", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to at {0}{1}. - /// - internal static string INF_SourceTraceLocation { - get { - return ResourceManager.GetString("INF_SourceTraceLocation", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to error. - /// - internal static string MessageType_Error { - get { - return ResourceManager.GetString("MessageType_Error", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to warning. - /// - internal static string MessageType_Warning { - get { - return ResourceManager.GetString("MessageType_Warning", resourceCulture); - } - } } } diff --git a/src/WixToolset.Data/WixDataStrings.resx b/src/WixToolset.Data/WixDataStrings.resx index 16b70d83..19cdc3c7 100644 --- a/src/WixToolset.Data/WixDataStrings.resx +++ b/src/WixToolset.Data/WixDataStrings.resx @@ -117,63 +117,21 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Unexpected entry section type: {0} - The table {0} is not supported. A Merge table FileCompression column contains an invalid value '{0}'. - - The other object is not a FileRow. - - - Cannot index into a FileRowCollection that allows duplicate FileIds - A Merge table FileCompression column cannot be set to the invalid value '{0}'. - - Expected ComplexReference type. - The value '{0}' is not a legal identifier and therefore cannot be modularized. - - Didn't find duplicated symbol. - Unknown column type: {0} - - Unknown compression level type: {0} - - - {0}({1}) - - - {0} - - - {0}: line {1} - - - {0} : {1} {2}{3:0000} : {4} - - - Source trace:{0} - - - at {0}{1} - - - error - - - warning - Multiple root elements found in file. diff --git a/src/WixToolset.Data/WixException.cs b/src/WixToolset.Data/WixException.cs index 1254e090..e27e3584 100644 --- a/src/WixToolset.Data/WixException.cs +++ b/src/WixToolset.Data/WixException.cs @@ -10,13 +10,11 @@ namespace WixToolset.Data [Serializable] public class WixException : Exception { - private MessageEventArgs error; - /// /// Instantiate a new WixException with a given WixError. /// /// The localized error information. - public WixException(MessageEventArgs error) + public WixException(Message error) : this(error, null) { } @@ -26,19 +24,16 @@ namespace WixToolset.Data /// /// The localized error information. /// Original exception. - public WixException(MessageEventArgs error, Exception exception) : - base(error.GenerateMessageString(), exception) + public WixException(Message error, Exception exception) : + base(error.ToString(), exception) { - this.error = error; + this.Error = error; } /// /// Gets the error message. /// /// The error message. - public MessageEventArgs Error - { - get { return this.error; } - } + public Message Error { get; } } } diff --git a/src/WixToolset.Data/WixUnexpectedFileFormatException.cs b/src/WixToolset.Data/WixUnexpectedFileFormatException.cs index 4d1e39e9..340fb4d7 100644 --- a/src/WixToolset.Data/WixUnexpectedFileFormatException.cs +++ b/src/WixToolset.Data/WixUnexpectedFileFormatException.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data public class WixUnexpectedFileFormatException : WixException { public WixUnexpectedFileFormatException(string path, FileFormat expectedFormat, FileFormat format, Exception innerException = null) - : base(WixDataErrors.UnexpectedFileFormat(path, expectedFormat.ToString().ToLowerInvariant(), format.ToString().ToLowerInvariant()), innerException) + : base(ErrorMessages.UnexpectedFileFormat(path, expectedFormat, format), innerException) { this.Path = path; this.ExpectedFileFormat = expectedFormat; @@ -20,12 +20,12 @@ namespace WixToolset.Data /// /// Gets the expected file format. /// - public FileFormat ExpectedFileFormat { get; private set; } + public FileFormat ExpectedFileFormat { get; } /// /// Gets the actual file format found in the file. /// - public FileFormat FileFormat { get; private set; } + public FileFormat FileFormat { get; } /// /// Gets the path to the file with unexpected format. -- cgit v1.2.3-55-g6feb From 1720475c5725d08dff3924e785da3fb2c7ba0647 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 21 Dec 2017 13:35:37 -0800 Subject: Add "wixout" as build output --- src/WixToolset.Data/Bind/BindResult.cs | 12 +++--------- src/WixToolset.Data/Bind/BindStage.cs | 5 ----- src/WixToolset.Data/OutputType.cs | 5 ++++- 3 files changed, 7 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Bind/BindResult.cs b/src/WixToolset.Data/Bind/BindResult.cs index 917bebca..1b81ab78 100644 --- a/src/WixToolset.Data/Bind/BindResult.cs +++ b/src/WixToolset.Data/Bind/BindResult.cs @@ -6,14 +6,8 @@ namespace WixToolset.Data.Bind public class BindResult { - public BindResult(IEnumerable fileTransfers, IEnumerable contentFilePaths) - { - this.FileTransfers = fileTransfers; - this.ContentFilePaths = contentFilePaths; - } + public IEnumerable FileTransfers { get; set; } - public IEnumerable FileTransfers { get; } - - public IEnumerable ContentFilePaths { get; } + public IEnumerable ContentFilePaths { get; set; } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Bind/BindStage.cs b/src/WixToolset.Data/Bind/BindStage.cs index 500ea288..c567cde0 100644 --- a/src/WixToolset.Data/Bind/BindStage.cs +++ b/src/WixToolset.Data/Bind/BindStage.cs @@ -2,11 +2,6 @@ namespace WixToolset.Data.Bind { - /// - /// Bind stage of a file.. The reason we need this is to change the ResolveFile behavior based on if - /// dynamic bindpath plugin is desirable. We cannot change the signature of ResolveFile since it might - /// break existing implementers which derived from BinderFileManager - /// public enum BindStage { /// diff --git a/src/WixToolset.Data/OutputType.cs b/src/WixToolset.Data/OutputType.cs index 67c56520..228cc580 100644 --- a/src/WixToolset.Data/OutputType.cs +++ b/src/WixToolset.Data/OutputType.cs @@ -29,6 +29,9 @@ namespace WixToolset.Data Product, /// Transform output type. - Transform + Transform, + + /// Intermediate output type. + Wixout, } } -- cgit v1.2.3-55-g6feb From 9c44ebe3f4e47d22cf9b74918ac30e8bf36ffe5b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 26 Dec 2017 17:32:35 -0800 Subject: Rename "Wixout" to "IntermediatePostLink" --- src/WixToolset.Data/OutputType.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/OutputType.cs b/src/WixToolset.Data/OutputType.cs index 228cc580..3bbdddcc 100644 --- a/src/WixToolset.Data/OutputType.cs +++ b/src/WixToolset.Data/OutputType.cs @@ -30,8 +30,8 @@ namespace WixToolset.Data /// Transform output type. Transform, - - /// Intermediate output type. - Wixout, + + /// Intermediate representation post-link output type. + IntermediatePostLink, } } -- cgit v1.2.3-55-g6feb From b2ff456469c4905be6df44f851cbf42bbcd629ee Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 27 Dec 2017 13:13:41 -0800 Subject: Make TableDefinitions ColumnDefinitions an array and other minor cleanup --- src/WixToolset.Data/Data/messages.xml | 5 ++++ src/WixToolset.Data/WindowsInstaller/Field.cs | 12 ++------- src/WixToolset.Data/WindowsInstaller/Pdb.cs | 8 ------ src/WixToolset.Data/WindowsInstaller/Row.cs | 2 +- .../WindowsInstaller/TableDefinition.cs | 31 ++++++++++------------ .../WindowsInstaller/TableIndexedCollection.cs | 2 +- 6 files changed, 23 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Data/messages.xml b/src/WixToolset.Data/Data/messages.xml index 3acb21ba..5f03fef5 100644 --- a/src/WixToolset.Data/Data/messages.xml +++ b/src/WixToolset.Data/Data/messages.xml @@ -1,6 +1,11 @@  + diff --git a/src/WixToolset.Data/WindowsInstaller/Field.cs b/src/WixToolset.Data/WindowsInstaller/Field.cs index 11cd2c33..aa359c64 100644 --- a/src/WixToolset.Data/WindowsInstaller/Field.cs +++ b/src/WixToolset.Data/WindowsInstaller/Field.cs @@ -35,16 +35,8 @@ namespace WixToolset.Data.WindowsInstaller /// Data in the field. public object Data { - get - { - return this.data; - } - - set - { - // Validate the value before setting it. - this.data = this.ValidateValue(this.Column, value); - } + get => this.data; + set => this.data = this.ValidateValue(this.Column, value); } /// diff --git a/src/WixToolset.Data/WindowsInstaller/Pdb.cs b/src/WixToolset.Data/WindowsInstaller/Pdb.cs index d3fea0fe..574d5593 100644 --- a/src/WixToolset.Data/WindowsInstaller/Pdb.cs +++ b/src/WixToolset.Data/WindowsInstaller/Pdb.cs @@ -14,14 +14,6 @@ namespace WixToolset.Data.WindowsInstaller public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixpdb"; private static readonly Version CurrentVersion = new Version("4.0.0.0"); - /// - /// Creates a new empty pdb object. - /// - /// The source line information for the pdb. - public Pdb() - { - } - /// /// Gets or sets the output that is a part of this pdb. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Row.cs b/src/WixToolset.Data/WindowsInstaller/Row.cs index cb8b81d8..af1af628 100644 --- a/src/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/WixToolset.Data/WindowsInstaller/Row.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.WindowsInstaller { this.Number = rowCount++; this.SourceLineNumbers = sourceLineNumbers; - this.Fields = new Field[tableDefinition.Columns.Count]; + this.Fields = new Field[tableDefinition.Columns.Length]; this.TableDefinition = tableDefinition; for (var i = 0; i < this.Fields.Length; ++i) diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 2fb655e5..bc7fb537 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -25,13 +25,13 @@ namespace WixToolset.Data.WindowsInstaller /// Column definitions for the table. /// Flag if table is unreal. /// Flag if table is part of UX Manifest. - public TableDefinition(string name, IList columns, bool unreal = false, bool bootstrapperApplicationData = false) + public TableDefinition(string name, ColumnDefinition[] columns, bool unreal = false, bool bootstrapperApplicationData = false) { this.Name = name; this.Unreal = unreal; this.BootstrapperApplicationData = bootstrapperApplicationData; - this.Columns = new ReadOnlyCollection(columns); + this.Columns = columns; } /// @@ -56,17 +56,14 @@ namespace WixToolset.Data.WindowsInstaller /// Gets the collection of column definitions for this table. /// /// Collection of column definitions for this table. - public IList Columns { get; private set; } + public ColumnDefinition[] Columns { get; private set; } /// /// Gets the column definition in the table by index. /// /// Index of column to locate. /// Column definition in the table by index. - public ColumnDefinition this[int columnIndex] - { - get { return this.Columns[columnIndex]; } - } + public ColumnDefinition this[int columnIndex] => this.Columns[columnIndex]; /// /// Compares this table definition to another table definition. @@ -91,10 +88,10 @@ namespace WixToolset.Data.WindowsInstaller if (0 == ret) { // transforms can only add columns - ret = Math.Min(0, updated.Columns.Count - this.Columns.Count); + ret = Math.Min(0, updated.Columns.Length - this.Columns.Length); // compare name, type, and length of each column - for (int i = 0; 0 == ret && this.Columns.Count > i; i++) + for (int i = 0; 0 == ret && this.Columns.Length > i; i++) { ColumnDefinition thisColumnDef = this.Columns[i]; ColumnDefinition updatedColumnDef = updated.Columns[i]; @@ -113,10 +110,10 @@ namespace WixToolset.Data.WindowsInstaller /// The TableDefintion represented by the Xml. internal static TableDefinition Read(XmlReader reader) { - bool empty = reader.IsEmptyElement; + var empty = reader.IsEmptyElement; string name = null; - bool unreal = false; - bool bootstrapperApplicationData = false; + var unreal = false; + var bootstrapperApplicationData = false; while (reader.MoveToNextAttribute()) { @@ -139,13 +136,13 @@ namespace WixToolset.Data.WindowsInstaller throw new XmlException(); } - List columns = new List(); - bool hasPrimaryKeyColumn = false; + var columns = new List(); + var hasPrimaryKeyColumn = false; // parse the child elements if (!empty) { - bool done = false; + var done = false; while (!done && reader.Read()) { @@ -155,7 +152,7 @@ namespace WixToolset.Data.WindowsInstaller switch (reader.LocalName) { case "columnDefinition": - ColumnDefinition columnDefinition = ColumnDefinition.Read(reader); + var columnDefinition = ColumnDefinition.Read(reader); columns.Add(columnDefinition); if (columnDefinition.PrimaryKey) @@ -184,7 +181,7 @@ namespace WixToolset.Data.WindowsInstaller } } - return new TableDefinition(name, columns, unreal, bootstrapperApplicationData); + return new TableDefinition(name, columns.ToArray(), unreal, bootstrapperApplicationData); } /// diff --git a/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs index 1b7de72b..57ba19d1 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs @@ -17,7 +17,7 @@ namespace WixToolset.Data.WindowsInstaller /// public TableIndexedCollection() { - this.collection = new Dictionary(); + this.collection = new Dictionary(); } /// -- cgit v1.2.3-55-g6feb From 77ec8bfc6df897000619abaa6c9068942a3775c2 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 29 Dec 2017 00:44:42 -0800 Subject: Improve Identifier constructor --- src/WixToolset.Data/Identifier.cs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs index 84c80081..ffb04cd7 100644 --- a/src/WixToolset.Data/Identifier.cs +++ b/src/WixToolset.Data/Identifier.cs @@ -12,20 +12,40 @@ namespace WixToolset.Data [DebuggerDisplay("{Access} {Id,nq}")] public class Identifier { - public static Identifier Invalid = new Identifier(null, AccessModifier.Private); + public static Identifier Invalid = new Identifier(AccessModifier.Private, (string)null); + // TODO: [Obsolete] this constructor. public Identifier(string id, AccessModifier access) { this.Id = id; this.Access = access; } + // TODO: [Obsolete] this constructor. public Identifier(int id, AccessModifier access) { this.Id = id.ToString(); this.Access = access; } + public Identifier(AccessModifier access, string id) + { + this.Access = access; + this.Id = id; + } + + public Identifier(AccessModifier access, params string[] ids) + { + this.Access = access; + this.Id = String.Join("/", ids); + } + + public Identifier(AccessModifier access, int id) + { + this.Access = access; + this.Id = id.ToString(); + } + /// /// Access modifier for a tuple. /// @@ -42,7 +62,7 @@ namespace WixToolset.Data var accessValue = jsonObject.GetValueOrDefault("access"); Enum.TryParse(accessValue, true, out AccessModifier access); - return new Identifier(id, access); + return new Identifier(access, id); } internal JsonObject Serialize() -- cgit v1.2.3-55-g6feb From bcfae2a06a3a6c7e778b615e765b5a9efe847c0c Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 29 Dec 2017 04:29:04 -0800 Subject: Update to latest GitVersioning --- src/WixToolset.Data/WixToolset.Data.csproj | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index e8032768..d56af370 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -10,21 +10,8 @@ - - - - - - + -- cgit v1.2.3-55-g6feb From 7b013ac66a36e0f73d480ef28771a65f64b57e19 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 30 Dec 2017 01:31:32 -0800 Subject: Support serializing localization information in Intermediates --- src/WixToolset.Data/Bind/BindVariable.cs | 33 ++++++++++- src/WixToolset.Data/Intermediate.cs | 34 +++++------ src/WixToolset.Data/Json/JsonObjectExtensions.cs | 45 +++++++++++++++ src/WixToolset.Data/Localization.cs | 72 +++++++++++++++++++++++- src/WixToolset.Data/LocalizedControl.cs | 33 +++++++++++ src/test/WixToolsetTest.Data/SerializeFixture.cs | 56 ++++++++++++++++++ 6 files changed, 253 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Bind/BindVariable.cs b/src/WixToolset.Data/Bind/BindVariable.cs index 06c004e1..276dae38 100644 --- a/src/WixToolset.Data/Bind/BindVariable.cs +++ b/src/WixToolset.Data/Bind/BindVariable.cs @@ -1,9 +1,11 @@ // 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. -namespace WixToolset.Data.Rows +namespace WixToolset.Data.Bind { + using SimpleJson; + /// - /// Specialization of a row for the WixVariable table. + /// Bind variable. /// public sealed class BindVariable { @@ -29,5 +31,32 @@ namespace WixToolset.Data.Rows /// /// Whether this variable is overridable. public bool Overridable { get; set; } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "name", this.Id }, + }; + + jsonObject.AddIsNotNullOrEmpty("value", this.Value); + jsonObject.AddNonDefaultValue("overridable", this.Overridable, false); + jsonObject.AddNonDefaultValue("ln", this.SourceLineNumbers?.Serialize()); + + return jsonObject; + } + + internal static BindVariable Deserialize(JsonObject jsonObject) + { + var variable = new BindVariable() + { + Id = jsonObject.GetValueOrDefault("name"), + Value = jsonObject.GetValueOrDefault("value"), + Overridable = jsonObject.GetValueOrDefault("overridable", false), + SourceLineNumbers = jsonObject.GetValueOrDefault("ln") + }; + + return variable; + } } } diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index a23cc091..ae507058 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -198,17 +198,17 @@ namespace WixToolset.Data jsonObject.Add("definitions", customDefinitionsJson); } - //if (this.Localizations.Any()) - //{ - // var localizationsJson = new JsonArray(); - // foreach (var localization in this.Localizations) - // { - // var localizationJson = localization.Serialize(); - // localizationsJson.Add(localizationJson); - // } - - // jsonObject.Add("localizations", localizationsJson); - //} + if (this.Localizations.Any()) + { + var localizationsJson = new JsonArray(); + foreach (var localization in this.Localizations) + { + var localizationJson = localization.Serialize(); + localizationsJson.Add(localizationJson); + } + + jsonObject.Add("localizations", localizationsJson); + } var json = SimpleJson.SerializeObject(jsonObject); writer.Write(json); @@ -272,12 +272,12 @@ namespace WixToolset.Data var localizations = new Dictionary(StringComparer.OrdinalIgnoreCase); - //var localizationsJson = jsonObject.GetValueOrDefault("localizations") ?? new JsonArray(); - //foreach (JsonObject localizationJson in localizationsJson) - //{ - // var localization = Localization.Deserialize(localizationJson); - // localizations.Add(localization.Culture, localization); - //} + var localizationsJson = jsonObject.GetValueOrDefault("localizations") ?? new JsonArray(); + foreach (JsonObject localizationJson in localizationsJson) + { + var localization = Localization.Deserialize(localizationJson); + localizations.Add(localization.Culture, localization); + } return new Intermediate(id, sections, localizations, null); } diff --git a/src/WixToolset.Data/Json/JsonObjectExtensions.cs b/src/WixToolset.Data/Json/JsonObjectExtensions.cs index 296a7ab6..e9e170ee 100644 --- a/src/WixToolset.Data/Json/JsonObjectExtensions.cs +++ b/src/WixToolset.Data/Json/JsonObjectExtensions.cs @@ -7,6 +7,51 @@ namespace WixToolset.Data internal static class JsonObjectExtensions { + public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, bool value, bool defaultValue = default(bool)) + { + if (value != defaultValue) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, int value, int defaultValue = default(int)) + { + if (value != defaultValue) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, object value, object defaultValue = null) + { + if (value != defaultValue) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static JsonObject AddIsNotNullOrEmpty(this JsonObject jsonObject, string key, string value) + { + if (!String.IsNullOrEmpty(value)) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static bool GetValueOrDefault(this JsonObject jsonObject, string key, bool defaultValue) + { + return jsonObject.TryGetValue(key, out var value) ? Convert.ToBoolean(value) : defaultValue; + } + public static int GetValueOrDefault(this JsonObject jsonObject, string key, int defaultValue) { return jsonObject.TryGetValue(key, out var value) ? Convert.ToInt32(value) : defaultValue; diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index 10eff2e1..4ddef77b 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs @@ -7,8 +7,9 @@ namespace WixToolset.Data using System.Diagnostics; using System.Globalization; using System.Xml; + using SimpleJson; using WixToolset.Data.Msi; - using WixToolset.Data.Rows; + using WixToolset.Data.Bind; /// /// Object that represents a localization file. @@ -74,6 +75,75 @@ namespace WixToolset.Data } } + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "codepage", this.Codepage }, + }; + + jsonObject.AddIsNotNullOrEmpty("culture", this.Culture); + + // Serialize bind variables. + if (this.Variables.Count > 0) + { + var variablesJson = new JsonArray(this.Variables.Count); + + foreach (var variable in this.Variables) + { + var variableJson = variable.Serialize(); + + variablesJson.Add(variableJson); + } + + jsonObject.Add("variables", variablesJson); + } + + // Serialize localized control. + if (this.LocalizedControls.Count > 0) + { + var controlsJson = new JsonObject(); + + foreach (var controlWithKey in this.LocalizedControls) + { + var controlJson = controlWithKey.Value.Serialize(); + + controlsJson.Add(controlWithKey.Key, controlJson); + } + + jsonObject.Add("controls", controlsJson); + } + + return jsonObject; + } + + internal static Localization Deserialize(JsonObject jsonObject) + { + var codepage = jsonObject.GetValueOrDefault("codepage", 0); + var culture = jsonObject.GetValueOrDefault("culture"); + + var variables = new Dictionary(); + var variablesJson = jsonObject.GetValueOrDefault("variables", new JsonArray()); + foreach (JsonObject variableJson in variablesJson) + { + var bindPath = BindVariable.Deserialize(variableJson); + variables.Add(bindPath.Id, bindPath); + } + + var controls = new Dictionary(); + var controlsJson = jsonObject.GetValueOrDefault("controls"); + if (controlsJson != null) + { + foreach (var controlJsonWithKey in controlsJson) + { + var control = LocalizedControl.Deserialize((JsonObject)controlJsonWithKey.Value); + controls.Add(controlJsonWithKey.Key, control); + } + } + + return new Localization(codepage, culture, variables, controls); + } + /// /// Loads a localization file from a stream. /// diff --git a/src/WixToolset.Data/LocalizedControl.cs b/src/WixToolset.Data/LocalizedControl.cs index 979f9fde..cb60b7ba 100644 --- a/src/WixToolset.Data/LocalizedControl.cs +++ b/src/WixToolset.Data/LocalizedControl.cs @@ -3,6 +3,7 @@ namespace WixToolset.Data { using System; + using SimpleJson; public class LocalizedControl { @@ -47,5 +48,37 @@ namespace WixToolset.Data /// The id of the control. /// The localized control id. public static string GetKey(string dialog, string control) => String.Concat(dialog, "/", control); + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "dialog", this.Dialog }, + }; + + jsonObject.AddIsNotNullOrEmpty("control", this.Control); + jsonObject.AddNonDefaultValue("x", this.X, 0); + jsonObject.AddNonDefaultValue("y", this.Y, 0); + jsonObject.AddNonDefaultValue("width", this.Width, 0); + jsonObject.AddNonDefaultValue("height", this.Height, 0); + jsonObject.AddNonDefaultValue("attribs", this.Attributes, 0); + jsonObject.AddIsNotNullOrEmpty("text", this.Text); + + return jsonObject; + } + + internal static LocalizedControl Deserialize(JsonObject jsonObject) + { + var dialog = jsonObject.GetValueOrDefault("dialog"); + var control = jsonObject.GetValueOrDefault("control"); + var x = jsonObject.GetValueOrDefault("x", 0); + var y = jsonObject.GetValueOrDefault("y", 0); + var width = jsonObject.GetValueOrDefault("width", 0); + var height = jsonObject.GetValueOrDefault("height", 0); + var attribs = jsonObject.GetValueOrDefault("attribs", 0); + var text = jsonObject.GetValueOrDefault("text"); + + return new LocalizedControl(dialog, control, x, y, width, height, attribs, text); + } } } diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 9883053f..1e03481d 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -6,6 +6,7 @@ namespace WixToolsetTest.Data using System.IO; using System.Linq; using WixToolset.Data; + using WixToolset.Data.Bind; using WixToolset.Data.Tuples; using Xunit; @@ -39,5 +40,60 @@ namespace WixToolsetTest.Data Assert.Equal("TestFolder", tuple.Directory_); Assert.Equal(2, tuple.Attributes); } + + [Fact] + public void CanSaveAndLoadIntermediateWithLocalization() + { + var sln = new SourceLineNumber("test.wxs", 10); + + var bindVariables = new[] + { + new BindVariable { Id = "TestVar1", Value = "TestValue1", SourceLineNumbers = sln }, + new BindVariable { Id = "TestVar2", Value = "TestValue2", Overridable = true, SourceLineNumbers = sln }, + }; + + var controls = new[] + { + new LocalizedControl("TestDlg1", "TestControl1", 10, 10, 100, 100, 0, null), + new LocalizedControl("TestDlg1", "TestControl2", 100, 90, 50, 70, 0, "localized"), + }; + + var localizations = new[] + { + new Localization(65001, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey())) + }; + + var section = new IntermediateSection("test", SectionType.Product, 65001); + + section.Tuples.Add(new ComponentTuple(sln, new Identifier("TestComponent", AccessModifier.Public)) + { + ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + Directory_ = "TestFolder", + Attributes = 2, + }); + + var intermediate = new Intermediate("TestIntermediate", new[] { section }, localizations.ToDictionary(l => l.Culture), null); + + var path = Path.GetTempFileName(); + try + { + intermediate.Save(path); + + var loaded = Intermediate.Load(path); + + var loc = loaded.Localizations.Single(); + Assert.Equal(65001, loc.Codepage); + Assert.Empty(loc.Culture); + Assert.Equal(new[] + { + "TestVar1/TestValue1/False", + "TestVar2/TestValue2/True", + }, loc.Variables.Select(v => String.Join("/", v.Id, v.Value, v.Overridable)).ToArray()); + } + finally + { + File.Delete(path); + } + } } } -- cgit v1.2.3-55-g6feb From fe37cb9023cbb69d0a32409144ea0142172fe3fd Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 30 Dec 2017 17:02:28 -0800 Subject: Reduce code footprint in WixToolset.Data --- src/WixToolset.Data/Intermediate.cs | 34 +--- src/WixToolset.Data/Localization.cs | 306 +----------------------------------- 2 files changed, 2 insertions(+), 338 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index ae507058..4914ef88 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -58,38 +58,6 @@ namespace WixToolset.Data /// public IList Sections { get; } - /// - /// Adds a localization to the intermediate. - /// - /// Localization to add to the intermediate. - public void AddLocalization(Localization localization) - { - if (this.localizationsByCulture.TryGetValue(localization.Culture, out var existingCulture)) - { - existingCulture.Merge(localization); - } - else - { - this.localizationsByCulture.Add(localization.Culture, localization); - } - } - - /// - /// Gets localization files from this library that match the cultures passed in, in the order of the array of cultures. - /// - /// The list of cultures to get localizations for. - /// All localizations contained in this library that match the set of cultures provided, in the same order. - public IEnumerable GetLocalizationsForCultures(IEnumerable cultures) - { - foreach (string culture in cultures ?? Array.Empty()) - { - if (this.localizationsByCulture.TryGetValue(culture, out var localization)) - { - yield return localization; - } - } - } - /// /// Loads an intermediate from a path on disk. /// @@ -223,7 +191,7 @@ namespace WixToolset.Data /// ITupleDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. - internal static Intermediate Load(Stream stream, Uri baseUri, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + private static Intermediate Load(Stream stream, Uri baseUri, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) { JsonObject jsonObject; diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index 4ddef77b..673e0155 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs @@ -4,11 +4,7 @@ namespace WixToolset.Data { using System; using System.Collections.Generic; - using System.Diagnostics; - using System.Globalization; - using System.Xml; using SimpleJson; - using WixToolset.Data.Msi; using WixToolset.Data.Bind; /// @@ -27,7 +23,7 @@ namespace WixToolset.Data public Localization(int codepage, string culture, IDictionary variables, IDictionary localizedControls) { this.Codepage = codepage; - this.Culture = String.IsNullOrEmpty(culture) ? String.Empty : culture.ToLowerInvariant(); + this.Culture = culture?.ToLowerInvariant() ?? String.Empty; this.variables = new Dictionary(variables); this.localizedControls = new Dictionary(localizedControls); } @@ -56,25 +52,6 @@ namespace WixToolset.Data /// The localized controls. public ICollection> LocalizedControls => this.localizedControls; - /// - /// Merge the information from another localization object into this one. - /// - /// The localization object to be merged into this one. - public void Merge(Localization localization) - { - foreach (BindVariable wixVariableRow in localization.Variables) - { - if (!this.variables.TryGetValue(wixVariableRow.Id, out BindVariable existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) - { - variables[wixVariableRow.Id] = wixVariableRow; - } - else if (!wixVariableRow.Overridable) - { - throw new WixException(ErrorMessages.DuplicateLocalizationIdentifier(wixVariableRow.SourceLineNumbers, wixVariableRow.Id)); - } - } - } - internal JsonObject Serialize() { var jsonObject = new JsonObject @@ -143,286 +120,5 @@ namespace WixToolset.Data return new Localization(codepage, culture, variables, controls); } - - /// - /// Loads a localization file from a stream. - /// - /// XmlReader where the intermediate is persisted. - /// Collection containing TableDefinitions to use when loading the localization file. - /// Returns the loaded localization. - internal static Localization Read(XmlReader reader) - { - Debug.Assert("localization" == reader.LocalName); - - int codepage = 0; - string culture = null; - bool empty = reader.IsEmptyElement; - - while (reader.MoveToNextAttribute()) - { - switch (reader.Name) - { - case "codepage": - codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - case "culture": - culture = reader.Value; - break; - } - } - - Dictionary variables = new Dictionary(); - Dictionary localizedControls = new Dictionary(); - - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "string": - BindVariable row = Localization.ReadString(reader); - variables.Add(row.Id, row); - break; - - case "ui": - LocalizedControl ui = Localization.ReadUI(reader); - localizedControls.Add(ui.GetKey(), ui); - break; - - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return new Localization(codepage, culture, variables, localizedControls); - } - - /// - /// Writes a localization file into an XML format. - /// - /// XmlWriter where the localization file should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement(Localization.XmlElementName, Library.XmlNamespaceUri); - - if (-1 != this.Codepage) - { - writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); - } - - if (!String.IsNullOrEmpty(this.Culture)) - { - writer.WriteAttributeString("culture", this.Culture); - } - - foreach (BindVariable wixVariableRow in this.variables.Values) - { - writer.WriteStartElement("string", Library.XmlNamespaceUri); - - writer.WriteAttributeString("id", wixVariableRow.Id); - - if (wixVariableRow.Overridable) - { - writer.WriteAttributeString("overridable", "yes"); - } - - writer.WriteCData(wixVariableRow.Value); - - writer.WriteEndElement(); - } - - foreach (string controlKey in this.localizedControls.Keys) - { - writer.WriteStartElement("ui", Library.XmlNamespaceUri); - - string[] controlKeys = controlKey.Split('/'); - string dialog = controlKeys[0]; - string control = controlKeys[1]; - - if (!String.IsNullOrEmpty(dialog)) - { - writer.WriteAttributeString("dialog", dialog); - } - - if (!String.IsNullOrEmpty(control)) - { - writer.WriteAttributeString("control", control); - } - - LocalizedControl localizedControl = this.localizedControls[controlKey]; - - if (Common.IntegerNotSet != localizedControl.X) - { - writer.WriteAttributeString("x", localizedControl.X.ToString()); - } - - if (Common.IntegerNotSet != localizedControl.Y) - { - writer.WriteAttributeString("y", localizedControl.Y.ToString()); - } - - if (Common.IntegerNotSet != localizedControl.Width) - { - writer.WriteAttributeString("width", localizedControl.Width.ToString()); - } - - if (Common.IntegerNotSet != localizedControl.Height) - { - writer.WriteAttributeString("height", localizedControl.Height.ToString()); - } - - if (MsiInterop.MsidbControlAttributesRTLRO == (localizedControl.Attributes & MsiInterop.MsidbControlAttributesRTLRO)) - { - writer.WriteAttributeString("rightToLeft", "yes"); - } - - if (MsiInterop.MsidbControlAttributesRightAligned == (localizedControl.Attributes & MsiInterop.MsidbControlAttributesRightAligned)) - { - writer.WriteAttributeString("rightAligned", "yes"); - } - - if (MsiInterop.MsidbControlAttributesLeftScroll == (localizedControl.Attributes & MsiInterop.MsidbControlAttributesLeftScroll)) - { - writer.WriteAttributeString("leftScroll", "yes"); - } - - if (!String.IsNullOrEmpty(localizedControl.Text)) - { - writer.WriteCData(localizedControl.Text); - } - - writer.WriteEndElement(); - } - - writer.WriteEndElement(); - } - - /// - /// Loads a localization file from a stream. - /// - /// XmlReader where the intermediate is persisted. - /// Collection containing TableDefinitions to use when loading the localization file. - /// Returns the loaded localization. - private static BindVariable ReadString(XmlReader reader) - { - Debug.Assert("string" == reader.LocalName); - - string id = null; - string value = null; - bool overridable = false; - bool empty = reader.IsEmptyElement; - - while (reader.MoveToNextAttribute()) - { - switch (reader.Name) - { - case "id": - id = reader.Value; - break; - case "overridable": - overridable = reader.Value.Equals("yes"); - break; - } - } - - - if (!empty) - { - reader.Read(); - - value = reader.Value; - - reader.Read(); - - if (XmlNodeType.EndElement != reader.NodeType) - { - throw new XmlException(); - } - } - - BindVariable wixVariableRow = new BindVariable(); - wixVariableRow.SourceLineNumbers = SourceLineNumber.CreateFromUri(reader.BaseURI); - wixVariableRow.Id = id; - wixVariableRow.Overridable = overridable; - wixVariableRow.Value = value; - - return wixVariableRow; - } - - private static LocalizedControl ReadUI(XmlReader reader) - { - Debug.Assert("ui" == reader.LocalName); - - string dialog = null; - string control = null; - int x = Common.IntegerNotSet; - int y = Common.IntegerNotSet; - int width = Common.IntegerNotSet; - int height = Common.IntegerNotSet; - int attributes = Common.IntegerNotSet; - string text = null; - bool empty = reader.IsEmptyElement; - - while (reader.MoveToNextAttribute()) - { - switch (reader.Name) - { - case "dialog": - dialog = reader.Value; - break; - case "control": - control = reader.Value; - break; - case "x": - x = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - case "y": - y = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - case "width": - width = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - case "height": - height = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - case "attributes": - attributes = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - } - } - - if (!empty) - { - reader.Read(); - - text = reader.Value; - - reader.Read(); - - if (XmlNodeType.EndElement != reader.NodeType) - { - throw new XmlException(); - } - } - - return new LocalizedControl(dialog, control, x, y, width, height, attributes, text); - } } } -- cgit v1.2.3-55-g6feb From 1bf4328843d114f30e900a66c7ca1053f90afc1e Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 1 Jan 2018 14:40:01 -0800 Subject: Make IntermediateField Set() method type-safe --- src/WixToolset.Data/IntermediateFieldExtensions.cs | 419 +++++++++++++++------ src/WixToolset.Data/IntermediateTupleExtensions.cs | 81 +++- .../Tuples/WixBundlePackageTuple.cs | 4 +- .../Tuples/WixBundlePayloadTuple.cs | 2 +- 4 files changed, 383 insertions(+), 123 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index 89a6b903..6bc82b37 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -9,117 +9,6 @@ namespace WixToolset.Data [ThreadStatic] internal static string valueContext; - public static IntermediateField Set(this IntermediateField field, object value) - { - var data = value; - - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - else if (value == null) - { - // Null is always allowed. - } - else if (field.Type == IntermediateFieldType.String && !(value is string)) - { - if (value is int) - { - data = value.ToString(); - } - else if (value is bool b) - { - data = b ? "true" : "false"; - } - else - { - throw new ArgumentException(nameof(value)); - } - } - else if (field.Type == IntermediateFieldType.Number && !(value is int)) - { - if (value is string str && Int32.TryParse(str, out var number)) - { - data = number; - } - else - { - throw new ArgumentException(nameof(value)); - } - } - else if (field.Type == IntermediateFieldType.Bool && !(value is bool)) - { - if (value is int) - { - data = ((int)value) != 0; - } - else if (value is string str) - { - if (str.Equals("yes", StringComparison.OrdinalIgnoreCase) || str.Equals("true", StringComparison.OrdinalIgnoreCase)) - { - data = true; - } - else if (str.Equals("no", StringComparison.OrdinalIgnoreCase) || str.Equals("false", StringComparison.OrdinalIgnoreCase)) - { - data = false; - } - else - { - throw new ArgumentException(nameof(value)); - } - } - else - { - throw new ArgumentException(nameof(value)); - } - } - else if (field.Type == IntermediateFieldType.Path && !(value is IntermediateFieldPathValue)) - { - if (value is string str) - { - data = new IntermediateFieldPathValue { Path = str }; - } - else - { - throw new ArgumentException(nameof(value)); - } - } - else if (field.Type == IntermediateFieldType.LargeNumber && !(value is long)) - { - if (value is string str && Int64.TryParse(str, out var number)) - { - data = number; - } - else if (value is int i) - { - data = (long)i; - } - else - { - throw new ArgumentException(nameof(value)); - } - } - - field.Value = new IntermediateFieldValue - { - Context = valueContext, - Data = data, - PreviousValue = field.Value - }; - - return field; - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, object value) - { - if (field == null) - { - field = new IntermediateField(definition); - } - - return field.Set(value); - } - public static bool AsBool(this IntermediateField field) { if (field == null || field.Value == null || field.Value.Data == null) @@ -261,5 +150,313 @@ namespace WixToolset.Data throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); } } + + public static IntermediateField Set(this IntermediateField field, bool value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + switch (field.Type) + { + case IntermediateFieldType.Bool: + data = value; + break; + + case IntermediateFieldType.LargeNumber: + data = value ? (long)1 : (long)0; + break; + + case IntermediateFieldType.Number: + data = value ? 1 : 0; + break; + + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert bool '{value}' to a 'Path' field type.", nameof(value)); + + case IntermediateFieldType.String: + data = value ? "true" : "false"; + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, bool? value) + { + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); + } + + public static IntermediateField Set(this IntermediateField field, long value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + switch (field.Type) + { + case IntermediateFieldType.Bool: + data = (value != 0); + break; + + case IntermediateFieldType.LargeNumber: + data = value; + break; + + case IntermediateFieldType.Number: + data = (int)value; + break; + + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert large number '{value}' to a 'Path' field type.", nameof(value)); + + case IntermediateFieldType.String: + data = value.ToString(); + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, long? value) + { + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); + } + + public static IntermediateField Set(this IntermediateField field, int value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + switch (field.Type) + { + case IntermediateFieldType.Bool: + data = (value != 0); + break; + + case IntermediateFieldType.LargeNumber: + data = (long)value; + break; + + case IntermediateFieldType.Number: + data = value; + break; + + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert number '{value}' to a 'Path' field type.", nameof(value)); + + case IntermediateFieldType.String: + data = value.ToString(); + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, int? value) + { + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldPathValue value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + else if (value == null) // null is always allowed. + { + data = null; + } + else + { + switch (field.Type) + { + case IntermediateFieldType.Bool: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'bool' field type.", nameof(value)); + + case IntermediateFieldType.LargeNumber: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'large number' field type.", nameof(value)); + + case IntermediateFieldType.Number: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'number' field type.", nameof(value)); + + case IntermediateFieldType.Path: + data = value; + break; + + case IntermediateFieldType.String: + data = value.Path; + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + } + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, string value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + else if (value == null) // Null is always allowed. + { + data = null; + } + else + { + switch (field.Type) + { + case IntermediateFieldType.Bool: + if (value.Equals("yes", StringComparison.OrdinalIgnoreCase) || value.Equals("true", StringComparison.OrdinalIgnoreCase)) + { + data = true; + } + else if (value.Equals("no", StringComparison.OrdinalIgnoreCase) || value.Equals("false", StringComparison.OrdinalIgnoreCase)) + { + data = false; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'bool' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.LargeNumber: + if (Int64.TryParse(value, out var largeNumber)) + { + data = largeNumber; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'large number' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.Number: + if (Int32.TryParse(value, out var number)) + { + data = number; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.Path: + data = new IntermediateFieldPathValue { Path = value }; + break; + + case IntermediateFieldType.String: + data = value; + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + } + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, bool value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, bool? value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, long value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, long? value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, int value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, int? value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, IntermediateFieldPathValue value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, string value) + { + return EnsureField(field, definition).Set(value); + } + + private static IntermediateField AssignFieldValue(IntermediateField field, object data) + { + field.Value = new IntermediateFieldValue + { + Context = valueContext, + Data = data, + PreviousValue = field.Value + }; + + return field; + } + + private static IntermediateField EnsureField(IntermediateField field, IntermediateFieldDefinition definition) + { + return field ?? new IntermediateField(definition); + } } } diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs index 615c21f9..f5b30d47 100644 --- a/src/WixToolset.Data/IntermediateTupleExtensions.cs +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs @@ -4,15 +4,6 @@ namespace WixToolset.Data { public static class IntermediateTupleExtensions { - public static IntermediateField Set(this IntermediateTuple tuple, int index, object value) - { - var definition = tuple.Definition.FieldDefinitions[index]; - - var field = tuple.Fields[index].Set(definition, value); - - return tuple.Fields[index] = field; - } - public static bool AsBool(this IntermediateTuple tuple, int index) { return tuple?.Fields[index].AsBool() ?? false; @@ -37,5 +28,77 @@ namespace WixToolset.Data { return tuple?.Fields[index].AsString(); } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, bool value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, bool? value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, long value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, long? value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, int value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, int? value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, IntermediateFieldPathValue value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, string value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index e0eedce1..eaf7ef92 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -126,7 +126,7 @@ namespace WixToolset.Data.Tuples public YesNoAlwaysType Cache { get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.Cache]?.Value, true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; - set => this.Set((int)WixBundlePackageTupleFields.Cache, value); + set => this.Set((int)WixBundlePackageTupleFields.Cache, value.ToString().ToLowerInvariant()); } public string CacheId @@ -144,7 +144,7 @@ namespace WixToolset.Data.Tuples public YesNoDefaultType PerMachine { get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.PerMachine]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; - set => this.Set((int)WixBundlePackageTupleFields.PerMachine, value); + set => this.Set((int)WixBundlePackageTupleFields.PerMachine, value.ToString().ToLowerInvariant()); } public string LogPathVariable diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs index d1c02387..d2a82f93 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -106,7 +106,7 @@ namespace WixToolset.Data.Tuples public YesNoDefaultType Compressed { get => Enum.TryParse((string)this.Fields[(int)WixBundlePayloadTupleFields.Compressed]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; - set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value); + set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value.ToString().ToLowerInvariant()); } public string UnresolvedSourceFile -- cgit v1.2.3-55-g6feb From 02dbb5a468d910bbd57ba2cf12ae91b5fc280527 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 1 Jan 2018 15:41:11 -0800 Subject: Fix WixBundlePackage.Cache tuple type --- src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index eaf7ef92..c7dcf373 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -15,7 +15,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Payload_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Cache), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Cache), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.CacheId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Vital), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PerMachine), IntermediateFieldType.Bool), -- cgit v1.2.3-55-g6feb From aa12ce344a305618c3b6a0723519c496c2c9f43c Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 2 Jan 2018 14:18:15 -0800 Subject: Move WixFileNotFoundException from Core back to Data --- src/WixToolset.Data/WixFileNotFoundException.cs | 43 +++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/WixToolset.Data/WixFileNotFoundException.cs (limited to 'src') diff --git a/src/WixToolset.Data/WixFileNotFoundException.cs b/src/WixToolset.Data/WixFileNotFoundException.cs new file mode 100644 index 00000000..c497253c --- /dev/null +++ b/src/WixToolset.Data/WixFileNotFoundException.cs @@ -0,0 +1,43 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// WixException thrown when a file cannot be found. + /// + [Serializable] + public sealed class WixFileNotFoundException : WixException + { + /// + /// Instantiate a new WixFileNotFoundException. + /// + /// Source line information pertaining to the file that cannot be found. + /// The file that could not be found. + public WixFileNotFoundException(SourceLineNumber sourceLineNumbers, string file) : + base(ErrorMessages.FileNotFound(sourceLineNumbers, file)) + { + } + + /// + /// Instantiate a new WixFileNotFoundException. + /// + /// The file that could not be found. + /// The type of file that cannot be found. + public WixFileNotFoundException(string file, string fileType) : this(null, file, fileType) + { + } + + /// + /// Instantiate a new WixFileNotFoundException. + /// + /// Source line information pertaining to the file that cannot be found. + /// The file that could not be found. + /// The type of file that cannot be found. + public WixFileNotFoundException(SourceLineNumber sourceLineNumbers, string file, string fileType) : + base(ErrorMessages.FileNotFound(sourceLineNumbers, file, fileType)) + { + } + } +} -- cgit v1.2.3-55-g6feb From e48ed09e26098b10a964b56a4ff0c630c4204d94 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 6 May 2018 17:26:38 -0400 Subject: Write out useful `keyColumn` value to fix .wixpdb output. --- src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs | 2 +- src/WixToolset.Data/WindowsInstaller/Table.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs b/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs index b6d4f29f..1cbad230 100644 --- a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs @@ -501,7 +501,7 @@ namespace WixToolset.Data.WindowsInstaller if (this.KeyColumn.HasValue) { - writer.WriteAttributeString("keyColumn", this.KeyColumn.HasValue.ToString(CultureInfo.InvariantCulture.NumberFormat)); + writer.WriteAttributeString("keyColumn", this.KeyColumn.Value.ToString(CultureInfo.InvariantCulture.NumberFormat)); } switch (this.Category) diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index ccdcb40b..c57d9d31 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -11,6 +11,7 @@ namespace WixToolset.Data.WindowsInstaller /// /// Object that represents a table in a database. /// + [DebuggerDisplay("{Name}")] public class Table { /// -- cgit v1.2.3-55-g6feb From 22497cb5c93d99a3ef81f170cf28b22ba54a2db8 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 21 Jun 2018 20:37:40 -0400 Subject: Update to netcoreapp2.1 and xunit 2.3.1. --- src/WixToolset.Data/IntermediateField.cs | 2 +- src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateField.cs b/src/WixToolset.Data/IntermediateField.cs index 48cdceea..9aed3d81 100644 --- a/src/WixToolset.Data/IntermediateField.cs +++ b/src/WixToolset.Data/IntermediateField.cs @@ -6,7 +6,7 @@ namespace WixToolset.Data using System.Diagnostics; using SimpleJson; - [DebuggerDisplay("Name={Name,nq} Type={Type} Value={Value.AsString()}")] + [DebuggerDisplay("Name={Name,nq} Type={Type} Value={Value?.AsString()}")] public class IntermediateField { public IntermediateField(IntermediateFieldDefinition definition) diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj index fe0d99c5..7d492b1a 100644 --- a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj +++ b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj @@ -1,7 +1,7 @@ - netcoreapp2.0 + netcoreapp2.1 false -- cgit v1.2.3-55-g6feb From d16eb4dbbef5e29b4096f8d378253d4d3ca85a82 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 12 Jul 2018 21:54:24 -0700 Subject: Improve error message when argument is missing for a switch --- src/WixToolset.Data/ErrorMessages.cs | 2 +- src/WixToolset.Data/WixToolset.Data.csproj | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 7ce94157..81f67c81 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -389,7 +389,7 @@ namespace WixToolset.Data public static Message ExpectedArgument(string argument) { - return Message(null, Ids.ExpectedArgument, "{0} is expected to be followed by a value argument.", argument); + return Message(null, Ids.ExpectedArgument, "{0} is expected to be followed by a value. See -? for additional detail.", argument); } public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index d56af370..00a0ed95 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -1,9 +1,7 @@ - - netstandard2.0 WiX Toolset Data @@ -13,5 +11,4 @@ - -- cgit v1.2.3-55-g6feb From 03db0eb997674381ebaf05b2b4677d5cacc6f3a8 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 12 Jul 2018 21:57:34 -0700 Subject: Improve debuggability --- src/WixToolset.Data/WixToolset.Data.csproj | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 00a0ed95..04d81581 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -6,9 +6,12 @@ netstandard2.0 WiX Toolset Data + embedded + true + -- cgit v1.2.3-55-g6feb From 7f4e5f5788fdf880dfc72f703ddfb6486192bcda Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 12 Jul 2018 22:04:42 -0700 Subject: Update development dependencies --- src/WixToolset.Data/WixToolset.Data.csproj | 2 +- src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 04d81581..45dc9de6 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -12,6 +12,6 @@ - + diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj index 7d492b1a..a4ba7cb1 100644 --- a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj +++ b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj @@ -7,9 +7,9 @@ - - - + + + -- cgit v1.2.3-55-g6feb From 80e6fdeb013c96dbde1a74e5f2973688fa1018d6 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 21 Jul 2018 07:39:38 -0700 Subject: Support creation of redundant file transfers --- src/WixToolset.Data/Bind/FileTransfer.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Bind/FileTransfer.cs b/src/WixToolset.Data/Bind/FileTransfer.cs index 088146d1..046883d8 100644 --- a/src/WixToolset.Data/Bind/FileTransfer.cs +++ b/src/WixToolset.Data/Bind/FileTransfer.cs @@ -64,17 +64,18 @@ namespace WixToolset.Data.Bind string fileLayoutFullPath = GetValidatedFullPath(sourceLineNumbers, destination); - // if the current source path (where we know that the file already exists) and the resolved - // path as dictated by the Directory table are not the same, then propagate the file. The - // image that we create may have already been done by some other process other than the linker, so - // there is no reason to copy the files to the resolved source if they are already there. - if (String.Equals(sourceFullPath, fileLayoutFullPath, StringComparison.OrdinalIgnoreCase)) - { - transfer = null; - return false; - } + //// if the current source path (where we know that the file already exists) and the resolved + //// path as dictated by the Directory table are not the same, then propagate the file. The + //// image that we create may have already been done by some other process other than the linker, so + //// there is no reason to copy the files to the resolved source if they are already there. + //if (String.Equals(sourceFullPath, fileLayoutFullPath, StringComparison.OrdinalIgnoreCase)) + //{ + // transfer = null; + // return false; + //} transfer = new FileTransfer(source, destination, move, type, sourceLineNumbers); + transfer.Redundant = String.Equals(sourceFullPath, fileLayoutFullPath, StringComparison.OrdinalIgnoreCase); return true; } -- cgit v1.2.3-55-g6feb From 7f846324105e14c84f1ad1bad2fe2c10c22f6e4b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 23 Jul 2018 13:44:01 -0700 Subject: Move data only used by extension to Extensiblity repo --- src/WixToolset.Data/Bind/BindPath.cs | 60 ----------- src/WixToolset.Data/Bind/BindResult.cs | 13 --- src/WixToolset.Data/Bind/BindStage.cs | 22 ---- src/WixToolset.Data/Bind/FileTransfer.cs | 112 --------------------- .../WixToolsetTest.Data/WixToolsetTest.Data.csproj | 8 +- 5 files changed, 4 insertions(+), 211 deletions(-) delete mode 100644 src/WixToolset.Data/Bind/BindPath.cs delete mode 100644 src/WixToolset.Data/Bind/BindResult.cs delete mode 100644 src/WixToolset.Data/Bind/BindStage.cs delete mode 100644 src/WixToolset.Data/Bind/FileTransfer.cs (limited to 'src') diff --git a/src/WixToolset.Data/Bind/BindPath.cs b/src/WixToolset.Data/Bind/BindPath.cs deleted file mode 100644 index 823a57c9..00000000 --- a/src/WixToolset.Data/Bind/BindPath.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using WixToolset.Data.Bind; - - /// - /// Bind path representation. - /// - public class BindPath - { - /// - /// Creates an unnamed bind path. - /// - /// Path for the bind path. - public BindPath(string path) : this(String.Empty, path, BindStage.Normal) - { - } - - /// - /// Creates a named bind path. - /// - /// Name of the bind path. - /// Path for the bind path. - /// Stage for the bind path. - public BindPath(string name, string path, BindStage stage = BindStage.Normal) - { - this.Name = name; - this.Path = path; - this.Stage = stage; - } - - /// - /// Name of the bind path or String.Empty if the path is unnamed. - /// - public string Name { get; set; } - - /// - /// Path for the bind path. - /// - public string Path { get; set; } - - /// - /// Stage for the bind path. - /// - public BindStage Stage { get; set; } - - /// - /// Parses a normal bind path from its string representation - /// - /// String representation of bind path that looks like: [name=]path - /// Parsed normal bind path. - public static BindPath Parse(string bindPath) - { - string[] namedPath = bindPath.Split(new char[] { '=' }, 2); - return (1 == namedPath.Length) ? new BindPath(namedPath[0]) : new BindPath(namedPath[0], namedPath[1]); - } - } -} diff --git a/src/WixToolset.Data/Bind/BindResult.cs b/src/WixToolset.Data/Bind/BindResult.cs deleted file mode 100644 index 1b81ab78..00000000 --- a/src/WixToolset.Data/Bind/BindResult.cs +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -namespace WixToolset.Data.Bind -{ - using System.Collections.Generic; - - public class BindResult - { - public IEnumerable FileTransfers { get; set; } - - public IEnumerable ContentFilePaths { get; set; } - } -} diff --git a/src/WixToolset.Data/Bind/BindStage.cs b/src/WixToolset.Data/Bind/BindStage.cs deleted file mode 100644 index c567cde0..00000000 --- a/src/WixToolset.Data/Bind/BindStage.cs +++ /dev/null @@ -1,22 +0,0 @@ -// 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. - -namespace WixToolset.Data.Bind -{ - public enum BindStage - { - /// - /// Normal binding - /// - Normal, - - /// - /// Bind the file path of the target build file - /// - Target, - - /// - /// Bind the file path of the updated build file - /// - Updated, - } -} diff --git a/src/WixToolset.Data/Bind/FileTransfer.cs b/src/WixToolset.Data/Bind/FileTransfer.cs deleted file mode 100644 index 046883d8..00000000 --- a/src/WixToolset.Data/Bind/FileTransfer.cs +++ /dev/null @@ -1,112 +0,0 @@ -// 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. - -namespace WixToolset.Data.Bind -{ - using System; - using System.IO; - - /// - /// Structure used for all file transfer information. - /// - public class FileTransfer - { - /// Source path to file. - public string Source { get; set; } - - /// Destination path for file. - public string Destination { get; set; } - - /// Flag if file should be moved (optimal). - public bool Move { get; set; } - - /// Optional source line numbers where this file transfer orginated. - public SourceLineNumber SourceLineNumbers { get; set; } - - /// Optional type of file this transfer is moving or copying. - public string Type { get; set; } - - /// Indicates whether the file transer was a built by this build or copied from other some build. - public bool Built { get; set; } - - /// Set during layout of media when the file transfer when the source and target resolve to the same path. - public bool Redundant { get; set; } - - /// - /// Prefer the TryCreate() method to create FileTransfer objects. - /// - /// Source path to file. - /// Destination path for file. - /// File if file should be moved (optimal). - /// Optional type of file this transfer is transferring. - /// Optional source line numbers wher this transfer originated. - public FileTransfer(string source, string destination, bool move, string type = null, SourceLineNumber sourceLineNumbers = null) - { - this.Source = source; - this.Destination = destination; - this.Move = move; - - this.Type = type; - this.SourceLineNumbers = sourceLineNumbers; - } - - /// - /// Creates a file transfer if the source and destination are different. - /// - /// Source path to file. - /// Destination path for file. - /// File if file should be moved (optimal). - /// Optional type of file this transfer is transferring. - /// Optional source line numbers where this transfer originated. - /// true if the source and destination are the different, false if no file transfer is created. - public static bool TryCreate(string source, string destination, bool move, string type, SourceLineNumber sourceLineNumbers, out FileTransfer transfer) - { - string sourceFullPath = GetValidatedFullPath(sourceLineNumbers, source); - - string fileLayoutFullPath = GetValidatedFullPath(sourceLineNumbers, destination); - - //// if the current source path (where we know that the file already exists) and the resolved - //// path as dictated by the Directory table are not the same, then propagate the file. The - //// image that we create may have already been done by some other process other than the linker, so - //// there is no reason to copy the files to the resolved source if they are already there. - //if (String.Equals(sourceFullPath, fileLayoutFullPath, StringComparison.OrdinalIgnoreCase)) - //{ - // transfer = null; - // return false; - //} - - transfer = new FileTransfer(source, destination, move, type, sourceLineNumbers); - transfer.Redundant = String.Equals(sourceFullPath, fileLayoutFullPath, StringComparison.OrdinalIgnoreCase); - return true; - } - - private static string GetValidatedFullPath(SourceLineNumber sourceLineNumbers, string path) - { - string result; - - try - { - result = Path.GetFullPath(path); - - var filename = Path.GetFileName(result); - - foreach (var reservedName in Common.ReservedFileNames) - { - if (reservedName.Equals(filename, StringComparison.OrdinalIgnoreCase)) - { - throw new WixException(ErrorMessages.InvalidFileName(sourceLineNumbers, path)); - } - } - } - catch (ArgumentException) - { - throw new WixException(ErrorMessages.InvalidFileName(sourceLineNumbers, path)); - } - catch (PathTooLongException) - { - throw new WixException(ErrorMessages.PathTooLong(sourceLineNumbers, path)); - } - - return result; - } - } -} diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj index a4ba7cb1..e81b4f6f 100644 --- a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj +++ b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj @@ -7,13 +7,13 @@ - - - + - + + + -- cgit v1.2.3-55-g6feb From db6dd40daf44e0f06a9ff5f78ea9601138024583 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 26 Jul 2018 23:51:12 -0700 Subject: Remove unnecessary code from Data Less code in the "rootest" repo is a good thing. --- src/WixToolset.Data/Common.cs | 40 ----------------------- src/WixToolset.Data/WixFileNotFoundException.cs | 43 ------------------------- 2 files changed, 83 deletions(-) delete mode 100644 src/WixToolset.Data/Common.cs delete mode 100644 src/WixToolset.Data/WixFileNotFoundException.cs (limited to 'src') diff --git a/src/WixToolset.Data/Common.cs b/src/WixToolset.Data/Common.cs deleted file mode 100644 index f75ad33e..00000000 --- a/src/WixToolset.Data/Common.cs +++ /dev/null @@ -1,40 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.IO; - using System.Security.Cryptography; - using System.Text; - using System.Text.RegularExpressions; - using System.Xml.Linq; - - internal static class Common - { - public const int IntegerNotSet = Int32.MinValue; - - internal static readonly XNamespace W3SchemaPrefix = "http://www.w3.org/"; - - internal static readonly string[] ReservedFileNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" }; - - internal static string GetFileHash(FileInfo fileInfo) - { - byte[] hashBytes; - using (SHA1Managed managed = new SHA1Managed()) - { - using (FileStream stream = fileInfo.OpenRead()) - { - hashBytes = managed.ComputeHash(stream); - } - } - - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < hashBytes.Length; i++) - { - sb.AppendFormat("{0:X2}", hashBytes[i]); - } - - return sb.ToString(); - } - } -} diff --git a/src/WixToolset.Data/WixFileNotFoundException.cs b/src/WixToolset.Data/WixFileNotFoundException.cs deleted file mode 100644 index c497253c..00000000 --- a/src/WixToolset.Data/WixFileNotFoundException.cs +++ /dev/null @@ -1,43 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// WixException thrown when a file cannot be found. - /// - [Serializable] - public sealed class WixFileNotFoundException : WixException - { - /// - /// Instantiate a new WixFileNotFoundException. - /// - /// Source line information pertaining to the file that cannot be found. - /// The file that could not be found. - public WixFileNotFoundException(SourceLineNumber sourceLineNumbers, string file) : - base(ErrorMessages.FileNotFound(sourceLineNumbers, file)) - { - } - - /// - /// Instantiate a new WixFileNotFoundException. - /// - /// The file that could not be found. - /// The type of file that cannot be found. - public WixFileNotFoundException(string file, string fileType) : this(null, file, fileType) - { - } - - /// - /// Instantiate a new WixFileNotFoundException. - /// - /// Source line information pertaining to the file that cannot be found. - /// The file that could not be found. - /// The type of file that cannot be found. - public WixFileNotFoundException(SourceLineNumber sourceLineNumbers, string file, string fileType) : - base(ErrorMessages.FileNotFound(sourceLineNumbers, file, fileType)) - { - } - } -} -- cgit v1.2.3-55-g6feb From f2ead15c8bbaf6ce777d7026cd8422df3628dd19 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 27 Jul 2018 00:26:30 -0700 Subject: Support displaying paths checked when file not found --- src/WixToolset.Data/ErrorMessages.cs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 81f67c81..a50615f3 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -3,6 +3,8 @@ namespace WixToolset.Data { using System; + using System.Collections; + using System.Collections.Generic; using System.Resources; public static class ErrorMessages @@ -647,6 +649,12 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}' with type '{1}'.", file, fileType); } + public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType, IEnumerable checkedPaths) + { + var combinedCheckedPaths = String.Join(", ", checkedPaths); + return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}' with type '{1}'. The following paths were checked: {2}", file, fileType, combinedCheckedPaths); + } + public static Message FileOrDirectoryPathRequired(string parameter) { return Message(null, Ids.FileOrDirectoryPathRequired, "The parameter '{0}' must be followed by a file or directory path. To specify a directory path the string must end with a backslash, for example: \"C:\\Path\\\".", parameter); -- cgit v1.2.3-55-g6feb From 448064034d09629d3b552d2406c8cb5e3a27097d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 27 Jul 2018 11:29:59 -0700 Subject: Remove unused code --- src/WixToolset.Data/Localization.cs | 2 -- 1 file changed, 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index 673e0155..ccc531f3 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs @@ -12,8 +12,6 @@ namespace WixToolset.Data /// public sealed class Localization { - private static string XmlElementName = "localization"; - private Dictionary variables = new Dictionary(); private Dictionary localizedControls = new Dictionary(); -- cgit v1.2.3-55-g6feb From 647843e5c749c8cdabad423a33197056ed1fb1d0 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 31 Jul 2018 15:28:24 -0700 Subject: Add error messages for source file command line processing --- src/WixToolset.Data/ErrorMessages.cs | 13 ++++++++++++- src/WixToolset.Data/FileStructure.cs | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index a50615f3..9b59d6b9 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -3,7 +3,6 @@ namespace WixToolset.Data { using System; - using System.Collections; using System.Collections.Generic; using System.Resources; @@ -2225,6 +2224,16 @@ namespace WixToolset.Data return Message(null, Ids.WrongFileExtensionForNumberOfInputs, "The extension '{0}' on the input specified '{1}' does not match the number of inputs required to handle an input with this extension. Check if you are missing an input or have too many.", inputExtension, input); } + public static Message NoSourceFiles() + { + return Message(null, Ids.NoSourceFiles, "No source files specified."); + } + + public static Message WixiplSourceFileIsExclusive() + { + return Message(null, Ids.WixiplSourceFileIsExclusive, "When an intermediate post link source file is specified, it must be the only source file provided."); + } + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) { return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); @@ -2618,6 +2627,8 @@ namespace WixToolset.Data InsecureBundleFilename = 388, PayloadMustBeRelativeToCache = 389, MsiTransactionX86BeforeX64 = 390, + NoSourceFiles = 391, + WixiplSourceFileIsExclusive = 392, } } } diff --git a/src/WixToolset.Data/FileStructure.cs b/src/WixToolset.Data/FileStructure.cs index 722125d8..2667df1e 100644 --- a/src/WixToolset.Data/FileStructure.cs +++ b/src/WixToolset.Data/FileStructure.cs @@ -23,6 +23,7 @@ namespace WixToolset.Data { { "wir", FileFormat.WixIR }, { "wixirf", FileFormat.WixIR }, + { "wixipl", FileFormat.WixIR }, { "wixobj", FileFormat.Wixobj }, { "wixlib", FileFormat.Wixlib }, { "wixout", FileFormat.Wixout }, -- cgit v1.2.3-55-g6feb From 0459e7204648c6915f9ee89bd6e292d506a505fd Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 6 Sep 2018 20:26:49 -0400 Subject: Add code page error message with source-line numbers. --- src/WixToolset.Data/ErrorMessages.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 9b59d6b9..48c1b44b 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -904,6 +904,11 @@ namespace WixToolset.Data return Message(null, Ids.IllegalCodepage, "The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); } + public static Message IllegalCodepage(SourceLineNumber sourceLineNumbers, int codepage) + { + return Message(sourceLineNumbers, Ids.IllegalCodepage, "The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); + } + public static Message IllegalCodepageAttribute(SourceLineNumber sourceLineNumbers, string codepage, string elementName, string attributeName) { return Message(sourceLineNumbers, Ids.IllegalCodepageAttribute, "The code page '{0}' is not a valid Windows code page. Please check the {1}/@{2} attribute value in your source file.", codepage, elementName, attributeName); -- cgit v1.2.3-55-g6feb From ead6d68c71b88f309f75c66c1632f8e7d5ce3954 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 11 Aug 2018 01:04:30 -0700 Subject: Enable NCrunch support --- WixToolset.Data.v3.ncrunchsolution | 6 ++++++ src/Directory.Build.props | 15 +++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 WixToolset.Data.v3.ncrunchsolution (limited to 'src') diff --git a/WixToolset.Data.v3.ncrunchsolution b/WixToolset.Data.v3.ncrunchsolution new file mode 100644 index 00000000..10420ac9 --- /dev/null +++ b/WixToolset.Data.v3.ncrunchsolution @@ -0,0 +1,6 @@ + + + True + True + + \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 7cd6767f..9eacf3f5 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,12 +1,18 @@ - + Debug - $(MSBuildThisFileDirectory)..\build\obj\$(MSBuildProjectName)\ - $(MSBuildThisFileDirectory)..\build\$(Configuration)\ - $(BaseOutputPath) + false + + $(MSBuildProjectName) + $(MSBuildThisFileDirectory)..\build\ + $(BaseOutputPath)obj\$(ProjectName)\ + $(BaseOutputPath)$(Configuration)\ WiX Toolset Team WiX Toolset @@ -18,5 +24,6 @@ $(MSBuildThisFileDirectory)..\..\ + -- cgit v1.2.3-55-g6feb From 532adb4a6538a646daa95e1bf90327da8a2fc4a1 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 12 Dec 2018 22:18:47 -0600 Subject: ole.dll should be ole2.dll. Fixes wixtoolset/issues#2459. --- src/WixToolset.Data/Xsd/wix.xsd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Xsd/wix.xsd b/src/WixToolset.Data/Xsd/wix.xsd index cff3c219..4e075cf4 100644 --- a/src/WixToolset.Data/Xsd/wix.xsd +++ b/src/WixToolset.Data/Xsd/wix.xsd @@ -6252,13 +6252,13 @@ HandlerIn General Value "1" specified: [HKCR\CLSID\{Id}\InprocHandler] - @="ole.dll" + @="ole2.dll" Value "2" specified: [HKCR\CLSID\{Id}\InprocHandler32] @="ole32.dll" Value "3" specified: [HKCR\CLSID\{Id}\InprocHandler] - @="ole.dll" + @="ole2.dll" [HKCR\CLSID\{Id}\InprocHandler32] @="ole32.dll" Other value specified: -- cgit v1.2.3-55-g6feb From 32b0776eb09c37ab743eb74f3112360f97b1e770 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 12 Dec 2018 22:58:12 -0600 Subject: Class/@Icon is supported. (#4) Fixes wixtoolset/issues#2461. --- src/WixToolset.Data/Xsd/wix.xsd | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Xsd/wix.xsd b/src/WixToolset.Data/Xsd/wix.xsd index 4e075cf4..94ff6742 100644 --- a/src/WixToolset.Data/Xsd/wix.xsd +++ b/src/WixToolset.Data/Xsd/wix.xsd @@ -6267,7 +6267,7 @@ Specific Example (for other value) [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32] @="handler.dll" - Icon/IconIndexThis is not currently handled properly.InsertableIn General + Icon/IconIndexInsertableIn General Value "no" specified: [HKCR\CLSID\{Id}\NotInsertable] Value "yes" specified: @@ -6393,8 +6393,7 @@ The file providing the icon associated with this CLSID. Reference to an Icon element - (should match the Id attribute of an Icon element). This is currently not supported if the - value of the Advertise attribute is "no". + (should match the Id attribute of an Icon element). -- cgit v1.2.3-55-g6feb From d9a6764a268a07ea159c39a8799e9bdf6efffb24 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 22 Dec 2018 08:14:40 -0800 Subject: Integrate SmartPackageReference --- src/Directory.Build.props | 6 +----- src/Directory.Build.targets | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 src/Directory.Build.targets (limited to 'src') diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 9eacf3f5..35ef739b 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -10,7 +10,7 @@ false $(MSBuildProjectName) - $(MSBuildThisFileDirectory)..\build\ + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\)) $(BaseOutputPath)obj\$(ProjectName)\ $(BaseOutputPath)$(Configuration)\ @@ -20,10 +20,6 @@ WiX Toolset - - $(MSBuildThisFileDirectory)..\..\ - - diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets new file mode 100644 index 00000000..48629385 --- /dev/null +++ b/src/Directory.Build.targets @@ -0,0 +1,43 @@ + + + + + true + $(SolutionPath) + $(NCrunchOriginalSolutionPath) + + + + + + + $([System.IO.File]::ReadAllText($(TheSolutionPath))) + $([System.IO.Path]::GetDirectoryName( $(TheSolutionPath) )) + (?<="[PackageName]", ")(.*)(?=", ") + + + + + + %(Identity) + $(SolutionFileContent.Contains('\%(Identity).csproj')) + + + + + $(RegexPattern.Replace('[PackageName]','%(PackageName)') ) + $([System.Text.RegularExpressions.Regex]::Match('$(SolutionFileContent)', '%(Pattern)')) + + + + + + + + + + + -- cgit v1.2.3-55-g6feb From 84f5848daadde7ffaa20c9bf2b10b2d8842dae62 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 24 Oct 2018 14:41:35 -0700 Subject: Update to latest Home\repo-template --- .editorconfig | 37 +++++++++++++++++++++++++++++++++++++ appveyor.yml | 6 ++++++ src/Directory.Build.props | 2 +- src/Directory.Build.targets | 5 +++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 .editorconfig (limited to 'src') diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..1d72e683 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,37 @@ +# 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. +# +# Do NOT modify this file. Update the canonical version in Home\repo-template\src\.editorconfig +# then update all of the repos. + +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true + +[*.{cs,vb}] +dotnet_sort_system_directives_first = true + +[*.cs] +csharp_indent_case_contents = true : error +csharp_indent_switch_labels = true : error +csharp_new_line_before_open_brace = all +csharp_prefer_braces = true : error +csharp_style_expression_bodied_methods = when_on_single_line : suggestion +csharp_style_expression_bodied_constructors = when_on_single_line : suggestion +csharp_style_expression_bodied_operators = when_on_single_line : suggestion +csharp_style_expression_bodied_properties = when_on_single_line : suggestion +csharp_style_expression_bodied_indexers = when_on_single_line : suggestion +csharp_style_expression_bodied_accessors = when_on_single_line : suggestion +csharp_style_var_elsewhere = true : suggestion +csharp_style_var_for_built_in_types = true : suggestion +csharp_style_var_when_type_is_apparent = true : suggestion +dotnet_style_qualification_for_event = true : error +dotnet_style_qualification_for_field = true : error +dotnet_style_qualification_for_method = true : error +dotnet_style_qualification_for_property = true : error + +[*.targets] +indent_size = 2 diff --git a/appveyor.yml b/appveyor.yml index 0c74d54b..d55322da 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,3 +1,8 @@ +# 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. +# +# Do NOT modify this file. Update the canonical version in Home\repo-template\src\appveyor.yml +# then update all of the repos. + image: Visual Studio 2017 version: 0.0.0.{build} @@ -17,6 +22,7 @@ pull_requests: nuget: disable_publish_on_pr: true +skip_branch_with_pr: true skip_tags: true artifacts: diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 35ef739b..f09c622b 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,7 +1,7 @@ diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index 48629385..dac7452a 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -1,4 +1,9 @@ + + - - - - - - Schema for describing Windows Installer database files (.msi/.msm/.pcp). - - - - - - - - - - This is the top-level container element for every wxs file. Among the possible children, - the Bundle, Product, Module, Patch, and PatchCreation elements are analogous to the main function in a C program. - There can only be one of these present when linking occurs. Product compiles into an msi file, - Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element - is an atomic unit which ultimately links into either a Product, Module, or PatchCreation. The - Fragment can either be completely included or excluded during linking. - - - - - - - - - - - - - - - - - - Required version of the WiX toolset to compile this input file. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema. - - - - - - - - - This is the top-level container element for every wxi file. - - - - - - - - - - - The root element for creating bundled packages. - - - - - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - A URL for more information about the bundle to display in Programs and Features (also - known as Add/Remove Programs). - - - - - - - The legal copyright found in the version resources of final bundle executable. If - this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.". - - - - - - Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes. - - - - - - Determines whether the bundle can be modified via the Programs and Features (also known as - Add/Remove Programs). If the value is "button" then Programs and Features will show a single - "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show - the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown. - See the DisableRemove attribute for information how to not display the bundle in Programs - and Features. - - - - - - - Determines whether the bundle can be removed via the Programs and Features (also - known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will - not be displayed. The default is "no" which ensures there is an "Uninstall" button to - remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the - bundle will not be displayed in Progams and Features and another mechanism (such as - registering as a related bundle addon) must be used to ensure the bundle can be removed. - - - - - - - - - - - - - - A telephone number for help to display in Programs and Features (also known as - Add/Remove Programs). - - - - - - - A URL to the help for the bundle to display in Programs and Features (also known as - Add/Remove Programs). - - - - - - - Path to an icon that will replace the default icon in the final Bundle executable. - This icon will also be displayed in Programs and Features (also known as Add/Remove - Programs). - - - - - - - The publisher of the bundle to display in Programs and Features (also known as - Add/Remove Programs). - - - - - - - The name of the bundle to display in Programs and Features (also known as Add/Remove - Programs). This name can be accessed and overwritten by a BootstrapperApplication - using the WixBundleName bundle variable. - - - - - - - The name of the parent bundle to display in Installed Updates (also known as Add/Remove - Programs). This name is used to nest or group bundles that will appear as updates. - If the parent name does not actually exist, a virtual parent is created automatically. - - - - - - Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed. - - - - - Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality. - - - - - - A URL for updates of the bundle to display in Programs and Features (also - known as Add/Remove Programs). - - - - - - - Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the - bundle with the highest version will be installed. - - - - - - - The version of the bundle. Newer versions upgrade earlier versions of the bundles - with matching UpgradeCodes. If the bundle is registered in Programs and Features - then this attribute will be displayed in the Programs and Features user interface. - - - - - - - The condition of the bundle. If the condition is not met, the bundle will - refuse to run. Conditions are checked before the bootstrapper application is loaded - (before detect), and thus can only reference built-in variables such as - variables which indicate the version of the OS. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location. - - - - - - - - The identifier of the ApprovedExeForElevation element. - - - - - - The key path. - For security purposes, the root key will be HKLM and Variables are not supported. - - - - - - - The value name. - For security purposes, Variables are not supported. - - - - - - - Instructs the search to look in the 64-bit registry when the value is 'yes'. - When the value is 'no', the search looks in the 32-bit registry. - The default value is 'no'. - - - - - - - - Overrides the default log settings for a bundle. - - - - - - - - - Disables the default logging in the Bundle. The end user can still generate a - log file by specifying the "-l" command-line argument when installing the - Bundle. - - - - - - - Name of a Variable that will hold the path to the log file. An empty value - will cause the variable to not be set. The default is "WixBundleLog". - - - - - - - File name and optionally a relative path to use as the prefix for the log file. The - default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value - "Setup". - - - - - - The extension to use for the log. The default is ".log". - - - - - - - Specify one or more catalog files that will be used to verify the contents of the bundle. - - - - - - - - The identifier of the catalog element. - - - - - The catalog file - - - - - - - Contains all the relevant information about the setup UI. - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element. - - - - - The DLL with the bootstrapper application entry function. - - - - - The relative destination path and file name for the bootstrapper application DLL. The default is the source file name. Use this attribute to rename the bootstrapper application DLL or extract it into a subfolder. The use of '..' directories is not allowed. - - - - - - - Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application. - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - The identifier of the BootstrapperApplication element to reference. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - This element has been deprecated. Use the BootstrapperApplication element instead. - - - - - - - - - - - - - - See the BootstrapperApplication instead. - - - - - See the BootstrapperApplication instead. - - - - - See the BootstrapperApplication instead. - - - - - - - Writes additional information to the Windows registry that can be used to detect the bundle. - This registration is intended primarily for update to an existing product. - - - The attributes are used to write the following registry values to the key: - SOFTWARE\[Manufacturer]\Updates\[ProductFamily]\[Name] - - ThisVersionInstalled: Y - PackageName: >bundle name< - PackageVersion: >bundle version< - Publisher: [Manufacturer] - PublishingGroup: [Department] - ReleaseType: [Classification] - InstalledBy: [LogonUser] - InstalledDate: [Date] - InstallerName: >installer name< - InstallerVersion: >installer version< - - - - - - - - The name of the manufacturer. The default is the Bundle/@Manufacturer attribute, - but may also be a short form, ex: Acme instead of Acme Corporation. - An error is generated at build time if neither attribute is specified. - - - - - The name of the department or division publishing the update bundle. - The PublishingGroup registry value is not written if this attribute is not specified. - - - - - The name of the family of products being updated. The default is the Bundle/@ParentName attribute. - The corresponding registry key is not created if neither attribute is specified. - - - - - The name of the bundle. The default is the Bundle/@Name attribute, - but may also be a short form, ex: KB12345 instead of Update to Product (KB12345). - An error is generated at build time if neither attribute is specified. - - - - - The release type of the update bundle, such as Update, Security Update, Service Pack, etc. - The default value is Update. - - - - - - - Contains the chain of packages to install. - - - - - - - - - - - - - - - - - Specifies whether the bundle will attempt to rollback packages - executed in the chain. If "yes" is specified then when a vital - package fails to install only that package will rollback and the - chain will stop with the error. The default is "no" which - indicates all packages executed during the chain will be - rolledback to their previous state when a vital package fails. - - - - - - - Specifies whether the bundle will attempt to create a system - restore point when executing the chain. If "yes" is specified then - a system restore point will not be created. The default is "no" which - indicates a system restore point will be created when the bundle is - installed, uninstalled, repaired, modified, etc. If the system restore - point cannot be created, the bundle will log the issue and continue. - - - - - - - Specifies whether the bundle will start installing packages - while other packages are still being cached. If "yes", - packages will start executing when a rollback boundary is - encountered. The default is "no" which dictates all packages - must be cached before any packages will start to be installed. - - - - - - - - Describes a single msi package to install. - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. The extension's - CompilerExtension.ParseElement() - method will be called with the package identifier as the first value in - contextValues. - - - - - - - - - Specifies whether the bundle will show the UI authored into the msi package. The default is "no" - which means all information is routed to the bootstrapper application to provide a unified installation - experience. If "yes" is specified the UI authored into the msi package will be displayed on top of - any bootstrapper application UI. - - - - - - - Specifies whether the bundle will allow individual control over the installation state of Features inside - the msi package. Managing feature selection requires special care to ensure the install, modify, update and - uninstall behavior of the package is always correct. The default is "no". - - - - - - - Override the automatic per-machine detection of MSI packages and force the package to be per-machine. - The default is "no", which allows the tools to detect the expected value. - - - - - - - This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package - to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads. - The resulting Bundle may not be able to install the MSI package correctly. The default is "no". - - - - - - - Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is - specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI - will not be displayed. - - - - - - - - Describes a single msp package to install. - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. The extension's - CompilerExtension.ParseElement() - method will be called with the package identifier as the first value in - contextValues. - - - - - - - - - Specifies whether the bundle will show the UI authored into the msp package. The default is "no" - which means all information is routed to the bootstrapper application to provide a unified installation - experience. If "yes" is specified the UI authored into the msp package will be displayed on top of - any bootstrapper application UI. - - - - - - Indicates the package must be executed elevated. The default is "no". - - - - - - Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no". - Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired. - - - - - - - - Describes a single msu package to install. - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. The extension's - CompilerExtension.ParseElement() - method will be called with the package identifier as the first value in - contextValues. - - - - - - - - - A condition that determines if the package is present on the target system. This condition can use built-in - variables and variables returned by searches. This condition is necessary because Windows doesn't provide a - method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this - package during a bundle action; for example, if this condition is false or omitted and the bundle is being - installed, Burn will install this package. - - - - - - - The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to - be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute - is specified, the Permanent attribute will the control whether the package is uninstalled. - - - - - - - - Describes a single exe package to install. - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. The extension's - CompilerExtension.ParseElement() - method will be called with the package identifier as the first value in - contextValues. - - - - - - - - - A condition that determines if the package is present on the target system. This condition can use built-in - variables and variables returned by searches. This condition is necessary because Windows doesn't provide a - method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this - package during a bundle action; for example, if this condition is false or omitted and the bundle is being - installed, Burn will install this package. - - - - - - The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments. - - - - - - The command-line arguments to specify to indicate a repair. If the executable package can be repaired but - does not require any special command-line arguments to do so then set the attribute's value to blank. To - indicate that the package does not support repair, omit this attribute. - - - - - - The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes". - - - - - Indicates the package must be executed elevated. The default is "no". - - - - - Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none". - - - - - - - Describes a rollback boundary in the chain. - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. The extension's - CompilerExtension.ParseElement() - method will be called with the rollback boundary identifier as the 'RollbackBoundaryId' key in - contextValues. - - - - - - - - Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is - not provided a stable identifier will be generated. - - - - - - - Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if - the rollback boundary is encountered then the chain will fail and rollback or stop. If "no" - is specified then the chain should continue successfuly at the next rollback boundary. - - - - - - - Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no" - - - - - - - - - - Location of the package to add to the bundle. The default value is the Name attribute, if provided. - At a minimum, the SourceFile or Name attribute must be specified. - - - - - - - The destination path and file name for this chain payload. Use this attribute to rename the - chain entry point or extract it into a subfolder. The default value is the file name from the - SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - The use of '..' directories is not allowed. - - - - - - - The URL to use to download the package. The following substitutions are supported: - - {0} is replaced by the package Id. - {1} is replaced by the payload Id. - {2} is replaced by the payload file name. - - - - - - - - Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - - - - - - - The identifier of another package that this one should be installed after. By default the After - attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - attribute is specified ensure that a cycle is not created explicitly or implicitly. - - - - - - - The size this package will take on disk in bytes after it is installed. By default, the binder will - calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - and use the total for the install size of the package. - - - - - - A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - - - - - Whether to cache the package. The default is "yes". - - - - - The identifier to use when caching the package. - - - - - - Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - bootstrapper application data manifest. - - - - - - - Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - the Description patch metadata property. Other package types must use this attribute to define a description in the - bootstrapper application data manifest. - - - - - - - Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - - - - - - - Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - default to no logging. - - - - - - - Specifies whether the package can be uninstalled. The default is "no". - - - - - - - Specifies whether the package must succeed for the chain to continue. The default "yes" - indicates that if the package fails then the chain will fail and rollback or stop. If - "no" is specified then the chain will continue even if the package reports failure. - - - - - - Whether the package payload should be embedded in a container or left as an external payload. - - - - - - By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. The extension's - CompilerExtension.ParseAttribute() - method will be called with the package identifier in - contextValues["PackageId"]. - - - - - - - Describes a package group to a bootstrapper. - - - - - - - - - - - - - - - - Identifier for package group. - - - - - - - Create a reference to PackageGroup element that exists inside a Bundle or Fragment element. - - - - - - - - - - - The identifier of the PackageGroup element to reference. - - - - - The identifier of a package that this group should be installed after. - - - - - - - Allows an MSI property to be set based on the value of a burn engine expression. - - - - - - - - The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE - - - - - The value to set the property to. This string is evaluated by the burn engine and can be as simple as a burn engine variable reference or as complex as a full expression. - - - - - - - Specifies a patch included in the same bundle that is installed when the parent MSI package is installed. - - - - - You can also specify that any MspPackage elements in the chain are automatically slipstreamed by setting the Slipstream attribute of an MspPackage to "yes". This will reduce the amount of authoring you need to write and will determine which msi packages can slipstream patches when building a bundle. - - - - - - - The identifier for a MspPackage in the bundle. - - - - - - - Describes a burn engine variable to define. - - - - - - - - - Whether the value of the variable should be hidden. - - - - - The name for the variable. - - - - - Whether the variable should be persisted. - - - - - Starting value for the variable. - - - - - Type of the variable, inferred from the value if not specified. - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Representation of a file that contains one or more files. - - - - - - - - - - - - The URL to use to download the container. This attribute is only valid when the container is detached. The - following substitutions are supported: - - {0} is always null. - {1} is replaced by the container Id. - {2} is replaced by the container file name. - - - - - - - The unique identifier for the container. If this attribute is not specified the Name attribute will be used. - - - - - The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle. - - - - - - Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If - this attribute is not specified, the default is to create a detached container. - - - - - - - - Create a reference to an existing Container element. - - - - - - - - - The identifier of Container element to reference. - - - - - - - Describes map of exit code returned from executable package to a bootstrapper behavior. - - - - - - - - Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior. - - - - - Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot. - - - - - - - - - - - - - - - Describes additional, conditional command-line arguments for an ExePackage. - - - - - Additional command-line arguments to apply during package installation if Condition is true. - - - - - Additional command-line arguments to apply during package uninstallation if Condition is true. - - - - - Additional command-line arguments to apply during package repair if Condition is true. - - - - - - The condition that controls whether the command-line arguments specified in the - InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the - command line passed to the ExePackage. Which attribute is used depends on the - action being applied to the ExePackage. For example, when the ExePackage is - being installed, the InstallArgument attribute value is appended to the command - line when the ExePackage is executed. - - - - - - - - Describes a payload to a bootstrapper. - - - - - - - - - - - - - The identifier of Payload element. - - - - - Whether the payload should be embedded in a container or left as an external payload. - - - - - Location of the source file. - - - - - The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed. - - - - - - The URL to use to download the package. The following substitutions are supported: - - {0} is replaced by the package Id. - {1} is replaced by the payload Id. - {2} is replaced by the payload file name. - - - - - - - - By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - - - - - - - - Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle. - PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage. - It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it. - - - - - - - - - - - - Identifier for payload group. - - - - - - - Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element. - - - - - - - - - - - The identifier of the PayloadGroup element to reference. - - - - - - - Describes information about a remote file payload that is not available at the time of building the bundle. - The parent must specify DownloadUrl and must not specify SourceFile when using this element. - - - - - - - - - Public key of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. - - - - - Thumbprint of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. - - - - - Description of the file from version resources. - - - - - SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes. - - - - - Product name of the file from version resouces. - - - - - Size of the remote file in bytes. - - - - - Version of the remote file - - - - - - - Create a RelatedBundle element. - - - - - - - - - The identifier of the RelatedBundle group. - - - - - The action to take on bundles related to this one. Detect is the default. - - - - - - - - - - - - - - - Defines the update for a Bundle. - - - - - - - - - - The absolute path or URL to check for an update bundle. Currently the engine provides this value - in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the - future the engine will be able to acquire an update bundle from the location and determine if it - is newer than the current executing bundle. - - - - - - - - - The Product element is analogous to the main function in a C program. When linking, only one Product section - can be given to the linker to produce a successful result. Using this element creates an msi file. - - - - You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - The product code GUID for the product. - - - - - The code page integer value or web name for the resulting MSI. See remarks for more information. - - - - - The decimal language ID (LCID) for the product. - - - - - The manufacturer of the product. - - - - - The descriptive name of the product. - - - - - The upgrade code GUID for the product. - - - - - The product's version string. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - The Module element is analogous to the main function in a C program. When linking, only - one Module section can be given to the linker to produce a successful result. Using this - element creates an msm file. - - - - You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - The name of the merge module (not the file name). - - - - - The code page integer value or web name for the resulting MSM. See remarks for more information. - - - - - This attribute is deprecated. Use the Package/@Id attribute instead. - - - - - The decimal language ID (LCID) of the merge module. - - - - - The major and minor versions of the merge module. - - - - - - - Declares a dependency on another merge module. - - - - - Identifier of the merge module required by the merge module. - - - - - Numeric language ID of the merge module in RequiredID. - - - - - Version of the merge module in RequiredID. - - - - - - - Declares a merge module with which this merge module is incompatible. - - - - - Identifier of the merge module that is incompatible. - - - - - Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. - - - - - Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. - - - - - Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version. - - - - - Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version. - - - - - - - Defines the configurable attributes of merge module. - - - - - Defines the name of the configurable item. - - - - - Specifies the format of the data being changed. - - - - - - - - - - - - - Specifies the type of the data being changed. - - - - - Specifies a semantic context for the requested data. - - - - - Specifies a default value for the item in this record if the merge tool declines to provide a value. - - - - - Does not merge rule according to rules in MSI SDK. - - - - - If yes, null is not a valid entry. - - - - - Display name for authoring. - - - - - Description for authoring. - - - - - Location of chm file for authoring. - - - - - Keyword into chm file for authoring. - - - - - - - Specifies the configurable fields of a module database and provides a template for the configuration of each field. - - - - - Specifies the name of the table being modified in the module database. - - - - - Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons. - - - - - Specifies the target column in the row named in the Row column. - - - - - Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. - - - - - - - - Specifies a table from the merge module that is not merged into an .msi file. - If the table already exists in an .msi file, it is not modified by the merge. - The specified table can therefore contain data that is unneeded after the merge. - To minimize the size of the .msm file, it is recommended that developers remove - unused tables from modules intended for redistribution rather than creating - IgnoreTable elements for those tables. - - - - - - - The name of the table in the merge module that is not to be merged into the .msi file. - - - - - - - - - The Fragment element is the building block of creating an installer database in WiX. Once defined, - the Fragment becomes an immutable, atomic unit which can either be completely included or excluded - from a product. The contents of a Fragment element can be linked into a product by utilizing one - of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its - individual units. For instance, if a given Fragment contains two Component elements, you must link - both under features using ComponentRef for each linked Component. Otherwise, you will get a linker - warning and have a floating Component that does not appear under any Feature. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Optional identifier for a Fragment. Should only be set by advanced users to tag sections. - - - - - - - - - The Patch element is analogous to the main function in a C program. When linking, only one Patch section - can be given to the linker to produce a successful result. Using this element creates an MSP file. - - - - You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. - The ClientPatchId attribute allows you to specify an easily referenced identity that you can use in product authoring. This identity prefixes properties added by WiX to a patch transform, such as ClientPatchId.PatchCode and ClientPatchId.AllowRemoval. If the patch code GUID is auto-generated you could not reference any properties using this auto-generated prefix. - For example, if you were planning to ship a patch referred to as "QFE1" and needed to write your own registry values for Add/Remove Programs in product authoring such as the UninstallString for this patch, you could author a RegistryValue with the name UninstallString and the value [SystemFolder]msiexec.exe /package [ProductCode] /uninstall [QFE1.PatchCode]. In your patch authoring you would then set ClientPatchId to "QFE1" and WiX will add the QFE1.PatchCode property to the patch transform when the patch is created. If the Id attribute specified the patch code to be generated automatically, you could not reference the prefix.PatchCode property as shown above. - The summary information is automatically populated from attribute values of the Patch element including the code page. If you want to override some of these summary information properties or use a different code page for the summary information itself, author the PatchInformation element. - - - - - - - - - Optional element that allows overriding summary information properties. - - - - - - Indicates whether custom actions can be skipped when applying the patch. - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Patch code for this patch. - - - - - The code page integer value or web name for the resulting MSP. See remarks for more information. - - - - - Whether this is an uninstallable patch. - - - - - Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. - - - - - An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information. - - - - - Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll. - - - - - Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures. - - - - - Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names. - - - - - Description of the patch. - - - - - A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. - - - - - Optional comments for browsing. - - - - - Vendor releasing the package - - - - - - Indicates that the patch targets the RTM version of the product or the most recent major - upgrade patch. Author this optional property in minor update patches that contain sequencing - information to indicate that the patch removes all patches up to the RTM version of the - product, or up to the most recent major upgrade patch. This property is available beginning - with Windows Installer 3.1. - - - - - - A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. - - - - - - If this attribute is set to 'yes' in all the patches to be applied in a transaction, the - application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. - - - - - - Name of the application or target product suite. - - - - - When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller. - - - - - - - Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform. - - - A transform contains the differences between the target product and the upgraded product. When a transform or a patch (which contains transforms) is applied, the following properties of the installed product are validated against the properties of the target product stored in a transform. - - ProductCode - ProductLanguage - ProductVersion - UpgradeCode - - Windows Installer simply validates that the ProductCode, ProductLanguage, and UpgradeCode of an installed product are equivalent to those propeties of the target product used to create the transform; however, the ProductVersion can be validated with a greater range of comparisons. - You can compare up to the first three fields of the ProductVersion. Changes to the fourth field are not validated and are useful for small updates. You can also choose how to compare the target ProductVersion used to create the transform with the installed ProductVersion. For example, while the default value of 'Equals' is recommended, if you wanted a minor upgrade patch to apply to the target ProductVersion and all older products with the same ProductCode, you would use 'LesserOrEqual'. - - - - - - - Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'. - - - - - Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'. - - - - - Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'. - - - - - - Checks the major version. - - - - - Checks the major and minor versions. - - - - - Checks the major, minor, and update versions. - - - - - - - - Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'. - - - - - - Installed ProductVersion < target ProductVersion. - - - - - Installed ProductVersion <= target ProductVersion. - - - - - Installed ProductVersion = target ProductVersion. - - - - - Installed ProductVersion >= target ProductVersion. - - - - - Installed ProductVersion > target ProductVersion. - - - - - - - - Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'. - - - - - Ignore errors when adding existing rows. The default is 'yes'. - - - - - Ignore errors when adding existing tables. The default is 'yes'. - - - - - Ignore errors when deleting missing rows. The default is 'yes'. - - - - - Ignore errors when deleting missing tables. The default is 'yes'. - - - - - Ignore errors when updating missing rows. The default is 'yes'. - - - - - Ignore errors when changing the database code page. The default is 'no'. - - - - - - - Indicates whether custom actions can be skipped when applying the patch. - - - - - - - - Skip property (type 51) and directory (type 35) assignment custom actions. - - - - - Skip immediate custom actions that are not property or directory assignment custom actions. - - - - - Skip custom actions that run within the script. - - - - - - - Identifies a set of product versions. - - - - - - - - Identifier for a set of product versions. - - - - - - - Collection of items that should be kept from the differences between two products. - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Identifier which indicates a sequence family to which this patch belongs. - - - - - - Specifies the ProductCode of the product that this family applies to. - - - - - - Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. - - - - - - Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. - The default value is 'no'. - - - - - - - - - Groups together multiple patch families to be used in other locations. - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - Identifier for the PatchFamilyGroup. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Create a reference to a PatchFamilyGroup in another Fragment. - - - - - - - - The identifier of the PatchFamilyGroup to reference. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section - can be given to the linker to produce a successful result. Using this element creates a pcp file. - - - - You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. - - - - - - - - - - - - - - - - - - PatchCreation identifier; this is the primary key for identifying patches. - - - - - Use this to set whether the major versions between the upgrade and target images match. See AllowProductVersionMajorMismatches for more information. - - - - - Use this to set whether the product code between the upgrade and target images match. See AllowProductCodeMismatches for more information. - - - - - Use this to set whether Patchwiz should clean the temp folder when finished. See DontRemoveTempFolderWhenFinished for more information. - - - - - The code page integer value or web name for the resulting PCP. See remarks for more information. - - - - - The full path, including file name, of the patch package file that is to be generated. See PatchOutputPath for more information. - - - - - Used to locate the .msp file for the patch if the cached copy is unavailable. See PatchSourceList for more information. - - - - - An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See ApiPatchingSymbolFlags for more information. - - - - - Use this to set whether changing files should be included in their entirety. See IncludeWholeFilesOnly for more information. - - - - - - - Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. - - - You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. - - - - - - - A short description of the patch that includes the name of the product. - - - - - - - - - - - - - - - - - - - The name of the manufacturer of the patch package. - - - - - A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database". - - - - - General purpose of the patch package. For example, "This patch contains the logic and data required to install <product>." - - - - - - The value of this attribute conveys whether the package should be opened as read-only. - A database editing tool should not modify a read-only enforced database and should - issue a warning at attempts to modify a read-only recommended database. - - - - - - The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Properties about the patch to be placed in the PatchMetadata table. - - - - - - - - - - A custom property that extends the standard set. - - - - - Indicates whether custom actions can be skipped when applying the patch. - - - - - - - Whether this is an uninstallable patch. - - - - - Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. - - - - - Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute). - - - - - Description of the patch. - - - - - A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. - - - - - Name of the manufacturer. - - - - - - Indicates that the patch targets the RTM version of the product or the most recent major - upgrade patch. Author this optional property in minor update patches that contain sequencing - information to indicate that the patch removes all patches up to the RTM version of the - product, or up to the most recent major upgrade patch. This property is available beginning - with Windows Installer 3.1. - - - - - - A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. - - - - - - If this attribute is set to 'yes' in all the patches to be applied in a transaction, the - application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. - - - - - - Name of the application or target product suite. - - - - - - - A custom property for the PatchMetadata table. - - - - - The name of the company. - - - - - The name of the metadata property. - - - - - Value of the metadata property. - - - - - - - A patch that is deprecated by this patch. - - - - - Patch GUID to be unregistered if it exists on the machine targeted by this patch. - - - - - - - - The product codes for products that can accept the patch. - - - - - - - - - Whether to replace the product codes that can accept the patch from the target packages with the child elements. - - - - - - - - A product code for a product that can accept the patch. - - - - When using the PatchCreation element, if the Id attribute value is '*' or this element is not authored, the product codes of all products referenced by the TargetImages element are used. - When using the Patch element, the Id attribute value must not be '*'. Use the TargetProductCodes/@Replace attribute instead. - - - - - - - - The product code for a product that can accept the patch. This can be '*'. See remarks for more information. - - - - - - - - A property for this patch database. - - - - When authored under the Patch element, the PatchProperty defines entries in the MsiPatchMetadata table. - - - - - - - Name of the company for a custom metadata property. - - - - - Name of the patch property. - - - - - Value of the patch property. - - - - - - - Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly. - - - - - - - - Identifier which indicates a sequence family to which this patch belongs. - - - - - - Specifies the ProductCode of the product that this family applies to. - This attribute cannot the specified if the TargetImage attribute is specified. - - - - - - Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. - - - - - - Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. - The default value is 'no'. - - - - - - - - - - - - - - Specifies the TargetImage that this family applies to. - This attribute cannot the specified if the ProductCode attribute is specified. - - - - - - - - Group of one or more upgraded images of a product. - - - - - - - - - - - - Entered into the DiskId field of the new Media table record. - - - - - Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - - - - - Entered into the Source field of the new Media table entry of the upgraded image. - - - - - Identifier for the family. - - - - - Sequence number for the starting file. - - - - - Entered into the VolumeLabel field of the new Media table record. - - - - - - - Contains information about the upgraded images of the product. - - - - - - - - - - - - Identifier to connect target images with upgraded image. - - - - - Full path to location of msi file for upgraded image. - - - - - - - - - - - - Modified copy of the upgraded installation database that contains additional authoring specific to patching. - - - - - - - - - - - - - - Contains information about the target images of the product. - - - - - - - - - Identifier for the target image. - - - - - Full path to the location of the msi file for the target image. - - - - - - - - - - - - Relative order of the target image. - - - - - Product checking to avoid applying irrelevant transforms. - - - - - Files missing from the target image are ignored by the installer. - - - - - - - Information about specific files in a target image. - - - - - - - - - - - - Foreign key into the File table. - - - - - - - Specifies part of a file that is to be ignored during patching. - - - - - Offset of the start of the range. - - - - - Length of the range. - - - - - - - Specifies part of a file that cannot be overwritten during patching. - - - - - Offset of the start of the range. - - - - - Length of the range. - - - - - - - Specifies a file to be protected. - - - - - - - - Foreign key into the File table. - - - - - - - Contains information about specific files that are not part of a regular target image. - - - - - - - - - - - - Foreign key into the File table. - - - - - Full path of the external file. - - - - - - - - - - - - Specifies the order of the external files to use when creating the patch. - - - - - - - Specifies files to either ignore or to specify optional data about a file. - - - - - - - - Foreign key into the File table. - - - - - If yes, the file is ignored during patching, and the next two attributes are ignored. - - - - - Specifies whether patching this file is vital. - - - - - Whether the whole file should be installed, rather than creating a binary patch. - - - - - - - A path to symbols. - - - - - The path. - - - - - - - - Properties about the package to be placed in the Summary Information Stream. These are - visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. - - - - You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information. - - - - - - - - The package code GUID for a product or merge module. - When compiling a product, this attribute should not be set in order to allow the package - code to be generated for each build. - When compiling a merge module, this attribute must be set to the modularization guid. - - - - - - Set to 'yes' if the source is an admin image. - - - - - Optional comments for browsing. - - - - - - Set to 'yes' to have compressed files in the source. - This attribute cannot be set for merge modules. - - - - - - The product full name or description. - - - - - Use this attribute to specify the priviliges required to install the package on Windows Vista and above. - - - - - - - Set this value to declare that the package does not require elevated privileges to install. - - - - - - - Set this value to declare that the package requires elevated privileges to install. - This is the default value. - - - - - - - - - Use this attribute to specify the installation scope of this package: per-machine or per-user. - - - - - - - Set this value to declare that the package is a per-machine installation and requires elevated privileges to install. - Sets the ALLUSERS property to 1. - - - - - - - Set this value to declare that the package is a per-user installation and does not require elevated privileges to install. - Sets the package's InstallPrivileges attribute to "limited." - - - - - - - - - - The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer - and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and - "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as - Windows Installer 2.0 was the first version to support 64-bit packages. - - - - - - Optional keywords for browsing. - - - - - The list of language IDs (LCIDs) supported in the package. - - - - - The vendor releasing the package. - - - - - - The list of platforms supported by the package. This attribute has been deprecated. - Specify the -arch switch at the candle.exe command line or the InstallerPlatform - property in a .wixproj MSBuild project. - - - - - - - The platform supported by the package. Use of this attribute is discouraged; instead, - specify the -arch switch at the candle.exe command line or the InstallerPlatform - property in a .wixproj MSBuild project. - - - - - - - - Set this value to declare that the package is an x86 package. - - - - - - - Set this value to declare that the package is an ia64 package. - This value requires that the InstallerVersion property be set to 200 or greater. - - - - - - - Set this value to declare that the package is an x64 package. - This value requires that the InstallerVersion property be set to 200 or greater. - - - - - - - Set this value to declare that the package is an arm package. - This value requires that the InstallerVersion property be set to 500 or greater. - - - - - - - This value has been deprecated. Use "x86" instead. - - - - - - - This value has been deprecated. Use "ia64" instead. - - - - - - - - - - The value of this attribute conveys whether the package should be opened as read-only. - A database editing tool should not modify a read-only enforced database and should - issue a warning at attempts to modify a read-only recommended database. - - - - - - Set to 'yes' to have short filenames in the source. - - - - - The code page integer value or web name for summary info strings only. See remarks for more information. - - - - - - - - The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. - Consider using the Assembly attribute on File element to have the toolset populate these entries automatically. - - - - - - - - - Name of the attribute associated with the value specified in the Value column. - - - - - Value associated with the name specified in the Name column. - - - - - - - - Identifies the possible signer certificates used to digitally sign patches. - - - - - - - - - - - - - - - Digital signatures that identify installation packages in a multi-product transaction. - - - - - - - - - - - - - - - Adds a digital certificate. - - - - - - - - - Identifier for a certificate file. - - - - - The path to the certificate file. - - - - - - - - Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents - to be included in the installer database. This is only used for references when patching. - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Adds a digital signature. - - - - - - - - - - - - The path to signature's optional hash file. - - - - - - - - Adds a system file protection update catalog file - - - - - - - - - - - Primary Key to File Table. - - - - - - Filename for catalog file when installed. - - - - - Used to define dependency outside of the package. - - - - - Path to catalog file in binary. - - - - - - - - Provides a many-to-many mapping from the SFPCatalog table to the File table - - - - - - - - - Primary Key to File Table. - - - - - - - - Adds or removes .ini file entries. - - - - - - - - - - Identifier for ini file. - - - - - The type of modification to be made. - - - - - - Creates or updates an .ini entry. - - - - - Creates a new entry or appends a new comma-separated value to an existing entry. - - - - - Creates an .ini entry only if the entry does no already exist. - - - - - Removes an .ini entry. - - - - - Removes a tag from an .ini entry. - - - - - - - - Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path. - - - - - The localizable .ini file key within the section. - - - - - - In prior versions of the WiX toolset, this attribute specified the short name. - This attribute's value may now be either a short or long name. - If a short name is specified, the ShortName attribute may not be specified. - Also, if this value is a long name, the ShortName attribute may be omitted to - allow WiX to attempt to generate a unique short name. - However, if this name collides with another file or you wish to manually specify - the short name, then the ShortName attribute may be specified. - - - - - - The localizable .ini file section. - - - - - - The short name of the in 8.3 format. - This attribute should only be set if there is a conflict between generated short names - or the user wants to manually specify the short name. - - - - - - - The localizable value to be written or deleted. This attribute must be set if - the Action attribute's value is "addLine", "addTag", or "createLine". - - - - - - - - - ODBCDataSource for a Component - - - - - - - - - - Translates into ODBCSourceAttributes - - - - - - Identifier of the data source. - - - - - Name for the data source. - - - - - Required if not found as child of ODBCDriver element - - - - - Scope for which the data source should be registered. - - - - - - - Data source is registered per machine. - - - - - - - Data source is registered per user. - - - - - - - - - Set 'yes' to force this file to be key path for parent Component - - - - - - - - ODBCDriver for a Component - - - - - - - - - - Translates into ODBCSourceAttributes - - - - - - - Identifier for the driver. - - - - - Name for the driver. - - - - - Required if not found as child of File element - - - - - Required if not found as child of File element or different from File attribute above - - - - - - - - ODBCTranslator for a Component - - - - - - - - - Identifier for the translator. - - - - - Name for the translator. - - - - - Required if not found as child of File element - - - - - Required if not found as child of File element or different from File attribute above - - - - - - - - - - - - - - - - How To: Check the version number of a file during installation - - When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. - - - Searches for file and assigns to fullpath value of parent Property - - - - - Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used. - - - - - - In prior versions of the WiX toolset, this attribute specified the short file name. - This attribute's value may now be either a short or long file name. - If a short file name is specified, the ShortName attribute may not be specified. - If you wish to manually specify the short file name, then the ShortName - attribute may be specified. - - - - - - - The short file name of the file in 8.3 format. - There is a Windows Installer bug which prevents the FileSearch functionality from working - if both a short and long file name are specified. Since the Name attribute allows either - a short or long name to be specified, it is the only attribute related to file names which - should be specified. - - - - - - The minimum size of the file. - - - - - The maximum size of the file. - - - - - The minimum version of the file. - - - - - The maximum version of the file. - - - - - The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. - - - - - The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. - - - - - The languages supported by the file. - - - - - - - - - - A reference to another FileSearch element must reference the same Id and the same Parent Id. If any of these attribute values are different you must instead use a FileSearch element. - - - References an existing FileSearch element. - - - - - Specify the Id to the FileSearch to reference. - - - - - - - - - - - - - How To: Check the version number of a file during installation - How To: Reference another DirectorySearch element - How To: Get the parent directory of a file search - - Use the AssignToProperty attribute to search for a file but set the outer property to the directory containing the file. When this attribute is set to 'yes', you may only nest a FileSearch element with a unique Id or define no child element. - When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. - - - Searches for directory and assigns to value of parent Property. - - - - - - - - - - - Unique identifier for the directory search. - - - - - Path on the user's system. Either absolute, or relative to containing directories. - - - - - - Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information. - - - - - - Set the value of the outer Property to the result of this search. See remarks for more information. - - - - - - - - - - - How To: Reference another DirectorySearch element - - A reference to another DirectorySearch element must reference the same Id, the same Parent Id, and the same Path. If any of these attribute values are different you must instead use a DirectorySearch element. - - - References an existing DirectorySearch element. - - - - - - - - - - - Id of the search being referred to. - - - - - This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables. - - - - - Path on the user's system. Either absolute, or relative to containing directories. - - - - - - - - - - - - - Searches for file or directory and assigns to value of parent Property. - - - - - - - - - - - - The component ID of the component whose key path is to be used for the search. - - - - - Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. - - - - - - - The key path of the component is a directory. - - - - - - - The key path of the component is a file. This is the default value. - - - - - - - - - - - - - - - - - Searches for file, directory or registry key and assigns to value of parent Property - - - - - - - - - - - External key into the Signature table. - - - - - The field in the .ini line. If field is Null or 0, the entire line is read. - - - - - The key value within the section. - - - - - - In prior versions of the WiX toolset, this attribute specified the short name. - This attribute's value may now be either a short or long name. - If a short name is specified, the ShortName attribute may not be specified. - Also, if this value is a long name, the ShortName attribute may be omitted to - allow WiX to attempt to generate a unique short name. - However, if you wish to manually specify the short name, then the ShortName - attribute may be specified. - - - - - - The localizable .ini file section. - - - - - - The short name of the file in 8.3 format. - This attribute should only be set if the user wants to manually specify the short name. - - - - - - Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. - - - - - - A directory location. - - - - - A file location. This is the default value. - - - - - A raw .ini value. - - - - - - - - - - - - - - - How To: Read a registry entry during installation - - - When the Type attribute value is 'directory' the registry value must specify the path to a directory excluding the file name. - When the Type attribute value is 'file' the registry value must specify the path to a file including the file name; - however, if there is no child FileSearch element the parent directory of the file is returned. The FileSearch element requires - that you author the name of the file you are searching for. If you do not know the file name - you must set the Type attribute to 'raw' to return the full file path including the file name. - - - - Searches for file, directory or registry key and assigns to value of parent Property - - - - - - - - - - - Signature to be used for the file, directory or registry key being searched for. - - - - - Root key for the registry value. - - - - - - - HKEY_CLASSES_ROOT - - - - - - - HKEY_CURRENT_USER - - - - - - - HKEY_LOCAL_MACHINE - - - - - - - HKEY_USERS - - - - - - - - - Key for the registry value. - - - - - Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved. - - - - - - The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element. - - - - - - - - The registry value contains the path to a directory. - - - - - - - The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned. - - - - - - - Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:DWORDStarts with '#' optionally followed by '+' or '-'.REG_BINARYStarts with '#x' and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by '#x'.REG_EXPAND_SZStarts with '#%'.REG_MULTI_SZStarts with '[~]' and ends with '[~]'.REG_SZNo prefix, but if the first character of the registry value is '#', the installer escapes the character by prefixing it with another '#'. - - - - - - - - Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. - The default value is based on the platform set by the -arch switch to candle.exe - or the InstallerPlatform property in a .wixproj MSBuild project: - For x86 and ARM, the default value is 'no'. - For x64 and IA64, the default value is 'yes'. - - - - - - - - - - - References an existing RegistrySearch element. - - - - - Specify the Id of the RegistrySearch to reference. - - - - - - - Sets the parent of a nested DirectorySearch element to CCP_DRIVE. - - - - - - - - - - - - - - - - Adds a row to the CCPSearch table. - - - - - - - Starts searches from the CCP_DRIVE. - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - How To: Check the version number of a file during installation - - Property value for a Product or Module. - - - - - - - Starts searches from the CCP_DRIVE. - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - Unique identifier for Property. - - - - - Sets a default value for the property. The value will be overwritten if the Property is used for a search. - - - - - Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element. - - - - - Denotes that the Property is saved during admininistrative installation. See the AdminProperties Property for more information. - - - - - Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the SecureCustomProperties Property for more information. - - - - - Denotes that the Property is not logged during installation. See the MsiHiddenProperties Property for more information. - - - - - - Use to suppress modularization of this property identifier in merge modules. - Using this functionality is strongly discouraged; it should only be - necessary as a workaround of last resort in rare scenarios. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - How To: Check for .NET Framework versions - - Reference to a Property value. - - - - - Identifier of Property to reference. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Shortcut, default target is parent File, CreateFolder, or Component's Directory - - - - How To: Create a shortcut on the Start Menu - - - - - - - - - - Unique identifier for the shortcut. This value will serve as the primary key for the row. - - - - - Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required. - - - - - - In prior versions of the WiX toolset, this attribute specified the short name. - This attribute's value may now be either a short or long name. - If a short name is specified, the ShortName attribute may not be specified. - Also, if this value is a long name, the ShortName attribute may be omitted to - allow WiX to attempt to generate a unique short name. - However, if this name collides with another shortcut or you wish to manually specify - the short name, then the ShortName attribute may be specified. - - - - - - - The short name of the shortcut in 8.3 format. - This attribute should only be set if there is a conflict between generated short names - or the user wants to manually specify the short name. - - - - - - - This attribute can only be set if this Shortcut element is nested under a Component element. - When nested under a Component element, this attribute's value will default to the parent directory. - This attribute's value is the target for a non-advertised shortcut. - This attribute is not valid for advertised shortcuts. - If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut. - - - - - - The localizable description for the shortcut. - - - - - The command-line arguments for the shortcut. Note that the resolution of properties - in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the - property already has the intended value when the component owning the shortcut is installed. For example, for the - argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and - the component that owns the shortcut. - - - - - The hotkey for the shortcut. The low-order byte contains the virtual-key code for - the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of - installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a - users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys - for accessibility. - - - - - Identifier reference to Icon element. The Icon identifier should have the same extension - as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier - like "MyIcon.exe" - - - - - Identifier reference to Icon element. - - - - - - - - - The shortcut target will be displayed using the SW_SHOWNORMAL attribute. - - - - - - - The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute. - - - - - - - The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute. - - - - - - - - - Directory identifier (or Property identifier that resolves to a directory) that resolves - to the path of the working directory for the shortcut. - - - - - Specifies if the shortcut should be advertised or not. Note that advertised shortcuts - always point at a particular application, identified by a ProductCode, and should not be shared between applications. - Advertised shortcuts only work for the most recently installed application, and are removed when that application is - removed. The default value is 'no'. - - - - - - The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally - authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also - be provided. - - This attribute is only used on Windows Vista and above. If this attribute is not populated and the install - is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and - the install is running on Vista and above, the value in the Name attribute is ignored. - - - - - - - The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the - DisplayResourceDll attribute must also be provided. - - This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and - the install is running on Vista and above, the value in the Name attribute is ignored. - - - - - - - The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally - authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also - be provided. - - This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and - the install is running on Vista and above, the value in the Name attribute is ignored. - - - - - - - The description name index for the shortcut. This must be a non-negative number. When this attribute is specified, - the DescriptionResourceDll attribute must also be populated. - - This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the - install is running on Vista and above, the value in the Name attribute is ignored. - - - - - - - - - - - - Property values for a shortcut. This element's functionality is available starting with MSI 5.0. - - - - - Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value. - - - - - A formatted string identifying the property to be set. - - - - - A formatted string supplying the value of the property. - - - - - - - - Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used - if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute. - The table and key are taken from the parent element. - - - - - - - - - - - - - - - - - Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF). - - - - - - - - - - - - For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent. - - - - - For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent. - - - - - For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent. - - - - - For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent. - - - - - - - - Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF). - - - - - - - - - - - - - - - - specifying this will fail to grant read access - - - - - - - - Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used - if the Action attribute's value is remove or removeKeyOnInstall. This element is only available - when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the - WixUtilExtension. - - - - - - - - - - - Optional condition that controls whether the permissions are applied. - - - - - - - - Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute - will be used instead. - - - - - - - Security descriptor to apply to parent object. - - - - - - - - - - - - - - Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When - this element is nested under a File element, the parent file will be installed, then copied to the specified destination - if the parent component of the file is selected for installation or removal. When this element is nested under - a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine. - When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed, - then copied to the specified destination if the parent component is selected for installation or removal (use - this option to control the copy of a file in a different component by the parent component's installation state). If the - specified destination directory is the same as the directory containing the original file and the name for the proposed source - file is the same as the original, then no action takes place. - - - - - - Primary key used to identify this particular entry. - - - - - - This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier - of a file from a different component to copy it based on the install state of the parent component. - - - - - - - This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - this value to the source directory from which to copy or move an existing file on the target machine. This Directory must - exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty. - - - - - - - This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - this value to a property that will have a value that resolves to the full path of the source directory (or full path - including file name if SourceName is not specified). The property does not have to exist in the installer database at - creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute - cannot be specified in conjunction with SourceDirectory. - - - - - - - This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - this value to the localizable name of the file(s) to be copied or moved. All of the files that - match the wild card will be removed from the specified directory. The value is a filename that may also - contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this - attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the - SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename. - If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied - files retain the file names from their sources. - - - - - - - Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This - Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with - DestinationProperty. - - - - - - - Set this value to a property that will have a value that resolves to the full path of the destination directory. The property - does not have to exist in the installer database at creation time; it could be created at installation time by a custom - action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory. - - - - - - - In prior versions of the WiX toolset, this attribute specified the short file name. - Now set this value to the localizable name to be given to the original file after it is moved or copied. - If this attribute is not specified, then the destination file is given the same name as the source file. - If a short file name is specified, the DestinationShortName attribute may not be specified. - Also, if this value is a long file name, the DestinationShortName attribute may be omitted to - allow WiX to attempt to generate a unique short file name. - However, if this name collides with another file or you wish to manually specify - the short file name, then the DestinationShortName attribute may be specified. - - - - - - - The short file name of the file in 8.3 format. - This attribute should only be set if there is a conflict between generated short file names - or you wish to manually specify the short file name. - - - - - - - This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other - cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes" - in order to move the file (thus deleting the source file) instead of copying it. - - - - - - - - - File specification for File table, must be child node of Component. - - - - How To: Add a file to your installer - - - - - - - - Used to configure the ACLs for this file. - - - - - Can also configure the ACLs for this file. - - - - - Used to create a duplicate of this file elsewhere. - - - - - Target of the shortcut will be set to this file. - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value]. - - - - - - Set this attribute to make this file a companion child of another file. The installation - state of a companion file depends not on its own file versioning information, but on the versioning of its - companion parent. A file that is the key path for its component can not be a companion file (that means - this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along - with this attribute since companion files are not installed based on their own version. - - - - - - In prior versions of the WiX toolset, this attribute specified the short file name. - This attribute's value may now be either a short or long file name. - If a short file name is specified, the ShortName attribute may not be specified. - Also, if this value is a long file name, the ShortName attribute may be omitted to - allow WiX to attempt to generate a unique short file name. - However, if this name collides with another file or you wish to manually specify - the short file name, then the ShortName attribute may be specified. - Finally, if this attribute is omitted then its default value is the file name portion - of the Source attribute, if one is specified, or the value of the Id attribute, if - the Source attribute is omitted or doesn't contain a file name. - - - - - - Set to yes in order to force this file to be the key path for the parent component. - - - - - - The short file name of the file in 8.3 format. - This attribute should only be set if there is a conflict between generated short file names - or the user wants to manually specify the short file name. - - - - - - - Set to yes in order to have the file's read-only attribute set when it is installed on the target machine. - - - - - Set to yes in order to have the file's hidden attribute set when it is installed on the target machine. - - - - - Set to yes in order to have the file's system attribute set when it is installed on the target machine. - - - - - If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used. - - - - - This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall. - - - - - Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property. - - - - - A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table. - - - - - The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table. - - - - - Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font. - - - - - Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font. - - - - - This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - - - - - This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - - - - - This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - - - - - - - Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the - Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component. - - - - - - - - The file is a .NET Framework assembly. - - - - - - - The file is not a .NET Framework or Win32 assembly. This is the default value. - - - - - - - The file is a Win32 assembly. - - - - - - - - - - Specifies the file identifier of the manifest file that describes this assembly. - The manifest file should be in the same component as the assembly it describes. - This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. - - - - - - - Specifies the file identifier of the application file. This assembly will be isolated - to the same directory as the application file. - If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC). - This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. - - - - - - Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies. - - - - - - - The file is a .NET Framework assembly that is processor-neutral. - - - - - - - The file is a .NET Framework assembly for the x86 processor. - - - - - - - The file is a .NET Framework assembly for the x64 processor. - - - - - - - The file is a .NET Framework assembly for the ia64 processor. - - - - - - - - - - The value of this attribute should correspond to the Id attribute of a Media - element authored elsewhere. By creating this connection between a file and - its media, you set the packaging options to the values specified in the Media - element (values such as compression level, cab embedding, etc...). Specifying - the DiskId attribute on the File element overrides the default DiskId attribute - from the parent Component element. If no DiskId attribute is specified, - the default is "1". This DiskId attribute is ignored when creating a merge module - because merge modules do not have media. - - - - - - Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see Specifying source files. - - - - - - - - - - - - - This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups - numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the - second patch will have PatchGroup='2', etc... - - - - - - Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. - - - - - Set to indicate that the patch is non-vital. - - - - - Set if the entire file should be installed rather than creating a binary patch. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Use several of these elements to specify each registry value in a multiString registry value. This element - cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - values should go in the text area of the MultiStringValue element. - - - - - - - - - - Used for organization of child RegistryValue elements or to create a registry key - (and optionally remove it during uninstallation). - - - - How To: Read a registry entry during installation - How To: Write a registry entry during installation - - - - - - - - - ACL permission - - - - - Can also configure the ACLs for this registry key. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - generated by hashing the parent Component identifier, Root, Key, and Name. - - - - - - - The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer - to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. - - - - - - - - Creates the key, if absent, when the parent component is installed. - - - - - - - Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. - Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already - removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. - - - - - - - Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output. - This is the default value. - - - - - - - - - - Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed. - This value is needed only to create an empty key with no subkeys or values. Windows Installer creates - keys as needed to store subkeys and values. The default is "no". - - - - - - - Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled. - Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already - removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. - The default is "no". - - - - - - - The localizable key for the registry value. - If the parent element is a RegistryKey, this value may be omitted to use the - path of the parent, or if its specified it will be appended to the path of the parent. - - - - - - - The predefined root key for the registry value. - - - - - - - - - Used to create a registry value. For multi-string values, this can be used to prepend or append values. - - For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element - cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - values should go in the text area of the RegistryValue element. - - - - How To: Write a registry entry during installation - - - - - - - - Can also configure the ACLs for this registry value. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - generated by hashing the parent Component identifier, Root, Key, and Name. - - - - - - - The predefined root key for the registry value. - - - - - - - The localizable key for the registry value. - If the parent element is a RegistryKey, this value may be omitted to use the - path of the parent, or if its specified it will be appended to the path of the parent. - - - - - - - The localizable registry value name. If this attribute is not provided the default value for the registry key will - be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - - - - - - - Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows - several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate - values in the Type attribute to get the desired behavior. - - - - - - - - Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value - attribute or a child RegistryValue element is specified. This attribute - should only be set when the value of the Action attribute does not include the word 'remove'. - - - - - - - - The value is interpreted and stored as a string (REG_SZ). - - - - - - - The value is interpreted and stored as an integer (REG_DWORD). - - - - - - - The value is interpreted and stored as a hexadecimal value (REG_BINARY). - - - - - - - The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). - - - - - - - The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). - Please note that this value will only result in a multi-string value if there is more than one registry value - or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. - - - - - - - - - - This is the action that will be taken for this registry value. - - - - - - - - Appends the specified value(s) to a multiString registry value. - - - - - - - Prepends the specified value(s) to a multiString registry value. - - - - - - - Writes a registry value. This is the default value. - - - - - - - - - - Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. - Only one resource (registry, file, etc) can be the KeyPath of a component. - - - - - - - - - Used for removing registry keys and all child keys either during install or uninstall. - - - - - - - - - - - Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - generated by hashing the parent Component identifier, Root, Key, and Name. - - - - - - - This is the action that will be taken for this registry value. - - - - - - - - Removes a key with all its values and subkeys when the parent component is installed. - - - - - - - Removes a key with all its values and subkeys when the parent component is uninstalled. - - - - - - - - - - The localizable key for the registry value. - - - - - - - The predefined root key for the registry value. - - - - - - - - - Used to remove a registry value during installation. - There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey). - - - - - - - - - - Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - generated by hashing the parent Component identifier, Root, Key, and Name. - - - - - - - The localizable key for the registry value. - If the parent element is a RegistryKey, this value may be omitted to use the - path of the parent, or if its specified it will be appended to the path of the parent. - - - - - - - The localizable registry value name. If this attribute is not provided the default value for the registry key will - be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - - - - - - - The predefined root key for the registry value. - - - - - - - - - - - - - - - - - - Can also configure the ACLs for this registry key. - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - generated by hashing the parent Component identifier, Root, Key, and Name. - - - - - - - This is the action that will be taken for this registry key. - - - - - - - - Appends the specified value(s) to a multiString registry key. - - - - - - - Creates the key, if absent, when the parent component is installed. - - - - - - - Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. - - - - - - - Prepends the specified value(s) to a multiString registry key. - - - - - - - Removes a registry name when the parent component is installed. - - - - - - - Removes a key with all its values and subkeys when the parent component is installed. - - - - - - - Removes a key with all its values and subkeys when the parent component is uninstalled. - - - - - - - Writes a registry value. - - - - - - - - - The localizable key for the registry value. - - - - - - Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry, - file, etc) can be the KeyPath of a component. - - - - - - - The localizable registry value name. If this attribute is not provided the default value for the registry key will - be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - - - - - - - The predefined root key for the registry value. - - - - - - - Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value - attribute or a child RegistryValue element is specified. This attribute - should only be set when the value of the Action attribute does not include the word 'remove'. - - - - - - - - The value is interpreted and stored as a string (REG_SZ). - - - - - - - The value is interpreted and stored as an integer (REG_DWORD). - - - - - - - The value is interpreted and stored as a hexadecimal value (REG_BINARY). - - - - - - - The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). - - - - - - - The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). - Please note that this value will only result in a multi-string value if there is more than one registry value - or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. - - - - - - - - - - Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows - several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate - values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action - attribute's value contains the word 'remove'. - - - - - - - - - - - - - Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed - by specifying a wildcard for the value of the Name attribute. By default, the source - directory of the file is the directory of the parent component. This can be overridden by specifying the - Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property - attribute with a value corresponding to a property that will have a value that resolves to the full path - to the source directory. - - - - - - Primary key used to identify this particular entry. - - - - - - Overrides the directory of the parent component with a specific Directory. This Directory must exist in the - installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. - - - - - - - Overrides the directory of the parent component with the value of the specified property. The property - should have a value that resolves to the full path of the source directory. The property does not have - to exist in the installer database at creation time; it could be created at installation time by a custom - action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. - - - - - - - This value should be set to the localizable name of the file(s) to be removed. All of the files that - match the wild card will be removed from the specified directory. The value is a filename that may also - contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. - In prior versions of the WiX toolset, this attribute specified the short file name. - This attribute's value may now be either a short or long file name. - If a short file name is specified, the ShortName attribute may not be specified. - Also, if this value is a long file name, the ShortName attribute may be omitted to - allow WiX to attempt to generate a unique short file name. - However, if you wish to manually specify the short file name, then the ShortName attribute may be specified. - - - - - - - The short file name of the file in 8.3 format. - This attribute should only be set if you want to manually specify the short file name. - - - - - - - This value determines the time at which the file(s) may be removed. For 'install', the file will - be removed only when the parent component is being installed (msiInstallStateLocal or - msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component - is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases. - - - - - - - - - - - - - Remove an empty folder if the parent component is selected for installation or removal. By default, the folder - is the directory of the parent component. This can be overridden by specifying the Directory attribute - with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value - corresponding to a property that will have a value that resolves to the full path of the folder. - - - - - - Primary key used to identify this particular entry. - - - - - - Overrides the directory of the parent component with a specific Directory. This Directory must exist in the - installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. - - - - - - - Overrides the directory of the parent component with the value of the specified property. The property - should have a value that resolves to the full path of the source directory. The property does not have - to exist in the installer database at creation time; it could be created at installation time by a custom - action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. - - - - - - - This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component. - For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or - msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component - is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases. - - - - - - - - - - - - Create folder as part of parent Component. - - - - - - Non-advertised shortcut to this folder, Shortcut Target is preset to the folder - - - - - ACL permission - - - - - Can also configure the ACLs for this folder. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - Identifier of Directory to create. Defaults to Directory of parent Component. - - - - - - - Optional way for defining AppData, generally used for complex CDATA. - - - - - - Qualified published component for parent Component - - - - - - - - - - - - A string GUID that represents the category of components being grouped together. - - - - - A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages. - - - - - An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category. - - - - - Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component . - - - - - - - - MIME content-type for an Extension - - - - - - - - - Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either. - - - - - This is the identifier for the MIME content. It is commonly written in the form of type/format. - - - - - Class ID for the COM server that is to be associated with the MIME content. - - - - - If 'yes', become the content type for the parent Extension. The default value is 'no'. - - - - - - - - Verb definition for an Extension. When advertised, this element creates a row in the - Verb table. - When not advertised, this element creates the appropriate rows in Registry table. - - - - - - - - - - The verb for the command. - - - - - The localized text displayed on the context menu. - - - - - Value for the command arguments. Note that the resolution of properties in the - Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property - already has the intended value when the component owning the verb is installed. For example, for the argument - "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the - component that owns the verb. - - - - - The sequence of the commands. Only verbs for which the Sequence is specified - are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this - column becomes the default verb. Used only for Advertised verbs. - - - - - - - - - - - - - Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb. - The value should be the identifier of the target file to be executed for the verb. - - - - - - - Either this attribute or the TargetFile attribute must be specified for a non-advertised verb. - The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb. - - - - - - - - - Extension for a Component - - - - - - - - - - - MIME and Verbs can be associated with Extensions - - - - - - - This is simply the file extension, like "doc" or "xml". Do not include the preceding period. - - - - - The MIME type that is to be written. - - - - - Whether this extension is to be advertised. The default is "no". - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Register a type library (TypeLib). Please note that in order to properly use this - non-advertised, you will need use this element with Advertise='no' and also author the - appropriate child Interface elements by extracting them from the type library itself. - - - - - - - - - - - - - - - The GUID that identifes the type library. - - - - - - Value of 'yes' will create a row in the TypeLib table. - Value of 'no' will create rows in the Registry table. - The default value is 'no'. - - - - - - - Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects. - This attribute can only be set if Advertise='no'. - - - - - - - The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'. - - - - - - The localizable description of the type library. - - - - - - Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'. - - - - - - The identifier of the Directory element for the help directory. - - - - - - Value of 'yes' means the type library should not be displayed to users, although its use is not restricted. - Should be used by controls. Hosts should create a new type library that wraps the control with extended properties. - This attribute can only be set if Advertise='no'. - - - - - - The language of the type library. This must be a non-negative integer. - - - - - The major version of the type library. The value should be an integer from 0 - 255. - - - - - The minor version of the type library. The value should be an integer from 0 - 255. - - - - - The resource id of a typelib. The value is appended to the end of the typelib path in the registry. - - - - - - Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'. - - - - - - - - - ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element. - - - - - - - - - - - - - The version-independent ProgId must be the first child element of actual ProgId. Nesting other ProgId elements within the Version-independent ProgId will create COM+ aliases, see http://support.microsoft.com/kb/305745 for more information. - - - - - Extensions that refer to this ProgId - - - - - - - - For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource. - - - - - - - Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute. - - - - - - - - Application ID containing DCOM information for the associated application GUID. - If this element is nested under a Fragment, Module, or Product element, it must be - advertised. - - - - - - When being used in unadvertised mode, the attributes in the AppId element correspond to registry keys - as follows (values that can be specified in authoring are in bold): - IdIn General - [HKCR\AppID\{Id}]Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]ActivateAtStorageIn General - [HKCR\AppID\{Id}] - ActivateAtStorage="ActivateAtStorage" - Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - ActivateAtStorage="Y" - DescriptionIn General - [HKCR\AppID\{Id}] - @="Description" - Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - @="My AppId Description" - DllSurrogateIn General - [HKCR\AppID\{Id}] - DllSurrogate="DllSurrogate" - Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - DllSurrogate="C:\surrogate.exe" - LocalServiceIn General - [HKCR\AppID\{Id}] - LocalService="LocalService" - Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - LocalService="MyServiceName" - RemoteServerNameIn General - [HKCR\AppID\{Id}] - RemoteServerName="RemoteServerName" - Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - RemoteServerName="MyRemoteServer" - RunAsInteractiveUserIn General - [HKCR\AppID\{Id}] - RunAs="RunAsInteractiveUser" - Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - RunAs="Interactive User" - ServiceParametersIn General - [HKCR\AppID\{Id}] - ServiceParameters="ServiceParameters" - Specific Example - [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - ServiceParameters="-param" - - - - - - - - - - - Set this value to 'yes' to configure the client to activate on the same system as persistent storage. - - - - - - - Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to - generate Registry rows that perform similar registration (without the often problematic Windows Installer - advertising behavior). - - - - - - - Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised. - - - - - - - Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE - process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value. - - - - - - - Set this value to the AppID GUID that corresponds to the named executable. - - - - - - - Set this value to the name of a service to allow the object to be installed as a Win32 service. - - - - - - - Set this value to the name of the remote server to configure the client to request the object - be run at a particular machine whenever an activation function is called for which a COSERVERINFO - structure is not specified. - - - - - - - Set this value to 'yes' to configure a class to run under the identity of the user currently - logged on and connected to the interactive desktop when activated by a remote client without - being written as a Win32 service. - - - - - - - Set this value to the parameters to be passed to a LocalService on invocation. - - - - - - - - COM Class registration for parent Component. - - - - - - - - When being used in unadvertised mode, the attributes in the Class element correspond to registry keys - as follows (values that can be specified in authoring are in bold): - Id/Context/ServerIn General - [HKCR\CLSID\{Id}\Context1] - @="[!Server]" - [HKCR\CLSID\{Id}\Context2] - @="[!Server]" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer] - @="[!comserv.dll]" - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] - @="[!comserv.dll]" - Id/Context/ForeignServerIn General - [HKCR\CLSID\{Id}\Context1] - @="ForeignServer" - [HKCR\CLSID\{Id}\Context2] - @="ForeignServer" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer] - @="mscoree.dll" - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] - @="mscoree.dll" - AppIdIn General - [HKCR\CLSID\{Id}] - AppId="{AppId}" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - AppId="{00000000-89AB-0000-0123-000000000000}" - ArgumentIn General - [HKCR\CLSID\{Id}\Context] - @="[!Server] Argument" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] - @="[!comserv.dll] /arg1 /arg2 /arg3"ControlIn General - Value "yes" specified: - [HKCR\CLSID\{Id}\Control] - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control] - DescriptionIn General - [HKCR\CLSID\{Id}] - @="Description" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}] - @="Description of Example COM Component" - HandlerIn General - Value "1" specified: - [HKCR\CLSID\{Id}\InprocHandler] - @="ole2.dll" - Value "2" specified: - [HKCR\CLSID\{Id}\InprocHandler32] - @="ole32.dll" - Value "3" specified: - [HKCR\CLSID\{Id}\InprocHandler] - @="ole2.dll" - [HKCR\CLSID\{Id}\InprocHandler32] - @="ole32.dll" - Other value specified: - [HKCR\CLSID\{Id}\InprocHandler32] - @="Handler" - Specific Example (for other value) - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32] - @="handler.dll" - Icon/IconIndexInsertableIn General - Value "no" specified: - [HKCR\CLSID\{Id}\NotInsertable] - Value "yes" specified: - [HKCR\CLSID\{Id}\Insertable] - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable] - ProgrammableIn General - Value "yes" specified: - [HKCR\CLSID\{Id}\Programmable] - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable] - RelativePathUnsupported. Please contribute this back to WiX if you know.SafeForInitializingIn General - Value "yes" specified: - [HKCR\CLSID\{Id}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] - SafeForScriptingIn General - Value "yes" specified: - [HKCR\CLSID\{Id}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] - ThreadingModelIn General - [HKCR\CLSID\{Id}\Context] - ThreadingModel="ThreadingModel" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32] - ThreadingModel="Apartment" - TypeLibId (from parent TypeLib/@Id)In General - [HKCR\CLSID\{Id}\TypeLib] - @="{TypeLibId}" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib] - @="{11111111-89AB-1111-0123-111111111111}" - VersionIn General - [HKCR\CLSID\{Id}\Version] - @="Version" - Specific Example - [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version] - @="1.0.0.0" - - - - - - - - A ProgId associated with Class must be a child element of the Class element - - - - - - These Interfaces will be registered with the parent Class and TypeLib (if present). - - - - - - The Class identifier (CLSID) of a COM server. - - - - - - The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable". - Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value - for the Context attribute. - - - - - - - - - - A 16-bit local server application. - - - - - - - A 32-bit local server application. - - - - - - - A 16-bit in-process server DLL. - - - - - - - A 32-bit in-process server DLL. - - - - - - - - - - - Localized description associated with the Class ID and Program ID. - - - - - - This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID - containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an - AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised - class, nest the class within a parent AppId element. - - - - - - - The file providing the icon associated with this CLSID. Reference to an Icon element - (should match the Id attribute of an Icon element). - - - - - - Icon index into the icon file. - - - - - - The default inproc handler. May be optionally provided only for Context = LocalServer or - LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler - value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value). - Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated - as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value). - - - - - - - This column is optional only when the Context column is set to "LocalServer" - or "LocalServer32" server context. The text is registered as the argument against - the OLE server and is used by OLE for invoking the server. Note that the resolution - of properties in the Argument field is limited. A property formatted as [Property] in - this field can only be resolved if the property already has the intended value when - the component owning the class is installed. For example, for the argument "[#MyDoc.doc]" - to resolve to the correct value, the same process must be installing the file MyDoc.doc and the - component that owns the class. - - - - - - - When the value is "yes", the bare file name can be used for COM servers. The installer - registers the file name only instead of the complete path. This enables the server in - the current directory to take precedence and allows multiple copies of the same component. - - - - - - - Set this value to "yes" in order to create a normal Class table row. Set this value to - "no" in order to generate Registry rows that perform similar registration (without the - often problematic Windows Installer advertising behavior). - - - - - - - - Threading model for the CLSID. - - - - - - - - - - - - - - - - - Version for the CLSID. - - - - - - - Specifies the CLSID may be insertable. - - - - - - - Specifies the CLSID may be programmable. - - - - - - - May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only - be used when the Class element is directly under the Component element. The value can be - that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed. - - - - - - - May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the - COM server file. If this element is nested under a File element, this value defaults to - the value of the parent File/@Id. - - - - - - - Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server. - - - - - - - May only be specified if the value of the Advertise attribute is "no". - - - - - - - May only be specified if the value of the Advertise attribute is "no". - - - - - - - Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'. - - - - - - - - COM Interface registration for parent TypeLib. - - - - - - - - GUID identifier for COM Interface. - - - - - Name for COM Interface. - - - - - Identifies the interface from which the current interface is derived. - - - - - GUID CLSID for proxy stub to COM Interface. - - - - - GUID CLSID for 32-bit proxy stub to COM Interface. - - - - - Number of methods implemented on COM Interface. - - - - - Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'. - - - - - - - FileType data for class Id registration. - - - - - Offset into file. If positive, offset is from the beginning; if negative, offset is from the end. - - - - - Hex value that is AND'd against the bytes in the file at Offset. - - - - - If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type. - - - - - - - - Service or group of services that must start before the parent service. - - - - - - - - - - The value of this attribute should be one of the following: - The name (not the display name) of a previously installed service.The name of a service group (in which case the Group attribute must be set to 'yes'). - - - - - - Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. - - - - - - - - - Adds services for parent Component. Use the ServiceControl element to remove services. - - - - - The service executable installed will point to the KeyPath for the Component. - Therefore, you must ensure that the correct executable is either the first child - File element under this Component or explicitly mark the appropriate File element - as KeyPath='yes'. - - - - - - - - Configures the ACLs for this service. - - - - - Ordered list of dependencies when installing services. - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Unique identifier for this service configuration. This value will default to the Name attribute if not - specified. - - - - - - This column is the string that gives the service name to install. - - - - - This column is the localizable string that user interface programs use to identify the service. - - - - - The Windows Installer does not currently support kernelDriver or systemDriver. - - - - - - - A Win32 service that runs its own process. - - - - - - - A Win32 service that shares a process. - - - - - - - A kernel driver service. This value is not currently supported by the Windows Installer. - - - - - - - A file system driver service. This value is not currently supported by the Windows Installer. - - - - - - - - - Whether or not the service interacts with the desktop. - - - - - Determines when the service should be started. The Windows Installer does not support boot or system. - - - - - - - The service will start during startup of the system. - - - - - - - The service will start when the service control manager calls the StartService function. - - - - - - - The service can no longer be started. - - - - - - - The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer. - - - - - - - The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer. - - - - - - - - - Determines what action should be taken on an error. - - - - - - - Logs the error and continues with the startup operation. - - - - - - - Logs the error, displays a message box and continues the startup operation. - - - - - - - Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails. - - - - - - - - - The overall install should fail if this service fails to install. - - - - - The load ordering group that this service should be a part of. - - - - - Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess. - - - - - The password for the account. Valid only when the account has a password. - - - - - Contains any command line arguments or properties required to run the service. - - - - - Sets the description of the service. - - - - - Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set. - - - - - - - - Argument used in ServiceControl parent - - - - - - - - - - Starts, stops, and removes services for parent Component. This element is used to control the state - of a service installed by the MSI or MSM file by using the start, stop and remove attributes. - For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install, - remove the service when the product is uninstalled, and stop the service both on install and uninstall. - - - - - - - - - - Ordered list of arguments used when modifying services. - - - - - - - Name of the service. - - - - - - Specifies whether the service should be started by the StartServices action on install, uninstall or both. - For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or - msiInstallStateSource); for 'uninstall', the service will be started only when the parent component - is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases. - - - - - - - Specifies whether the service should be stopped by the StopServices action on install, uninstall or both. - For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or - msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component - is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases. - - - - - - - Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both. - For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or - msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component - is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases. - - - - - - Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'. - - - - - - - - Privilege required by service configured by ServiceConfig parent. Valid values are a privilege constant or a - Formatted property that resolves to a privilege constant. - - - - - - - - - - Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. - - - - - - - - - - List of privileges to apply to service. - - - - - - - Unique identifier for this service configuration. This value will default to the ServiceName attribute if not - specified. - - - - - - - This attribute specifies whether an auto-start service should delay its start until after all other auto-start - services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that - resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured. - - - - - - - This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError" - or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute - is not present the setting is not configured. - - - - - - - This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system - shutdown. If this attribute is not present the default value, 3 minutes, is used. - - - - - - - Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall - and OnUninstall. - - - - - - - Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall - and OnUninstall. - - - - - - - Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall - and OnReinstall. - - - - - - - Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under - a ServiceInstall element. - - - - - - - Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property - that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the - setting is not configured. - - - - - - - - Failure action for a ServiceConfigFailureActions element. - - - - - - Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property - that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand"). - - - - - - - Specifies the time in milliseconds to wait before performing the value from the Action attribute. - - - - - - - - - Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. - - - - - - - - - - Ordered list of failure actions to apply to service. - - - - - - - Unique identifier for this service configuration. This value will default to the ServiceName attribute if not - specified. - - - - - - - This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears - the existing command. If this attribute is not present the setting is not changed. - - - - - - - Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall - and OnUninstall. - - - - - - - Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall - and OnUninstall. - - - - - - - Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall - and OnReinstall. - - - - - - - Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this - attribute is not present the setting is not changed. - - - - - - - Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset. - - - - - - - Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under - a ServiceInstall element. - - - - - - - - - Environment variables added or removed for the parent component. - - - - - - - - - Unique identifier for environment entry. - - - - - Name of the environment variable. - - - - - - The value to set into the environment variable. - If this attribute is not set, the environment variable is removed during installation if it exists on the machine. - - - - - - Optional attribute to change the separator used between values. By default a semicolon is used. - - - - - Specfies whether the environmental variable should be created, set or removed when the parent component is installed. - - - - - - Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists. - - - - - Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation. - - - - - - Removes the environment variable during an installation. - The installer only removes an environment variable during an installation if the name and value - of the variable match the entries in the Name and Value attributes. - If you want to remove an environment variable, regardless of its value, do not set the Value attribute. - - - - - - - - - - - - - This value is the entire environmental variable. This is the default. - - - - - - - This value is prefixed. - - - - - - - This value is appended. - - - - - - - - - Specifies that the environment variable should not be removed on uninstall. - - - - - - Specifies that the environment variable should be added to the system environment space. The default - is 'no' which indicates the environment variable is added to the user environment space. - - - - - - - - - Conditions for components, controls, features, and products. The condition is specified in the inner text of the element. - - - - - - - How To: Block installation based on OS version - How To: Check the version number of a file during installation - - - - - - - - Under a Component element, the condition becomes the condition of the component. Under a Control element, - the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition - entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry. - - - - - - Used only under Control elements and is required. Allows specific actions to be applied to a control based - on the result of this condition. - - - - - - - - Set the Control as the default. Only used under Control elements. - - - - - - - Enable the Control. Only used under Control elements. - - - - - - - Disable the Control. Only used under Control elements. - - - - - - - Hide the Control. Only used under Control elements. - - - - - - - Display the Control. Only used under Control elements. - - - - - - - - - - Used only under Feature elements and is required. Allows modifying the level of a Feature based on the - result of this condition. - - - - - - - Used only under Fragment or Product elements and is required. Set the value to the text to display when the - condition fails and the installation must be terminated. - - - - - - - - - - - Shared Component to be privately replicated in folder of parent Component - - - - - - - - - Shared Component for this application Component. - - - - - - - - Disk cost to reserve in a folder for running locally and/or from source. - - - - - - - - - A primary key that uniquely identifies this ReserveCost entry. - - - - - - Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory. - If this attribute is not set, it will default to the directory of parent component. - - - - - - The number of bytes of disk space to reserve if the component is installed to run from source. - - - - - The number of bytes of disk space to reserve if the component is installed to run locally. - - - - - - - Component for parent Directory - - - - - - - How To: Add a file to your installer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - - Component identifier; this is the primary key for identifying components. If omitted, - the compiler defaults the identifier to the identifier of the resource that is the - explicit keypath of the component (for example, a child File element with KeyPath - attribute with value 'yes'. - - - - - - - Set this attribute to create a ComPlus entry. The value should be the export flags used - during the generation of the .msi file. For more information see the COM+ documentation - in the Platform SDK. - - - - - - - Set this attribute to 'yes' in order to disable registry reflection on all existing and - new registry keys affected by this component. - When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key - being accessed by the component. - This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems. - - - - - - - Sets the Directory of the Component. If this element is nested under a Directory element, - this value defaults to the value of the parent Directory/@Id. - - - - - - - This attribute provides a default DiskId attribute for all child File elements. Specifying - the DiskId on a Component element will override any DiskId attributes set by parent Directory - or DirectoryRef elements. See the File element's DiskId attribute for more information about - the purpose of the DiskId. - - - - - - - Identifies a feature to which this component belongs, as a shorthand for a child - ComponentRef element of the Feature element. The value of this attribute should - correspond to the Id attribute of a Feature element authored elsewhere. Note that - a single component can belong to multiple features but this attribute allows you - to specify only a single feature. - - - - - - - This value should be a guid that uniquely identifies this component's contents, language, platform, and version. - If omitted, the default value is '*' which indicates that the linker should generate a stable guid. - Generatable guids are supported only for components with a single file as the component's keypath - or no files and a registry value as the keypath. - It's also possible to set the value to an empty string to specify an unmanaged component. - Unmanaged components are a security vulnerability because the component cannot be removed or repaired - by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should - always be specified for any component which contains resources that may need to be patched in the future. - - - - - - - If this attribute's value is set to 'yes', then the Directory of this Component is used - as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the - KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the - Component or for a child Registry value or File, WiX will look at the child elements under the - Component in sequential order and try to automatically select one of them as a key path. Allowing - WiX to automatically select a key path can be dangerous because adding or removing child elements - under the Component can inadvertantly cause the key path to change, which can lead to - installation problems. - - - - - - - Optional value that specifies the location that the component can be run from. - - - - - - - - Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set). - - - - - - - Enforces that the component can only be run from the source (it cannot be run from the user's computer). - - - - - - - Allows the component to run from source or locally. - - - - - - - - - - If this attribute is set to 'yes', a new Component/@Guid will be generated for each - instance transform. Ensure that all of the resources contained in a multi-instance - Component will be installed to different paths based on the instance Property; otherwise, - the Component Rules will be violated. - - - - - - - If this attribute is set to 'yes', the installer does not install or reinstall the - component if a key path file or a key path registry entry for the component already - exists. The application does register itself as a client of the component. Use this - flag only for components that are being registered by the Registry table. Do not use - this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and - Verb tables. - - - - - - - If this attribute is set to 'yes', the installer does not remove the component during - an uninstall. The installer registers an extra system client for the component in - the Windows Installer registry settings (which basically just means that at least one - product is always referencing this component). Note that this option differs from the - behavior of not setting a guid because although the component is permanent, it is still - patchable (because Windows Installer still tracks it), it's just not uninstallable. - - - - - - - If this attribute's value is set to 'yes', enables advanced patching semantics for - Components that are shared across multiple Products. Specifically, the Windows Installer - will cache the shared files to improve patch uninstall. This functionality is available - in Windows Installer 4.5 and later. - - - - - - - If this attribute's value is set to 'yes', the installer increments the reference count - in the shared DLL registry of the component's key file. If this bit is not set, the - installer increments the reference count only if the reference count already exists. - - - - - - - If this attribute is set to 'yes', the installer reevaluates the value of the statement - in the Condition upon a reinstall. If the value was previously False and has changed to - True, the installer installs the component. If the value was previously True and has - changed to False, the installer removes the component even if the component has other - products as clients. - - - - - - - If this attribute is set to 'yes', the installer will uninstall the Component's files - and registry keys when it is superseded by a patch. This functionality is available in - Windows Installer 4.5 and later. - - - - - - - Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates - the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit - component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute. - The default value is based on the platform set by the -arch switch to candle.exe - or the InstallerPlatform property in a .wixproj MSBuild project: - For x86 and ARM, the default value is 'no'. - For x64 and IA64, the default value is 'yes'. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Groups together multiple components to be used in other locations. - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - Identifier for the ComponentGroup. - - - - - - Sets the default directory identifier for child Component elements. - - - - - - - Used to set the default file system source for child Component elements. For more information, see - Specifying source files. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Create a reference to a ComponentGroup in another Fragment. - - - - - - - - The identifier of the ComponentGroup to reference. - - - - - - Set this attribute to 'yes' in order to make the parent feature of this component - the primary feature for this component. Components may belong to multiple features. - By designating a feature as the primary feature of a component, you ensure that - whenever a component is selected for install-on-demand (IOD), the primary feature - will be the one to install it. This attribute should only be set if a component - actually nests under multiple features. If a component nests under only one feature, - that feature is the primary feature for the component. You cannot set more than one - feature as the primary feature of a given component. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. - - - Warning: this is intended for testing purposes only. Shipping a patch with all changes negates the benefits of using patch families for including only specific changes. - Because changing the ProductCode is not supported in a patch, the ProductCode property is automatically removed from the transform. - - - - - - - Used only for PatchFamilies to include only a binary table entry in a patch. - - - - - The identifier of the Binary element to reference. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Used only for PatchFamilies to include only a icon table entry in a patch. - - - - - The identifier of the Icon element to reference. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Create a reference to a Feature element in another Fragment. - - - How To: Add a file to your installer - - - - - - The identifier of the Component element to reference. - - - - - - Set this attribute to 'yes' in order to make the parent feature of this component - the primary feature for this component. Components may belong to multiple features. - By designating a feature as the primary feature of a component, you ensure that - whenever a component is selected for install-on-demand (IOD), the primary feature - will be the one to install it. This attribute should only be set if a component - actually nests under multiple features. If a component nests under only one feature, - that feature is the primary feature for the component. You cannot set more than one - feature as the primary feature of a given component. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - How To: Install the Visual C++ Redistributable with your installer - - Merge directive to bring in a merge module that will be redirected to the parent directory. - - - - - - Data to use as input to a configurable merge module. - - - - - - The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id. - - - - - The value of this attribute should correspond to the Id attribute of a - Media element authored elsewhere. By creating this connection between the merge module and Media - element, you set the packaging options to the values specified in the Media - element (values such as compression level, cab embedding, etc...). - - - - - Specifies if the files in the merge module should be compressed. - - - - - Specifies the decimal LCID or localization token for the language to merge the Module in as. - - - - - Path to the source location of the merge module. - - - - - - - - - - - - - - - - How To: Install the Visual C++ Redistributable with your installer - - Merge reference to connect a Merge Module to parent Feature - - - - - The unique identifier for the Merge element to be referenced. - - - - - Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Data to use as input to a configurable merge module. - - - - - Name of the item in the ModuleConfiguration table. - - - - - Value to be passed to configurable merge module. - - - - - - - Directory layout for the product. Also specifies the mappings between source and target directories. - - - - How To: Add a file to your installer - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - This value is the unique identifier of the directory entry. - - - - - - The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*") - is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder). - It is recommended that this attribute be avoided and that developers install their Components under standard - directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is - important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until - (and must be changed when) the path to that directory, including itself and all parent directories, changes. - - - - - - - Sets the default disk identifier for the files contained in this directory. - This attribute's value may be overridden by a child Component, Directory, - Merge or File element. See the File or Merge elements' DiskId attribute for - more information. - - - - - - Used to set the file system source for this directory's child elements. For more information, see Specifying source files. - - - - - - The name of the directory. - - Do not specify this attribute if this directory represents - the same directory as the parent (see the Windows Installer SDK's - Directory table - topic for more information about the "." operator). - - This attribute's value may either a short or long directory name. If a short directory - name is specified, the ShortName attribute may not be specified. If this value is a long - directory name, the ShortName attribute may be omitted to - allow WiX to attempt to generate a unique short directory name. - However, if this name collides with another directory or you wish to manually specify - the short directory name, then the ShortName attribute may be specified. - - This Name attribute may also define multiple directories using the inline directory syntax. - For example, "ProgramFilesFolder:\My Company\My Product\bin" would create a reference to a - Directory element with Id="ProgramFilesFolder" then create directories named "My Company" then - "My Product" then "bin" nested beneath each other. This syntax is a shortcut to defining - each directory in an individual Directory element. - - - - - - - The short name of the directory in 8.3 format. - This attribute should only be set if there is a conflict between generated short directory names - or the user wants to manually specify the short directory name. - - - - - - - The short name of the directory on the source media in 8.3 format. - This attribute should only be set if there is a conflict between generated short directory names - or the user wants to manually specify the short source directory name. - - - - - - - The name of the directory on the source media. - If this attribute is not specified, Windows Installer will default to the Name attribute. - - In prior versions of the WiX toolset, this attribute specified the short source directory name. - This attribute's value may now be either a short or long directory name. - If a short directory name is specified, the ShortSourceName attribute may not be specified. - If a long directory name is specified, the LongSource attribute may not be specified. - Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to - allow WiX to attempt to generate a unique short directory name. - However, if this name collides with another directory or you wish to manually specify - the short directory name, then the ShortSourceName attribute may be specified. - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Create a reference to a Directory element in another Fragment. - - - How To: Add a file to your installer - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - The identifier of the Directory element to reference. - - - - - - Sets the default disk identifier for the files contained in this directory. - This attribute's value may be overridden by a child Component, Directory, - Merge or File element. See the File or Merge elements' DiskId attribute for - more information. - - - - - - Used to set the file system source for this DirectoryRef's child elements. For more information, see Specifying source files. - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - - - - - - Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. - - - - - Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. - - - - - Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. - - - - - The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty. - - - - - When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the Upgrade table states that the property specified in this field must be a public property and must be added to the SecureCustomProperties property. WiX automatically appends the property specified in this field to the SecureCustomProperties property when creating an MSI. Each UpgradeVersion must have a unique Property value. After the FindRelatedProducts action is run, the value of this property is a list of product codes, separated by semicolons (;), detected on the system. - - - - - Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action. - - - - - Set to "yes" to detect products and applications but do not uninstall. - - - - - Set to "yes" to continue installation upon failure to remove a product or application. - - - - - Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. - - - - - Set to "yes" to make the range of versions detected include the value specified in Maximum. - - - - - Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - Upgrade info for a particular UpgradeCode - - - - - - - - - - - - Nesting a Property element under an Upgrade element has been deprecated. - Please nest Property elements in any of the other supported locations. - - - - - - - This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. - - - - - - - - A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more - detailed information on the myriad installation options for a feature. - - - - - How To: Add a file to your installer - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - Unique identifier of the feature. - - - - - - This attribute determines if a user will have the option to set a feature to absent in the user interface. - - - - - - - - Allows the user interface to display an option to change the feature state to Absent. - - - - - - - Prevents the user interface from displaying an option to change the feature state - to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature - to the installation state, whether or not the feature is visible in the UI. - - - - - - - - - - This attribute determines the possible advertise states for this feature. - - - - - - - - Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute. - - - - - - - Prevents advertising for this feature if the operating system shell does not support Windows Installer - descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute. - - - - - - - Allows the feature to be advertised. - - - - - - - - - - Specify the Id of a Directory that can be configured by the user at installation time. This identifier - must be a public property and therefore completely uppercase. - - - - - - - Longer string of text describing the feature. This localizable string is displayed by the - Text Control of the Selection Dialog. - - - - - - - Determines the initial display of this feature in the feature tree. - This attribute's value should be one of the following: - collapseInitially shows the feature collapsed. This is the default value.expandInitially shows the feature expanded.hiddenPrevents the feature from displaying in the user interface.<an explicit integer value> - For advanced users only, it is possible to directly set the integer value - of the display value that will appear in the Feature row. - - - - - - - This attribute determines the default install/run location of a feature. This attribute cannot be specified - if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature - to follow the parent installation state and simultaneously favor a particular installation state just for this feature. - - - - - - - - Forces the feature to follow the same installation state as its parent feature. - - - - - - - Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute. - - - - - - - Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute. - - - - - - - - - - Sets the install level of this feature. A value of 0 will disable the feature. Processing the - Condition Table can modify the level value (this is set via the Condition child element). The - default value is "1". - - - - - - - Short string of text identifying the feature. This string is listed as an item by the - SelectionTree control of the Selection Dialog. - - - - - - - This attribute determines the default advertise state of the feature. - - - - - - - - Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute. - This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to - disallow the advertised state for this feature while at the same time favoring it. - - - - - - - Sets the feature to the default non-advertised installation option. - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Groups together multiple components, features, and merges to be used in other locations. - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - Identifier for the FeatureGroup. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Create a reference to a FeatureGroup in another Fragment. - - - - - - - - The identifier of the FeatureGroup to reference. - - - - - - Normally feature group references that end up nested under a parent element create a - connection to that parent. This behavior is undesirable when trying to simply reference - to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group - reference not create a connection to its parent. The default is 'no'. - - - - - - - Set this attribute to 'yes' in order to make the parent feature of this group - the primary feature for any components and merges contained in the group. - Features may belong to multiple features. By designating a feature as the - primary feature of a component or merge, you ensure that whenever a component is - selected for install-on-demand (IOD), the primary feature will be the one to install - it. This attribute should only be set if a component actually nests under multiple - features. If a component nests under only one feature, that feature is the primary - feature for the component. You cannot set more than one feature as the primary - feature of a given component. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Create a reference to a Feature element in another Fragment. - - - - - - - - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - The identifier of the Feature element to reference. - - - - - - Normally feature references that are nested under a parent element create a connection to that - parent. This behavior is undesirable when trying to simply reference a Feature in a different - Fragment. Specify 'yes' to have this feature reference not create a connection to its parent. - The default is 'no'. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - Media element describes a disk that makes up the source media for the installation. - - - - - - - - - - - - - - - Disk identifier for Media table. This number must be equal to or greater than 1. - - - - - The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set. - - - - - - Indicates the compression level for the Media's cabinet. This attribute can - only be used in conjunction with the Cabinet attribute. The default is 'mszip'. - - - - - - The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - - - - - Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute. - - - - - - This attribute specifies the root directory for the uncompressed files that - are a part of this Media element. By default, the src will be the output - directory for the final image. The default value ensures the binder generates - an installable image. If a relative path is specified in the src attribute, - the value will be appended to the image's output directory. If an absolute - path is provided, that path will be used without modification. The latter two - options are provided to ease the layout of an image onto multiple medias (CDs/DVDs). - - - - - - - - - - - - - - The label attributed to the volume. This is the volume label returned - by the GetVolumeInformation function. If the SourceDir property refers - to a removable (floppy or CD-ROM) volume, then this volume label is - used to verify that the proper disk is in the drive before attempting - to install files. The entry in this column must match the volume label - of the physical media. - - - - - - - Optional property that identifies the source of the embedded cabinet. - If a cabinet is specified for a patch, this property should be defined - and unique to each patch so that the embedded cabinet containing patched - and new files can be located in the patch package. If the cabinet is not - embedded - this is not typical - the cabinet can be found in the directory - referenced in this column. If empty, the external cabinet must be located - in the SourceDir directory. - - - - - - - - - MediaTeplate element describes information to automatically assign files to cabinets. - A maximumum number of cabinets created is 999. - - - - - - - Templated name of the cabinet if some or all of the files stored on the media are in - a cabinet file. This name must begin with either a letter or an underscore, contain - maximum of five characters and {0} in the cabinet name part and must end three character extension. - The default is cab{0}.cab. - - - - - - - Indicates the compression level for the Media's cabinet. This attribute can - only be used in conjunction with the Cabinet attribute. The default is 'mszip'. - - - - - - - - - - - - - - - - The disk name, which is usually the visible text printed on the disk. This localizable text is used - to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the - DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - - - - - - Instructs the binder to embed the cabinets in the product if 'yes'. - - - - - - The label attributed to the volume. This is the volume label returned - by the GetVolumeInformation function. If the SourceDir property refers - to a removable (floppy or CD-ROM) volume, then this volume label is - used to verify that the proper disk is in the drive before attempting - to install files. The entry in this column must match the volume label - of the physical media. - - - - - - - Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable - can be used to override this value. Default value is 200 MB. - - - - - - - Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging - files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size - exceed this value, then setting this attribute will cause the file to be split into multiple - cabinets of this maximum size. For simply controlling cabinet size without file splitting use - MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature - for this Fragment / Product. Setting WIX_MCSLFS environment variable can be used to override this - value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default - value of this attribute is 2048 MB (2 GB). - - - - - - - - - This element has been deprecated. - Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead. - - - - - - - The name of the item to ignore modularization for. - - - - - - - The type of the item to ignore modularization for. - - - - - - - - - - - - - - - - - - - - - Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element - correspond to different custom action types. For more information about custom actions see the - - Custom Action Types topic on MSDN. - - - - - - - - The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed. - - - - - - The identifier of the custom action. - - - - - - - - This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains - the custom action for use during install. The custom action will not be installed into a target directory. This attribute is - typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand - attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes - to specify a type 5 or 6 custom action. - - - - - - - This attribute specifies a reference to a File element with matching Id attribute that - will execute the custom action code in the file after the file is installed. This - attribute is typically used with the ExeCommand attribute to specify a type 18 custom action - that runs an installed executable, with the DllEntry attribute to specify an installed custom - action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall - attributes to specify a type 21 or 22 custom action. - - - - - - - This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property - to be used or updated on execution of this custom action. This attribute is - typically used with the Value attribute to create a type 51 custom action that parses - the text in Value and places it into the specified Property. This attribute is also used with - the ExeCommand attribute to create a type 50 custom action that uses the value of the - given property to specify the path to the executable. Type 51 custom actions are often useful to - pass values to a deferred custom action. - See - http://msdn.microsoft.com/library/aa370543.aspx - for more information. - - - - - - - This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. - This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34 - custom action, or with the Value attribute to specify a formatted string to place in the specified Directory - table entry in a type 35 custom action. - - - - - - - - This attribute specifies the name of a function in a custom action to execute. - This attribute is used with the BinaryKey attribute to create a type 1 custom - action, or with the FileKey attribute to create a type 17 custom action. - - - - - - - This attribute specifies the command line parameters to supply to an externally - run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action, - the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action, - or the Directory attribute for a type 34 custom action that specify the executable to run. - - - - - - - This attribute specifies the name of the JScript function to execute in a script. The script must be - provided in a Binary element identified by the BinaryKey attribute described above. In other words, this - attribute must be specified in conjunction with the BinaryKey attribute. - - - - - - - This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be - provided in a Binary element identified by the BinaryKey attribute described above. In other words, this - attribute must be specified in conjunction with the BinaryKey attribute. - - - - - - - Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package. - - - - - - - - - - - - - Use to suppress modularization of this custom action name in merge modules. - This should only be necessary for table-driven custom actions because the - table name which they interact with cannot be modularized, so there can only - be one instance of the table. - - - - - - - This attribute specifies a string value to use in the custom action. This attribute - must be used with the Property attribute to set the property as part of a - type 51 custom action or with the Directory attribute to set a directory path in that - table in a type 35 custom action. The value can be a literal value or derived from a - Property element using the Formatted - syntax. - - - - - - - This attribute specifies an index in the MSI Error table to use as an error message for a - type 19 custom action that displays the error message and aborts a product's installation. - - - - - - - - Set this attribute to set the return behavior of the custom action. - - - - - - - - Indicates that the custom action will run asyncronously and execution may continue after the installer terminates. - - - - - - - Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end. - - - - - - - Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default. - - - - - - - Indicates that the custom action will run synchronously and the return code will not be checked. - - - - - - - - - - This attribute indicates the scheduling of the custom action. - - - - - - - - Indicates that the custom action will run after successful completion of the installation script (at the end of the installation). - - - - - - - Indicates that the custom action runs in-script (possibly with elevated privileges). - - - - - - - Indicates that the custom action will only run in the first sequence that runs it. - - - - - - - Indicates that the custom action will run during normal processing time with user privileges. This is the default. - - - - - - - Indicates that the custom action will only run in the first sequence that runs it in the same process. - - - - - - - Indicates that a custom action will run in the rollback sequence when a failure - occurs during installation, usually to undo changes made by a deferred custom action. - - - - - - - Indicates that a custom action should be run a second time if it was previously run in an earlier sequence. - - - - - - - - - - This attribute specifies whether the Windows Installer, which executes as LocalSystem, - should impersonate the user context of the installing user when executing this custom action. - Typically the value should be 'yes', except when the custom action needs elevated privileges - to apply changes to the machine. - - - - - - - This attribute specifies that the Windows Installer, execute the custom action only when - a patch is being uninstalled. These custom actions should also be conditioned using the - MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5) - behavior. - - - - - - - Specifies that a script custom action targets a 64-bit platform. Valid only when used with - the Script, VBScriptCall, and JScriptCall attributes. - The default value is based on the platform set by the -arch switch to candle.exe - or the InstallerPlatform property in a .wixproj MSBuild project: - For x86 and ARM, the default value is 'no'. - For x64 and IA64, the default value is 'yes'. - - - - - - - This attribute specifies controls whether the custom action will impersonate the - installing user during per-machine installs on Terminal Server machines. - Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no', - will run with no user impersonation on Terminal Server machines during - per-machine installations. This attribute is only applicable when installing on the - Windows Server 2003 family. - - - - - - Ensures the installer does not log the CustomActionData for the deferred custom action. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - - - This will cause the entire contents of the Fragment containing the referenced CustomAction to be - included in the installer database. - - - - - - The identifier of the CustomAction to reference. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - - - - - Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in - the InstallUISequence and InstallExecuteSequence. - - - - - - - - The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped. - - - - - - By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case - where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions). - - - - - - - This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to - the Value attribute. - - - - - - - Controls which sequences the Directory assignment is sequenced in. - For 'execute', the assignment is scheduled in the InstallExecuteSequence. - For 'ui', the assignment is scheduled in the InstallUISequence. - For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. - For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. - The default is 'both'. - - - - - - - This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a - Property element using the Formatted - syntax. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - - - - - - - Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in - the InstallUISequence and InstallExecuteSequence. - - - - - - - - The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped. - - - - - - By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case - where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions). - - - - - - The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property. - - - - - The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property. - - - - - - This attribute specifies the Property to set to the Value. - - - - - - - Controls which sequences the Property assignment is sequenced in. - For 'execute', the assignment is scheduled in the InstallExecuteSequence. - For 'ui', the assignment is scheduled in the InstallUISequence. - For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. - For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. - The default is 'both'. - - - - - - - This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a - Property element using the Formatted - syntax. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - - - This will cause the entire contents of the Fragment containing the referenced PatchFamily to be - used in the process of creating a patch. - - - - - - The identifier of the PatchFamily to reference. - - - - - Specifies the ProductCode of the product that this family applies to. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text. - - - - - - - - - - Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text. - - - - - - - - - - Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text. - - - - - - - - - Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text. - - - - - - - - - - Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text. - - - - - - - - Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text. - - - - - - - - Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text. - - - - - - - - Initiates the execution sequence. The condition for this action may be specified in the element's inner text. - - - - - - - - Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text. - - - - - - - - - Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text. - - - - - - - - Stops system services. The condition for this action may be specified in the element's inner text. - - - - - - - - Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text. - - - - - - - - Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text. - - - - - - - - Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text. - - - - - - - - Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. - - - - - - - - Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. - - - - - - - - Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text. - - - - - - - - Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text. - - - - - - - - - Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text. - - - - - - - - Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. - - - - - - - - Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text. - - - - - - - - Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. - - - - - - - - Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text. - - - - - - - - - Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Sets up an application's registry information. The condition for this action may be specified in the element's inner text. - - - - - - - - Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text. - - - - - - - - Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers installed fonts with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers type libraries with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers COM+ applications. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers a service for the system. The condition for this action may be specified in the element's inner text. - - - - - - - - Starts system services. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text. - - - - - - - - Registers the product information with the installer. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text. - - - - - - - - Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text. - - - - - - - - Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text. - - - - - - - - - Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. - - - - - - - - - - - - - Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text. - - - - - - - - - - Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text. - - - - - - - - - - Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text. - - - - - - - - - Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text. - - - - - - - - - Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text. - - - - - - - - Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - - - - - - - - Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - - - - - - - - Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - - - - - - - - Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - - - - - - - - Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - - - - - - - - Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - - - - - - - - Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - - - - - - - - - Use to sequence a custom action. - - - - - - Text node specifies the condition of the action. - - - - The action to which the Custom element applies. - - - - - Mutually exclusive with Before, After, and Sequence attributes - - - - - The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes - - - - - The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes - - - - - - If "yes", the sequencing of this action may be overridden by sequencing elsewhere. - - - - - - The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes - - - - - - - - - - - - - - mutually exclusive with Before, After, and Sequence attributes - - - - - - - - If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. - - - - - - - - - - - - - - - - - - - - Use to sequence a custom action. - - - - - Displays a Dialog. - - - - - Prompts the user to restart the system at the end of installation. Not fixed sequence. - - - - - Queries the LaunchCondition table and evaluates each conditional statement recorded there. - - - - - Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. - - - - - Uses file signatures to search for existing versions of products. - - - - - Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. - - - - - Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. - - - - - Sets the ProductID property to the full product identifier. - - - - - Initiates the internal installation costing process. - - - - - Initiates dynamic costing of standard installation actions. - - - - - Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). - - - - - Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. - - - - - Ends the internal installation costing process begun by the CostInitialize action. - - - - - Used for upgrading or installing over an existing application. - - - - - Initiates the execution sequence. - - - - - - - - - - - - - - - - - Use to sequence a custom action. - - - - - Prompts the user to restart the system at the end of installation. Not fixed sequence. - - - - - Prompts the user for a restart of the system during the installation. Not fixed sequence. - - - - - Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Not fixed sequence. - - - - - Queries the LaunchCondition table and evaluates each conditional statement recorded there. - - - - - Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. - - - - - Uses file signatures to search for existing versions of products. - - - - - Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. - - - - - Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. - - - - - Sets the ProductID property to the full product identifier. - - - - - Initiates the internal installation costing process. - - - - - Initiates dynamic costing of standard installation actions. - - - - - Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). - - - - - Ends the internal installation costing process begun by the CostInitialize action. - - - - - Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. - - - - - Used for upgrading or installing over an existing application. - - - - - Verifies that all costed volumes have enough space for the installation. - - - - - Marks the beginning of a sequence of actions that change the system. - - - - - Ensures the needed amount of space exists in the registry. - - - - - Registers and unregisters components, their key paths, and the component clients. - - - - - Manages the unadvertisement of components listed in the PublishComponent table. - - - - - Removes selection-state and feature-component mapping information from the registry. - - - - - Stops system services. - - - - - Stops a service and removes its registration from the system. - - - - - Removes COM+ applications from the registry. - - - - - Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. - - - - - Unregisters type libraries from the system. - - - - - Removes the data sources, translators, and drivers listed for removal during the installation. - - - - - Removes registration information about installed fonts from the system. - - - - - Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. - - - - - Manages the removal of COM class information from the system registry. - - - - - Manages the removal of extension-related information from the system registry. - - - - - Manages the unregistration of OLE ProgId information with the system. - - - - - Unregisters MIME-related registry information from the system. - - - - - Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. - - - - - Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. - - - - - Modifies the values of environment variables. - - - - - Deletes files installed by the DuplicateFiles action. - - - - - Removes files previously installed by the InstallFiles action. - - - - - Removes any folders linked to components set to be removed or run from source. - - - - - Creates empty folders for components that are set to be installed. - - - - - Locates existing files on the system and moves or copies those files to a new location. - - - - - Copies files specified in the File table from the source directory to the destination directory. - - - - - Duplicates files installed by the InstallFiles action. - - - - - Queries the Patch table to determine which patches are to be applied. - - - - - Binds each executable or DLL that must be bound to the DLLs imported by it. - - - - - Manages the creation of shortcuts. - - - - - Manages the registration of COM class information with the system. - - - - - Manages the registration of extension related information with the system. - - - - - Manages the registration of OLE ProgId information with the system. - - - - - Registers MIME-related registry information with the system. - - - - - Sets up an application's registry information. - - - - - Writes the .ini file information that the application needs written to its .ini files. - - - - - Modifies the values of environment variables. - - - - - Registers installed fonts with the system. - - - - - Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. - - - - - Registers type libraries with the system. - - - - - Processes all modules listed in the SelfReg table and registers all installed modules with the system. - - - - - Registers COM+ applications. - - - - - Registers a service for the system. - - - - - Starts system services. - - - - - Registers the user information with the installer to identify the user of a product. - - - - - Registers the product information with the installer. - - - - - Manages the advertisement of the components from the PublishComponent table. - - - - - Writes each feature's state into the system registry. - - - - - Manages the advertisement of the product information with the system. - - - - - Marks the end of a sequence of actions that change the system. - - - - - Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. - - - - - Disables rollback for the remainder of the installation. - - - - - - Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. - - - - - Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. - - - - - - Manages the advertisement of CLR and Win32 assemblies. - - - - - Manages the unadvertisement of CLR and Win32 assemblies that are being removed. - - - - - - - - - - - - - - - - Use to sequence a custom action. - - - - - - Initiates the internal installation costing process. - - - - - Initiates dynamic costing of standard installation actions. - - - - - Ends the internal installation costing process begun by the CostInitialize action. - - - - - Initiates the execution sequence. - - - - - Verifies that all costed volumes have enough space for the installation. - - - - - Marks the beginning of a sequence of actions that change the system. - - - - - Copies the product database to the administrative installation point. - - - - - Copies files specified in the File table from the source directory to the destination directory. - - - - - Marks the end of a sequence of actions that change the system. - - - - - Queries the LaunchCondition table and evaluates each conditional statement recorded there. - - - - - - - - - - - - - - - - Use to sequence a custom action. - - - - - Initiates the internal installation costing process. - - - - - Initiates dynamic costing of standard installation actions. - - - - - Ends the internal installation costing process begun by the CostInitialize action. - - - - - Verifies that all costed volumes have enough space for the installation. - - - - - Marks the beginning of a sequence of actions that change the system. - - - - - Copies the product database to the administrative installation point. - - - - - Copies files specified in the File table from the source directory to the destination directory. - - - - - Queries the Patch table to determine which patches are to be applied. - - - - - Marks the end of a sequence of actions that change the system. - - - - - Queries the LaunchCondition table and evaluates each conditional statement recorded there. - - - - - Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. - - - - - - - - - - - - - - - - Initiates the internal installation costing process. - - - - - Ends the internal installation costing process begun by the CostInitialize action. - - - - - Use to sequence a custom action. The only custom actions that are allowed in the AdvtExecuteSequence are type 19 (0x013) type 35 (0x023) and type 51 (0x033). - - - - - Verifies that all costed volumes have enough space for the installation. - - - - - Marks the beginning of a sequence of actions that change the system. - - - - - Manages the creation of shortcuts. - - - - - Manages the registration of COM class information with the system. - - - - - Manages the registration of extension related information with the system. - - - - - Registers MIME-related registry information with the system. - - - - - Manages the registration of OLE ProgId information with the system. - - - - - Manages the advertisement of the components from the PublishComponent table. - - - - - Writes each feature's state into the system registry. - - - - - Manages the advertisement of the product information with the system. - - - - - Marks the end of a sequence of actions that change the system. - - - - - - Manages the advertisement of CLR and Win32 assemblies. - - - - - - - - - - Binary data used for CustomAction elements and UI controls. - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - elements at this point in the schema. - - - - - - - The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. - - - - - Path to the binary file. - - - - - - - - - - - - - Use to suppress modularization of this Binary identifier in merge modules. - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Icon used for Shortcut, ProgId, or Class elements (but not UI controls) - - - - How To: Set your installer's icon in Add/Remove Programs - How To: Create a shortcut on the Start Menu - - - - - - The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. - - - - - Path to the icon file. - - - - - - - - - - - - - - - - - - - - - - - - - - - Element value is the condition. CDATA may be used to when a condition contains many XML characters - that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition - to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer - that executes is undeterministic. - - - - - Unique identifier for embedded chainer. - - - - - Value to append to the transaction handle and passed to the chainer executable. - - - - - - Reference to the Binary element that contains the chainer executable. Mutually exclusive with - the FileSource and PropertySource attributes. - - - - - - - Reference to the File element that is the chainer executable. Mutually exclusive with - the BinarySource and PropertySource attributes. - - - - - - - Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with - the BinarySource and FileSource attributes. - - - - - - - - - - - Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents - to be included in the installer database. - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - Element value is the condition. Use CDATA if message contains delimiter characters. - - - - - - Specifies extra files to be extracted for use by the embedded UI, such as language resources. - - - - - - - Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name - portion of the SourceFile attribute will be used. - - - - - - Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_USER messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_INFO messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages. - - - - - Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages. - - - - - - The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer - does not support the typical short filename and long filename combination for embedded UI files as it - does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile - attribute will be used. - - - - - - - Path to the binary file that is the embedded UI. This must be a DLL that exports the following - three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI. - - - - - - Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation. - - - - - - - - Defines a resource for use by the embedded UI. - - - - - - - - - - Identifier for the embedded UI resource. - - - - - - The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows - Installer does not support the typical short filename and long filename combination for embedded UI files - as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used. - - - - - - Path to the binary file that is the embedded UI resource. - - - - - - - - - - - - - - - Element value is Message, use CDATA if message contains delimiter characters - - - - Number of the error for which a message is being provided. See MSI SDK for error definitions. - - - - - - - - - - - - - - - - - The element value is the optional Condition expression. - - - - - The parent Control for this Publish element, should only be specified when this element is a child of the UI element. - - - - - - - The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element. - This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary. - - - - - - - Set this attribute's value to one of the standard control events to trigger that event. - Either this attribute or the Property attribute must be set, but not both at the same time. - - - - - - - This attribute should only need to be set if this element is nested under a UI element in order to - control the order in which this publish event will be started. - If this element is nested under a Control element, the default value will be one greater than any - previous Publish element's order (the first element's default value is 1). - If this element is nested under a UI element, the default value is always 1 (it does not get a - default value based on any previous Publish elements). - - - - - - - Set this attribute's value to a property name to set that property. - Either this attribute or the Event attribute must be set, but not both at the same time. - - - - - - - If the Property attribute is specified, set the value of this attribute to the new value for the property. - To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}'). - Otherwise, this attribute's value should be the argument for the event specified in the Event attribute. - If the event doesn't take an attribute, a common value to use is "0". - - - - - - - - - - - Sets attributes for events in the EventMapping table - - - - - - - - - must be one of the standard control events' - - - - - if not present can only handle enable, disable, hide, unhide events - - - - - - - - An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. - - - - - - - - Instructs the text to be imported from a file instead of the element value during the binding process. - - - - - - - - - - - - - - - - - - - - - - - - Contains the controls that appear on each dialog. - - - - - - alternative to Text attribute when CDATA is needed to escape XML delimiters - - - - - ComboBox table with ListItem children - - - - - ListBox table with ListItem children - - - - - ListView table with ListItem children - - - - - RadioButton table with RadioButton children - - - - - Property table entry for the Property table column associated with this control - - - - - Icon referenced in icon column of row - - - - - child elements affecting operation of this control - - - - Condition to specify actions for this control based on the outcome of the condition. - - - - - - - - - Combined with the Dialog Id to make up the primary key of the Control table. - - - - - The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo - - - - - Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. - - - - - Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. - - - - - Width of the rectangular boundary of the control. This must be a non-negative number. - - - - - Height of the rectangular boundary of the control. This must be a non-negative number. - - - - - The name of a defined property to be linked to this control. This column is required for active controls. - - - - - A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see Formatted for details. - - - - - This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something. - - - - - The string used for the Tooltip. - - - - - This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked. - - - - - This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property. - - - - - - Set this attribute to "yes" to cause this Control to be skipped in the tab sequence. - - - - - Set this attribute to "yes" to cause this Control to be invoked by the return key. - - - - - Set this attribute to "yes" to cause this Control to be invoked by the escape key. - - - - - - Set this attribute to "yes" to cause the Control to be hidden. - - - - - Set this attribute to "yes" to cause the Control to be disabled. - - - - - Set this attribute to "yes" to cause the Control to be sunken. - - - - - Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table. - - - - - Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string. - - - - - Set this attribute to "yes" to cause the Control to display from right to left. - - - - - Set this attribute to "yes" to cause the Control to be right aligned. - - - - - Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. - - - - - - This attribute is only valid for Text Controls. - - - - - This attribute is only valid for Text Controls. - - - - - This attribute is only valid for Text Controls. - - - - - This attribute is only valid for Text Controls. - - - - - This attribute is only valid for Text Controls. - - - - - This attribute is only valid for Edit Controls. - - - - - This attribute is only valid for Edit Controls. - - - - - This attribute is only valid for ProgressBar Controls. - - - - - This attribute is only valid for Volume and Directory Controls. - - - - - This attribute is only valid for Volume and Directory Controls. - - - - - This attribute is only valid for Volume and Directory Controls. - - - - - This attribute is only valid for Volume and Directory Controls. - - - - - This attribute is only valid for Volume and Directory Controls. - - - - - This attribute is only valid for Volume and Directory Controls. - - - - - This attribute is only valid for VolumeCostList Controls. - - - - - This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set - the value of this attribute to "yes" to have entries appear in the order specified under the Control. - If the attribute value is "no" or absent the entries in the control will appear in alphabetical order. - - - - - - This attribute is only valid for ComboBox Controls. - - - - - This attribute is only valid for RadioButton, PushButton, and Icon Controls. - - - - - This attribute is only valid for RadioButton, PushButton, and Icon Controls. - - - - - - - - - - - - This attribute is only valid for RadioButton, PushButton, and Icon Controls. - - - - - This attribute is only valid for RadioButton and PushButton Controls. - - - - - This attribute is only valid for RadioButton and PushButton Controls. - - - - - This attribute is only valid for RadioButton and Checkbox Controls. - - - - - This attribute is only valid for RadioButton Controls. - - - - - - This attribute is only valid for PushButton controls. - Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control. - If this attribute's value is "yes" and the installation is not yet running with elevated privileges, - the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon). - If this attribute's value is "yes" and the installation is already running with elevated privileges, - the pushbutton control is created using the other icon attributes. - Otherwise, the pushbutton control is created using the other icon attributes. - - - - - - - - - Billboard to display during install of a Feature - - - - - - - - - - - Only controls of static type such as: Text, Bitmap, Icon, or custom control can be placed on a billboard. - - - - - - Unique identifier for the Billboard. - - - - - Feature whose state determines if the Billboard is shown. - - - - - - - - Billboard action during which child Billboards are displayed - - - - - - - - - - - Order of Billboard elements determines order of display - - - - - - Action name that determines when the Billboard should be shown. - - - - - - - - - - - - - - - - Defines a dialog box in the Dialog Table. - - - - - - - Control elements belonging to this dialog. - - - - - - Unique identifier for the dialog. - - - - - Horizontal placement of the dialog box as a percentage of screen width. The default value is 50. - - - - - Vertical placement of the dialog box as a percentage of screen height. The default value is 50. - - - - - The width of the dialog box in dialog units. - - - - - The height of the dialog box in dialog units. - - - - - The title of the dialog box. - - - - - - Used to hide the dialog. - - - - - Used to set the dialog as modeless. - - - - - Used to specify if the dialog can be minimized. - - - - - Used to set the dialog as system modal. - - - - - Keep modeless dialogs alive when this dialog is created through DoAction. - - - - - Have the dialog periodically call the installer to check if available disk space has changed. - - - - - Used to specify if pictures in the dialog box are rendered with a custom palette. - - - - - Used to specify if the text in the dialog should be displayed in right to left reading order. - - - - - Align text on the right. - - - - - Used to align the scroll bar on the left. - - - - - Specifies this dialog as an error dialog. - - - - - - - - - - - Reference to a Dialog. This will cause the entire referenced section's contents - to be included in the installer database. - - - - - - The identifier of the Dialog to reference. - - - - - - - - - - - - - - - Element value is progress message text for action - - - - - used to format ActionData messages from action processing - - - - - - - - - - - - - - - - - - - 0 to 255 - - - - - 0 to 255 - - - - - 0 to 255 - - - - - - - - - - - - The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. - - - - - - - - - - - - The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected. - - - - - - - The localizable, visible text to be assigned to the item. - If not specified, this will default to the value of the Value attribute. - - - - - - - The identifier of the Binary (not Icon) element containing the icon to associate with this item. - This value is only valid when nested under a ListView element. - - - - - - - - - Set of items for a particular ListBox control tied to an install Property - - - - - - - - - - - - entry for ListBox table - - - - - - Property tied to this group - - - - - - - - Set of items for a particular ComboBox control tied to an install Property - - - - - - - - - - - - entry for ComboBox table - - - - - - Property tied to this group - - - - - - - - Set of items for a particular ListView control tied to an install Property - - - - - - - - - - - - entry for ListView table - - - - - - Property tied to this group - - - - - - - - - - - - - Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). - - - - - - This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference - to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text - attributes. - - - - - - - - - This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference - to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text - attributes. - - - - - - Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes. - - - - - - Value assigned to the associated control Property when this radio button is selected. - - - - - - - - - - - Set of radio buttons tied to the specified Property - - - - - - - - - - - - - - Property tied to this group. - - - - - - - - Text associated with certain controls - - - - - - - - - - Element value is text, may use CDATA if needed to escape XML delimiters - - - - - - - - - - Reference to a UI element. This will force the entire referenced Fragment's contents - to be included in the installer database. - - - - - - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - Enclosing element to compartmentalize UI specifications. - - - - - - - - - - Embedded UI definition with EmbeddedResource children. - - - - - Error text associated with install error - - - - - ActionText entry associated with an action - - - - - Billboard table item with child Controls - - - - - ComboBox table with ListItem children - - - - - ListBox table with ListItem children - - - - - ListView table with ListItem children - - - - - RadioButton table with RadioButton children - - - - - TextStyle entry for use in control text - - - - - values for UIText property, not installer Property - - - - - Dialog specification, called from Sequence - - - - - Reference to a Dialog specification. - - - - - - - - - - - - - - - - - - - - Defines a custom table for use from a custom action. - - - - - - Column definition for the custom table. - - - - - Row definition for the custom table. - - - - - - Identifier for the custom table. - - - - - Indicates the table data is transformed into the bootstrapper application data manifest. - - - - - - - Column definition for a Custom Table - - - - - Identifier for the column. - - - - - Whether this column is a primary key. - - - - - The type of this column. - - - - - - - Column contains a path to a file that will be inserted into the column as a binary object. - If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation. - - - - - - - Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set). - - - - - - - Column contains a non-localizable string value. - - - - - - - - - Width of this column. - - - - - Whether this column can be left null. - - - - - Whether this column can be localized. - - - - - Minimum value for a numeric value, date or version in this column. - - - - - Maximum value for a numeric value, date or version in this column. - - - - - Table in which this column is an external key. Can be semicolon delimited. - - - - - Column in the table in KeyTable attribute. - - - - - - Category of this column. - This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Semicolon delimited list of permissible values. - - - - - Description of this column. - - - - - How this column should be modularized, if at all. - - - - - - - Column should not be modularized. This is the default value. - - - - - - - Column should be modularized. - - - - - - - Column is a condition and should be modularized. - - - - - - - When the column is an primary or foreign key to the Icon table it should be modularized special. - - - - - - - Any Properties in the column should be modularized. - - - - - - - Semi-colon list of keys, all of which need to be modularized. - - - - - - - - - - - Row data for a Custom Table - - - - - - - - - - Used for a Custom Table. Specifies the data for the parent Row and specified Column. - - - - - - A data value - - - - Specifies in which column to insert this data. - - - - - - - - - - - Use this element to ensure that a table appears in the installer database, even if its empty. - - - - This element is particularly useful for two problems that may occur while merging merge modules: - - The first likely problem is that in order to properly merge you need to have certain - tables present prior to merging. Using this element is one way to ensure those tables - are present prior to the merging. - - The other common problem is that a merge module has incorrect validation information - about some tables. By ensuring these tables prior to merging, you can avoid this - problem because the correct validation information will go into the installer database - before the merge module has a chance to set it incorrectly. - - - - - - - The name of the table. - - - - - - - - This element exposes advanced WiX functionality. Use this element to declare WiX variables - from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp - file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot - be used when an MSI file is being installed; it's a WiX-only concept. - - - - - - The name of the variable. - - - - - - Set this value to 'yes' in order to make the variable's value overridable either by - another WixVariable entry or via the command-line option -d<name>=<value> - for light.exe. If the same variable is declared overridable in multiple places it - will cause an error (since WiX won't know which value is correct). The default value - is 'no'. - - - - - - - The value of the variable. The value cannot be an empty string because that would - make it possible to accidentally set a column to null. - - - - - - - - - Use this element to contain definitions for instance transforms. - - - - - - - - - The Id of the Property who's value should change for each instance. - - - - - - - - Defines an instance transform for your product. - - - - - - - The identity of the instance transform. This value will define the name by which the instance - should be referred to on the command line. In addition, the value of the this attribute will - determine what the value of the property specified in Property attribute on InstanceTransforms - will change to for each instance. - - - - - - The ProductCode for this instance. - - - - - The ProductName for this instance. - - - - - The UpgradeCode for this instance. - - - - - - - - Simplifies authoring for major upgrades, including support for preventing downgrades. - - The parent Product element must have valid UpgradeCode and Version attributes. - - When the FindRelatedProducts action detects a related product installed on the system, - it appends the product code to the property named WIX_UPGRADE_DETECTED. After the - FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a - list of product codes, separated by semicolons (;), detected on the system. - - - - - - - - - - When set to no (the default), products with lower version numbers are blocked from - installing when a product with a higher version is installed; the DowngradeErrorMessage - attribute must also be specified. - - When set to yes, any version can be installed over any other version. - - - - - - - When set to no (the default), installing a product with the same version and upgrade code - (but different product code) is allowed and treated by MSI as two products. When set to yes, - WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat - a product with the same version as a major upgrade. - - This is useful when two product versions differ only in the fourth version field. MSI - specifically ignores that field when comparing product versions, so two products that - differ only in the fourth version field are the same product and need this attribute set to - yes to be detected. - - Note that because MSI ignores the fourth product version field, setting this attribute to - yes also allows downgrades when the first three product version fields are identical. - For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the - same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change - the first three version fields and omit this attribute to get the default of no. - - This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades - already allows two products with the same version number to upgrade each other. - - - - - - - When set to yes, products with higer version numbers are blocked from - installing when a product with a lower version is installed; the UpgradeErrorMessage - attribute must also be specified. - - When set to no (the default), any version can be installed over any lower version. - - - - - - - The message displayed if users try to install a product with a lower version number - when a product with a higher version is installed. Used only when AllowDowngrades - is no (the default). - - - - - - - The message displayed if users try to install a product with a higer version number - when a product with a lower version is installed. Used only when Disallow - is yes. - - - - - - - When set to yes (the default), the MigrateFeatureStates standard action will set the - feature states of the upgrade product to those of the installed product. - - When set to no, the installed features have no effect on the upgrade installation. - - - - - - - When set to yes, the Upgrade table rows will match any product with the same UpgradeCode. - - When set to no (the default), the Upgrade table rows will match only products with the - same UpgradeCode and ProductLanguage. - - - - - - - When set to yes, failures removing the installed product during the upgrade will be - ignored. - - When set to no (the default), failures removing the installed product during the upgrade - will be considered a failure and, depending on the scheduling, roll back the upgrade. - - - - - - - A formatted string that contains the list of features to remove from the installed - product. The default is to remove all features. Note that if you use formatted property - values that evaluate to an empty string, no features will be removed; only omitting - this attribute defaults to removing all features. - - - - - - - Determines the scheduling of the RemoveExistingProducts standard action, which is when - the installed product is removed. The default is "afterInstallValidate" which removes - the installed product entirely before installing the upgrade product. It's slowest but - gives the most flexibility in changing components and features in the upgrade product. - - For more information, see RemoveExistingProducts. - - - - - - - - (Default) Schedules RemoveExistingProducts after the InstallValidate standard - action. This scheduling removes the installed product entirely before installing - the upgrade product. It's slowest but gives the most flexibility in changing - components and features in the upgrade product. Note that if the installation - of the upgrade product fails, the machine will have neither version installed. - - - - - - - Schedules RemoveExistingProducts after the InstallInitialize standard action. - This is similar to the afterInstallValidate scheduling, but if the installation - of the upgrade product fails, Windows Installer also rolls back the removal of - the installed product -- in other words, reinstalls it. - - - - - - - Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions. - This scheduling installs the upgrade product "on top of" the installed product then lets - RemoveExistingProducts uninstall any components that don't also exist in the upgrade product. - Note that this scheduling requires strict adherence to the component rules because it relies - on component reference counts to be accurate during installation of the upgrade product and - removal of the installed product. For more information, see - - Bob Arnson's blog post "Paying for Upgrades" - for details. If installation of the upgrade product fails, Windows Installer - also rolls back the removal of the installed product -- in other words, reinstalls it. - - - - - - - Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions. - This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard - action instead of InstallExecute. - - - - - - - Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the - afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the - installation transaction so if installation of the upgrade product fails, Windows Installer does - not roll back the removal of the installed product, so the machine will have both versions - installed. - - - - - - - - - - - - - - - - - - - - Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. - - - - - Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. - - - - - Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. - - - - - Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. - - - - - Set to "yes" to make the range of versions detected include the value specified in Maximum. - - - - - Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. - - - - - This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. - - - - - - Extensibility point in the WiX XML Schema. Schema extensions can register additional - attributes at this point in the schema. - - - - - - - - - - - - - Text node specifies the condition of the action. - - - - The name of an action that this action should come after. - - - - - The name of an action that this action should come before. - - - - - - If "yes", the sequencing of this action may be overridden by sequencing elsewhere. - - - - - - A value used to indicate the position of this action in a sequence. - - - - - If yes, this action will not occur. - - - - - - - - - - - A value used to indicate the position of this action in a sequence. - - - - - If yes, this action will not occur. - - - - - - - - - Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". Also allows "PUT-GUID-HERE" for use in examples. - - - - - - - - Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". A GUID can be auto-generated by setting the value to "*". Also allows "PUT-GUID-HERE" for use in examples. - - - - - - - - Values of this type will either be "attached" or "detached". - - - - - - - - - The list of communcation protocols with executable packages Burn supports. - - - - - - - The executable package does not support a communication protocol. - - - - - - - The executable package is another Burn bundle and supports the Burn communication protocol. - - - - - - - The executable package implements the .NET Framework v4.0 communication protocol. - - - - - - - - Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}", but also allows "PUT-GUID-HERE" for use in examples. It's also possible to have an empty value "". - - - - - - - - Values of this type must be an integer or the value can be a localization variable with the format !(loc.Variable) where "Variable" is the name of the variable. - - - - - - - - Values of this type will look like: "FileName.ext". Only one period is allowed. The following characters are not allowed: \ ? | > : / * " + , ; = [ ] less-than, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE). - - - - - - - - Values of this type will look like: "Long File Name.extension". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ ? | > : / * " or less-than. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE). - - - - - - - - Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534. - - - - - - - - Values of this type will look like: "File?.*". Only one period is allowed. The following characters are not allowed: \ | > : / " + , ; = [ ] less-than, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE). - - - - - - - - Values of this type will look like: "Long File N?me.extension*". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ | > : / " or less-than. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE). - - - - - - - - This type supports any hexadecimal number. Both upper and lower case is acceptable for letters appearing in the number. This type also includes the empty string: "". - - - - - - - - Values of this type will either be "yes" or "no". - - - - - - Values of this type will either be "yes" or "no". - - - - - - - - - Values of this type will either be "button", "yes" or "no". - - - - - - Values of this type will either be "button", "yes" or "no". - - - - - - - - - - Values of this type will either be "default", "yes", or "no". - - - - - - Values of this type will either be "default", "yes", or "no". - - - - - - - - - - Values of this type will either be "always", "yes", or "no". - - - - - - Values of this type will either be "always", "yes", or "no". - - - - - - - - - - Values of this type represent possible registry roots. - - - - - - A per-user installation will make the operation occur under HKEY_CURRENT_USER. - A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE. - - - - - - - Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value - from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems, - the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations. - - - - - - - Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values - in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer. - - - - - - - Operation occurs under HKEY_LOCAL_MACHINE. - - - - - - - Operation occurs under HKEY_USERS. - - - - - - - - Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action. - Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes. - - - - - - - - - - - Specifies whether an action occur on install, uninstall or both. - - - - - - The action should happen during install (msiInstallStateLocal or msiInstallStateSource). - - - - - - - The action should happen during uninstall (msiInstallStateAbsent). - - - - - - - The action should happen during both install and uninstall. - - - - - - - - - Controls which sequences the item assignment is sequenced in. - - - - - - - Schedules the assignment in the InstallUISequence and the InstallExecuteSequence. - - - - - - - Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped. - - - - - - - Schedules the assignment only in the the InstallExecuteSequence. - - - - - - - Schedules the assignment only in the the InstallUISequence. - - - - - - - - - Indicates the compression level for a cabinet. - - - - - - - - Indicates the compression level for a cabinet. - - - - - - - - - - - - - A type that represents that 1 or more preprocessor variables (as they appear in sources on disk, before preprocessor has run). - - - - - - - - Values of this type must be an integer or the value of one or more preprocessor variables with the format $(var.Variable) where "Variable" is the name of the preprocessor variable. - - - - - - diff --git a/src/WixToolset.Data/Xsd/wixloc.xsd b/src/WixToolset.Data/Xsd/wixloc.xsd deleted file mode 100644 index 9f1814c4..00000000 --- a/src/WixToolset.Data/Xsd/wixloc.xsd +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - Schema for describing WiX Localization files (.wxl). - - - - - - - - You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252 or iso-8859-1. See Code Pages for more information. - - How To: Build a localized version of your installer - How To: Make your installer localizable - - - - - - - - - - The code page integer value or web name for the resulting database. You can also specify -1 which will not reset the database code page. See remarks for more information. - - - - - Culture of the localization strings. - - - - - The decimal language ID (LCID) for the culture. - - - - - - - - - How To: Build a localized version of your installer - How To: Make your installer localizable - - - - - - Identity of the resource. - - - - - Determines if the localized string may be overridden. - - - - - Indicates whether the string is localizable text or a non-localizable string that must be unique per locale. No WiX tools are affected by the value of this attribute; it used as documentation for localizers to ignore things like GUIDs or identifiers that look like text. - - - - - - - - Allows a localization to override the position, size, and text of dialogs and controls. Override the text by specifying the replacement text in the inner text of the UI element. - - - - - Identifies the dialog to localize or the dialog that a control to localize is in. - - - - - Combined with the Dialog attribute, identifies the control to localize. - - - - - For a dialog, overrides the authored horizontal centering. For a control, overrides the authored horizontal coordinate of the upper-left corner of the rectangular boundary. This must be a non-negative number. - - - - - For a dialog, overrides the authored vertical centering. For a control, overrides the authored vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. - - - - - For a dialog, overrides the authored width in dialog units. For a control, overrides the authored width of the rectangular boundary of the control. This must be a non-negative number. - - - - - For a dialog, overrides the authored height in dialog units. For a control, overrides the authored height of the rectangular boundary of the control. This must be a non-negative number. - - - - - Set this attribute to "yes" to cause the Control to display from right to left. Not valid for a dialog. - - - - - Set this attribute to "yes" to cause the Control to be right aligned. Not valid for a dialog. - - - - - Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. Not valid for a dialog. - - - - - - - - - - - - diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index ac2f5454..856bcda7 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -23,7 +23,7 @@ namespace WixToolsetTest.Data { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), Directory_ = "TestFolder", - Attributes = 2, + Location = ComponentLocation.Either, }); var intermediate = new Intermediate("TestIntermediate", new[] { section }, null, null); @@ -38,7 +38,7 @@ namespace WixToolsetTest.Data Assert.Equal("TestComponent", tuple.Id.Id); Assert.Equal(AccessModifier.Public, tuple.Id.Access); Assert.Equal("TestFolder", tuple.Directory_); - Assert.Equal(2, tuple.Attributes); + Assert.Equal(ComponentLocation.Either, tuple.Location); } [Fact] @@ -178,8 +178,8 @@ namespace WixToolsetTest.Data var controls = new[] { - new LocalizedControl("TestDlg1", "TestControl1", 10, 10, 100, 100, 0, null), - new LocalizedControl("TestDlg1", "TestControl2", 100, 90, 50, 70, 0, "localized"), + new LocalizedControl("TestDlg1", "TestControl1", 10, 10, 100, 100, false, false, false, null), + new LocalizedControl("TestDlg1", "TestControl2", 100, 90, 50, 70, false, false, false, "localized"), }; var localizations = new[] @@ -193,7 +193,7 @@ namespace WixToolsetTest.Data { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), Directory_ = "TestFolder", - Attributes = 2, + Location = ComponentLocation.Either, }); var intermediate = new Intermediate("TestIntermediate", new[] { section }, localizations.ToDictionary(l => l.Culture), null); diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj index e81b4f6f..d35ba853 100644 --- a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj +++ b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj @@ -12,8 +12,8 @@ - - + + -- cgit v1.2.3-55-g6feb From 4eb2b075b0b2a94fc3faa76271c21ac413bf4c96 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 8 May 2019 23:50:13 -0700 Subject: Support long as a number --- src/WixToolset.Data/IntermediateFieldValueExtensions.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs index 9a4237d8..25a40ee6 100644 --- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -26,6 +26,10 @@ namespace WixToolset.Data { return n != 0; } + else if (value.Data is long l) + { + return l != 0; + } else if (value.Data is string s) { if (s.Equals("yes", StringComparison.OrdinalIgnoreCase) || s.Equals("true", StringComparison.OrdinalIgnoreCase)) @@ -57,6 +61,10 @@ namespace WixToolset.Data { return n; } + else if (value.Data is long l) + { + return (int)l; + } else if (value.Data is bool b) { return b ? 1 : 0; @@ -88,6 +96,10 @@ namespace WixToolset.Data { return n.ToString(); } + else if (value.Data is long l) + { + return l.ToString(); + } else if (value.Data is bool b) { return b ? "true" : "false"; -- cgit v1.2.3-55-g6feb From 50ec4f8c9dd0ec91a8bc4db4295e54710059428d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 8 May 2019 23:50:59 -0700 Subject: Support any type as input to identifier --- src/WixToolset.Data/Identifier.cs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs index ffb04cd7..0ef39afa 100644 --- a/src/WixToolset.Data/Identifier.cs +++ b/src/WixToolset.Data/Identifier.cs @@ -40,6 +40,12 @@ namespace WixToolset.Data this.Id = String.Join("/", ids); } + public Identifier(AccessModifier access, params object[] ids) + { + this.Access = access; + this.Id = String.Join("/", ids); + } + public Identifier(AccessModifier access, int id) { this.Access = access; -- cgit v1.2.3-55-g6feb From 95d2fa40d86b9aa120c27703b653a90ee89058f8 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 12 May 2019 15:42:42 -0700 Subject: Correctly set the underlying data types when intermediate value loaded --- src/WixToolset.Data/IntermediateFieldValue.cs | 52 +++++++++++++++++++++------ 1 file changed, 42 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs index 88bfb910..b09903dc 100644 --- a/src/WixToolset.Data/IntermediateFieldValue.cs +++ b/src/WixToolset.Data/IntermediateFieldValue.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -55,18 +55,45 @@ namespace WixToolset.Data var value = data; - if (data is string) + switch (value) { - } - else if (data is long) - { - if (type == IntermediateFieldType.Number) + case int intData: + switch (type) { - value = Convert.ToInt32(data); + case IntermediateFieldType.Bool: + value = intData != 0; + break; + + case IntermediateFieldType.LargeNumber: + value = Convert.ToInt64(data); + break; + + case IntermediateFieldType.Path: + case IntermediateFieldType.String: + value = intData.ToString(); + break; } - } - else if (data is JsonObject jsonData) - { + break; + + case long longData: + switch (type) + { + case IntermediateFieldType.Bool: + value = longData != 0; + break; + + case IntermediateFieldType.Number: + value = Convert.ToInt32(longData); + break; + + case IntermediateFieldType.Path: + case IntermediateFieldType.String: + value = longData.ToString(); + break; + } + break; + + case JsonObject jsonData: jsonData.TryGetValue("embeddedIndex", out var embeddedIndex); value = new IntermediateFieldPathValue @@ -75,6 +102,11 @@ namespace WixToolset.Data EmbeddedFileIndex = (embeddedIndex == null) ? null : (int?)Convert.ToInt32(embeddedIndex), Path = jsonData.GetValueOrDefault("path"), }; + break; + + // Nothing to do for this case, so leave it out. + // case string stringData: + // break; } var previousValueJson = jsonObject.GetValueOrDefault("prev"); -- cgit v1.2.3-55-g6feb From 4edebcf64d4646acd89ba9c1d66597f91002e4e2 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 12 May 2019 15:50:04 -0700 Subject: Section ids are optional --- src/WixToolset.Data/IntermediateSection.cs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateSection.cs b/src/WixToolset.Data/IntermediateSection.cs index 54758136..b46d20ba 100644 --- a/src/WixToolset.Data/IntermediateSection.cs +++ b/src/WixToolset.Data/IntermediateSection.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -67,14 +67,9 @@ namespace WixToolset.Data var id = jsonObject.GetValueOrDefault("id"); var type = jsonObject.GetEnumOrDefault("type", SectionType.Unknown); - if (null == id && (SectionType.Unknown != type && SectionType.Fragment != type)) - { - throw new ArgumentException("JSON object is not a valid section"); - } - if (SectionType.Unknown == type) { - throw new ArgumentException("JSON object is not a valid section", nameof(type)); + throw new ArgumentException("JSON object is not a valid section, unknown section type", nameof(type)); } var section = new IntermediateSection(id, type, codepage); -- cgit v1.2.3-55-g6feb From 770c99fa4234b11f41a08cafcca5f759f4844cc7 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 13 May 2019 21:07:45 -0400 Subject: Correct field value for RemoveRegistryTuple.Root. --- src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs index 89c8d2e2..e3552d10 100644 --- a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs @@ -51,7 +51,7 @@ namespace WixToolset.Data.Tuples public RegistryRootType Root { - get => (RegistryRootType)this.Fields[(int)RemoveRegistryTupleFields.Key]?.AsNumber(); + get => (RegistryRootType)this.Fields[(int)RemoveRegistryTupleFields.Root]?.AsNumber(); set => this.Set((int)RemoveRegistryTupleFields.Root, (int)value); } -- cgit v1.2.3-55-g6feb From 353a99e6c9a0bfb278eebb59d3619506ee239957 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 14 May 2019 13:19:46 -0400 Subject: Support Component/@Shared. --- src/WixToolset.Data/Tuples/ComponentTuple.cs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs index 609852bd..8af887ed 100644 --- a/src/WixToolset.Data/Tuples/ComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/ComponentTuple.cs @@ -18,6 +18,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(ComponentTupleFields.NeverOverwrite), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ComponentTupleFields.Permanent), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ComponentTupleFields.SharedDllRefCount), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentTupleFields.Shared), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ComponentTupleFields.Transitive), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ComponentTupleFields.UninstallWhenSuperseded), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ComponentTupleFields.Win64), IntermediateFieldType.Bool), @@ -41,6 +42,7 @@ namespace WixToolset.Data.Tuples NeverOverwrite, Permanent, SharedDllRefCount, + Shared, Transitive, UninstallWhenSuperseded, Win64, @@ -116,6 +118,12 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ComponentTupleFields.SharedDllRefCount, value); } + public bool Shared + { + get => this.Fields[(int)ComponentTupleFields.Shared].AsBool(); + set => this.Set((int)ComponentTupleFields.Shared, value); + } + public bool Transitive { get => this.Fields[(int)ComponentTupleFields.Transitive].AsBool(); -- cgit v1.2.3-55-g6feb From 505fe69d85c90184cd37290ccb0120fec6074c20 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 16 May 2019 12:18:36 -0700 Subject: Remove redundant `?.Value` from strongly typed accesses --- src/WixToolset.Data/Tuples/ActionTextTuple.cs | 6 +-- .../Tuples/AdminExecuteSequenceTuple.cs | 6 +-- src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs | 6 +-- .../Tuples/AdvtExecuteSequenceTuple.cs | 6 +-- src/WixToolset.Data/Tuples/AppIdTuple.cs | 18 ++++----- src/WixToolset.Data/Tuples/AppSearchTuple.cs | 4 +- src/WixToolset.Data/Tuples/BBControlTuple.cs | 16 ++++---- src/WixToolset.Data/Tuples/BillboardTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/BinaryTuple.cs | 4 +- src/WixToolset.Data/Tuples/BindImageTuple.cs | 4 +- src/WixToolset.Data/Tuples/CCPSearchTuple.cs | 2 +- src/WixToolset.Data/Tuples/CheckBoxTuple.cs | 4 +- src/WixToolset.Data/Tuples/ClassTuple.cs | 24 +++++------ src/WixToolset.Data/Tuples/ComboBoxTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/CompLocatorTuple.cs | 2 +- src/WixToolset.Data/Tuples/ComplusTuple.cs | 4 +- src/WixToolset.Data/Tuples/ComponentTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/ConditionTuple.cs | 6 +-- .../Tuples/ControlConditionTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/ControlEventTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/ControlTuple.cs | 24 +++++------ src/WixToolset.Data/Tuples/CreateFolderTuple.cs | 4 +- src/WixToolset.Data/Tuples/CustomActionTuple.cs | 4 +- src/WixToolset.Data/Tuples/DialogTuple.cs | 16 ++++---- src/WixToolset.Data/Tuples/DrLocatorTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/DuplicateFileTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/EnvironmentTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/ErrorTuple.cs | 4 +- src/WixToolset.Data/Tuples/EventMappingTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/ExtensionTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/ExternalFilesTuple.cs | 16 ++++---- .../Tuples/FamilyFileRangesTuple.cs | 8 ++-- .../Tuples/FeatureComponentsTuple.cs | 4 +- src/WixToolset.Data/Tuples/FeatureTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs | 4 +- src/WixToolset.Data/Tuples/FileTuple.cs | 26 ++++++------ src/WixToolset.Data/Tuples/FontTuple.cs | 4 +- src/WixToolset.Data/Tuples/IconTuple.cs | 4 +- src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/IniFileTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/IniLocatorTuple.cs | 12 +++--- .../Tuples/InstallExecuteSequenceTuple.cs | 6 +-- .../Tuples/InstallUISequenceTuple.cs | 6 +-- .../Tuples/IsolatedComponentTuple.cs | 4 +- src/WixToolset.Data/Tuples/LaunchConditionTuple.cs | 4 +- src/WixToolset.Data/Tuples/ListBoxTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/ListViewTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/LockPermissionsTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/MIMETuple.cs | 6 +-- src/WixToolset.Data/Tuples/MediaTuple.cs | 12 +++--- .../Tuples/ModuleAdminExecuteSequenceTuple.cs | 10 ++--- .../Tuples/ModuleAdminUISequenceTuple.cs | 10 ++--- .../Tuples/ModuleAdvtExecuteSequenceTuple.cs | 10 ++--- .../Tuples/ModuleComponentsTuple.cs | 6 +-- .../Tuples/ModuleConfigurationTuple.cs | 16 ++++---- .../Tuples/ModuleDependencyTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs | 12 +++--- .../Tuples/ModuleIgnoreTableTuple.cs | 2 +- .../Tuples/ModuleInstallExecuteSequenceTuple.cs | 10 ++--- .../Tuples/ModuleInstallUISequenceTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs | 6 +-- .../Tuples/ModuleSubstitutionTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/MoveFileTuple.cs | 14 +++---- src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs | 6 +-- src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs | 10 ++--- .../Tuples/MsiDigitalCertificateTuple.cs | 4 +- .../Tuples/MsiDigitalSignatureTuple.cs | 8 ++-- .../Tuples/MsiEmbeddedChainerTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs | 6 +-- src/WixToolset.Data/Tuples/MsiFileHashTuple.cs | 12 +++--- .../Tuples/MsiLockPermissionsExTuple.cs | 10 ++--- .../Tuples/MsiPackageCertificateTuple.cs | 4 +- .../Tuples/MsiPatchCertificateTuple.cs | 4 +- src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs | 4 +- .../Tuples/MsiPatchMetadataTuple.cs | 6 +-- .../Tuples/MsiPatchOldAssemblyFileTuple.cs | 4 +- .../Tuples/MsiPatchOldAssemblyNameTuple.cs | 6 +-- .../Tuples/MsiPatchSequenceTuple.cs | 8 ++-- .../Tuples/MsiServiceConfigFailureActionsTuple.cs | 12 +++--- .../Tuples/MsiServiceConfigTuple.cs | 6 +-- .../Tuples/MsiShortcutPropertyTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs | 6 +-- src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/ODBCDriverTuple.cs | 10 ++--- .../Tuples/ODBCSourceAttributeTuple.cs | 6 +-- src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/PatchMetadataTuple.cs | 6 +-- src/WixToolset.Data/Tuples/PatchPackageTuple.cs | 4 +- src/WixToolset.Data/Tuples/PatchSequenceTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/PatchTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/ProgIdTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/PropertiesTuple.cs | 4 +- .../Tuples/PublishComponentTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/RadioButtonTuple.cs | 18 ++++----- src/WixToolset.Data/Tuples/RegLocatorTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/RegistryTuple.cs | 6 +-- src/WixToolset.Data/Tuples/RemoveFileTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs | 16 ++++---- src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | 6 +-- src/WixToolset.Data/Tuples/ReserveCostTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/SFPCatalogTuple.cs | 6 +-- src/WixToolset.Data/Tuples/SelfRegTuple.cs | 4 +- src/WixToolset.Data/Tuples/ServiceControlTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/ServiceInstallTuple.cs | 18 ++++----- src/WixToolset.Data/Tuples/ShortcutTuple.cs | 20 +++++----- src/WixToolset.Data/Tuples/SignatureTuple.cs | 18 ++++----- .../Tuples/TargetFiles_OptionalDataTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/TargetImagesTuple.cs | 14 +++---- src/WixToolset.Data/Tuples/TextStyleTuple.cs | 4 +- src/WixToolset.Data/Tuples/TypeLibTuple.cs | 16 ++++---- src/WixToolset.Data/Tuples/UITextTuple.cs | 4 +- src/WixToolset.Data/Tuples/UpgradeTuple.cs | 12 +++--- .../Tuples/UpgradedFilesToIgnoreTuple.cs | 4 +- .../Tuples/UpgradedFiles_OptionalDataTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/VerbTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/WixActionTuple.cs | 12 +++--- .../Tuples/WixApprovedExeForElevationTuple.cs | 8 ++-- .../Tuples/WixBindUpdatedFilesTuple.cs | 2 +- .../Tuples/WixBootstrapperApplicationTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs | 8 ++-- .../Tuples/WixBundleCatalogTuple.cs | 4 +- .../Tuples/WixBundleContainerTuple.cs | 16 ++++---- .../Tuples/WixBundleExePackageTuple.cs | 14 +++---- .../Tuples/WixBundleMsiFeatureTuple.cs | 20 +++++----- .../Tuples/WixBundleMsiPackageTuple.cs | 16 ++++---- .../Tuples/WixBundleMsiPropertyTuple.cs | 8 ++-- .../Tuples/WixBundleMspPackageTuple.cs | 10 ++--- .../Tuples/WixBundleMsuPackageTuple.cs | 6 +-- .../Tuples/WixBundlePackageCommandLineTuple.cs | 10 ++--- .../Tuples/WixBundlePackageExitCodeTuple.cs | 6 +-- .../Tuples/WixBundlePackageGroupTuple.cs | 2 +- .../Tuples/WixBundlePackageTuple.cs | 40 +++++++++---------- .../Tuples/WixBundlePatchTargetCodeTuple.cs | 6 +-- .../Tuples/WixBundlePayloadGroupTuple.cs | 2 +- .../Tuples/WixBundlePayloadTuple.cs | 44 ++++++++++----------- .../Tuples/WixBundlePropertiesTuple.cs | 12 +++--- .../Tuples/WixBundleRelatedPackageTuple.cs | 18 ++++----- .../Tuples/WixBundleRollbackBoundaryTuple.cs | 6 +-- .../Tuples/WixBundleSlipstreamMspTuple.cs | 4 +- src/WixToolset.Data/Tuples/WixBundleTuple.cs | 46 +++++++++++----------- src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs | 4 +- .../Tuples/WixBundleVariableTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/WixChainItemTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixChainTuple.cs | 2 +- .../Tuples/WixComplexReferenceTuple.cs | 12 +++--- .../Tuples/WixComponentGroupTuple.cs | 2 +- .../Tuples/WixComponentSearchTuple.cs | 8 ++-- src/WixToolset.Data/Tuples/WixCustomRowTuple.cs | 4 +- src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 28 ++++++------- .../Tuples/WixDeltaPatchFileTuple.cs | 12 +++--- .../Tuples/WixDeltaPatchSymbolPathsTuple.cs | 6 +-- src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs | 2 +- .../Tuples/WixFeatureModulesTuple.cs | 4 +- src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | 20 +++++----- src/WixToolset.Data/Tuples/WixFileTuple.cs | 22 +++++------ src/WixToolset.Data/Tuples/WixFragmentTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixGroupTuple.cs | 8 ++-- .../Tuples/WixInstanceComponentTuple.cs | 2 +- .../Tuples/WixInstanceTransformsTuple.cs | 10 ++--- .../Tuples/WixMediaTemplateTuple.cs | 12 +++--- src/WixToolset.Data/Tuples/WixMediaTuple.cs | 6 +-- src/WixToolset.Data/Tuples/WixMergeTuple.cs | 16 ++++---- .../Tuples/WixPackageFeatureInfoTuple.cs | 20 +++++----- .../Tuples/WixPackagePropertiesTuple.cs | 36 ++++++++--------- .../Tuples/WixPatchBaselineTuple.cs | 6 +-- .../Tuples/WixPatchFamilyGroupTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixPatchIdTuple.cs | 8 ++-- .../Tuples/WixPatchMetadataTuple.cs | 4 +- src/WixToolset.Data/Tuples/WixPatchRefTuple.cs | 4 +- src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs | 2 +- .../Tuples/WixPayloadPropertiesTuple.cs | 14 +++---- .../Tuples/WixProductSearchTuple.cs | 6 +-- src/WixToolset.Data/Tuples/WixPropertyTuple.cs | 8 ++-- .../Tuples/WixRegistrySearchTuple.cs | 10 ++--- .../Tuples/WixRelatedBundleTuple.cs | 2 +- .../Tuples/WixSearchRelationTuple.cs | 6 +-- src/WixToolset.Data/Tuples/WixSearchTuple.cs | 6 +-- .../Tuples/WixSimpleReferenceTuple.cs | 4 +- .../Tuples/WixSuppressActionTuple.cs | 4 +- .../Tuples/WixSuppressModularizationTuple.cs | 2 +- .../Tuples/WixUpdateRegistrationTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/WixVariableTuple.cs | 6 +-- src/WixToolset.Data/Tuples/_StreamsTuple.cs | 4 +- .../Tuples/_SummaryInformationTuple.cs | 4 +- src/WixToolset.Data/Tuples/_TransformViewTuple.cs | 10 ++--- src/WixToolset.Data/Tuples/_ValidationTuple.cs | 20 +++++----- 188 files changed, 873 insertions(+), 873 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/ActionTextTuple.cs b/src/WixToolset.Data/Tuples/ActionTextTuple.cs index 771a8b02..e816a5e1 100644 --- a/src/WixToolset.Data/Tuples/ActionTextTuple.cs +++ b/src/WixToolset.Data/Tuples/ActionTextTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)ActionTextTupleFields.Action]?.Value; + get => (string)this.Fields[(int)ActionTextTupleFields.Action]; set => this.Set((int)ActionTextTupleFields.Action, value); } public string Description { - get => (string)this.Fields[(int)ActionTextTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ActionTextTupleFields.Description]; set => this.Set((int)ActionTextTupleFields.Description, value); } public string Template { - get => (string)this.Fields[(int)ActionTextTupleFields.Template]?.Value; + get => (string)this.Fields[(int)ActionTextTupleFields.Template]; set => this.Set((int)ActionTextTupleFields.Template, value); } } diff --git a/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs index 25c717e0..6dea5cfc 100644 --- a/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Action]; set => this.Set((int)AdminExecuteSequenceTupleFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Condition]; set => this.Set((int)AdminExecuteSequenceTupleFields.Condition, value); } public int Sequence { - get => (int)this.Fields[(int)AdminExecuteSequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)AdminExecuteSequenceTupleFields.Sequence]; set => this.Set((int)AdminExecuteSequenceTupleFields.Sequence, value); } } diff --git a/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs index d4681bb9..b6830b74 100644 --- a/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)AdminUISequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)AdminUISequenceTupleFields.Action]; set => this.Set((int)AdminUISequenceTupleFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)AdminUISequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)AdminUISequenceTupleFields.Condition]; set => this.Set((int)AdminUISequenceTupleFields.Condition, value); } public int Sequence { - get => (int)this.Fields[(int)AdminUISequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)AdminUISequenceTupleFields.Sequence]; set => this.Set((int)AdminUISequenceTupleFields.Sequence, value); } } diff --git a/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs index 36a53af2..e2e808c9 100644 --- a/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Action]; set => this.Set((int)AdvtExecuteSequenceTupleFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Condition]; set => this.Set((int)AdvtExecuteSequenceTupleFields.Condition, value); } public int Sequence { - get => (int)this.Fields[(int)AdvtExecuteSequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)AdvtExecuteSequenceTupleFields.Sequence]; set => this.Set((int)AdvtExecuteSequenceTupleFields.Sequence, value); } } diff --git a/src/WixToolset.Data/Tuples/AppIdTuple.cs b/src/WixToolset.Data/Tuples/AppIdTuple.cs index 7816e4c3..22cec56e 100644 --- a/src/WixToolset.Data/Tuples/AppIdTuple.cs +++ b/src/WixToolset.Data/Tuples/AppIdTuple.cs @@ -49,43 +49,43 @@ namespace WixToolset.Data.Tuples public string AppId { - get => (string)this.Fields[(int)AppIdTupleFields.AppId]?.Value; + get => (string)this.Fields[(int)AppIdTupleFields.AppId]; set => this.Set((int)AppIdTupleFields.AppId, value); } public string RemoteServerName { - get => (string)this.Fields[(int)AppIdTupleFields.RemoteServerName]?.Value; + get => (string)this.Fields[(int)AppIdTupleFields.RemoteServerName]; set => this.Set((int)AppIdTupleFields.RemoteServerName, value); } public string LocalService { - get => (string)this.Fields[(int)AppIdTupleFields.LocalService]?.Value; + get => (string)this.Fields[(int)AppIdTupleFields.LocalService]; set => this.Set((int)AppIdTupleFields.LocalService, value); } public string ServiceParameters { - get => (string)this.Fields[(int)AppIdTupleFields.ServiceParameters]?.Value; + get => (string)this.Fields[(int)AppIdTupleFields.ServiceParameters]; set => this.Set((int)AppIdTupleFields.ServiceParameters, value); } public string DllSurrogate { - get => (string)this.Fields[(int)AppIdTupleFields.DllSurrogate]?.Value; + get => (string)this.Fields[(int)AppIdTupleFields.DllSurrogate]; set => this.Set((int)AppIdTupleFields.DllSurrogate, value); } - public int ActivateAtStorage + public bool? ActivateAtStorage { - get => (int)this.Fields[(int)AppIdTupleFields.ActivateAtStorage]?.Value; + get => (bool?)this.Fields[(int)AppIdTupleFields.ActivateAtStorage]; set => this.Set((int)AppIdTupleFields.ActivateAtStorage, value); } - public int RunAsInteractiveUser + public bool? RunAsInteractiveUser { - get => (int)this.Fields[(int)AppIdTupleFields.RunAsInteractiveUser]?.Value; + get => (bool?)this.Fields[(int)AppIdTupleFields.RunAsInteractiveUser]; set => this.Set((int)AppIdTupleFields.RunAsInteractiveUser, value); } } diff --git a/src/WixToolset.Data/Tuples/AppSearchTuple.cs b/src/WixToolset.Data/Tuples/AppSearchTuple.cs index e32064b8..4c03f847 100644 --- a/src/WixToolset.Data/Tuples/AppSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/AppSearchTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)AppSearchTupleFields.Property]?.Value; + get => (string)this.Fields[(int)AppSearchTupleFields.Property]; set => this.Set((int)AppSearchTupleFields.Property, value); } public string Signature_ { - get => (string)this.Fields[(int)AppSearchTupleFields.Signature_]?.Value; + get => (string)this.Fields[(int)AppSearchTupleFields.Signature_]; set => this.Set((int)AppSearchTupleFields.Signature_, value); } } diff --git a/src/WixToolset.Data/Tuples/BBControlTuple.cs b/src/WixToolset.Data/Tuples/BBControlTuple.cs index b9066f81..01a47097 100644 --- a/src/WixToolset.Data/Tuples/BBControlTuple.cs +++ b/src/WixToolset.Data/Tuples/BBControlTuple.cs @@ -71,31 +71,31 @@ namespace WixToolset.Data.Tuples public string Billboard_ { - get => (string)this.Fields[(int)BBControlTupleFields.Billboard_]?.Value; + get => (string)this.Fields[(int)BBControlTupleFields.Billboard_]; set => this.Set((int)BBControlTupleFields.Billboard_, value); } public string BBControl { - get => (string)this.Fields[(int)BBControlTupleFields.BBControl]?.Value; + get => (string)this.Fields[(int)BBControlTupleFields.BBControl]; set => this.Set((int)BBControlTupleFields.BBControl, value); } public string Type { - get => (string)this.Fields[(int)BBControlTupleFields.Type]?.Value; + get => (string)this.Fields[(int)BBControlTupleFields.Type]; set => this.Set((int)BBControlTupleFields.Type, value); } public int X { - get => (int)this.Fields[(int)BBControlTupleFields.X]?.Value; + get => (int)this.Fields[(int)BBControlTupleFields.X]; set => this.Set((int)BBControlTupleFields.X, value); } public int Y { - get => (int)this.Fields[(int)BBControlTupleFields.Y]?.Value; + get => (int)this.Fields[(int)BBControlTupleFields.Y]; set => this.Set((int)BBControlTupleFields.Y, value); } @@ -107,7 +107,7 @@ namespace WixToolset.Data.Tuples public int Height { - get => (int)this.Fields[(int)BBControlTupleFields.Height]?.Value; + get => (int)this.Fields[(int)BBControlTupleFields.Height]; set => this.Set((int)BBControlTupleFields.Height, value); } @@ -167,13 +167,13 @@ namespace WixToolset.Data.Tuples public string Text { - get => (string)this.Fields[(int)BBControlTupleFields.Text]?.Value; + get => (string)this.Fields[(int)BBControlTupleFields.Text]; set => this.Set((int)BBControlTupleFields.Text, value); } public string SourceFile { - get => (string)this.Fields[(int)BBControlTupleFields.SourceFile]?.Value; + get => (string)this.Fields[(int)BBControlTupleFields.SourceFile]; set => this.Set((int)BBControlTupleFields.SourceFile, value); } } diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs index 43e2ace7..43a05a71 100644 --- a/src/WixToolset.Data/Tuples/BillboardTuple.cs +++ b/src/WixToolset.Data/Tuples/BillboardTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Billboard { - get => (string)this.Fields[(int)BillboardTupleFields.Billboard]?.Value; + get => (string)this.Fields[(int)BillboardTupleFields.Billboard]; set => this.Set((int)BillboardTupleFields.Billboard, value); } public string Feature_ { - get => (string)this.Fields[(int)BillboardTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)BillboardTupleFields.Feature_]; set => this.Set((int)BillboardTupleFields.Feature_, value); } public string Action { - get => (string)this.Fields[(int)BillboardTupleFields.Action]?.Value; + get => (string)this.Fields[(int)BillboardTupleFields.Action]; set => this.Set((int)BillboardTupleFields.Action, value); } public int Ordering { - get => (int)this.Fields[(int)BillboardTupleFields.Ordering]?.Value; + get => (int)this.Fields[(int)BillboardTupleFields.Ordering]; set => this.Set((int)BillboardTupleFields.Ordering, value); } } diff --git a/src/WixToolset.Data/Tuples/BinaryTuple.cs b/src/WixToolset.Data/Tuples/BinaryTuple.cs index 8134167b..061f6f71 100644 --- a/src/WixToolset.Data/Tuples/BinaryTuple.cs +++ b/src/WixToolset.Data/Tuples/BinaryTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)BinaryTupleFields.Name]?.Value; + get => (string)this.Fields[(int)BinaryTupleFields.Name]; set => this.Set((int)BinaryTupleFields.Name, value); } public string Data { - get => (string)this.Fields[(int)BinaryTupleFields.Data]?.Value; + get => (string)this.Fields[(int)BinaryTupleFields.Data]; set => this.Set((int)BinaryTupleFields.Data, value); } } diff --git a/src/WixToolset.Data/Tuples/BindImageTuple.cs b/src/WixToolset.Data/Tuples/BindImageTuple.cs index fefafa2d..14622238 100644 --- a/src/WixToolset.Data/Tuples/BindImageTuple.cs +++ b/src/WixToolset.Data/Tuples/BindImageTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)BindImageTupleFields.File_]?.Value; + get => (string)this.Fields[(int)BindImageTupleFields.File_]; set => this.Set((int)BindImageTupleFields.File_, value); } public string Path { - get => (string)this.Fields[(int)BindImageTupleFields.Path]?.Value; + get => (string)this.Fields[(int)BindImageTupleFields.Path]; set => this.Set((int)BindImageTupleFields.Path, value); } } diff --git a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs index d1ca8458..3d849128 100644 --- a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string Signature_ { - get => (string)this.Fields[(int)CCPSearchTupleFields.Signature_]?.Value; + get => (string)this.Fields[(int)CCPSearchTupleFields.Signature_]; set => this.Set((int)CCPSearchTupleFields.Signature_, value); } } diff --git a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs index d76609f2..b35ff1f0 100644 --- a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs +++ b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)CheckBoxTupleFields.Property]?.Value; + get => (string)this.Fields[(int)CheckBoxTupleFields.Property]; set => this.Set((int)CheckBoxTupleFields.Property, value); } public string Value { - get => (string)this.Fields[(int)CheckBoxTupleFields.Value]?.Value; + get => (string)this.Fields[(int)CheckBoxTupleFields.Value]; set => this.Set((int)CheckBoxTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/ClassTuple.cs b/src/WixToolset.Data/Tuples/ClassTuple.cs index 17212a5e..f6ae4a4c 100644 --- a/src/WixToolset.Data/Tuples/ClassTuple.cs +++ b/src/WixToolset.Data/Tuples/ClassTuple.cs @@ -61,73 +61,73 @@ namespace WixToolset.Data.Tuples public string CLSID { - get => (string)this.Fields[(int)ClassTupleFields.CLSID]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.CLSID]; set => this.Set((int)ClassTupleFields.CLSID, value); } public string Context { - get => (string)this.Fields[(int)ClassTupleFields.Context]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.Context]; set => this.Set((int)ClassTupleFields.Context, value); } public string Component_ { - get => (string)this.Fields[(int)ClassTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.Component_]; set => this.Set((int)ClassTupleFields.Component_, value); } public string ProgId_Default { - get => (string)this.Fields[(int)ClassTupleFields.ProgId_Default]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.ProgId_Default]; set => this.Set((int)ClassTupleFields.ProgId_Default, value); } public string Description { - get => (string)this.Fields[(int)ClassTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.Description]; set => this.Set((int)ClassTupleFields.Description, value); } public string AppId_ { - get => (string)this.Fields[(int)ClassTupleFields.AppId_]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.AppId_]; set => this.Set((int)ClassTupleFields.AppId_, value); } public string FileTypeMask { - get => (string)this.Fields[(int)ClassTupleFields.FileTypeMask]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.FileTypeMask]; set => this.Set((int)ClassTupleFields.FileTypeMask, value); } public string Icon_ { - get => (string)this.Fields[(int)ClassTupleFields.Icon_]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.Icon_]; set => this.Set((int)ClassTupleFields.Icon_, value); } public int IconIndex { - get => (int)this.Fields[(int)ClassTupleFields.IconIndex]?.Value; + get => (int)this.Fields[(int)ClassTupleFields.IconIndex]; set => this.Set((int)ClassTupleFields.IconIndex, value); } public string DefInprocHandler { - get => (string)this.Fields[(int)ClassTupleFields.DefInprocHandler]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.DefInprocHandler]; set => this.Set((int)ClassTupleFields.DefInprocHandler, value); } public string Argument { - get => (string)this.Fields[(int)ClassTupleFields.Argument]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.Argument]; set => this.Set((int)ClassTupleFields.Argument, value); } public string Feature_ { - get => (string)this.Fields[(int)ClassTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)ClassTupleFields.Feature_]; set => this.Set((int)ClassTupleFields.Feature_, value); } diff --git a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs index 67acc30c..f3629c5f 100644 --- a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs +++ b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)ComboBoxTupleFields.Property]?.Value; + get => (string)this.Fields[(int)ComboBoxTupleFields.Property]; set => this.Set((int)ComboBoxTupleFields.Property, value); } public int Order { - get => (int)this.Fields[(int)ComboBoxTupleFields.Order]?.Value; + get => (int)this.Fields[(int)ComboBoxTupleFields.Order]; set => this.Set((int)ComboBoxTupleFields.Order, value); } public string Value { - get => (string)this.Fields[(int)ComboBoxTupleFields.Value]?.Value; + get => (string)this.Fields[(int)ComboBoxTupleFields.Value]; set => this.Set((int)ComboBoxTupleFields.Value, value); } public string Text { - get => (string)this.Fields[(int)ComboBoxTupleFields.Text]?.Value; + get => (string)this.Fields[(int)ComboBoxTupleFields.Text]; set => this.Set((int)ComboBoxTupleFields.Text, value); } } diff --git a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs index 37bc2a37..4a92d132 100644 --- a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs @@ -39,7 +39,7 @@ namespace WixToolset.Data.Tuples public string ComponentId { - get => (string)this.Fields[(int)CompLocatorTupleFields.ComponentId]?.Value; + get => (string)this.Fields[(int)CompLocatorTupleFields.ComponentId]; set => this.Set((int)CompLocatorTupleFields.ComponentId, value); } diff --git a/src/WixToolset.Data/Tuples/ComplusTuple.cs b/src/WixToolset.Data/Tuples/ComplusTuple.cs index 0287c689..f011bbd4 100644 --- a/src/WixToolset.Data/Tuples/ComplusTuple.cs +++ b/src/WixToolset.Data/Tuples/ComplusTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)ComplusTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ComplusTupleFields.Component_]; set => this.Set((int)ComplusTupleFields.Component_, value); } public int ExpType { - get => (int)this.Fields[(int)ComplusTupleFields.ExpType]?.Value; + get => (int)this.Fields[(int)ComplusTupleFields.ExpType]; set => this.Set((int)ComplusTupleFields.ExpType, value); } } diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs index 8af887ed..f573818e 100644 --- a/src/WixToolset.Data/Tuples/ComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/ComponentTuple.cs @@ -72,19 +72,19 @@ namespace WixToolset.Data.Tuples public string Component { - get => (string)this.Fields[(int)ComponentTupleFields.Component]?.Value; + get => (string)this.Fields[(int)ComponentTupleFields.Component]; set => this.Set((int)ComponentTupleFields.Component, value); } public string ComponentId { - get => (string)this.Fields[(int)ComponentTupleFields.ComponentId]?.Value; + get => (string)this.Fields[(int)ComponentTupleFields.ComponentId]; set => this.Set((int)ComponentTupleFields.ComponentId, value); } public string Directory_ { - get => (string)this.Fields[(int)ComponentTupleFields.Directory_]?.Value; + get => (string)this.Fields[(int)ComponentTupleFields.Directory_]; set => this.Set((int)ComponentTupleFields.Directory_, value); } @@ -144,13 +144,13 @@ namespace WixToolset.Data.Tuples public string Condition { - get => (string)this.Fields[(int)ComponentTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ComponentTupleFields.Condition]; set => this.Set((int)ComponentTupleFields.Condition, value); } public string KeyPath { - get => (string)this.Fields[(int)ComponentTupleFields.KeyPath]?.Value; + get => (string)this.Fields[(int)ComponentTupleFields.KeyPath]; set => this.Set((int)ComponentTupleFields.KeyPath, value); } diff --git a/src/WixToolset.Data/Tuples/ConditionTuple.cs b/src/WixToolset.Data/Tuples/ConditionTuple.cs index 534f4cae..f62174f6 100644 --- a/src/WixToolset.Data/Tuples/ConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/ConditionTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Feature_ { - get => (string)this.Fields[(int)ConditionTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)ConditionTupleFields.Feature_]; set => this.Set((int)ConditionTupleFields.Feature_, value); } public int Level { - get => (int)this.Fields[(int)ConditionTupleFields.Level]?.Value; + get => (int)this.Fields[(int)ConditionTupleFields.Level]; set => this.Set((int)ConditionTupleFields.Level, value); } public string Condition { - get => (string)this.Fields[(int)ConditionTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ConditionTupleFields.Condition]; set => this.Set((int)ConditionTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs index 0b18dac1..5b2599ec 100644 --- a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Dialog_ { - get => (string)this.Fields[(int)ControlConditionTupleFields.Dialog_]?.Value; + get => (string)this.Fields[(int)ControlConditionTupleFields.Dialog_]; set => this.Set((int)ControlConditionTupleFields.Dialog_, value); } public string Control_ { - get => (string)this.Fields[(int)ControlConditionTupleFields.Control_]?.Value; + get => (string)this.Fields[(int)ControlConditionTupleFields.Control_]; set => this.Set((int)ControlConditionTupleFields.Control_, value); } public string Action { - get => (string)this.Fields[(int)ControlConditionTupleFields.Action]?.Value; + get => (string)this.Fields[(int)ControlConditionTupleFields.Action]; set => this.Set((int)ControlConditionTupleFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)ControlConditionTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ControlConditionTupleFields.Condition]; set => this.Set((int)ControlConditionTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/ControlEventTuple.cs b/src/WixToolset.Data/Tuples/ControlEventTuple.cs index b44cd19e..6486673b 100644 --- a/src/WixToolset.Data/Tuples/ControlEventTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlEventTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string Dialog_ { - get => (string)this.Fields[(int)ControlEventTupleFields.Dialog_]?.Value; + get => (string)this.Fields[(int)ControlEventTupleFields.Dialog_]; set => this.Set((int)ControlEventTupleFields.Dialog_, value); } public string Control_ { - get => (string)this.Fields[(int)ControlEventTupleFields.Control_]?.Value; + get => (string)this.Fields[(int)ControlEventTupleFields.Control_]; set => this.Set((int)ControlEventTupleFields.Control_, value); } public string Event { - get => (string)this.Fields[(int)ControlEventTupleFields.Event]?.Value; + get => (string)this.Fields[(int)ControlEventTupleFields.Event]; set => this.Set((int)ControlEventTupleFields.Event, value); } public string Argument { - get => (string)this.Fields[(int)ControlEventTupleFields.Argument]?.Value; + get => (string)this.Fields[(int)ControlEventTupleFields.Argument]; set => this.Set((int)ControlEventTupleFields.Argument, value); } public string Condition { - get => (string)this.Fields[(int)ControlEventTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ControlEventTupleFields.Condition]; set => this.Set((int)ControlEventTupleFields.Condition, value); } public int Ordering { - get => (int)this.Fields[(int)ControlEventTupleFields.Ordering]?.Value; + get => (int)this.Fields[(int)ControlEventTupleFields.Ordering]; set => this.Set((int)ControlEventTupleFields.Ordering, value); } } diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs index f77c3689..d08d9311 100644 --- a/src/WixToolset.Data/Tuples/ControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlTuple.cs @@ -79,43 +79,43 @@ namespace WixToolset.Data.Tuples public string Dialog_ { - get => (string)this.Fields[(int)ControlTupleFields.Dialog_]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.Dialog_]; set => this.Set((int)ControlTupleFields.Dialog_, value); } public string Control { - get => (string)this.Fields[(int)ControlTupleFields.Control]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.Control]; set => this.Set((int)ControlTupleFields.Control, value); } public string Type { - get => (string)this.Fields[(int)ControlTupleFields.Type]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.Type]; set => this.Set((int)ControlTupleFields.Type, value); } public int X { - get => (int)this.Fields[(int)ControlTupleFields.X]?.Value; + get => (int)this.Fields[(int)ControlTupleFields.X]; set => this.Set((int)ControlTupleFields.X, value); } public int Y { - get => (int)this.Fields[(int)ControlTupleFields.Y]?.Value; + get => (int)this.Fields[(int)ControlTupleFields.Y]; set => this.Set((int)ControlTupleFields.Y, value); } public int Width { - get => (int)this.Fields[(int)ControlTupleFields.Width]?.Value; + get => (int)this.Fields[(int)ControlTupleFields.Width]; set => this.Set((int)ControlTupleFields.Width, value); } public int Height { - get => (int)this.Fields[(int)ControlTupleFields.Height]?.Value; + get => (int)this.Fields[(int)ControlTupleFields.Height]; set => this.Set((int)ControlTupleFields.Height, value); } @@ -266,25 +266,25 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)ControlTupleFields.Property]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.Property]; set => this.Set((int)ControlTupleFields.Property, value); } public string Text { - get => (string)this.Fields[(int)ControlTupleFields.Text]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.Text]; set => this.Set((int)ControlTupleFields.Text, value); } public string Control_Next { - get => (string)this.Fields[(int)ControlTupleFields.Control_Next]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.Control_Next]; set => this.Set((int)ControlTupleFields.Control_Next, value); } public string Help { - get => (string)this.Fields[(int)ControlTupleFields.Help]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.Help]; set => this.Set((int)ControlTupleFields.Help, value); } @@ -296,7 +296,7 @@ namespace WixToolset.Data.Tuples public string SourceFile { - get => (string)this.Fields[(int)ControlTupleFields.SourceFile]?.Value; + get => (string)this.Fields[(int)ControlTupleFields.SourceFile]; set => this.Set((int)ControlTupleFields.SourceFile, value); } } diff --git a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs index 05b50a8b..585f274c 100644 --- a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs +++ b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Directory_ { - get => (string)this.Fields[(int)CreateFolderTupleFields.Directory_]?.Value; + get => (string)this.Fields[(int)CreateFolderTupleFields.Directory_]; set => this.Set((int)CreateFolderTupleFields.Directory_, value); } public string Component_ { - get => (string)this.Fields[(int)CreateFolderTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)CreateFolderTupleFields.Component_]; set => this.Set((int)CreateFolderTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/CustomActionTuple.cs b/src/WixToolset.Data/Tuples/CustomActionTuple.cs index 9c92593a..fbda67fa 100644 --- a/src/WixToolset.Data/Tuples/CustomActionTuple.cs +++ b/src/WixToolset.Data/Tuples/CustomActionTuple.cs @@ -93,7 +93,7 @@ namespace WixToolset.Data.Tuples public string Source { - get => (string)this.Fields[(int)CustomActionTupleFields.Source]?.Value; + get => (string)this.Fields[(int)CustomActionTupleFields.Source]; set => this.Set((int)CustomActionTupleFields.Source, value); } @@ -105,7 +105,7 @@ namespace WixToolset.Data.Tuples public string Target { - get => (string)this.Fields[(int)CustomActionTupleFields.Target]?.Value; + get => (string)this.Fields[(int)CustomActionTupleFields.Target]; set => this.Set((int)CustomActionTupleFields.Target, value); } diff --git a/src/WixToolset.Data/Tuples/DialogTuple.cs b/src/WixToolset.Data/Tuples/DialogTuple.cs index d66c3b19..bc803d68 100644 --- a/src/WixToolset.Data/Tuples/DialogTuple.cs +++ b/src/WixToolset.Data/Tuples/DialogTuple.cs @@ -73,25 +73,25 @@ namespace WixToolset.Data.Tuples public int HCentering { - get => (int)this.Fields[(int)DialogTupleFields.HCentering]?.Value; + get => (int)this.Fields[(int)DialogTupleFields.HCentering]; set => this.Set((int)DialogTupleFields.HCentering, value); } public int VCentering { - get => (int)this.Fields[(int)DialogTupleFields.VCentering]?.Value; + get => (int)this.Fields[(int)DialogTupleFields.VCentering]; set => this.Set((int)DialogTupleFields.VCentering, value); } public int Width { - get => (int)this.Fields[(int)DialogTupleFields.Width]?.Value; + get => (int)this.Fields[(int)DialogTupleFields.Width]; set => this.Set((int)DialogTupleFields.Width, value); } public int Height { - get => (int)this.Fields[(int)DialogTupleFields.Height]?.Value; + get => (int)this.Fields[(int)DialogTupleFields.Height]; set => this.Set((int)DialogTupleFields.Height, value); } @@ -163,25 +163,25 @@ namespace WixToolset.Data.Tuples public string Title { - get => (string)this.Fields[(int)DialogTupleFields.Title]?.Value; + get => (string)this.Fields[(int)DialogTupleFields.Title]; set => this.Set((int)DialogTupleFields.Title, value); } public string Control_First { - get => (string)this.Fields[(int)DialogTupleFields.Control_First]?.Value; + get => (string)this.Fields[(int)DialogTupleFields.Control_First]; set => this.Set((int)DialogTupleFields.Control_First, value); } public string Control_Default { - get => (string)this.Fields[(int)DialogTupleFields.Control_Default]?.Value; + get => (string)this.Fields[(int)DialogTupleFields.Control_Default]; set => this.Set((int)DialogTupleFields.Control_Default, value); } public string Control_Cancel { - get => (string)this.Fields[(int)DialogTupleFields.Control_Cancel]?.Value; + get => (string)this.Fields[(int)DialogTupleFields.Control_Cancel]; set => this.Set((int)DialogTupleFields.Control_Cancel, value); } } diff --git a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs index 38910333..45c7b3ee 100644 --- a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Signature_ { - get => (string)this.Fields[(int)DrLocatorTupleFields.Signature_]?.Value; + get => (string)this.Fields[(int)DrLocatorTupleFields.Signature_]; set => this.Set((int)DrLocatorTupleFields.Signature_, value); } public string Parent { - get => (string)this.Fields[(int)DrLocatorTupleFields.Parent]?.Value; + get => (string)this.Fields[(int)DrLocatorTupleFields.Parent]; set => this.Set((int)DrLocatorTupleFields.Parent, value); } public string Path { - get => (string)this.Fields[(int)DrLocatorTupleFields.Path]?.Value; + get => (string)this.Fields[(int)DrLocatorTupleFields.Path]; set => this.Set((int)DrLocatorTupleFields.Path, value); } public int Depth { - get => (int)this.Fields[(int)DrLocatorTupleFields.Depth]?.Value; + get => (int)this.Fields[(int)DrLocatorTupleFields.Depth]; set => this.Set((int)DrLocatorTupleFields.Depth, value); } } diff --git a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs index b489025c..07a3b66d 100644 --- a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs +++ b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string FileKey { - get => (string)this.Fields[(int)DuplicateFileTupleFields.FileKey]?.Value; + get => (string)this.Fields[(int)DuplicateFileTupleFields.FileKey]; set => this.Set((int)DuplicateFileTupleFields.FileKey, value); } public string Component_ { - get => (string)this.Fields[(int)DuplicateFileTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)DuplicateFileTupleFields.Component_]; set => this.Set((int)DuplicateFileTupleFields.Component_, value); } public string File_ { - get => (string)this.Fields[(int)DuplicateFileTupleFields.File_]?.Value; + get => (string)this.Fields[(int)DuplicateFileTupleFields.File_]; set => this.Set((int)DuplicateFileTupleFields.File_, value); } public string DestName { - get => (string)this.Fields[(int)DuplicateFileTupleFields.DestName]?.Value; + get => (string)this.Fields[(int)DuplicateFileTupleFields.DestName]; set => this.Set((int)DuplicateFileTupleFields.DestName, value); } public string DestFolder { - get => (string)this.Fields[(int)DuplicateFileTupleFields.DestFolder]?.Value; + get => (string)this.Fields[(int)DuplicateFileTupleFields.DestFolder]; set => this.Set((int)DuplicateFileTupleFields.DestFolder, value); } } diff --git a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs index 7e3443d8..56b9f7d2 100644 --- a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs +++ b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs @@ -65,19 +65,19 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)EnvironmentTupleFields.Name]?.Value; + get => (string)this.Fields[(int)EnvironmentTupleFields.Name]; set => this.Set((int)EnvironmentTupleFields.Name, value); } public string Value { - get => (string)this.Fields[(int)EnvironmentTupleFields.Value]?.Value; + get => (string)this.Fields[(int)EnvironmentTupleFields.Value]; set => this.Set((int)EnvironmentTupleFields.Value, value); } public string Separator { - get => (string)this.Fields[(int)EnvironmentTupleFields.Separator]?.Value; + get => (string)this.Fields[(int)EnvironmentTupleFields.Separator]; set => this.Set((int)EnvironmentTupleFields.Separator, value); } @@ -107,7 +107,7 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)EnvironmentTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)EnvironmentTupleFields.Component_]; set => this.Set((int)EnvironmentTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/ErrorTuple.cs b/src/WixToolset.Data/Tuples/ErrorTuple.cs index 393d2d29..e7c93c59 100644 --- a/src/WixToolset.Data/Tuples/ErrorTuple.cs +++ b/src/WixToolset.Data/Tuples/ErrorTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public int Error { - get => (int)this.Fields[(int)ErrorTupleFields.Error]?.Value; + get => (int)this.Fields[(int)ErrorTupleFields.Error]; set => this.Set((int)ErrorTupleFields.Error, value); } public string Message { - get => (string)this.Fields[(int)ErrorTupleFields.Message]?.Value; + get => (string)this.Fields[(int)ErrorTupleFields.Message]; set => this.Set((int)ErrorTupleFields.Message, value); } } diff --git a/src/WixToolset.Data/Tuples/EventMappingTuple.cs b/src/WixToolset.Data/Tuples/EventMappingTuple.cs index e0e8da71..b83d5f4e 100644 --- a/src/WixToolset.Data/Tuples/EventMappingTuple.cs +++ b/src/WixToolset.Data/Tuples/EventMappingTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Dialog_ { - get => (string)this.Fields[(int)EventMappingTupleFields.Dialog_]?.Value; + get => (string)this.Fields[(int)EventMappingTupleFields.Dialog_]; set => this.Set((int)EventMappingTupleFields.Dialog_, value); } public string Control_ { - get => (string)this.Fields[(int)EventMappingTupleFields.Control_]?.Value; + get => (string)this.Fields[(int)EventMappingTupleFields.Control_]; set => this.Set((int)EventMappingTupleFields.Control_, value); } public string Event { - get => (string)this.Fields[(int)EventMappingTupleFields.Event]?.Value; + get => (string)this.Fields[(int)EventMappingTupleFields.Event]; set => this.Set((int)EventMappingTupleFields.Event, value); } public string Attribute { - get => (string)this.Fields[(int)EventMappingTupleFields.Attribute]?.Value; + get => (string)this.Fields[(int)EventMappingTupleFields.Attribute]; set => this.Set((int)EventMappingTupleFields.Attribute, value); } } diff --git a/src/WixToolset.Data/Tuples/ExtensionTuple.cs b/src/WixToolset.Data/Tuples/ExtensionTuple.cs index e3ef1675..c4f273b3 100644 --- a/src/WixToolset.Data/Tuples/ExtensionTuple.cs +++ b/src/WixToolset.Data/Tuples/ExtensionTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Extension { - get => (string)this.Fields[(int)ExtensionTupleFields.Extension]?.Value; + get => (string)this.Fields[(int)ExtensionTupleFields.Extension]; set => this.Set((int)ExtensionTupleFields.Extension, value); } public string Component_ { - get => (string)this.Fields[(int)ExtensionTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ExtensionTupleFields.Component_]; set => this.Set((int)ExtensionTupleFields.Component_, value); } public string ProgId_ { - get => (string)this.Fields[(int)ExtensionTupleFields.ProgId_]?.Value; + get => (string)this.Fields[(int)ExtensionTupleFields.ProgId_]; set => this.Set((int)ExtensionTupleFields.ProgId_, value); } public string MIME_ { - get => (string)this.Fields[(int)ExtensionTupleFields.MIME_]?.Value; + get => (string)this.Fields[(int)ExtensionTupleFields.MIME_]; set => this.Set((int)ExtensionTupleFields.MIME_, value); } public string Feature_ { - get => (string)this.Fields[(int)ExtensionTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)ExtensionTupleFields.Feature_]; set => this.Set((int)ExtensionTupleFields.Feature_, value); } } diff --git a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs index 06e6d4ae..c3352c13 100644 --- a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs +++ b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs @@ -51,49 +51,49 @@ namespace WixToolset.Data.Tuples public string Family { - get => (string)this.Fields[(int)ExternalFilesTupleFields.Family]?.Value; + get => (string)this.Fields[(int)ExternalFilesTupleFields.Family]; set => this.Set((int)ExternalFilesTupleFields.Family, value); } public string FTK { - get => (string)this.Fields[(int)ExternalFilesTupleFields.FTK]?.Value; + get => (string)this.Fields[(int)ExternalFilesTupleFields.FTK]; set => this.Set((int)ExternalFilesTupleFields.FTK, value); } public string FilePath { - get => (string)this.Fields[(int)ExternalFilesTupleFields.FilePath]?.Value; + get => (string)this.Fields[(int)ExternalFilesTupleFields.FilePath]; set => this.Set((int)ExternalFilesTupleFields.FilePath, value); } public string SymbolPaths { - get => (string)this.Fields[(int)ExternalFilesTupleFields.SymbolPaths]?.Value; + get => (string)this.Fields[(int)ExternalFilesTupleFields.SymbolPaths]; set => this.Set((int)ExternalFilesTupleFields.SymbolPaths, value); } public string IgnoreOffsets { - get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreOffsets]?.Value; + get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreOffsets]; set => this.Set((int)ExternalFilesTupleFields.IgnoreOffsets, value); } public string IgnoreLengths { - get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreLengths]?.Value; + get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreLengths]; set => this.Set((int)ExternalFilesTupleFields.IgnoreLengths, value); } public string RetainOffsets { - get => (string)this.Fields[(int)ExternalFilesTupleFields.RetainOffsets]?.Value; + get => (string)this.Fields[(int)ExternalFilesTupleFields.RetainOffsets]; set => this.Set((int)ExternalFilesTupleFields.RetainOffsets, value); } public int Order { - get => (int)this.Fields[(int)ExternalFilesTupleFields.Order]?.Value; + get => (int)this.Fields[(int)ExternalFilesTupleFields.Order]; set => this.Set((int)ExternalFilesTupleFields.Order, value); } } diff --git a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs index 5065c389..ea2e1993 100644 --- a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs +++ b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Family { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.Family]?.Value; + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.Family]; set => this.Set((int)FamilyFileRangesTupleFields.Family, value); } public string FTK { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.FTK]?.Value; + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.FTK]; set => this.Set((int)FamilyFileRangesTupleFields.FTK, value); } public string RetainOffsets { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainOffsets]?.Value; + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainOffsets]; set => this.Set((int)FamilyFileRangesTupleFields.RetainOffsets, value); } public string RetainLengths { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainLengths]?.Value; + get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainLengths]; set => this.Set((int)FamilyFileRangesTupleFields.RetainLengths, value); } } diff --git a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs index e9d54c37..33f17ee9 100644 --- a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs +++ b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Feature_ { - get => (string)this.Fields[(int)FeatureComponentsTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)FeatureComponentsTupleFields.Feature_]; set => this.Set((int)FeatureComponentsTupleFields.Feature_, value); } public string Component_ { - get => (string)this.Fields[(int)FeatureComponentsTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)FeatureComponentsTupleFields.Component_]; set => this.Set((int)FeatureComponentsTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/FeatureTuple.cs b/src/WixToolset.Data/Tuples/FeatureTuple.cs index c3b0e67a..14a1a9f5 100644 --- a/src/WixToolset.Data/Tuples/FeatureTuple.cs +++ b/src/WixToolset.Data/Tuples/FeatureTuple.cs @@ -68,37 +68,37 @@ namespace WixToolset.Data.Tuples public string Feature_Parent { - get => (string)this.Fields[(int)FeatureTupleFields.Feature_Parent]?.Value; + get => (string)this.Fields[(int)FeatureTupleFields.Feature_Parent]; set => this.Set((int)FeatureTupleFields.Feature_Parent, value); } public string Title { - get => (string)this.Fields[(int)FeatureTupleFields.Title]?.Value; + get => (string)this.Fields[(int)FeatureTupleFields.Title]; set => this.Set((int)FeatureTupleFields.Title, value); } public string Description { - get => (string)this.Fields[(int)FeatureTupleFields.Description]?.Value; + get => (string)this.Fields[(int)FeatureTupleFields.Description]; set => this.Set((int)FeatureTupleFields.Description, value); } public int Display { - get => (int)this.Fields[(int)FeatureTupleFields.Display]?.Value; + get => (int)this.Fields[(int)FeatureTupleFields.Display]; set => this.Set((int)FeatureTupleFields.Display, value); } public int Level { - get => (int)this.Fields[(int)FeatureTupleFields.Level]?.Value; + get => (int)this.Fields[(int)FeatureTupleFields.Level]; set => this.Set((int)FeatureTupleFields.Level, value); } public string Directory_ { - get => (string)this.Fields[(int)FeatureTupleFields.Directory_]?.Value; + get => (string)this.Fields[(int)FeatureTupleFields.Directory_]; set => this.Set((int)FeatureTupleFields.Directory_, value); } diff --git a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs index 7409577f..b5edfd2b 100644 --- a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)FileSFPCatalogTupleFields.File_]?.Value; + get => (string)this.Fields[(int)FileSFPCatalogTupleFields.File_]; set => this.Set((int)FileSFPCatalogTupleFields.File_, value); } public string SFPCatalog_ { - get => (string)this.Fields[(int)FileSFPCatalogTupleFields.SFPCatalog_]?.Value; + get => (string)this.Fields[(int)FileSFPCatalogTupleFields.SFPCatalog_]; set => this.Set((int)FileSFPCatalogTupleFields.SFPCatalog_, value); } } diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index 2f283406..1271ad55 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -61,79 +61,79 @@ namespace WixToolset.Data.Tuples public string File { - get => (string)this.Fields[(int)FileTupleFields.File]?.Value; + get => (string)this.Fields[(int)FileTupleFields.File]; set => this.Set((int)FileTupleFields.File, value); } public string Component_ { - get => (string)this.Fields[(int)FileTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)FileTupleFields.Component_]; set => this.Set((int)FileTupleFields.Component_, value); } public string ShortFileName { - get => (string)this.Fields[(int)FileTupleFields.ShortFileName]?.Value; + get => (string)this.Fields[(int)FileTupleFields.ShortFileName]; set => this.Set((int)FileTupleFields.ShortFileName, value); } public string LongFileName { - get => (string)this.Fields[(int)FileTupleFields.LongFileName]?.Value; + get => (string)this.Fields[(int)FileTupleFields.LongFileName]; set => this.Set((int)FileTupleFields.LongFileName, value); } public int FileSize { - get => (int)this.Fields[(int)FileTupleFields.FileSize]?.Value; + get => (int)this.Fields[(int)FileTupleFields.FileSize]; set => this.Set((int)FileTupleFields.FileSize, value); } public string Version { - get => (string)this.Fields[(int)FileTupleFields.Version]?.Value; + get => (string)this.Fields[(int)FileTupleFields.Version]; set => this.Set((int)FileTupleFields.Version, value); } public string Language { - get => (string)this.Fields[(int)FileTupleFields.Language]?.Value; + get => (string)this.Fields[(int)FileTupleFields.Language]; set => this.Set((int)FileTupleFields.Language, value); } public bool ReadOnly { - get => (bool)this.Fields[(int)FileTupleFields.ReadOnly]?.Value; + get => (bool)this.Fields[(int)FileTupleFields.ReadOnly]; set => this.Set((int)FileTupleFields.ReadOnly, value); } public bool Hidden { - get => (bool)this.Fields[(int)FileTupleFields.Hidden]?.Value; + get => (bool)this.Fields[(int)FileTupleFields.Hidden]; set => this.Set((int)FileTupleFields.Hidden, value); } public bool System { - get => (bool)this.Fields[(int)FileTupleFields.System]?.Value; + get => (bool)this.Fields[(int)FileTupleFields.System]; set => this.Set((int)FileTupleFields.System, value); } public bool Vital { - get => (bool)this.Fields[(int)FileTupleFields.Vital]?.Value; + get => (bool)this.Fields[(int)FileTupleFields.Vital]; set => this.Set((int)FileTupleFields.Vital, value); } public bool Checksum { - get => (bool)this.Fields[(int)FileTupleFields.Checksum]?.Value; + get => (bool)this.Fields[(int)FileTupleFields.Checksum]; set => this.Set((int)FileTupleFields.Checksum, value); } public bool? Compressed { - get => (bool?)this.Fields[(int)FileTupleFields.Compressed]?.Value; + get => (bool?)this.Fields[(int)FileTupleFields.Compressed]; set => this.Set((int)FileTupleFields.Compressed, value); } } diff --git a/src/WixToolset.Data/Tuples/FontTuple.cs b/src/WixToolset.Data/Tuples/FontTuple.cs index 97550148..12f41321 100644 --- a/src/WixToolset.Data/Tuples/FontTuple.cs +++ b/src/WixToolset.Data/Tuples/FontTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)FontTupleFields.File_]?.Value; + get => (string)this.Fields[(int)FontTupleFields.File_]; set => this.Set((int)FontTupleFields.File_, value); } public string FontTitle { - get => (string)this.Fields[(int)FontTupleFields.FontTitle]?.Value; + get => (string)this.Fields[(int)FontTupleFields.FontTitle]; set => this.Set((int)FontTupleFields.FontTitle, value); } } diff --git a/src/WixToolset.Data/Tuples/IconTuple.cs b/src/WixToolset.Data/Tuples/IconTuple.cs index 0ccd9a53..0644f47d 100644 --- a/src/WixToolset.Data/Tuples/IconTuple.cs +++ b/src/WixToolset.Data/Tuples/IconTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)IconTupleFields.Name]?.Value; + get => (string)this.Fields[(int)IconTupleFields.Name]; set => this.Set((int)IconTupleFields.Name, value); } public string Data { - get => (string)this.Fields[(int)IconTupleFields.Data]?.Value; + get => (string)this.Fields[(int)IconTupleFields.Data]; set => this.Set((int)IconTupleFields.Data, value); } } diff --git a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs index 7ce884ca..d06302a6 100644 --- a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs +++ b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string Family { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.Family]?.Value; + get => (string)this.Fields[(int)ImageFamiliesTupleFields.Family]; set => this.Set((int)ImageFamiliesTupleFields.Family, value); } public string MediaSrcPropName { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.MediaSrcPropName]?.Value; + get => (string)this.Fields[(int)ImageFamiliesTupleFields.MediaSrcPropName]; set => this.Set((int)ImageFamiliesTupleFields.MediaSrcPropName, value); } public int MediaDiskId { - get => (int)this.Fields[(int)ImageFamiliesTupleFields.MediaDiskId]?.Value; + get => (int)this.Fields[(int)ImageFamiliesTupleFields.MediaDiskId]; set => this.Set((int)ImageFamiliesTupleFields.MediaDiskId, value); } public int FileSequenceStart { - get => (int)this.Fields[(int)ImageFamiliesTupleFields.FileSequenceStart]?.Value; + get => (int)this.Fields[(int)ImageFamiliesTupleFields.FileSequenceStart]; set => this.Set((int)ImageFamiliesTupleFields.FileSequenceStart, value); } public string DiskPrompt { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.DiskPrompt]?.Value; + get => (string)this.Fields[(int)ImageFamiliesTupleFields.DiskPrompt]; set => this.Set((int)ImageFamiliesTupleFields.DiskPrompt, value); } public string VolumeLabel { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.VolumeLabel]?.Value; + get => (string)this.Fields[(int)ImageFamiliesTupleFields.VolumeLabel]; set => this.Set((int)ImageFamiliesTupleFields.VolumeLabel, value); } } diff --git a/src/WixToolset.Data/Tuples/IniFileTuple.cs b/src/WixToolset.Data/Tuples/IniFileTuple.cs index bae28817..804fff13 100644 --- a/src/WixToolset.Data/Tuples/IniFileTuple.cs +++ b/src/WixToolset.Data/Tuples/IniFileTuple.cs @@ -49,31 +49,31 @@ namespace WixToolset.Data.Tuples public string FileName { - get => (string)this.Fields[(int)IniFileTupleFields.FileName]?.Value; + get => (string)this.Fields[(int)IniFileTupleFields.FileName]; set => this.Set((int)IniFileTupleFields.FileName, value); } public string DirProperty { - get => (string)this.Fields[(int)IniFileTupleFields.DirProperty]?.Value; + get => (string)this.Fields[(int)IniFileTupleFields.DirProperty]; set => this.Set((int)IniFileTupleFields.DirProperty, value); } public string Section { - get => (string)this.Fields[(int)IniFileTupleFields.Section]?.Value; + get => (string)this.Fields[(int)IniFileTupleFields.Section]; set => this.Set((int)IniFileTupleFields.Section, value); } public string Key { - get => (string)this.Fields[(int)IniFileTupleFields.Key]?.Value; + get => (string)this.Fields[(int)IniFileTupleFields.Key]; set => this.Set((int)IniFileTupleFields.Key, value); } public string Value { - get => (string)this.Fields[(int)IniFileTupleFields.Value]?.Value; + get => (string)this.Fields[(int)IniFileTupleFields.Value]; set => this.Set((int)IniFileTupleFields.Value, value); } @@ -85,7 +85,7 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)IniFileTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)IniFileTupleFields.Component_]; set => this.Set((int)IniFileTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs index f956ee5f..84097f9c 100644 --- a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string Signature_ { - get => (string)this.Fields[(int)IniLocatorTupleFields.Signature_]?.Value; + get => (string)this.Fields[(int)IniLocatorTupleFields.Signature_]; set => this.Set((int)IniLocatorTupleFields.Signature_, value); } public string FileName { - get => (string)this.Fields[(int)IniLocatorTupleFields.FileName]?.Value; + get => (string)this.Fields[(int)IniLocatorTupleFields.FileName]; set => this.Set((int)IniLocatorTupleFields.FileName, value); } public string Section { - get => (string)this.Fields[(int)IniLocatorTupleFields.Section]?.Value; + get => (string)this.Fields[(int)IniLocatorTupleFields.Section]; set => this.Set((int)IniLocatorTupleFields.Section, value); } public string Key { - get => (string)this.Fields[(int)IniLocatorTupleFields.Key]?.Value; + get => (string)this.Fields[(int)IniLocatorTupleFields.Key]; set => this.Set((int)IniLocatorTupleFields.Key, value); } public int Field { - get => (int)this.Fields[(int)IniLocatorTupleFields.Field]?.Value; + get => (int)this.Fields[(int)IniLocatorTupleFields.Field]; set => this.Set((int)IniLocatorTupleFields.Field, value); } public int Type { - get => (int)this.Fields[(int)IniLocatorTupleFields.Type]?.Value; + get => (int)this.Fields[(int)IniLocatorTupleFields.Type]; set => this.Set((int)IniLocatorTupleFields.Type, value); } } diff --git a/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs index 390faf9d..0dbb00ed 100644 --- a/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Action]; set => this.Set((int)InstallExecuteSequenceTupleFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Condition]; set => this.Set((int)InstallExecuteSequenceTupleFields.Condition, value); } public int Sequence { - get => (int)this.Fields[(int)InstallExecuteSequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)InstallExecuteSequenceTupleFields.Sequence]; set => this.Set((int)InstallExecuteSequenceTupleFields.Sequence, value); } } diff --git a/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs index 07409c37..09751df3 100644 --- a/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)InstallUISequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)InstallUISequenceTupleFields.Action]; set => this.Set((int)InstallUISequenceTupleFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)InstallUISequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)InstallUISequenceTupleFields.Condition]; set => this.Set((int)InstallUISequenceTupleFields.Condition, value); } public int Sequence { - get => (int)this.Fields[(int)InstallUISequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)InstallUISequenceTupleFields.Sequence]; set => this.Set((int)InstallUISequenceTupleFields.Sequence, value); } } diff --git a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs index 5fb4f8aa..3f037005 100644 --- a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Component_Shared { - get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Shared]?.Value; + get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Shared]; set => this.Set((int)IsolatedComponentTupleFields.Component_Shared, value); } public string Component_Application { - get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Application]?.Value; + get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Application]; set => this.Set((int)IsolatedComponentTupleFields.Component_Application, value); } } diff --git a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs index f5718607..c895ea35 100644 --- a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Condition { - get => (string)this.Fields[(int)LaunchConditionTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)LaunchConditionTupleFields.Condition]; set => this.Set((int)LaunchConditionTupleFields.Condition, value); } public string Description { - get => (string)this.Fields[(int)LaunchConditionTupleFields.Description]?.Value; + get => (string)this.Fields[(int)LaunchConditionTupleFields.Description]; set => this.Set((int)LaunchConditionTupleFields.Description, value); } } diff --git a/src/WixToolset.Data/Tuples/ListBoxTuple.cs b/src/WixToolset.Data/Tuples/ListBoxTuple.cs index 71702c07..c25f1728 100644 --- a/src/WixToolset.Data/Tuples/ListBoxTuple.cs +++ b/src/WixToolset.Data/Tuples/ListBoxTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)ListBoxTupleFields.Property]?.Value; + get => (string)this.Fields[(int)ListBoxTupleFields.Property]; set => this.Set((int)ListBoxTupleFields.Property, value); } public int Order { - get => (int)this.Fields[(int)ListBoxTupleFields.Order]?.Value; + get => (int)this.Fields[(int)ListBoxTupleFields.Order]; set => this.Set((int)ListBoxTupleFields.Order, value); } public string Value { - get => (string)this.Fields[(int)ListBoxTupleFields.Value]?.Value; + get => (string)this.Fields[(int)ListBoxTupleFields.Value]; set => this.Set((int)ListBoxTupleFields.Value, value); } public string Text { - get => (string)this.Fields[(int)ListBoxTupleFields.Text]?.Value; + get => (string)this.Fields[(int)ListBoxTupleFields.Text]; set => this.Set((int)ListBoxTupleFields.Text, value); } } diff --git a/src/WixToolset.Data/Tuples/ListViewTuple.cs b/src/WixToolset.Data/Tuples/ListViewTuple.cs index 3b1f4c88..75a3758c 100644 --- a/src/WixToolset.Data/Tuples/ListViewTuple.cs +++ b/src/WixToolset.Data/Tuples/ListViewTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)ListViewTupleFields.Property]?.Value; + get => (string)this.Fields[(int)ListViewTupleFields.Property]; set => this.Set((int)ListViewTupleFields.Property, value); } public int Order { - get => (int)this.Fields[(int)ListViewTupleFields.Order]?.Value; + get => (int)this.Fields[(int)ListViewTupleFields.Order]; set => this.Set((int)ListViewTupleFields.Order, value); } public string Value { - get => (string)this.Fields[(int)ListViewTupleFields.Value]?.Value; + get => (string)this.Fields[(int)ListViewTupleFields.Value]; set => this.Set((int)ListViewTupleFields.Value, value); } public string Text { - get => (string)this.Fields[(int)ListViewTupleFields.Text]?.Value; + get => (string)this.Fields[(int)ListViewTupleFields.Text]; set => this.Set((int)ListViewTupleFields.Text, value); } public string Binary_ { - get => (string)this.Fields[(int)ListViewTupleFields.Binary_]?.Value; + get => (string)this.Fields[(int)ListViewTupleFields.Binary_]; set => this.Set((int)ListViewTupleFields.Binary_, value); } } diff --git a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs index cff4aaa0..e09b56a3 100644 --- a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs +++ b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string LockObject { - get => (string)this.Fields[(int)LockPermissionsTupleFields.LockObject]?.Value; + get => (string)this.Fields[(int)LockPermissionsTupleFields.LockObject]; set => this.Set((int)LockPermissionsTupleFields.LockObject, value); } public string Table { - get => (string)this.Fields[(int)LockPermissionsTupleFields.Table]?.Value; + get => (string)this.Fields[(int)LockPermissionsTupleFields.Table]; set => this.Set((int)LockPermissionsTupleFields.Table, value); } public string Domain { - get => (string)this.Fields[(int)LockPermissionsTupleFields.Domain]?.Value; + get => (string)this.Fields[(int)LockPermissionsTupleFields.Domain]; set => this.Set((int)LockPermissionsTupleFields.Domain, value); } public string User { - get => (string)this.Fields[(int)LockPermissionsTupleFields.User]?.Value; + get => (string)this.Fields[(int)LockPermissionsTupleFields.User]; set => this.Set((int)LockPermissionsTupleFields.User, value); } public int Permission { - get => (int)this.Fields[(int)LockPermissionsTupleFields.Permission]?.Value; + get => (int)this.Fields[(int)LockPermissionsTupleFields.Permission]; set => this.Set((int)LockPermissionsTupleFields.Permission, value); } } diff --git a/src/WixToolset.Data/Tuples/MIMETuple.cs b/src/WixToolset.Data/Tuples/MIMETuple.cs index 8453275e..781015cb 100644 --- a/src/WixToolset.Data/Tuples/MIMETuple.cs +++ b/src/WixToolset.Data/Tuples/MIMETuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string ContentType { - get => (string)this.Fields[(int)MIMETupleFields.ContentType]?.Value; + get => (string)this.Fields[(int)MIMETupleFields.ContentType]; set => this.Set((int)MIMETupleFields.ContentType, value); } public string Extension_ { - get => (string)this.Fields[(int)MIMETupleFields.Extension_]?.Value; + get => (string)this.Fields[(int)MIMETupleFields.Extension_]; set => this.Set((int)MIMETupleFields.Extension_, value); } public string CLSID { - get => (string)this.Fields[(int)MIMETupleFields.CLSID]?.Value; + get => (string)this.Fields[(int)MIMETupleFields.CLSID]; set => this.Set((int)MIMETupleFields.CLSID, value); } } diff --git a/src/WixToolset.Data/Tuples/MediaTuple.cs b/src/WixToolset.Data/Tuples/MediaTuple.cs index 305080c3..a78f56de 100644 --- a/src/WixToolset.Data/Tuples/MediaTuple.cs +++ b/src/WixToolset.Data/Tuples/MediaTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public int DiskId { - get => (int)this.Fields[(int)MediaTupleFields.DiskId]?.Value; + get => (int)this.Fields[(int)MediaTupleFields.DiskId]; set => this.Set((int)MediaTupleFields.DiskId, value); } public int LastSequence { - get => (int)this.Fields[(int)MediaTupleFields.LastSequence]?.Value; + get => (int)this.Fields[(int)MediaTupleFields.LastSequence]; set => this.Set((int)MediaTupleFields.LastSequence, value); } public string DiskPrompt { - get => (string)this.Fields[(int)MediaTupleFields.DiskPrompt]?.Value; + get => (string)this.Fields[(int)MediaTupleFields.DiskPrompt]; set => this.Set((int)MediaTupleFields.DiskPrompt, value); } public string Cabinet { - get => (string)this.Fields[(int)MediaTupleFields.Cabinet]?.Value; + get => (string)this.Fields[(int)MediaTupleFields.Cabinet]; set => this.Set((int)MediaTupleFields.Cabinet, value); } public string VolumeLabel { - get => (string)this.Fields[(int)MediaTupleFields.VolumeLabel]?.Value; + get => (string)this.Fields[(int)MediaTupleFields.VolumeLabel]; set => this.Set((int)MediaTupleFields.VolumeLabel, value); } public string Source { - get => (string)this.Fields[(int)MediaTupleFields.Source]?.Value; + get => (string)this.Fields[(int)MediaTupleFields.Source]; set => this.Set((int)MediaTupleFields.Source, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs index 4f762214..eba7a431 100644 --- a/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Action]; set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Action, value); } public int Sequence { - get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Sequence]; set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Sequence, value); } public string BaseAction { - get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.BaseAction]?.Value; + get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.BaseAction]; set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.BaseAction, value); } public int After { - get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.After]?.Value; + get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.After]; set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.After, value); } public string Condition { - get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Condition]; set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs index bc873b72..396a81da 100644 --- a/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Action]; set => this.Set((int)ModuleAdminUISequenceTupleFields.Action, value); } public int Sequence { - get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.Sequence]; set => this.Set((int)ModuleAdminUISequenceTupleFields.Sequence, value); } public string BaseAction { - get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.BaseAction]?.Value; + get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.BaseAction]; set => this.Set((int)ModuleAdminUISequenceTupleFields.BaseAction, value); } public int After { - get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.After]?.Value; + get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.After]; set => this.Set((int)ModuleAdminUISequenceTupleFields.After, value); } public string Condition { - get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Condition]; set => this.Set((int)ModuleAdminUISequenceTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs index 2864be7e..146d09d0 100644 --- a/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Action]; set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Action, value); } public int Sequence { - get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Sequence]; set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Sequence, value); } public string BaseAction { - get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.BaseAction]?.Value; + get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.BaseAction]; set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.BaseAction, value); } public int After { - get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.After]?.Value; + get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.After]; set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.After, value); } public string Condition { - get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Condition]; set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs index 24b9aab4..2b560b50 100644 --- a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Component { - get => (string)this.Fields[(int)ModuleComponentsTupleFields.Component]?.Value; + get => (string)this.Fields[(int)ModuleComponentsTupleFields.Component]; set => this.Set((int)ModuleComponentsTupleFields.Component, value); } public string ModuleID { - get => (string)this.Fields[(int)ModuleComponentsTupleFields.ModuleID]?.Value; + get => (string)this.Fields[(int)ModuleComponentsTupleFields.ModuleID]; set => this.Set((int)ModuleComponentsTupleFields.ModuleID, value); } public int Language { - get => (int)this.Fields[(int)ModuleComponentsTupleFields.Language]?.Value; + get => (int)this.Fields[(int)ModuleComponentsTupleFields.Language]; set => this.Set((int)ModuleComponentsTupleFields.Language, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs index a1c2a777..fd0cf365 100644 --- a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs @@ -55,25 +55,25 @@ namespace WixToolset.Data.Tuples public int Format { - get => (int)this.Fields[(int)ModuleConfigurationTupleFields.Format]?.Value; + get => (int)this.Fields[(int)ModuleConfigurationTupleFields.Format]; set => this.Set((int)ModuleConfigurationTupleFields.Format, value); } public string Type { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Type]?.Value; + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Type]; set => this.Set((int)ModuleConfigurationTupleFields.Type, value); } public string ContextData { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.ContextData]?.Value; + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.ContextData]; set => this.Set((int)ModuleConfigurationTupleFields.ContextData, value); } public string DefaultValue { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DefaultValue]?.Value; + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DefaultValue]; set => this.Set((int)ModuleConfigurationTupleFields.DefaultValue, value); } @@ -91,25 +91,25 @@ namespace WixToolset.Data.Tuples public string DisplayName { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DisplayName]?.Value; + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DisplayName]; set => this.Set((int)ModuleConfigurationTupleFields.DisplayName, value); } public string Description { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Description]; set => this.Set((int)ModuleConfigurationTupleFields.Description, value); } public string HelpLocation { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpLocation]?.Value; + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpLocation]; set => this.Set((int)ModuleConfigurationTupleFields.HelpLocation, value); } public string HelpKeyword { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpKeyword]?.Value; + get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpKeyword]; set => this.Set((int)ModuleConfigurationTupleFields.HelpKeyword, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs index ed887207..8c857d41 100644 --- a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string ModuleID { - get => (string)this.Fields[(int)ModuleDependencyTupleFields.ModuleID]?.Value; + get => (string)this.Fields[(int)ModuleDependencyTupleFields.ModuleID]; set => this.Set((int)ModuleDependencyTupleFields.ModuleID, value); } public int ModuleLanguage { - get => (int)this.Fields[(int)ModuleDependencyTupleFields.ModuleLanguage]?.Value; + get => (int)this.Fields[(int)ModuleDependencyTupleFields.ModuleLanguage]; set => this.Set((int)ModuleDependencyTupleFields.ModuleLanguage, value); } public string RequiredID { - get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredID]?.Value; + get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredID]; set => this.Set((int)ModuleDependencyTupleFields.RequiredID, value); } public int RequiredLanguage { - get => (int)this.Fields[(int)ModuleDependencyTupleFields.RequiredLanguage]?.Value; + get => (int)this.Fields[(int)ModuleDependencyTupleFields.RequiredLanguage]; set => this.Set((int)ModuleDependencyTupleFields.RequiredLanguage, value); } public string RequiredVersion { - get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredVersion]?.Value; + get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredVersion]; set => this.Set((int)ModuleDependencyTupleFields.RequiredVersion, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs index 968fc2cd..98c5ac5e 100644 --- a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string ModuleID { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ModuleID]?.Value; + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ModuleID]; set => this.Set((int)ModuleExclusionTupleFields.ModuleID, value); } public int ModuleLanguage { - get => (int)this.Fields[(int)ModuleExclusionTupleFields.ModuleLanguage]?.Value; + get => (int)this.Fields[(int)ModuleExclusionTupleFields.ModuleLanguage]; set => this.Set((int)ModuleExclusionTupleFields.ModuleLanguage, value); } public string ExcludedID { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedID]?.Value; + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedID]; set => this.Set((int)ModuleExclusionTupleFields.ExcludedID, value); } public int ExcludedLanguage { - get => (int)this.Fields[(int)ModuleExclusionTupleFields.ExcludedLanguage]?.Value; + get => (int)this.Fields[(int)ModuleExclusionTupleFields.ExcludedLanguage]; set => this.Set((int)ModuleExclusionTupleFields.ExcludedLanguage, value); } public string ExcludedMinVersion { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMinVersion]?.Value; + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMinVersion]; set => this.Set((int)ModuleExclusionTupleFields.ExcludedMinVersion, value); } public string ExcludedMaxVersion { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMaxVersion]?.Value; + get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMaxVersion]; set => this.Set((int)ModuleExclusionTupleFields.ExcludedMaxVersion, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs index ec82c94b..d4262448 100644 --- a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)ModuleIgnoreTableTupleFields.Table]?.Value; + get => (string)this.Fields[(int)ModuleIgnoreTableTupleFields.Table]; set => this.Set((int)ModuleIgnoreTableTupleFields.Table, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs index 22bb678c..07b79239 100644 --- a/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Action]; set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Action, value); } public int Sequence { - get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Sequence]; set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Sequence, value); } public string BaseAction { - get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.BaseAction]?.Value; + get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.BaseAction]; set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.BaseAction, value); } public int After { - get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.After]?.Value; + get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.After]; set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.After, value); } public string Condition { - get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Condition]; set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs index cc6e0c76..31bb8555 100644 --- a/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Action { - get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Action]?.Value; + get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Action]; set => this.Set((int)ModuleInstallUISequenceTupleFields.Action, value); } public int Sequence { - get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.Sequence]; set => this.Set((int)ModuleInstallUISequenceTupleFields.Sequence, value); } public string BaseAction { - get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.BaseAction]?.Value; + get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.BaseAction]; set => this.Set((int)ModuleInstallUISequenceTupleFields.BaseAction, value); } public int After { - get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.After]?.Value; + get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.After]; set => this.Set((int)ModuleInstallUISequenceTupleFields.After, value); } public string Condition { - get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Condition]; set => this.Set((int)ModuleInstallUISequenceTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs index 836f769b..04db5f58 100644 --- a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string ModuleID { - get => (string)this.Fields[(int)ModuleSignatureTupleFields.ModuleID]?.Value; + get => (string)this.Fields[(int)ModuleSignatureTupleFields.ModuleID]; set => this.Set((int)ModuleSignatureTupleFields.ModuleID, value); } public int Language { - get => (int)this.Fields[(int)ModuleSignatureTupleFields.Language]?.Value; + get => (int)this.Fields[(int)ModuleSignatureTupleFields.Language]; set => this.Set((int)ModuleSignatureTupleFields.Language, value); } public string Version { - get => (string)this.Fields[(int)ModuleSignatureTupleFields.Version]?.Value; + get => (string)this.Fields[(int)ModuleSignatureTupleFields.Version]; set => this.Set((int)ModuleSignatureTupleFields.Version, value); } } diff --git a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs index 609670f0..76033560 100644 --- a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Table]?.Value; + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Table]; set => this.Set((int)ModuleSubstitutionTupleFields.Table, value); } public string Row { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Row]?.Value; + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Row]; set => this.Set((int)ModuleSubstitutionTupleFields.Row, value); } public string Column { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Column]?.Value; + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Column]; set => this.Set((int)ModuleSubstitutionTupleFields.Column, value); } public string Value { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Value]?.Value; + get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Value]; set => this.Set((int)ModuleSubstitutionTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/MoveFileTuple.cs b/src/WixToolset.Data/Tuples/MoveFileTuple.cs index 404d39b3..7a0ff120 100644 --- a/src/WixToolset.Data/Tuples/MoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/MoveFileTuple.cs @@ -49,43 +49,43 @@ namespace WixToolset.Data.Tuples public string FileKey { - get => (string)this.Fields[(int)MoveFileTupleFields.FileKey]?.Value; + get => (string)this.Fields[(int)MoveFileTupleFields.FileKey]; set => this.Set((int)MoveFileTupleFields.FileKey, value); } public string Component_ { - get => (string)this.Fields[(int)MoveFileTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)MoveFileTupleFields.Component_]; set => this.Set((int)MoveFileTupleFields.Component_, value); } public string SourceName { - get => (string)this.Fields[(int)MoveFileTupleFields.SourceName]?.Value; + get => (string)this.Fields[(int)MoveFileTupleFields.SourceName]; set => this.Set((int)MoveFileTupleFields.SourceName, value); } public string DestName { - get => (string)this.Fields[(int)MoveFileTupleFields.DestName]?.Value; + get => (string)this.Fields[(int)MoveFileTupleFields.DestName]; set => this.Set((int)MoveFileTupleFields.DestName, value); } public string SourceFolder { - get => (string)this.Fields[(int)MoveFileTupleFields.SourceFolder]?.Value; + get => (string)this.Fields[(int)MoveFileTupleFields.SourceFolder]; set => this.Set((int)MoveFileTupleFields.SourceFolder, value); } public string DestFolder { - get => (string)this.Fields[(int)MoveFileTupleFields.DestFolder]?.Value; + get => (string)this.Fields[(int)MoveFileTupleFields.DestFolder]; set => this.Set((int)MoveFileTupleFields.DestFolder, value); } public int Options { - get => (int)this.Fields[(int)MoveFileTupleFields.Options]?.Value; + get => (int)this.Fields[(int)MoveFileTupleFields.Options]; set => this.Set((int)MoveFileTupleFields.Options, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs index a8e97b00..f4da9ea2 100644 --- a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Component_]; set => this.Set((int)MsiAssemblyNameTupleFields.Component_, value); } public string Name { - get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Name]?.Value; + get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Name]; set => this.Set((int)MsiAssemblyNameTupleFields.Name, value); } public string Value { - get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Value]?.Value; + get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Value]; set => this.Set((int)MsiAssemblyNameTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs index 0cd814d8..9a2c2c0d 100644 --- a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)MsiAssemblyTupleFields.Component_]; set => this.Set((int)MsiAssemblyTupleFields.Component_, value); } public string Feature_ { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)MsiAssemblyTupleFields.Feature_]; set => this.Set((int)MsiAssemblyTupleFields.Feature_, value); } public string File_Manifest { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Manifest]?.Value; + get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Manifest]; set => this.Set((int)MsiAssemblyTupleFields.File_Manifest, value); } public string File_Application { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Application]?.Value; + get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Application]; set => this.Set((int)MsiAssemblyTupleFields.File_Application, value); } public int Attributes { - get => (int)this.Fields[(int)MsiAssemblyTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)MsiAssemblyTupleFields.Attributes]; set => this.Set((int)MsiAssemblyTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs index fb949afb..52f1adea 100644 --- a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string DigitalCertificate { - get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.DigitalCertificate]?.Value; + get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.DigitalCertificate]; set => this.Set((int)MsiDigitalCertificateTupleFields.DigitalCertificate, value); } public string CertData { - get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.CertData]?.Value; + get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.CertData]; set => this.Set((int)MsiDigitalCertificateTupleFields.CertData, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs index 8b30c53c..6292b0af 100644 --- a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Table]?.Value; + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Table]; set => this.Set((int)MsiDigitalSignatureTupleFields.Table, value); } public string SignObject { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.SignObject]?.Value; + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.SignObject]; set => this.Set((int)MsiDigitalSignatureTupleFields.SignObject, value); } public string DigitalCertificate_ { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.DigitalCertificate_]?.Value; + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.DigitalCertificate_]; set => this.Set((int)MsiDigitalSignatureTupleFields.DigitalCertificate_, value); } public string Hash { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Hash]?.Value; + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Hash]; set => this.Set((int)MsiDigitalSignatureTupleFields.Hash, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs index 7f1b7a2a..72d92c3e 100644 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string MsiEmbeddedChainer { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer]?.Value; + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer]; set => this.Set((int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer, value); } public string Condition { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Condition]; set => this.Set((int)MsiEmbeddedChainerTupleFields.Condition, value); } public string CommandLine { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.CommandLine]?.Value; + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.CommandLine]; set => this.Set((int)MsiEmbeddedChainerTupleFields.CommandLine, value); } public string Source { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Source]?.Value; + get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Source]; set => this.Set((int)MsiEmbeddedChainerTupleFields.Source, value); } public int Type { - get => (int)this.Fields[(int)MsiEmbeddedChainerTupleFields.Type]?.Value; + get => (int)this.Fields[(int)MsiEmbeddedChainerTupleFields.Type]; set => this.Set((int)MsiEmbeddedChainerTupleFields.Type, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs index b58f2c1a..83cfcc43 100644 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs @@ -45,7 +45,7 @@ namespace WixToolset.Data.Tuples public string FileName { - get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.FileName]?.Value; + get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.FileName]; set => this.Set((int)MsiEmbeddedUITupleFields.FileName, value); } @@ -63,13 +63,13 @@ namespace WixToolset.Data.Tuples public int MessageFilter { - get => (int)this.Fields[(int)MsiEmbeddedUITupleFields.MessageFilter]?.Value; + get => (int)this.Fields[(int)MsiEmbeddedUITupleFields.MessageFilter]; set => this.Set((int)MsiEmbeddedUITupleFields.MessageFilter, value); } public string Source { - get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.Source]?.Value; + get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.Source]; set => this.Set((int)MsiEmbeddedUITupleFields.Source, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs index 2850bc22..bb6ec1ae 100644 --- a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)MsiFileHashTupleFields.File_]?.Value; + get => (string)this.Fields[(int)MsiFileHashTupleFields.File_]; set => this.Set((int)MsiFileHashTupleFields.File_, value); } public int Options { - get => (int)this.Fields[(int)MsiFileHashTupleFields.Options]?.Value; + get => (int)this.Fields[(int)MsiFileHashTupleFields.Options]; set => this.Set((int)MsiFileHashTupleFields.Options, value); } public int HashPart1 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart1]?.Value; + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart1]; set => this.Set((int)MsiFileHashTupleFields.HashPart1, value); } public int HashPart2 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart2]?.Value; + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart2]; set => this.Set((int)MsiFileHashTupleFields.HashPart2, value); } public int HashPart3 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart3]?.Value; + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart3]; set => this.Set((int)MsiFileHashTupleFields.HashPart3, value); } public int HashPart4 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart4]?.Value; + get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart4]; set => this.Set((int)MsiFileHashTupleFields.HashPart4, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs index 14fc62a3..5b648c05 100644 --- a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string MsiLockPermissionsEx { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx]?.Value; + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx]; set => this.Set((int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx, value); } public string LockObject { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.LockObject]?.Value; + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.LockObject]; set => this.Set((int)MsiLockPermissionsExTupleFields.LockObject, value); } public string Table { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Table]?.Value; + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Table]; set => this.Set((int)MsiLockPermissionsExTupleFields.Table, value); } public string SDDLText { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.SDDLText]?.Value; + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.SDDLText]; set => this.Set((int)MsiLockPermissionsExTupleFields.SDDLText, value); } public string Condition { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Condition]; set => this.Set((int)MsiLockPermissionsExTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs index 6eeb141c..d758abb9 100644 --- a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string PackageCertificate { - get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.PackageCertificate]?.Value; + get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.PackageCertificate]; set => this.Set((int)MsiPackageCertificateTupleFields.PackageCertificate, value); } public string DigitalCertificate_ { - get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.DigitalCertificate_]?.Value; + get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.DigitalCertificate_]; set => this.Set((int)MsiPackageCertificateTupleFields.DigitalCertificate_, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs index 1b02dca9..511456dd 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string PatchCertificate { - get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.PatchCertificate]?.Value; + get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.PatchCertificate]; set => this.Set((int)MsiPatchCertificateTupleFields.PatchCertificate, value); } public string DigitalCertificate_ { - get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.DigitalCertificate_]?.Value; + get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.DigitalCertificate_]; set => this.Set((int)MsiPatchCertificateTupleFields.DigitalCertificate_, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs index 6d99a9ae..3f7a8de2 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string StreamRef { - get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.StreamRef]?.Value; + get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.StreamRef]; set => this.Set((int)MsiPatchHeadersTupleFields.StreamRef, value); } public string Header { - get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.Header]?.Value; + get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.Header]; set => this.Set((int)MsiPatchHeadersTupleFields.Header, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs index f6a6fd7d..91bdb6fd 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Company { - get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Company]?.Value; + get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Company]; set => this.Set((int)MsiPatchMetadataTupleFields.Company, value); } public string Property { - get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Property]?.Value; + get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Property]; set => this.Set((int)MsiPatchMetadataTupleFields.Property, value); } public string Value { - get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Value]?.Value; + get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Value]; set => this.Set((int)MsiPatchMetadataTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs index f23ace77..ff874271 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.File_]?.Value; + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.File_]; set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.File_, value); } public string Assembly_ { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.Assembly_]?.Value; + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.Assembly_]; set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.Assembly_, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs index 77385f5f..9e2b72e5 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Assembly { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Assembly]?.Value; + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Assembly]; set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Assembly, value); } public string Name { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Name]?.Value; + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Name]; set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Name, value); } public string Value { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Value]?.Value; + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Value]; set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs index c48be28f..1d5a5d90 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string PatchFamily { - get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.PatchFamily]?.Value; + get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.PatchFamily]; set => this.Set((int)MsiPatchSequenceTupleFields.PatchFamily, value); } public string ProductCode { - get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.ProductCode]?.Value; + get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.ProductCode]; set => this.Set((int)MsiPatchSequenceTupleFields.ProductCode, value); } public string Sequence { - get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.Sequence]?.Value; + get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.Sequence]; set => this.Set((int)MsiPatchSequenceTupleFields.Sequence, value); } public int Attributes { - get => (int)this.Fields[(int)MsiPatchSequenceTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)MsiPatchSequenceTupleFields.Attributes]; set => this.Set((int)MsiPatchSequenceTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs index bcf32cb6..85484381 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs @@ -55,7 +55,7 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Name]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Name]; set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Name, value); } @@ -85,31 +85,31 @@ namespace WixToolset.Data.Tuples public string RebootMessage { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.RebootMessage]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.RebootMessage]; set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.RebootMessage, value); } public string Command { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Command]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Command]; set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Command, value); } public string Actions { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Actions]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Actions]; set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Actions, value); } public string DelayActions { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.DelayActions]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.DelayActions]; set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.DelayActions, value); } public string Component_ { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Component_]; set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs index c0e8e459..b0a58d9f 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs @@ -59,7 +59,7 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Name]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Name]; set => this.Set((int)MsiServiceConfigTupleFields.Name, value); } @@ -89,13 +89,13 @@ namespace WixToolset.Data.Tuples public string Argument { - get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Argument]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Argument]; set => this.Set((int)MsiServiceConfigTupleFields.Argument, value); } public string Component_ { - get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Component_]; set => this.Set((int)MsiServiceConfigTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs index 9ee6b2f2..26ddbf4f 100644 --- a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string MsiShortcutProperty { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.MsiShortcutProperty]?.Value; + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.MsiShortcutProperty]; set => this.Set((int)MsiShortcutPropertyTupleFields.MsiShortcutProperty, value); } public string Shortcut_ { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.Shortcut_]?.Value; + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.Shortcut_]; set => this.Set((int)MsiShortcutPropertyTupleFields.Shortcut_, value); } public string PropertyKey { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropertyKey]?.Value; + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropertyKey]; set => this.Set((int)MsiShortcutPropertyTupleFields.PropertyKey, value); } public string PropVariantValue { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropVariantValue]?.Value; + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropVariantValue]; set => this.Set((int)MsiShortcutPropertyTupleFields.PropVariantValue, value); } } diff --git a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs index de4f88cd..293d5a62 100644 --- a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Driver_ { - get => (string)this.Fields[(int)ODBCAttributeTupleFields.Driver_]?.Value; + get => (string)this.Fields[(int)ODBCAttributeTupleFields.Driver_]; set => this.Set((int)ODBCAttributeTupleFields.Driver_, value); } public string Attribute { - get => (string)this.Fields[(int)ODBCAttributeTupleFields.Attribute]?.Value; + get => (string)this.Fields[(int)ODBCAttributeTupleFields.Attribute]; set => this.Set((int)ODBCAttributeTupleFields.Attribute, value); } public string Value { - get => (string)this.Fields[(int)ODBCAttributeTupleFields.Value]?.Value; + get => (string)this.Fields[(int)ODBCAttributeTupleFields.Value]; set => this.Set((int)ODBCAttributeTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs index c06b2da0..ebf35895 100644 --- a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string DataSource { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DataSource]?.Value; + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DataSource]; set => this.Set((int)ODBCDataSourceTupleFields.DataSource, value); } public string Component_ { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Component_]; set => this.Set((int)ODBCDataSourceTupleFields.Component_, value); } public string Description { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Description]; set => this.Set((int)ODBCDataSourceTupleFields.Description, value); } public string DriverDescription { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DriverDescription]?.Value; + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DriverDescription]; set => this.Set((int)ODBCDataSourceTupleFields.DriverDescription, value); } public int Registration { - get => (int)this.Fields[(int)ODBCDataSourceTupleFields.Registration]?.Value; + get => (int)this.Fields[(int)ODBCDataSourceTupleFields.Registration]; set => this.Set((int)ODBCDataSourceTupleFields.Registration, value); } } diff --git a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs index ab40ee88..a35d62f4 100644 --- a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Driver { - get => (string)this.Fields[(int)ODBCDriverTupleFields.Driver]?.Value; + get => (string)this.Fields[(int)ODBCDriverTupleFields.Driver]; set => this.Set((int)ODBCDriverTupleFields.Driver, value); } public string Component_ { - get => (string)this.Fields[(int)ODBCDriverTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ODBCDriverTupleFields.Component_]; set => this.Set((int)ODBCDriverTupleFields.Component_, value); } public string Description { - get => (string)this.Fields[(int)ODBCDriverTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ODBCDriverTupleFields.Description]; set => this.Set((int)ODBCDriverTupleFields.Description, value); } public string File_ { - get => (string)this.Fields[(int)ODBCDriverTupleFields.File_]?.Value; + get => (string)this.Fields[(int)ODBCDriverTupleFields.File_]; set => this.Set((int)ODBCDriverTupleFields.File_, value); } public string File_Setup { - get => (string)this.Fields[(int)ODBCDriverTupleFields.File_Setup]?.Value; + get => (string)this.Fields[(int)ODBCDriverTupleFields.File_Setup]; set => this.Set((int)ODBCDriverTupleFields.File_Setup, value); } } diff --git a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs index 541eb532..a69188a2 100644 --- a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string DataSource_ { - get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.DataSource_]?.Value; + get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.DataSource_]; set => this.Set((int)ODBCSourceAttributeTupleFields.DataSource_, value); } public string Attribute { - get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Attribute]?.Value; + get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Attribute]; set => this.Set((int)ODBCSourceAttributeTupleFields.Attribute, value); } public string Value { - get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Value]?.Value; + get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Value]; set => this.Set((int)ODBCSourceAttributeTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs index ab1abbdc..678bac57 100644 --- a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Translator { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Translator]?.Value; + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Translator]; set => this.Set((int)ODBCTranslatorTupleFields.Translator, value); } public string Component_ { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Component_]; set => this.Set((int)ODBCTranslatorTupleFields.Component_, value); } public string Description { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Description]; set => this.Set((int)ODBCTranslatorTupleFields.Description, value); } public string File_ { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_]?.Value; + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_]; set => this.Set((int)ODBCTranslatorTupleFields.File_, value); } public string File_Setup { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_Setup]?.Value; + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_Setup]; set => this.Set((int)ODBCTranslatorTupleFields.File_Setup, value); } } diff --git a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs index d596e58e..df6962b3 100644 --- a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string Company { - get => (string)this.Fields[(int)PatchMetadataTupleFields.Company]?.Value; + get => (string)this.Fields[(int)PatchMetadataTupleFields.Company]; set => this.Set((int)PatchMetadataTupleFields.Company, value); } public string Property { - get => (string)this.Fields[(int)PatchMetadataTupleFields.Property]?.Value; + get => (string)this.Fields[(int)PatchMetadataTupleFields.Property]; set => this.Set((int)PatchMetadataTupleFields.Property, value); } public string Value { - get => (string)this.Fields[(int)PatchMetadataTupleFields.Value]?.Value; + get => (string)this.Fields[(int)PatchMetadataTupleFields.Value]; set => this.Set((int)PatchMetadataTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs index 276d00a2..36898c45 100644 --- a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string PatchId { - get => (string)this.Fields[(int)PatchPackageTupleFields.PatchId]?.Value; + get => (string)this.Fields[(int)PatchPackageTupleFields.PatchId]; set => this.Set((int)PatchPackageTupleFields.PatchId, value); } public int Media_ { - get => (int)this.Fields[(int)PatchPackageTupleFields.Media_]?.Value; + get => (int)this.Fields[(int)PatchPackageTupleFields.Media_]; set => this.Set((int)PatchPackageTupleFields.Media_, value); } } diff --git a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs index 624054c1..857e8d6e 100644 --- a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string PatchFamily { - get => (string)this.Fields[(int)PatchSequenceTupleFields.PatchFamily]?.Value; + get => (string)this.Fields[(int)PatchSequenceTupleFields.PatchFamily]; set => this.Set((int)PatchSequenceTupleFields.PatchFamily, value); } public string Target { - get => (string)this.Fields[(int)PatchSequenceTupleFields.Target]?.Value; + get => (string)this.Fields[(int)PatchSequenceTupleFields.Target]; set => this.Set((int)PatchSequenceTupleFields.Target, value); } public string Sequence { - get => (string)this.Fields[(int)PatchSequenceTupleFields.Sequence]?.Value; + get => (string)this.Fields[(int)PatchSequenceTupleFields.Sequence]; set => this.Set((int)PatchSequenceTupleFields.Sequence, value); } public int Supersede { - get => (int)this.Fields[(int)PatchSequenceTupleFields.Supersede]?.Value; + get => (int)this.Fields[(int)PatchSequenceTupleFields.Supersede]; set => this.Set((int)PatchSequenceTupleFields.Supersede, value); } } diff --git a/src/WixToolset.Data/Tuples/PatchTuple.cs b/src/WixToolset.Data/Tuples/PatchTuple.cs index 268307c7..ca313410 100644 --- a/src/WixToolset.Data/Tuples/PatchTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)PatchTupleFields.File_]?.Value; + get => (string)this.Fields[(int)PatchTupleFields.File_]; set => this.Set((int)PatchTupleFields.File_, value); } public int Sequence { - get => (int)this.Fields[(int)PatchTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)PatchTupleFields.Sequence]; set => this.Set((int)PatchTupleFields.Sequence, value); } public int PatchSize { - get => (int)this.Fields[(int)PatchTupleFields.PatchSize]?.Value; + get => (int)this.Fields[(int)PatchTupleFields.PatchSize]; set => this.Set((int)PatchTupleFields.PatchSize, value); } public int Attributes { - get => (int)this.Fields[(int)PatchTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)PatchTupleFields.Attributes]; set => this.Set((int)PatchTupleFields.Attributes, value); } public string Header { - get => (string)this.Fields[(int)PatchTupleFields.Header]?.Value; + get => (string)this.Fields[(int)PatchTupleFields.Header]; set => this.Set((int)PatchTupleFields.Header, value); } public string StreamRef_ { - get => (string)this.Fields[(int)PatchTupleFields.StreamRef_]?.Value; + get => (string)this.Fields[(int)PatchTupleFields.StreamRef_]; set => this.Set((int)PatchTupleFields.StreamRef_, value); } } diff --git a/src/WixToolset.Data/Tuples/ProgIdTuple.cs b/src/WixToolset.Data/Tuples/ProgIdTuple.cs index a1713392..9275e6aa 100644 --- a/src/WixToolset.Data/Tuples/ProgIdTuple.cs +++ b/src/WixToolset.Data/Tuples/ProgIdTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string ProgId { - get => (string)this.Fields[(int)ProgIdTupleFields.ProgId]?.Value; + get => (string)this.Fields[(int)ProgIdTupleFields.ProgId]; set => this.Set((int)ProgIdTupleFields.ProgId, value); } public string ProgId_Parent { - get => (string)this.Fields[(int)ProgIdTupleFields.ProgId_Parent]?.Value; + get => (string)this.Fields[(int)ProgIdTupleFields.ProgId_Parent]; set => this.Set((int)ProgIdTupleFields.ProgId_Parent, value); } public string Class_ { - get => (string)this.Fields[(int)ProgIdTupleFields.Class_]?.Value; + get => (string)this.Fields[(int)ProgIdTupleFields.Class_]; set => this.Set((int)ProgIdTupleFields.Class_, value); } public string Description { - get => (string)this.Fields[(int)ProgIdTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ProgIdTupleFields.Description]; set => this.Set((int)ProgIdTupleFields.Description, value); } public string Icon_ { - get => (string)this.Fields[(int)ProgIdTupleFields.Icon_]?.Value; + get => (string)this.Fields[(int)ProgIdTupleFields.Icon_]; set => this.Set((int)ProgIdTupleFields.Icon_, value); } public int IconIndex { - get => (int)this.Fields[(int)ProgIdTupleFields.IconIndex]?.Value; + get => (int)this.Fields[(int)ProgIdTupleFields.IconIndex]; set => this.Set((int)ProgIdTupleFields.IconIndex, value); } } diff --git a/src/WixToolset.Data/Tuples/PropertiesTuple.cs b/src/WixToolset.Data/Tuples/PropertiesTuple.cs index 6aafaa51..aaccaa81 100644 --- a/src/WixToolset.Data/Tuples/PropertiesTuple.cs +++ b/src/WixToolset.Data/Tuples/PropertiesTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)PropertiesTupleFields.Name]?.Value; + get => (string)this.Fields[(int)PropertiesTupleFields.Name]; set => this.Set((int)PropertiesTupleFields.Name, value); } public string Value { - get => (string)this.Fields[(int)PropertiesTupleFields.Value]?.Value; + get => (string)this.Fields[(int)PropertiesTupleFields.Value]; set => this.Set((int)PropertiesTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs index d17da1bb..b3cd766e 100644 --- a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string ComponentId { - get => (string)this.Fields[(int)PublishComponentTupleFields.ComponentId]?.Value; + get => (string)this.Fields[(int)PublishComponentTupleFields.ComponentId]; set => this.Set((int)PublishComponentTupleFields.ComponentId, value); } public string Qualifier { - get => (string)this.Fields[(int)PublishComponentTupleFields.Qualifier]?.Value; + get => (string)this.Fields[(int)PublishComponentTupleFields.Qualifier]; set => this.Set((int)PublishComponentTupleFields.Qualifier, value); } public string Component_ { - get => (string)this.Fields[(int)PublishComponentTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)PublishComponentTupleFields.Component_]; set => this.Set((int)PublishComponentTupleFields.Component_, value); } public string AppData { - get => (string)this.Fields[(int)PublishComponentTupleFields.AppData]?.Value; + get => (string)this.Fields[(int)PublishComponentTupleFields.AppData]; set => this.Set((int)PublishComponentTupleFields.AppData, value); } public string Feature_ { - get => (string)this.Fields[(int)PublishComponentTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)PublishComponentTupleFields.Feature_]; set => this.Set((int)PublishComponentTupleFields.Feature_, value); } } diff --git a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs index 420577dc..2fea402a 100644 --- a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs +++ b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs @@ -53,55 +53,55 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)RadioButtonTupleFields.Property]?.Value; + get => (string)this.Fields[(int)RadioButtonTupleFields.Property]; set => this.Set((int)RadioButtonTupleFields.Property, value); } public int Order { - get => (int)this.Fields[(int)RadioButtonTupleFields.Order]?.Value; + get => (int)this.Fields[(int)RadioButtonTupleFields.Order]; set => this.Set((int)RadioButtonTupleFields.Order, value); } public string Value { - get => (string)this.Fields[(int)RadioButtonTupleFields.Value]?.Value; + get => (string)this.Fields[(int)RadioButtonTupleFields.Value]; set => this.Set((int)RadioButtonTupleFields.Value, value); } public int X { - get => (int)this.Fields[(int)RadioButtonTupleFields.X]?.Value; + get => (int)this.Fields[(int)RadioButtonTupleFields.X]; set => this.Set((int)RadioButtonTupleFields.X, value); } public int Y { - get => (int)this.Fields[(int)RadioButtonTupleFields.Y]?.Value; + get => (int)this.Fields[(int)RadioButtonTupleFields.Y]; set => this.Set((int)RadioButtonTupleFields.Y, value); } public int Width { - get => (int)this.Fields[(int)RadioButtonTupleFields.Width]?.Value; + get => (int)this.Fields[(int)RadioButtonTupleFields.Width]; set => this.Set((int)RadioButtonTupleFields.Width, value); } public int Height { - get => (int)this.Fields[(int)RadioButtonTupleFields.Height]?.Value; + get => (int)this.Fields[(int)RadioButtonTupleFields.Height]; set => this.Set((int)RadioButtonTupleFields.Height, value); } public string Text { - get => (string)this.Fields[(int)RadioButtonTupleFields.Text]?.Value; + get => (string)this.Fields[(int)RadioButtonTupleFields.Text]; set => this.Set((int)RadioButtonTupleFields.Text, value); } public string Help { - get => (string)this.Fields[(int)RadioButtonTupleFields.Help]?.Value; + get => (string)this.Fields[(int)RadioButtonTupleFields.Help]; set => this.Set((int)RadioButtonTupleFields.Help, value); } } diff --git a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs index b098e687..f8edad95 100644 --- a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Signature_ { - get => (string)this.Fields[(int)RegLocatorTupleFields.Signature_]?.Value; + get => (string)this.Fields[(int)RegLocatorTupleFields.Signature_]; set => this.Set((int)RegLocatorTupleFields.Signature_, value); } public int Root { - get => (int)this.Fields[(int)RegLocatorTupleFields.Root]?.Value; + get => (int)this.Fields[(int)RegLocatorTupleFields.Root]; set => this.Set((int)RegLocatorTupleFields.Root, value); } public string Key { - get => (string)this.Fields[(int)RegLocatorTupleFields.Key]?.Value; + get => (string)this.Fields[(int)RegLocatorTupleFields.Key]; set => this.Set((int)RegLocatorTupleFields.Key, value); } public string Name { - get => (string)this.Fields[(int)RegLocatorTupleFields.Name]?.Value; + get => (string)this.Fields[(int)RegLocatorTupleFields.Name]; set => this.Set((int)RegLocatorTupleFields.Name, value); } public int Type { - get => (int)this.Fields[(int)RegLocatorTupleFields.Type]?.Value; + get => (int)this.Fields[(int)RegLocatorTupleFields.Type]; set => this.Set((int)RegLocatorTupleFields.Type, value); } } diff --git a/src/WixToolset.Data/Tuples/RegistryTuple.cs b/src/WixToolset.Data/Tuples/RegistryTuple.cs index d76de213..adb00f49 100644 --- a/src/WixToolset.Data/Tuples/RegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RegistryTuple.cs @@ -71,13 +71,13 @@ namespace WixToolset.Data.Tuples public string Key { - get => (string)this.Fields[(int)RegistryTupleFields.Key]?.Value; + get => (string)this.Fields[(int)RegistryTupleFields.Key]; set => this.Set((int)RegistryTupleFields.Key, value); } public string Name { - get => (string)this.Fields[(int)RegistryTupleFields.Name]?.Value; + get => (string)this.Fields[(int)RegistryTupleFields.Name]; set => this.Set((int)RegistryTupleFields.Name, value); } @@ -101,7 +101,7 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)RegistryTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)RegistryTupleFields.Component_]; set => this.Set((int)RegistryTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs index 1860172f..1f370ae9 100644 --- a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string FileKey { - get => (string)this.Fields[(int)RemoveFileTupleFields.FileKey]?.Value; + get => (string)this.Fields[(int)RemoveFileTupleFields.FileKey]; set => this.Set((int)RemoveFileTupleFields.FileKey, value); } public string Component_ { - get => (string)this.Fields[(int)RemoveFileTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)RemoveFileTupleFields.Component_]; set => this.Set((int)RemoveFileTupleFields.Component_, value); } public string FileName { - get => (string)this.Fields[(int)RemoveFileTupleFields.FileName]?.Value; + get => (string)this.Fields[(int)RemoveFileTupleFields.FileName]; set => this.Set((int)RemoveFileTupleFields.FileName, value); } public string DirProperty { - get => (string)this.Fields[(int)RemoveFileTupleFields.DirProperty]?.Value; + get => (string)this.Fields[(int)RemoveFileTupleFields.DirProperty]; set => this.Set((int)RemoveFileTupleFields.DirProperty, value); } public int InstallMode { - get => (int)this.Fields[(int)RemoveFileTupleFields.InstallMode]?.Value; + get => (int)this.Fields[(int)RemoveFileTupleFields.InstallMode]; set => this.Set((int)RemoveFileTupleFields.InstallMode, value); } } diff --git a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs index e2e79560..69990a31 100644 --- a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs @@ -51,49 +51,49 @@ namespace WixToolset.Data.Tuples public string RemoveIniFile { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.RemoveIniFile]?.Value; + get => (string)this.Fields[(int)RemoveIniFileTupleFields.RemoveIniFile]; set => this.Set((int)RemoveIniFileTupleFields.RemoveIniFile, value); } public string FileName { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.FileName]?.Value; + get => (string)this.Fields[(int)RemoveIniFileTupleFields.FileName]; set => this.Set((int)RemoveIniFileTupleFields.FileName, value); } public string DirProperty { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.DirProperty]?.Value; + get => (string)this.Fields[(int)RemoveIniFileTupleFields.DirProperty]; set => this.Set((int)RemoveIniFileTupleFields.DirProperty, value); } public string Section { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Section]?.Value; + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Section]; set => this.Set((int)RemoveIniFileTupleFields.Section, value); } public string Key { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Key]?.Value; + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Key]; set => this.Set((int)RemoveIniFileTupleFields.Key, value); } public string Value { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Value]?.Value; + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Value]; set => this.Set((int)RemoveIniFileTupleFields.Value, value); } public int Action { - get => (int)this.Fields[(int)RemoveIniFileTupleFields.Action]?.Value; + get => (int)this.Fields[(int)RemoveIniFileTupleFields.Action]; set => this.Set((int)RemoveIniFileTupleFields.Action, value); } public string Component_ { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)RemoveIniFileTupleFields.Component_]; set => this.Set((int)RemoveIniFileTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs index e3552d10..de13cdb0 100644 --- a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs @@ -57,13 +57,13 @@ namespace WixToolset.Data.Tuples public string Key { - get => (string)this.Fields[(int)RemoveRegistryTupleFields.Key]?.Value; + get => (string)this.Fields[(int)RemoveRegistryTupleFields.Key]; set => this.Set((int)RemoveRegistryTupleFields.Key, value); } public string Name { - get => (string)this.Fields[(int)RemoveRegistryTupleFields.Name]?.Value; + get => (string)this.Fields[(int)RemoveRegistryTupleFields.Name]; set => this.Set((int)RemoveRegistryTupleFields.Name, value); } @@ -75,7 +75,7 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)RemoveRegistryTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)RemoveRegistryTupleFields.Component_]; set => this.Set((int)RemoveRegistryTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs index 769ac4b2..8804cf3c 100644 --- a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs +++ b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string ReserveKey { - get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveKey]?.Value; + get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveKey]; set => this.Set((int)ReserveCostTupleFields.ReserveKey, value); } public string Component_ { - get => (string)this.Fields[(int)ReserveCostTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ReserveCostTupleFields.Component_]; set => this.Set((int)ReserveCostTupleFields.Component_, value); } public string ReserveFolder { - get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveFolder]?.Value; + get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveFolder]; set => this.Set((int)ReserveCostTupleFields.ReserveFolder, value); } public int ReserveLocal { - get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveLocal]?.Value; + get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveLocal]; set => this.Set((int)ReserveCostTupleFields.ReserveLocal, value); } public int ReserveSource { - get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveSource]?.Value; + get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveSource]; set => this.Set((int)ReserveCostTupleFields.ReserveSource, value); } } diff --git a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs index 5db5f984..e80b5cf5 100644 --- a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string SFPCatalog { - get => (string)this.Fields[(int)SFPCatalogTupleFields.SFPCatalog]?.Value; + get => (string)this.Fields[(int)SFPCatalogTupleFields.SFPCatalog]; set => this.Set((int)SFPCatalogTupleFields.SFPCatalog, value); } public string Catalog { - get => (string)this.Fields[(int)SFPCatalogTupleFields.Catalog]?.Value; + get => (string)this.Fields[(int)SFPCatalogTupleFields.Catalog]; set => this.Set((int)SFPCatalogTupleFields.Catalog, value); } public string Dependency { - get => (string)this.Fields[(int)SFPCatalogTupleFields.Dependency]?.Value; + get => (string)this.Fields[(int)SFPCatalogTupleFields.Dependency]; set => this.Set((int)SFPCatalogTupleFields.Dependency, value); } } diff --git a/src/WixToolset.Data/Tuples/SelfRegTuple.cs b/src/WixToolset.Data/Tuples/SelfRegTuple.cs index b32127f3..0ea1eeac 100644 --- a/src/WixToolset.Data/Tuples/SelfRegTuple.cs +++ b/src/WixToolset.Data/Tuples/SelfRegTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)SelfRegTupleFields.File_]?.Value; + get => (string)this.Fields[(int)SelfRegTupleFields.File_]; set => this.Set((int)SelfRegTupleFields.File_, value); } public int Cost { - get => (int)this.Fields[(int)SelfRegTupleFields.Cost]?.Value; + get => (int)this.Fields[(int)SelfRegTupleFields.Cost]; set => this.Set((int)SelfRegTupleFields.Cost, value); } } diff --git a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs index 844ee864..6d57120a 100644 --- a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs @@ -57,13 +57,13 @@ namespace WixToolset.Data.Tuples public string ServiceControl { - get => (string)this.Fields[(int)ServiceControlTupleFields.ServiceControl]?.Value; + get => (string)this.Fields[(int)ServiceControlTupleFields.ServiceControl]; set => this.Set((int)ServiceControlTupleFields.ServiceControl, value); } public string Name { - get => (string)this.Fields[(int)ServiceControlTupleFields.Name]?.Value; + get => (string)this.Fields[(int)ServiceControlTupleFields.Name]; set => this.Set((int)ServiceControlTupleFields.Name, value); } @@ -105,7 +105,7 @@ namespace WixToolset.Data.Tuples public string Arguments { - get => (string)this.Fields[(int)ServiceControlTupleFields.Arguments]?.Value; + get => (string)this.Fields[(int)ServiceControlTupleFields.Arguments]; set => this.Set((int)ServiceControlTupleFields.Arguments, value); } @@ -117,7 +117,7 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)ServiceControlTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ServiceControlTupleFields.Component_]; set => this.Set((int)ServiceControlTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs index 987dccd7..a055e46e 100644 --- a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs @@ -88,13 +88,13 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Name]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.Name]; set => this.Set((int)ServiceInstallTupleFields.Name, value); } public string DisplayName { - get => (string)this.Fields[(int)ServiceInstallTupleFields.DisplayName]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.DisplayName]; set => this.Set((int)ServiceInstallTupleFields.DisplayName, value); } @@ -118,43 +118,43 @@ namespace WixToolset.Data.Tuples public string LoadOrderGroup { - get => (string)this.Fields[(int)ServiceInstallTupleFields.LoadOrderGroup]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.LoadOrderGroup]; set => this.Set((int)ServiceInstallTupleFields.LoadOrderGroup, value); } public string Dependencies { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Dependencies]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.Dependencies]; set => this.Set((int)ServiceInstallTupleFields.Dependencies, value); } public string StartName { - get => (string)this.Fields[(int)ServiceInstallTupleFields.StartName]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.StartName]; set => this.Set((int)ServiceInstallTupleFields.StartName, value); } public string Password { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Password]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.Password]; set => this.Set((int)ServiceInstallTupleFields.Password, value); } public string Arguments { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Arguments]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.Arguments]; set => this.Set((int)ServiceInstallTupleFields.Arguments, value); } public string Component_ { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.Component_]; set => this.Set((int)ServiceInstallTupleFields.Component_, value); } public string Description { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ServiceInstallTupleFields.Description]; set => this.Set((int)ServiceInstallTupleFields.Description, value); } diff --git a/src/WixToolset.Data/Tuples/ShortcutTuple.cs b/src/WixToolset.Data/Tuples/ShortcutTuple.cs index b7f13416..b58bfd8e 100644 --- a/src/WixToolset.Data/Tuples/ShortcutTuple.cs +++ b/src/WixToolset.Data/Tuples/ShortcutTuple.cs @@ -72,37 +72,37 @@ namespace WixToolset.Data.Tuples public string Directory_ { - get => (string)this.Fields[(int)ShortcutTupleFields.Directory_]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.Directory_]; set => this.Set((int)ShortcutTupleFields.Directory_, value); } public string Name { - get => (string)this.Fields[(int)ShortcutTupleFields.Name]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.Name]; set => this.Set((int)ShortcutTupleFields.Name, value); } public string Component_ { - get => (string)this.Fields[(int)ShortcutTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.Component_]; set => this.Set((int)ShortcutTupleFields.Component_, value); } public string Target { - get => (string)this.Fields[(int)ShortcutTupleFields.Target]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.Target]; set => this.Set((int)ShortcutTupleFields.Target, value); } public string Arguments { - get => (string)this.Fields[(int)ShortcutTupleFields.Arguments]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.Arguments]; set => this.Set((int)ShortcutTupleFields.Arguments, value); } public string Description { - get => (string)this.Fields[(int)ShortcutTupleFields.Description]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.Description]; set => this.Set((int)ShortcutTupleFields.Description, value); } @@ -114,7 +114,7 @@ namespace WixToolset.Data.Tuples public string Icon_ { - get => (string)this.Fields[(int)ShortcutTupleFields.Icon_]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.Icon_]; set => this.Set((int)ShortcutTupleFields.Icon_, value); } @@ -132,13 +132,13 @@ namespace WixToolset.Data.Tuples public string WorkingDirectory { - get => (string)this.Fields[(int)ShortcutTupleFields.WkDir]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.WkDir]; set => this.Set((int)ShortcutTupleFields.WkDir, value); } public string DisplayResourceDll { - get => (string)this.Fields[(int)ShortcutTupleFields.DisplayResourceDLL]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.DisplayResourceDLL]; set => this.Set((int)ShortcutTupleFields.DisplayResourceDLL, value); } @@ -150,7 +150,7 @@ namespace WixToolset.Data.Tuples public string DescriptionResourceDll { - get => (string)this.Fields[(int)ShortcutTupleFields.DescriptionResourceDLL]?.Value; + get => (string)this.Fields[(int)ShortcutTupleFields.DescriptionResourceDLL]; set => this.Set((int)ShortcutTupleFields.DescriptionResourceDLL, value); } diff --git a/src/WixToolset.Data/Tuples/SignatureTuple.cs b/src/WixToolset.Data/Tuples/SignatureTuple.cs index b8dbf308..59c40d99 100644 --- a/src/WixToolset.Data/Tuples/SignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/SignatureTuple.cs @@ -53,55 +53,55 @@ namespace WixToolset.Data.Tuples public string Signature { - get => (string)this.Fields[(int)SignatureTupleFields.Signature]?.Value; + get => (string)this.Fields[(int)SignatureTupleFields.Signature]; set => this.Set((int)SignatureTupleFields.Signature, value); } public string FileName { - get => (string)this.Fields[(int)SignatureTupleFields.FileName]?.Value; + get => (string)this.Fields[(int)SignatureTupleFields.FileName]; set => this.Set((int)SignatureTupleFields.FileName, value); } public string MinVersion { - get => (string)this.Fields[(int)SignatureTupleFields.MinVersion]?.Value; + get => (string)this.Fields[(int)SignatureTupleFields.MinVersion]; set => this.Set((int)SignatureTupleFields.MinVersion, value); } public string MaxVersion { - get => (string)this.Fields[(int)SignatureTupleFields.MaxVersion]?.Value; + get => (string)this.Fields[(int)SignatureTupleFields.MaxVersion]; set => this.Set((int)SignatureTupleFields.MaxVersion, value); } public int MinSize { - get => (int)this.Fields[(int)SignatureTupleFields.MinSize]?.Value; + get => (int)this.Fields[(int)SignatureTupleFields.MinSize]; set => this.Set((int)SignatureTupleFields.MinSize, value); } public int MaxSize { - get => (int)this.Fields[(int)SignatureTupleFields.MaxSize]?.Value; + get => (int)this.Fields[(int)SignatureTupleFields.MaxSize]; set => this.Set((int)SignatureTupleFields.MaxSize, value); } public int MinDate { - get => (int)this.Fields[(int)SignatureTupleFields.MinDate]?.Value; + get => (int)this.Fields[(int)SignatureTupleFields.MinDate]; set => this.Set((int)SignatureTupleFields.MinDate, value); } public int MaxDate { - get => (int)this.Fields[(int)SignatureTupleFields.MaxDate]?.Value; + get => (int)this.Fields[(int)SignatureTupleFields.MaxDate]; set => this.Set((int)SignatureTupleFields.MaxDate, value); } public string Languages { - get => (string)this.Fields[(int)SignatureTupleFields.Languages]?.Value; + get => (string)this.Fields[(int)SignatureTupleFields.Languages]; set => this.Set((int)SignatureTupleFields.Languages, value); } } diff --git a/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs index 449c4afe..d8fd5b85 100644 --- a/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs +++ b/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string Target { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.Target]?.Value; + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.Target]; set => this.Set((int)TargetFiles_OptionalDataTupleFields.Target, value); } public string FTK { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.FTK]?.Value; + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.FTK]; set => this.Set((int)TargetFiles_OptionalDataTupleFields.FTK, value); } public string SymbolPaths { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.SymbolPaths]?.Value; + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.SymbolPaths]; set => this.Set((int)TargetFiles_OptionalDataTupleFields.SymbolPaths, value); } public string IgnoreOffsets { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets]?.Value; + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets]; set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets, value); } public string IgnoreLengths { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreLengths]?.Value; + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreLengths]; set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreLengths, value); } public string RetainOffsets { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.RetainOffsets]?.Value; + get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.RetainOffsets]; set => this.Set((int)TargetFiles_OptionalDataTupleFields.RetainOffsets, value); } } diff --git a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs index 0cb74ec9..0dc1d4de 100644 --- a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs +++ b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs @@ -49,43 +49,43 @@ namespace WixToolset.Data.Tuples public string Target { - get => (string)this.Fields[(int)TargetImagesTupleFields.Target]?.Value; + get => (string)this.Fields[(int)TargetImagesTupleFields.Target]; set => this.Set((int)TargetImagesTupleFields.Target, value); } public string MsiPath { - get => (string)this.Fields[(int)TargetImagesTupleFields.MsiPath]?.Value; + get => (string)this.Fields[(int)TargetImagesTupleFields.MsiPath]; set => this.Set((int)TargetImagesTupleFields.MsiPath, value); } public string SymbolPaths { - get => (string)this.Fields[(int)TargetImagesTupleFields.SymbolPaths]?.Value; + get => (string)this.Fields[(int)TargetImagesTupleFields.SymbolPaths]; set => this.Set((int)TargetImagesTupleFields.SymbolPaths, value); } public string Upgraded { - get => (string)this.Fields[(int)TargetImagesTupleFields.Upgraded]?.Value; + get => (string)this.Fields[(int)TargetImagesTupleFields.Upgraded]; set => this.Set((int)TargetImagesTupleFields.Upgraded, value); } public int Order { - get => (int)this.Fields[(int)TargetImagesTupleFields.Order]?.Value; + get => (int)this.Fields[(int)TargetImagesTupleFields.Order]; set => this.Set((int)TargetImagesTupleFields.Order, value); } public string ProductValidateFlags { - get => (string)this.Fields[(int)TargetImagesTupleFields.ProductValidateFlags]?.Value; + get => (string)this.Fields[(int)TargetImagesTupleFields.ProductValidateFlags]; set => this.Set((int)TargetImagesTupleFields.ProductValidateFlags, value); } public int IgnoreMissingSrcFiles { - get => (int)this.Fields[(int)TargetImagesTupleFields.IgnoreMissingSrcFiles]?.Value; + get => (int)this.Fields[(int)TargetImagesTupleFields.IgnoreMissingSrcFiles]; set => this.Set((int)TargetImagesTupleFields.IgnoreMissingSrcFiles, value); } } diff --git a/src/WixToolset.Data/Tuples/TextStyleTuple.cs b/src/WixToolset.Data/Tuples/TextStyleTuple.cs index d39b40e9..e4929ccf 100644 --- a/src/WixToolset.Data/Tuples/TextStyleTuple.cs +++ b/src/WixToolset.Data/Tuples/TextStyleTuple.cs @@ -51,13 +51,13 @@ namespace WixToolset.Data.Tuples public string TextStyle { - get => (string)this.Fields[(int)TextStyleTupleFields.TextStyle]?.Value; + get => (string)this.Fields[(int)TextStyleTupleFields.TextStyle]; set => this.Set((int)TextStyleTupleFields.TextStyle, value); } public string FaceName { - get => (string)this.Fields[(int)TextStyleTupleFields.FaceName]?.Value; + get => (string)this.Fields[(int)TextStyleTupleFields.FaceName]; set => this.Set((int)TextStyleTupleFields.FaceName, value); } diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs index 7bd26bf3..de2a8823 100644 --- a/src/WixToolset.Data/Tuples/TypeLibTuple.cs +++ b/src/WixToolset.Data/Tuples/TypeLibTuple.cs @@ -51,49 +51,49 @@ namespace WixToolset.Data.Tuples public string LibID { - get => (string)this.Fields[(int)TypeLibTupleFields.LibID]?.Value; + get => (string)this.Fields[(int)TypeLibTupleFields.LibID]; set => this.Set((int)TypeLibTupleFields.LibID, value); } public int Language { - get => (int)this.Fields[(int)TypeLibTupleFields.Language]?.Value; + get => (int)this.Fields[(int)TypeLibTupleFields.Language]; set => this.Set((int)TypeLibTupleFields.Language, value); } public string Component_ { - get => (string)this.Fields[(int)TypeLibTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)TypeLibTupleFields.Component_]; set => this.Set((int)TypeLibTupleFields.Component_, value); } public int Version { - get => (int)this.Fields[(int)TypeLibTupleFields.Version]?.Value; + get => (int)this.Fields[(int)TypeLibTupleFields.Version]; set => this.Set((int)TypeLibTupleFields.Version, value); } public string Description { - get => (string)this.Fields[(int)TypeLibTupleFields.Description]?.Value; + get => (string)this.Fields[(int)TypeLibTupleFields.Description]; set => this.Set((int)TypeLibTupleFields.Description, value); } public string Directory_ { - get => (string)this.Fields[(int)TypeLibTupleFields.Directory_]?.Value; + get => (string)this.Fields[(int)TypeLibTupleFields.Directory_]; set => this.Set((int)TypeLibTupleFields.Directory_, value); } public string Feature_ { - get => (string)this.Fields[(int)TypeLibTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)TypeLibTupleFields.Feature_]; set => this.Set((int)TypeLibTupleFields.Feature_, value); } public int Cost { - get => (int)this.Fields[(int)TypeLibTupleFields.Cost]?.Value; + get => (int)this.Fields[(int)TypeLibTupleFields.Cost]; set => this.Set((int)TypeLibTupleFields.Cost, value); } } diff --git a/src/WixToolset.Data/Tuples/UITextTuple.cs b/src/WixToolset.Data/Tuples/UITextTuple.cs index 3d5f2933..b6356b99 100644 --- a/src/WixToolset.Data/Tuples/UITextTuple.cs +++ b/src/WixToolset.Data/Tuples/UITextTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Key { - get => (string)this.Fields[(int)UITextTupleFields.Key]?.Value; + get => (string)this.Fields[(int)UITextTupleFields.Key]; set => this.Set((int)UITextTupleFields.Key, value); } public string Text { - get => (string)this.Fields[(int)UITextTupleFields.Text]?.Value; + get => (string)this.Fields[(int)UITextTupleFields.Text]; set => this.Set((int)UITextTupleFields.Text, value); } } diff --git a/src/WixToolset.Data/Tuples/UpgradeTuple.cs b/src/WixToolset.Data/Tuples/UpgradeTuple.cs index efb34733..03e5edd2 100644 --- a/src/WixToolset.Data/Tuples/UpgradeTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradeTuple.cs @@ -59,25 +59,25 @@ namespace WixToolset.Data.Tuples public string UpgradeCode { - get => (string)this.Fields[(int)UpgradeTupleFields.UpgradeCode]?.Value; + get => (string)this.Fields[(int)UpgradeTupleFields.UpgradeCode]; set => this.Set((int)UpgradeTupleFields.UpgradeCode, value); } public string VersionMin { - get => (string)this.Fields[(int)UpgradeTupleFields.VersionMin]?.Value; + get => (string)this.Fields[(int)UpgradeTupleFields.VersionMin]; set => this.Set((int)UpgradeTupleFields.VersionMin, value); } public string VersionMax { - get => (string)this.Fields[(int)UpgradeTupleFields.VersionMax]?.Value; + get => (string)this.Fields[(int)UpgradeTupleFields.VersionMax]; set => this.Set((int)UpgradeTupleFields.VersionMax, value); } public string Language { - get => (string)this.Fields[(int)UpgradeTupleFields.Language]?.Value; + get => (string)this.Fields[(int)UpgradeTupleFields.Language]; set => this.Set((int)UpgradeTupleFields.Language, value); } @@ -119,13 +119,13 @@ namespace WixToolset.Data.Tuples public string Remove { - get => (string)this.Fields[(int)UpgradeTupleFields.Remove]?.Value; + get => (string)this.Fields[(int)UpgradeTupleFields.Remove]; set => this.Set((int)UpgradeTupleFields.Remove, value); } public string ActionProperty { - get => (string)this.Fields[(int)UpgradeTupleFields.ActionProperty]?.Value; + get => (string)this.Fields[(int)UpgradeTupleFields.ActionProperty]; set => this.Set((int)UpgradeTupleFields.ActionProperty, value); } } diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs index 64ec9229..95617c6f 100644 --- a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Upgraded { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.Upgraded]?.Value; + get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.Upgraded]; set => this.Set((int)UpgradedFilesToIgnoreTupleFields.Upgraded, value); } public string FTK { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.FTK]?.Value; + get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.FTK]; set => this.Set((int)UpgradedFilesToIgnoreTupleFields.FTK, value); } } diff --git a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs index 09b93fed..9e764adf 100644 --- a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Upgraded { - get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.Upgraded]?.Value; + get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.Upgraded]; set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.Upgraded, value); } public string FTK { - get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.FTK]?.Value; + get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.FTK]; set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.FTK, value); } public string SymbolPaths { - get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths]?.Value; + get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths]; set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths, value); } public int AllowIgnoreOnPatchError { - get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError]?.Value; + get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError]; set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError, value); } public int IncludeWholeFile { - get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile]?.Value; + get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile]; set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile, value); } } diff --git a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs index 32170467..856c27e2 100644 --- a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Upgraded { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.Upgraded]?.Value; + get => (string)this.Fields[(int)UpgradedImagesTupleFields.Upgraded]; set => this.Set((int)UpgradedImagesTupleFields.Upgraded, value); } public string MsiPath { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.MsiPath]?.Value; + get => (string)this.Fields[(int)UpgradedImagesTupleFields.MsiPath]; set => this.Set((int)UpgradedImagesTupleFields.MsiPath, value); } public string PatchMsiPath { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.PatchMsiPath]?.Value; + get => (string)this.Fields[(int)UpgradedImagesTupleFields.PatchMsiPath]; set => this.Set((int)UpgradedImagesTupleFields.PatchMsiPath, value); } public string SymbolPaths { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.SymbolPaths]?.Value; + get => (string)this.Fields[(int)UpgradedImagesTupleFields.SymbolPaths]; set => this.Set((int)UpgradedImagesTupleFields.SymbolPaths, value); } public string Family { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.Family]?.Value; + get => (string)this.Fields[(int)UpgradedImagesTupleFields.Family]; set => this.Set((int)UpgradedImagesTupleFields.Family, value); } } diff --git a/src/WixToolset.Data/Tuples/VerbTuple.cs b/src/WixToolset.Data/Tuples/VerbTuple.cs index 4d5c7c03..a9e9c245 100644 --- a/src/WixToolset.Data/Tuples/VerbTuple.cs +++ b/src/WixToolset.Data/Tuples/VerbTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Extension_ { - get => (string)this.Fields[(int)VerbTupleFields.Extension_]?.Value; + get => (string)this.Fields[(int)VerbTupleFields.Extension_]; set => this.Set((int)VerbTupleFields.Extension_, value); } public string Verb { - get => (string)this.Fields[(int)VerbTupleFields.Verb]?.Value; + get => (string)this.Fields[(int)VerbTupleFields.Verb]; set => this.Set((int)VerbTupleFields.Verb, value); } public int Sequence { - get => (int)this.Fields[(int)VerbTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)VerbTupleFields.Sequence]; set => this.Set((int)VerbTupleFields.Sequence, value); } public string Command { - get => (string)this.Fields[(int)VerbTupleFields.Command]?.Value; + get => (string)this.Fields[(int)VerbTupleFields.Command]; set => this.Set((int)VerbTupleFields.Command, value); } public string Argument { - get => (string)this.Fields[(int)VerbTupleFields.Argument]?.Value; + get => (string)this.Fields[(int)VerbTupleFields.Argument]; set => this.Set((int)VerbTupleFields.Argument, value); } } diff --git a/src/WixToolset.Data/Tuples/WixActionTuple.cs b/src/WixToolset.Data/Tuples/WixActionTuple.cs index d196e560..148f28d9 100644 --- a/src/WixToolset.Data/Tuples/WixActionTuple.cs +++ b/src/WixToolset.Data/Tuples/WixActionTuple.cs @@ -60,37 +60,37 @@ namespace WixToolset.Data.Tuples public SequenceTable SequenceTable { - get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixActionTupleFields.SequenceTable]?.Value); + get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixActionTupleFields.SequenceTable]); set => this.Set((int)WixActionTupleFields.SequenceTable, value.ToString()); } public string Action { - get => (string)this.Fields[(int)WixActionTupleFields.Action]?.Value; + get => (string)this.Fields[(int)WixActionTupleFields.Action]; set => this.Set((int)WixActionTupleFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)WixActionTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)WixActionTupleFields.Condition]; set => this.Set((int)WixActionTupleFields.Condition, value); } public int Sequence { - get => (int)this.Fields[(int)WixActionTupleFields.Sequence]?.Value; + get => (int)this.Fields[(int)WixActionTupleFields.Sequence]; set => this.Set((int)WixActionTupleFields.Sequence, value); } public string Before { - get => (string)this.Fields[(int)WixActionTupleFields.Before]?.Value; + get => (string)this.Fields[(int)WixActionTupleFields.Before]; set => this.Set((int)WixActionTupleFields.Before, value); } public string After { - get => (string)this.Fields[(int)WixActionTupleFields.After]?.Value; + get => (string)this.Fields[(int)WixActionTupleFields.After]; set => this.Set((int)WixActionTupleFields.After, value); } diff --git a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs index e733e6ab..8916cdfc 100644 --- a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Id { - get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Id]?.Value; + get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Id]; set => this.Set((int)WixApprovedExeForElevationTupleFields.Id, value); } public string Key { - get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Key]?.Value; + get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Key]; set => this.Set((int)WixApprovedExeForElevationTupleFields.Key, value); } public string Value { - get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Value]?.Value; + get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Value]; set => this.Set((int)WixApprovedExeForElevationTupleFields.Value, value); } public int Attributes { - get => (int)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes]; set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs index 16a2a972..7df69426 100644 --- a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)WixBindUpdatedFilesTupleFields.File_]?.Value; + get => (string)this.Fields[(int)WixBindUpdatedFilesTupleFields.File_]; set => this.Set((int)WixBindUpdatedFilesTupleFields.File_, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs index 00bf9dae..e80d6321 100644 --- a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string Id { - get => (string)this.Fields[(int)WixBootstrapperApplicationTupleFields.Id]?.Value; + get => (string)this.Fields[(int)WixBootstrapperApplicationTupleFields.Id]; set => this.Set((int)WixBootstrapperApplicationTupleFields.Id, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs index d71cbbaf..9abb999b 100644 --- a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string WixVersion { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixVersion]?.Value; + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixVersion]; set => this.Set((int)WixBuildInfoTupleFields.WixVersion, value); } public string WixOutputFile { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixOutputFile]?.Value; + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixOutputFile]; set => this.Set((int)WixBuildInfoTupleFields.WixOutputFile, value); } public string WixProjectFile { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixProjectFile]?.Value; + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixProjectFile]; set => this.Set((int)WixBuildInfoTupleFields.WixProjectFile, value); } public string WixPdbFile { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixPdbFile]?.Value; + get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixPdbFile]; set => this.Set((int)WixBuildInfoTupleFields.WixPdbFile, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs index 4a4cd372..840cc65d 100644 --- a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string WixBundleCatalog { - get => (string)this.Fields[(int)WixBundleCatalogTupleFields.WixBundleCatalog]?.Value; + get => (string)this.Fields[(int)WixBundleCatalogTupleFields.WixBundleCatalog]; set => this.Set((int)WixBundleCatalogTupleFields.WixBundleCatalog, value); } public string Payload_ { - get => (string)this.Fields[(int)WixBundleCatalogTupleFields.Payload_]?.Value; + get => (string)this.Fields[(int)WixBundleCatalogTupleFields.Payload_]; set => this.Set((int)WixBundleCatalogTupleFields.Payload_, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs index d06e029f..c9d8e12f 100644 --- a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs @@ -62,49 +62,49 @@ namespace WixToolset.Data.Tuples public string WixBundleContainer { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.WixBundleContainer]?.Value; + get => (string)this.Fields[(int)WixBundleContainerTupleFields.WixBundleContainer]; set => this.Set((int)WixBundleContainerTupleFields.WixBundleContainer, value); } public string Name { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.Name]?.Value; + get => (string)this.Fields[(int)WixBundleContainerTupleFields.Name]; set => this.Set((int)WixBundleContainerTupleFields.Name, value); } public ContainerType Type { - get => (ContainerType)Enum.Parse(typeof(ContainerType), (string)this.Fields[(int)WixBundleContainerTupleFields.Type]?.Value, true); + get => (ContainerType)Enum.Parse(typeof(ContainerType), (string)this.Fields[(int)WixBundleContainerTupleFields.Type], true); set => this.Set((int)WixBundleContainerTupleFields.Type, value.ToString()); } public string DownloadUrl { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.DownloadUrl]?.Value; + get => (string)this.Fields[(int)WixBundleContainerTupleFields.DownloadUrl]; set => this.Set((int)WixBundleContainerTupleFields.DownloadUrl, value); } public int Size { - get => (int)this.Fields[(int)WixBundleContainerTupleFields.Size]?.Value; + get => (int)this.Fields[(int)WixBundleContainerTupleFields.Size]; set => this.Set((int)WixBundleContainerTupleFields.Size, value); } public string Hash { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.Hash]?.Value; + get => (string)this.Fields[(int)WixBundleContainerTupleFields.Hash]; set => this.Set((int)WixBundleContainerTupleFields.Hash, value); } public int AttachedContainerIndex { - get => (int)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]?.Value; + get => (int)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]; set => this.Set((int)WixBundleContainerTupleFields.AttachedContainerIndex, value); } public string WorkingPath { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.WorkingPath]?.Value; + get => (string)this.Fields[(int)WixBundleContainerTupleFields.WorkingPath]; set => this.Set((int)WixBundleContainerTupleFields.WorkingPath, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs index 7ba036f3..bc2f42e1 100644 --- a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs @@ -57,43 +57,43 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleExePackageTupleFields.WixBundlePackage_, value); } public WixBundleExePackageAttributes Attributes { - get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageTupleFields.Attributes]?.Value; + get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageTupleFields.Attributes]; set => this.Set((int)WixBundleExePackageTupleFields.Attributes, (int)value); } public string DetectCondition { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.DetectCondition]?.Value; + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.DetectCondition]; set => this.Set((int)WixBundleExePackageTupleFields.DetectCondition, value); } public string InstallCommand { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.InstallCommand]?.Value; + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.InstallCommand]; set => this.Set((int)WixBundleExePackageTupleFields.InstallCommand, value); } public string RepairCommand { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.RepairCommand]?.Value; + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.RepairCommand]; set => this.Set((int)WixBundleExePackageTupleFields.RepairCommand, value); } public string UninstallCommand { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.UninstallCommand]?.Value; + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.UninstallCommand]; set => this.Set((int)WixBundleExePackageTupleFields.UninstallCommand, value); } public string ExeProtocol { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.ExeProtocol]?.Value; + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.ExeProtocol]; set => this.Set((int)WixBundleExePackageTupleFields.ExeProtocol, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs index 2729205d..ebd8461e 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs @@ -55,61 +55,61 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleMsiFeatureTupleFields.WixBundlePackage_, value); } public string Name { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Name]?.Value; + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Name]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Name, value); } public int Size { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size]?.Value; + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Size, value); } public string Parent { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Parent]?.Value; + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Parent]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Parent, value); } public string Title { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Title]?.Value; + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Title]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Title, value); } public string Description { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Description]?.Value; + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Description]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Description, value); } public int Display { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Display]?.Value; + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Display]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Display, value); } public int Level { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Level]?.Value; + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Level]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Level, value); } public string Directory { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Directory]?.Value; + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Directory]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Directory, value); } public int Attributes { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Attributes]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs index ce3afc15..e8af4066 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs @@ -62,49 +62,49 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleMsiPackageTupleFields.WixBundlePackage_, value); } public WixBundleMsiPackageAttributes Attributes { - get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageTupleFields.Attributes]?.Value; + get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageTupleFields.Attributes]; set => this.Set((int)WixBundleMsiPackageTupleFields.Attributes, (int)value); } public string ProductCode { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductCode]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductCode]; set => this.Set((int)WixBundleMsiPackageTupleFields.ProductCode, value); } public string UpgradeCode { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.UpgradeCode]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.UpgradeCode]; set => this.Set((int)WixBundleMsiPackageTupleFields.UpgradeCode, value); } public string ProductVersion { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductVersion]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductVersion]; set => this.Set((int)WixBundleMsiPackageTupleFields.ProductVersion, value); } public int ProductLanguage { - get => (int)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductLanguage]?.Value; + get => (int)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductLanguage]; set => this.Set((int)WixBundleMsiPackageTupleFields.ProductLanguage, value); } public string ProductName { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductName]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductName]; set => this.Set((int)WixBundleMsiPackageTupleFields.ProductName, value); } public string Manufacturer { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.Manufacturer]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.Manufacturer]; set => this.Set((int)WixBundleMsiPackageTupleFields.Manufacturer, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs index 5eea57ea..a788f034 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleMsiPropertyTupleFields.WixBundlePackage_, value); } public string Name { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Name]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Name]; set => this.Set((int)WixBundleMsiPropertyTupleFields.Name, value); } public string Value { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Value]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Value]; set => this.Set((int)WixBundleMsiPropertyTupleFields.Value, value); } public string Condition { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Condition]; set => this.Set((int)WixBundleMsiPropertyTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs index 219c7735..ae233458 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs @@ -55,31 +55,31 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleMspPackageTupleFields.WixBundlePackage_, value); } public WixBundleMspPackageAttributes Attributes { - get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageTupleFields.Attributes]?.Value; + get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageTupleFields.Attributes]; set => this.Set((int)WixBundleMspPackageTupleFields.Attributes, (int)value); } public string PatchCode { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchCode]?.Value; + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchCode]; set => this.Set((int)WixBundleMspPackageTupleFields.PatchCode, value); } public string Manufacturer { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.Manufacturer]?.Value; + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.Manufacturer]; set => this.Set((int)WixBundleMspPackageTupleFields.Manufacturer, value); } public string PatchXml { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchXml]?.Value; + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchXml]; set => this.Set((int)WixBundleMspPackageTupleFields.PatchXml, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs index f6f71d6d..df8ab694 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleMsuPackageTupleFields.WixBundlePackage_, value); } public string DetectCondition { - get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.DetectCondition]?.Value; + get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.DetectCondition]; set => this.Set((int)WixBundleMsuPackageTupleFields.DetectCondition, value); } public string MsuKB { - get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.MsuKB]?.Value; + get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.MsuKB]; set => this.Set((int)WixBundleMsuPackageTupleFields.MsuKB, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs index 0ca895c0..3c2b5652 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_, value); } public string InstallArgument { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.InstallArgument]?.Value; + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.InstallArgument]; set => this.Set((int)WixBundlePackageCommandLineTupleFields.InstallArgument, value); } public string UninstallArgument { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.UninstallArgument]?.Value; + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.UninstallArgument]; set => this.Set((int)WixBundlePackageCommandLineTupleFields.UninstallArgument, value); } public string RepairArgument { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.RepairArgument]?.Value; + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.RepairArgument]; set => this.Set((int)WixBundlePackageCommandLineTupleFields.RepairArgument, value); } public string Condition { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.Condition]; set => this.Set((int)WixBundlePackageCommandLineTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs index 64c91316..880f1f73 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs @@ -52,19 +52,19 @@ namespace WixToolset.Data.Tuples public string ChainPackageId { - get => (string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.ChainPackageId]?.Value; + get => (string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.ChainPackageId]; set => this.Set((int)WixBundlePackageExitCodeTupleFields.ChainPackageId, value); } public int Code { - get => (int)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]?.Value; + get => (int)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]; set => this.Set((int)WixBundlePackageExitCodeTupleFields.Code, value); } public ExitCodeBehaviorType Behavior { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Behavior]?.Value, true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Behavior], true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; set => this.Set((int)WixBundlePackageExitCodeTupleFields.Behavior, value.ToString()); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs index 56711155..61084c88 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string WixBundlePackageGroup { - get => (string)this.Fields[(int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup]?.Value; + get => (string)this.Fields[(int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup]; set => this.Set((int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index c7dcf373..c9f69ef3 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -95,121 +95,121 @@ namespace WixToolset.Data.Tuples public string WixChainItem_ { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItem_]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItem_]; set => this.Set((int)WixBundlePackageTupleFields.WixChainItem_, value); } public WixBundlePackageType Type { - get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageTupleFields.Type]?.Value, true); + get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageTupleFields.Type], true); set => this.Set((int)WixBundlePackageTupleFields.Type, value.ToString()); } public string Payload_ { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.Payload_]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.Payload_]; set => this.Set((int)WixBundlePackageTupleFields.Payload_, value); } public WixBundlePackageAttributes Attributes { - get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageTupleFields.Attributes]?.Value; + get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageTupleFields.Attributes]; set => this.Set((int)WixBundlePackageTupleFields.Attributes, (int)value); } public string InstallCondition { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.InstallCondition]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.InstallCondition]; set => this.Set((int)WixBundlePackageTupleFields.InstallCondition, value); } public YesNoAlwaysType Cache { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.Cache]?.Value, true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; set => this.Set((int)WixBundlePackageTupleFields.Cache, value.ToString().ToLowerInvariant()); } public string CacheId { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.CacheId]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.CacheId]; set => this.Set((int)WixBundlePackageTupleFields.CacheId, value); } public bool? Vital { - get => (bool?)this.Fields[(int)WixBundlePackageTupleFields.Vital]?.Value; + get => (bool?)this.Fields[(int)WixBundlePackageTupleFields.Vital]; set => this.Set((int)WixBundlePackageTupleFields.Vital, value); } public YesNoDefaultType PerMachine { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.PerMachine]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; set => this.Set((int)WixBundlePackageTupleFields.PerMachine, value.ToString().ToLowerInvariant()); } public string LogPathVariable { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.LogPathVariable]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.LogPathVariable]; set => this.Set((int)WixBundlePackageTupleFields.LogPathVariable, value); } public string RollbackLogPathVariable { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackLogPathVariable]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackLogPathVariable]; set => this.Set((int)WixBundlePackageTupleFields.RollbackLogPathVariable, value); } public int Size { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.Size]?.Value; + get => (int)this.Fields[(int)WixBundlePackageTupleFields.Size]; set => this.Set((int)WixBundlePackageTupleFields.Size, value); } public int InstallSize { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.InstallSize]?.Value; + get => (int)this.Fields[(int)WixBundlePackageTupleFields.InstallSize]; set => this.Set((int)WixBundlePackageTupleFields.InstallSize, value); } public string Version { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.Version]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.Version]; set => this.Set((int)WixBundlePackageTupleFields.Version, value); } public int Language { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.Language]?.Value; + get => (int)this.Fields[(int)WixBundlePackageTupleFields.Language]; set => this.Set((int)WixBundlePackageTupleFields.Language, value); } public string DisplayName { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.DisplayName]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.DisplayName]; set => this.Set((int)WixBundlePackageTupleFields.DisplayName, value); } public string Description { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.Description]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.Description]; set => this.Set((int)WixBundlePackageTupleFields.Description, value); } public string RollbackBoundary_ { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundary_]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundary_]; set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundary_, value); } public string RollbackBoundaryBackward_ { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryBackward_]?.Value; + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryBackward_]; set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackward_, value); } public int x64 { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.x64]?.Value; + get => (int)this.Fields[(int)WixBundlePackageTupleFields.x64]; set => this.Set((int)WixBundlePackageTupleFields.x64, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs index d34c0d2a..f8752067 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string PackageId { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageId]?.Value; + get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageId]; set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageId, value); } public string TargetCode { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.TargetCode]?.Value; + get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.TargetCode]; set => this.Set((int)WixBundlePatchTargetCodeTupleFields.TargetCode, value); } public int Attributes { - get => (int)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes]; set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs index c1f0df6a..c2f01ebc 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string WixBundlePayloadGroup { - get => (string)this.Fields[(int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup]; set => this.Set((int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs index d2a82f93..ce5ff8be 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -81,133 +81,133 @@ namespace WixToolset.Data.Tuples public string WixBundlePayload { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.WixBundlePayload]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.WixBundlePayload]; set => this.Set((int)WixBundlePayloadTupleFields.WixBundlePayload, value); } public string Name { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Name]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Name]; set => this.Set((int)WixBundlePayloadTupleFields.Name, value); } public string SourceFile { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.SourceFile]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.SourceFile]; set => this.Set((int)WixBundlePayloadTupleFields.SourceFile, value); } public string DownloadUrl { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DownloadUrl]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DownloadUrl]; set => this.Set((int)WixBundlePayloadTupleFields.DownloadUrl, value); } public YesNoDefaultType Compressed { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePayloadTupleFields.Compressed]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; + get => Enum.TryParse((string)this.Fields[(int)WixBundlePayloadTupleFields.Compressed], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value.ToString().ToLowerInvariant()); } public string UnresolvedSourceFile { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.UnresolvedSourceFile]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.UnresolvedSourceFile]; set => this.Set((int)WixBundlePayloadTupleFields.UnresolvedSourceFile, value); } public string DisplayName { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DisplayName]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DisplayName]; set => this.Set((int)WixBundlePayloadTupleFields.DisplayName, value); } public string Description { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Description]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Description]; set => this.Set((int)WixBundlePayloadTupleFields.Description, value); } public bool EnableSignatureValidation { - get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.EnableSignatureValidation]?.Value; + get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.EnableSignatureValidation]; set => this.Set((int)WixBundlePayloadTupleFields.EnableSignatureValidation, value); } public int FileSize { - get => (int)this.Fields[(int)WixBundlePayloadTupleFields.FileSize]?.Value; + get => (int)this.Fields[(int)WixBundlePayloadTupleFields.FileSize]; set => this.Set((int)WixBundlePayloadTupleFields.FileSize, value); } public string Version { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Version]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Version]; set => this.Set((int)WixBundlePayloadTupleFields.Version, value); } public string Hash { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Hash]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Hash]; set => this.Set((int)WixBundlePayloadTupleFields.Hash, value); } public string PublicKey { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PublicKey]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PublicKey]; set => this.Set((int)WixBundlePayloadTupleFields.PublicKey, value); } public string Thumbprint { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Thumbprint]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Thumbprint]; set => this.Set((int)WixBundlePayloadTupleFields.Thumbprint, value); } public string Catalog_ { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Catalog_]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Catalog_]; set => this.Set((int)WixBundlePayloadTupleFields.Catalog_, value); } public string Container_ { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Container_]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Container_]; set => this.Set((int)WixBundlePayloadTupleFields.Container_, value); } public string Package { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Package]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Package]; set => this.Set((int)WixBundlePayloadTupleFields.Package, value); } public bool ContentFile { - get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.ContentFile]?.Value; + get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.ContentFile]; set => this.Set((int)WixBundlePayloadTupleFields.ContentFile, value); } public string EmbeddedId { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.EmbeddedId]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.EmbeddedId]; set => this.Set((int)WixBundlePayloadTupleFields.EmbeddedId, value); } public int LayoutOnly { - get => (int)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly]?.Value; + get => (int)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly]; set => this.Set((int)WixBundlePayloadTupleFields.LayoutOnly, value); } public int Packaging { - get => (int)this.Fields[(int)WixBundlePayloadTupleFields.Packaging]?.Value; + get => (int)this.Fields[(int)WixBundlePayloadTupleFields.Packaging]; set => this.Set((int)WixBundlePayloadTupleFields.Packaging, value); } public string ParentPackagePayload_ { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ParentPackagePayload_]?.Value; + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ParentPackagePayload_]; set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayload_, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs index 8a42c3c6..fef0c997 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string DisplayName { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.DisplayName]?.Value; + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.DisplayName]; set => this.Set((int)WixBundlePropertiesTupleFields.DisplayName, value); } public string LogPathVariable { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.LogPathVariable]?.Value; + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.LogPathVariable]; set => this.Set((int)WixBundlePropertiesTupleFields.LogPathVariable, value); } public string Compressed { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Compressed]?.Value; + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Compressed]; set => this.Set((int)WixBundlePropertiesTupleFields.Compressed, value); } public string Id { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Id]?.Value; + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Id]; set => this.Set((int)WixBundlePropertiesTupleFields.Id, value); } public string UpgradeCode { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.UpgradeCode]?.Value; + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.UpgradeCode]; set => this.Set((int)WixBundlePropertiesTupleFields.UpgradeCode, value); } public string PerMachine { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.PerMachine]?.Value; + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.PerMachine]; set => this.Set((int)WixBundlePropertiesTupleFields.PerMachine, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs index d3e1069a..7b1bed66 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs @@ -53,55 +53,55 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleRelatedPackageTupleFields.WixBundlePackage_, value); } public string Id { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Id]?.Value; + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Id]; set => this.Set((int)WixBundleRelatedPackageTupleFields.Id, value); } public string MinVersion { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinVersion]?.Value; + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinVersion]; set => this.Set((int)WixBundleRelatedPackageTupleFields.MinVersion, value); } public string MaxVersion { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxVersion]?.Value; + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxVersion]; set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxVersion, value); } public string Languages { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Languages]?.Value; + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Languages]; set => this.Set((int)WixBundleRelatedPackageTupleFields.Languages, value); } public int MinInclusive { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinInclusive]?.Value; + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinInclusive]; set => this.Set((int)WixBundleRelatedPackageTupleFields.MinInclusive, value); } public int MaxInclusive { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxInclusive]?.Value; + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxInclusive]; set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxInclusive, value); } public int LangInclusive { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.LangInclusive]?.Value; + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.LangInclusive]; set => this.Set((int)WixBundleRelatedPackageTupleFields.LangInclusive, value); } public int OnlyDetect { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.OnlyDetect]?.Value; + get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.OnlyDetect]; set => this.Set((int)WixBundleRelatedPackageTupleFields.OnlyDetect, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs index d08f0eb9..b3ed7559 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string WixChainItem_ { - get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItem_]?.Value; + get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItem_]; set => this.Set((int)WixBundleRollbackBoundaryTupleFields.WixChainItem_, value); } public bool? Vital { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Vital]?.Value; + get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Vital]; set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Vital, value); } public bool? Transaction { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Transaction]?.Value; + get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Transaction]; set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Transaction, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs index c0ab124d..38893a63 100644 --- a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string WixBundlePackage_ { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_]?.Value; + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_]; set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_, value); } public string WixBundlePackage_Msp { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp]?.Value; + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp]; set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs index 4647347b..f7cd4f23 100644 --- a/src/WixToolset.Data/Tuples/WixBundleTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleTuple.cs @@ -81,139 +81,139 @@ namespace WixToolset.Data.Tuples public string Version { - get => (string)this.Fields[(int)WixBundleTupleFields.Version]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.Version]; set => this.Set((int)WixBundleTupleFields.Version, value); } public string Copyright { - get => (string)this.Fields[(int)WixBundleTupleFields.Copyright]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.Copyright]; set => this.Set((int)WixBundleTupleFields.Copyright, value); } public string Name { - get => (string)this.Fields[(int)WixBundleTupleFields.Name]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.Name]; set => this.Set((int)WixBundleTupleFields.Name, value); } public string AboutUrl { - get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl]; set => this.Set((int)WixBundleTupleFields.AboutUrl, value); } public int DisableModify { - get => (int)this.Fields[(int)WixBundleTupleFields.DisableModify]?.Value; + get => (int)this.Fields[(int)WixBundleTupleFields.DisableModify]; set => this.Set((int)WixBundleTupleFields.DisableModify, value); } public int DisableRemove { - get => (int)this.Fields[(int)WixBundleTupleFields.DisableRemove]?.Value; + get => (int)this.Fields[(int)WixBundleTupleFields.DisableRemove]; set => this.Set((int)WixBundleTupleFields.DisableRemove, value); } public int DisableRepair { - get => (int)this.Fields[(int)WixBundleTupleFields.DisableRepair]?.Value; + get => (int)this.Fields[(int)WixBundleTupleFields.DisableRepair]; set => this.Set((int)WixBundleTupleFields.DisableRepair, value); } public string HelpTelephone { - get => (string)this.Fields[(int)WixBundleTupleFields.HelpTelephone]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.HelpTelephone]; set => this.Set((int)WixBundleTupleFields.HelpTelephone, value); } public string HelpUrl { - get => (string)this.Fields[(int)WixBundleTupleFields.HelpUrl]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.HelpUrl]; set => this.Set((int)WixBundleTupleFields.HelpUrl, value); } public string Manufacturer { - get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer]; set => this.Set((int)WixBundleTupleFields.Manufacturer, value); } public string UpdateUrl { - get => (string)this.Fields[(int)WixBundleTupleFields.UpdateUrl]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.UpdateUrl]; set => this.Set((int)WixBundleTupleFields.UpdateUrl, value); } public int Compressed { - get => (int)this.Fields[(int)WixBundleTupleFields.Compressed]?.Value; + get => (int)this.Fields[(int)WixBundleTupleFields.Compressed]; set => this.Set((int)WixBundleTupleFields.Compressed, value); } public string LogPrefixAndExtension { - get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefixAndExtension]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefixAndExtension]; set => this.Set((int)WixBundleTupleFields.LogPrefixAndExtension, value); } public string IconSourceFile { - get => (string)this.Fields[(int)WixBundleTupleFields.IconSourceFile]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.IconSourceFile]; set => this.Set((int)WixBundleTupleFields.IconSourceFile, value); } public string SplashScreenSourceFile { - get => (string)this.Fields[(int)WixBundleTupleFields.SplashScreenSourceFile]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.SplashScreenSourceFile]; set => this.Set((int)WixBundleTupleFields.SplashScreenSourceFile, value); } public string Condition { - get => (string)this.Fields[(int)WixBundleTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.Condition]; set => this.Set((int)WixBundleTupleFields.Condition, value); } public string Tag { - get => (string)this.Fields[(int)WixBundleTupleFields.Tag]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.Tag]; set => this.Set((int)WixBundleTupleFields.Tag, value); } public string Platform { - get => (string)this.Fields[(int)WixBundleTupleFields.Platform]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.Platform]; set => this.Set((int)WixBundleTupleFields.Platform, value); } public string ParentName { - get => (string)this.Fields[(int)WixBundleTupleFields.ParentName]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.ParentName]; set => this.Set((int)WixBundleTupleFields.ParentName, value); } public string UpgradeCode { - get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode]; set => this.Set((int)WixBundleTupleFields.UpgradeCode, value); } public string BundleId { - get => (string)this.Fields[(int)WixBundleTupleFields.BundleId]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.BundleId]; set => this.Set((int)WixBundleTupleFields.BundleId, value); } public string ProviderKey { - get => (string)this.Fields[(int)WixBundleTupleFields.ProviderKey]?.Value; + get => (string)this.Fields[(int)WixBundleTupleFields.ProviderKey]; set => this.Set((int)WixBundleTupleFields.ProviderKey, value); } public int PerMachine { - get => (int)this.Fields[(int)WixBundleTupleFields.PerMachine]?.Value; + get => (int)this.Fields[(int)WixBundleTupleFields.PerMachine]; set => this.Set((int)WixBundleTupleFields.PerMachine, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs index 2398b1da..25686027 100644 --- a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Location { - get => (string)this.Fields[(int)WixBundleUpdateTupleFields.Location]?.Value; + get => (string)this.Fields[(int)WixBundleUpdateTupleFields.Location]; set => this.Set((int)WixBundleUpdateTupleFields.Location, value); } public int Attributes { - get => (int)this.Fields[(int)WixBundleUpdateTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixBundleUpdateTupleFields.Attributes]; set => this.Set((int)WixBundleUpdateTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs index c5724e6c..b71f20e1 100644 --- a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string WixBundleVariable { - get => (string)this.Fields[(int)WixBundleVariableTupleFields.WixBundleVariable]?.Value; + get => (string)this.Fields[(int)WixBundleVariableTupleFields.WixBundleVariable]; set => this.Set((int)WixBundleVariableTupleFields.WixBundleVariable, value); } public string Value { - get => (string)this.Fields[(int)WixBundleVariableTupleFields.Value]?.Value; + get => (string)this.Fields[(int)WixBundleVariableTupleFields.Value]; set => this.Set((int)WixBundleVariableTupleFields.Value, value); } public string Type { - get => (string)this.Fields[(int)WixBundleVariableTupleFields.Type]?.Value; + get => (string)this.Fields[(int)WixBundleVariableTupleFields.Type]; set => this.Set((int)WixBundleVariableTupleFields.Type, value); } public bool Hidden { - get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Hidden]?.Value; + get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Hidden]; set => this.Set((int)WixBundleVariableTupleFields.Hidden, value); } public bool Persisted { - get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Persisted]?.Value; + get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Persisted]; set => this.Set((int)WixBundleVariableTupleFields.Persisted, value); } } diff --git a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs index c77bd038..12383f53 100644 --- a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs +++ b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string Id { - get => (string)this.Fields[(int)WixChainItemTupleFields.Id]?.Value; + get => (string)this.Fields[(int)WixChainItemTupleFields.Id]; set => this.Set((int)WixChainItemTupleFields.Id, value); } } diff --git a/src/WixToolset.Data/Tuples/WixChainTuple.cs b/src/WixToolset.Data/Tuples/WixChainTuple.cs index d3ae2f4a..d8bef8cc 100644 --- a/src/WixToolset.Data/Tuples/WixChainTuple.cs +++ b/src/WixToolset.Data/Tuples/WixChainTuple.cs @@ -48,7 +48,7 @@ namespace WixToolset.Data.Tuples public WixChainAttributes Attributes { - get => (WixChainAttributes)(int)this.Fields[(int)WixChainTupleFields.Attributes]?.Value; + get => (WixChainAttributes)(int)this.Fields[(int)WixChainTupleFields.Attributes]; set => this.Set((int)WixChainTupleFields.Attributes, (int)value); } } diff --git a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs index 46de9aa9..3d573f7a 100644 --- a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs @@ -49,37 +49,37 @@ namespace WixToolset.Data.Tuples public string Parent { - get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Parent]?.Value; + get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Parent]; set => this.Set((int)WixComplexReferenceTupleFields.Parent, value); } public ComplexReferenceParentType ParentType { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentAttributes]?.Value, true); + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentAttributes], true); set => this.Set((int)WixComplexReferenceTupleFields.ParentAttributes, value.ToString()); } public string ParentLanguage { - get => (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentLanguage]?.Value; + get => (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentLanguage]; set => this.Set((int)WixComplexReferenceTupleFields.ParentLanguage, value); } public string Child { - get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Child]?.Value; + get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Child]; set => this.Set((int)WixComplexReferenceTupleFields.Child, value); } public ComplexReferenceChildType ChildType { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ChildAttributes]?.Value, true); + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ChildAttributes], true); set => this.Set((int)WixComplexReferenceTupleFields.ChildAttributes, value.ToString()); } public bool IsPrimary { - get => (bool)this.Fields[(int)WixComplexReferenceTupleFields.Attributes]?.Value; + get => (bool)this.Fields[(int)WixComplexReferenceTupleFields.Attributes]; set => this.Set((int)WixComplexReferenceTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs index f4118277..1209790f 100644 --- a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string WixComponentGroup { - get => (string)this.Fields[(int)WixComponentGroupTupleFields.WixComponentGroup]?.Value; + get => (string)this.Fields[(int)WixComponentGroupTupleFields.WixComponentGroup]; set => this.Set((int)WixComponentGroupTupleFields.WixComponentGroup, value); } } diff --git a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs index 7aad13d2..fc3c23e3 100644 --- a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string WixSearch_ { - get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearch_]?.Value; + get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearch_]; set => this.Set((int)WixComponentSearchTupleFields.WixSearch_, value); } public string Guid { - get => (string)this.Fields[(int)WixComponentSearchTupleFields.Guid]?.Value; + get => (string)this.Fields[(int)WixComponentSearchTupleFields.Guid]; set => this.Set((int)WixComponentSearchTupleFields.Guid, value); } public string ProductCode { - get => (string)this.Fields[(int)WixComponentSearchTupleFields.ProductCode]?.Value; + get => (string)this.Fields[(int)WixComponentSearchTupleFields.ProductCode]; set => this.Set((int)WixComponentSearchTupleFields.ProductCode, value); } public int Attributes { - get => (int)this.Fields[(int)WixComponentSearchTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixComponentSearchTupleFields.Attributes]; set => this.Set((int)WixComponentSearchTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs index c7ab0b0b..ec73c1b8 100644 --- a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)WixCustomRowTupleFields.Table]?.Value; + get => (string)this.Fields[(int)WixCustomRowTupleFields.Table]; set => this.Set((int)WixCustomRowTupleFields.Table, value); } public string FieldData { - get => (string)this.Fields[(int)WixCustomRowTupleFields.FieldData]?.Value; + get => (string)this.Fields[(int)WixCustomRowTupleFields.FieldData]; set => this.Set((int)WixCustomRowTupleFields.FieldData, value); } } diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index 58266aff..fd21fe2d 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -63,85 +63,85 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Table]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.Table]; set => this.Set((int)WixCustomTableTupleFields.Table, value); } public int ColumnCount { - get => (int)this.Fields[(int)WixCustomTableTupleFields.ColumnCount]?.Value; + get => (int)this.Fields[(int)WixCustomTableTupleFields.ColumnCount]; set => this.Set((int)WixCustomTableTupleFields.ColumnCount, value); } public string ColumnNames { - get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnNames]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnNames]; set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); } public string ColumnTypes { - get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnTypes]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnTypes]; set => this.Set((int)WixCustomTableTupleFields.ColumnTypes, value); } public string PrimaryKeys { - get => (string)this.Fields[(int)WixCustomTableTupleFields.PrimaryKeys]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.PrimaryKeys]; set => this.Set((int)WixCustomTableTupleFields.PrimaryKeys, value); } public string MinValues { - get => (string)this.Fields[(int)WixCustomTableTupleFields.MinValues]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.MinValues]; set => this.Set((int)WixCustomTableTupleFields.MinValues, value); } public string MaxValues { - get => (string)this.Fields[(int)WixCustomTableTupleFields.MaxValues]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.MaxValues]; set => this.Set((int)WixCustomTableTupleFields.MaxValues, value); } public string KeyTables { - get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyTables]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyTables]; set => this.Set((int)WixCustomTableTupleFields.KeyTables, value); } public string KeyColumns { - get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyColumns]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyColumns]; set => this.Set((int)WixCustomTableTupleFields.KeyColumns, value); } public string Categories { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Categories]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.Categories]; set => this.Set((int)WixCustomTableTupleFields.Categories, value); } public string Sets { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Sets]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.Sets]; set => this.Set((int)WixCustomTableTupleFields.Sets, value); } public string Descriptions { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Descriptions]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.Descriptions]; set => this.Set((int)WixCustomTableTupleFields.Descriptions, value); } public string Modularizations { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Modularizations]?.Value; + get => (string)this.Fields[(int)WixCustomTableTupleFields.Modularizations]; set => this.Set((int)WixCustomTableTupleFields.Modularizations, value); } public int BootstrapperApplicationData { - get => (int)this.Fields[(int)WixCustomTableTupleFields.BootstrapperApplicationData]?.Value; + get => (int)this.Fields[(int)WixCustomTableTupleFields.BootstrapperApplicationData]; set => this.Set((int)WixCustomTableTupleFields.BootstrapperApplicationData, value); } } diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs index 68f327f4..a8e191df 100644 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs @@ -47,37 +47,37 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.File_]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.File_]; set => this.Set((int)WixDeltaPatchFileTupleFields.File_, value); } public string RetainLengths { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]; set => this.Set((int)WixDeltaPatchFileTupleFields.RetainLengths, value); } public string IgnoreOffsets { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreOffsets]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreOffsets]; set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreOffsets, value); } public string IgnoreLengths { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreLengths]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreLengths]; set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreLengths, value); } public string RetainOffsets { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainOffsets]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainOffsets]; set => this.Set((int)WixDeltaPatchFileTupleFields.RetainOffsets, value); } public string SymbolPaths { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.SymbolPaths]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.SymbolPaths]; set => this.Set((int)WixDeltaPatchFileTupleFields.SymbolPaths, value); } } diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs index 39747be5..9537db3a 100644 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs @@ -56,19 +56,19 @@ namespace WixToolset.Data.Tuples public string Id { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Id]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Id]; set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Id, value); } public SymbolPathType Type { - get => (SymbolPathType)Enum.Parse(typeof(SymbolPathType), (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Type]?.Value, true); + get => (SymbolPathType)Enum.Parse(typeof(SymbolPathType), (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Type], true); set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Type, value.ToString()); } public string SymbolPaths { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths]?.Value; + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths]; set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths, value); } } diff --git a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs index cc80a5d9..cd47c0fd 100644 --- a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)WixEnsureTableTupleFields.Table]?.Value; + get => (string)this.Fields[(int)WixEnsureTableTupleFields.Table]; set => this.Set((int)WixEnsureTableTupleFields.Table, value); } } diff --git a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs index 20e88ce8..e2ae6b14 100644 --- a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string WixFeatureGroup { - get => (string)this.Fields[(int)WixFeatureGroupTupleFields.WixFeatureGroup]?.Value; + get => (string)this.Fields[(int)WixFeatureGroupTupleFields.WixFeatureGroup]; set => this.Set((int)WixFeatureGroupTupleFields.WixFeatureGroup, value); } } diff --git a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs index 23524b1d..963c07d8 100644 --- a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Feature_ { - get => (string)this.Fields[(int)WixFeatureModulesTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)WixFeatureModulesTupleFields.Feature_]; set => this.Set((int)WixFeatureModulesTupleFields.Feature_, value); } public string WixMerge_ { - get => (string)this.Fields[(int)WixFeatureModulesTupleFields.WixMerge_]?.Value; + get => (string)this.Fields[(int)WixFeatureModulesTupleFields.WixMerge_]; set => this.Set((int)WixFeatureModulesTupleFields.WixMerge_, value); } } diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs index 62d19ec8..a5da5f2b 100644 --- a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs @@ -55,61 +55,61 @@ namespace WixToolset.Data.Tuples public string WixSearch_ { - get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearch_]?.Value; + get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearch_]; set => this.Set((int)WixFileSearchTupleFields.WixSearch_, value); } public string Path { - get => (string)this.Fields[(int)WixFileSearchTupleFields.Path]?.Value; + get => (string)this.Fields[(int)WixFileSearchTupleFields.Path]; set => this.Set((int)WixFileSearchTupleFields.Path, value); } public string MinVersion { - get => (string)this.Fields[(int)WixFileSearchTupleFields.MinVersion]?.Value; + get => (string)this.Fields[(int)WixFileSearchTupleFields.MinVersion]; set => this.Set((int)WixFileSearchTupleFields.MinVersion, value); } public string MaxVersion { - get => (string)this.Fields[(int)WixFileSearchTupleFields.MaxVersion]?.Value; + get => (string)this.Fields[(int)WixFileSearchTupleFields.MaxVersion]; set => this.Set((int)WixFileSearchTupleFields.MaxVersion, value); } public int MinSize { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MinSize]?.Value; + get => (int)this.Fields[(int)WixFileSearchTupleFields.MinSize]; set => this.Set((int)WixFileSearchTupleFields.MinSize, value); } public int MaxSize { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxSize]?.Value; + get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxSize]; set => this.Set((int)WixFileSearchTupleFields.MaxSize, value); } public int MinDate { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MinDate]?.Value; + get => (int)this.Fields[(int)WixFileSearchTupleFields.MinDate]; set => this.Set((int)WixFileSearchTupleFields.MinDate, value); } public int MaxDate { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxDate]?.Value; + get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxDate]; set => this.Set((int)WixFileSearchTupleFields.MaxDate, value); } public string Languages { - get => (string)this.Fields[(int)WixFileSearchTupleFields.Languages]?.Value; + get => (string)this.Fields[(int)WixFileSearchTupleFields.Languages]; set => this.Set((int)WixFileSearchTupleFields.Languages, value); } public int Attributes { - get => (int)this.Fields[(int)WixFileSearchTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixFileSearchTupleFields.Attributes]; set => this.Set((int)WixFileSearchTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixFileTuple.cs b/src/WixToolset.Data/Tuples/WixFileTuple.cs index 3581e2e6..077622b7 100644 --- a/src/WixToolset.Data/Tuples/WixFileTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileTuple.cs @@ -97,37 +97,37 @@ namespace WixToolset.Data.Tuples public string File_ { - get => (string)this.Fields[(int)WixFileTupleFields.File_]?.Value; + get => (string)this.Fields[(int)WixFileTupleFields.File_]; set => this.Set((int)WixFileTupleFields.File_, value); } public FileAssemblyType AssemblyType { - get => (FileAssemblyType)(int)this.Fields[(int)WixFileTupleFields.AssemblyType]?.Value; + get => (FileAssemblyType)(int)this.Fields[(int)WixFileTupleFields.AssemblyType]; set => this.Set((int)WixFileTupleFields.AssemblyType, (int)value); } public string File_AssemblyManifest { - get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyManifest]?.Value; + get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyManifest]; set => this.Set((int)WixFileTupleFields.File_AssemblyManifest, value); } public string File_AssemblyApplication { - get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyApplication]?.Value; + get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyApplication]; set => this.Set((int)WixFileTupleFields.File_AssemblyApplication, value); } public string Directory_ { - get => (string)this.Fields[(int)WixFileTupleFields.Directory_]?.Value; + get => (string)this.Fields[(int)WixFileTupleFields.Directory_]; set => this.Set((int)WixFileTupleFields.Directory_, value); } public int DiskId { - get => (int)this.Fields[(int)WixFileTupleFields.DiskId]?.Value; + get => (int)this.Fields[(int)WixFileTupleFields.DiskId]; set => this.Set((int)WixFileTupleFields.DiskId, value); } @@ -139,31 +139,31 @@ namespace WixToolset.Data.Tuples public string ProcessorArchitecture { - get => (string)this.Fields[(int)WixFileTupleFields.ProcessorArchitecture]?.Value; + get => (string)this.Fields[(int)WixFileTupleFields.ProcessorArchitecture]; set => this.Set((int)WixFileTupleFields.ProcessorArchitecture, value); } public int PatchGroup { - get => (int)this.Fields[(int)WixFileTupleFields.PatchGroup]?.Value; + get => (int)this.Fields[(int)WixFileTupleFields.PatchGroup]; set => this.Set((int)WixFileTupleFields.PatchGroup, value); } public int Attributes { - get => (int)this.Fields[(int)WixFileTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixFileTupleFields.Attributes]; set => this.Set((int)WixFileTupleFields.Attributes, value); } public PatchAttributeType PatchAttributes { - get => (PatchAttributeType)(int)this.Fields[(int)WixFileTupleFields.PatchAttributes]?.Value; + get => (PatchAttributeType)(int)this.Fields[(int)WixFileTupleFields.PatchAttributes]; set => this.Set((int)WixFileTupleFields.PatchAttributes, (int)value); } public string DeltaPatchHeaderSource { - get => (string)this.Fields[(int)WixFileTupleFields.DeltaPatchHeaderSource]?.Value; + get => (string)this.Fields[(int)WixFileTupleFields.DeltaPatchHeaderSource]; set => this.Set((int)WixFileTupleFields.DeltaPatchHeaderSource, value); } } diff --git a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs index a5a59962..fd4c309d 100644 --- a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string WixFragment { - get => (string)this.Fields[(int)WixFragmentTupleFields.WixFragment]?.Value; + get => (string)this.Fields[(int)WixFragmentTupleFields.WixFragment]; set => this.Set((int)WixFragmentTupleFields.WixFragment, value); } } diff --git a/src/WixToolset.Data/Tuples/WixGroupTuple.cs b/src/WixToolset.Data/Tuples/WixGroupTuple.cs index be6bf7a4..f6487d55 100644 --- a/src/WixToolset.Data/Tuples/WixGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixGroupTuple.cs @@ -45,25 +45,25 @@ namespace WixToolset.Data.Tuples public string ParentId { - get => (string)this.Fields[(int)WixGroupTupleFields.ParentId]?.Value; + get => (string)this.Fields[(int)WixGroupTupleFields.ParentId]; set => this.Set((int)WixGroupTupleFields.ParentId, value); } public ComplexReferenceParentType ParentType { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupTupleFields.ParentType]?.Value, true); + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupTupleFields.ParentType], true); set => this.Set((int)WixGroupTupleFields.ParentType, value.ToString()); } public string ChildId { - get => (string)this.Fields[(int)WixGroupTupleFields.ChildId]?.Value; + get => (string)this.Fields[(int)WixGroupTupleFields.ChildId]; set => this.Set((int)WixGroupTupleFields.ChildId, value); } public ComplexReferenceChildType ChildType { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupTupleFields.ChildType]?.Value, true); + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupTupleFields.ChildType], true); set => this.Set((int)WixGroupTupleFields.ChildType, value.ToString()); } } diff --git a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs index b2fd18ca..3c9f69a0 100644 --- a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string Component_ { - get => (string)this.Fields[(int)WixInstanceComponentTupleFields.Component_]?.Value; + get => (string)this.Fields[(int)WixInstanceComponentTupleFields.Component_]; set => this.Set((int)WixInstanceComponentTupleFields.Component_, value); } } diff --git a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs index 4f152ac6..a72bad0f 100644 --- a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs +++ b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Id { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.Id]?.Value; + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.Id]; set => this.Set((int)WixInstanceTransformsTupleFields.Id, value); } public string PropertyId { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.PropertyId]?.Value; + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.PropertyId]; set => this.Set((int)WixInstanceTransformsTupleFields.PropertyId, value); } public string ProductCode { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductCode]?.Value; + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductCode]; set => this.Set((int)WixInstanceTransformsTupleFields.ProductCode, value); } public string ProductName { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductName]?.Value; + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductName]; set => this.Set((int)WixInstanceTransformsTupleFields.ProductName, value); } public string UpgradeCode { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.UpgradeCode]?.Value; + get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.UpgradeCode]; set => this.Set((int)WixInstanceTransformsTupleFields.UpgradeCode, value); } } diff --git a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs index f7ac8bc4..4e71be2d 100644 --- a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs @@ -49,7 +49,7 @@ namespace WixToolset.Data.Tuples public string CabinetTemplate { - get => (string)this.Fields[(int)WixMediaTemplateTupleFields.CabinetTemplate]?.Value; + get => (string)this.Fields[(int)WixMediaTemplateTupleFields.CabinetTemplate]; set => this.Set((int)WixMediaTemplateTupleFields.CabinetTemplate, value); } @@ -57,7 +57,7 @@ namespace WixToolset.Data.Tuples { get { - var value = (string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]?.Value; + var value = (string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]; return String.IsNullOrEmpty(value) ? null : (CompressionLevel?)Enum.Parse(typeof(CompressionLevel), value, true); } @@ -66,25 +66,25 @@ namespace WixToolset.Data.Tuples public string DiskPrompt { - get => (string)this.Fields[(int)WixMediaTemplateTupleFields.DiskPrompt]?.Value; + get => (string)this.Fields[(int)WixMediaTemplateTupleFields.DiskPrompt]; set => this.Set((int)WixMediaTemplateTupleFields.DiskPrompt, value); } public string VolumeLabel { - get => (string)this.Fields[(int)WixMediaTemplateTupleFields.VolumeLabel]?.Value; + get => (string)this.Fields[(int)WixMediaTemplateTupleFields.VolumeLabel]; set => this.Set((int)WixMediaTemplateTupleFields.VolumeLabel, value); } public int MaximumUncompressedMediaSize { - get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize]?.Value; + get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize]; set => this.Set((int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize, value); } public int MaximumCabinetSizeForLargeFileSplitting { - get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting]?.Value; + get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting]; set => this.Set((int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting, value); } } diff --git a/src/WixToolset.Data/Tuples/WixMediaTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTuple.cs index ec887df6..a705a4a2 100644 --- a/src/WixToolset.Data/Tuples/WixMediaTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMediaTuple.cs @@ -43,19 +43,19 @@ namespace WixToolset.Data.Tuples public int DiskId_ { - get => (int)this.Fields[(int)WixMediaTupleFields.DiskId_]?.Value; + get => (int)this.Fields[(int)WixMediaTupleFields.DiskId_]; set => this.Set((int)WixMediaTupleFields.DiskId_, value); } public CompressionLevel? CompressionLevel { - get => Enum.TryParse((string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]?.Value, true, out CompressionLevel value) ? value : (CompressionLevel?)null; + get => Enum.TryParse((string)this.Fields[(int)WixMediaTupleFields.CompressionLevel], true, out CompressionLevel value) ? value : (CompressionLevel?)null; set => this.Set((int)WixMediaTupleFields.CompressionLevel, value?.ToString()); } public string Layout { - get => (string)this.Fields[(int)WixMediaTupleFields.Layout]?.Value; + get => (string)this.Fields[(int)WixMediaTupleFields.Layout]; set => this.Set((int)WixMediaTupleFields.Layout, value); } } diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs index 8f44e6a4..6c5120b5 100644 --- a/src/WixToolset.Data/Tuples/WixMergeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMergeTuple.cs @@ -51,49 +51,49 @@ namespace WixToolset.Data.Tuples public string WixMerge { - get => (string)this.Fields[(int)WixMergeTupleFields.WixMerge]?.Value; + get => (string)this.Fields[(int)WixMergeTupleFields.WixMerge]; set => this.Set((int)WixMergeTupleFields.WixMerge, value); } public int Language { - get => (int)this.Fields[(int)WixMergeTupleFields.Language]?.Value; + get => (int)this.Fields[(int)WixMergeTupleFields.Language]; set => this.Set((int)WixMergeTupleFields.Language, value); } public string Directory_ { - get => (string)this.Fields[(int)WixMergeTupleFields.Directory_]?.Value; + get => (string)this.Fields[(int)WixMergeTupleFields.Directory_]; set => this.Set((int)WixMergeTupleFields.Directory_, value); } public string SourceFile { - get => (string)this.Fields[(int)WixMergeTupleFields.SourceFile]?.Value; + get => (string)this.Fields[(int)WixMergeTupleFields.SourceFile]; set => this.Set((int)WixMergeTupleFields.SourceFile, value); } public int DiskId { - get => (int)this.Fields[(int)WixMergeTupleFields.DiskId]?.Value; + get => (int)this.Fields[(int)WixMergeTupleFields.DiskId]; set => this.Set((int)WixMergeTupleFields.DiskId, value); } public bool? FileCompression { - get => (bool?)this.Fields[(int)WixMergeTupleFields.FileCompression]?.Value; + get => (bool?)this.Fields[(int)WixMergeTupleFields.FileCompression]; set => this.Set((int)WixMergeTupleFields.FileCompression, value); } public string ConfigurationData { - get => (string)this.Fields[(int)WixMergeTupleFields.ConfigurationData]?.Value; + get => (string)this.Fields[(int)WixMergeTupleFields.ConfigurationData]; set => this.Set((int)WixMergeTupleFields.ConfigurationData, value); } public string Feature_ { - get => (string)this.Fields[(int)WixMergeTupleFields.Feature_]?.Value; + get => (string)this.Fields[(int)WixMergeTupleFields.Feature_]; set => this.Set((int)WixMergeTupleFields.Feature_, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs b/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs index 03948efb..bcc0ad78 100644 --- a/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs @@ -55,61 +55,61 @@ namespace WixToolset.Data.Tuples public string Package { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Package]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Package]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Package, value); } public string Feature { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Feature]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Feature]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Feature, value); } public string Size { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Size]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Size]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Size, value); } public string Parent { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Parent]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Parent]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Parent, value); } public string Title { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Title]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Title]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Title, value); } public string Description { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Description]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Description]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Description, value); } public string Display { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Display]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Display]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Display, value); } public string Level { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Level]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Level]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Level, value); } public string Directory { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Directory]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Directory]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Directory, value); } public string Attributes { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Attributes]?.Value; + get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Attributes]; set => this.Set((int)WixPackageFeatureInfoTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs index 4823409d..56f6523b 100644 --- a/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs @@ -71,109 +71,109 @@ namespace WixToolset.Data.Tuples public string Package { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Package]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Package]; set => this.Set((int)WixPackagePropertiesTupleFields.Package, value); } public string Vital { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Vital]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Vital]; set => this.Set((int)WixPackagePropertiesTupleFields.Vital, value); } public string DisplayName { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayName]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayName]; set => this.Set((int)WixPackagePropertiesTupleFields.DisplayName, value); } public string Description { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Description]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Description]; set => this.Set((int)WixPackagePropertiesTupleFields.Description, value); } public string DownloadSize { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DownloadSize]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DownloadSize]; set => this.Set((int)WixPackagePropertiesTupleFields.DownloadSize, value); } public string PackageSize { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageSize]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageSize]; set => this.Set((int)WixPackagePropertiesTupleFields.PackageSize, value); } public string InstalledSize { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstalledSize]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstalledSize]; set => this.Set((int)WixPackagePropertiesTupleFields.InstalledSize, value); } public string PackageType { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageType]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageType]; set => this.Set((int)WixPackagePropertiesTupleFields.PackageType, value); } public string Permanent { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Permanent]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Permanent]; set => this.Set((int)WixPackagePropertiesTupleFields.Permanent, value); } public string LogPathVariable { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.LogPathVariable]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.LogPathVariable]; set => this.Set((int)WixPackagePropertiesTupleFields.LogPathVariable, value); } public string RollbackLogPathVariable { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.RollbackLogPathVariable]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.RollbackLogPathVariable]; set => this.Set((int)WixPackagePropertiesTupleFields.RollbackLogPathVariable, value); } public string Compressed { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Compressed]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Compressed]; set => this.Set((int)WixPackagePropertiesTupleFields.Compressed, value); } public string DisplayInternalUI { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayInternalUI]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayInternalUI]; set => this.Set((int)WixPackagePropertiesTupleFields.DisplayInternalUI, value); } public string ProductCode { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.ProductCode]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.ProductCode]; set => this.Set((int)WixPackagePropertiesTupleFields.ProductCode, value); } public string UpgradeCode { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.UpgradeCode]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.UpgradeCode]; set => this.Set((int)WixPackagePropertiesTupleFields.UpgradeCode, value); } public string Version { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Version]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Version]; set => this.Set((int)WixPackagePropertiesTupleFields.Version, value); } public string InstallCondition { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstallCondition]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstallCondition]; set => this.Set((int)WixPackagePropertiesTupleFields.InstallCondition, value); } public string Cache { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Cache]?.Value; + get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Cache]; set => this.Set((int)WixPackagePropertiesTupleFields.Cache, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs index 0610adac..6a456d4b 100644 --- a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string WixPatchBaseline { - get => (string)this.Fields[(int)WixPatchBaselineTupleFields.WixPatchBaseline]?.Value; + get => (string)this.Fields[(int)WixPatchBaselineTupleFields.WixPatchBaseline]; set => this.Set((int)WixPatchBaselineTupleFields.WixPatchBaseline, value); } public int DiskId { - get => (int)this.Fields[(int)WixPatchBaselineTupleFields.DiskId]?.Value; + get => (int)this.Fields[(int)WixPatchBaselineTupleFields.DiskId]; set => this.Set((int)WixPatchBaselineTupleFields.DiskId, value); } public int ValidationFlags { - get => (int)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags]?.Value; + get => (int)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags]; set => this.Set((int)WixPatchBaselineTupleFields.ValidationFlags, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs index 0683ba9d..d6df55bd 100644 --- a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string WixPatchFamilyGroup { - get => (string)this.Fields[(int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup]?.Value; + get => (string)this.Fields[(int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup]; set => this.Set((int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs index f589a9fc..303ccecd 100644 --- a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string ProductCode { - get => (string)this.Fields[(int)WixPatchIdTupleFields.ProductCode]?.Value; + get => (string)this.Fields[(int)WixPatchIdTupleFields.ProductCode]; set => this.Set((int)WixPatchIdTupleFields.ProductCode, value); } public string ClientPatchId { - get => (string)this.Fields[(int)WixPatchIdTupleFields.ClientPatchId]?.Value; + get => (string)this.Fields[(int)WixPatchIdTupleFields.ClientPatchId]; set => this.Set((int)WixPatchIdTupleFields.ClientPatchId, value); } public bool OptimizePatchSizeForLargeFiles { - get => (bool)this.Fields[(int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles]?.Value; + get => (bool)this.Fields[(int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles]; set => this.Set((int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles, value); } public int ApiPatchingSymbolFlags { - get => (int)this.Fields[(int)WixPatchIdTupleFields.ApiPatchingSymbolFlags]?.Value; + get => (int)this.Fields[(int)WixPatchIdTupleFields.ApiPatchingSymbolFlags]; set => this.Set((int)WixPatchIdTupleFields.ApiPatchingSymbolFlags, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs index c00031a5..7c065fe8 100644 --- a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Property { - get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Property]?.Value; + get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Property]; set => this.Set((int)WixPatchMetadataTupleFields.Property, value); } public string Value { - get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Value]?.Value; + get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Value]; set => this.Set((int)WixPatchMetadataTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs index 63528439..fa357566 100644 --- a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)WixPatchRefTupleFields.Table]?.Value; + get => (string)this.Fields[(int)WixPatchRefTupleFields.Table]; set => this.Set((int)WixPatchRefTupleFields.Table, value); } public string PrimaryKeys { - get => (string)this.Fields[(int)WixPatchRefTupleFields.PrimaryKeys]?.Value; + get => (string)this.Fields[(int)WixPatchRefTupleFields.PrimaryKeys]; set => this.Set((int)WixPatchRefTupleFields.PrimaryKeys, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs index 8940c0c6..c0d7a095 100644 --- a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string ProductCode { - get => (string)this.Fields[(int)WixPatchTargetTupleFields.ProductCode]?.Value; + get => (string)this.Fields[(int)WixPatchTargetTupleFields.ProductCode]; set => this.Set((int)WixPatchTargetTupleFields.ProductCode, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs index 3c437a58..c992bb4f 100644 --- a/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs @@ -49,43 +49,43 @@ namespace WixToolset.Data.Tuples public string Payload { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Payload]?.Value; + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Payload]; set => this.Set((int)WixPayloadPropertiesTupleFields.Payload, value); } public string Package { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Package]?.Value; + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Package]; set => this.Set((int)WixPayloadPropertiesTupleFields.Package, value); } public string Container { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Container]?.Value; + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Container]; set => this.Set((int)WixPayloadPropertiesTupleFields.Container, value); } public string Name { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Name]?.Value; + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Name]; set => this.Set((int)WixPayloadPropertiesTupleFields.Name, value); } public string Size { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Size]?.Value; + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Size]; set => this.Set((int)WixPayloadPropertiesTupleFields.Size, value); } public string DownloadUrl { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.DownloadUrl]?.Value; + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.DownloadUrl]; set => this.Set((int)WixPayloadPropertiesTupleFields.DownloadUrl, value); } public string LayoutOnly { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.LayoutOnly]?.Value; + get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.LayoutOnly]; set => this.Set((int)WixPayloadPropertiesTupleFields.LayoutOnly, value); } } diff --git a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs index 40065f55..1cd44a6a 100644 --- a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string WixSearch_ { - get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearch_]?.Value; + get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearch_]; set => this.Set((int)WixProductSearchTupleFields.WixSearch_, value); } public string Guid { - get => (string)this.Fields[(int)WixProductSearchTupleFields.Guid]?.Value; + get => (string)this.Fields[(int)WixProductSearchTupleFields.Guid]; set => this.Set((int)WixProductSearchTupleFields.Guid, value); } public int Attributes { - get => (int)this.Fields[(int)WixProductSearchTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixProductSearchTupleFields.Attributes]; set => this.Set((int)WixProductSearchTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs index 74e17d18..2e2c96f8 100644 --- a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs @@ -43,25 +43,25 @@ namespace WixToolset.Data.Tuples public string Property_ { - get => (string)this.Fields[(int)WixPropertyTupleFields.Property_]?.Value; + get => (string)this.Fields[(int)WixPropertyTupleFields.Property_]; set => this.Set((int)WixPropertyTupleFields.Property_, value); } public bool Admin { - get => (bool)this.Fields[(int)WixPropertyTupleFields.Admin]?.Value; + get => (bool)this.Fields[(int)WixPropertyTupleFields.Admin]; set => this.Set((int)WixPropertyTupleFields.Admin, value); } public bool Hidden { - get => (bool)this.Fields[(int)WixPropertyTupleFields.Hidden]?.Value; + get => (bool)this.Fields[(int)WixPropertyTupleFields.Hidden]; set => this.Set((int)WixPropertyTupleFields.Hidden, value); } public bool Secure { - get => (bool)this.Fields[(int)WixPropertyTupleFields.Secure]?.Value; + get => (bool)this.Fields[(int)WixPropertyTupleFields.Secure]; set => this.Set((int)WixPropertyTupleFields.Secure, value); } } diff --git a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs index c23bf957..9947b527 100644 --- a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string WixSearch_ { - get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearch_]?.Value; + get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearch_]; set => this.Set((int)WixRegistrySearchTupleFields.WixSearch_, value); } public int Root { - get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Root]?.Value; + get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Root]; set => this.Set((int)WixRegistrySearchTupleFields.Root, value); } public string Key { - get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Key]?.Value; + get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Key]; set => this.Set((int)WixRegistrySearchTupleFields.Key, value); } public string Value { - get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Value]?.Value; + get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Value]; set => this.Set((int)WixRegistrySearchTupleFields.Value, value); } public int Attributes { - get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Attributes]; set => this.Set((int)WixRegistrySearchTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs index 5151aa2b..a7a2cf92 100644 --- a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs +++ b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs @@ -47,7 +47,7 @@ namespace WixToolset.Data.Tuples public string BundleId { - get => (string)this.Fields[(int)WixRelatedBundleTupleFields.BundleId]?.Value; + get => (string)this.Fields[(int)WixRelatedBundleTupleFields.BundleId]; set => this.Set((int)WixRelatedBundleTupleFields.BundleId, value); } diff --git a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs index 05021a11..79e4dcac 100644 --- a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string WixSearch_ { - get => (string)this.Fields[(int)WixSearchRelationTupleFields.WixSearch_]?.Value; + get => (string)this.Fields[(int)WixSearchRelationTupleFields.WixSearch_]; set => this.Set((int)WixSearchRelationTupleFields.WixSearch_, value); } public string ParentId_ { - get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentId_]?.Value; + get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentId_]; set => this.Set((int)WixSearchRelationTupleFields.ParentId_, value); } public int Attributes { - get => (int)this.Fields[(int)WixSearchRelationTupleFields.Attributes]?.Value; + get => (int)this.Fields[(int)WixSearchRelationTupleFields.Attributes]; set => this.Set((int)WixSearchRelationTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/WixSearchTuple.cs b/src/WixToolset.Data/Tuples/WixSearchTuple.cs index 887a7b0d..21970e40 100644 --- a/src/WixToolset.Data/Tuples/WixSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string WixSearch { - get => (string)this.Fields[(int)WixSearchTupleFields.WixSearch]?.Value; + get => (string)this.Fields[(int)WixSearchTupleFields.WixSearch]; set => this.Set((int)WixSearchTupleFields.WixSearch, value); } public string Variable { - get => (string)this.Fields[(int)WixSearchTupleFields.Variable]?.Value; + get => (string)this.Fields[(int)WixSearchTupleFields.Variable]; set => this.Set((int)WixSearchTupleFields.Variable, value); } public string Condition { - get => (string)this.Fields[(int)WixSearchTupleFields.Condition]?.Value; + get => (string)this.Fields[(int)WixSearchTupleFields.Condition]; set => this.Set((int)WixSearchTupleFields.Condition, value); } } diff --git a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs index 5641f2b3..2964cfb2 100644 --- a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs @@ -41,13 +41,13 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.Table]?.Value; + get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.Table]; set => this.Set((int)WixSimpleReferenceTupleFields.Table, value); } public string PrimaryKeys { - get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.PrimaryKeys]?.Value; + get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.PrimaryKeys]; set => this.Set((int)WixSimpleReferenceTupleFields.PrimaryKeys, value); } diff --git a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs index 11131f2e..70bda370 100644 --- a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs @@ -41,13 +41,13 @@ namespace WixToolset.Data.Tuples public SequenceTable SequenceTable { - get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionTupleFields.SequenceTable]?.Value); + get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionTupleFields.SequenceTable]); set => this.Set((int)WixSuppressActionTupleFields.SequenceTable, value.ToString()); } public string Action { - get => (string)this.Fields[(int)WixSuppressActionTupleFields.Action]?.Value; + get => (string)this.Fields[(int)WixSuppressActionTupleFields.Action]; set => this.Set((int)WixSuppressActionTupleFields.Action, value); } } diff --git a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs index c6f42eac..e591c19b 100644 --- a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples public string WixSuppressModularization { - get => (string)this.Fields[(int)WixSuppressModularizationTupleFields.WixSuppressModularization]?.Value; + get => (string)this.Fields[(int)WixSuppressModularizationTupleFields.WixSuppressModularization]; set => this.Set((int)WixSuppressModularizationTupleFields.WixSuppressModularization, value); } } diff --git a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs index 64043ffe..93a59cce 100644 --- a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Manufacturer { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Manufacturer]?.Value; + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Manufacturer]; set => this.Set((int)WixUpdateRegistrationTupleFields.Manufacturer, value); } public string Department { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Department]?.Value; + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Department]; set => this.Set((int)WixUpdateRegistrationTupleFields.Department, value); } public string ProductFamily { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.ProductFamily]?.Value; + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.ProductFamily]; set => this.Set((int)WixUpdateRegistrationTupleFields.ProductFamily, value); } public string Name { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Name]?.Value; + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Name]; set => this.Set((int)WixUpdateRegistrationTupleFields.Name, value); } public string Classification { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Classification]?.Value; + get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Classification]; set => this.Set((int)WixUpdateRegistrationTupleFields.Classification, value); } } diff --git a/src/WixToolset.Data/Tuples/WixVariableTuple.cs b/src/WixToolset.Data/Tuples/WixVariableTuple.cs index 6b6e7354..4af8a5ff 100644 --- a/src/WixToolset.Data/Tuples/WixVariableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixVariableTuple.cs @@ -41,19 +41,19 @@ namespace WixToolset.Data.Tuples public string WixVariable { - get => (string)this.Fields[(int)WixVariableTupleFields.WixVariable]?.Value; + get => (string)this.Fields[(int)WixVariableTupleFields.WixVariable]; set => this.Set((int)WixVariableTupleFields.WixVariable, value); } public string Value { - get => (string)this.Fields[(int)WixVariableTupleFields.Value]?.Value; + get => (string)this.Fields[(int)WixVariableTupleFields.Value]; set => this.Set((int)WixVariableTupleFields.Value, value); } public bool Overridable { - get => (bool)this.Fields[(int)WixVariableTupleFields.Overridable]?.Value; + get => (bool)this.Fields[(int)WixVariableTupleFields.Overridable]; set => this.Set((int)WixVariableTupleFields.Overridable, value); } } diff --git a/src/WixToolset.Data/Tuples/_StreamsTuple.cs b/src/WixToolset.Data/Tuples/_StreamsTuple.cs index 1f9d75e8..c581d11a 100644 --- a/src/WixToolset.Data/Tuples/_StreamsTuple.cs +++ b/src/WixToolset.Data/Tuples/_StreamsTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public string Name { - get => (string)this.Fields[(int)_StreamsTupleFields.Name]?.Value; + get => (string)this.Fields[(int)_StreamsTupleFields.Name]; set => this.Set((int)_StreamsTupleFields.Name, value); } public string Data { - get => (string)this.Fields[(int)_StreamsTupleFields.Data]?.Value; + get => (string)this.Fields[(int)_StreamsTupleFields.Data]; set => this.Set((int)_StreamsTupleFields.Data, value); } } diff --git a/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs index 4ce3b63f..249afe84 100644 --- a/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs +++ b/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs @@ -39,13 +39,13 @@ namespace WixToolset.Data.Tuples public int PropertyId { - get => (int)this.Fields[(int)_SummaryInformationTupleFields.PropertyId]?.Value; + get => (int)this.Fields[(int)_SummaryInformationTupleFields.PropertyId]; set => this.Set((int)_SummaryInformationTupleFields.PropertyId, value); } public string Value { - get => (string)this.Fields[(int)_SummaryInformationTupleFields.Value]?.Value; + get => (string)this.Fields[(int)_SummaryInformationTupleFields.Value]; set => this.Set((int)_SummaryInformationTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/_TransformViewTuple.cs b/src/WixToolset.Data/Tuples/_TransformViewTuple.cs index e3355062..8a750dfb 100644 --- a/src/WixToolset.Data/Tuples/_TransformViewTuple.cs +++ b/src/WixToolset.Data/Tuples/_TransformViewTuple.cs @@ -45,31 +45,31 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)_TransformViewTupleFields.Table]?.Value; + get => (string)this.Fields[(int)_TransformViewTupleFields.Table]; set => this.Set((int)_TransformViewTupleFields.Table, value); } public string Column { - get => (string)this.Fields[(int)_TransformViewTupleFields.Column]?.Value; + get => (string)this.Fields[(int)_TransformViewTupleFields.Column]; set => this.Set((int)_TransformViewTupleFields.Column, value); } public string Row { - get => (string)this.Fields[(int)_TransformViewTupleFields.Row]?.Value; + get => (string)this.Fields[(int)_TransformViewTupleFields.Row]; set => this.Set((int)_TransformViewTupleFields.Row, value); } public string Data { - get => (string)this.Fields[(int)_TransformViewTupleFields.Data]?.Value; + get => (string)this.Fields[(int)_TransformViewTupleFields.Data]; set => this.Set((int)_TransformViewTupleFields.Data, value); } public string Current { - get => (string)this.Fields[(int)_TransformViewTupleFields.Current]?.Value; + get => (string)this.Fields[(int)_TransformViewTupleFields.Current]; set => this.Set((int)_TransformViewTupleFields.Current, value); } } diff --git a/src/WixToolset.Data/Tuples/_ValidationTuple.cs b/src/WixToolset.Data/Tuples/_ValidationTuple.cs index 3bcd064c..869b19d8 100644 --- a/src/WixToolset.Data/Tuples/_ValidationTuple.cs +++ b/src/WixToolset.Data/Tuples/_ValidationTuple.cs @@ -55,61 +55,61 @@ namespace WixToolset.Data.Tuples public string Table { - get => (string)this.Fields[(int)_ValidationTupleFields.Table]?.Value; + get => (string)this.Fields[(int)_ValidationTupleFields.Table]; set => this.Set((int)_ValidationTupleFields.Table, value); } public string Column { - get => (string)this.Fields[(int)_ValidationTupleFields.Column]?.Value; + get => (string)this.Fields[(int)_ValidationTupleFields.Column]; set => this.Set((int)_ValidationTupleFields.Column, value); } public string Nullable { - get => (string)this.Fields[(int)_ValidationTupleFields.Nullable]?.Value; + get => (string)this.Fields[(int)_ValidationTupleFields.Nullable]; set => this.Set((int)_ValidationTupleFields.Nullable, value); } public int MinValue { - get => (int)this.Fields[(int)_ValidationTupleFields.MinValue]?.Value; + get => (int)this.Fields[(int)_ValidationTupleFields.MinValue]; set => this.Set((int)_ValidationTupleFields.MinValue, value); } public int MaxValue { - get => (int)this.Fields[(int)_ValidationTupleFields.MaxValue]?.Value; + get => (int)this.Fields[(int)_ValidationTupleFields.MaxValue]; set => this.Set((int)_ValidationTupleFields.MaxValue, value); } public string KeyTable { - get => (string)this.Fields[(int)_ValidationTupleFields.KeyTable]?.Value; + get => (string)this.Fields[(int)_ValidationTupleFields.KeyTable]; set => this.Set((int)_ValidationTupleFields.KeyTable, value); } public int KeyColumn { - get => (int)this.Fields[(int)_ValidationTupleFields.KeyColumn]?.Value; + get => (int)this.Fields[(int)_ValidationTupleFields.KeyColumn]; set => this.Set((int)_ValidationTupleFields.KeyColumn, value); } public string Category { - get => (string)this.Fields[(int)_ValidationTupleFields.Category]?.Value; + get => (string)this.Fields[(int)_ValidationTupleFields.Category]; set => this.Set((int)_ValidationTupleFields.Category, value); } public string Set { - get => (string)this.Fields[(int)_ValidationTupleFields.Set]?.Value; + get => (string)this.Fields[(int)_ValidationTupleFields.Set]; set => this.Set((int)_ValidationTupleFields.Set, value); } public string Description { - get => (string)this.Fields[(int)_ValidationTupleFields.Description]?.Value; + get => (string)this.Fields[(int)_ValidationTupleFields.Description]; set => this.Set((int)_ValidationTupleFields.Description, value); } } -- cgit v1.2.3-55-g6feb From 54541ef517190f37d0625627b028834f0871a959 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 22 May 2019 00:19:41 -0700 Subject: Implement many more strong tuples Also fixes several warnings. --- src/WixToolset.Data/CompressionLevel.cs | 4 +- src/WixToolset.Data/ErrorMessages.cs | 6 ++ src/WixToolset.Data/IntermediateFieldExtensions.cs | 7 +- .../IntermediateFieldValueExtensions.cs | 9 +- src/WixToolset.Data/Tuples/BillboardTuple.cs | 8 -- src/WixToolset.Data/Tuples/BinaryTuple.cs | 8 -- src/WixToolset.Data/Tuples/BindImageTuple.cs | 52 --------- src/WixToolset.Data/Tuples/CCPSearchTuple.cs | 12 +-- src/WixToolset.Data/Tuples/ComponentTuple.cs | 8 -- src/WixToolset.Data/Tuples/DirectoryTuple.cs | 20 ++-- src/WixToolset.Data/Tuples/DuplicateFileTuple.cs | 8 -- src/WixToolset.Data/Tuples/FileTuple.cs | 32 ++++-- src/WixToolset.Data/Tuples/FontTuple.cs | 52 --------- src/WixToolset.Data/Tuples/IconTuple.cs | 8 -- src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs | 4 +- .../Tuples/IsolatedComponentTuple.cs | 2 +- src/WixToolset.Data/Tuples/MediaTuple.cs | 18 +++- .../Tuples/ModuleIgnoreTableTuple.cs | 14 +-- src/WixToolset.Data/Tuples/MoveFileTuple.cs | 20 ++-- src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs | 6 +- .../Tuples/MsiLockPermissionsExTuple.cs | 8 -- .../Tuples/MsiShortcutPropertyTuple.cs | 8 -- src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs | 10 +- src/WixToolset.Data/Tuples/ODBCDriverTuple.cs | 10 +- src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs | 10 +- src/WixToolset.Data/Tuples/ProgIdTuple.cs | 4 +- src/WixToolset.Data/Tuples/PropertyTuple.cs | 10 +- src/WixToolset.Data/Tuples/RegLocatorTuple.cs | 37 ++++--- src/WixToolset.Data/Tuples/RemoveFileTuple.cs | 26 ++--- src/WixToolset.Data/Tuples/ReserveCostTuple.cs | 10 +- src/WixToolset.Data/Tuples/SelfRegTuple.cs | 52 --------- .../Tuples/SummaryInformationTuple.cs | 71 +++++++++++++ src/WixToolset.Data/Tuples/TargetImagesTuple.cs | 6 +- src/WixToolset.Data/Tuples/TransformsFlags.cs | 79 ++++++++++++++ src/WixToolset.Data/Tuples/TupleDefinitions.cs | 40 +------ src/WixToolset.Data/Tuples/TypeLibTuple.cs | 12 +-- src/WixToolset.Data/Tuples/UITextTuple.cs | 10 +- .../Tuples/UpgradedFiles_OptionalDataTuple.cs | 14 +-- src/WixToolset.Data/Tuples/WixActionTuple.cs | 12 +-- .../Tuples/WixApprovedExeForElevationTuple.cs | 14 +-- .../Tuples/WixBootstrapperApplicationTuple.cs | 16 +-- .../Tuples/WixBundleContainerTuple.cs | 20 ++-- .../Tuples/WixBundlePropertiesTuple.cs | 10 +- .../Tuples/WixBundleRelatedPackageTuple.cs | 18 +--- .../Tuples/WixBundleVariableTuple.cs | 10 +- src/WixToolset.Data/Tuples/WixChainItemTuple.cs | 12 +-- src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 14 +-- .../Tuples/WixDeltaPatchFileTuple.cs | 8 -- .../Tuples/WixDeltaPatchSymbolPathsTuple.cs | 22 ++-- src/WixToolset.Data/Tuples/WixDirectoryTuple.cs | 52 --------- src/WixToolset.Data/Tuples/WixFileTuple.cs | 14 +-- .../Tuples/WixInstanceTransformsTuple.cs | 10 +- .../Tuples/WixMediaTemplateTuple.cs | 19 ++-- src/WixToolset.Data/Tuples/WixMediaTuple.cs | 62 ----------- src/WixToolset.Data/Tuples/WixMergeTuple.cs | 10 +- src/WixToolset.Data/Tuples/WixOrderingTuple.cs | 16 +-- .../Tuples/WixPatchBaselineTuple.cs | 16 +-- .../Tuples/WixSuppressModularizationTuple.cs | 12 +-- src/WixToolset.Data/Tuples/WixUITuple.cs | 16 +-- src/WixToolset.Data/Tuples/WixVariableTuple.cs | 10 +- src/WixToolset.Data/Tuples/_StreamsTuple.cs | 52 --------- .../Tuples/_SummaryInformationTuple.cs | 52 --------- src/WixToolset.Data/Tuples/_TransformViewTuple.cs | 76 -------------- src/WixToolset.Data/Tuples/_ValidationTuple.cs | 116 --------------------- .../WindowsInstaller/WindowsInstallerStandard.cs | 28 ++--- .../WixToolsetTest.Data/TupleDefinitionFixture.cs | 6 +- 66 files changed, 391 insertions(+), 1047 deletions(-) delete mode 100644 src/WixToolset.Data/Tuples/BindImageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/FontTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/SelfRegTuple.cs create mode 100644 src/WixToolset.Data/Tuples/SummaryInformationTuple.cs create mode 100644 src/WixToolset.Data/Tuples/TransformsFlags.cs delete mode 100644 src/WixToolset.Data/Tuples/WixDirectoryTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixMediaTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/_StreamsTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/_TransformViewTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/_ValidationTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/CompressionLevel.cs b/src/WixToolset.Data/CompressionLevel.cs index c98eb9e1..05aa3816 100644 --- a/src/WixToolset.Data/CompressionLevel.cs +++ b/src/WixToolset.Data/CompressionLevel.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -22,4 +22,4 @@ namespace WixToolset.Data /// Use ms-zip compression. Mszip } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 48c1b44b..33cccdd2 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -1954,6 +1954,11 @@ namespace WixToolset.Data return Message(null, Ids.UnableToGetAuthenticodeCertOfFileDownlevelOS, "Unable to get the authenticode certificate of '{0}'. The cryptography API has limitations on Windows XP and Windows Server 2003. More information: {1}", filePath, moreInformation); } + public static Message UnableToConvertFieldToNumber(string value) + { + return Message(null, Ids.UnableToConvertFieldToNumber, "Unable to convert intermediate tuple field value '{0}' to a number. This means the intermediate is corrupt or of an unsupported version.", value); + } + public static Message UnableToOpenModule(SourceLineNumber sourceLineNumbers, string modulePath, string message) { return Message(sourceLineNumbers, Ids.UnableToOpenModule, "Unable to open merge module '{0}'. Check to make sure the module language is correct. '{1}'", modulePath, message); @@ -2634,6 +2639,7 @@ namespace WixToolset.Data MsiTransactionX86BeforeX64 = 390, NoSourceFiles = 391, WixiplSourceFileIsExclusive = 392, + UnableToConvertFieldToNumber = 393, } } } diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index 6bc82b37..2f8aec1d 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -151,6 +151,11 @@ namespace WixToolset.Data } } + public static object AsObject(this IntermediateField field) + { + return field?.Value.Data; + } + public static IntermediateField Set(this IntermediateField field, bool value) { object data; diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs index 25a40ee6..f9322e09 100644 --- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs @@ -71,7 +71,14 @@ namespace WixToolset.Data } else if (value.Data is string s) { - return Convert.ToInt32(s); + try + { + return Convert.ToInt32(s); + } + catch (FormatException) + { + throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s)); + } } return (int)value.Data; diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs index 43a05a71..dc5c5769 100644 --- a/src/WixToolset.Data/Tuples/BillboardTuple.cs +++ b/src/WixToolset.Data/Tuples/BillboardTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.Billboard, new[] { - new IntermediateFieldDefinition(nameof(BillboardTupleFields.Billboard), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BillboardTupleFields.Feature_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BillboardTupleFields.Action), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BillboardTupleFields.Ordering), IntermediateFieldType.Number), @@ -23,7 +22,6 @@ namespace WixToolset.Data.Tuples { public enum BillboardTupleFields { - Billboard, Feature_, Action, Ordering, @@ -41,12 +39,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[BillboardTupleFields index] => this.Fields[(int)index]; - public string Billboard - { - get => (string)this.Fields[(int)BillboardTupleFields.Billboard]; - set => this.Set((int)BillboardTupleFields.Billboard, value); - } - public string Feature_ { get => (string)this.Fields[(int)BillboardTupleFields.Feature_]; diff --git a/src/WixToolset.Data/Tuples/BinaryTuple.cs b/src/WixToolset.Data/Tuples/BinaryTuple.cs index 061f6f71..9e8df73d 100644 --- a/src/WixToolset.Data/Tuples/BinaryTuple.cs +++ b/src/WixToolset.Data/Tuples/BinaryTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.Binary, new[] { - new IntermediateFieldDefinition(nameof(BinaryTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BinaryTupleFields.Data), IntermediateFieldType.Path), }, typeof(BinaryTuple)); @@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples { public enum BinaryTupleFields { - Name, Data, } @@ -37,12 +35,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[BinaryTupleFields index] => this.Fields[(int)index]; - public string Name - { - get => (string)this.Fields[(int)BinaryTupleFields.Name]; - set => this.Set((int)BinaryTupleFields.Name, value); - } - public string Data { get => (string)this.Fields[(int)BinaryTupleFields.Data]; diff --git a/src/WixToolset.Data/Tuples/BindImageTuple.cs b/src/WixToolset.Data/Tuples/BindImageTuple.cs deleted file mode 100644 index 14622238..00000000 --- a/src/WixToolset.Data/Tuples/BindImageTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition BindImage = new IntermediateTupleDefinition( - TupleDefinitionType.BindImage, - new[] - { - new IntermediateFieldDefinition(nameof(BindImageTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BindImageTupleFields.Path), IntermediateFieldType.String), - }, - typeof(BindImageTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum BindImageTupleFields - { - File_, - Path, - } - - public class BindImageTuple : IntermediateTuple - { - public BindImageTuple() : base(TupleDefinitions.BindImage, null, null) - { - } - - public BindImageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.BindImage, sourceLineNumber, id) - { - } - - public IntermediateField this[BindImageTupleFields index] => this.Fields[(int)index]; - - public string File_ - { - get => (string)this.Fields[(int)BindImageTupleFields.File_]; - set => this.Set((int)BindImageTupleFields.File_, value); - } - - public string Path - { - get => (string)this.Fields[(int)BindImageTupleFields.Path]; - set => this.Set((int)BindImageTupleFields.Path, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs index 3d849128..bdc64907 100644 --- a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition CCPSearch = new IntermediateTupleDefinition( TupleDefinitionType.CCPSearch, - new[] - { - new IntermediateFieldDefinition(nameof(CCPSearchTupleFields.Signature_), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(CCPSearchTuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum CCPSearchTupleFields { - Signature_, } public class CCPSearchTuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[CCPSearchTupleFields index] => this.Fields[(int)index]; - - public string Signature_ - { - get => (string)this.Fields[(int)CCPSearchTupleFields.Signature_]; - set => this.Set((int)CCPSearchTupleFields.Signature_, value); - } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs index f573818e..67cb7042 100644 --- a/src/WixToolset.Data/Tuples/ComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/ComponentTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.Component, new[] { - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Component), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ComponentTupleFields.ComponentId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ComponentTupleFields.Directory_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ComponentTupleFields.Location), IntermediateFieldType.Number), @@ -34,7 +33,6 @@ namespace WixToolset.Data.Tuples { public enum ComponentTupleFields { - Component, ComponentId, Directory_, Location, @@ -70,12 +68,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ComponentTupleFields index] => this.Fields[(int)index]; - public string Component - { - get => (string)this.Fields[(int)ComponentTupleFields.Component]; - set => this.Set((int)ComponentTupleFields.Component, value); - } - public string ComponentId { get => (string)this.Fields[(int)ComponentTupleFields.ComponentId]; diff --git a/src/WixToolset.Data/Tuples/DirectoryTuple.cs b/src/WixToolset.Data/Tuples/DirectoryTuple.cs index b36345c7..e36d6796 100644 --- a/src/WixToolset.Data/Tuples/DirectoryTuple.cs +++ b/src/WixToolset.Data/Tuples/DirectoryTuple.cs @@ -10,9 +10,9 @@ namespace WixToolset.Data TupleDefinitionType.Directory, new[] { - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Directory), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Directory_Parent), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DirectoryTupleFields.DefaultDir), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), }, typeof(DirectoryTuple)); } @@ -22,9 +22,9 @@ namespace WixToolset.Data.Tuples { public enum DirectoryTupleFields { - Directory, Directory_Parent, DefaultDir, + ComponentGuidGenerationSeed, } public class DirectoryTuple : IntermediateTuple @@ -39,22 +39,22 @@ namespace WixToolset.Data.Tuples public IntermediateField this[DirectoryTupleFields index] => this.Fields[(int)index]; - public string Directory - { - get => (string)this.Fields[(int)DirectoryTupleFields.Directory]?.Value; - set => this.Set((int)DirectoryTupleFields.Directory, value); - } - public string Directory_Parent { - get => (string)this.Fields[(int)DirectoryTupleFields.Directory_Parent]?.Value; + get => (string)this.Fields[(int)DirectoryTupleFields.Directory_Parent]; set => this.Set((int)DirectoryTupleFields.Directory_Parent, value); } public string DefaultDir { - get => (string)this.Fields[(int)DirectoryTupleFields.DefaultDir]?.Value; + get => (string)this.Fields[(int)DirectoryTupleFields.DefaultDir]; set => this.Set((int)DirectoryTupleFields.DefaultDir, value); } + + public string ComponentGuidGenerationSeed + { + get => (string)this.Fields[(int)DirectoryTupleFields.ComponentGuidGenerationSeed]; + set => this.Set((int)DirectoryTupleFields.ComponentGuidGenerationSeed, value); + } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs index 07a3b66d..08720383 100644 --- a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs +++ b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.DuplicateFile, new[] { - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.FileKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.File_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestName), IntermediateFieldType.String), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum DuplicateFileTupleFields { - FileKey, Component_, File_, DestName, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[DuplicateFileTupleFields index] => this.Fields[(int)index]; - public string FileKey - { - get => (string)this.Fields[(int)DuplicateFileTupleFields.FileKey]; - set => this.Set((int)DuplicateFileTupleFields.FileKey, value); - } - public string Component_ { get => (string)this.Fields[(int)DuplicateFileTupleFields.Component_]; diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index 1271ad55..eab29dfa 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.File, new[] { - new IntermediateFieldDefinition(nameof(FileTupleFields.File), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.ShortFileName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.LongFileName), IntermediateFieldType.String), @@ -23,6 +22,9 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(FileTupleFields.Vital), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(FileTupleFields.Checksum), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(FileTupleFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.FontTitle), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.SelfRegCost), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileTupleFields.BindPath), IntermediateFieldType.String), }, typeof(FileTuple)); } @@ -32,7 +34,6 @@ namespace WixToolset.Data.Tuples { public enum FileTupleFields { - File, Component_, ShortFileName, LongFileName, @@ -45,6 +46,9 @@ namespace WixToolset.Data.Tuples Vital, Checksum, Compressed, + FontTitle, + SelfRegCost, + BindPath, } public class FileTuple : IntermediateTuple @@ -59,12 +63,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; - public string File - { - get => (string)this.Fields[(int)FileTupleFields.File]; - set => this.Set((int)FileTupleFields.File, value); - } - public string Component_ { get => (string)this.Fields[(int)FileTupleFields.Component_]; @@ -136,5 +134,23 @@ namespace WixToolset.Data.Tuples get => (bool?)this.Fields[(int)FileTupleFields.Compressed]; set => this.Set((int)FileTupleFields.Compressed, value); } + + public string FontTitle + { + get => (string)this.Fields[(int)FileTupleFields.FontTitle]; + set => this.Set((int)FileTupleFields.FontTitle, value); + } + + public int? SelfRegCost + { + get => (int?)this.Fields[(int)FileTupleFields.SelfRegCost]; + set => this.Set((int)FileTupleFields.SelfRegCost, value); + } + + public string BindPath + { + get => (string)this.Fields[(int)FileTupleFields.BindPath]; + set => this.Set((int)FileTupleFields.BindPath, value); + } } } diff --git a/src/WixToolset.Data/Tuples/FontTuple.cs b/src/WixToolset.Data/Tuples/FontTuple.cs deleted file mode 100644 index 12f41321..00000000 --- a/src/WixToolset.Data/Tuples/FontTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition Font = new IntermediateTupleDefinition( - TupleDefinitionType.Font, - new[] - { - new IntermediateFieldDefinition(nameof(FontTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FontTupleFields.FontTitle), IntermediateFieldType.String), - }, - typeof(FontTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum FontTupleFields - { - File_, - FontTitle, - } - - public class FontTuple : IntermediateTuple - { - public FontTuple() : base(TupleDefinitions.Font, null, null) - { - } - - public FontTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Font, sourceLineNumber, id) - { - } - - public IntermediateField this[FontTupleFields index] => this.Fields[(int)index]; - - public string File_ - { - get => (string)this.Fields[(int)FontTupleFields.File_]; - set => this.Set((int)FontTupleFields.File_, value); - } - - public string FontTitle - { - get => (string)this.Fields[(int)FontTupleFields.FontTitle]; - set => this.Set((int)FontTupleFields.FontTitle, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IconTuple.cs b/src/WixToolset.Data/Tuples/IconTuple.cs index 0644f47d..0e8c9fd7 100644 --- a/src/WixToolset.Data/Tuples/IconTuple.cs +++ b/src/WixToolset.Data/Tuples/IconTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.Icon, new[] { - new IntermediateFieldDefinition(nameof(IconTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IconTupleFields.Data), IntermediateFieldType.Path), }, typeof(IconTuple)); @@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples { public enum IconTupleFields { - Name, Data, } @@ -37,12 +35,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[IconTupleFields index] => this.Fields[(int)index]; - public string Name - { - get => (string)this.Fields[(int)IconTupleFields.Name]; - set => this.Set((int)IconTupleFields.Name, value); - } - public string Data { get => (string)this.Fields[(int)IconTupleFields.Data]; diff --git a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs index d06302a6..b7052ee3 100644 --- a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs +++ b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs @@ -63,9 +63,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ImageFamiliesTupleFields.MediaDiskId, value); } - public int FileSequenceStart + public int? FileSequenceStart { - get => (int)this.Fields[(int)ImageFamiliesTupleFields.FileSequenceStart]; + get => (int?)this.Fields[(int)ImageFamiliesTupleFields.FileSequenceStart]; set => this.Set((int)ImageFamiliesTupleFields.FileSequenceStart, value); } diff --git a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs index 3f037005..325416e6 100644 --- a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs @@ -49,4 +49,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)IsolatedComponentTupleFields.Component_Application, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/MediaTuple.cs b/src/WixToolset.Data/Tuples/MediaTuple.cs index a78f56de..009a588f 100644 --- a/src/WixToolset.Data/Tuples/MediaTuple.cs +++ b/src/WixToolset.Data/Tuples/MediaTuple.cs @@ -16,6 +16,8 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(MediaTupleFields.Cabinet), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MediaTupleFields.VolumeLabel), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MediaTupleFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaTupleFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaTupleFields.Layout), IntermediateFieldType.String), }, typeof(MediaTuple)); } @@ -31,6 +33,8 @@ namespace WixToolset.Data.Tuples Cabinet, VolumeLabel, Source, + CompressionLevel, + Layout, } public class MediaTuple : IntermediateTuple @@ -80,5 +84,17 @@ namespace WixToolset.Data.Tuples get => (string)this.Fields[(int)MediaTupleFields.Source]; set => this.Set((int)MediaTupleFields.Source, value); } + + public CompressionLevel? CompressionLevel + { + get => (CompressionLevel?)this.Fields[(int)MediaTupleFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)MediaTupleFields.CompressionLevel, (int?)value); + } + + public string Layout + { + get => (string)this.Fields[(int)MediaTupleFields.Layout]; + set => this.Set((int)MediaTupleFields.Layout, value); + } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs index d4262448..efcf0f79 100644 --- a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition ModuleIgnoreTable = new IntermediateTupleDefinition( TupleDefinitionType.ModuleIgnoreTable, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleIgnoreTableTupleFields.Table), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(ModuleIgnoreTableTuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum ModuleIgnoreTableTupleFields { - Table, } public class ModuleIgnoreTableTuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[ModuleIgnoreTableTupleFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)ModuleIgnoreTableTupleFields.Table]; - set => this.Set((int)ModuleIgnoreTableTupleFields.Table, value); - } - } + } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MoveFileTuple.cs b/src/WixToolset.Data/Tuples/MoveFileTuple.cs index 7a0ff120..ea93faea 100644 --- a/src/WixToolset.Data/Tuples/MoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/MoveFileTuple.cs @@ -10,13 +10,12 @@ namespace WixToolset.Data TupleDefinitionType.MoveFile, new[] { - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.FileKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceFolder), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Options), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Delete), IntermediateFieldType.Bool), }, typeof(MoveFileTuple)); } @@ -26,13 +25,12 @@ namespace WixToolset.Data.Tuples { public enum MoveFileTupleFields { - FileKey, Component_, SourceName, DestName, SourceFolder, DestFolder, - Options, + Delete, } public class MoveFileTuple : IntermediateTuple @@ -47,12 +45,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MoveFileTupleFields index] => this.Fields[(int)index]; - public string FileKey - { - get => (string)this.Fields[(int)MoveFileTupleFields.FileKey]; - set => this.Set((int)MoveFileTupleFields.FileKey, value); - } - public string Component_ { get => (string)this.Fields[(int)MoveFileTupleFields.Component_]; @@ -83,10 +75,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MoveFileTupleFields.DestFolder, value); } - public int Options + public bool Delete { - get => (int)this.Fields[(int)MoveFileTupleFields.Options]; - set => this.Set((int)MoveFileTupleFields.Options, value); + get => (bool)this.Fields[(int)MoveFileTupleFields.Delete]; + set => this.Set((int)MoveFileTupleFields.Delete, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs index 9a2c2c0d..70926557 100644 --- a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs @@ -67,10 +67,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiAssemblyTupleFields.File_Application, value); } - public int Attributes + public FileAssemblyType Type { - get => (int)this.Fields[(int)MsiAssemblyTupleFields.Attributes]; - set => this.Set((int)MsiAssemblyTupleFields.Attributes, value); + get => (FileAssemblyType)this.Fields[(int)MsiAssemblyTupleFields.Attributes].AsNumber(); + set => this.Set((int)MsiAssemblyTupleFields.Attributes, (int)value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs index 5b648c05..dfc39763 100644 --- a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.MsiLockPermissionsEx, new[] { - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.MsiLockPermissionsEx), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.LockObject), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.Table), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.SDDLText), IntermediateFieldType.String), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum MsiLockPermissionsExTupleFields { - MsiLockPermissionsEx, LockObject, Table, SDDLText, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiLockPermissionsExTupleFields index] => this.Fields[(int)index]; - public string MsiLockPermissionsEx - { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx]; - set => this.Set((int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx, value); - } - public string LockObject { get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.LockObject]; diff --git a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs index 26ddbf4f..66567eb9 100644 --- a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.MsiShortcutProperty, new[] { - new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.MsiShortcutProperty), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.Shortcut_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropertyKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropVariantValue), IntermediateFieldType.String), @@ -23,7 +22,6 @@ namespace WixToolset.Data.Tuples { public enum MsiShortcutPropertyTupleFields { - MsiShortcutProperty, Shortcut_, PropertyKey, PropVariantValue, @@ -41,12 +39,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiShortcutPropertyTupleFields index] => this.Fields[(int)index]; - public string MsiShortcutProperty - { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.MsiShortcutProperty]; - set => this.Set((int)MsiShortcutPropertyTupleFields.MsiShortcutProperty, value); - } - public string Shortcut_ { get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.Shortcut_]; diff --git a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs index ebf35895..7eee0b38 100644 --- a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.ODBCDataSource, new[] { - new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DataSource), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DriverDescription), IntermediateFieldType.String), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum ODBCDataSourceTupleFields { - DataSource, Component_, Description, DriverDescription, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCDataSourceTupleFields index] => this.Fields[(int)index]; - public string DataSource - { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DataSource]; - set => this.Set((int)ODBCDataSourceTupleFields.DataSource, value); - } - public string Component_ { get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Component_]; @@ -73,4 +65,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ODBCDataSourceTupleFields.Registration, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs index a35d62f4..508a4933 100644 --- a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.ODBCDriver, new[] { - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Driver), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.File_), IntermediateFieldType.String), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum ODBCDriverTupleFields { - Driver, Component_, Description, File_, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCDriverTupleFields index] => this.Fields[(int)index]; - public string Driver - { - get => (string)this.Fields[(int)ODBCDriverTupleFields.Driver]; - set => this.Set((int)ODBCDriverTupleFields.Driver, value); - } - public string Component_ { get => (string)this.Fields[(int)ODBCDriverTupleFields.Component_]; @@ -73,4 +65,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ODBCDriverTupleFields.File_Setup, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs index 678bac57..e3c0e963 100644 --- a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.ODBCTranslator, new[] { - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Translator), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.File_), IntermediateFieldType.String), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum ODBCTranslatorTupleFields { - Translator, Component_, Description, File_, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCTranslatorTupleFields index] => this.Fields[(int)index]; - public string Translator - { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Translator]; - set => this.Set((int)ODBCTranslatorTupleFields.Translator, value); - } - public string Component_ { get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Component_]; @@ -73,4 +65,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ODBCTranslatorTupleFields.File_Setup, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/ProgIdTuple.cs b/src/WixToolset.Data/Tuples/ProgIdTuple.cs index 9275e6aa..8a6df5cb 100644 --- a/src/WixToolset.Data/Tuples/ProgIdTuple.cs +++ b/src/WixToolset.Data/Tuples/ProgIdTuple.cs @@ -75,9 +75,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ProgIdTupleFields.Icon_, value); } - public int IconIndex + public int? IconIndex { - get => (int)this.Fields[(int)ProgIdTupleFields.IconIndex]; + get => (int?)this.Fields[(int)ProgIdTupleFields.IconIndex]; set => this.Set((int)ProgIdTupleFields.IconIndex, value); } } diff --git a/src/WixToolset.Data/Tuples/PropertyTuple.cs b/src/WixToolset.Data/Tuples/PropertyTuple.cs index 120b01fb..e6a5ceae 100644 --- a/src/WixToolset.Data/Tuples/PropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/PropertyTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.Property, new[] { - new IntermediateFieldDefinition(nameof(PropertyTupleFields.Property), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(PropertyTupleFields.Value), IntermediateFieldType.String), }, typeof(PropertyTuple)); @@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples { public enum PropertyTupleFields { - Property, Value, } @@ -37,15 +35,9 @@ namespace WixToolset.Data.Tuples public IntermediateField this[PropertyTupleFields index] => this.Fields[(int)index]; - public string Property - { - get => (string)this.Fields[(int)PropertyTupleFields.Property]?.Value; - set => this.Set((int)PropertyTupleFields.Property, value); - } - public string Value { - get => (string)this.Fields[(int)PropertyTupleFields.Value]?.Value; + get => (string)this.Fields[(int)PropertyTupleFields.Value]; set => this.Set((int)PropertyTupleFields.Value, value); } } diff --git a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs index f8edad95..8f358051 100644 --- a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs @@ -10,11 +10,11 @@ namespace WixToolset.Data TupleDefinitionType.RegLocator, new[] { - new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Signature_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Root), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Win64), IntermediateFieldType.Bool), }, typeof(RegLocatorTuple)); } @@ -24,13 +24,20 @@ namespace WixToolset.Data.Tuples { public enum RegLocatorTupleFields { - Signature_, Root, Key, Name, Type, + Win64, } + public enum RegLocatorType + { + Directory, + FileName, + Raw + }; + public class RegLocatorTuple : IntermediateTuple { public RegLocatorTuple() : base(TupleDefinitions.RegLocator, null, null) @@ -43,16 +50,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[RegLocatorTupleFields index] => this.Fields[(int)index]; - public string Signature_ - { - get => (string)this.Fields[(int)RegLocatorTupleFields.Signature_]; - set => this.Set((int)RegLocatorTupleFields.Signature_, value); - } - - public int Root + public RegistryRootType Root { - get => (int)this.Fields[(int)RegLocatorTupleFields.Root]; - set => this.Set((int)RegLocatorTupleFields.Root, value); + get => (RegistryRootType)this.Fields[(int)RegLocatorTupleFields.Root].AsNumber(); + set => this.Set((int)RegLocatorTupleFields.Root, (int)value); } public string Key @@ -67,10 +68,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)RegLocatorTupleFields.Name, value); } - public int Type + public RegLocatorType Type { - get => (int)this.Fields[(int)RegLocatorTupleFields.Type]; - set => this.Set((int)RegLocatorTupleFields.Type, value); + get => (RegLocatorType)this.Fields[(int)RegLocatorTupleFields.Type].AsNumber(); + set => this.Set((int)RegLocatorTupleFields.Type, (int)value); + } + + public bool Win64 + { + get => this.Fields[(int)RegLocatorTupleFields.Win64].AsBool(); + set => this.Set((int)RegLocatorTupleFields.Win64, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs index 1f370ae9..e66306de 100644 --- a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs @@ -10,11 +10,11 @@ namespace WixToolset.Data TupleDefinitionType.RemoveFile, new[] { - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.DirProperty), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.InstallMode), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.OnUninstall), IntermediateFieldType.Bool), }, typeof(RemoveFileTuple)); } @@ -24,11 +24,11 @@ namespace WixToolset.Data.Tuples { public enum RemoveFileTupleFields { - FileKey, Component_, FileName, DirProperty, - InstallMode, + OnInstall, + OnUninstall, } public class RemoveFileTuple : IntermediateTuple @@ -43,12 +43,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[RemoveFileTupleFields index] => this.Fields[(int)index]; - public string FileKey - { - get => (string)this.Fields[(int)RemoveFileTupleFields.FileKey]; - set => this.Set((int)RemoveFileTupleFields.FileKey, value); - } - public string Component_ { get => (string)this.Fields[(int)RemoveFileTupleFields.Component_]; @@ -67,10 +61,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)RemoveFileTupleFields.DirProperty, value); } - public int InstallMode + public bool? OnInstall + { + get => (bool?)this.Fields[(int)RemoveFileTupleFields.OnInstall]; + set => this.Set((int)RemoveFileTupleFields.OnInstall, value); + } + + public bool? OnUninstall { - get => (int)this.Fields[(int)RemoveFileTupleFields.InstallMode]; - set => this.Set((int)RemoveFileTupleFields.InstallMode, value); + get => (bool?)this.Fields[(int)RemoveFileTupleFields.OnUninstall]; + set => this.Set((int)RemoveFileTupleFields.OnUninstall, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs index 8804cf3c..46b850f7 100644 --- a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs +++ b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.ReserveCost, new[] { - new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveFolder), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveLocal), IntermediateFieldType.Number), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum ReserveCostTupleFields { - ReserveKey, Component_, ReserveFolder, ReserveLocal, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ReserveCostTupleFields index] => this.Fields[(int)index]; - public string ReserveKey - { - get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveKey]; - set => this.Set((int)ReserveCostTupleFields.ReserveKey, value); - } - public string Component_ { get => (string)this.Fields[(int)ReserveCostTupleFields.Component_]; @@ -73,4 +65,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ReserveCostTupleFields.ReserveSource, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/SelfRegTuple.cs b/src/WixToolset.Data/Tuples/SelfRegTuple.cs deleted file mode 100644 index 0ea1eeac..00000000 --- a/src/WixToolset.Data/Tuples/SelfRegTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition SelfReg = new IntermediateTupleDefinition( - TupleDefinitionType.SelfReg, - new[] - { - new IntermediateFieldDefinition(nameof(SelfRegTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SelfRegTupleFields.Cost), IntermediateFieldType.Number), - }, - typeof(SelfRegTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum SelfRegTupleFields - { - File_, - Cost, - } - - public class SelfRegTuple : IntermediateTuple - { - public SelfRegTuple() : base(TupleDefinitions.SelfReg, null, null) - { - } - - public SelfRegTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SelfReg, sourceLineNumber, id) - { - } - - public IntermediateField this[SelfRegTupleFields index] => this.Fields[(int)index]; - - public string File_ - { - get => (string)this.Fields[(int)SelfRegTupleFields.File_]; - set => this.Set((int)SelfRegTupleFields.File_, value); - } - - public int Cost - { - get => (int)this.Fields[(int)SelfRegTupleFields.Cost]; - set => this.Set((int)SelfRegTupleFields.Cost, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs new file mode 100644 index 00000000..a67f1985 --- /dev/null +++ b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition SummaryInformation = new IntermediateTupleDefinition( + TupleDefinitionType.SummaryInformation, + new[] + { + new IntermediateFieldDefinition(nameof(SummaryInformationTupleFields.PropertyId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SummaryInformationTupleFields.Value), IntermediateFieldType.String), + }, + typeof(SummaryInformationTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum SummaryInformationTupleFields + { + PropertyId, + Value, + } + + public enum SumaryInformationType + { + Codepage = 1, + Title, + Subject, + Author, + Keywords, + Comments, + PlatformAndLanguage, + TransformPlatformAndLanguageOrStorageNames, + PackageCode, + Created = 12, + LastSaved, + WindowsInstallerVersion, + WordCount, + CreatingApplication = 18, + Security + } + + public class SummaryInformationTuple : IntermediateTuple + { + public SummaryInformationTuple() : base(TupleDefinitions.SummaryInformation, null, null) + { + } + + public SummaryInformationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SummaryInformation, sourceLineNumber, id) + { + } + + public IntermediateField this[SummaryInformationTupleFields index] => this.Fields[(int)index]; + + public SumaryInformationType PropertyId + { + get => (SumaryInformationType)this.Fields[(int)SummaryInformationTupleFields.PropertyId].AsNumber(); + set => this.Set((int)SummaryInformationTupleFields.PropertyId, (int)value); + } + + public string Value + { + get => (string)this.Fields[(int)SummaryInformationTupleFields.Value]; + set => this.Set((int)SummaryInformationTupleFields.Value, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs index 0dc1d4de..21920208 100644 --- a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs +++ b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs @@ -16,7 +16,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Upgraded), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Order), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.ProductValidateFlags), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.IgnoreMissingSrcFiles), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.IgnoreMissingSrcFiles), IntermediateFieldType.Bool), }, typeof(TargetImagesTuple)); } @@ -83,9 +83,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)TargetImagesTupleFields.ProductValidateFlags, value); } - public int IgnoreMissingSrcFiles + public bool IgnoreMissingSrcFiles { - get => (int)this.Fields[(int)TargetImagesTupleFields.IgnoreMissingSrcFiles]; + get => (bool)this.Fields[(int)TargetImagesTupleFields.IgnoreMissingSrcFiles]; set => this.Set((int)TargetImagesTupleFields.IgnoreMissingSrcFiles, value); } } diff --git a/src/WixToolset.Data/Tuples/TransformsFlags.cs b/src/WixToolset.Data/Tuples/TransformsFlags.cs new file mode 100644 index 00000000..d3a6187c --- /dev/null +++ b/src/WixToolset.Data/Tuples/TransformsFlags.cs @@ -0,0 +1,79 @@ +// 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. + +namespace WixToolset.Data.Tuples +{ + using System; + + /// + /// Summary information values for the CharCount property in transforms. + /// + [Flags] + public enum TransformFlags + { + /// Ignore error when adding a row that exists. + ErrorAddExistingRow = 0x1, + + /// Ignore error when deleting a row that does not exist. + ErrorDeleteMissingRow = 0x2, + + /// Ignore error when adding a table that exists. + ErrorAddExistingTable = 0x4, + + /// Ignore error when deleting a table that does not exist. + ErrorDeleteMissingTable = 0x8, + + /// Ignore error when updating a row that does not exist. + ErrorUpdateMissingRow = 0x10, + + /// Ignore error when transform and database code pages do not match, and their code pages are neutral. + ErrorChangeCodePage = 0x20, + + /// Default language must match base database. + ValidateLanguage = 0x10000, + + /// Product must match base database. + ValidateProduct = 0x20000, + + /// Check major version only. + ValidateMajorVersion = 0x80000, + + /// Check major and minor versions only. + ValidateMinorVersion = 0x100000, + + /// Check major, minor, and update versions. + ValidateUpdateVersion = 0x200000, + + /// Installed version lt base version. + ValidateNewLessBaseVersion = 0x400000, + + /// Installed version lte base version. + ValidateNewLessEqualBaseVersion = 0x800000, + + /// Installed version eq base version. + ValidateNewEqualBaseVersion = 0x1000000, + + /// Installed version gte base version. + ValidateNewGreaterEqualBaseVersion = 0x2000000, + + /// Installed version gt base version. + ValidateNewGreaterBaseVersion = 0x4000000, + + /// UpgradeCode must match base database. + ValidateUpgradeCode = 0x8000000, + + /// Masks all version checks on ProductVersion. + ProductVersionMask = ValidateMajorVersion | ValidateMinorVersion | ValidateUpdateVersion, + + /// Masks all operations on ProductVersion. + ProductVersionOperatorMask = ValidateNewLessBaseVersion | ValidateNewLessEqualBaseVersion | ValidateNewEqualBaseVersion | ValidateNewGreaterEqualBaseVersion | ValidateNewGreaterBaseVersion, + + /// Default value for instance transforms. + InstanceTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct | ValidateUpdateVersion | ValidateNewGreaterEqualBaseVersion, + + /// Default value for language transforms. + LanguageTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct, + + /// Default value for patch transforms. + PatchTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ValidateProduct | ValidateUpdateVersion | ValidateNewEqualBaseVersion | ValidateUpgradeCode, + } +} diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index 173b4371..8c0c932a 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -3,14 +3,11 @@ namespace WixToolset.Data { using System; - using WixToolset.Data.Tuples; public enum TupleDefinitionType { - _Streams, - _SummaryInformation, - _TransformView, - _Validation, + SummaryInformation, + Validation, ActionText, AdminExecuteSequence, AdminUISequence, @@ -20,7 +17,6 @@ namespace WixToolset.Data BBControl, Billboard, Binary, - BindImage, CCPSearch, CheckBox, Class, @@ -48,7 +44,6 @@ namespace WixToolset.Data FeatureComponents, File, FileSFPCatalog, - Font, Icon, ImageFamilies, IniFile, @@ -113,7 +108,6 @@ namespace WixToolset.Data RemoveIniFile, RemoveRegistry, ReserveCost, - SelfReg, ServiceControl, ServiceInstall, SFPCatalog, @@ -165,7 +159,6 @@ namespace WixToolset.Data WixCustomTable, WixDeltaPatchFile, WixDeltaPatchSymbolPaths, - WixDirectory, WixEnsureTable, WixFeatureGroup, WixFeatureModules, @@ -175,7 +168,6 @@ namespace WixToolset.Data WixGroup, WixInstanceComponent, WixInstanceTransforms, - WixMedia, WixMediaTemplate, WixMerge, WixOrdering, @@ -221,17 +213,8 @@ namespace WixToolset.Data { switch (type) { - case TupleDefinitionType._Streams: - return TupleDefinitions._Streams; - - case TupleDefinitionType._SummaryInformation: - return TupleDefinitions._SummaryInformation; - - case TupleDefinitionType._TransformView: - return TupleDefinitions._TransformView; - - case TupleDefinitionType._Validation: - return TupleDefinitions._Validation; + case TupleDefinitionType.SummaryInformation: + return TupleDefinitions.SummaryInformation; case TupleDefinitionType.ActionText: return TupleDefinitions.ActionText; @@ -260,9 +243,6 @@ namespace WixToolset.Data case TupleDefinitionType.Binary: return TupleDefinitions.Binary; - case TupleDefinitionType.BindImage: - return TupleDefinitions.BindImage; - case TupleDefinitionType.CCPSearch: return TupleDefinitions.CCPSearch; @@ -344,9 +324,6 @@ namespace WixToolset.Data case TupleDefinitionType.FileSFPCatalog: return TupleDefinitions.FileSFPCatalog; - case TupleDefinitionType.Font: - return TupleDefinitions.Font; - case TupleDefinitionType.Icon: return TupleDefinitions.Icon; @@ -539,9 +516,6 @@ namespace WixToolset.Data case TupleDefinitionType.ReserveCost: return TupleDefinitions.ReserveCost; - case TupleDefinitionType.SelfReg: - return TupleDefinitions.SelfReg; - case TupleDefinitionType.ServiceControl: return TupleDefinitions.ServiceControl; @@ -695,9 +669,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixDeltaPatchSymbolPaths: return TupleDefinitions.WixDeltaPatchSymbolPaths; - case TupleDefinitionType.WixDirectory: - return TupleDefinitions.WixDirectory; - case TupleDefinitionType.WixEnsureTable: return TupleDefinitions.WixEnsureTable; @@ -725,9 +696,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixInstanceTransforms: return TupleDefinitions.WixInstanceTransforms; - case TupleDefinitionType.WixMedia: - return TupleDefinitions.WixMedia; - case TupleDefinitionType.WixMediaTemplate: return TupleDefinitions.WixMediaTemplate; diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs index de2a8823..72169a60 100644 --- a/src/WixToolset.Data/Tuples/TypeLibTuple.cs +++ b/src/WixToolset.Data/Tuples/TypeLibTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.TypeLib, new[] { - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.LibID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.LibId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Language), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Component_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Version), IntermediateFieldType.Number), @@ -27,7 +27,7 @@ namespace WixToolset.Data.Tuples { public enum TypeLibTupleFields { - LibID, + LibId, Language, Component_, Version, @@ -49,10 +49,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[TypeLibTupleFields index] => this.Fields[(int)index]; - public string LibID + public string LibId { - get => (string)this.Fields[(int)TypeLibTupleFields.LibID]; - set => this.Set((int)TypeLibTupleFields.LibID, value); + get => (string)this.Fields[(int)TypeLibTupleFields.LibId]; + set => this.Set((int)TypeLibTupleFields.LibId, value); } public int Language @@ -97,4 +97,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)TypeLibTupleFields.Cost, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/UITextTuple.cs b/src/WixToolset.Data/Tuples/UITextTuple.cs index b6356b99..fee04597 100644 --- a/src/WixToolset.Data/Tuples/UITextTuple.cs +++ b/src/WixToolset.Data/Tuples/UITextTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.UIText, new[] { - new IntermediateFieldDefinition(nameof(UITextTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(UITextTupleFields.Text), IntermediateFieldType.String), }, typeof(UITextTuple)); @@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples { public enum UITextTupleFields { - Key, Text, } @@ -37,16 +35,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[UITextTupleFields index] => this.Fields[(int)index]; - public string Key - { - get => (string)this.Fields[(int)UITextTupleFields.Key]; - set => this.Set((int)UITextTupleFields.Key, value); - } - public string Text { get => (string)this.Fields[(int)UITextTupleFields.Text]; set => this.Set((int)UITextTupleFields.Text, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs index 9e764adf..7099021e 100644 --- a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs @@ -13,8 +13,8 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.Upgraded), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.FTK), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile), IntermediateFieldType.Bool), }, typeof(UpgradedFiles_OptionalDataTuple)); } @@ -61,16 +61,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths, value); } - public int AllowIgnoreOnPatchError + public bool AllowIgnoreOnPatchError { - get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError]; + get => (bool)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError]; set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError, value); } - public int IncludeWholeFile + public bool IncludeWholeFile { - get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile]; + get => (bool)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile]; set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixActionTuple.cs b/src/WixToolset.Data/Tuples/WixActionTuple.cs index 148f28d9..716fd46b 100644 --- a/src/WixToolset.Data/Tuples/WixActionTuple.cs +++ b/src/WixToolset.Data/Tuples/WixActionTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixAction, new[] { - new IntermediateFieldDefinition(nameof(WixActionTupleFields.SequenceTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionTupleFields.SequenceTable), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixActionTupleFields.Action), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixActionTupleFields.Condition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixActionTupleFields.Sequence), IntermediateFieldType.Number), @@ -41,7 +41,7 @@ namespace WixToolset.Data.Tuples { AdminUISequence, AdminExecuteSequence, - AdvtExecuteSequence, + AdvertiseExecuteSequence, InstallUISequence, InstallExecuteSequence } @@ -60,8 +60,8 @@ namespace WixToolset.Data.Tuples public SequenceTable SequenceTable { - get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixActionTupleFields.SequenceTable]); - set => this.Set((int)WixActionTupleFields.SequenceTable, value.ToString()); + get => (SequenceTable)this.Fields[(int)WixActionTupleFields.SequenceTable].AsNumber(); + set => this.Set((int)WixActionTupleFields.SequenceTable, (int)value); } public string Action @@ -76,9 +76,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixActionTupleFields.Condition, value); } - public int Sequence + public int? Sequence { - get => (int)this.Fields[(int)WixActionTupleFields.Sequence]; + get => (int?)this.Fields[(int)WixActionTupleFields.Sequence]; set => this.Set((int)WixActionTupleFields.Sequence, value); } diff --git a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs index 8916cdfc..e2326697 100644 --- a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixApprovedExeForElevation, new[] { - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Id), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Attributes), IntermediateFieldType.Number), @@ -23,7 +22,6 @@ namespace WixToolset.Data.Tuples { public enum WixApprovedExeForElevationTupleFields { - Id, Key, Value, Attributes, @@ -41,12 +39,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixApprovedExeForElevationTupleFields index] => this.Fields[(int)index]; - public string Id - { - get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Id]; - set => this.Set((int)WixApprovedExeForElevationTupleFields.Id, value); - } - public string Key { get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Key]; @@ -59,10 +51,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixApprovedExeForElevationTupleFields.Value, value); } - public int Attributes + public BundleApprovedExeForElevationAttributes Attributes { - get => (int)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes]; - set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, value); + get => (BundleApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, (int)value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs index e80d6321..e3c1490f 100644 --- a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixBootstrapperApplication = new IntermediateTupleDefinition( TupleDefinitionType.WixBootstrapperApplication, - new[] - { - new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationTupleFields.Id), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(WixBootstrapperApplicationTuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum WixBootstrapperApplicationTupleFields { - Id, } public class WixBootstrapperApplicationTuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixBootstrapperApplicationTupleFields index] => this.Fields[(int)index]; - - public string Id - { - get => (string)this.Fields[(int)WixBootstrapperApplicationTupleFields.Id]; - set => this.Set((int)WixBootstrapperApplicationTupleFields.Id, value); - } - } -} \ No newline at end of file + } +} diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs index c9d8e12f..ed12a804 100644 --- a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs @@ -10,11 +10,10 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleContainer, new[] { - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WixBundleContainer), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Type), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Size), IntermediateFieldType.LargeNumber), new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Hash), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.AttachedContainerIndex), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WorkingPath), IntermediateFieldType.String), @@ -29,7 +28,6 @@ namespace WixToolset.Data.Tuples public enum WixBundleContainerTupleFields { - WixBundleContainer, Name, Type, DownloadUrl, @@ -60,12 +58,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleContainerTupleFields index] => this.Fields[(int)index]; - public string WixBundleContainer - { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.WixBundleContainer]; - set => this.Set((int)WixBundleContainerTupleFields.WixBundleContainer, value); - } - public string Name { get => (string)this.Fields[(int)WixBundleContainerTupleFields.Name]; @@ -74,8 +66,8 @@ namespace WixToolset.Data.Tuples public ContainerType Type { - get => (ContainerType)Enum.Parse(typeof(ContainerType), (string)this.Fields[(int)WixBundleContainerTupleFields.Type], true); - set => this.Set((int)WixBundleContainerTupleFields.Type, value.ToString()); + get => (ContainerType)this.Fields[(int)WixBundleContainerTupleFields.Type].AsNumber(); + set => this.Set((int)WixBundleContainerTupleFields.Type, (int)value); } public string DownloadUrl @@ -84,9 +76,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleContainerTupleFields.DownloadUrl, value); } - public int Size + public long Size { - get => (int)this.Fields[(int)WixBundleContainerTupleFields.Size]; + get => (long)this.Fields[(int)WixBundleContainerTupleFields.Size]; set => this.Set((int)WixBundleContainerTupleFields.Size, value); } @@ -108,4 +100,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleContainerTupleFields.WorkingPath, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs index fef0c997..ae610aac 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs @@ -13,7 +13,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.DisplayName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Compressed), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.BundleId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.PerMachine), IntermediateFieldType.String), }, @@ -28,7 +28,7 @@ namespace WixToolset.Data.Tuples DisplayName, LogPathVariable, Compressed, - Id, + BundleId, UpgradeCode, PerMachine, } @@ -63,10 +63,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePropertiesTupleFields.Compressed, value); } - public string Id + public string BundleId { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Id]; - set => this.Set((int)WixBundlePropertiesTupleFields.Id, value); + get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.BundleId]; + set => this.Set((int)WixBundlePropertiesTupleFields.BundleId, value); } public string UpgradeCode diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs index 7b1bed66..ef620b26 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs @@ -10,8 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleRelatedPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Id), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.RelatedId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinVersion), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxVersion), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Languages), IntermediateFieldType.String), @@ -28,8 +27,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundleRelatedPackageTupleFields { - WixBundlePackage_, - Id, + RelatedId, MinVersion, MaxVersion, Languages, @@ -51,16 +49,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleRelatedPackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string RelatedId { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.WixBundlePackage_, value); - } - - public string Id - { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Id]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.Id, value); + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.RelatedId]; + set => this.Set((int)WixBundleRelatedPackageTupleFields.RelatedId, value); } public string MinVersion diff --git a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs index b71f20e1..d7d74657 100644 --- a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleVariable, new[] { - new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.WixBundleVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Type), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Hidden), IntermediateFieldType.Bool), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum WixBundleVariableTupleFields { - WixBundleVariable, Value, Type, Hidden, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleVariableTupleFields index] => this.Fields[(int)index]; - public string WixBundleVariable - { - get => (string)this.Fields[(int)WixBundleVariableTupleFields.WixBundleVariable]; - set => this.Set((int)WixBundleVariableTupleFields.WixBundleVariable, value); - } - public string Value { get => (string)this.Fields[(int)WixBundleVariableTupleFields.Value]; @@ -73,4 +65,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleVariableTupleFields.Persisted, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs index 12383f53..a6541c43 100644 --- a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs +++ b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixChainItem = new IntermediateTupleDefinition( TupleDefinitionType.WixChainItem, - new[] - { - new IntermediateFieldDefinition(nameof(WixChainItemTupleFields.Id), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(WixChainItemTuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum WixChainItemTupleFields { - Id, } public class WixChainItemTuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixChainItemTupleFields index] => this.Fields[(int)index]; - - public string Id - { - get => (string)this.Fields[(int)WixChainItemTupleFields.Id]; - set => this.Set((int)WixChainItemTupleFields.Id, value); - } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index fd21fe2d..cf4e60db 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixCustomTable, new[] { - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Table), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnCount), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnTypes), IntermediateFieldType.String), @@ -33,7 +32,6 @@ namespace WixToolset.Data.Tuples { public enum WixCustomTableTupleFields { - Table, ColumnCount, ColumnNames, ColumnTypes, @@ -61,12 +59,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixCustomTableTupleFields index] => this.Fields[(int)index]; - public string Table - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Table]; - set => this.Set((int)WixCustomTableTupleFields.Table, value); - } - public int ColumnCount { get => (int)this.Fields[(int)WixCustomTableTupleFields.ColumnCount]; @@ -139,10 +131,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixCustomTableTupleFields.Modularizations, value); } - public int BootstrapperApplicationData + public bool BootstrapperApplicationData { - get => (int)this.Fields[(int)WixCustomTableTupleFields.BootstrapperApplicationData]; + get => (bool)this.Fields[(int)WixCustomTableTupleFields.BootstrapperApplicationData]; set => this.Set((int)WixCustomTableTupleFields.BootstrapperApplicationData, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs index a8e191df..48d0a96c 100644 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixDeltaPatchFile, new[] { - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.File_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainLengths), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreOffsets), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreLengths), IntermediateFieldType.String), @@ -25,7 +24,6 @@ namespace WixToolset.Data.Tuples { public enum WixDeltaPatchFileTupleFields { - File_, RetainLengths, IgnoreOffsets, IgnoreLengths, @@ -45,12 +43,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixDeltaPatchFileTupleFields index] => this.Fields[(int)index]; - public string File_ - { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.File_]; - set => this.Set((int)WixDeltaPatchFileTupleFields.File_, value); - } - public string RetainLengths { get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]; diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs index 9537db3a..13a2e1c9 100644 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs @@ -12,8 +12,8 @@ namespace WixToolset.Data TupleDefinitionType.WixDeltaPatchSymbolPaths, new[] { - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.Id), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolPaths), IntermediateFieldType.String), }, typeof(WixDeltaPatchSymbolPathsTuple)); @@ -24,8 +24,8 @@ namespace WixToolset.Data.Tuples { public enum WixDeltaPatchSymbolPathsTupleFields { - Id, - Type, + SymbolType, + SymbolId, SymbolPaths, } @@ -48,22 +48,22 @@ namespace WixToolset.Data.Tuples { } - public WixDeltaPatchSymbolPathsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) + public WixDeltaPatchSymbolPathsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, null) { } public IntermediateField this[WixDeltaPatchSymbolPathsTupleFields index] => this.Fields[(int)index]; - public string Id + public SymbolPathType SymbolType { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Id]; - set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Id, value); + get => (SymbolPathType)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolType].AsNumber(); + set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolType, (int)value); } - public SymbolPathType Type + public string SymbolId { - get => (SymbolPathType)Enum.Parse(typeof(SymbolPathType), (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Type], true); - set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Type, value.ToString()); + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolId]; + set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolId, value); } public string SymbolPaths diff --git a/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs b/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs deleted file mode 100644 index ce706dc4..00000000 --- a/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixDirectory = new IntermediateTupleDefinition( - TupleDefinitionType.WixDirectory, - new[] - { - new IntermediateFieldDefinition(nameof(WixDirectoryTupleFields.Directory_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDirectoryTupleFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), - }, - typeof(WixDirectoryTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixDirectoryTupleFields - { - Directory_, - ComponentGuidGenerationSeed, - } - - public class WixDirectoryTuple : IntermediateTuple - { - public WixDirectoryTuple() : base(TupleDefinitions.WixDirectory, null, null) - { - } - - public WixDirectoryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDirectory, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDirectoryTupleFields index] => this.Fields[(int)index]; - - public string Directory_ - { - get => (string)this.Fields[(int)WixDirectoryTupleFields.Directory_]?.Value; - set => this.Set((int)WixDirectoryTupleFields.Directory_, value); - } - - public string ComponentGuidGenerationSeed - { - get => (string)this.Fields[(int)WixDirectoryTupleFields.ComponentGuidGenerationSeed]?.Value; - set => this.Set((int)WixDirectoryTupleFields.ComponentGuidGenerationSeed, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFileTuple.cs b/src/WixToolset.Data/Tuples/WixFileTuple.cs index 077622b7..34493796 100644 --- a/src/WixToolset.Data/Tuples/WixFileTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixFile, new[] { - new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyType), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyManifest), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyApplication), IntermediateFieldType.String), @@ -33,7 +32,6 @@ namespace WixToolset.Data.Tuples public enum WixFileTupleFields { - File_, AssemblyType, File_AssemblyManifest, File_AssemblyApplication, @@ -95,12 +93,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixFileTupleFields index] => this.Fields[(int)index]; - public string File_ - { - get => (string)this.Fields[(int)WixFileTupleFields.File_]; - set => this.Set((int)WixFileTupleFields.File_, value); - } - public FileAssemblyType AssemblyType { get => (FileAssemblyType)(int)this.Fields[(int)WixFileTupleFields.AssemblyType]; @@ -155,10 +147,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixFileTupleFields.Attributes, value); } - public PatchAttributeType PatchAttributes + public PatchAttributeType? PatchAttributes { - get => (PatchAttributeType)(int)this.Fields[(int)WixFileTupleFields.PatchAttributes]; - set => this.Set((int)WixFileTupleFields.PatchAttributes, (int)value); + get => (PatchAttributeType?)this.Fields[(int)WixFileTupleFields.PatchAttributes].AsNullableNumber(); + set => this.Set((int)WixFileTupleFields.PatchAttributes, (int?)value); } public string DeltaPatchHeaderSource diff --git a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs index a72bad0f..efcaa7b9 100644 --- a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs +++ b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixInstanceTransforms, new[] { - new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.Id), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.PropertyId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductName), IntermediateFieldType.String), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum WixInstanceTransformsTupleFields { - Id, PropertyId, ProductCode, ProductName, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixInstanceTransformsTupleFields index] => this.Fields[(int)index]; - public string Id - { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.Id]; - set => this.Set((int)WixInstanceTransformsTupleFields.Id, value); - } - public string PropertyId { get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.PropertyId]; @@ -73,4 +65,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixInstanceTransformsTupleFields.UpgradeCode, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs index 4e71be2d..c0cc13ac 100644 --- a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CabinetTemplate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CompressionLevel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CompressionLevel), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.DiskPrompt), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.VolumeLabel), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), @@ -55,13 +55,8 @@ namespace WixToolset.Data.Tuples public CompressionLevel? CompressionLevel { - get - { - var value = (string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]; - return String.IsNullOrEmpty(value) ? null : (CompressionLevel?)Enum.Parse(typeof(CompressionLevel), value, true); - } - - set => this.Set((int)WixMediaTupleFields.CompressionLevel, value?.ToString()); + get => (CompressionLevel?)this.Fields[(int)WixMediaTemplateTupleFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)WixMediaTemplateTupleFields.CompressionLevel, (int?)value); } public string DiskPrompt @@ -76,15 +71,15 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixMediaTemplateTupleFields.VolumeLabel, value); } - public int MaximumUncompressedMediaSize + public int? MaximumUncompressedMediaSize { - get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize]; + get => (int?)this.Fields[(int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize]; set => this.Set((int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize, value); } - public int MaximumCabinetSizeForLargeFileSplitting + public int? MaximumCabinetSizeForLargeFileSplitting { - get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting]; + get => (int?)this.Fields[(int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting]; set => this.Set((int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting, value); } } diff --git a/src/WixToolset.Data/Tuples/WixMediaTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTuple.cs deleted file mode 100644 index a705a4a2..00000000 --- a/src/WixToolset.Data/Tuples/WixMediaTuple.cs +++ /dev/null @@ -1,62 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixMedia = new IntermediateTupleDefinition( - TupleDefinitionType.WixMedia, - new[] - { - new IntermediateFieldDefinition(nameof(WixMediaTupleFields.DiskId_), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMediaTupleFields.CompressionLevel), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTupleFields.Layout), IntermediateFieldType.String), - }, - typeof(WixMediaTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - using System; - - public enum WixMediaTupleFields - { - DiskId_, - CompressionLevel, - Layout, - } - - public class WixMediaTuple : IntermediateTuple - { - public WixMediaTuple() : base(TupleDefinitions.WixMedia, null, null) - { - } - - public WixMediaTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMedia, sourceLineNumber, id) - { - } - - public IntermediateField this[WixMediaTupleFields index] => this.Fields[(int)index]; - - public int DiskId_ - { - get => (int)this.Fields[(int)WixMediaTupleFields.DiskId_]; - set => this.Set((int)WixMediaTupleFields.DiskId_, value); - } - - public CompressionLevel? CompressionLevel - { - get => Enum.TryParse((string)this.Fields[(int)WixMediaTupleFields.CompressionLevel], true, out CompressionLevel value) ? value : (CompressionLevel?)null; - set => this.Set((int)WixMediaTupleFields.CompressionLevel, value?.ToString()); - } - - public string Layout - { - get => (string)this.Fields[(int)WixMediaTupleFields.Layout]; - set => this.Set((int)WixMediaTupleFields.Layout, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs index 6c5120b5..51c55a85 100644 --- a/src/WixToolset.Data/Tuples/WixMergeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMergeTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixMerge, new[] { - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.WixMerge), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Language), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Directory_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.SourceFile), IntermediateFieldType.Path), @@ -27,7 +26,6 @@ namespace WixToolset.Data.Tuples { public enum WixMergeTupleFields { - WixMerge, Language, Directory_, SourceFile, @@ -49,12 +47,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixMergeTupleFields index] => this.Fields[(int)index]; - public string WixMerge - { - get => (string)this.Fields[(int)WixMergeTupleFields.WixMerge]; - set => this.Set((int)WixMergeTupleFields.WixMerge, value); - } - public int Language { get => (int)this.Fields[(int)WixMergeTupleFields.Language]; @@ -97,4 +89,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixMergeTupleFields.Feature_, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs index fde295c1..20f719a2 100644 --- a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs +++ b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs @@ -41,27 +41,27 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixOrderingTupleFields index] => this.Fields[(int)index]; - public string ItemType + public ComplexReferenceChildType ItemType { - get => (string)this.Fields[(int)WixOrderingTupleFields.ItemType]?.Value; - set => this.Set((int)WixOrderingTupleFields.ItemType, value); + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingTupleFields.ItemType].AsNumber(); + set => this.Set((int)WixOrderingTupleFields.ItemType, (int)value); } public string ItemId_ { - get => (string)this.Fields[(int)WixOrderingTupleFields.ItemId_]?.Value; + get => (string)this.Fields[(int)WixOrderingTupleFields.ItemId_]; set => this.Set((int)WixOrderingTupleFields.ItemId_, value); } - public string DependsOnType + public ComplexReferenceChildType DependsOnType { - get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnType]?.Value; - set => this.Set((int)WixOrderingTupleFields.DependsOnType, value); + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingTupleFields.DependsOnType].AsNumber(); + set => this.Set((int)WixOrderingTupleFields.DependsOnType, (int)value); } public string DependsOnId_ { - get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnId_]?.Value; + get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnId_]; set => this.Set((int)WixOrderingTupleFields.DependsOnId_, value); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs index 6a456d4b..f5b6dba0 100644 --- a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixPatchBaseline, new[] { - new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.WixPatchBaseline), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.DiskId), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.ValidationFlags), IntermediateFieldType.Number), }, @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples { public enum WixPatchBaselineTupleFields { - WixPatchBaseline, DiskId, ValidationFlags, } @@ -39,22 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixPatchBaselineTupleFields index] => this.Fields[(int)index]; - public string WixPatchBaseline - { - get => (string)this.Fields[(int)WixPatchBaselineTupleFields.WixPatchBaseline]; - set => this.Set((int)WixPatchBaselineTupleFields.WixPatchBaseline, value); - } - public int DiskId { get => (int)this.Fields[(int)WixPatchBaselineTupleFields.DiskId]; set => this.Set((int)WixPatchBaselineTupleFields.DiskId, value); } - public int ValidationFlags + public TransformFlags ValidationFlags { - get => (int)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags]; - set => this.Set((int)WixPatchBaselineTupleFields.ValidationFlags, value); + get => (TransformFlags)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags].AsNumber(); + set => this.Set((int)WixPatchBaselineTupleFields.ValidationFlags, (int)value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs index e591c19b..ab1a1a4c 100644 --- a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixSuppressModularization = new IntermediateTupleDefinition( TupleDefinitionType.WixSuppressModularization, - new[] - { - new IntermediateFieldDefinition(nameof(WixSuppressModularizationTupleFields.WixSuppressModularization), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(WixSuppressModularizationTuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum WixSuppressModularizationTupleFields { - WixSuppressModularization, } public class WixSuppressModularizationTuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixSuppressModularizationTupleFields index] => this.Fields[(int)index]; - - public string WixSuppressModularization - { - get => (string)this.Fields[(int)WixSuppressModularizationTupleFields.WixSuppressModularization]; - set => this.Set((int)WixSuppressModularizationTupleFields.WixSuppressModularization, value); - } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixUITuple.cs b/src/WixToolset.Data/Tuples/WixUITuple.cs index 99e19300..89205850 100644 --- a/src/WixToolset.Data/Tuples/WixUITuple.cs +++ b/src/WixToolset.Data/Tuples/WixUITuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixUI = new IntermediateTupleDefinition( TupleDefinitionType.WixUI, - new[] - { - new IntermediateFieldDefinition(nameof(WixUITupleFields.WixUI), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(WixUITuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum WixUITupleFields { - WixUI, } public class WixUITuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixUITupleFields index] => this.Fields[(int)index]; - - public string WixUI - { - get => (string)this.Fields[(int)WixUITupleFields.WixUI]?.Value; - set => this.Set((int)WixUITupleFields.WixUI, value); - } - } -} \ No newline at end of file + } +} diff --git a/src/WixToolset.Data/Tuples/WixVariableTuple.cs b/src/WixToolset.Data/Tuples/WixVariableTuple.cs index 4af8a5ff..08508d08 100644 --- a/src/WixToolset.Data/Tuples/WixVariableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixVariableTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixVariable, new[] { - new IntermediateFieldDefinition(nameof(WixVariableTupleFields.WixVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Overridable), IntermediateFieldType.Bool), }, @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples { public enum WixVariableTupleFields { - WixVariable, Value, Overridable, } @@ -39,12 +37,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixVariableTupleFields index] => this.Fields[(int)index]; - public string WixVariable - { - get => (string)this.Fields[(int)WixVariableTupleFields.WixVariable]; - set => this.Set((int)WixVariableTupleFields.WixVariable, value); - } - public string Value { get => (string)this.Fields[(int)WixVariableTupleFields.Value]; @@ -57,4 +49,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixVariableTupleFields.Overridable, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/_StreamsTuple.cs b/src/WixToolset.Data/Tuples/_StreamsTuple.cs deleted file mode 100644 index c581d11a..00000000 --- a/src/WixToolset.Data/Tuples/_StreamsTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition _Streams = new IntermediateTupleDefinition( - TupleDefinitionType._Streams, - new[] - { - new IntermediateFieldDefinition(nameof(_StreamsTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_StreamsTupleFields.Data), IntermediateFieldType.Path), - }, - typeof(_StreamsTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum _StreamsTupleFields - { - Name, - Data, - } - - public class _StreamsTuple : IntermediateTuple - { - public _StreamsTuple() : base(TupleDefinitions._Streams, null, null) - { - } - - public _StreamsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._Streams, sourceLineNumber, id) - { - } - - public IntermediateField this[_StreamsTupleFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)_StreamsTupleFields.Name]; - set => this.Set((int)_StreamsTupleFields.Name, value); - } - - public string Data - { - get => (string)this.Fields[(int)_StreamsTupleFields.Data]; - set => this.Set((int)_StreamsTupleFields.Data, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs deleted file mode 100644 index 249afe84..00000000 --- a/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition _SummaryInformation = new IntermediateTupleDefinition( - TupleDefinitionType._SummaryInformation, - new[] - { - new IntermediateFieldDefinition(nameof(_SummaryInformationTupleFields.PropertyId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(_SummaryInformationTupleFields.Value), IntermediateFieldType.String), - }, - typeof(_SummaryInformationTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum _SummaryInformationTupleFields - { - PropertyId, - Value, - } - - public class _SummaryInformationTuple : IntermediateTuple - { - public _SummaryInformationTuple() : base(TupleDefinitions._SummaryInformation, null, null) - { - } - - public _SummaryInformationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._SummaryInformation, sourceLineNumber, id) - { - } - - public IntermediateField this[_SummaryInformationTupleFields index] => this.Fields[(int)index]; - - public int PropertyId - { - get => (int)this.Fields[(int)_SummaryInformationTupleFields.PropertyId]; - set => this.Set((int)_SummaryInformationTupleFields.PropertyId, value); - } - - public string Value - { - get => (string)this.Fields[(int)_SummaryInformationTupleFields.Value]; - set => this.Set((int)_SummaryInformationTupleFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/_TransformViewTuple.cs b/src/WixToolset.Data/Tuples/_TransformViewTuple.cs deleted file mode 100644 index 8a750dfb..00000000 --- a/src/WixToolset.Data/Tuples/_TransformViewTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition _TransformView = new IntermediateTupleDefinition( - TupleDefinitionType._TransformView, - new[] - { - new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Column), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Row), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Data), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Current), IntermediateFieldType.String), - }, - typeof(_TransformViewTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum _TransformViewTupleFields - { - Table, - Column, - Row, - Data, - Current, - } - - public class _TransformViewTuple : IntermediateTuple - { - public _TransformViewTuple() : base(TupleDefinitions._TransformView, null, null) - { - } - - public _TransformViewTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._TransformView, sourceLineNumber, id) - { - } - - public IntermediateField this[_TransformViewTupleFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)_TransformViewTupleFields.Table]; - set => this.Set((int)_TransformViewTupleFields.Table, value); - } - - public string Column - { - get => (string)this.Fields[(int)_TransformViewTupleFields.Column]; - set => this.Set((int)_TransformViewTupleFields.Column, value); - } - - public string Row - { - get => (string)this.Fields[(int)_TransformViewTupleFields.Row]; - set => this.Set((int)_TransformViewTupleFields.Row, value); - } - - public string Data - { - get => (string)this.Fields[(int)_TransformViewTupleFields.Data]; - set => this.Set((int)_TransformViewTupleFields.Data, value); - } - - public string Current - { - get => (string)this.Fields[(int)_TransformViewTupleFields.Current]; - set => this.Set((int)_TransformViewTupleFields.Current, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/_ValidationTuple.cs b/src/WixToolset.Data/Tuples/_ValidationTuple.cs deleted file mode 100644 index 869b19d8..00000000 --- a/src/WixToolset.Data/Tuples/_ValidationTuple.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition _Validation = new IntermediateTupleDefinition( - TupleDefinitionType._Validation, - new[] - { - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Column), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Nullable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.MinValue), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.MaxValue), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.KeyTable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.KeyColumn), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Category), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Set), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Description), IntermediateFieldType.String), - }, - typeof(_ValidationTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum _ValidationTupleFields - { - Table, - Column, - Nullable, - MinValue, - MaxValue, - KeyTable, - KeyColumn, - Category, - Set, - Description, - } - - public class _ValidationTuple : IntermediateTuple - { - public _ValidationTuple() : base(TupleDefinitions._Validation, null, null) - { - } - - public _ValidationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._Validation, sourceLineNumber, id) - { - } - - public IntermediateField this[_ValidationTupleFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)_ValidationTupleFields.Table]; - set => this.Set((int)_ValidationTupleFields.Table, value); - } - - public string Column - { - get => (string)this.Fields[(int)_ValidationTupleFields.Column]; - set => this.Set((int)_ValidationTupleFields.Column, value); - } - - public string Nullable - { - get => (string)this.Fields[(int)_ValidationTupleFields.Nullable]; - set => this.Set((int)_ValidationTupleFields.Nullable, value); - } - - public int MinValue - { - get => (int)this.Fields[(int)_ValidationTupleFields.MinValue]; - set => this.Set((int)_ValidationTupleFields.MinValue, value); - } - - public int MaxValue - { - get => (int)this.Fields[(int)_ValidationTupleFields.MaxValue]; - set => this.Set((int)_ValidationTupleFields.MaxValue, value); - } - - public string KeyTable - { - get => (string)this.Fields[(int)_ValidationTupleFields.KeyTable]; - set => this.Set((int)_ValidationTupleFields.KeyTable, value); - } - - public int KeyColumn - { - get => (int)this.Fields[(int)_ValidationTupleFields.KeyColumn]; - set => this.Set((int)_ValidationTupleFields.KeyColumn, value); - } - - public string Category - { - get => (string)this.Fields[(int)_ValidationTupleFields.Category]; - set => this.Set((int)_ValidationTupleFields.Category, value); - } - - public string Set - { - get => (string)this.Fields[(int)_ValidationTupleFields.Set]; - set => this.Set((int)_ValidationTupleFields.Set, value); - } - - public string Description - { - get => (string)this.Fields[(int)_ValidationTupleFields.Description]; - set => this.Set((int)_ValidationTupleFields.Description, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 96fbe659..e6c7e337 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -90,7 +90,7 @@ namespace WixToolset.Data.WindowsInstaller private static readonly WixActionTuple[] standardActions = new[] { new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecute", AccessModifier.Public)) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, @@ -98,7 +98,7 @@ namespace WixToolset.Data.WindowsInstaller new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecuteAgain", AccessModifier.Public)) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, @@ -113,48 +113,48 @@ namespace WixToolset.Data.WindowsInstaller new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence }, new WixActionTuple(null, new Identifier("AdminUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence }, new WixActionTuple(null, new Identifier("InstallUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence }, new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence }, new WixActionTuple(null, new Identifier("AdminUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence }, new WixActionTuple(null, new Identifier("InstallUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence }, new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence }, new WixActionTuple(null, new Identifier("AdminUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence }, new WixActionTuple(null, new Identifier("InstallUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvtExecuteSequence }, + new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence }, new WixActionTuple(null, new Identifier("InstallExecuteSequence/AllocateRegistrySpace", AccessModifier.Public)) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence }, diff --git a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs index 53aa2196..ffb8e495 100644 --- a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs +++ b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs @@ -43,11 +43,11 @@ namespace WixToolsetTest.Data public void CanCheckNameofField() { var fileTuple = new FileTuple(); - Assert.Equal("Component_", fileTuple.Definition.FieldDefinitions[1].Name); + Assert.Equal("Component_", fileTuple.Definition.FieldDefinitions[0].Name); Assert.Null(fileTuple.Fields[0]); fileTuple.Component_ = "Foo"; - Assert.Equal("Component_", fileTuple.Fields[1].Name); - Assert.Same(fileTuple.Definition.FieldDefinitions[1].Name, fileTuple.Fields[1].Name); + Assert.Equal("Component_", fileTuple.Fields[0].Name); + Assert.Same(fileTuple.Definition.FieldDefinitions[0].Name, fileTuple.Fields[0].Name); } [Fact] -- cgit v1.2.3-55-g6feb From 109ee5a02f9cec4775697b43655674fc70f4127a Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 22 May 2019 00:46:18 -0700 Subject: Obsolete obsolete constructor --- src/WixToolset.Data/Identifier.cs | 9 +- .../WindowsInstaller/WindowsInstallerStandard.cs | 218 ++++++++++----------- src/test/WixToolsetTest.Data/SerializeFixture.cs | 4 +- 3 files changed, 112 insertions(+), 119 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs index 0ef39afa..9bbf35f0 100644 --- a/src/WixToolset.Data/Identifier.cs +++ b/src/WixToolset.Data/Identifier.cs @@ -14,20 +14,13 @@ namespace WixToolset.Data { public static Identifier Invalid = new Identifier(AccessModifier.Private, (string)null); - // TODO: [Obsolete] this constructor. + [Obsolete] public Identifier(string id, AccessModifier access) { this.Id = id; this.Access = access; } - // TODO: [Obsolete] this constructor. - public Identifier(int id, AccessModifier access) - { - this.Id = id.ToString(); - this.Access = access; - } - public Identifier(AccessModifier access, string id) { this.Access = access; diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index e6c7e337..9f648f4b 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -89,156 +89,156 @@ namespace WixToolset.Data.WindowsInstaller private static readonly WixActionTuple[] standardActions = new[] { - new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecute", AccessModifier.Public)) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecuteAgain", AccessModifier.Public)) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallAdminPackage", AccessModifier.Public)) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminUISequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/AllocateRegistrySpace", AccessModifier.Public)) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/AppSearch", AccessModifier.Public)) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/AppSearch", AccessModifier.Public)) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/BindImage", AccessModifier.Public)) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateFolders", AccessModifier.Public)) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/DuplicateFiles", AccessModifier.Public)) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/FindRelatedProducts", AccessModifier.Public)) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/FindRelatedProducts", AccessModifier.Public)) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallODBC", AccessModifier.Public)) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallServices", AccessModifier.Public)) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiConfigureServices", AccessModifier.Public)) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT>=600" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT>=600" }, - new WixActionTuple(null, new Identifier("InstallUISequence/IsolateComponents", AccessModifier.Public)) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/IsolateComponents", AccessModifier.Public)) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminUISequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/MigrateFeatureStates", AccessModifier.Public)) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/MigrateFeatureStates", AccessModifier.Public)) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/MoveFiles", AccessModifier.Public)) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("AdminExecuteSequence/PatchFiles", AccessModifier.Public)) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/PatchFiles", AccessModifier.Public)) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/ProcessComponents", AccessModifier.Public)) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterComPlus", AccessModifier.Public)) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterFonts", AccessModifier.Public)) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterProduct", AccessModifier.Public)) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterTypeLibraries", AccessModifier.Public)) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterUser", AccessModifier.Public)) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveDuplicateFiles", AccessModifier.Public)) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveEnvironmentStrings", AccessModifier.Public)) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveFiles", AccessModifier.Public)) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveFolders", AccessModifier.Public)) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveIniValues", AccessModifier.Public)) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveODBC", AccessModifier.Public)) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveRegistryValues", AccessModifier.Public)) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveShortcuts", AccessModifier.Public)) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/SelfRegModules", AccessModifier.Public)) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/SelfUnregModules", AccessModifier.Public)) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/SetODBCFolders", AccessModifier.Public)) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier("InstallUISequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/DeleteServices", AccessModifier.Public)) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier("InstallUISequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/StartServices", AccessModifier.Public)) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/StopServices", AccessModifier.Public)) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiUnpublishAssemblies", AccessModifier.Public)) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishComponents", AccessModifier.Public)) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishFeatures", AccessModifier.Public)) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterClassInfo", AccessModifier.Public)) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterComPlus", AccessModifier.Public)) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterExtensionInfo", AccessModifier.Public)) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterFonts", AccessModifier.Public)) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterMIMEInfo", AccessModifier.Public)) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterProgIdInfo", AccessModifier.Public)) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterTypeLibraries", AccessModifier.Public)) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallUISequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteEnvironmentStrings", AccessModifier.Public)) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteIniValues", AccessModifier.Public)) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteRegistryValues", AccessModifier.Public)) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence }, }; private static readonly HashSet standardDirectories = new HashSet diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 856bcda7..335151cd 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -19,7 +19,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Tuples.Add(new ComponentTuple(sln, new Identifier("TestComponent", AccessModifier.Public)) + section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), Directory_ = "TestFolder", @@ -189,7 +189,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Tuples.Add(new ComponentTuple(sln, new Identifier("TestComponent", AccessModifier.Public)) + section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), Directory_ = "TestFolder", -- cgit v1.2.3-55-g6feb From b36433623fcac28cf620868430d49bc36fca2963 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 22 May 2019 14:45:33 -0700 Subject: Use "Ref" instead of "_" as the reference convention --- src/WixToolset.Data/Tuples/AppSearchTuple.cs | 10 +-- src/WixToolset.Data/Tuples/BBControlTuple.cs | 10 +-- src/WixToolset.Data/Tuples/BillboardTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ClassTuple.cs | 50 ++++++------- src/WixToolset.Data/Tuples/ComplusTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ComponentTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ConditionTuple.cs | 10 +-- .../Tuples/ControlConditionTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/ControlEventTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/ControlTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/CreateFolderTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/DialogTuple.cs | 30 ++++---- src/WixToolset.Data/Tuples/DirectoryTuple.cs | 10 +-- src/WixToolset.Data/Tuples/DrLocatorTuple.cs | 10 +-- src/WixToolset.Data/Tuples/DuplicateFileTuple.cs | 40 +++++------ src/WixToolset.Data/Tuples/EnvironmentTuple.cs | 10 +-- src/WixToolset.Data/Tuples/EventMappingTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/ExtensionTuple.cs | 40 +++++------ .../Tuples/FeatureComponentsTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/FeatureTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/FileTuple.cs | 30 ++++---- src/WixToolset.Data/Tuples/IniFileTuple.cs | 10 +-- src/WixToolset.Data/Tuples/IniLocatorTuple.cs | 10 +-- .../Tuples/IsolatedComponentTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/ListViewTuple.cs | 10 +-- src/WixToolset.Data/Tuples/MIMETuple.cs | 10 +-- src/WixToolset.Data/Tuples/MoveFileTuple.cs | 10 +-- src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs | 10 +-- src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs | 40 +++++------ .../Tuples/MsiDigitalSignatureTuple.cs | 10 +-- src/WixToolset.Data/Tuples/MsiFileHashTuple.cs | 10 +-- .../Tuples/MsiPackageCertificateTuple.cs | 10 +-- .../Tuples/MsiPatchCertificateTuple.cs | 10 +-- .../Tuples/MsiPatchOldAssemblyFileTuple.cs | 20 +++--- .../Tuples/MsiServiceConfigFailureActionsTuple.cs | 10 +-- .../Tuples/MsiServiceConfigTuple.cs | 10 +-- .../Tuples/MsiShortcutPropertyTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ODBCDriverTuple.cs | 30 ++++---- .../Tuples/ODBCSourceAttributeTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs | 30 ++++---- src/WixToolset.Data/Tuples/PatchPackageTuple.cs | 10 +-- src/WixToolset.Data/Tuples/PatchTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/ProgIdTuple.cs | 30 ++++---- .../Tuples/PublishComponentTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/RegistryTuple.cs | 10 +-- src/WixToolset.Data/Tuples/RemoveFileTuple.cs | 10 +-- src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs | 10 +-- src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ReserveCostTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ServiceControlTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ServiceInstallTuple.cs | 10 +-- src/WixToolset.Data/Tuples/ShortcutTuple.cs | 30 ++++---- .../Tuples/TargetFilesOptionalDataTuple.cs | 84 ++++++++++++++++++++++ .../Tuples/TargetFiles_OptionalDataTuple.cs | 84 ---------------------- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 12 ++-- src/WixToolset.Data/Tuples/TypeLibTuple.cs | 30 ++++---- .../Tuples/UpgradedFilesOptionalDataTuple.cs | 76 ++++++++++++++++++++ .../Tuples/UpgradedFiles_OptionalDataTuple.cs | 76 -------------------- src/WixToolset.Data/Tuples/VerbTuple.cs | 10 +-- .../Tuples/WixBindUpdatedFilesTuple.cs | 10 +-- .../Tuples/WixBundleCatalogTuple.cs | 10 +-- .../Tuples/WixBundleExePackageTuple.cs | 10 +-- .../Tuples/WixBundleMsiFeatureTuple.cs | 10 +-- .../Tuples/WixBundleMsiPackageTuple.cs | 10 +-- .../Tuples/WixBundleMsiPropertyTuple.cs | 10 +-- .../Tuples/WixBundleMspPackageTuple.cs | 10 +-- .../Tuples/WixBundleMsuPackageTuple.cs | 10 +-- .../Tuples/WixBundlePackageCommandLineTuple.cs | 10 +-- .../Tuples/WixBundlePackageTuple.cs | 50 ++++++------- .../Tuples/WixBundlePayloadTuple.cs | 30 ++++---- .../Tuples/WixBundleRollbackBoundaryTuple.cs | 10 +-- .../Tuples/WixBundleSlipstreamMspTuple.cs | 20 +++--- .../Tuples/WixComponentSearchTuple.cs | 10 +-- .../Tuples/WixFeatureModulesTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | 10 +-- src/WixToolset.Data/Tuples/WixFileTuple.cs | 30 ++++---- .../Tuples/WixInstanceComponentTuple.cs | 10 +-- src/WixToolset.Data/Tuples/WixMergeTuple.cs | 20 +++--- src/WixToolset.Data/Tuples/WixOrderingTuple.cs | 20 +++--- .../Tuples/WixProductSearchTuple.cs | 10 +-- src/WixToolset.Data/Tuples/WixPropertyTuple.cs | 10 +-- .../Tuples/WixRegistrySearchTuple.cs | 10 +-- .../Tuples/WixSearchRelationTuple.cs | 20 +++--- src/test/WixToolsetTest.Data/SerializeFixture.cs | 6 +- .../WixToolsetTest.Data/TupleDefinitionFixture.cs | 30 ++++---- 88 files changed, 849 insertions(+), 849 deletions(-) create mode 100644 src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs create mode 100644 src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/AppSearchTuple.cs b/src/WixToolset.Data/Tuples/AppSearchTuple.cs index 4c03f847..5c972fa0 100644 --- a/src/WixToolset.Data/Tuples/AppSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/AppSearchTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(AppSearchTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppSearchTupleFields.Signature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppSearchTupleFields.SignatureRef), IntermediateFieldType.String), }, typeof(AppSearchTuple)); } @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples public enum AppSearchTupleFields { Property, - Signature_, + SignatureRef, } public class AppSearchTuple : IntermediateTuple @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)AppSearchTupleFields.Property, value); } - public string Signature_ + public string SignatureRef { - get => (string)this.Fields[(int)AppSearchTupleFields.Signature_]; - set => this.Set((int)AppSearchTupleFields.Signature_, value); + get => (string)this.Fields[(int)AppSearchTupleFields.SignatureRef]; + set => this.Set((int)AppSearchTupleFields.SignatureRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BBControlTuple.cs b/src/WixToolset.Data/Tuples/BBControlTuple.cs index 01a47097..ba2868ec 100644 --- a/src/WixToolset.Data/Tuples/BBControlTuple.cs +++ b/src/WixToolset.Data/Tuples/BBControlTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.BBControl, new[] { - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Billboard_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlTupleFields.BillboardRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BBControlTupleFields.BBControl), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BBControlTupleFields.Type), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BBControlTupleFields.X), IntermediateFieldType.Number), @@ -37,7 +37,7 @@ namespace WixToolset.Data.Tuples { public enum BBControlTupleFields { - Billboard_, + BillboardRef, BBControl, Type, X, @@ -69,10 +69,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[BBControlTupleFields index] => this.Fields[(int)index]; - public string Billboard_ + public string BillboardRef { - get => (string)this.Fields[(int)BBControlTupleFields.Billboard_]; - set => this.Set((int)BBControlTupleFields.Billboard_, value); + get => (string)this.Fields[(int)BBControlTupleFields.BillboardRef]; + set => this.Set((int)BBControlTupleFields.BillboardRef, value); } public string BBControl diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs index dc5c5769..9931d16a 100644 --- a/src/WixToolset.Data/Tuples/BillboardTuple.cs +++ b/src/WixToolset.Data/Tuples/BillboardTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.Billboard, new[] { - new IntermediateFieldDefinition(nameof(BillboardTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardTupleFields.FeatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BillboardTupleFields.Action), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(BillboardTupleFields.Ordering), IntermediateFieldType.Number), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum BillboardTupleFields { - Feature_, + FeatureRef, Action, Ordering, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[BillboardTupleFields index] => this.Fields[(int)index]; - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)BillboardTupleFields.Feature_]; - set => this.Set((int)BillboardTupleFields.Feature_, value); + get => (string)this.Fields[(int)BillboardTupleFields.FeatureRef]; + set => this.Set((int)BillboardTupleFields.FeatureRef, value); } public string Action diff --git a/src/WixToolset.Data/Tuples/ClassTuple.cs b/src/WixToolset.Data/Tuples/ClassTuple.cs index f6ae4a4c..5e40fe35 100644 --- a/src/WixToolset.Data/Tuples/ClassTuple.cs +++ b/src/WixToolset.Data/Tuples/ClassTuple.cs @@ -12,16 +12,16 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(ClassTupleFields.CLSID), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ClassTupleFields.Context), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.Component_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.ProgId_Default), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.DefaultProgIdRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ClassTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.AppId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.AppIdRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ClassTupleFields.FileTypeMask), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.Icon_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.IconRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ClassTupleFields.IconIndex), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ClassTupleFields.DefInprocHandler), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ClassTupleFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassTupleFields.FeatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ClassTupleFields.RelativePath), IntermediateFieldType.Bool), }, typeof(ClassTuple)); @@ -34,16 +34,16 @@ namespace WixToolset.Data.Tuples { CLSID, Context, - Component_, - ProgId_Default, + ComponentRef, + DefaultProgIdRef, Description, - AppId_, + AppIdRef, FileTypeMask, - Icon_, + IconRef, IconIndex, DefInprocHandler, Argument, - Feature_, + FeatureRef, RelativePath, } @@ -71,16 +71,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ClassTupleFields.Context, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ClassTupleFields.Component_]; - set => this.Set((int)ClassTupleFields.Component_, value); + get => (string)this.Fields[(int)ClassTupleFields.ComponentRef]; + set => this.Set((int)ClassTupleFields.ComponentRef, value); } - public string ProgId_Default + public string DefaultProgIdRef { - get => (string)this.Fields[(int)ClassTupleFields.ProgId_Default]; - set => this.Set((int)ClassTupleFields.ProgId_Default, value); + get => (string)this.Fields[(int)ClassTupleFields.DefaultProgIdRef]; + set => this.Set((int)ClassTupleFields.DefaultProgIdRef, value); } public string Description @@ -89,10 +89,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ClassTupleFields.Description, value); } - public string AppId_ + public string AppIdRef { - get => (string)this.Fields[(int)ClassTupleFields.AppId_]; - set => this.Set((int)ClassTupleFields.AppId_, value); + get => (string)this.Fields[(int)ClassTupleFields.AppIdRef]; + set => this.Set((int)ClassTupleFields.AppIdRef, value); } public string FileTypeMask @@ -101,10 +101,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ClassTupleFields.FileTypeMask, value); } - public string Icon_ + public string IconRef { - get => (string)this.Fields[(int)ClassTupleFields.Icon_]; - set => this.Set((int)ClassTupleFields.Icon_, value); + get => (string)this.Fields[(int)ClassTupleFields.IconRef]; + set => this.Set((int)ClassTupleFields.IconRef, value); } public int IconIndex @@ -125,10 +125,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ClassTupleFields.Argument, value); } - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)ClassTupleFields.Feature_]; - set => this.Set((int)ClassTupleFields.Feature_, value); + get => (string)this.Fields[(int)ClassTupleFields.FeatureRef]; + set => this.Set((int)ClassTupleFields.FeatureRef, value); } public bool RelativePath diff --git a/src/WixToolset.Data/Tuples/ComplusTuple.cs b/src/WixToolset.Data/Tuples/ComplusTuple.cs index f011bbd4..bd76c0d3 100644 --- a/src/WixToolset.Data/Tuples/ComplusTuple.cs +++ b/src/WixToolset.Data/Tuples/ComplusTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.Complus, new[] { - new IntermediateFieldDefinition(nameof(ComplusTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComplusTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ComplusTupleFields.ExpType), IntermediateFieldType.Number), }, typeof(ComplusTuple)); @@ -21,7 +21,7 @@ namespace WixToolset.Data.Tuples { public enum ComplusTupleFields { - Component_, + ComponentRef, ExpType, } @@ -37,10 +37,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ComplusTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ComplusTupleFields.Component_]; - set => this.Set((int)ComplusTupleFields.Component_, value); + get => (string)this.Fields[(int)ComplusTupleFields.ComponentRef]; + set => this.Set((int)ComplusTupleFields.ComponentRef, value); } public int ExpType diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs index 67cb7042..51693b53 100644 --- a/src/WixToolset.Data/Tuples/ComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/ComponentTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(ComponentTupleFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentTupleFields.DirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ComponentTupleFields.Location), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ComponentTupleFields.DisableRegistryReflection), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ComponentTupleFields.NeverOverwrite), IntermediateFieldType.Bool), @@ -34,7 +34,7 @@ namespace WixToolset.Data.Tuples public enum ComponentTupleFields { ComponentId, - Directory_, + DirectoryRef, Location, DisableRegistryReflection, NeverOverwrite, @@ -74,10 +74,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ComponentTupleFields.ComponentId, value); } - public string Directory_ + public string DirectoryRef { - get => (string)this.Fields[(int)ComponentTupleFields.Directory_]; - set => this.Set((int)ComponentTupleFields.Directory_, value); + get => (string)this.Fields[(int)ComponentTupleFields.DirectoryRef]; + set => this.Set((int)ComponentTupleFields.DirectoryRef, value); } public ComponentLocation Location diff --git a/src/WixToolset.Data/Tuples/ConditionTuple.cs b/src/WixToolset.Data/Tuples/ConditionTuple.cs index f62174f6..9b2284a4 100644 --- a/src/WixToolset.Data/Tuples/ConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/ConditionTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.Condition, new[] { - new IntermediateFieldDefinition(nameof(ConditionTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ConditionTupleFields.FeatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ConditionTupleFields.Level), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ConditionTupleFields.Condition), IntermediateFieldType.String), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum ConditionTupleFields { - Feature_, + FeatureRef, Level, Condition, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ConditionTupleFields index] => this.Fields[(int)index]; - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)ConditionTupleFields.Feature_]; - set => this.Set((int)ConditionTupleFields.Feature_, value); + get => (string)this.Fields[(int)ConditionTupleFields.FeatureRef]; + set => this.Set((int)ConditionTupleFields.FeatureRef, value); } public int Level diff --git a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs index 5b2599ec..2e5dbf77 100644 --- a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.ControlCondition, new[] { - new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Dialog_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Control_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.ControlRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Action), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Condition), IntermediateFieldType.String), }, @@ -23,8 +23,8 @@ namespace WixToolset.Data.Tuples { public enum ControlConditionTupleFields { - Dialog_, - Control_, + DialogRef, + ControlRef, Action, Condition, } @@ -41,16 +41,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ControlConditionTupleFields index] => this.Fields[(int)index]; - public string Dialog_ + public string DialogRef { - get => (string)this.Fields[(int)ControlConditionTupleFields.Dialog_]; - set => this.Set((int)ControlConditionTupleFields.Dialog_, value); + get => (string)this.Fields[(int)ControlConditionTupleFields.DialogRef]; + set => this.Set((int)ControlConditionTupleFields.DialogRef, value); } - public string Control_ + public string ControlRef { - get => (string)this.Fields[(int)ControlConditionTupleFields.Control_]; - set => this.Set((int)ControlConditionTupleFields.Control_, value); + get => (string)this.Fields[(int)ControlConditionTupleFields.ControlRef]; + set => this.Set((int)ControlConditionTupleFields.ControlRef, value); } public string Action diff --git a/src/WixToolset.Data/Tuples/ControlEventTuple.cs b/src/WixToolset.Data/Tuples/ControlEventTuple.cs index 6486673b..96d0bcdc 100644 --- a/src/WixToolset.Data/Tuples/ControlEventTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlEventTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.ControlEvent, new[] { - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Dialog_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Control_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventTupleFields.ControlRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Event), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Argument), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Condition), IntermediateFieldType.String), @@ -25,8 +25,8 @@ namespace WixToolset.Data.Tuples { public enum ControlEventTupleFields { - Dialog_, - Control_, + DialogRef, + ControlRef, Event, Argument, Condition, @@ -45,16 +45,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ControlEventTupleFields index] => this.Fields[(int)index]; - public string Dialog_ + public string DialogRef { - get => (string)this.Fields[(int)ControlEventTupleFields.Dialog_]; - set => this.Set((int)ControlEventTupleFields.Dialog_, value); + get => (string)this.Fields[(int)ControlEventTupleFields.DialogRef]; + set => this.Set((int)ControlEventTupleFields.DialogRef, value); } - public string Control_ + public string ControlRef { - get => (string)this.Fields[(int)ControlEventTupleFields.Control_]; - set => this.Set((int)ControlEventTupleFields.Control_, value); + get => (string)this.Fields[(int)ControlEventTupleFields.ControlRef]; + set => this.Set((int)ControlEventTupleFields.ControlRef, value); } public string Event diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs index d08d9311..f0fd92c1 100644 --- a/src/WixToolset.Data/Tuples/ControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.Control, new[] { - new IntermediateFieldDefinition(nameof(ControlTupleFields.Dialog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.DialogRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlTupleFields.Control), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlTupleFields.Type), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlTupleFields.X), IntermediateFieldType.Number), @@ -28,7 +28,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(ControlTupleFields.Visible), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ControlTupleFields.Property), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlTupleFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Control_Next), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlTupleFields.NextControlRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlTupleFields.Help), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ControlTupleFields.TrackDiskSpace), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ControlTupleFields.SourceFile), IntermediateFieldType.Path), @@ -41,7 +41,7 @@ namespace WixToolset.Data.Tuples { public enum ControlTupleFields { - Dialog_, + DialogRef, Control, Type, X, @@ -59,7 +59,7 @@ namespace WixToolset.Data.Tuples Visible, Property, Text, - Control_Next, + NextControlRef, Help, TrackDiskSpace, SourceFile, @@ -77,10 +77,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ControlTupleFields index] => this.Fields[(int)index]; - public string Dialog_ + public string DialogRef { - get => (string)this.Fields[(int)ControlTupleFields.Dialog_]; - set => this.Set((int)ControlTupleFields.Dialog_, value); + get => (string)this.Fields[(int)ControlTupleFields.DialogRef]; + set => this.Set((int)ControlTupleFields.DialogRef, value); } public string Control @@ -276,10 +276,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ControlTupleFields.Text, value); } - public string Control_Next + public string NextControlRef { - get => (string)this.Fields[(int)ControlTupleFields.Control_Next]; - set => this.Set((int)ControlTupleFields.Control_Next, value); + get => (string)this.Fields[(int)ControlTupleFields.NextControlRef]; + set => this.Set((int)ControlTupleFields.NextControlRef, value); } public string Help diff --git a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs index 585f274c..d9d4763e 100644 --- a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs +++ b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.CreateFolder, new[] { - new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.Directory_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(CreateFolderTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum CreateFolderTupleFields { - Directory_, - Component_, + DirectoryRef, + ComponentRef, } public class CreateFolderTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[CreateFolderTupleFields index] => this.Fields[(int)index]; - public string Directory_ + public string DirectoryRef { - get => (string)this.Fields[(int)CreateFolderTupleFields.Directory_]; - set => this.Set((int)CreateFolderTupleFields.Directory_, value); + get => (string)this.Fields[(int)CreateFolderTupleFields.DirectoryRef]; + set => this.Set((int)CreateFolderTupleFields.DirectoryRef, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)CreateFolderTupleFields.Component_]; - set => this.Set((int)CreateFolderTupleFields.Component_, value); + get => (string)this.Fields[(int)CreateFolderTupleFields.ComponentRef]; + set => this.Set((int)CreateFolderTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DialogTuple.cs b/src/WixToolset.Data/Tuples/DialogTuple.cs index bc803d68..492d2fb1 100644 --- a/src/WixToolset.Data/Tuples/DialogTuple.cs +++ b/src/WixToolset.Data/Tuples/DialogTuple.cs @@ -26,9 +26,9 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(DialogTupleFields.SystemModal), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(DialogTupleFields.TrackDiskSpace), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(DialogTupleFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_First), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_Default), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_Cancel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogTupleFields.FirstControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogTupleFields.DefaultControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogTupleFields.CancelControlRef), IntermediateFieldType.String), }, typeof(DialogTuple)); } @@ -54,9 +54,9 @@ namespace WixToolset.Data.Tuples SystemModal, TrackDiskSpace, Title, - Control_First, - Control_Default, - Control_Cancel, + FirstControlRef, + DefaultControlRef, + CancelControlRef, } public class DialogTuple : IntermediateTuple @@ -167,22 +167,22 @@ namespace WixToolset.Data.Tuples set => this.Set((int)DialogTupleFields.Title, value); } - public string Control_First + public string FirstControlRef { - get => (string)this.Fields[(int)DialogTupleFields.Control_First]; - set => this.Set((int)DialogTupleFields.Control_First, value); + get => (string)this.Fields[(int)DialogTupleFields.FirstControlRef]; + set => this.Set((int)DialogTupleFields.FirstControlRef, value); } - public string Control_Default + public string DefaultControlRef { - get => (string)this.Fields[(int)DialogTupleFields.Control_Default]; - set => this.Set((int)DialogTupleFields.Control_Default, value); + get => (string)this.Fields[(int)DialogTupleFields.DefaultControlRef]; + set => this.Set((int)DialogTupleFields.DefaultControlRef, value); } - public string Control_Cancel + public string CancelControlRef { - get => (string)this.Fields[(int)DialogTupleFields.Control_Cancel]; - set => this.Set((int)DialogTupleFields.Control_Cancel, value); + get => (string)this.Fields[(int)DialogTupleFields.CancelControlRef]; + set => this.Set((int)DialogTupleFields.CancelControlRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DirectoryTuple.cs b/src/WixToolset.Data/Tuples/DirectoryTuple.cs index e36d6796..dc95f046 100644 --- a/src/WixToolset.Data/Tuples/DirectoryTuple.cs +++ b/src/WixToolset.Data/Tuples/DirectoryTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.Directory, new[] { - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Directory_Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ParentDirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DirectoryTupleFields.DefaultDir), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum DirectoryTupleFields { - Directory_Parent, + ParentDirectoryRef, DefaultDir, ComponentGuidGenerationSeed, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[DirectoryTupleFields index] => this.Fields[(int)index]; - public string Directory_Parent + public string ParentDirectoryRef { - get => (string)this.Fields[(int)DirectoryTupleFields.Directory_Parent]; - set => this.Set((int)DirectoryTupleFields.Directory_Parent, value); + get => (string)this.Fields[(int)DirectoryTupleFields.ParentDirectoryRef]; + set => this.Set((int)DirectoryTupleFields.ParentDirectoryRef, value); } public string DefaultDir diff --git a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs index 45c7b3ee..4f696b5c 100644 --- a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.DrLocator, new[] { - new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Signature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.SignatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Parent), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Path), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Depth), IntermediateFieldType.Number), @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples { public enum DrLocatorTupleFields { - Signature_, + SignatureRef, Parent, Path, Depth, @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[DrLocatorTupleFields index] => this.Fields[(int)index]; - public string Signature_ + public string SignatureRef { - get => (string)this.Fields[(int)DrLocatorTupleFields.Signature_]; - set => this.Set((int)DrLocatorTupleFields.Signature_, value); + get => (string)this.Fields[(int)DrLocatorTupleFields.SignatureRef]; + set => this.Set((int)DrLocatorTupleFields.SignatureRef, value); } public string Parent diff --git a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs index 08720383..87220e80 100644 --- a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs +++ b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs @@ -10,10 +10,10 @@ namespace WixToolset.Data TupleDefinitionType.DuplicateFile, new[] { - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.Component_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestinationName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestinationFolder), IntermediateFieldType.String), }, typeof(DuplicateFileTuple)); } @@ -23,10 +23,10 @@ namespace WixToolset.Data.Tuples { public enum DuplicateFileTupleFields { - Component_, - File_, - DestName, - DestFolder, + ComponentRef, + FileRef, + DestinationName, + DestinationFolder, } public class DuplicateFileTuple : IntermediateTuple @@ -41,28 +41,28 @@ namespace WixToolset.Data.Tuples public IntermediateField this[DuplicateFileTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)DuplicateFileTupleFields.Component_]; - set => this.Set((int)DuplicateFileTupleFields.Component_, value); + get => (string)this.Fields[(int)DuplicateFileTupleFields.ComponentRef]; + set => this.Set((int)DuplicateFileTupleFields.ComponentRef, value); } - public string File_ + public string FileRef { - get => (string)this.Fields[(int)DuplicateFileTupleFields.File_]; - set => this.Set((int)DuplicateFileTupleFields.File_, value); + get => (string)this.Fields[(int)DuplicateFileTupleFields.FileRef]; + set => this.Set((int)DuplicateFileTupleFields.FileRef, value); } - public string DestName + public string DestinationName { - get => (string)this.Fields[(int)DuplicateFileTupleFields.DestName]; - set => this.Set((int)DuplicateFileTupleFields.DestName, value); + get => (string)this.Fields[(int)DuplicateFileTupleFields.DestinationName]; + set => this.Set((int)DuplicateFileTupleFields.DestinationName, value); } - public string DestFolder + public string DestinationFolder { - get => (string)this.Fields[(int)DuplicateFileTupleFields.DestFolder]; - set => this.Set((int)DuplicateFileTupleFields.DestFolder, value); + get => (string)this.Fields[(int)DuplicateFileTupleFields.DestinationFolder]; + set => this.Set((int)DuplicateFileTupleFields.DestinationFolder, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs index 56b9f7d2..a6a10ac5 100644 --- a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs +++ b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs @@ -17,7 +17,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Part), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Permanent), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.System), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(EnvironmentTuple)); } @@ -34,7 +34,7 @@ namespace WixToolset.Data.Tuples Part, Permanent, System, - Component_, + ComponentRef, } public enum EnvironmentActionType @@ -105,10 +105,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)EnvironmentTupleFields.System, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)EnvironmentTupleFields.Component_]; - set => this.Set((int)EnvironmentTupleFields.Component_, value); + get => (string)this.Fields[(int)EnvironmentTupleFields.ComponentRef]; + set => this.Set((int)EnvironmentTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EventMappingTuple.cs b/src/WixToolset.Data/Tuples/EventMappingTuple.cs index b83d5f4e..d172d4ce 100644 --- a/src/WixToolset.Data/Tuples/EventMappingTuple.cs +++ b/src/WixToolset.Data/Tuples/EventMappingTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.EventMapping, new[] { - new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Dialog_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Control_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingTupleFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingTupleFields.ControlRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Event), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Attribute), IntermediateFieldType.String), }, @@ -23,8 +23,8 @@ namespace WixToolset.Data.Tuples { public enum EventMappingTupleFields { - Dialog_, - Control_, + DialogRef, + ControlRef, Event, Attribute, } @@ -41,16 +41,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[EventMappingTupleFields index] => this.Fields[(int)index]; - public string Dialog_ + public string DialogRef { - get => (string)this.Fields[(int)EventMappingTupleFields.Dialog_]; - set => this.Set((int)EventMappingTupleFields.Dialog_, value); + get => (string)this.Fields[(int)EventMappingTupleFields.DialogRef]; + set => this.Set((int)EventMappingTupleFields.DialogRef, value); } - public string Control_ + public string ControlRef { - get => (string)this.Fields[(int)EventMappingTupleFields.Control_]; - set => this.Set((int)EventMappingTupleFields.Control_, value); + get => (string)this.Fields[(int)EventMappingTupleFields.ControlRef]; + set => this.Set((int)EventMappingTupleFields.ControlRef, value); } public string Event diff --git a/src/WixToolset.Data/Tuples/ExtensionTuple.cs b/src/WixToolset.Data/Tuples/ExtensionTuple.cs index c4f273b3..8d817079 100644 --- a/src/WixToolset.Data/Tuples/ExtensionTuple.cs +++ b/src/WixToolset.Data/Tuples/ExtensionTuple.cs @@ -11,10 +11,10 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Extension), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Component_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.ProgId_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.MIME_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.ProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.MimeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionTupleFields.FeatureRef), IntermediateFieldType.String), }, typeof(ExtensionTuple)); } @@ -25,10 +25,10 @@ namespace WixToolset.Data.Tuples public enum ExtensionTupleFields { Extension, - Component_, - ProgId_, - MIME_, - Feature_, + ComponentRef, + ProgIdRef, + MimeRef, + FeatureRef, } public class ExtensionTuple : IntermediateTuple @@ -49,28 +49,28 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ExtensionTupleFields.Extension, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ExtensionTupleFields.Component_]; - set => this.Set((int)ExtensionTupleFields.Component_, value); + get => (string)this.Fields[(int)ExtensionTupleFields.ComponentRef]; + set => this.Set((int)ExtensionTupleFields.ComponentRef, value); } - public string ProgId_ + public string ProgIdRef { - get => (string)this.Fields[(int)ExtensionTupleFields.ProgId_]; - set => this.Set((int)ExtensionTupleFields.ProgId_, value); + get => (string)this.Fields[(int)ExtensionTupleFields.ProgIdRef]; + set => this.Set((int)ExtensionTupleFields.ProgIdRef, value); } - public string MIME_ + public string MimeRef { - get => (string)this.Fields[(int)ExtensionTupleFields.MIME_]; - set => this.Set((int)ExtensionTupleFields.MIME_, value); + get => (string)this.Fields[(int)ExtensionTupleFields.MimeRef]; + set => this.Set((int)ExtensionTupleFields.MimeRef, value); } - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)ExtensionTupleFields.Feature_]; - set => this.Set((int)ExtensionTupleFields.Feature_, value); + get => (string)this.Fields[(int)ExtensionTupleFields.FeatureRef]; + set => this.Set((int)ExtensionTupleFields.FeatureRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs index 33f17ee9..1bda9c4c 100644 --- a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs +++ b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.FeatureComponents, new[] { - new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.Feature_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(FeatureComponentsTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum FeatureComponentsTupleFields { - Feature_, - Component_, + FeatureRef, + ComponentRef, } public class FeatureComponentsTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[FeatureComponentsTupleFields index] => this.Fields[(int)index]; - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)FeatureComponentsTupleFields.Feature_]; - set => this.Set((int)FeatureComponentsTupleFields.Feature_, value); + get => (string)this.Fields[(int)FeatureComponentsTupleFields.FeatureRef]; + set => this.Set((int)FeatureComponentsTupleFields.FeatureRef, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)FeatureComponentsTupleFields.Component_]; - set => this.Set((int)FeatureComponentsTupleFields.Component_, value); + get => (string)this.Fields[(int)FeatureComponentsTupleFields.ComponentRef]; + set => this.Set((int)FeatureComponentsTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureTuple.cs b/src/WixToolset.Data/Tuples/FeatureTuple.cs index 14a1a9f5..b057d079 100644 --- a/src/WixToolset.Data/Tuples/FeatureTuple.cs +++ b/src/WixToolset.Data/Tuples/FeatureTuple.cs @@ -10,12 +10,12 @@ namespace WixToolset.Data TupleDefinitionType.Feature, new[] { - new IntermediateFieldDefinition(nameof(FeatureTupleFields.Feature_Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.ParentFeatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FeatureTupleFields.Title), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FeatureTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FeatureTupleFields.Display), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(FeatureTupleFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureTupleFields.DirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FeatureTupleFields.DisallowAbsent), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(FeatureTupleFields.DisallowAdvertise), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(FeatureTupleFields.InstallDefault), IntermediateFieldType.Number), @@ -29,12 +29,12 @@ namespace WixToolset.Data.Tuples { public enum FeatureTupleFields { - Feature_Parent, + ParentFeatureRef, Title, Description, Display, Level, - Directory_, + DirectoryRef, DisallowAbsent, DisallowAdvertise, InstallDefault, @@ -66,10 +66,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[FeatureTupleFields index] => this.Fields[(int)index]; - public string Feature_Parent + public string ParentFeatureRef { - get => (string)this.Fields[(int)FeatureTupleFields.Feature_Parent]; - set => this.Set((int)FeatureTupleFields.Feature_Parent, value); + get => (string)this.Fields[(int)FeatureTupleFields.ParentFeatureRef]; + set => this.Set((int)FeatureTupleFields.ParentFeatureRef, value); } public string Title @@ -96,10 +96,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)FeatureTupleFields.Level, value); } - public string Directory_ + public string DirectoryRef { - get => (string)this.Fields[(int)FeatureTupleFields.Directory_]; - set => this.Set((int)FeatureTupleFields.Directory_, value); + get => (string)this.Fields[(int)FeatureTupleFields.DirectoryRef]; + set => this.Set((int)FeatureTupleFields.DirectoryRef, value); } public bool DisallowAbsent diff --git a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs index b5edfd2b..fcf77d70 100644 --- a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.FileSFPCatalog, new[] { - new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.SFPCatalog_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.SFPCatalogRef), IntermediateFieldType.String), }, typeof(FileSFPCatalogTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum FileSFPCatalogTupleFields { - File_, - SFPCatalog_, + FileRef, + SFPCatalogRef, } public class FileSFPCatalogTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[FileSFPCatalogTupleFields index] => this.Fields[(int)index]; - public string File_ + public string FileRef { - get => (string)this.Fields[(int)FileSFPCatalogTupleFields.File_]; - set => this.Set((int)FileSFPCatalogTupleFields.File_, value); + get => (string)this.Fields[(int)FileSFPCatalogTupleFields.FileRef]; + set => this.Set((int)FileSFPCatalogTupleFields.FileRef, value); } - public string SFPCatalog_ + public string SFPCatalogRef { - get => (string)this.Fields[(int)FileSFPCatalogTupleFields.SFPCatalog_]; - set => this.Set((int)FileSFPCatalogTupleFields.SFPCatalog_, value); + get => (string)this.Fields[(int)FileSFPCatalogTupleFields.SFPCatalogRef]; + set => this.Set((int)FileSFPCatalogTupleFields.SFPCatalogRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index eab29dfa..6d7281cc 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -10,9 +10,9 @@ namespace WixToolset.Data TupleDefinitionType.File, new[] { - new IntermediateFieldDefinition(nameof(FileTupleFields.Component_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.ShortFileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.LongFileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.FileSize), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(FileTupleFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.Language), IntermediateFieldType.String), @@ -34,9 +34,9 @@ namespace WixToolset.Data.Tuples { public enum FileTupleFields { - Component_, - ShortFileName, - LongFileName, + ComponentRef, + ShortName, + Name, FileSize, Version, Language, @@ -63,22 +63,22 @@ namespace WixToolset.Data.Tuples public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)FileTupleFields.Component_]; - set => this.Set((int)FileTupleFields.Component_, value); + get => (string)this.Fields[(int)FileTupleFields.ComponentRef]; + set => this.Set((int)FileTupleFields.ComponentRef, value); } - public string ShortFileName + public string ShortName { - get => (string)this.Fields[(int)FileTupleFields.ShortFileName]; - set => this.Set((int)FileTupleFields.ShortFileName, value); + get => (string)this.Fields[(int)FileTupleFields.ShortName]; + set => this.Set((int)FileTupleFields.ShortName, value); } - public string LongFileName + public string Name { - get => (string)this.Fields[(int)FileTupleFields.LongFileName]; - set => this.Set((int)FileTupleFields.LongFileName, value); + get => (string)this.Fields[(int)FileTupleFields.Name]; + set => this.Set((int)FileTupleFields.Name, value); } public int FileSize diff --git a/src/WixToolset.Data/Tuples/IniFileTuple.cs b/src/WixToolset.Data/Tuples/IniFileTuple.cs index 804fff13..6aaa98c6 100644 --- a/src/WixToolset.Data/Tuples/IniFileTuple.cs +++ b/src/WixToolset.Data/Tuples/IniFileTuple.cs @@ -16,7 +16,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(IniFileTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniFileTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniFileTupleFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(IniFileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(IniFileTuple)); } @@ -32,7 +32,7 @@ namespace WixToolset.Data.Tuples Key, Value, Action, - Component_, + ComponentRef, } public class IniFileTuple : IntermediateTuple @@ -83,10 +83,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)IniFileTupleFields.Action, (int)value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)IniFileTupleFields.Component_]; - set => this.Set((int)IniFileTupleFields.Component_, value); + get => (string)this.Fields[(int)IniFileTupleFields.ComponentRef]; + set => this.Set((int)IniFileTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs index 84097f9c..b95bcdf2 100644 --- a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.IniLocator, new[] { - new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Signature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.SignatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.FileName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Section), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Key), IntermediateFieldType.String), @@ -25,7 +25,7 @@ namespace WixToolset.Data.Tuples { public enum IniLocatorTupleFields { - Signature_, + SignatureRef, FileName, Section, Key, @@ -45,10 +45,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[IniLocatorTupleFields index] => this.Fields[(int)index]; - public string Signature_ + public string SignatureRef { - get => (string)this.Fields[(int)IniLocatorTupleFields.Signature_]; - set => this.Set((int)IniLocatorTupleFields.Signature_, value); + get => (string)this.Fields[(int)IniLocatorTupleFields.SignatureRef]; + set => this.Set((int)IniLocatorTupleFields.SignatureRef, value); } public string FileName diff --git a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs index 325416e6..afd9891b 100644 --- a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.IsolatedComponent, new[] { - new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.Component_Shared), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.Component_Application), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.SharedComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.ApplicationComponentRef), IntermediateFieldType.String), }, typeof(IsolatedComponentTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum IsolatedComponentTupleFields { - Component_Shared, - Component_Application, + SharedComponentRef, + ApplicationComponentRef, } public class IsolatedComponentTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[IsolatedComponentTupleFields index] => this.Fields[(int)index]; - public string Component_Shared + public string SharedComponentRef { - get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Shared]; - set => this.Set((int)IsolatedComponentTupleFields.Component_Shared, value); + get => (string)this.Fields[(int)IsolatedComponentTupleFields.SharedComponentRef]; + set => this.Set((int)IsolatedComponentTupleFields.SharedComponentRef, value); } - public string Component_Application + public string ApplicationComponentRef { - get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Application]; - set => this.Set((int)IsolatedComponentTupleFields.Component_Application, value); + get => (string)this.Fields[(int)IsolatedComponentTupleFields.ApplicationComponentRef]; + set => this.Set((int)IsolatedComponentTupleFields.ApplicationComponentRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/ListViewTuple.cs b/src/WixToolset.Data/Tuples/ListViewTuple.cs index 75a3758c..80fbed83 100644 --- a/src/WixToolset.Data/Tuples/ListViewTuple.cs +++ b/src/WixToolset.Data/Tuples/ListViewTuple.cs @@ -14,7 +14,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(ListViewTupleFields.Order), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ListViewTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ListViewTupleFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewTupleFields.Binary_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewTupleFields.BinaryRef), IntermediateFieldType.String), }, typeof(ListViewTuple)); } @@ -28,7 +28,7 @@ namespace WixToolset.Data.Tuples Order, Value, Text, - Binary_, + BinaryRef, } public class ListViewTuple : IntermediateTuple @@ -67,10 +67,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ListViewTupleFields.Text, value); } - public string Binary_ + public string BinaryRef { - get => (string)this.Fields[(int)ListViewTupleFields.Binary_]; - set => this.Set((int)ListViewTupleFields.Binary_, value); + get => (string)this.Fields[(int)ListViewTupleFields.BinaryRef]; + set => this.Set((int)ListViewTupleFields.BinaryRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MIMETuple.cs b/src/WixToolset.Data/Tuples/MIMETuple.cs index 781015cb..19eff883 100644 --- a/src/WixToolset.Data/Tuples/MIMETuple.cs +++ b/src/WixToolset.Data/Tuples/MIMETuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(MIMETupleFields.ContentType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MIMETupleFields.Extension_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMETupleFields.ExtensionRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MIMETupleFields.CLSID), IntermediateFieldType.String), }, typeof(MIMETuple)); @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples public enum MIMETupleFields { ContentType, - Extension_, + ExtensionRef, CLSID, } @@ -45,10 +45,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MIMETupleFields.ContentType, value); } - public string Extension_ + public string ExtensionRef { - get => (string)this.Fields[(int)MIMETupleFields.Extension_]; - set => this.Set((int)MIMETupleFields.Extension_, value); + get => (string)this.Fields[(int)MIMETupleFields.ExtensionRef]; + set => this.Set((int)MIMETupleFields.ExtensionRef, value); } public string CLSID diff --git a/src/WixToolset.Data/Tuples/MoveFileTuple.cs b/src/WixToolset.Data/Tuples/MoveFileTuple.cs index ea93faea..74fef167 100644 --- a/src/WixToolset.Data/Tuples/MoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/MoveFileTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.MoveFile, new[] { - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceFolder), IntermediateFieldType.String), @@ -25,7 +25,7 @@ namespace WixToolset.Data.Tuples { public enum MoveFileTupleFields { - Component_, + ComponentRef, SourceName, DestName, SourceFolder, @@ -45,10 +45,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MoveFileTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)MoveFileTupleFields.Component_]; - set => this.Set((int)MoveFileTupleFields.Component_, value); + get => (string)this.Fields[(int)MoveFileTupleFields.ComponentRef]; + set => this.Set((int)MoveFileTupleFields.ComponentRef, value); } public string SourceName diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs index f4da9ea2..1f261446 100644 --- a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.MsiAssemblyName, new[] { - new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Value), IntermediateFieldType.String), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum MsiAssemblyNameTupleFields { - Component_, + ComponentRef, Name, Value, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiAssemblyNameTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Component_]; - set => this.Set((int)MsiAssemblyNameTupleFields.Component_, value); + get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.ComponentRef]; + set => this.Set((int)MsiAssemblyNameTupleFields.ComponentRef, value); } public string Name diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs index 70926557..99903307 100644 --- a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs @@ -10,10 +10,10 @@ namespace WixToolset.Data TupleDefinitionType.MsiAssembly, new[] { - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Component_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Feature_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.File_Manifest), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.File_Application), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ManifestFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ApplicationFileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Attributes), IntermediateFieldType.Number), }, typeof(MsiAssemblyTuple)); @@ -24,10 +24,10 @@ namespace WixToolset.Data.Tuples { public enum MsiAssemblyTupleFields { - Component_, - Feature_, - File_Manifest, - File_Application, + ComponentRef, + FeatureRef, + ManifestFileRef, + ApplicationFileRef, Attributes, } @@ -43,28 +43,28 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiAssemblyTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.Component_]; - set => this.Set((int)MsiAssemblyTupleFields.Component_, value); + get => (string)this.Fields[(int)MsiAssemblyTupleFields.ComponentRef]; + set => this.Set((int)MsiAssemblyTupleFields.ComponentRef, value); } - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.Feature_]; - set => this.Set((int)MsiAssemblyTupleFields.Feature_, value); + get => (string)this.Fields[(int)MsiAssemblyTupleFields.FeatureRef]; + set => this.Set((int)MsiAssemblyTupleFields.FeatureRef, value); } - public string File_Manifest + public string ManifestFileRef { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Manifest]; - set => this.Set((int)MsiAssemblyTupleFields.File_Manifest, value); + get => (string)this.Fields[(int)MsiAssemblyTupleFields.ManifestFileRef]; + set => this.Set((int)MsiAssemblyTupleFields.ManifestFileRef, value); } - public string File_Application + public string ApplicationFileRef { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Application]; - set => this.Set((int)MsiAssemblyTupleFields.File_Application, value); + get => (string)this.Fields[(int)MsiAssemblyTupleFields.ApplicationFileRef]; + set => this.Set((int)MsiAssemblyTupleFields.ApplicationFileRef, value); } public FileAssemblyType Type diff --git a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs index 6292b0af..eab762b0 100644 --- a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs @@ -12,7 +12,7 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Table), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.SignObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.DigitalCertificate_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.DigitalCertificateRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Hash), IntermediateFieldType.Path), }, typeof(MsiDigitalSignatureTuple)); @@ -25,7 +25,7 @@ namespace WixToolset.Data.Tuples { Table, SignObject, - DigitalCertificate_, + DigitalCertificateRef, Hash, } @@ -53,10 +53,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiDigitalSignatureTupleFields.SignObject, value); } - public string DigitalCertificate_ + public string DigitalCertificateRef { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.DigitalCertificate_]; - set => this.Set((int)MsiDigitalSignatureTupleFields.DigitalCertificate_, value); + get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.DigitalCertificateRef]; + set => this.Set((int)MsiDigitalSignatureTupleFields.DigitalCertificateRef, value); } public string Hash diff --git a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs index bb6ec1ae..a83093e9 100644 --- a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.MsiFileHash, new[] { - new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.FileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.Options), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart1), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart2), IntermediateFieldType.Number), @@ -25,7 +25,7 @@ namespace WixToolset.Data.Tuples { public enum MsiFileHashTupleFields { - File_, + FileRef, Options, HashPart1, HashPart2, @@ -45,10 +45,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiFileHashTupleFields index] => this.Fields[(int)index]; - public string File_ + public string FileRef { - get => (string)this.Fields[(int)MsiFileHashTupleFields.File_]; - set => this.Set((int)MsiFileHashTupleFields.File_, value); + get => (string)this.Fields[(int)MsiFileHashTupleFields.FileRef]; + set => this.Set((int)MsiFileHashTupleFields.FileRef, value); } public int Options diff --git a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs index d758abb9..ccc7f94e 100644 --- a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.PackageCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.DigitalCertificate_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.DigitalCertificateRef), IntermediateFieldType.String), }, typeof(MsiPackageCertificateTuple)); } @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples public enum MsiPackageCertificateTupleFields { PackageCertificate, - DigitalCertificate_, + DigitalCertificateRef, } public class MsiPackageCertificateTuple : IntermediateTuple @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiPackageCertificateTupleFields.PackageCertificate, value); } - public string DigitalCertificate_ + public string DigitalCertificateRef { - get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.DigitalCertificate_]; - set => this.Set((int)MsiPackageCertificateTupleFields.DigitalCertificate_, value); + get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.DigitalCertificateRef]; + set => this.Set((int)MsiPackageCertificateTupleFields.DigitalCertificateRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs index 511456dd..21cda4df 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.PatchCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.DigitalCertificate_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.DigitalCertificateRef), IntermediateFieldType.String), }, typeof(MsiPatchCertificateTuple)); } @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples public enum MsiPatchCertificateTupleFields { PatchCertificate, - DigitalCertificate_, + DigitalCertificateRef, } public class MsiPatchCertificateTuple : IntermediateTuple @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiPatchCertificateTupleFields.PatchCertificate, value); } - public string DigitalCertificate_ + public string DigitalCertificateRef { - get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.DigitalCertificate_]; - set => this.Set((int)MsiPatchCertificateTupleFields.DigitalCertificate_, value); + get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.DigitalCertificateRef]; + set => this.Set((int)MsiPatchCertificateTupleFields.DigitalCertificateRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs index ff874271..487dc714 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.MsiPatchOldAssemblyFile, new[] { - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.Assembly_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.AssemblyRef), IntermediateFieldType.String), }, typeof(MsiPatchOldAssemblyFileTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum MsiPatchOldAssemblyFileTupleFields { - File_, - Assembly_, + FileRef, + AssemblyRef, } public class MsiPatchOldAssemblyFileTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiPatchOldAssemblyFileTupleFields index] => this.Fields[(int)index]; - public string File_ + public string FileRef { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.File_]; - set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.File_, value); + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.FileRef]; + set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.FileRef, value); } - public string Assembly_ + public string AssemblyRef { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.Assembly_]; - set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.Assembly_, value); + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.AssemblyRef]; + set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.AssemblyRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs index 85484381..8a0001ae 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs @@ -19,7 +19,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Command), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Actions), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.DelayActions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(MsiServiceConfigFailureActionsTuple)); } @@ -38,7 +38,7 @@ namespace WixToolset.Data.Tuples Command, Actions, DelayActions, - Component_, + ComponentRef, } public class MsiServiceConfigFailureActionsTuple : IntermediateTuple @@ -107,10 +107,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.DelayActions, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Component_]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Component_, value); + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs index b0a58d9f..4943c245 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs @@ -16,7 +16,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.OnUninstall), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.ConfigType), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(MsiServiceConfigTuple)); } @@ -33,7 +33,7 @@ namespace WixToolset.Data.Tuples OnUninstall, ConfigType, Argument, - Component_, + ComponentRef, } public enum MsiServiceConfigType @@ -93,10 +93,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiServiceConfigTupleFields.Argument, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Component_]; - set => this.Set((int)MsiServiceConfigTupleFields.Component_, value); + get => (string)this.Fields[(int)MsiServiceConfigTupleFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs index 66567eb9..290f6f14 100644 --- a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.MsiShortcutProperty, new[] { - new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.Shortcut_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.ShortcutRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropertyKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropVariantValue), IntermediateFieldType.String), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum MsiShortcutPropertyTupleFields { - Shortcut_, + ShortcutRef, PropertyKey, PropVariantValue, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiShortcutPropertyTupleFields index] => this.Fields[(int)index]; - public string Shortcut_ + public string ShortcutRef { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.Shortcut_]; - set => this.Set((int)MsiShortcutPropertyTupleFields.Shortcut_, value); + get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.ShortcutRef]; + set => this.Set((int)MsiShortcutPropertyTupleFields.ShortcutRef, value); } public string PropertyKey diff --git a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs index 293d5a62..42598df9 100644 --- a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.ODBCAttribute, new[] { - new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Driver_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.DriverRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Attribute), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Value), IntermediateFieldType.String), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum ODBCAttributeTupleFields { - Driver_, + DriverRef, Attribute, Value, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCAttributeTupleFields index] => this.Fields[(int)index]; - public string Driver_ + public string DriverRef { - get => (string)this.Fields[(int)ODBCAttributeTupleFields.Driver_]; - set => this.Set((int)ODBCAttributeTupleFields.Driver_, value); + get => (string)this.Fields[(int)ODBCAttributeTupleFields.DriverRef]; + set => this.Set((int)ODBCAttributeTupleFields.DriverRef, value); } public string Attribute diff --git a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs index 7eee0b38..21a5ca9c 100644 --- a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.ODBCDataSource, new[] { - new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DriverDescription), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Registration), IntermediateFieldType.Number), @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples { public enum ODBCDataSourceTupleFields { - Component_, + ComponentRef, Description, DriverDescription, Registration, @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCDataSourceTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Component_]; - set => this.Set((int)ODBCDataSourceTupleFields.Component_, value); + get => (string)this.Fields[(int)ODBCDataSourceTupleFields.ComponentRef]; + set => this.Set((int)ODBCDataSourceTupleFields.ComponentRef, value); } public string Description diff --git a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs index 508a4933..79de70e5 100644 --- a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs @@ -10,10 +10,10 @@ namespace WixToolset.Data TupleDefinitionType.ODBCDriver, new[] { - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.File_Setup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.SetupFileRef), IntermediateFieldType.String), }, typeof(ODBCDriverTuple)); } @@ -23,10 +23,10 @@ namespace WixToolset.Data.Tuples { public enum ODBCDriverTupleFields { - Component_, + ComponentRef, Description, - File_, - File_Setup, + FileRef, + SetupFileRef, } public class ODBCDriverTuple : IntermediateTuple @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCDriverTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ODBCDriverTupleFields.Component_]; - set => this.Set((int)ODBCDriverTupleFields.Component_, value); + get => (string)this.Fields[(int)ODBCDriverTupleFields.ComponentRef]; + set => this.Set((int)ODBCDriverTupleFields.ComponentRef, value); } public string Description @@ -53,16 +53,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ODBCDriverTupleFields.Description, value); } - public string File_ + public string FileRef { - get => (string)this.Fields[(int)ODBCDriverTupleFields.File_]; - set => this.Set((int)ODBCDriverTupleFields.File_, value); + get => (string)this.Fields[(int)ODBCDriverTupleFields.FileRef]; + set => this.Set((int)ODBCDriverTupleFields.FileRef, value); } - public string File_Setup + public string SetupFileRef { - get => (string)this.Fields[(int)ODBCDriverTupleFields.File_Setup]; - set => this.Set((int)ODBCDriverTupleFields.File_Setup, value); + get => (string)this.Fields[(int)ODBCDriverTupleFields.SetupFileRef]; + set => this.Set((int)ODBCDriverTupleFields.SetupFileRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs index a69188a2..62fba795 100644 --- a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.ODBCSourceAttribute, new[] { - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.DataSource_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.DataSourceRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Attribute), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Value), IntermediateFieldType.String), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum ODBCSourceAttributeTupleFields { - DataSource_, + DataSourceRef, Attribute, Value, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCSourceAttributeTupleFields index] => this.Fields[(int)index]; - public string DataSource_ + public string DataSourceRef { - get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.DataSource_]; - set => this.Set((int)ODBCSourceAttributeTupleFields.DataSource_, value); + get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.DataSourceRef]; + set => this.Set((int)ODBCSourceAttributeTupleFields.DataSourceRef, value); } public string Attribute diff --git a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs index e3c0e963..0662e3f8 100644 --- a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs @@ -10,10 +10,10 @@ namespace WixToolset.Data TupleDefinitionType.ODBCTranslator, new[] { - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.File_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.File_Setup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.SetupFileRef), IntermediateFieldType.String), }, typeof(ODBCTranslatorTuple)); } @@ -23,10 +23,10 @@ namespace WixToolset.Data.Tuples { public enum ODBCTranslatorTupleFields { - Component_, + ComponentRef, Description, - File_, - File_Setup, + FileRef, + SetupFileRef, } public class ODBCTranslatorTuple : IntermediateTuple @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ODBCTranslatorTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Component_]; - set => this.Set((int)ODBCTranslatorTupleFields.Component_, value); + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.ComponentRef]; + set => this.Set((int)ODBCTranslatorTupleFields.ComponentRef, value); } public string Description @@ -53,16 +53,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ODBCTranslatorTupleFields.Description, value); } - public string File_ + public string FileRef { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_]; - set => this.Set((int)ODBCTranslatorTupleFields.File_, value); + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.FileRef]; + set => this.Set((int)ODBCTranslatorTupleFields.FileRef, value); } - public string File_Setup + public string SetupFileRef { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_Setup]; - set => this.Set((int)ODBCTranslatorTupleFields.File_Setup, value); + get => (string)this.Fields[(int)ODBCTranslatorTupleFields.SetupFileRef]; + set => this.Set((int)ODBCTranslatorTupleFields.SetupFileRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs index 36898c45..ee83dc72 100644 --- a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.PatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.Media_), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.MediaDiskIdRef), IntermediateFieldType.Number), }, typeof(PatchPackageTuple)); } @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples public enum PatchPackageTupleFields { PatchId, - Media_, + MediaDiskIdRef, } public class PatchPackageTuple : IntermediateTuple @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)PatchPackageTupleFields.PatchId, value); } - public int Media_ + public int MediaDiskIdRef { - get => (int)this.Fields[(int)PatchPackageTupleFields.Media_]; - set => this.Set((int)PatchPackageTupleFields.Media_, value); + get => (int)this.Fields[(int)PatchPackageTupleFields.MediaDiskIdRef]; + set => this.Set((int)PatchPackageTupleFields.MediaDiskIdRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchTuple.cs b/src/WixToolset.Data/Tuples/PatchTuple.cs index ca313410..5548a215 100644 --- a/src/WixToolset.Data/Tuples/PatchTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchTuple.cs @@ -10,12 +10,12 @@ namespace WixToolset.Data TupleDefinitionType.Patch, new[] { - new IntermediateFieldDefinition(nameof(PatchTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchTupleFields.FileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(PatchTupleFields.Sequence), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(PatchTupleFields.PatchSize), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(PatchTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(PatchTupleFields.Header), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(PatchTupleFields.StreamRef_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchTupleFields.StreamRef), IntermediateFieldType.String), }, typeof(PatchTuple)); } @@ -25,12 +25,12 @@ namespace WixToolset.Data.Tuples { public enum PatchTupleFields { - File_, + FileRef, Sequence, PatchSize, Attributes, Header, - StreamRef_, + StreamRef, } public class PatchTuple : IntermediateTuple @@ -45,10 +45,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[PatchTupleFields index] => this.Fields[(int)index]; - public string File_ + public string FileRef { - get => (string)this.Fields[(int)PatchTupleFields.File_]; - set => this.Set((int)PatchTupleFields.File_, value); + get => (string)this.Fields[(int)PatchTupleFields.FileRef]; + set => this.Set((int)PatchTupleFields.FileRef, value); } public int Sequence @@ -75,10 +75,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)PatchTupleFields.Header, value); } - public string StreamRef_ + public string StreamRef { - get => (string)this.Fields[(int)PatchTupleFields.StreamRef_]; - set => this.Set((int)PatchTupleFields.StreamRef_, value); + get => (string)this.Fields[(int)PatchTupleFields.StreamRef]; + set => this.Set((int)PatchTupleFields.StreamRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ProgIdTuple.cs b/src/WixToolset.Data/Tuples/ProgIdTuple.cs index 8a6df5cb..02f66a90 100644 --- a/src/WixToolset.Data/Tuples/ProgIdTuple.cs +++ b/src/WixToolset.Data/Tuples/ProgIdTuple.cs @@ -11,10 +11,10 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ProgId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ProgId_Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Class_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ParentProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ClassRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Icon_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdTupleFields.IconRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ProgIdTupleFields.IconIndex), IntermediateFieldType.Number), }, typeof(ProgIdTuple)); @@ -26,10 +26,10 @@ namespace WixToolset.Data.Tuples public enum ProgIdTupleFields { ProgId, - ProgId_Parent, - Class_, + ParentProgIdRef, + ClassRef, Description, - Icon_, + IconRef, IconIndex, } @@ -51,16 +51,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ProgIdTupleFields.ProgId, value); } - public string ProgId_Parent + public string ParentProgIdRef { - get => (string)this.Fields[(int)ProgIdTupleFields.ProgId_Parent]; - set => this.Set((int)ProgIdTupleFields.ProgId_Parent, value); + get => (string)this.Fields[(int)ProgIdTupleFields.ParentProgIdRef]; + set => this.Set((int)ProgIdTupleFields.ParentProgIdRef, value); } - public string Class_ + public string ClassRef { - get => (string)this.Fields[(int)ProgIdTupleFields.Class_]; - set => this.Set((int)ProgIdTupleFields.Class_, value); + get => (string)this.Fields[(int)ProgIdTupleFields.ClassRef]; + set => this.Set((int)ProgIdTupleFields.ClassRef, value); } public string Description @@ -69,10 +69,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ProgIdTupleFields.Description, value); } - public string Icon_ + public string IconRef { - get => (string)this.Fields[(int)ProgIdTupleFields.Icon_]; - set => this.Set((int)ProgIdTupleFields.Icon_, value); + get => (string)this.Fields[(int)ProgIdTupleFields.IconRef]; + set => this.Set((int)ProgIdTupleFields.IconRef, value); } public int? IconIndex diff --git a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs index b3cd766e..502988a3 100644 --- a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs @@ -12,9 +12,9 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.ComponentId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Qualifier), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.AppData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.FeatureRef), IntermediateFieldType.String), }, typeof(PublishComponentTuple)); } @@ -26,9 +26,9 @@ namespace WixToolset.Data.Tuples { ComponentId, Qualifier, - Component_, + ComponentRef, AppData, - Feature_, + FeatureRef, } public class PublishComponentTuple : IntermediateTuple @@ -55,10 +55,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)PublishComponentTupleFields.Qualifier, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)PublishComponentTupleFields.Component_]; - set => this.Set((int)PublishComponentTupleFields.Component_, value); + get => (string)this.Fields[(int)PublishComponentTupleFields.ComponentRef]; + set => this.Set((int)PublishComponentTupleFields.ComponentRef, value); } public string AppData @@ -67,10 +67,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)PublishComponentTupleFields.AppData, value); } - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)PublishComponentTupleFields.Feature_]; - set => this.Set((int)PublishComponentTupleFields.Feature_, value); + get => (string)this.Fields[(int)PublishComponentTupleFields.FeatureRef]; + set => this.Set((int)PublishComponentTupleFields.FeatureRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RegistryTuple.cs b/src/WixToolset.Data/Tuples/RegistryTuple.cs index adb00f49..152d1341 100644 --- a/src/WixToolset.Data/Tuples/RegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RegistryTuple.cs @@ -16,7 +16,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(RegistryTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RegistryTupleFields.ValueType), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(RegistryTupleFields.ValueAction), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistryTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistryTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(RegistryTuple)); } @@ -32,7 +32,7 @@ namespace WixToolset.Data.Tuples Value, ValueType, ValueAction, - Component_, + ComponentRef, } public enum RegistryValueType @@ -99,10 +99,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)RegistryTupleFields.ValueAction, (int)value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)RegistryTupleFields.Component_]; - set => this.Set((int)RegistryTupleFields.Component_, value); + get => (string)this.Fields[(int)RegistryTupleFields.ComponentRef]; + set => this.Set((int)RegistryTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs index e66306de..d0b3268a 100644 --- a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.RemoveFile, new[] { - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.DirProperty), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.OnInstall), IntermediateFieldType.Bool), @@ -24,7 +24,7 @@ namespace WixToolset.Data.Tuples { public enum RemoveFileTupleFields { - Component_, + ComponentRef, FileName, DirProperty, OnInstall, @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[RemoveFileTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)RemoveFileTupleFields.Component_]; - set => this.Set((int)RemoveFileTupleFields.Component_, value); + get => (string)this.Fields[(int)RemoveFileTupleFields.ComponentRef]; + set => this.Set((int)RemoveFileTupleFields.ComponentRef, value); } public string FileName diff --git a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs index 69990a31..22aa7065 100644 --- a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs @@ -17,7 +17,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(RemoveIniFileTuple)); } @@ -34,7 +34,7 @@ namespace WixToolset.Data.Tuples Key, Value, Action, - Component_, + ComponentRef, } public class RemoveIniFileTuple : IntermediateTuple @@ -91,10 +91,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)RemoveIniFileTupleFields.Action, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Component_]; - set => this.Set((int)RemoveIniFileTupleFields.Component_, value); + get => (string)this.Fields[(int)RemoveIniFileTupleFields.ComponentRef]; + set => this.Set((int)RemoveIniFileTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs index de13cdb0..42f15660 100644 --- a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs @@ -14,7 +14,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(RemoveRegistryTuple)); } @@ -28,7 +28,7 @@ namespace WixToolset.Data.Tuples Key, Name, Action, - Component_, + ComponentRef, } public enum RemoveRegistryActionType @@ -73,10 +73,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)RemoveRegistryTupleFields.Action, (int)value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)RemoveRegistryTupleFields.Component_]; - set => this.Set((int)RemoveRegistryTupleFields.Component_, value); + get => (string)this.Fields[(int)RemoveRegistryTupleFields.ComponentRef]; + set => this.Set((int)RemoveRegistryTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs index 46b850f7..dbbedb2e 100644 --- a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs +++ b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.ReserveCost, new[] { - new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveFolder), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveLocal), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveSource), IntermediateFieldType.Number), @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples { public enum ReserveCostTupleFields { - Component_, + ComponentRef, ReserveFolder, ReserveLocal, ReserveSource, @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ReserveCostTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ReserveCostTupleFields.Component_]; - set => this.Set((int)ReserveCostTupleFields.Component_, value); + get => (string)this.Fields[(int)ReserveCostTupleFields.ComponentRef]; + set => this.Set((int)ReserveCostTupleFields.ComponentRef, value); } public string ReserveFolder diff --git a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs index 6d57120a..113d71db 100644 --- a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs @@ -20,7 +20,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.UninstallStop), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Arguments), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Wait), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(ServiceControlTuple)); } @@ -40,7 +40,7 @@ namespace WixToolset.Data.Tuples UninstallStop, Arguments, Wait, - Component_, + ComponentRef, } public class ServiceControlTuple : IntermediateTuple @@ -115,10 +115,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ServiceControlTupleFields.Wait, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ServiceControlTupleFields.Component_]; - set => this.Set((int)ServiceControlTupleFields.Component_, value); + get => (string)this.Fields[(int)ServiceControlTupleFields.ComponentRef]; + set => this.Set((int)ServiceControlTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs index a055e46e..8b9410b4 100644 --- a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs @@ -20,7 +20,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.StartName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Password), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Interactive), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Vital), IntermediateFieldType.Bool), @@ -43,7 +43,7 @@ namespace WixToolset.Data.Tuples StartName, Password, Arguments, - Component_, + ComponentRef, Description, Interactive, Vital, @@ -146,10 +146,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ServiceInstallTupleFields.Arguments, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Component_]; - set => this.Set((int)ServiceInstallTupleFields.Component_, value); + get => (string)this.Fields[(int)ServiceInstallTupleFields.ComponentRef]; + set => this.Set((int)ServiceInstallTupleFields.ComponentRef, value); } public string Description diff --git a/src/WixToolset.Data/Tuples/ShortcutTuple.cs b/src/WixToolset.Data/Tuples/ShortcutTuple.cs index b58bfd8e..c2b9e63f 100644 --- a/src/WixToolset.Data/Tuples/ShortcutTuple.cs +++ b/src/WixToolset.Data/Tuples/ShortcutTuple.cs @@ -10,14 +10,14 @@ namespace WixToolset.Data TupleDefinitionType.Shortcut, new[] { - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Target), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Arguments), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Hotkey), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Icon_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.IconRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.IconIndex), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Show), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.WkDir), IntermediateFieldType.String), @@ -34,14 +34,14 @@ namespace WixToolset.Data.Tuples { public enum ShortcutTupleFields { - Directory_, + DirectoryRef, Name, - Component_, + ComponentRef, Target, Arguments, Description, Hotkey, - Icon_, + IconRef, IconIndex, Show, WkDir, @@ -70,10 +70,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ShortcutTupleFields index] => this.Fields[(int)index]; - public string Directory_ + public string DirectoryRef { - get => (string)this.Fields[(int)ShortcutTupleFields.Directory_]; - set => this.Set((int)ShortcutTupleFields.Directory_, value); + get => (string)this.Fields[(int)ShortcutTupleFields.DirectoryRef]; + set => this.Set((int)ShortcutTupleFields.DirectoryRef, value); } public string Name @@ -82,10 +82,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ShortcutTupleFields.Name, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)ShortcutTupleFields.Component_]; - set => this.Set((int)ShortcutTupleFields.Component_, value); + get => (string)this.Fields[(int)ShortcutTupleFields.ComponentRef]; + set => this.Set((int)ShortcutTupleFields.ComponentRef, value); } public string Target @@ -112,10 +112,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ShortcutTupleFields.Hotkey, value); } - public string Icon_ + public string IconRef { - get => (string)this.Fields[(int)ShortcutTupleFields.Icon_]; - set => this.Set((int)ShortcutTupleFields.Icon_, value); + get => (string)this.Fields[(int)ShortcutTupleFields.IconRef]; + set => this.Set((int)ShortcutTupleFields.IconRef, value); } public int? IconIndex diff --git a/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs b/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs new file mode 100644 index 00000000..4b40d4f2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition TargetFilesOptionalData = new IntermediateTupleDefinition( + TupleDefinitionType.TargetFilesOptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.RetainOffsets), IntermediateFieldType.String), + }, + typeof(TargetFilesOptionalDataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum TargetFilesOptionalDataTupleFields + { + Target, + FTK, + SymbolPaths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + } + + public class TargetFilesOptionalDataTuple : IntermediateTuple + { + public TargetFilesOptionalDataTuple() : base(TupleDefinitions.TargetFilesOptionalData, null, null) + { + } + + public TargetFilesOptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetFilesOptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[TargetFilesOptionalDataTupleFields index] => this.Fields[(int)index]; + + public string Target + { + get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.Target]; + set => this.Set((int)TargetFilesOptionalDataTupleFields.Target, value); + } + + public string FTK + { + get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.FTK]; + set => this.Set((int)TargetFilesOptionalDataTupleFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.SymbolPaths]; + set => this.Set((int)TargetFilesOptionalDataTupleFields.SymbolPaths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.IgnoreOffsets]; + set => this.Set((int)TargetFilesOptionalDataTupleFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.IgnoreLengths]; + set => this.Set((int)TargetFilesOptionalDataTupleFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.RetainOffsets]; + set => this.Set((int)TargetFilesOptionalDataTupleFields.RetainOffsets, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs deleted file mode 100644 index d8fd5b85..00000000 --- a/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition TargetFiles_OptionalData = new IntermediateTupleDefinition( - TupleDefinitionType.TargetFiles_OptionalData, - new[] - { - new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.RetainOffsets), IntermediateFieldType.String), - }, - typeof(TargetFiles_OptionalDataTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum TargetFiles_OptionalDataTupleFields - { - Target, - FTK, - SymbolPaths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - } - - public class TargetFiles_OptionalDataTuple : IntermediateTuple - { - public TargetFiles_OptionalDataTuple() : base(TupleDefinitions.TargetFiles_OptionalData, null, null) - { - } - - public TargetFiles_OptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetFiles_OptionalData, sourceLineNumber, id) - { - } - - public IntermediateField this[TargetFiles_OptionalDataTupleFields index] => this.Fields[(int)index]; - - public string Target - { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.Target]; - set => this.Set((int)TargetFiles_OptionalDataTupleFields.Target, value); - } - - public string FTK - { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.FTK]; - set => this.Set((int)TargetFiles_OptionalDataTupleFields.FTK, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.SymbolPaths]; - set => this.Set((int)TargetFiles_OptionalDataTupleFields.SymbolPaths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets]; - set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreLengths]; - set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.RetainOffsets]; - set => this.Set((int)TargetFiles_OptionalDataTupleFields.RetainOffsets, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index 8c0c932a..ea4ff144 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -113,13 +113,13 @@ namespace WixToolset.Data SFPCatalog, Shortcut, Signature, - TargetFiles_OptionalData, + TargetFilesOptionalData, TargetImages, TextStyle, TypeLib, UIText, Upgrade, - UpgradedFiles_OptionalData, + UpgradedFilesOptionalData, UpgradedFilesToIgnore, UpgradedImages, Verb, @@ -531,8 +531,8 @@ namespace WixToolset.Data case TupleDefinitionType.Signature: return TupleDefinitions.Signature; - case TupleDefinitionType.TargetFiles_OptionalData: - return TupleDefinitions.TargetFiles_OptionalData; + case TupleDefinitionType.TargetFilesOptionalData: + return TupleDefinitions.TargetFilesOptionalData; case TupleDefinitionType.TargetImages: return TupleDefinitions.TargetImages; @@ -549,8 +549,8 @@ namespace WixToolset.Data case TupleDefinitionType.Upgrade: return TupleDefinitions.Upgrade; - case TupleDefinitionType.UpgradedFiles_OptionalData: - return TupleDefinitions.UpgradedFiles_OptionalData; + case TupleDefinitionType.UpgradedFilesOptionalData: + return TupleDefinitions.UpgradedFilesOptionalData; case TupleDefinitionType.UpgradedFilesToIgnore: return TupleDefinitions.UpgradedFilesToIgnore; diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs index 72169a60..14c69c1a 100644 --- a/src/WixToolset.Data/Tuples/TypeLibTuple.cs +++ b/src/WixToolset.Data/Tuples/TypeLibTuple.cs @@ -12,11 +12,11 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(TypeLibTupleFields.LibId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Version), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Directory_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibTupleFields.FeatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Cost), IntermediateFieldType.Number), }, typeof(TypeLibTuple)); @@ -29,11 +29,11 @@ namespace WixToolset.Data.Tuples { LibId, Language, - Component_, + ComponentRef, Version, Description, - Directory_, - Feature_, + DirectoryRef, + FeatureRef, Cost, } @@ -61,10 +61,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)TypeLibTupleFields.Language, value); } - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)TypeLibTupleFields.Component_]; - set => this.Set((int)TypeLibTupleFields.Component_, value); + get => (string)this.Fields[(int)TypeLibTupleFields.ComponentRef]; + set => this.Set((int)TypeLibTupleFields.ComponentRef, value); } public int Version @@ -79,16 +79,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)TypeLibTupleFields.Description, value); } - public string Directory_ + public string DirectoryRef { - get => (string)this.Fields[(int)TypeLibTupleFields.Directory_]; - set => this.Set((int)TypeLibTupleFields.Directory_, value); + get => (string)this.Fields[(int)TypeLibTupleFields.DirectoryRef]; + set => this.Set((int)TypeLibTupleFields.DirectoryRef, value); } - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)TypeLibTupleFields.Feature_]; - set => this.Set((int)TypeLibTupleFields.Feature_, value); + get => (string)this.Fields[(int)TypeLibTupleFields.FeatureRef]; + set => this.Set((int)TypeLibTupleFields.FeatureRef, value); } public int Cost diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs new file mode 100644 index 00000000..72dac43a --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition UpgradedFilesOptionalData = new IntermediateTupleDefinition( + TupleDefinitionType.UpgradedFilesOptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.IncludeWholeFile), IntermediateFieldType.Bool), + }, + typeof(UpgradedFilesOptionalDataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum UpgradedFilesOptionalDataTupleFields + { + Upgraded, + FTK, + SymbolPaths, + AllowIgnoreOnPatchError, + IncludeWholeFile, + } + + public class UpgradedFilesOptionalDataTuple : IntermediateTuple + { + public UpgradedFilesOptionalDataTuple() : base(TupleDefinitions.UpgradedFilesOptionalData, null, null) + { + } + + public UpgradedFilesOptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFilesOptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedFilesOptionalDataTupleFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.Upgraded]; + set => this.Set((int)UpgradedFilesOptionalDataTupleFields.Upgraded, value); + } + + public string FTK + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.FTK]; + set => this.Set((int)UpgradedFilesOptionalDataTupleFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.SymbolPaths]; + set => this.Set((int)UpgradedFilesOptionalDataTupleFields.SymbolPaths, value); + } + + public bool AllowIgnoreOnPatchError + { + get => (bool)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError]; + set => this.Set((int)UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError, value); + } + + public bool IncludeWholeFile + { + get => (bool)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.IncludeWholeFile]; + set => this.Set((int)UpgradedFilesOptionalDataTupleFields.IncludeWholeFile, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs deleted file mode 100644 index 7099021e..00000000 --- a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition UpgradedFiles_OptionalData = new IntermediateTupleDefinition( - TupleDefinitionType.UpgradedFiles_OptionalData, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile), IntermediateFieldType.Bool), - }, - typeof(UpgradedFiles_OptionalDataTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum UpgradedFiles_OptionalDataTupleFields - { - Upgraded, - FTK, - SymbolPaths, - AllowIgnoreOnPatchError, - IncludeWholeFile, - } - - public class UpgradedFiles_OptionalDataTuple : IntermediateTuple - { - public UpgradedFiles_OptionalDataTuple() : base(TupleDefinitions.UpgradedFiles_OptionalData, null, null) - { - } - - public UpgradedFiles_OptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFiles_OptionalData, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradedFiles_OptionalDataTupleFields index] => this.Fields[(int)index]; - - public string Upgraded - { - get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.Upgraded]; - set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.Upgraded, value); - } - - public string FTK - { - get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.FTK]; - set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.FTK, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths]; - set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths, value); - } - - public bool AllowIgnoreOnPatchError - { - get => (bool)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError]; - set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError, value); - } - - public bool IncludeWholeFile - { - get => (bool)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile]; - set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/VerbTuple.cs b/src/WixToolset.Data/Tuples/VerbTuple.cs index a9e9c245..77df01e4 100644 --- a/src/WixToolset.Data/Tuples/VerbTuple.cs +++ b/src/WixToolset.Data/Tuples/VerbTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.Verb, new[] { - new IntermediateFieldDefinition(nameof(VerbTupleFields.Extension_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbTupleFields.ExtensionRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(VerbTupleFields.Verb), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(VerbTupleFields.Sequence), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(VerbTupleFields.Command), IntermediateFieldType.String), @@ -24,7 +24,7 @@ namespace WixToolset.Data.Tuples { public enum VerbTupleFields { - Extension_, + ExtensionRef, Verb, Sequence, Command, @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[VerbTupleFields index] => this.Fields[(int)index]; - public string Extension_ + public string ExtensionRef { - get => (string)this.Fields[(int)VerbTupleFields.Extension_]; - set => this.Set((int)VerbTupleFields.Extension_, value); + get => (string)this.Fields[(int)VerbTupleFields.ExtensionRef]; + set => this.Set((int)VerbTupleFields.ExtensionRef, value); } public string Verb diff --git a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs index 7df69426..aca47b6c 100644 --- a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBindUpdatedFiles, new[] { - new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesTupleFields.File_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesTupleFields.FileRef), IntermediateFieldType.String), }, typeof(WixBindUpdatedFilesTuple)); } @@ -20,7 +20,7 @@ namespace WixToolset.Data.Tuples { public enum WixBindUpdatedFilesTupleFields { - File_, + FileRef, } public class WixBindUpdatedFilesTuple : IntermediateTuple @@ -35,10 +35,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBindUpdatedFilesTupleFields index] => this.Fields[(int)index]; - public string File_ + public string FileRef { - get => (string)this.Fields[(int)WixBindUpdatedFilesTupleFields.File_]; - set => this.Set((int)WixBindUpdatedFilesTupleFields.File_, value); + get => (string)this.Fields[(int)WixBindUpdatedFilesTupleFields.FileRef]; + set => this.Set((int)WixBindUpdatedFilesTupleFields.FileRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs index 840cc65d..ca6e6b33 100644 --- a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.WixBundleCatalog), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.Payload_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.PayloadRef), IntermediateFieldType.String), }, typeof(WixBundleCatalogTuple)); } @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples public enum WixBundleCatalogTupleFields { WixBundleCatalog, - Payload_, + PayloadRef, } public class WixBundleCatalogTuple : IntermediateTuple @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleCatalogTupleFields.WixBundleCatalog, value); } - public string Payload_ + public string PayloadRef { - get => (string)this.Fields[(int)WixBundleCatalogTupleFields.Payload_]; - set => this.Set((int)WixBundleCatalogTupleFields.Payload_, value); + get => (string)this.Fields[(int)WixBundleCatalogTupleFields.PayloadRef]; + set => this.Set((int)WixBundleCatalogTupleFields.PayloadRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs index bc2f42e1..798e2d0d 100644 --- a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleExePackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.DetectCondition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.InstallCommand), IntermediateFieldType.String), @@ -28,7 +28,7 @@ namespace WixToolset.Data.Tuples public enum WixBundleExePackageTupleFields { - WixBundlePackage_, + WixBundlePackageRef, Attributes, DetectCondition, InstallCommand, @@ -55,10 +55,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleExePackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleExePackageTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundleExePackageTupleFields.WixBundlePackageRef, value); } public WixBundleExePackageAttributes Attributes diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs index ebd8461e..7b6c635a 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsiFeature, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Parent), IntermediateFieldType.String), @@ -29,7 +29,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundleMsiFeatureTupleFields { - WixBundlePackage_, + WixBundlePackageRef, Name, Size, Parent, @@ -53,10 +53,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsiFeatureTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundleMsiFeatureTupleFields.WixBundlePackageRef, value); } public string Name diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs index e8af4066..a86c33d0 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsiPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.UpgradeCode), IntermediateFieldType.String), @@ -29,7 +29,7 @@ namespace WixToolset.Data.Tuples public enum WixBundleMsiPackageTupleFields { - WixBundlePackage_, + WixBundlePackageRef, Attributes, ProductCode, UpgradeCode, @@ -60,10 +60,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsiPackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleMsiPackageTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundleMsiPackageTupleFields.WixBundlePackageRef, value); } public WixBundleMsiPackageAttributes Attributes diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs index a788f034..2b236a24 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsiProperty, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Condition), IntermediateFieldType.String), @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundleMsiPropertyTupleFields { - WixBundlePackage_, + WixBundlePackageRef, Name, Value, Condition, @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsiPropertyTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleMsiPropertyTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundleMsiPropertyTupleFields.WixBundlePackageRef, value); } public string Name diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs index ae233458..8ef38fde 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMspPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Manufacturer), IntermediateFieldType.String), @@ -26,7 +26,7 @@ namespace WixToolset.Data.Tuples public enum WixBundleMspPackageTupleFields { - WixBundlePackage_, + WixBundlePackageRef, Attributes, PatchCode, Manufacturer, @@ -53,10 +53,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMspPackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleMspPackageTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundleMspPackageTupleFields.WixBundlePackageRef, value); } public WixBundleMspPackageAttributes Attributes diff --git a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs index df8ab694..33add8e9 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsuPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.DetectCondition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.MsuKB), IntermediateFieldType.String), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundleMsuPackageTupleFields { - WixBundlePackage_, + WixBundlePackageRef, DetectCondition, MsuKB, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsuPackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleMsuPackageTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundleMsuPackageTupleFields.WixBundlePackageRef, value); } public string DetectCondition diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs index 3c2b5652..42bad1f0 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundlePackageCommandLine, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.WixBundlePackage_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.InstallArgument), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.UninstallArgument), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.RepairArgument), IntermediateFieldType.String), @@ -24,7 +24,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundlePackageCommandLineTupleFields { - WixBundlePackage_, + WixBundlePackageRef, InstallArgument, UninstallArgument, RepairArgument, @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundlePackageCommandLineTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundlePackageCommandLineTupleFields.WixBundlePackageRef, value); } public string InstallArgument diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index c9f69ef3..07fdc2d5 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -10,9 +10,9 @@ namespace WixToolset.Data TupleDefinitionType.WixBundlePackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.WixChainItem_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.WixChainItemRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Payload_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PayloadRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallCondition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Cache), IntermediateFieldType.String), @@ -27,9 +27,9 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Language), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.DisplayName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundary_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryBackward_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.x64), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Win64), IntermediateFieldType.Number), }, typeof(WixBundlePackageTuple)); } @@ -41,9 +41,9 @@ namespace WixToolset.Data.Tuples public enum WixBundlePackageTupleFields { - WixChainItem_, + WixChainItemRef, Type, - Payload_, + PayloadRef, Attributes, InstallCondition, Cache, @@ -58,9 +58,9 @@ namespace WixToolset.Data.Tuples Language, DisplayName, Description, - RollbackBoundary_, - RollbackBoundaryBackward_, - x64, + RollbackBoundaryRef, + RollbackBoundaryBackwardRef, + Win64, } /// @@ -93,10 +93,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundlePackageTupleFields index] => this.Fields[(int)index]; - public string WixChainItem_ + public string WixChainItemRef { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItem_]; - set => this.Set((int)WixBundlePackageTupleFields.WixChainItem_, value); + get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItemRef]; + set => this.Set((int)WixBundlePackageTupleFields.WixChainItemRef, value); } public WixBundlePackageType Type @@ -105,10 +105,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePackageTupleFields.Type, value.ToString()); } - public string Payload_ + public string PayloadRef { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.Payload_]; - set => this.Set((int)WixBundlePackageTupleFields.Payload_, value); + get => (string)this.Fields[(int)WixBundlePackageTupleFields.PayloadRef]; + set => this.Set((int)WixBundlePackageTupleFields.PayloadRef, value); } public WixBundlePackageAttributes Attributes @@ -195,22 +195,22 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePackageTupleFields.Description, value); } - public string RollbackBoundary_ + public string RollbackBoundaryRef { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundary_]; - set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundary_, value); + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryRef]; + set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryRef, value); } - public string RollbackBoundaryBackward_ + public string RollbackBoundaryBackwardRef { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryBackward_]; - set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackward_, value); + get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryBackwardRef]; + set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackwardRef, value); } - public int x64 + public int Win64 { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.x64]; - set => this.Set((int)WixBundlePackageTupleFields.x64, value); + get => (int)this.Fields[(int)WixBundlePackageTupleFields.Win64]; + set => this.Set((int)WixBundlePackageTupleFields.Win64, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs index ce5ff8be..5eb4a987 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -24,14 +24,14 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Hash), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.PublicKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Thumbprint), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Catalog_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Container_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.CatalogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContainerRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Package), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContentFile), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EmbeddedId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Packaging), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ParentPackagePayload_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ParentPackagePayloadRef), IntermediateFieldType.String), }, typeof(WixBundlePayloadTuple)); } @@ -57,14 +57,14 @@ namespace WixToolset.Data.Tuples Hash, PublicKey, Thumbprint, - Catalog_, - Container_, + CatalogRef, + ContainerRef, Package, ContentFile, EmbeddedId, LayoutOnly, Packaging, - ParentPackagePayload_, + ParentPackagePayloadRef, } public class WixBundlePayloadTuple : IntermediateTuple @@ -163,16 +163,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.Thumbprint, value); } - public string Catalog_ + public string CatalogRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Catalog_]; - set => this.Set((int)WixBundlePayloadTupleFields.Catalog_, value); + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.CatalogRef]; + set => this.Set((int)WixBundlePayloadTupleFields.CatalogRef, value); } - public string Container_ + public string ContainerRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Container_]; - set => this.Set((int)WixBundlePayloadTupleFields.Container_, value); + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ContainerRef]; + set => this.Set((int)WixBundlePayloadTupleFields.ContainerRef, value); } public string Package @@ -205,10 +205,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.Packaging, value); } - public string ParentPackagePayload_ + public string ParentPackagePayloadRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ParentPackagePayload_]; - set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayload_, value); + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ParentPackagePayloadRef]; + set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayloadRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs index b3ed7559..a11c972d 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleRollbackBoundary, new[] { - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.WixChainItem_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.WixChainItemRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Vital), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Transaction), IntermediateFieldType.Number), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundleRollbackBoundaryTupleFields { - WixChainItem_, + WixChainItemRef, Vital, Transaction, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleRollbackBoundaryTupleFields index] => this.Fields[(int)index]; - public string WixChainItem_ + public string WixChainItemRef { - get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItem_]; - set => this.Set((int)WixBundleRollbackBoundaryTupleFields.WixChainItem_, value); + get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItemRef]; + set => this.Set((int)WixBundleRollbackBoundaryTupleFields.WixChainItemRef, value); } public bool? Vital diff --git a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs index 38893a63..3a028d16 100644 --- a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleSlipstreamMsp, new[] { - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackage_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef), IntermediateFieldType.String), }, typeof(WixBundleSlipstreamMspTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum WixBundleSlipstreamMspTupleFields { - WixBundlePackage_, - WixBundlePackage_Msp, + WixBundlePackageRef, + MspWixBundlePackageRef, } public class WixBundleSlipstreamMspTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleSlipstreamMspTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackage_ + public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_]; - set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_, value); + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackageRef]; + set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackageRef, value); } - public string WixBundlePackage_Msp + public string MspWixBundlePackageRef { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp]; - set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp, value); + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef]; + set => this.Set((int)WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs index fc3c23e3..47cccf25 100644 --- a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixComponentSearch, new[] { - new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Guid), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.ProductCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Attributes), IntermediateFieldType.Number), @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples { public enum WixComponentSearchTupleFields { - WixSearch_, + WixSearchRef, Guid, ProductCode, Attributes, @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixComponentSearchTupleFields index] => this.Fields[(int)index]; - public string WixSearch_ + public string WixSearchRef { - get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearch_]; - set => this.Set((int)WixComponentSearchTupleFields.WixSearch_, value); + get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearchRef]; + set => this.Set((int)WixComponentSearchTupleFields.WixSearchRef, value); } public string Guid diff --git a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs index 963c07d8..cce7d190 100644 --- a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.WixFeatureModules, new[] { - new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.Feature_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.WixMerge_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.WixMergeRef), IntermediateFieldType.String), }, typeof(WixFeatureModulesTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum WixFeatureModulesTupleFields { - Feature_, - WixMerge_, + FeatureRef, + WixMergeRef, } public class WixFeatureModulesTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixFeatureModulesTupleFields index] => this.Fields[(int)index]; - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)WixFeatureModulesTupleFields.Feature_]; - set => this.Set((int)WixFeatureModulesTupleFields.Feature_, value); + get => (string)this.Fields[(int)WixFeatureModulesTupleFields.FeatureRef]; + set => this.Set((int)WixFeatureModulesTupleFields.FeatureRef, value); } - public string WixMerge_ + public string WixMergeRef { - get => (string)this.Fields[(int)WixFeatureModulesTupleFields.WixMerge_]; - set => this.Set((int)WixFeatureModulesTupleFields.WixMerge_, value); + get => (string)this.Fields[(int)WixFeatureModulesTupleFields.WixMergeRef]; + set => this.Set((int)WixFeatureModulesTupleFields.WixMergeRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs index a5da5f2b..27c5cc83 100644 --- a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixFileSearch, new[] { - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Path), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinVersion), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxVersion), IntermediateFieldType.String), @@ -29,7 +29,7 @@ namespace WixToolset.Data.Tuples { public enum WixFileSearchTupleFields { - WixSearch_, + WixSearchRef, Path, MinVersion, MaxVersion, @@ -53,10 +53,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixFileSearchTupleFields index] => this.Fields[(int)index]; - public string WixSearch_ + public string WixSearchRef { - get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearch_]; - set => this.Set((int)WixFileSearchTupleFields.WixSearch_, value); + get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearchRef]; + set => this.Set((int)WixFileSearchTupleFields.WixSearchRef, value); } public string Path diff --git a/src/WixToolset.Data/Tuples/WixFileTuple.cs b/src/WixToolset.Data/Tuples/WixFileTuple.cs index 34493796..8f7cddc4 100644 --- a/src/WixToolset.Data/Tuples/WixFileTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileTuple.cs @@ -11,9 +11,9 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyManifest), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyApplication), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyManifestFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyApplicationFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileTupleFields.DirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.DiskId), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixFileTupleFields.Source), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixFileTupleFields.ProcessorArchitecture), IntermediateFieldType.String), @@ -33,9 +33,9 @@ namespace WixToolset.Data.Tuples public enum WixFileTupleFields { AssemblyType, - File_AssemblyManifest, - File_AssemblyApplication, - Directory_, + AssemblyManifestFileRef, + AssemblyApplicationFileRef, + DirectoryRef, DiskId, Source, ProcessorArchitecture, @@ -99,22 +99,22 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixFileTupleFields.AssemblyType, (int)value); } - public string File_AssemblyManifest + public string AssemblyManifestFileRef { - get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyManifest]; - set => this.Set((int)WixFileTupleFields.File_AssemblyManifest, value); + get => (string)this.Fields[(int)WixFileTupleFields.AssemblyManifestFileRef]; + set => this.Set((int)WixFileTupleFields.AssemblyManifestFileRef, value); } - public string File_AssemblyApplication + public string AssemblyApplicationFileRef { - get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyApplication]; - set => this.Set((int)WixFileTupleFields.File_AssemblyApplication, value); + get => (string)this.Fields[(int)WixFileTupleFields.AssemblyApplicationFileRef]; + set => this.Set((int)WixFileTupleFields.AssemblyApplicationFileRef, value); } - public string Directory_ + public string DirectoryRef { - get => (string)this.Fields[(int)WixFileTupleFields.Directory_]; - set => this.Set((int)WixFileTupleFields.Directory_, value); + get => (string)this.Fields[(int)WixFileTupleFields.DirectoryRef]; + set => this.Set((int)WixFileTupleFields.DirectoryRef, value); } public int DiskId diff --git a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs index 3c9f69a0..c7530abf 100644 --- a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixInstanceComponent, new[] { - new IntermediateFieldDefinition(nameof(WixInstanceComponentTupleFields.Component_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceComponentTupleFields.ComponentRef), IntermediateFieldType.String), }, typeof(WixInstanceComponentTuple)); } @@ -20,7 +20,7 @@ namespace WixToolset.Data.Tuples { public enum WixInstanceComponentTupleFields { - Component_, + ComponentRef, } public class WixInstanceComponentTuple : IntermediateTuple @@ -35,10 +35,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixInstanceComponentTupleFields index] => this.Fields[(int)index]; - public string Component_ + public string ComponentRef { - get => (string)this.Fields[(int)WixInstanceComponentTupleFields.Component_]; - set => this.Set((int)WixInstanceComponentTupleFields.Component_, value); + get => (string)this.Fields[(int)WixInstanceComponentTupleFields.ComponentRef]; + set => this.Set((int)WixInstanceComponentTupleFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs index 51c55a85..53d0cb60 100644 --- a/src/WixToolset.Data/Tuples/WixMergeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMergeTuple.cs @@ -11,12 +11,12 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Directory_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.SourceFile), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DiskId), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FileCompression), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.ConfigurationData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Feature_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FeatureRef), IntermediateFieldType.String), }, typeof(WixMergeTuple)); } @@ -27,12 +27,12 @@ namespace WixToolset.Data.Tuples public enum WixMergeTupleFields { Language, - Directory_, + DirectoryRef, SourceFile, DiskId, FileCompression, ConfigurationData, - Feature_, + FeatureRef, } public class WixMergeTuple : IntermediateTuple @@ -53,10 +53,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixMergeTupleFields.Language, value); } - public string Directory_ + public string DirectoryRef { - get => (string)this.Fields[(int)WixMergeTupleFields.Directory_]; - set => this.Set((int)WixMergeTupleFields.Directory_, value); + get => (string)this.Fields[(int)WixMergeTupleFields.DirectoryRef]; + set => this.Set((int)WixMergeTupleFields.DirectoryRef, value); } public string SourceFile @@ -83,10 +83,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixMergeTupleFields.ConfigurationData, value); } - public string Feature_ + public string FeatureRef { - get => (string)this.Fields[(int)WixMergeTupleFields.Feature_]; - set => this.Set((int)WixMergeTupleFields.Feature_, value); + get => (string)this.Fields[(int)WixMergeTupleFields.FeatureRef]; + set => this.Set((int)WixMergeTupleFields.FeatureRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs index 20f719a2..8d9df513 100644 --- a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs +++ b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs @@ -11,9 +11,9 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemIdRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnIdRef), IntermediateFieldType.String), }, typeof(WixOrderingTuple)); } @@ -24,9 +24,9 @@ namespace WixToolset.Data.Tuples public enum WixOrderingTupleFields { ItemType, - ItemId_, + ItemIdRef, DependsOnType, - DependsOnId_, + DependsOnIdRef, } public class WixOrderingTuple : IntermediateTuple @@ -47,10 +47,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixOrderingTupleFields.ItemType, (int)value); } - public string ItemId_ + public string ItemIdRef { - get => (string)this.Fields[(int)WixOrderingTupleFields.ItemId_]; - set => this.Set((int)WixOrderingTupleFields.ItemId_, value); + get => (string)this.Fields[(int)WixOrderingTupleFields.ItemIdRef]; + set => this.Set((int)WixOrderingTupleFields.ItemIdRef, value); } public ComplexReferenceChildType DependsOnType @@ -59,10 +59,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixOrderingTupleFields.DependsOnType, (int)value); } - public string DependsOnId_ + public string DependsOnIdRef { - get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnId_]; - set => this.Set((int)WixOrderingTupleFields.DependsOnId_, value); + get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnIdRef]; + set => this.Set((int)WixOrderingTupleFields.DependsOnIdRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs index 1cd44a6a..4a13f47d 100644 --- a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixProductSearch, new[] { - new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Guid), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Attributes), IntermediateFieldType.Number), }, @@ -22,7 +22,7 @@ namespace WixToolset.Data.Tuples { public enum WixProductSearchTupleFields { - WixSearch_, + WixSearchRef, Guid, Attributes, } @@ -39,10 +39,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixProductSearchTupleFields index] => this.Fields[(int)index]; - public string WixSearch_ + public string WixSearchRef { - get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearch_]; - set => this.Set((int)WixProductSearchTupleFields.WixSearch_, value); + get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearchRef]; + set => this.Set((int)WixProductSearchTupleFields.WixSearchRef, value); } public string Guid diff --git a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs index 2e2c96f8..abadd947 100644 --- a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixProperty, new[] { - new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Property_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.PropertyRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Admin), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Hidden), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Secure), IntermediateFieldType.Bool), @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples { public enum WixPropertyTupleFields { - Property_, + PropertyRef, Admin, Hidden, Secure, @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixPropertyTupleFields index] => this.Fields[(int)index]; - public string Property_ + public string PropertyRef { - get => (string)this.Fields[(int)WixPropertyTupleFields.Property_]; - set => this.Set((int)WixPropertyTupleFields.Property_, value); + get => (string)this.Fields[(int)WixPropertyTupleFields.PropertyRef]; + set => this.Set((int)WixPropertyTupleFields.PropertyRef, value); } public bool Admin diff --git a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs index 9947b527..c88d6982 100644 --- a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixRegistrySearch, new[] { - new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.WixSearch_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Root), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Value), IntermediateFieldType.String), @@ -24,7 +24,7 @@ namespace WixToolset.Data.Tuples { public enum WixRegistrySearchTupleFields { - WixSearch_, + WixSearchRef, Root, Key, Value, @@ -43,10 +43,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixRegistrySearchTupleFields index] => this.Fields[(int)index]; - public string WixSearch_ + public string WixSearchRef { - get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearch_]; - set => this.Set((int)WixRegistrySearchTupleFields.WixSearch_, value); + get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearchRef]; + set => this.Set((int)WixRegistrySearchTupleFields.WixSearchRef, value); } public int Root diff --git a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs index 79e4dcac..9c9b4662 100644 --- a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.WixSearchRelation, new[] { - new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.WixSearch_), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.ParentId_), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.WixSearchRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.ParentSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.Attributes), IntermediateFieldType.Number), }, typeof(WixSearchRelationTuple)); @@ -22,8 +22,8 @@ namespace WixToolset.Data.Tuples { public enum WixSearchRelationTupleFields { - WixSearch_, - ParentId_, + WixSearchRef, + ParentSearchRef, Attributes, } @@ -39,16 +39,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixSearchRelationTupleFields index] => this.Fields[(int)index]; - public string WixSearch_ + public string WixSearchRef { - get => (string)this.Fields[(int)WixSearchRelationTupleFields.WixSearch_]; - set => this.Set((int)WixSearchRelationTupleFields.WixSearch_, value); + get => (string)this.Fields[(int)WixSearchRelationTupleFields.WixSearchRef]; + set => this.Set((int)WixSearchRelationTupleFields.WixSearchRef, value); } - public string ParentId_ + public string ParentSearchRef { - get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentId_]; - set => this.Set((int)WixSearchRelationTupleFields.ParentId_, value); + get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentSearchRef]; + set => this.Set((int)WixSearchRelationTupleFields.ParentSearchRef, value); } public int Attributes diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 335151cd..527359fe 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -22,7 +22,7 @@ namespace WixToolsetTest.Data section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), - Directory_ = "TestFolder", + DirectoryRef = "TestFolder", Location = ComponentLocation.Either, }); @@ -37,7 +37,7 @@ namespace WixToolsetTest.Data Assert.Equal("TestComponent", tuple.Id.Id); Assert.Equal(AccessModifier.Public, tuple.Id.Access); - Assert.Equal("TestFolder", tuple.Directory_); + Assert.Equal("TestFolder", tuple.DirectoryRef); Assert.Equal(ComponentLocation.Either, tuple.Location); } @@ -192,7 +192,7 @@ namespace WixToolsetTest.Data section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), - Directory_ = "TestFolder", + DirectoryRef = "TestFolder", Location = ComponentLocation.Either, }); diff --git a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs index ffb8e495..35e7bf33 100644 --- a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs +++ b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs @@ -35,8 +35,8 @@ namespace WixToolsetTest.Data public void CanSetComponentFieldInFileTupleByCasting() { var fileTuple = (FileTuple)TupleDefinitions.File.CreateTuple(); - fileTuple.Component_ = "Foo"; - Assert.Equal("Foo", fileTuple.Component_); + fileTuple.ComponentRef = "Foo"; + Assert.Equal("Foo", fileTuple.ComponentRef); } [Fact] @@ -45,7 +45,7 @@ namespace WixToolsetTest.Data var fileTuple = new FileTuple(); Assert.Equal("Component_", fileTuple.Definition.FieldDefinitions[0].Name); Assert.Null(fileTuple.Fields[0]); - fileTuple.Component_ = "Foo"; + fileTuple.ComponentRef = "Foo"; Assert.Equal("Component_", fileTuple.Fields[0].Name); Assert.Same(fileTuple.Definition.FieldDefinitions[0].Name, fileTuple.Fields[0].Name); } @@ -54,8 +54,8 @@ namespace WixToolsetTest.Data public void CanSetComponentFieldInFileTupleByNew() { var fileTuple = new FileTuple(); - fileTuple.Component_ = "Foo"; - Assert.Equal("Foo", fileTuple.Component_); + fileTuple.ComponentRef = "Foo"; + Assert.Equal("Foo", fileTuple.ComponentRef); } [Fact] @@ -64,9 +64,9 @@ namespace WixToolsetTest.Data using (new IntermediateFieldContext("bar")) { var fileTuple = new FileTuple(); - fileTuple.Component_ = "Foo"; + fileTuple.ComponentRef = "Foo"; - var field = fileTuple[FileTupleFields.Component_]; + var field = fileTuple[FileTupleFields.ComponentRef]; Assert.Equal("Foo", field.AsString()); Assert.Equal("bar", field.Context); } @@ -79,17 +79,17 @@ namespace WixToolsetTest.Data using (new IntermediateFieldContext("bar")) { - fileTuple.Component_ = "Foo"; + fileTuple.ComponentRef = "Foo"; - var field = fileTuple[FileTupleFields.Component_]; + var field = fileTuple[FileTupleFields.ComponentRef]; Assert.Equal("Foo", field.AsString()); Assert.Equal("bar", field.Context); using (new IntermediateFieldContext("baz")) { - fileTuple.Component_ = "Foo2"; + fileTuple.ComponentRef = "Foo2"; - field = fileTuple[FileTupleFields.Component_]; + field = fileTuple[FileTupleFields.ComponentRef]; Assert.Equal("Foo2", field.AsString()); Assert.Equal("baz", field.Context); @@ -97,9 +97,9 @@ namespace WixToolsetTest.Data Assert.Equal("bar", field.PreviousValue.Context); } - fileTuple.Component_ = "Foo3"; + fileTuple.ComponentRef = "Foo3"; - field = fileTuple[FileTupleFields.Component_]; + field = fileTuple[FileTupleFields.ComponentRef]; Assert.Equal("Foo3", field.AsString()); Assert.Equal("bar", field.Context); @@ -110,9 +110,9 @@ namespace WixToolsetTest.Data Assert.Equal("bar", field.PreviousValue.PreviousValue.Context); } - fileTuple.Component_ = "Foo4"; + fileTuple.ComponentRef = "Foo4"; - var fieldOutside = fileTuple[FileTupleFields.Component_]; + var fieldOutside = fileTuple[FileTupleFields.ComponentRef]; Assert.Equal("Foo4", fieldOutside.AsString()); Assert.Null(fieldOutside.Context); } -- cgit v1.2.3-55-g6feb From 97c4c3eaffef05764bd060cb2d78f0be5171d576 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 22 May 2019 16:26:41 -0700 Subject: Breakout short and source names in Directory and Shortcut tuples --- src/WixToolset.Data/Tuples/DirectoryTuple.cs | 36 ++++++++++++++++++---- src/WixToolset.Data/Tuples/ShortcutTuple.cs | 10 +++++- .../Tuples/WixDeltaPatchSymbolPathsTuple.cs | 2 +- 3 files changed, 40 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/DirectoryTuple.cs b/src/WixToolset.Data/Tuples/DirectoryTuple.cs index dc95f046..51f559aa 100644 --- a/src/WixToolset.Data/Tuples/DirectoryTuple.cs +++ b/src/WixToolset.Data/Tuples/DirectoryTuple.cs @@ -11,7 +11,10 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ParentDirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.DefaultDir), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectoryTupleFields.SourceShortName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), }, typeof(DirectoryTuple)); @@ -23,7 +26,10 @@ namespace WixToolset.Data.Tuples public enum DirectoryTupleFields { ParentDirectoryRef, - DefaultDir, + Name, + ShortName, + SourceName, + SourceShortName, ComponentGuidGenerationSeed, } @@ -45,10 +51,28 @@ namespace WixToolset.Data.Tuples set => this.Set((int)DirectoryTupleFields.ParentDirectoryRef, value); } - public string DefaultDir + public string Name { - get => (string)this.Fields[(int)DirectoryTupleFields.DefaultDir]; - set => this.Set((int)DirectoryTupleFields.DefaultDir, value); + get => (string)this.Fields[(int)DirectoryTupleFields.Name]; + set => this.Set((int)DirectoryTupleFields.Name, value); + } + + public string ShortName + { + get => (string)this.Fields[(int)DirectoryTupleFields.ShortName]; + set => this.Set((int)DirectoryTupleFields.ShortName, value); + } + + public string SourceName + { + get => (string)this.Fields[(int)DirectoryTupleFields.SourceName]; + set => this.Set((int)DirectoryTupleFields.SourceName, value); + } + + public string SourceShortName + { + get => (string)this.Fields[(int)DirectoryTupleFields.SourceShortName]; + set => this.Set((int)DirectoryTupleFields.SourceShortName, value); } public string ComponentGuidGenerationSeed @@ -57,4 +81,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)DirectoryTupleFields.ComponentGuidGenerationSeed, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/ShortcutTuple.cs b/src/WixToolset.Data/Tuples/ShortcutTuple.cs index c2b9e63f..66b98287 100644 --- a/src/WixToolset.Data/Tuples/ShortcutTuple.cs +++ b/src/WixToolset.Data/Tuples/ShortcutTuple.cs @@ -12,6 +12,7 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutTupleFields.ShortName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Target), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Arguments), IntermediateFieldType.String), @@ -36,6 +37,7 @@ namespace WixToolset.Data.Tuples { DirectoryRef, Name, + ShortName, ComponentRef, Target, Arguments, @@ -82,6 +84,12 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ShortcutTupleFields.Name, value); } + public string ShortName + { + get => (string)this.Fields[(int)ShortcutTupleFields.ShortName]; + set => this.Set((int)ShortcutTupleFields.ShortName, value); + } + public string ComponentRef { get => (string)this.Fields[(int)ShortcutTupleFields.ComponentRef]; @@ -160,4 +168,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ShortcutTupleFields.DescriptionResourceId, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs index 13a2e1c9..29acf111 100644 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs @@ -48,7 +48,7 @@ namespace WixToolset.Data.Tuples { } - public WixDeltaPatchSymbolPathsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, null) + public WixDeltaPatchSymbolPathsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) { } -- cgit v1.2.3-55-g6feb From bb84eab87c7361d0af10f68b2ef6369d20762c67 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 23 May 2019 15:15:17 -0700 Subject: Minor fixes --- src/WixToolset.Data/Intermediate.cs | 2 +- src/WixToolset.Data/Tuples/FileTuple.cs | 16 ++++++++-------- src/WixToolset.Data/Tuples/MediaTuple.cs | 4 ++-- src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 4b7daa4e..7693b815 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -130,7 +130,7 @@ namespace WixToolset.Data /// Paths to intermediate files saved on disk. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediates - public static IEnumerable Load(IEnumerable intermediateFiles, bool suppressVersionCheck = false) + public static IEnumerable Load(IEnumerable intermediateFiles) { var creator = new SimpleTupleDefinitionCreator(); diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index 6d7281cc..43de8b46 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -11,8 +11,8 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(FileTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.ShortName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.ShortName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.FileSize), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(FileTupleFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.Language), IntermediateFieldType.String), @@ -35,8 +35,8 @@ namespace WixToolset.Data.Tuples public enum FileTupleFields { ComponentRef, - ShortName, Name, + ShortName, FileSize, Version, Language, @@ -69,18 +69,18 @@ namespace WixToolset.Data.Tuples set => this.Set((int)FileTupleFields.ComponentRef, value); } - public string ShortName - { - get => (string)this.Fields[(int)FileTupleFields.ShortName]; - set => this.Set((int)FileTupleFields.ShortName, value); - } - public string Name { get => (string)this.Fields[(int)FileTupleFields.Name]; set => this.Set((int)FileTupleFields.Name, value); } + public string ShortName + { + get => (string)this.Fields[(int)FileTupleFields.ShortName]; + set => this.Set((int)FileTupleFields.ShortName, value); + } + public int FileSize { get => (int)this.Fields[(int)FileTupleFields.FileSize]; diff --git a/src/WixToolset.Data/Tuples/MediaTuple.cs b/src/WixToolset.Data/Tuples/MediaTuple.cs index 009a588f..a9cbb034 100644 --- a/src/WixToolset.Data/Tuples/MediaTuple.cs +++ b/src/WixToolset.Data/Tuples/MediaTuple.cs @@ -55,9 +55,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MediaTupleFields.DiskId, value); } - public int LastSequence + public int? LastSequence { - get => (int)this.Fields[(int)MediaTupleFields.LastSequence]; + get => (int?)this.Fields[(int)MediaTupleFields.LastSequence]; set => this.Set((int)MediaTupleFields.LastSequence, value); } diff --git a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs index 35e7bf33..9854ba9f 100644 --- a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs +++ b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs @@ -43,10 +43,10 @@ namespace WixToolsetTest.Data public void CanCheckNameofField() { var fileTuple = new FileTuple(); - Assert.Equal("Component_", fileTuple.Definition.FieldDefinitions[0].Name); + Assert.Equal("ComponentRef", fileTuple.Definition.FieldDefinitions[0].Name); Assert.Null(fileTuple.Fields[0]); fileTuple.ComponentRef = "Foo"; - Assert.Equal("Component_", fileTuple.Fields[0].Name); + Assert.Equal("ComponentRef", fileTuple.Fields[0].Name); Assert.Same(fileTuple.Definition.FieldDefinitions[0].Name, fileTuple.Fields[0].Name); } -- cgit v1.2.3-55-g6feb From 0025fa31f46c98d37d6d204a1fb7f8ea9a12b620 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 23 May 2019 15:24:43 -0700 Subject: Merge WixFileTuple in to FileTuple and remove File from FileAssemblyType --- src/WixToolset.Data/Tuples/FileTuple.cs | 173 ++++++++++++++++----- src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs | 27 +++- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 6 - src/WixToolset.Data/Tuples/WixActionTuple.cs | 4 +- .../Tuples/WixDeltaPatchFileTuple.cs | 76 --------- src/WixToolset.Data/Tuples/WixFileTuple.cs | 162 ------------------- src/WixToolset.Data/Tuples/WixMergeTuple.cs | 10 +- .../WindowsInstaller/Rows/WixFileRow.cs | 163 ------------------- src/WixToolset.Data/WindowsInstaller/Table.cs | 3 - 9 files changed, 168 insertions(+), 456 deletions(-) delete mode 100644 src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixFileTuple.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixFileRow.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index 43de8b46..caae7b34 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -16,15 +16,26 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(FileTupleFields.FileSize), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(FileTupleFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.ReadOnly), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFields.System), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFields.Vital), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFields.Checksum), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FileTupleFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FileTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileTupleFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileTupleFields.Source), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(FileTupleFields.FontTitle), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(FileTupleFields.SelfRegCost), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(FileTupleFields.BindPath), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileTupleFields.Sequence), IntermediateFieldType.Number), + + new IntermediateFieldDefinition(nameof(FileTupleFields.PatchGroup), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileTupleFields.PatchAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileTupleFields.DeltaPatchHeaderSource), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileTupleFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileTupleFields.SymbolPaths), IntermediateFieldType.String), }, typeof(FileTuple)); } @@ -32,6 +43,8 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum FileTupleFields { ComponentRef, @@ -40,15 +53,61 @@ namespace WixToolset.Data.Tuples FileSize, Version, Language, - ReadOnly, - Hidden, - System, - Vital, - Checksum, - Compressed, + Attributes, + DirectoryRef, + DiskId, + Source, + FontTitle, SelfRegCost, BindPath, + + Sequence, + + PatchGroup, + PatchAttributes, + DeltaPatchHeaderSource, + + RetainLengths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + SymbolPaths, + } + + [Flags] + public enum FileTupleAttributes : int + { + None, + ReadOnly = 0x1, + Hidden = 0x2, + System = 0x4, + Vital = 0x8, + Compressed = 0x10, + Uncompressed = 0x20, + Checksum = 0x40, + GeneratedShortFileName = 0x80, + } + + /// + /// PatchAttribute values + /// + [Flags] + public enum PatchAttributeType + { + None = 0, + + /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. + Ignore = 1, + + /// Set if the entire file should be installed rather than creating a binary patch. + IncludeWholeFile = 2, + + /// Set to indicate that the patch is non-vital. + AllowIgnoreOnError = 4, + + /// Allowed bits. + Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError } public class FileTuple : IntermediateTuple @@ -99,40 +158,28 @@ namespace WixToolset.Data.Tuples set => this.Set((int)FileTupleFields.Language, value); } - public bool ReadOnly + public FileTupleAttributes Attributes { - get => (bool)this.Fields[(int)FileTupleFields.ReadOnly]; - set => this.Set((int)FileTupleFields.ReadOnly, value); + get => (FileTupleAttributes)this.Fields[(int)FileTupleFields.Attributes].AsNumber(); + set => this.Set((int)FileTupleFields.Attributes, (int)value); } - public bool Hidden + public string DirectoryRef { - get => (bool)this.Fields[(int)FileTupleFields.Hidden]; - set => this.Set((int)FileTupleFields.Hidden, value); + get => (string)this.Fields[(int)FileTupleFields.DirectoryRef]; + set => this.Set((int)FileTupleFields.DirectoryRef, value); } - public bool System + public int? DiskId { - get => (bool)this.Fields[(int)FileTupleFields.System]; - set => this.Set((int)FileTupleFields.System, value); + get => (int?)this.Fields[(int)FileTupleFields.DiskId]; + set => this.Set((int)FileTupleFields.DiskId, value); } - public bool Vital + public IntermediateFieldPathValue Source { - get => (bool)this.Fields[(int)FileTupleFields.Vital]; - set => this.Set((int)FileTupleFields.Vital, value); - } - - public bool Checksum - { - get => (bool)this.Fields[(int)FileTupleFields.Checksum]; - set => this.Set((int)FileTupleFields.Checksum, value); - } - - public bool? Compressed - { - get => (bool?)this.Fields[(int)FileTupleFields.Compressed]; - set => this.Set((int)FileTupleFields.Compressed, value); + get => this.Fields[(int)FileTupleFields.Source].AsPath(); + set => this.Set((int)FileTupleFields.Source, value); } public string FontTitle @@ -152,5 +199,59 @@ namespace WixToolset.Data.Tuples get => (string)this.Fields[(int)FileTupleFields.BindPath]; set => this.Set((int)FileTupleFields.BindPath, value); } + + public int Sequence + { + get => (int)this.Fields[(int)FileTupleFields.Sequence]; + set => this.Set((int)FileTupleFields.Sequence, value); + } + + public int? PatchGroup + { + get => (int?)this.Fields[(int)FileTupleFields.PatchGroup]; + set => this.Set((int)FileTupleFields.PatchGroup, value); + } + + public PatchAttributeType? PatchAttributes + { + get => (PatchAttributeType?)this.Fields[(int)FileTupleFields.PatchAttributes].AsNullableNumber(); + set => this.Set((int)FileTupleFields.PatchAttributes, (int?)value); + } + + public string DeltaPatchHeaderSource + { + get => (string)this.Fields[(int)FileTupleFields.DeltaPatchHeaderSource]; + set => this.Set((int)FileTupleFields.DeltaPatchHeaderSource, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)FileTupleFields.RetainLengths]; + set => this.Set((int)FileTupleFields.RetainLengths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)FileTupleFields.IgnoreOffsets]; + set => this.Set((int)FileTupleFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)FileTupleFields.IgnoreLengths]; + set => this.Set((int)FileTupleFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)FileTupleFields.RetainOffsets]; + set => this.Set((int)FileTupleFields.RetainOffsets, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)FileTupleFields.SymbolPaths]; + set => this.Set((int)FileTupleFields.SymbolPaths, value); + } } } diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs index 99903307..57750bb9 100644 --- a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs @@ -15,6 +15,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ManifestFileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ApplicationFileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Attributes), IntermediateFieldType.Number), + //new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ProcessorArchitecture), IntermediateFieldType.String), }, typeof(MsiAssemblyTuple)); } @@ -29,6 +30,22 @@ namespace WixToolset.Data.Tuples ManifestFileRef, ApplicationFileRef, Attributes, + //ProcessorArchitecture, + } + + /// + /// Every file row has an assembly type. + /// + public enum AssemblyType + { + /// File is not an assembly. + NotAnAssembly, + + /// File is a Common Language Runtime Assembly. + DotNetAssembly, + + /// File is Win32 SxS assembly. + Win32Assembly, } public class MsiAssemblyTuple : IntermediateTuple @@ -67,10 +84,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiAssemblyTupleFields.ApplicationFileRef, value); } - public FileAssemblyType Type + public AssemblyType Type { - get => (FileAssemblyType)this.Fields[(int)MsiAssemblyTupleFields.Attributes].AsNumber(); + get => (AssemblyType)this.Fields[(int)MsiAssemblyTupleFields.Attributes].AsNumber(); set => this.Set((int)MsiAssemblyTupleFields.Attributes, (int)value); } + + //public string ProcessorArchitecture + //{ + // get => (string)this.Fields[(int)MsiAssemblyTupleFields.ProcessorArchitecture]; + // set => this.Set((int)MsiAssemblyTupleFields.ProcessorArchitecture, value); + //} } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index ea4ff144..16f6f19a 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -663,9 +663,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixCustomTable: return TupleDefinitions.WixCustomTable; - case TupleDefinitionType.WixDeltaPatchFile: - return TupleDefinitions.WixDeltaPatchFile; - case TupleDefinitionType.WixDeltaPatchSymbolPaths: return TupleDefinitions.WixDeltaPatchSymbolPaths; @@ -678,9 +675,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixFeatureModules: return TupleDefinitions.WixFeatureModules; - case TupleDefinitionType.WixFile: - return TupleDefinitions.WixFile; - case TupleDefinitionType.WixFileSearch: return TupleDefinitions.WixFileSearch; diff --git a/src/WixToolset.Data/Tuples/WixActionTuple.cs b/src/WixToolset.Data/Tuples/WixActionTuple.cs index 716fd46b..28a10698 100644 --- a/src/WixToolset.Data/Tuples/WixActionTuple.cs +++ b/src/WixToolset.Data/Tuples/WixActionTuple.cs @@ -24,8 +24,6 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { - using System; - public enum WixActionTupleFields { SequenceTable, @@ -100,4 +98,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixActionTupleFields.Overridable, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs deleted file mode 100644 index 48d0a96c..00000000 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixDeltaPatchFile = new IntermediateTupleDefinition( - TupleDefinitionType.WixDeltaPatchFile, - new[] - { - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.SymbolPaths), IntermediateFieldType.String), - }, - typeof(WixDeltaPatchFileTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixDeltaPatchFileTupleFields - { - RetainLengths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - SymbolPaths, - } - - public class WixDeltaPatchFileTuple : IntermediateTuple - { - public WixDeltaPatchFileTuple() : base(TupleDefinitions.WixDeltaPatchFile, null, null) - { - } - - public WixDeltaPatchFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchFile, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDeltaPatchFileTupleFields index] => this.Fields[(int)index]; - - public string RetainLengths - { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]; - set => this.Set((int)WixDeltaPatchFileTupleFields.RetainLengths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreOffsets]; - set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreLengths]; - set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainOffsets]; - set => this.Set((int)WixDeltaPatchFileTupleFields.RetainOffsets, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.SymbolPaths]; - set => this.Set((int)WixDeltaPatchFileTupleFields.SymbolPaths, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFileTuple.cs b/src/WixToolset.Data/Tuples/WixFileTuple.cs deleted file mode 100644 index 8f7cddc4..00000000 --- a/src/WixToolset.Data/Tuples/WixFileTuple.cs +++ /dev/null @@ -1,162 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixFile = new IntermediateTupleDefinition( - TupleDefinitionType.WixFile, - new[] - { - new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyManifestFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyApplicationFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.Source), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.ProcessorArchitecture), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchGroup), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileTupleFields.DeltaPatchHeaderSource), IntermediateFieldType.String), - }, - typeof(WixFileTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - using System; - - public enum WixFileTupleFields - { - AssemblyType, - AssemblyManifestFileRef, - AssemblyApplicationFileRef, - DirectoryRef, - DiskId, - Source, - ProcessorArchitecture, - PatchGroup, - Attributes, - PatchAttributes, - DeltaPatchHeaderSource, - } - - /// - /// Every file row has an assembly type. - /// - public enum FileAssemblyType - { - /// File is not an assembly. - NotAnAssembly, - - /// File is a Common Language Runtime Assembly. - DotNetAssembly, - - /// File is Win32 SxS assembly. - Win32Assembly, - } - - /// - /// PatchAttribute values - /// - [Flags] - public enum PatchAttributeType - { - None = 0, - - /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. - Ignore = 1, - - /// Set if the entire file should be installed rather than creating a binary patch. - IncludeWholeFile = 2, - - /// Set to indicate that the patch is non-vital. - AllowIgnoreOnError = 4, - - /// Allowed bits. - Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError - } - - public class WixFileTuple : IntermediateTuple - { - public WixFileTuple() : base(TupleDefinitions.WixFile, null, null) - { - } - - public WixFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFile, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFileTupleFields index] => this.Fields[(int)index]; - - public FileAssemblyType AssemblyType - { - get => (FileAssemblyType)(int)this.Fields[(int)WixFileTupleFields.AssemblyType]; - set => this.Set((int)WixFileTupleFields.AssemblyType, (int)value); - } - - public string AssemblyManifestFileRef - { - get => (string)this.Fields[(int)WixFileTupleFields.AssemblyManifestFileRef]; - set => this.Set((int)WixFileTupleFields.AssemblyManifestFileRef, value); - } - - public string AssemblyApplicationFileRef - { - get => (string)this.Fields[(int)WixFileTupleFields.AssemblyApplicationFileRef]; - set => this.Set((int)WixFileTupleFields.AssemblyApplicationFileRef, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)WixFileTupleFields.DirectoryRef]; - set => this.Set((int)WixFileTupleFields.DirectoryRef, value); - } - - public int DiskId - { - get => (int)this.Fields[(int)WixFileTupleFields.DiskId]; - set => this.Set((int)WixFileTupleFields.DiskId, value); - } - - public IntermediateFieldPathValue Source - { - get => this.Fields[(int)WixFileTupleFields.Source].AsPath(); - set => this.Set((int)WixFileTupleFields.Source, value); - } - - public string ProcessorArchitecture - { - get => (string)this.Fields[(int)WixFileTupleFields.ProcessorArchitecture]; - set => this.Set((int)WixFileTupleFields.ProcessorArchitecture, value); - } - - public int PatchGroup - { - get => (int)this.Fields[(int)WixFileTupleFields.PatchGroup]; - set => this.Set((int)WixFileTupleFields.PatchGroup, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)WixFileTupleFields.Attributes]; - set => this.Set((int)WixFileTupleFields.Attributes, value); - } - - public PatchAttributeType? PatchAttributes - { - get => (PatchAttributeType?)this.Fields[(int)WixFileTupleFields.PatchAttributes].AsNullableNumber(); - set => this.Set((int)WixFileTupleFields.PatchAttributes, (int?)value); - } - - public string DeltaPatchHeaderSource - { - get => (string)this.Fields[(int)WixFileTupleFields.DeltaPatchHeaderSource]; - set => this.Set((int)WixFileTupleFields.DeltaPatchHeaderSource, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs index 53d0cb60..daa0649f 100644 --- a/src/WixToolset.Data/Tuples/WixMergeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMergeTuple.cs @@ -14,7 +14,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DirectoryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.SourceFile), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FileCompression), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FileAttributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.ConfigurationData), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FeatureRef), IntermediateFieldType.String), }, @@ -30,7 +30,7 @@ namespace WixToolset.Data.Tuples DirectoryRef, SourceFile, DiskId, - FileCompression, + FileAttributes, ConfigurationData, FeatureRef, } @@ -71,10 +71,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixMergeTupleFields.DiskId, value); } - public bool? FileCompression + public FileTupleAttributes FileAttributes { - get => (bool?)this.Fields[(int)WixMergeTupleFields.FileCompression]; - set => this.Set((int)WixMergeTupleFields.FileCompression, value); + get => (FileTupleAttributes)this.Fields[(int)WixMergeTupleFields.FileAttributes].AsNumber(); + set => this.Set((int)WixMergeTupleFields.FileAttributes, (int)value); } public string ConfigurationData diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixFileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixFileRow.cs deleted file mode 100644 index 302272c4..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixFileRow.cs +++ /dev/null @@ -1,163 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the WixFile table. - /// - public sealed class WixFileRow : Row - { - /// - /// Creates a WixFile row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixFile row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixFileRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the primary key of the file row. - /// - /// Primary key of the file row. - public string File - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the assembly type of the file row. - /// - /// Assembly type of the file row. - public FileAssemblyType AssemblyType - { - get { return (null == this.Fields[1]) ? FileAssemblyType.NotAnAssembly : (FileAssemblyType)this.Fields[1].AsInteger(); } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets the identifier for the assembly manifest. - /// - /// Identifier for the assembly manifest. - public string AssemblyManifest - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the application for the assembly. - /// - /// Application for the assembly. - public string AssemblyApplication - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the directory of the file. - /// - /// Directory of the file. - public string Directory - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the disk id for this file. - /// - /// Disk id for the file. - public int DiskId - { - get { return (int)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the source location to the file. - /// - /// Source location to the file. - public string Source - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the source location to the file. - /// - /// Source location to the file. - public string PreviousSource - { - get { return (string)this.Fields[6].PreviousData; } - set { this.Fields[6].PreviousData = value; } - } - - /// - /// Gets or sets the architecture the file executes on. - /// - /// Architecture the file executes on. - public string ProcessorArchitecture - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets or sets the patch group of a patch-added file. - /// - /// The patch group of a patch-added file. - public int PatchGroup - { - get { return (null == this.Fields[8].Data) ? 0 : (int)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - /// - /// Gets or sets the attributes on a file. - /// - /// Attributes on a file. - public int Attributes - { - get { return (int)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - /// - /// Gets or sets the patching attributes to the file. - /// - /// Patching attributes of the file. - public PatchAttributeType PatchAttributes - { - get { return (PatchAttributeType)this.Fields[10].AsInteger(); } - set { this.Fields[10].Data = (int)value; } - } - - /// - /// Gets or sets the path to the delta patch header. - /// - /// Patch header path. - /// Set by the binder only when doing delta patching. - public string DeltaPatchHeaderSource - { - get { return (string)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index c57d9d31..acb4b6fe 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -162,9 +162,6 @@ namespace WixToolset.Data.WindowsInstaller case "WixDeltaPatchSymbolPaths": row = new WixDeltaPatchSymbolPathsRow(sourceLineNumbers, this); break; - case "WixFile": - row = new WixFileRow(sourceLineNumbers, this); - break; case "WixGroup": row = new WixGroupRow(sourceLineNumbers, this); break; -- cgit v1.2.3-55-g6feb From c22120fa0311033b06e2cbc78190fc9066e86e42 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 23 May 2019 15:34:42 -0700 Subject: Rename MsiAssemblyTuple to AssemblyTuple --- src/WixToolset.Data/Tuples/AssemblyTuple.cs | 96 +++++++++++++++++++++++++ src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs | 99 -------------------------- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 6 +- 3 files changed, 99 insertions(+), 102 deletions(-) create mode 100644 src/WixToolset.Data/Tuples/AssemblyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/AssemblyTuple.cs b/src/WixToolset.Data/Tuples/AssemblyTuple.cs new file mode 100644 index 00000000..15367cc3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AssemblyTuple.cs @@ -0,0 +1,96 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition Assembly = new IntermediateTupleDefinition( + TupleDefinitionType.Assembly, + new[] + { + new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblyTupleFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ManifestFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ApplicationFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblyTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ProcessorArchitecture), IntermediateFieldType.String), + }, + typeof(AssemblyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum AssemblyTupleFields + { + ComponentRef, + FeatureRef, + ManifestFileRef, + ApplicationFileRef, + Attributes, + ProcessorArchitecture, + } + + public enum AssemblyType + { + /// File is not an assembly. + NotAnAssembly, + + /// File is a Common Language Runtime Assembly. + DotNetAssembly, + + /// File is Win32 SxS assembly. + Win32Assembly, + } + + public class AssemblyTuple : IntermediateTuple + { + public AssemblyTuple() : base(TupleDefinitions.Assembly, null, null) + { + } + + public AssemblyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Assembly, sourceLineNumber, id) + { + } + + public IntermediateField this[AssemblyTupleFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)AssemblyTupleFields.ComponentRef]; + set => this.Set((int)AssemblyTupleFields.ComponentRef, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)AssemblyTupleFields.FeatureRef]; + set => this.Set((int)AssemblyTupleFields.FeatureRef, value); + } + + public string ManifestFileRef + { + get => (string)this.Fields[(int)AssemblyTupleFields.ManifestFileRef]; + set => this.Set((int)AssemblyTupleFields.ManifestFileRef, value); + } + + public string ApplicationFileRef + { + get => (string)this.Fields[(int)AssemblyTupleFields.ApplicationFileRef]; + set => this.Set((int)AssemblyTupleFields.ApplicationFileRef, value); + } + + public AssemblyType Type + { + get => (AssemblyType)this.Fields[(int)AssemblyTupleFields.Attributes].AsNumber(); + set => this.Set((int)AssemblyTupleFields.Attributes, (int)value); + } + + public string ProcessorArchitecture + { + get => (string)this.Fields[(int)AssemblyTupleFields.ProcessorArchitecture]; + set => this.Set((int)AssemblyTupleFields.ProcessorArchitecture, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs deleted file mode 100644 index 57750bb9..00000000 --- a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs +++ /dev/null @@ -1,99 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition MsiAssembly = new IntermediateTupleDefinition( - TupleDefinitionType.MsiAssembly, - new[] - { - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ManifestFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ApplicationFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Attributes), IntermediateFieldType.Number), - //new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.ProcessorArchitecture), IntermediateFieldType.String), - }, - typeof(MsiAssemblyTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum MsiAssemblyTupleFields - { - ComponentRef, - FeatureRef, - ManifestFileRef, - ApplicationFileRef, - Attributes, - //ProcessorArchitecture, - } - - /// - /// Every file row has an assembly type. - /// - public enum AssemblyType - { - /// File is not an assembly. - NotAnAssembly, - - /// File is a Common Language Runtime Assembly. - DotNetAssembly, - - /// File is Win32 SxS assembly. - Win32Assembly, - } - - public class MsiAssemblyTuple : IntermediateTuple - { - public MsiAssemblyTuple() : base(TupleDefinitions.MsiAssembly, null, null) - { - } - - public MsiAssemblyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiAssembly, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiAssemblyTupleFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.ComponentRef]; - set => this.Set((int)MsiAssemblyTupleFields.ComponentRef, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.FeatureRef]; - set => this.Set((int)MsiAssemblyTupleFields.FeatureRef, value); - } - - public string ManifestFileRef - { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.ManifestFileRef]; - set => this.Set((int)MsiAssemblyTupleFields.ManifestFileRef, value); - } - - public string ApplicationFileRef - { - get => (string)this.Fields[(int)MsiAssemblyTupleFields.ApplicationFileRef]; - set => this.Set((int)MsiAssemblyTupleFields.ApplicationFileRef, value); - } - - public AssemblyType Type - { - get => (AssemblyType)this.Fields[(int)MsiAssemblyTupleFields.Attributes].AsNumber(); - set => this.Set((int)MsiAssemblyTupleFields.Attributes, (int)value); - } - - //public string ProcessorArchitecture - //{ - // get => (string)this.Fields[(int)MsiAssemblyTupleFields.ProcessorArchitecture]; - // set => this.Set((int)MsiAssemblyTupleFields.ProcessorArchitecture, value); - //} - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index 16f6f19a..bc1cb2eb 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -70,7 +70,7 @@ namespace WixToolset.Data ModuleSignature, ModuleSubstitution, MoveFile, - MsiAssembly, + Assembly, MsiAssemblyName, MsiDigitalCertificate, MsiDigitalSignature, @@ -402,8 +402,8 @@ namespace WixToolset.Data case TupleDefinitionType.MoveFile: return TupleDefinitions.MoveFile; - case TupleDefinitionType.MsiAssembly: - return TupleDefinitions.MsiAssembly; + case TupleDefinitionType.Assembly: + return TupleDefinitions.Assembly; case TupleDefinitionType.MsiAssemblyName: return TupleDefinitions.MsiAssemblyName; -- cgit v1.2.3-55-g6feb From 9d0fea2e7617e4ba4fc85fbe412c812d9bc65564 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 23 May 2019 22:34:11 -0700 Subject: Improve debuggability of tuples --- src/WixToolset.Data/IntermediateTuple.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs index e5df9ecb..09ff7692 100644 --- a/src/WixToolset.Data/IntermediateTuple.cs +++ b/src/WixToolset.Data/IntermediateTuple.cs @@ -1,10 +1,12 @@ -// 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. +// 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. namespace WixToolset.Data { using System; + using System.Diagnostics; using SimpleJson; + [DebuggerDisplay("{DebuggerDisplay,nq}")] public class IntermediateTuple { public IntermediateTuple(IntermediateTupleDefinition definition) : this(definition, null, null) @@ -29,6 +31,8 @@ namespace WixToolset.Data public IntermediateField this[int index] => this.Fields[index]; + private string DebuggerDisplay => $"{this.Definition?.Name} {this.Id?.Id}"; + internal static IntermediateTuple Deserialize(ITupleDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) { var definitionName = jsonObject.GetValueOrDefault("type"); -- cgit v1.2.3-55-g6feb From 7462108b714d07161126dcedda5312daef54ae13 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 24 May 2019 08:47:36 -0700 Subject: Add tuple.IsNull(), remove fields when set to default and other small fixes --- src/WixToolset.Data/IntermediateField.cs | 41 ++++-------- src/WixToolset.Data/IntermediateFieldExtensions.cs | 2 + src/WixToolset.Data/IntermediateFieldValue.cs | 30 ++------- src/WixToolset.Data/IntermediateTuple.cs | 4 +- src/WixToolset.Data/IntermediateTupleExtensions.cs | 74 ++++++++++++++++------ src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixBundleTuple.cs | 6 +- 7 files changed, 78 insertions(+), 81 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateField.cs b/src/WixToolset.Data/IntermediateField.cs index 9aed3d81..5b511d02 100644 --- a/src/WixToolset.Data/IntermediateField.cs +++ b/src/WixToolset.Data/IntermediateField.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -9,10 +9,7 @@ namespace WixToolset.Data [DebuggerDisplay("Name={Name,nq} Type={Type} Value={Value?.AsString()}")] public class IntermediateField { - public IntermediateField(IntermediateFieldDefinition definition) - { - this.Definition = definition; - } + public IntermediateField(IntermediateFieldDefinition definition) => this.Definition = definition; public IntermediateFieldDefinition Definition { get; } @@ -26,46 +23,30 @@ namespace WixToolset.Data internal IntermediateFieldValue Value { get; set; } - public static explicit operator bool(IntermediateField field) - { - return field.AsBool(); - } + public static explicit operator bool(IntermediateField field) => field.AsBool(); - public static explicit operator bool? (IntermediateField field) - { - return field.AsNullableBool(); - } + public static explicit operator bool? (IntermediateField field) => field.AsNullableBool(); - public static explicit operator int(IntermediateField field) - { - return field.AsNumber(); - } + public static explicit operator int(IntermediateField field) => field.AsNumber(); - public static explicit operator int? (IntermediateField field) - { - return field.AsNullableNumber(); - } + public static explicit operator int? (IntermediateField field) => field.AsNullableNumber(); - public static explicit operator string(IntermediateField field) - { - return field.AsString(); - } + public static explicit operator string(IntermediateField field) => field.AsString(); internal static IntermediateField Deserialize(IntermediateFieldDefinition definition, Uri baseUri, JsonObject jsonObject) { - var field = new IntermediateField(definition); + IntermediateField field = null; if (jsonObject != null) { + field = new IntermediateField(definition); + field.Value = IntermediateFieldValue.Deserialize(jsonObject, baseUri, definition.Type); } return field; } - internal JsonObject Serialize() - { - return this.Value?.Serialize(); - } + internal JsonObject Serialize() => this.Value?.Serialize(); } } diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index 2f8aec1d..a73a6552 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -9,6 +9,8 @@ namespace WixToolset.Data [ThreadStatic] internal static string valueContext; + public static bool IsNull(this IntermediateField field) => field?.Value?.Data == null; + public static bool AsBool(this IntermediateField field) { if (field == null || field.Value == null || field.Value.Data == null) diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs index b09903dc..ca109e7f 100644 --- a/src/WixToolset.Data/IntermediateFieldValue.cs +++ b/src/WixToolset.Data/IntermediateFieldValue.cs @@ -15,35 +15,17 @@ namespace WixToolset.Data public IntermediateFieldValue PreviousValue { get; internal set; } - public static explicit operator bool(IntermediateFieldValue value) - { - return value.AsBool(); - } + public static explicit operator bool(IntermediateFieldValue value) => value.AsBool(); - public static explicit operator bool? (IntermediateFieldValue value) - { - return value.AsNullableBool(); - } + public static explicit operator bool? (IntermediateFieldValue value) => value.AsNullableBool(); - public static explicit operator int(IntermediateFieldValue value) - { - return value.AsNumber(); - } + public static explicit operator int(IntermediateFieldValue value) => value.AsNumber(); - public static explicit operator int? (IntermediateFieldValue value) - { - return value.AsNullableNumber(); - } + public static explicit operator int? (IntermediateFieldValue value) => value.AsNullableNumber(); - public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) - { - return value.AsPath(); - } + public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath(); - public static explicit operator string(IntermediateFieldValue value) - { - return value.AsString(); - } + public static explicit operator string(IntermediateFieldValue value) => value.AsString(); internal static IntermediateFieldValue Deserialize(JsonObject jsonObject, Uri baseUri, IntermediateFieldType type) { diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs index 09ff7692..bc46e3b4 100644 --- a/src/WixToolset.Data/IntermediateTuple.cs +++ b/src/WixToolset.Data/IntermediateTuple.cs @@ -46,9 +46,9 @@ namespace WixToolset.Data creator.TryGetTupleDefinitionByName(definitionName, out var definition); // TODO: this isn't sufficient. var tuple = definition.CreateTuple(sourceLineNumbers, id); - for (var i = 0; i < fieldsJson.Count; ++i) + for (var i = 0; i < fieldsJson.Count && i < tuple.Fields.Length; ++i) { - if (tuple.Fields.Length > i && fieldsJson[i] is JsonObject fieldJson) + if (fieldsJson[i] is JsonObject fieldJson) { tuple.Fields[i] = IntermediateField.Deserialize(tuple.Definition.FieldDefinitions[i], baseUri, fieldJson); } diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs index f5b30d47..dd488dc5 100644 --- a/src/WixToolset.Data/IntermediateTupleExtensions.cs +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs @@ -1,36 +1,26 @@ -// 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. +// 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. namespace WixToolset.Data { public static class IntermediateTupleExtensions { - public static bool AsBool(this IntermediateTuple tuple, int index) - { - return tuple?.Fields[index].AsBool() ?? false; - } + public static bool AsBool(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsBool() ?? false; - public static bool? AsNullableBool(this IntermediateTuple tuple, int index) - { - return tuple?.Fields[index].AsNullableBool(); - } + public static bool? AsNullableBool(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsNullableBool(); - public static int AsNumber(this IntermediateTuple tuple, int index) - { - return tuple?.Fields[index].AsNumber() ?? 0; - } + public static int AsNumber(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsNumber() ?? 0; - public static int? AsNullableNumber(this IntermediateTuple tuple, int index) - { - return tuple?.Fields[index].AsNullableNumber(); - } + public static int? AsNullableNumber(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsNullableNumber(); - public static string AsString(this IntermediateTuple tuple, int index) - { - return tuple?.Fields[index].AsString(); - } + public static string AsString(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsString(); public static IntermediateField Set(this IntermediateTuple tuple, int index, bool value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -40,6 +30,11 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, bool? value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -49,6 +44,11 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, long value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -58,6 +58,11 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, long? value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -67,6 +72,11 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, int value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -76,6 +86,11 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, int? value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -85,6 +100,11 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, IntermediateFieldPathValue value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -94,11 +114,23 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, string value) { + if (value == default && NoFieldMetadata(tuple, index)) + { + return tuple.Fields[index] = null; + } + var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); return tuple.Fields[index] = field; } + + private static bool NoFieldMetadata(IntermediateTuple tuple, int index) + { + var field = tuple?.Fields[index]; + + return field?.Context == null && field?.PreviousValue == null; + } } } diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs index 42f15660..f4ec17bf 100644 --- a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs @@ -51,7 +51,7 @@ namespace WixToolset.Data.Tuples public RegistryRootType Root { - get => (RegistryRootType)this.Fields[(int)RemoveRegistryTupleFields.Root]?.AsNumber(); + get => (RegistryRootType)this.Fields[(int)RemoveRegistryTupleFields.Root].AsNumber(); set => this.Set((int)RemoveRegistryTupleFields.Root, (int)value); } diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs index f7cd4f23..8f6f760a 100644 --- a/src/WixToolset.Data/Tuples/WixBundleTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleTuple.cs @@ -32,7 +32,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.BundleId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ProviderKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.PerMachine), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.PerMachine), IntermediateFieldType.Bool), }, typeof(WixBundleTuple)); } @@ -211,9 +211,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleTupleFields.ProviderKey, value); } - public int PerMachine + public bool PerMachine { - get => (int)this.Fields[(int)WixBundleTupleFields.PerMachine]; + get => (bool)this.Fields[(int)WixBundleTupleFields.PerMachine]; set => this.Set((int)WixBundleTupleFields.PerMachine, value); } } -- cgit v1.2.3-55-g6feb From cece10e037c6daacc8d2def1a9057882aec47fe4 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 7 Oct 2019 07:32:59 -0700 Subject: Add support for long fields and fix up Bundle and many other tuples --- .../BundleApprovedExeForElevationAttributes.cs | 16 - src/WixToolset.Data/Burn/BurnConstants.cs | 19 ++ src/WixToolset.Data/IntermediateField.cs | 4 + src/WixToolset.Data/IntermediateFieldExtensions.cs | 370 ++++++++++++--------- .../IntermediateFieldValueExtensions.cs | 39 +++ src/WixToolset.Data/Tuples/IconTuple.cs | 4 +- src/WixToolset.Data/Tuples/MsiFileHashTuple.cs | 8 - .../Tuples/ProvidesDependencyTuple.cs | 84 +++++ src/WixToolset.Data/Tuples/TupleDefinitions.cs | 21 +- .../Tuples/WixApprovedExeForElevationTuple.cs | 27 +- .../Tuples/WixBundleCatalogTuple.cs | 10 +- .../Tuples/WixBundleExePackageTuple.cs | 14 +- .../Tuples/WixBundleMsiFeatureTuple.cs | 18 +- .../Tuples/WixBundleMsiPackageTuple.cs | 15 +- .../Tuples/WixBundleMsiPropertyTuple.cs | 10 +- .../Tuples/WixBundleMspPackageTuple.cs | 14 +- .../Tuples/WixBundleMsuPackageTuple.cs | 8 - .../Tuples/WixBundlePackageExitCodeTuple.cs | 6 +- .../Tuples/WixBundlePackageTuple.cs | 24 +- .../Tuples/WixBundlePatchTargetCodeTuple.cs | 40 ++- .../Tuples/WixBundlePayloadTuple.cs | 42 +-- .../Tuples/WixBundlePropertiesTuple.cs | 84 ----- .../Tuples/WixBundleRelatedPackageTuple.cs | 58 ++-- .../Tuples/WixBundleRollbackBoundaryTuple.cs | 8 - .../Tuples/WixBundleSlipstreamMspTuple.cs | 22 +- src/WixToolset.Data/Tuples/WixBundleTuple.cs | 128 +++---- src/WixToolset.Data/Tuples/WixChainTuple.cs | 8 +- .../Tuples/WixComponentSearchTuple.cs | 26 +- .../Tuples/WixDependencyProviderTuple.cs | 87 +++++ src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | 33 +- .../Tuples/WixPackageFeatureInfoTuple.cs | 116 ------- .../Tuples/WixPackagePropertiesTuple.cs | 180 ---------- .../Tuples/WixPayloadPropertiesTuple.cs | 92 ----- .../Tuples/WixProductSearchTuple.cs | 28 +- .../Tuples/WixRegistrySearchTuple.cs | 35 +- .../Rows/WixApprovedExeForElevationRow.cs | 8 +- .../Rows/WixBundleExePackageRow.cs | 3 +- .../Rows/WixBundleMsiPackageRow.cs | 8 - .../Rows/WixBundlePatchTargetCodeRow.cs | 20 +- 39 files changed, 761 insertions(+), 976 deletions(-) delete mode 100644 src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs create mode 100644 src/WixToolset.Data/Burn/BurnConstants.cs create mode 100644 src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs b/src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs deleted file mode 100644 index 240c2160..00000000 --- a/src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs +++ /dev/null @@ -1,16 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// Attributes available for an ApprovedExeForElevation. - /// - [Flags] - public enum BundleApprovedExeForElevationAttributes : int - { - None = 0x0, - Win64 = 0x1, - } -} diff --git a/src/WixToolset.Data/Burn/BurnConstants.cs b/src/WixToolset.Data/Burn/BurnConstants.cs new file mode 100644 index 00000000..9803a73a --- /dev/null +++ b/src/WixToolset.Data/Burn/BurnConstants.cs @@ -0,0 +1,19 @@ +// 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. + +namespace WixToolset.Data.Burn +{ + public static class BurnConstants + { + public const string BurnUXContainerName = "WixUXContainer"; + public const string BurnDefaultAttachedContainerName = "WixAttachedContainer"; + public const string BundleLayoutOnlyPayloadsName = "BundleLayoutOnlyPayloads"; + + public const string BootstrapperApplicationDataTupleDefinitionTag = "WixBootstrapperApplicationData"; + + // The following constants must stay in sync with src\burn\engine\core.h + public const string BURN_BUNDLE_NAME = "WixBundleName"; + public const string BURN_BUNDLE_ORIGINAL_SOURCE = "WixBundleOriginalSource"; + public const string BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER = "WixBundleOriginalSourceFolder"; + public const string BURN_BUNDLE_LAST_USED_SOURCE = "WixBundleLastUsedSource"; + } +} diff --git a/src/WixToolset.Data/IntermediateField.cs b/src/WixToolset.Data/IntermediateField.cs index 5b511d02..2310f447 100644 --- a/src/WixToolset.Data/IntermediateField.cs +++ b/src/WixToolset.Data/IntermediateField.cs @@ -27,6 +27,10 @@ namespace WixToolset.Data public static explicit operator bool? (IntermediateField field) => field.AsNullableBool(); + public static explicit operator long(IntermediateField field) => field.AsLargeNumber(); + + public static explicit operator long?(IntermediateField field) => field.AsNullableLargeNumber(); + public static explicit operator int(IntermediateField field) => field.AsNumber(); public static explicit operator int? (IntermediateField field) => field.AsNullableNumber(); diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index a73a6552..5d2ddf06 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -20,20 +20,21 @@ namespace WixToolset.Data switch (field.Definition.Type) { - case IntermediateFieldType.Bool: - return field.Value.AsBool(); + case IntermediateFieldType.Bool: + return field.Value.AsBool(); - case IntermediateFieldType.Number: - return field.Value.AsNumber() != 0; + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber() != 0; - case IntermediateFieldType.String: - return !String.IsNullOrEmpty(field.Value.AsString()); + case IntermediateFieldType.String: + return !String.IsNullOrEmpty(field.Value.AsString()); - case IntermediateFieldType.Path: - return !String.IsNullOrEmpty(field.Value.AsPath()?.Path); + case IntermediateFieldType.Path: + return !String.IsNullOrEmpty(field.Value.AsPath()?.Path); - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); } } @@ -46,20 +47,68 @@ namespace WixToolset.Data switch (field.Definition.Type) { - case IntermediateFieldType.Bool: - return field.Value.AsBool(); + case IntermediateFieldType.Bool: + return field.Value.AsBool(); - case IntermediateFieldType.Number: - return field.Value.AsNumber() != 0; + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber() != 0; - case IntermediateFieldType.String: - return !String.IsNullOrEmpty(field.Value.AsString()); + case IntermediateFieldType.String: + return !String.IsNullOrEmpty(field.Value.AsString()); - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); } } + public static long AsLargeNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return 0; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; + + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber(); + + case IntermediateFieldType.String: + return Convert.ToInt64(field.Value.AsString()); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to large number"); + } + } + + public static long? AsNullableLargeNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; + + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber(); + + case IntermediateFieldType.String: + return Convert.ToInt64(field.Value.AsString()); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to large number"); + } + } public static int AsNumber(this IntermediateField field) { @@ -70,17 +119,18 @@ namespace WixToolset.Data switch (field.Definition.Type) { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? 1 : 0; + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; - case IntermediateFieldType.Number: - return field.Value.AsNumber(); + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsNumber(); - case IntermediateFieldType.String: - return Convert.ToInt32(field.Value.AsString()); + case IntermediateFieldType.String: + return Convert.ToInt32(field.Value.AsString()); - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); } } @@ -93,17 +143,18 @@ namespace WixToolset.Data switch (field.Definition.Type) { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? 1 : 0; + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; - case IntermediateFieldType.Number: - return field.Value.AsNumber(); + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsNumber(); - case IntermediateFieldType.String: - return Convert.ToInt32(field.Value.AsString()); + case IntermediateFieldType.String: + return Convert.ToInt32(field.Value.AsString()); - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); } } @@ -116,14 +167,14 @@ namespace WixToolset.Data switch (field.Definition.Type) { - case IntermediateFieldType.String: - return new IntermediateFieldPathValue { Path = field.Value.AsString() }; + case IntermediateFieldType.String: + return new IntermediateFieldPathValue { Path = field.Value.AsString() }; - case IntermediateFieldType.Path: - return field.Value.AsPath(); + case IntermediateFieldType.Path: + return field.Value.AsPath(); - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); } } @@ -136,20 +187,21 @@ namespace WixToolset.Data switch (field.Definition.Type) { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? "true" : "false"; + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? "true" : "false"; - case IntermediateFieldType.Number: - return field.Value.AsNumber().ToString(); + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber().ToString(); - case IntermediateFieldType.String: - return field.Value.AsString(); + case IntermediateFieldType.String: + return field.Value.AsString(); - case IntermediateFieldType.Path: - return field.Value.AsPath()?.Path; + case IntermediateFieldType.Path: + return field.Value.AsPath()?.Path; - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); } } @@ -169,27 +221,27 @@ namespace WixToolset.Data switch (field.Type) { - case IntermediateFieldType.Bool: - data = value; - break; + case IntermediateFieldType.Bool: + data = value; + break; - case IntermediateFieldType.LargeNumber: - data = value ? (long)1 : (long)0; - break; + case IntermediateFieldType.LargeNumber: + data = value ? (long)1 : (long)0; + break; - case IntermediateFieldType.Number: - data = value ? 1 : 0; - break; + case IntermediateFieldType.Number: + data = value ? 1 : 0; + break; - case IntermediateFieldType.Path: - throw new ArgumentException($"Cannot convert bool '{value}' to a 'Path' field type.", nameof(value)); + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert bool '{value}' to a 'Path' field type.", nameof(value)); - case IntermediateFieldType.String: - data = value ? "true" : "false"; - break; + case IntermediateFieldType.String: + data = value ? "true" : "false"; + break; - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); }; return AssignFieldValue(field, data); @@ -216,27 +268,27 @@ namespace WixToolset.Data switch (field.Type) { - case IntermediateFieldType.Bool: - data = (value != 0); - break; + case IntermediateFieldType.Bool: + data = (value != 0); + break; - case IntermediateFieldType.LargeNumber: - data = value; - break; + case IntermediateFieldType.LargeNumber: + data = value; + break; - case IntermediateFieldType.Number: - data = (int)value; - break; + case IntermediateFieldType.Number: + data = (int)value; + break; - case IntermediateFieldType.Path: - throw new ArgumentException($"Cannot convert large number '{value}' to a 'Path' field type.", nameof(value)); + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert large number '{value}' to a 'Path' field type.", nameof(value)); - case IntermediateFieldType.String: - data = value.ToString(); - break; + case IntermediateFieldType.String: + data = value.ToString(); + break; - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); }; return AssignFieldValue(field, data); @@ -263,27 +315,27 @@ namespace WixToolset.Data switch (field.Type) { - case IntermediateFieldType.Bool: - data = (value != 0); - break; + case IntermediateFieldType.Bool: + data = (value != 0); + break; - case IntermediateFieldType.LargeNumber: - data = (long)value; - break; + case IntermediateFieldType.LargeNumber: + data = (long)value; + break; - case IntermediateFieldType.Number: - data = value; - break; + case IntermediateFieldType.Number: + data = value; + break; - case IntermediateFieldType.Path: - throw new ArgumentException($"Cannot convert number '{value}' to a 'Path' field type.", nameof(value)); + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert number '{value}' to a 'Path' field type.", nameof(value)); - case IntermediateFieldType.String: - data = value.ToString(); - break; + case IntermediateFieldType.String: + data = value.ToString(); + break; - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); }; return AssignFieldValue(field, data); @@ -315,25 +367,25 @@ namespace WixToolset.Data { switch (field.Type) { - case IntermediateFieldType.Bool: - throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'bool' field type.", nameof(value)); + case IntermediateFieldType.Bool: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'bool' field type.", nameof(value)); - case IntermediateFieldType.LargeNumber: - throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'large number' field type.", nameof(value)); + case IntermediateFieldType.LargeNumber: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'large number' field type.", nameof(value)); - case IntermediateFieldType.Number: - throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'number' field type.", nameof(value)); + case IntermediateFieldType.Number: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'number' field type.", nameof(value)); - case IntermediateFieldType.Path: - data = value; - break; + case IntermediateFieldType.Path: + data = value; + break; - case IntermediateFieldType.String: - data = value.Path; - break; + case IntermediateFieldType.String: + data = value.Path; + break; - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); }; } @@ -356,53 +408,53 @@ namespace WixToolset.Data { switch (field.Type) { - case IntermediateFieldType.Bool: - if (value.Equals("yes", StringComparison.OrdinalIgnoreCase) || value.Equals("true", StringComparison.OrdinalIgnoreCase)) - { - data = true; - } - else if (value.Equals("no", StringComparison.OrdinalIgnoreCase) || value.Equals("false", StringComparison.OrdinalIgnoreCase)) - { - data = false; - } - else - { - throw new ArgumentException($"Cannot convert string '{value}' to a 'bool' field type.", nameof(value)); - } - break; - - case IntermediateFieldType.LargeNumber: - if (Int64.TryParse(value, out var largeNumber)) - { - data = largeNumber; - } - else - { - throw new ArgumentException($"Cannot convert string '{value}' to a 'large number' field type.", nameof(value)); - } - break; - - case IntermediateFieldType.Number: - if (Int32.TryParse(value, out var number)) - { - data = number; - } - else - { - throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", nameof(value)); - } - break; - - case IntermediateFieldType.Path: - data = new IntermediateFieldPathValue { Path = value }; - break; - - case IntermediateFieldType.String: - data = value; - break; - - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + case IntermediateFieldType.Bool: + if (value.Equals("yes", StringComparison.OrdinalIgnoreCase) || value.Equals("true", StringComparison.OrdinalIgnoreCase)) + { + data = true; + } + else if (value.Equals("no", StringComparison.OrdinalIgnoreCase) || value.Equals("false", StringComparison.OrdinalIgnoreCase)) + { + data = false; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'bool' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.LargeNumber: + if (Int64.TryParse(value, out var largeNumber)) + { + data = largeNumber; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'large number' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.Number: + if (Int32.TryParse(value, out var number)) + { + data = number; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.Path: + data = new IntermediateFieldPathValue { Path = value }; + break; + + case IntermediateFieldType.String: + data = value; + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); }; } diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs index f9322e09..317dfc7f 100644 --- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs @@ -45,6 +45,45 @@ namespace WixToolset.Data return (bool)value.Data; } + public static long AsLargeNumber(this IntermediateFieldValue value) + { + var result = value.AsNullableLargeNumber(); + return result ?? 0; + } + + public static long? AsNullableLargeNumber(this IntermediateFieldValue value) + { + if (value?.Data == null) + { + return null; + } + else if (value.Data is int n) + { + return n; + } + else if (value.Data is long l) + { + return l; + } + else if (value.Data is bool b) + { + return b ? 1 : 0; + } + else if (value.Data is string s) + { + try + { + return Convert.ToInt32(s); + } + catch (FormatException) + { + throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s)); + } + } + + return (long)value.Data; + } + public static int AsNumber(this IntermediateFieldValue value) { var result = value.AsNullableNumber(); diff --git a/src/WixToolset.Data/Tuples/IconTuple.cs b/src/WixToolset.Data/Tuples/IconTuple.cs index 0e8c9fd7..e9ed93b2 100644 --- a/src/WixToolset.Data/Tuples/IconTuple.cs +++ b/src/WixToolset.Data/Tuples/IconTuple.cs @@ -35,9 +35,9 @@ namespace WixToolset.Data.Tuples public IntermediateField this[IconTupleFields index] => this.Fields[(int)index]; - public string Data + public IntermediateFieldPathValue Data { - get => (string)this.Fields[(int)IconTupleFields.Data]; + get => this.Fields[(int)IconTupleFields.Data].AsPath(); set => this.Set((int)IconTupleFields.Data, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs index a83093e9..10aa801d 100644 --- a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.MsiFileHash, new[] { - new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.FileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.Options), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart1), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart2), IntermediateFieldType.Number), @@ -25,7 +24,6 @@ namespace WixToolset.Data.Tuples { public enum MsiFileHashTupleFields { - FileRef, Options, HashPart1, HashPart2, @@ -45,12 +43,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiFileHashTupleFields index] => this.Fields[(int)index]; - public string FileRef - { - get => (string)this.Fields[(int)MsiFileHashTupleFields.FileRef]; - set => this.Set((int)MsiFileHashTupleFields.FileRef, value); - } - public int Options { get => (int)this.Fields[(int)MsiFileHashTupleFields.Options]; diff --git a/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs b/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs new file mode 100644 index 00000000..a6337bdf --- /dev/null +++ b/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition ProvidesDependency = new IntermediateTupleDefinition( + TupleDefinitionType.ProvidesDependency, + new[] + { + new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Imported), IntermediateFieldType.Bool), + }, + typeof(ProvidesDependencyTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum ProvidesDependencyTupleFields + { + PackageRef, + Key, + Version, + DisplayName, + Attributes, + Imported, + } + + public class ProvidesDependencyTuple : IntermediateTuple + { + public ProvidesDependencyTuple() : base(TupleDefinitions.ProvidesDependency, null, null) + { + } + + public ProvidesDependencyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ProvidesDependency, sourceLineNumber, id) + { + } + + public IntermediateField this[ProvidesDependencyTupleFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)ProvidesDependencyTupleFields.PackageRef]; + set => this.Set((int)ProvidesDependencyTupleFields.PackageRef, value); + } + + public string Key + { + get => (string)this.Fields[(int)ProvidesDependencyTupleFields.Key]; + set => this.Set((int)ProvidesDependencyTupleFields.Key, value); + } + + public string Version + { + get => (string)this.Fields[(int)ProvidesDependencyTupleFields.Version]; + set => this.Set((int)ProvidesDependencyTupleFields.Version, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ProvidesDependencyTupleFields.DisplayName]; + set => this.Set((int)ProvidesDependencyTupleFields.DisplayName, value); + } + + public int? Attributes + { + get => (int?)this.Fields[(int)ProvidesDependencyTupleFields.Attributes]; + set => this.Set((int)ProvidesDependencyTupleFields.Attributes, value); + } + + public bool Imported + { + get => (bool)this.Fields[(int)ProvidesDependencyTupleFields.Imported]; + set => this.Set((int)ProvidesDependencyTupleFields.Imported, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index bc1cb2eb..bad8af3f 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -100,6 +100,7 @@ namespace WixToolset.Data ProgId, Properties, Property, + ProvidesDependency, PublishComponent, RadioButton, Registry, @@ -144,7 +145,6 @@ namespace WixToolset.Data WixBundlePatchTargetCode, WixBundlePayload, WixBundlePayloadGroup, - WixBundleProperties, WixBundleRelatedPackage, WixBundleRollbackBoundary, WixBundleSlipstreamMsp, @@ -159,6 +159,7 @@ namespace WixToolset.Data WixCustomTable, WixDeltaPatchFile, WixDeltaPatchSymbolPaths, + WixDependencyProvider, WixEnsureTable, WixFeatureGroup, WixFeatureModules, @@ -171,15 +172,12 @@ namespace WixToolset.Data WixMediaTemplate, WixMerge, WixOrdering, - WixPackageFeatureInfo, - WixPackageProperties, WixPatchBaseline, WixPatchFamilyGroup, WixPatchId, WixPatchMetadata, WixPatchRef, WixPatchTarget, - WixPayloadProperties, WixProductSearch, WixProperty, WixRegistrySearch, @@ -495,6 +493,9 @@ namespace WixToolset.Data case TupleDefinitionType.PublishComponent: return TupleDefinitions.PublishComponent; + case TupleDefinitionType.ProvidesDependency: + return TupleDefinitions.ProvidesDependency; + case TupleDefinitionType.RadioButton: return TupleDefinitions.RadioButton; @@ -624,9 +625,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixBundlePayloadGroup: return TupleDefinitions.WixBundlePayloadGroup; - case TupleDefinitionType.WixBundleProperties: - return TupleDefinitions.WixBundleProperties; - case TupleDefinitionType.WixBundleRelatedPackage: return TupleDefinitions.WixBundleRelatedPackage; @@ -699,12 +697,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixOrdering: return TupleDefinitions.WixOrdering; - case TupleDefinitionType.WixPackageFeatureInfo: - return TupleDefinitions.WixPackageFeatureInfo; - - case TupleDefinitionType.WixPackageProperties: - return TupleDefinitions.WixPackageProperties; - case TupleDefinitionType.WixPatchBaseline: return TupleDefinitions.WixPatchBaseline; @@ -723,9 +715,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixPatchTarget: return TupleDefinitions.WixPatchTarget; - case TupleDefinitionType.WixPayloadProperties: - return TupleDefinitions.WixPayloadProperties; - case TupleDefinitionType.WixProductSearch: return TupleDefinitions.WixProductSearch; diff --git a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs index e2326697..07fe838b 100644 --- a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.ValueName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Attributes), IntermediateFieldType.Number), }, typeof(WixApprovedExeForElevationTuple)); @@ -20,13 +20,22 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixApprovedExeForElevationTupleFields { Key, - Value, + ValueName, Attributes, } + [Flags] + public enum WixApprovedExeForElevationAttributes + { + None = 0x0, + Win64 = 0x1, + } + public class WixApprovedExeForElevationTuple : IntermediateTuple { public WixApprovedExeForElevationTuple() : base(TupleDefinitions.WixApprovedExeForElevation, null, null) @@ -45,16 +54,18 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixApprovedExeForElevationTupleFields.Key, value); } - public string Value + public string ValueName { - get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Value]; - set => this.Set((int)WixApprovedExeForElevationTupleFields.Value, value); + get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.ValueName]; + set => this.Set((int)WixApprovedExeForElevationTupleFields.ValueName, value); } - public BundleApprovedExeForElevationAttributes Attributes + public WixApprovedExeForElevationAttributes Attributes { - get => (BundleApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes].AsNumber(); + get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes].AsNumber(); set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, (int)value); } + + public bool Win64 => (this.Attributes & WixApprovedExeForElevationAttributes.Win64) == WixApprovedExeForElevationAttributes.Win64; } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs index ca6e6b33..51c1306e 100644 --- a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleCatalog, new[] { - new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.WixBundleCatalog), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.PayloadRef), IntermediateFieldType.String), }, typeof(WixBundleCatalogTuple)); @@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples { public enum WixBundleCatalogTupleFields { - WixBundleCatalog, PayloadRef, } @@ -37,16 +35,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleCatalogTupleFields index] => this.Fields[(int)index]; - public string WixBundleCatalog - { - get => (string)this.Fields[(int)WixBundleCatalogTupleFields.WixBundleCatalog]; - set => this.Set((int)WixBundleCatalogTupleFields.WixBundleCatalog, value); - } - public string PayloadRef { get => (string)this.Fields[(int)WixBundleCatalogTupleFields.PayloadRef]; set => this.Set((int)WixBundleCatalogTupleFields.PayloadRef, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs index 798e2d0d..e87de26d 100644 --- a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleExePackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.DetectCondition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.InstallCommand), IntermediateFieldType.String), @@ -28,7 +27,6 @@ namespace WixToolset.Data.Tuples public enum WixBundleExePackageTupleFields { - WixBundlePackageRef, Attributes, DetectCondition, InstallCommand, @@ -40,7 +38,7 @@ namespace WixToolset.Data.Tuples [Flags] public enum WixBundleExePackageAttributes { - Repairable = 0x1, + None = 0, } public class WixBundleExePackageTuple : IntermediateTuple @@ -55,12 +53,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleExePackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackageRef - { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundleExePackageTupleFields.WixBundlePackageRef, value); - } - public WixBundleExePackageAttributes Attributes { get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageTupleFields.Attributes]; @@ -96,5 +88,7 @@ namespace WixToolset.Data.Tuples get => (string)this.Fields[(int)WixBundleExePackageTupleFields.ExeProtocol]; set => this.Set((int)WixBundleExePackageTupleFields.ExeProtocol, value); } + + public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs index 7b6c635a..dab42529 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs @@ -10,9 +10,9 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsiFeature, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.WixBundlePackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.LargeNumber), new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Parent), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Title), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Description), IntermediateFieldType.String), @@ -29,7 +29,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundleMsiFeatureTupleFields { - WixBundlePackageRef, + PackageRef, Name, Size, Parent, @@ -53,10 +53,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsiFeatureTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackageRef + public string PackageRef { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.WixBundlePackageRef, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.PackageRef]; + set => this.Set((int)WixBundleMsiFeatureTupleFields.PackageRef, value); } public string Name @@ -65,9 +65,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleMsiFeatureTupleFields.Name, value); } - public int Size + public long Size { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size]; + get => (long)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size]; set => this.Set((int)WixBundleMsiFeatureTupleFields.Size, value); } @@ -113,4 +113,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleMsiFeatureTupleFields.Attributes, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs index a86c33d0..3a205376 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsiPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.UpgradeCode), IntermediateFieldType.String), @@ -29,7 +28,6 @@ namespace WixToolset.Data.Tuples public enum WixBundleMsiPackageTupleFields { - WixBundlePackageRef, Attributes, ProductCode, UpgradeCode, @@ -45,7 +43,6 @@ namespace WixToolset.Data.Tuples DisplayInternalUI = 0x1, EnableFeatureSelection = 0x4, ForcePerMachine = 0x2, - SuppressLooseFilePayloadGeneration = 0x8, } public class WixBundleMsiPackageTuple : IntermediateTuple @@ -60,12 +57,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsiPackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackageRef - { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundleMsiPackageTupleFields.WixBundlePackageRef, value); - } - public WixBundleMsiPackageAttributes Attributes { get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageTupleFields.Attributes]; @@ -107,5 +98,11 @@ namespace WixToolset.Data.Tuples get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.Manufacturer]; set => this.Set((int)WixBundleMsiPackageTupleFields.Manufacturer, value); } + + public bool DisplayInternalUI => (this.Attributes & WixBundleMsiPackageAttributes.DisplayInternalUI) == WixBundleMsiPackageAttributes.DisplayInternalUI; + + public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; + + public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs index 2b236a24..80500f17 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsiProperty, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.WixBundlePackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Value), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Condition), IntermediateFieldType.String), @@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples { public enum WixBundleMsiPropertyTupleFields { - WixBundlePackageRef, + PackageRef, Name, Value, Condition, @@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsiPropertyTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackageRef + public string PackageRef { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundleMsiPropertyTupleFields.WixBundlePackageRef, value); + get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.PackageRef]; + set => this.Set((int)WixBundleMsiPropertyTupleFields.PackageRef, value); } public string Name diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs index 8ef38fde..6c5cb38b 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMspPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Manufacturer), IntermediateFieldType.String), @@ -26,7 +25,6 @@ namespace WixToolset.Data.Tuples public enum WixBundleMspPackageTupleFields { - WixBundlePackageRef, Attributes, PatchCode, Manufacturer, @@ -53,12 +51,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMspPackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackageRef - { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundleMspPackageTupleFields.WixBundlePackageRef, value); - } - public WixBundleMspPackageAttributes Attributes { get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageTupleFields.Attributes]; @@ -82,5 +74,11 @@ namespace WixToolset.Data.Tuples get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchXml]; set => this.Set((int)WixBundleMspPackageTupleFields.PatchXml, value); } + + public bool DisplayInternalUI => (this.Attributes & WixBundleMspPackageAttributes.DisplayInternalUI) == WixBundleMspPackageAttributes.DisplayInternalUI; + + public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; + + public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs index 33add8e9..5d5a4672 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleMsuPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.DetectCondition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.MsuKB), IntermediateFieldType.String), }, @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples { public enum WixBundleMsuPackageTupleFields { - WixBundlePackageRef, DetectCondition, MsuKB, } @@ -39,12 +37,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleMsuPackageTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackageRef - { - get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundleMsuPackageTupleFields.WixBundlePackageRef, value); - } - public string DetectCondition { get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.DetectCondition]; diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs index 880f1f73..c585011d 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs @@ -56,9 +56,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePackageExitCodeTupleFields.ChainPackageId, value); } - public int Code + public int? Code { - get => (int)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]; + get => (int?)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]; set => this.Set((int)WixBundlePackageExitCodeTupleFields.Code, value); } @@ -68,4 +68,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePackageExitCodeTupleFields.Behavior, value.ToString()); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index 07fdc2d5..d61e12d0 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundlePackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.WixChainItemRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Type), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PayloadRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Attributes), IntermediateFieldType.Number), @@ -22,14 +21,14 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.LogPathVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Size), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallSize), IntermediateFieldType.LargeNumber), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Language), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.DisplayName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Description), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Win64), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Win64), IntermediateFieldType.Bool), }, typeof(WixBundlePackageTuple)); } @@ -41,7 +40,6 @@ namespace WixToolset.Data.Tuples public enum WixBundlePackageTupleFields { - WixChainItemRef, Type, PayloadRef, Attributes, @@ -79,6 +77,8 @@ namespace WixToolset.Data.Tuples { Permanent = 0x1, Visible = 0x2, + PerMachine = 0x4, + Win64 = 0x8, } public class WixBundlePackageTuple : IntermediateTuple @@ -93,12 +93,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundlePackageTupleFields index] => this.Fields[(int)index]; - public string WixChainItemRef - { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItemRef]; - set => this.Set((int)WixBundlePackageTupleFields.WixChainItemRef, value); - } - public WixBundlePackageType Type { get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageTupleFields.Type], true); @@ -165,9 +159,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePackageTupleFields.Size, value); } - public int InstallSize + public long? InstallSize { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.InstallSize]; + get => (long?)this.Fields[(int)WixBundlePackageTupleFields.InstallSize]; set => this.Set((int)WixBundlePackageTupleFields.InstallSize, value); } @@ -207,10 +201,12 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackwardRef, value); } - public int Win64 + public bool Win64 { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.Win64]; + get => (bool)this.Fields[(int)WixBundlePackageTupleFields.Win64]; set => this.Set((int)WixBundlePackageTupleFields.Win64, value); } + + public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs index f8752067..56ca144f 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixBundlePatchTargetCode, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.PackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.TargetCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.Attributes), IntermediateFieldType.Number), }, @@ -20,13 +20,31 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixBundlePatchTargetCodeTupleFields { - PackageId, + PackageRef, TargetCode, Attributes, } + [Flags] + public enum WixBundlePatchTargetCodeAttributes : int + { + None = 0, + + /// + /// The transform targets a specific ProductCode. + /// + TargetsProductCode = 1, + + /// + /// The transform targets a specific UpgradeCode. + /// + TargetsUpgradeCode = 2, + } + public class WixBundlePatchTargetCodeTuple : IntermediateTuple { public WixBundlePatchTargetCodeTuple() : base(TupleDefinitions.WixBundlePatchTargetCode, null, null) @@ -39,10 +57,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundlePatchTargetCodeTupleFields index] => this.Fields[(int)index]; - public string PackageId + public string PackageRef { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageId]; - set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageId, value); + get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageRef]; + set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageRef, value); } public string TargetCode @@ -51,10 +69,14 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePatchTargetCodeTupleFields.TargetCode, value); } - public int Attributes + public WixBundlePatchTargetCodeAttributes Attributes { - get => (int)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes]; - set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, value); + get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, (int)value); } + + public bool TargetsProductCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsProductCode) == WixBundlePatchTargetCodeAttributes.TargetsProductCode; + + public bool TargetsUpgradeCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode) == WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode; } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs index 5eb4a987..049ac3b5 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundlePayload, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.WixBundlePayload), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.SourceFile), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DownloadUrl), IntermediateFieldType.String), @@ -26,10 +25,10 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Thumbprint), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.CatalogRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContainerRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Package), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContentFile), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EmbeddedId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Packaging), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ParentPackagePayloadRef), IntermediateFieldType.String), }, @@ -43,7 +42,6 @@ namespace WixToolset.Data.Tuples public enum WixBundlePayloadTupleFields { - WixBundlePayload, Name, SourceFile, DownloadUrl, @@ -59,7 +57,7 @@ namespace WixToolset.Data.Tuples Thumbprint, CatalogRef, ContainerRef, - Package, + PackageRef, ContentFile, EmbeddedId, LayoutOnly, @@ -79,21 +77,15 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundlePayloadTupleFields index] => this.Fields[(int)index]; - public string WixBundlePayload - { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.WixBundlePayload]; - set => this.Set((int)WixBundlePayloadTupleFields.WixBundlePayload, value); - } - public string Name { get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Name]; set => this.Set((int)WixBundlePayloadTupleFields.Name, value); } - public string SourceFile + public IntermediateFieldPathValue SourceFile { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.SourceFile]; + get => this.Fields[(int)WixBundlePayloadTupleFields.SourceFile].AsPath(); set => this.Set((int)WixBundlePayloadTupleFields.SourceFile, value); } @@ -103,10 +95,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.DownloadUrl, value); } - public YesNoDefaultType Compressed + public bool? Compressed { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePayloadTupleFields.Compressed], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; - set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value.ToString().ToLowerInvariant()); + get => (bool?)this.Fields[(int)WixBundlePayloadTupleFields.Compressed]; + set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value); } public string UnresolvedSourceFile @@ -175,10 +167,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.ContainerRef, value); } - public string Package + public string PackageRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Package]; - set => this.Set((int)WixBundlePayloadTupleFields.Package, value); + get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PackageRef]; + set => this.Set((int)WixBundlePayloadTupleFields.PackageRef, value); } public bool ContentFile @@ -193,16 +185,16 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.EmbeddedId, value); } - public int LayoutOnly + public bool LayoutOnly { - get => (int)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly]; + get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly]; set => this.Set((int)WixBundlePayloadTupleFields.LayoutOnly, value); } - public int Packaging + public PackagingType Packaging { - get => (int)this.Fields[(int)WixBundlePayloadTupleFields.Packaging]; - set => this.Set((int)WixBundlePayloadTupleFields.Packaging, value); + get => (PackagingType)this.Fields[(int)WixBundlePayloadTupleFields.Packaging].AsNumber(); + set => this.Set((int)WixBundlePayloadTupleFields.Packaging, (int)value); } public string ParentPackagePayloadRef @@ -211,4 +203,4 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayloadRef, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs deleted file mode 100644 index ae610aac..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixBundleProperties = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleProperties, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Compressed), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.BundleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.PerMachine), IntermediateFieldType.String), - }, - typeof(WixBundlePropertiesTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixBundlePropertiesTupleFields - { - DisplayName, - LogPathVariable, - Compressed, - BundleId, - UpgradeCode, - PerMachine, - } - - public class WixBundlePropertiesTuple : IntermediateTuple - { - public WixBundlePropertiesTuple() : base(TupleDefinitions.WixBundleProperties, null, null) - { - } - - public WixBundlePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleProperties, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePropertiesTupleFields index] => this.Fields[(int)index]; - - public string DisplayName - { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.DisplayName]; - set => this.Set((int)WixBundlePropertiesTupleFields.DisplayName, value); - } - - public string LogPathVariable - { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.LogPathVariable]; - set => this.Set((int)WixBundlePropertiesTupleFields.LogPathVariable, value); - } - - public string Compressed - { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Compressed]; - set => this.Set((int)WixBundlePropertiesTupleFields.Compressed, value); - } - - public string BundleId - { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.BundleId]; - set => this.Set((int)WixBundlePropertiesTupleFields.BundleId, value); - } - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.UpgradeCode]; - set => this.Set((int)WixBundlePropertiesTupleFields.UpgradeCode, value); - } - - public string PerMachine - { - get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.PerMachine]; - set => this.Set((int)WixBundlePropertiesTupleFields.PerMachine, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs index ef620b26..e9a087f3 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs @@ -10,14 +10,12 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleRelatedPackage, new[] { + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.RelatedId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinVersion), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxVersion), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Languages), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinInclusive), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxInclusive), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.LangInclusive), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.OnlyDetect), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Attributes), IntermediateFieldType.Number), }, typeof(WixBundleRelatedPackageTuple)); } @@ -25,16 +23,26 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixBundleRelatedPackageTupleFields { + PackageRef, RelatedId, MinVersion, MaxVersion, Languages, - MinInclusive, - MaxInclusive, - LangInclusive, - OnlyDetect, + Attributes, + } + + [Flags] + public enum WixBundleRelatedPackageAttributes + { + None, + OnlyDetect = 0x1, + MinInclusive = 0x2, + MaxInclusive = 0x4, + LangInclusive = 0x8, } public class WixBundleRelatedPackageTuple : IntermediateTuple @@ -49,6 +57,12 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleRelatedPackageTupleFields index] => this.Fields[(int)index]; + public string PackageRef + { + get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.PackageRef]; + set => this.Set((int)WixBundleRelatedPackageTupleFields.PackageRef, value); + } + public string RelatedId { get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.RelatedId]; @@ -73,28 +87,18 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleRelatedPackageTupleFields.Languages, value); } - public int MinInclusive + public WixBundleRelatedPackageAttributes Attributes { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinInclusive]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.MinInclusive, value); + get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleRelatedPackageTupleFields.Attributes, (int)value); } - public int MaxInclusive - { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxInclusive]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxInclusive, value); - } + public bool MinInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MinInclusive) == WixBundleRelatedPackageAttributes.MinInclusive; - public int LangInclusive - { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.LangInclusive]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.LangInclusive, value); - } + public bool MaxInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MaxInclusive) == WixBundleRelatedPackageAttributes.MaxInclusive; - public int OnlyDetect - { - get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.OnlyDetect]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.OnlyDetect, value); - } + public bool OnlyDetect => (this.Attributes & WixBundleRelatedPackageAttributes.OnlyDetect) == WixBundleRelatedPackageAttributes.OnlyDetect; + + public bool LangInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.LangInclusive) == WixBundleRelatedPackageAttributes.LangInclusive; } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs index a11c972d..648787f9 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleRollbackBoundary, new[] { - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.WixChainItemRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Vital), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Transaction), IntermediateFieldType.Number), }, @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples { public enum WixBundleRollbackBoundaryTupleFields { - WixChainItemRef, Vital, Transaction, } @@ -39,12 +37,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleRollbackBoundaryTupleFields index] => this.Fields[(int)index]; - public string WixChainItemRef - { - get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItemRef]; - set => this.Set((int)WixBundleRollbackBoundaryTupleFields.WixChainItemRef, value); - } - public bool? Vital { get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Vital]; diff --git a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs index 3a028d16..bfe8c6e1 100644 --- a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data TupleDefinitionType.WixBundleSlipstreamMsp, new[] { - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.TargetPackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.MspPackageRef), IntermediateFieldType.String), }, typeof(WixBundleSlipstreamMspTuple)); } @@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples { public enum WixBundleSlipstreamMspTupleFields { - WixBundlePackageRef, - MspWixBundlePackageRef, + TargetPackageRef, + MspPackageRef, } public class WixBundleSlipstreamMspTuple : IntermediateTuple @@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleSlipstreamMspTupleFields index] => this.Fields[(int)index]; - public string WixBundlePackageRef + public string TargetPackageRef { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackageRef, value); + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.TargetPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspTupleFields.TargetPackageRef, value); } - public string MspWixBundlePackageRef + public string MspPackageRef { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef]; - set => this.Set((int)WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef, value); + get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.MspPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspTupleFields.MspPackageRef, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs index 8f6f760a..dcaea6bc 100644 --- a/src/WixToolset.Data/Tuples/WixBundleTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleTuple.cs @@ -10,29 +10,28 @@ namespace WixToolset.Data TupleDefinitionType.WixBundle, new[] { + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Copyright), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.AboutUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableModify), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRemove), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRepair), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpTelephone), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpTelephone), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpdateUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Compressed), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPrefixAndExtension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPrefix), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogExtension), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.IconSourceFile), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.SplashScreenSourceFile), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Condition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Tag), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Platform), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ParentName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.BundleId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ProviderKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.PerMachine), IntermediateFieldType.Bool), }, typeof(WixBundleTuple)); } @@ -40,30 +39,41 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixBundleTupleFields { + UpgradeCode, Version, Copyright, Name, + Manufacturer, + Attributes, AboutUrl, - DisableModify, - DisableRemove, - DisableRepair, - HelpTelephone, HelpUrl, - Manufacturer, + HelpTelephone, UpdateUrl, Compressed, - LogPrefixAndExtension, + LogPathVariable, + LogPrefix, + LogExtension, IconSourceFile, SplashScreenSourceFile, Condition, Tag, Platform, ParentName, - UpgradeCode, BundleId, ProviderKey, + } + + [Flags] + public enum WixBundleAttributes + { + None, + DisableModify, + DisableRemove, + SingleChangeUninstallButton, PerMachine, } @@ -79,6 +89,12 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixBundleTupleFields index] => this.Fields[(int)index]; + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode]; + set => this.Set((int)WixBundleTupleFields.UpgradeCode, value); + } + public string Version { get => (string)this.Fields[(int)WixBundleTupleFields.Version]; @@ -97,28 +113,22 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleTupleFields.Name, value); } - public string AboutUrl - { - get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl]; - set => this.Set((int)WixBundleTupleFields.AboutUrl, value); - } - - public int DisableModify + public string Manufacturer { - get => (int)this.Fields[(int)WixBundleTupleFields.DisableModify]; - set => this.Set((int)WixBundleTupleFields.DisableModify, value); + get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer]; + set => this.Set((int)WixBundleTupleFields.Manufacturer, value); } - public int DisableRemove + public WixBundleAttributes Attributes { - get => (int)this.Fields[(int)WixBundleTupleFields.DisableRemove]; - set => this.Set((int)WixBundleTupleFields.DisableRemove, value); + get => (WixBundleAttributes)this.Fields[(int)WixBundleTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleTupleFields.Attributes, (int)value); } - public int DisableRepair + public string AboutUrl { - get => (int)this.Fields[(int)WixBundleTupleFields.DisableRepair]; - set => this.Set((int)WixBundleTupleFields.DisableRepair, value); + get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl]; + set => this.Set((int)WixBundleTupleFields.AboutUrl, value); } public string HelpTelephone @@ -133,28 +143,34 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleTupleFields.HelpUrl, value); } - public string Manufacturer - { - get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer]; - set => this.Set((int)WixBundleTupleFields.Manufacturer, value); - } - public string UpdateUrl { get => (string)this.Fields[(int)WixBundleTupleFields.UpdateUrl]; set => this.Set((int)WixBundleTupleFields.UpdateUrl, value); } - public int Compressed + public bool? Compressed { - get => (int)this.Fields[(int)WixBundleTupleFields.Compressed]; + get => (bool?)this.Fields[(int)WixBundleTupleFields.Compressed]; set => this.Set((int)WixBundleTupleFields.Compressed, value); } - public string LogPrefixAndExtension + public string LogPathVariable { - get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefixAndExtension]; - set => this.Set((int)WixBundleTupleFields.LogPrefixAndExtension, value); + get => (string)this.Fields[(int)WixBundleTupleFields.LogPathVariable]; + set => this.Set((int)WixBundleTupleFields.LogPathVariable, value); + } + + public string LogPrefix + { + get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefix]; + set => this.Set((int)WixBundleTupleFields.LogPrefix, value); + } + + public string LogExtension + { + get => (string)this.Fields[(int)WixBundleTupleFields.LogExtension]; + set => this.Set((int)WixBundleTupleFields.LogExtension, value); } public string IconSourceFile @@ -181,10 +197,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleTupleFields.Tag, value); } - public string Platform + public Platform Platform { - get => (string)this.Fields[(int)WixBundleTupleFields.Platform]; - set => this.Set((int)WixBundleTupleFields.Platform, value); + get => (Platform)this.Fields[(int)WixBundleTupleFields.Platform].AsNumber(); + set => this.Set((int)WixBundleTupleFields.Platform, (int)value); } public string ParentName @@ -193,12 +209,6 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleTupleFields.ParentName, value); } - public string UpgradeCode - { - get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode]; - set => this.Set((int)WixBundleTupleFields.UpgradeCode, value); - } - public string BundleId { get => (string)this.Fields[(int)WixBundleTupleFields.BundleId]; @@ -211,10 +221,14 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleTupleFields.ProviderKey, value); } - public bool PerMachine - { - get => (bool)this.Fields[(int)WixBundleTupleFields.PerMachine]; - set => this.Set((int)WixBundleTupleFields.PerMachine, value); - } + public PackagingType DefaultPackagingType => (this.Compressed.HasValue && !this.Compressed.Value) ? PackagingType.External : PackagingType.Embedded; + + public bool DisableModify => (this.Attributes & WixBundleAttributes.DisableModify) == WixBundleAttributes.DisableModify; + + public bool DisableRemove => (this.Attributes & WixBundleAttributes.DisableRemove) == WixBundleAttributes.DisableRemove; + + public bool PerMachine => (this.Attributes & WixBundleAttributes.PerMachine) == WixBundleAttributes.PerMachine; + + public bool SingleChangeUninstallButton => (this.Attributes & WixBundleAttributes.SingleChangeUninstallButton) == WixBundleAttributes.SingleChangeUninstallButton; } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixChainTuple.cs b/src/WixToolset.Data/Tuples/WixChainTuple.cs index d8bef8cc..9343ead1 100644 --- a/src/WixToolset.Data/Tuples/WixChainTuple.cs +++ b/src/WixToolset.Data/Tuples/WixChainTuple.cs @@ -51,5 +51,11 @@ namespace WixToolset.Data.Tuples get => (WixChainAttributes)(int)this.Fields[(int)WixChainTupleFields.Attributes]; set => this.Set((int)WixChainTupleFields.Attributes, (int)value); } + + public bool DisableRollback => (this.Attributes & WixChainAttributes.DisableRollback) == WixChainAttributes.DisableRollback; + + public bool DisableSystemRestore => (this.Attributes & WixChainAttributes.DisableSystemRestore) == WixChainAttributes.DisableSystemRestore; + + public bool ParallelCache => (this.Attributes & WixChainAttributes.ParallelCache) == WixChainAttributes.ParallelCache; } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs index 47cccf25..de6f47b9 100644 --- a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixComponentSearch, new[] { - new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Guid), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.ProductCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Attributes), IntermediateFieldType.Number), @@ -21,14 +20,23 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixComponentSearchTupleFields { - WixSearchRef, Guid, ProductCode, Attributes, } + [Flags] + public enum WixComponentSearchAttributes + { + KeyPath = 0x1, + State = 0x2, + WantDirectory = 0x4, + } + public class WixComponentSearchTuple : IntermediateTuple { public WixComponentSearchTuple() : base(TupleDefinitions.WixComponentSearch, null, null) @@ -41,12 +49,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixComponentSearchTupleFields index] => this.Fields[(int)index]; - public string WixSearchRef - { - get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearchRef]; - set => this.Set((int)WixComponentSearchTupleFields.WixSearchRef, value); - } - public string Guid { get => (string)this.Fields[(int)WixComponentSearchTupleFields.Guid]; @@ -59,10 +61,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixComponentSearchTupleFields.ProductCode, value); } - public int Attributes + public WixComponentSearchAttributes Attributes { - get => (int)this.Fields[(int)WixComponentSearchTupleFields.Attributes]; - set => this.Set((int)WixComponentSearchTupleFields.Attributes, value); + get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixComponentSearchTupleFields.Attributes, (int)value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs b/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs new file mode 100644 index 00000000..1953594e --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs @@ -0,0 +1,87 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixDependencyProvider = new IntermediateTupleDefinition( + TupleDefinitionType.WixDependencyProvider.ToString(), + new[] + { + new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixDependencyProviderTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + using WixToolset.Data; + + public enum WixDependencyProviderTupleFields + { + ComponentRef, + ProviderKey, + Version, + DisplayName, + Attributes, + } + + [Flags] + public enum WixDependencyProviderAttributes + { + ProvidesAttributesBundle = 0x10000 + } + + public class WixDependencyProviderTuple : IntermediateTuple + { + public WixDependencyProviderTuple() : base(TupleDefinitions.WixDependencyProvider, null, null) + { + } + + public WixDependencyProviderTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDependencyProvider, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDependencyProviderTupleFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => this.Fields[(int)WixDependencyProviderTupleFields.ComponentRef].AsString(); + set => this.Set((int)WixDependencyProviderTupleFields.ComponentRef, value); + } + + public string ProviderKey + { + get => this.Fields[(int)WixDependencyProviderTupleFields.ProviderKey].AsString(); + set => this.Set((int)WixDependencyProviderTupleFields.ProviderKey, value); + } + + public string Version + { + get => this.Fields[(int)WixDependencyProviderTupleFields.Version].AsString(); + set => this.Set((int)WixDependencyProviderTupleFields.Version, value); + } + + public string DisplayName + { + get => this.Fields[(int)WixDependencyProviderTupleFields.DisplayName].AsString(); + set => this.Set((int)WixDependencyProviderTupleFields.DisplayName, value); + } + + public WixDependencyProviderAttributes Attributes + { + get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderTupleFields.Attributes]; + set => this.Set((int)WixDependencyProviderTupleFields.Attributes, (int)value); + } + + public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle; + } +} diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs index 27c5cc83..4c0cedf3 100644 --- a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixFileSearch, new[] { - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Path), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinVersion), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxVersion), IntermediateFieldType.String), @@ -27,9 +26,10 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixFileSearchTupleFields { - WixSearchRef, Path, MinVersion, MaxVersion, @@ -41,6 +41,21 @@ namespace WixToolset.Data.Tuples Attributes, } + [Flags] + public enum WixFileSearchAttributes + { + Default = 0x001, + MinVersionInclusive = 0x002, + MaxVersionInclusive = 0x004, + MinSizeInclusive = 0x008, + MaxSizeInclusive = 0x010, + MinDateInclusive = 0x020, + MaxDateInclusive = 0x040, + WantVersion = 0x080, + WantExists = 0x100, + IsDirectory = 0x200, + } + public class WixFileSearchTuple : IntermediateTuple { public WixFileSearchTuple() : base(TupleDefinitions.WixFileSearch, null, null) @@ -53,12 +68,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixFileSearchTupleFields index] => this.Fields[(int)index]; - public string WixSearchRef - { - get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearchRef]; - set => this.Set((int)WixFileSearchTupleFields.WixSearchRef, value); - } - public string Path { get => (string)this.Fields[(int)WixFileSearchTupleFields.Path]; @@ -107,10 +116,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixFileSearchTupleFields.Languages, value); } - public int Attributes + public WixFileSearchAttributes Attributes { - get => (int)this.Fields[(int)WixFileSearchTupleFields.Attributes]; - set => this.Set((int)WixFileSearchTupleFields.Attributes, value); + get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixFileSearchTupleFields.Attributes, (int)value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs b/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs deleted file mode 100644 index bcc0ad78..00000000 --- a/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixPackageFeatureInfo = new IntermediateTupleDefinition( - TupleDefinitionType.WixPackageFeatureInfo, - new[] - { - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Package), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Feature), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Size), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Display), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Level), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Directory), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Attributes), IntermediateFieldType.String), - }, - typeof(WixPackageFeatureInfoTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixPackageFeatureInfoTupleFields - { - Package, - Feature, - Size, - Parent, - Title, - Description, - Display, - Level, - Directory, - Attributes, - } - - public class WixPackageFeatureInfoTuple : IntermediateTuple - { - public WixPackageFeatureInfoTuple() : base(TupleDefinitions.WixPackageFeatureInfo, null, null) - { - } - - public WixPackageFeatureInfoTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageFeatureInfo, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPackageFeatureInfoTupleFields index] => this.Fields[(int)index]; - - public string Package - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Package]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Package, value); - } - - public string Feature - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Feature]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Feature, value); - } - - public string Size - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Size]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Size, value); - } - - public string Parent - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Parent]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Parent, value); - } - - public string Title - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Title]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Title, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Description]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Description, value); - } - - public string Display - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Display]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Display, value); - } - - public string Level - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Level]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Level, value); - } - - public string Directory - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Directory]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Directory, value); - } - - public string Attributes - { - get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Attributes]; - set => this.Set((int)WixPackageFeatureInfoTupleFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs deleted file mode 100644 index 56f6523b..00000000 --- a/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs +++ /dev/null @@ -1,180 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixPackageProperties = new IntermediateTupleDefinition( - TupleDefinitionType.WixPackageProperties, - new[] - { - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Package), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Vital), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DownloadSize), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageSize), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstalledSize), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Permanent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Compressed), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayInternalUI), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstallCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Cache), IntermediateFieldType.String), - }, - typeof(WixPackagePropertiesTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixPackagePropertiesTupleFields - { - Package, - Vital, - DisplayName, - Description, - DownloadSize, - PackageSize, - InstalledSize, - PackageType, - Permanent, - LogPathVariable, - RollbackLogPathVariable, - Compressed, - DisplayInternalUI, - ProductCode, - UpgradeCode, - Version, - InstallCondition, - Cache, - } - - public class WixPackagePropertiesTuple : IntermediateTuple - { - public WixPackagePropertiesTuple() : base(TupleDefinitions.WixPackageProperties, null, null) - { - } - - public WixPackagePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageProperties, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPackagePropertiesTupleFields index] => this.Fields[(int)index]; - - public string Package - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Package]; - set => this.Set((int)WixPackagePropertiesTupleFields.Package, value); - } - - public string Vital - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Vital]; - set => this.Set((int)WixPackagePropertiesTupleFields.Vital, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayName]; - set => this.Set((int)WixPackagePropertiesTupleFields.DisplayName, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Description]; - set => this.Set((int)WixPackagePropertiesTupleFields.Description, value); - } - - public string DownloadSize - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DownloadSize]; - set => this.Set((int)WixPackagePropertiesTupleFields.DownloadSize, value); - } - - public string PackageSize - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageSize]; - set => this.Set((int)WixPackagePropertiesTupleFields.PackageSize, value); - } - - public string InstalledSize - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstalledSize]; - set => this.Set((int)WixPackagePropertiesTupleFields.InstalledSize, value); - } - - public string PackageType - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageType]; - set => this.Set((int)WixPackagePropertiesTupleFields.PackageType, value); - } - - public string Permanent - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Permanent]; - set => this.Set((int)WixPackagePropertiesTupleFields.Permanent, value); - } - - public string LogPathVariable - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.LogPathVariable]; - set => this.Set((int)WixPackagePropertiesTupleFields.LogPathVariable, value); - } - - public string RollbackLogPathVariable - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.RollbackLogPathVariable]; - set => this.Set((int)WixPackagePropertiesTupleFields.RollbackLogPathVariable, value); - } - - public string Compressed - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Compressed]; - set => this.Set((int)WixPackagePropertiesTupleFields.Compressed, value); - } - - public string DisplayInternalUI - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayInternalUI]; - set => this.Set((int)WixPackagePropertiesTupleFields.DisplayInternalUI, value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.ProductCode]; - set => this.Set((int)WixPackagePropertiesTupleFields.ProductCode, value); - } - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.UpgradeCode]; - set => this.Set((int)WixPackagePropertiesTupleFields.UpgradeCode, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Version]; - set => this.Set((int)WixPackagePropertiesTupleFields.Version, value); - } - - public string InstallCondition - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstallCondition]; - set => this.Set((int)WixPackagePropertiesTupleFields.InstallCondition, value); - } - - public string Cache - { - get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Cache]; - set => this.Set((int)WixPackagePropertiesTupleFields.Cache, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs deleted file mode 100644 index c992bb4f..00000000 --- a/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixPayloadProperties = new IntermediateTupleDefinition( - TupleDefinitionType.WixPayloadProperties, - new[] - { - new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Payload), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Package), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Container), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Size), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.LayoutOnly), IntermediateFieldType.String), - }, - typeof(WixPayloadPropertiesTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixPayloadPropertiesTupleFields - { - Payload, - Package, - Container, - Name, - Size, - DownloadUrl, - LayoutOnly, - } - - public class WixPayloadPropertiesTuple : IntermediateTuple - { - public WixPayloadPropertiesTuple() : base(TupleDefinitions.WixPayloadProperties, null, null) - { - } - - public WixPayloadPropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPayloadProperties, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPayloadPropertiesTupleFields index] => this.Fields[(int)index]; - - public string Payload - { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Payload]; - set => this.Set((int)WixPayloadPropertiesTupleFields.Payload, value); - } - - public string Package - { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Package]; - set => this.Set((int)WixPayloadPropertiesTupleFields.Package, value); - } - - public string Container - { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Container]; - set => this.Set((int)WixPayloadPropertiesTupleFields.Container, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Name]; - set => this.Set((int)WixPayloadPropertiesTupleFields.Name, value); - } - - public string Size - { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Size]; - set => this.Set((int)WixPayloadPropertiesTupleFields.Size, value); - } - - public string DownloadUrl - { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.DownloadUrl]; - set => this.Set((int)WixPayloadPropertiesTupleFields.DownloadUrl, value); - } - - public string LayoutOnly - { - get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.LayoutOnly]; - set => this.Set((int)WixPayloadPropertiesTupleFields.LayoutOnly, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs index 4a13f47d..22e96365 100644 --- a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixProductSearch, new[] { - new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Guid), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Attributes), IntermediateFieldType.Number), }, @@ -20,13 +19,24 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixProductSearchTupleFields { - WixSearchRef, Guid, Attributes, } + [Flags] + public enum WixProductSearchAttributes + { + Version = 0x1, + Language = 0x2, + State = 0x4, + Assignment = 0x8, + UpgradeCode = 0x10, + } + public class WixProductSearchTuple : IntermediateTuple { public WixProductSearchTuple() : base(TupleDefinitions.WixProductSearch, null, null) @@ -39,22 +49,16 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixProductSearchTupleFields index] => this.Fields[(int)index]; - public string WixSearchRef - { - get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearchRef]; - set => this.Set((int)WixProductSearchTupleFields.WixSearchRef, value); - } - public string Guid { get => (string)this.Fields[(int)WixProductSearchTupleFields.Guid]; set => this.Set((int)WixProductSearchTupleFields.Guid, value); } - public int Attributes + public WixProductSearchAttributes Attributes { - get => (int)this.Fields[(int)WixProductSearchTupleFields.Attributes]; - set => this.Set((int)WixProductSearchTupleFields.Attributes, value); + get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixProductSearchTupleFields.Attributes, (int)value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs index c88d6982..6bf43a00 100644 --- a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixRegistrySearch, new[] { - new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Root), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Value), IntermediateFieldType.String), @@ -22,15 +21,27 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { + using System; + public enum WixRegistrySearchTupleFields { - WixSearchRef, Root, Key, Value, Attributes, } + [Flags] + public enum WixRegistrySearchAttributes + { + Raw = 0x01, + Compatible = 0x02, + ExpandEnvironmentVariables = 0x04, + WantValue = 0x08, + WantExists = 0x10, + Win64 = 0x20, + } + public class WixRegistrySearchTuple : IntermediateTuple { public WixRegistrySearchTuple() : base(TupleDefinitions.WixRegistrySearch, null, null) @@ -43,16 +54,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixRegistrySearchTupleFields index] => this.Fields[(int)index]; - public string WixSearchRef + public RegistryRootType Root { - get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearchRef]; - set => this.Set((int)WixRegistrySearchTupleFields.WixSearchRef, value); - } - - public int Root - { - get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Root]; - set => this.Set((int)WixRegistrySearchTupleFields.Root, value); + get => (RegistryRootType)this.Fields[(int)WixRegistrySearchTupleFields.Root].AsNumber(); + set => this.Set((int)WixRegistrySearchTupleFields.Root, (int)value); } public string Key @@ -67,10 +72,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixRegistrySearchTupleFields.Value, value); } - public int Attributes + public WixRegistrySearchAttributes Attributes { - get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Attributes]; - set => this.Set((int)WixRegistrySearchTupleFields.Attributes, value); + get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixRegistrySearchTupleFields.Attributes, (int)value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs index b3d85c8a..28a14ddd 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs @@ -2,6 +2,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows { + using WixToolset.Data.Tuples; + /// /// Specialization of a row for the WixApprovedExeForElevation table. /// @@ -61,9 +63,9 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Gets or sets the attibutes. /// /// The BundleApprovedExeForElevationAttributes. - public BundleApprovedExeForElevationAttributes Attributes + public WixApprovedExeForElevationAttributes Attributes { - get { return (BundleApprovedExeForElevationAttributes)this.Fields[3].Data; } + get { return (WixApprovedExeForElevationAttributes)this.Fields[3].Data; } set { this.Fields[3].Data = (int)value; } } @@ -72,7 +74,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// public bool Win64 { - get { return BundleApprovedExeForElevationAttributes.Win64 == (this.Attributes & BundleApprovedExeForElevationAttributes.Win64); } + get { return WixApprovedExeForElevationAttributes.Win64 == (this.Attributes & WixApprovedExeForElevationAttributes.Win64); } } } } diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs index 95fc0f54..241c1f7f 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs @@ -2,6 +2,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows { + using System; using WixToolset.Data.Tuples; /// @@ -97,7 +98,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// public bool Repairable { - get { return 0 != (this.Attributes & WixBundleExePackageAttributes.Repairable); } + get { return !String.IsNullOrEmpty(this.RepairCommand); } } } } diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs index fdd2b6cf..5f07072d 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs @@ -126,13 +126,5 @@ namespace WixToolset.Data.WindowsInstaller.Rows { get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine); } } - - /// - /// Gets the suppress loose file payload generation of a package. - /// - public bool SuppressLooseFilePayloadGeneration - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.SuppressLooseFilePayloadGeneration); } - } } } diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs index 6e05e4b7..84d13c43 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs @@ -3,25 +3,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows { using System; - - /// - /// Attributes for the PatchTargetCode table. - /// - [Flags] - public enum WixBundlePatchTargetCodeAttributes : int - { - None = 0, - - /// - /// The transform targets a specific ProductCode. - /// - TargetsProductCode = 1, - - /// - /// The transform targets a specific UpgradeCode. - /// - TargetsUpgradeCode = 2, - } + using WixToolset.Data.Tuples; /// /// Specialization of a row for the PatchTargetCode table. -- cgit v1.2.3-55-g6feb From 7e87a6b75d0570c3ebfbf0e537fcf04e1cf84224 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 7 Oct 2019 07:33:18 -0700 Subject: Support tagging tuples and definitions --- src/WixToolset.Data/IntermediateTuple.cs | 159 ++++++++++++++++++++ src/WixToolset.Data/IntermediateTupleDefinition.cs | 163 ++++++++++++++++++++- src/test/WixToolsetTest.Data/SerializeFixture.cs | 100 ++++++++++++- src/test/WixToolsetTest.Data/TagFixture.cs | 101 +++++++++++++ 4 files changed, 519 insertions(+), 4 deletions(-) create mode 100644 src/test/WixToolsetTest.Data/TagFixture.cs (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs index bc46e3b4..8a5858ee 100644 --- a/src/WixToolset.Data/IntermediateTuple.cs +++ b/src/WixToolset.Data/IntermediateTuple.cs @@ -9,6 +9,8 @@ namespace WixToolset.Data [DebuggerDisplay("{DebuggerDisplay,nq}")] public class IntermediateTuple { + private object tags; + public IntermediateTuple(IntermediateTupleDefinition definition) : this(definition, null, null) { } @@ -33,12 +35,132 @@ namespace WixToolset.Data private string DebuggerDisplay => $"{this.Definition?.Name} {this.Id?.Id}"; + public bool AddTag(string add) + { + if (this.tags == null) + { + this.tags = add; + } + else if (this.tags is string tag) + { + if (tag == add) + { + return false; + } + + this.tags = new[] { tag, add }; + } + else + { + var tagsArray = (string[])this.tags; + var array = new string[tagsArray.Length + 1]; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == add) + { + return false; + } + + array[i] = tagsArray[i]; + } + + array[tagsArray.Length] = add; + + this.tags = array; + } + + return true; + } + + public bool HasTag(string has) + { + if (this.tags == null) + { + return false; + } + else if (this.tags is string tag) + { + return tag == has; + } + else + { + foreach (var element in (string[])this.tags) + { + if (element == has) + { + return true; + } + } + } + + return false; + } + + public bool RemoveTag(string remove) + { + if (this.tags is string tag) + { + if (tag == remove) + { + this.tags = null; + return true; + } + } + else if (this.tags is string[] tagsArray) + { + if (tagsArray.Length == 2) + { + if (tagsArray[0] == remove) + { + this.tags = tagsArray[1]; + return true; + } + else if (tagsArray[1] == remove) + { + this.tags = tagsArray[0]; + return true; + } + } + else + { + var array = new string[tagsArray.Length - 1]; + var arrayIndex = 0; + var found = false; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == remove) + { + found = true; + continue; + } + else if (arrayIndex == array.Length) + { + break; + } + + array[arrayIndex++] = tagsArray[i]; + } + + if (found) + { + this.tags = array; + return true; + } + } + } + + return false; + } + internal static IntermediateTuple Deserialize(ITupleDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) { var definitionName = jsonObject.GetValueOrDefault("type"); var idJson = jsonObject.GetValueOrDefault("id"); var sourceLineNumbersJson = jsonObject.GetValueOrDefault("ln"); var fieldsJson = jsonObject.GetValueOrDefault("fields"); + var tagsJson = jsonObject.GetValueOrDefault("tags"); var id = (idJson == null) ? null : Identifier.Deserialize(idJson); var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); @@ -54,6 +176,25 @@ namespace WixToolset.Data } } + if (tagsJson == null || tagsJson.Count == 0) + { + } + else if (tagsJson.Count == 1) + { + tuple.tags = (string)tagsJson[0]; + } + else + { + var tags = new string[tagsJson.Count]; + + for (var i = 0; i < tagsJson.Count; ++i) + { + tags[i] = (string)tagsJson[i]; + } + + tuple.tags = tags; + } + return tuple; } @@ -86,6 +227,24 @@ namespace WixToolset.Data jsonObject.Add("fields", fieldsJson); + if (this.tags is string || this.tags is string[]) + { + JsonArray tagsJson; + + if (this.tags is string tag) + { + tagsJson = new JsonArray(1) { tag }; + } + else + { + var array = (string[])this.tags; + tagsJson = new JsonArray(array.Length); + tagsJson.AddRange(array); + } + + jsonObject.Add("tags", tagsJson); + } + return jsonObject; } } diff --git a/src/WixToolset.Data/IntermediateTupleDefinition.cs b/src/WixToolset.Data/IntermediateTupleDefinition.cs index bc49bc7b..eb05c28b 100644 --- a/src/WixToolset.Data/IntermediateTupleDefinition.cs +++ b/src/WixToolset.Data/IntermediateTupleDefinition.cs @@ -7,6 +7,8 @@ namespace WixToolset.Data public class IntermediateTupleDefinition { + private object tags; + public IntermediateTupleDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) : this(TupleDefinitionType.MustBeFromAnExtension, name, 0, fieldDefinitions, strongTupleType) { @@ -53,11 +55,131 @@ namespace WixToolset.Data return result; } + public bool AddTag(string add) + { + if (this.tags == null) + { + this.tags = add; + } + else if (this.tags is string tag) + { + if (tag == add) + { + return false; + } + + this.tags = new[] { tag, add }; + } + else + { + var tagsArray = (string[])this.tags; + var array = new string[tagsArray.Length + 1]; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == add) + { + return false; + } + + array[i] = tagsArray[i]; + } + + array[tagsArray.Length] = add; + + this.tags = array; + } + + return true; + } + + public bool HasTag(string has) + { + if (this.tags == null) + { + return false; + } + else if (this.tags is string tag) + { + return tag == has; + } + else + { + foreach (var element in (string[])this.tags) + { + if (element == has) + { + return true; + } + } + } + + return false; + } + + public bool RemoveTag(string remove) + { + if (this.tags is string tag) + { + if (tag == remove) + { + this.tags = null; + return true; + } + } + else if (this.tags is string[] tagsArray) + { + if (tagsArray.Length == 2) + { + if (tagsArray[0] == remove) + { + this.tags = tagsArray[1]; + return true; + } + else if (tagsArray[1] == remove) + { + this.tags = tagsArray[0]; + return true; + } + } + else + { + var array = new string[tagsArray.Length - 1]; + var arrayIndex = 0; + var found = false; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == remove) + { + found = true; + continue; + } + else if (arrayIndex == array.Length) + { + break; + } + + array[arrayIndex++] = tagsArray[i]; + } + + if (found) + { + this.tags = array; + return true; + } + } + } + + return false; + } + internal static IntermediateTupleDefinition Deserialize(JsonObject jsonObject) { var name = jsonObject.GetValueOrDefault("name"); var revision = jsonObject.GetValueOrDefault("rev", 0); var definitionsJson = jsonObject.GetValueOrDefault("fields"); + var tagsJson = jsonObject.GetValueOrDefault("tags"); var fieldDefinitions = new IntermediateFieldDefinition[definitionsJson.Count]; @@ -69,7 +191,28 @@ namespace WixToolset.Data fieldDefinitions[i] = new IntermediateFieldDefinition(fieldName, fieldType); } - return new IntermediateTupleDefinition(name, revision, fieldDefinitions, null); + var definition = new IntermediateTupleDefinition(name, revision, fieldDefinitions, null); + + if (tagsJson == null || tagsJson.Count == 0) + { + } + else if (tagsJson.Count == 1) + { + definition.tags = (string)tagsJson[0]; + } + else + { + var tags = new string[tagsJson.Count]; + + for (var i = 0; i < tagsJson.Count; ++i) + { + tags[i] = (string)tagsJson[i]; + } + + definition.tags = tags; + } + + return definition; } internal JsonObject Serialize() @@ -103,6 +246,24 @@ namespace WixToolset.Data jsonObject.Add("fields", fieldsJson); + if (this.tags is string || this.tags is string[]) + { + JsonArray tagsJson; + + if (this.tags is string tag) + { + tagsJson = new JsonArray(1) { tag }; + } + else + { + var array = (string[])this.tags; + tagsJson = new JsonArray(array.Length); + tagsJson.AddRange(array); + } + + jsonObject.Add("tags", tagsJson); + } + return jsonObject; } } diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 527359fe..221ca19c 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -55,7 +55,7 @@ namespace WixToolsetTest.Data new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), }; - var tupleDef = new IntermediateTupleDefinition("CustomDef", fieldDefs, null); + var tupleDef = new IntermediateTupleDefinition("CustomDef2", fieldDefs, null); var tuple = tupleDef.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT")); tuple.Set(0, "foo"); @@ -119,7 +119,93 @@ namespace WixToolsetTest.Data new IntermediateFieldDefinition("D", IntermediateFieldType.String), }; - var tupleDef2 = new IntermediateTupleDefinition("CustomDef", 1, fieldDefs2, null); + var tupleDef2 = new IntermediateTupleDefinition("CustomDef2", 1, fieldDefs2, null); + + var tuple2 = tupleDef2.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT2")); + tuple2.Set(0, "bar"); + tuple2.Set(1, 3); + tuple2.Set(2, false); + tuple2.Set(3, "baz"); + + var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); + section2.Tuples.Add(tuple2); + + var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null, null); + + // Save + var path1 = Path.GetTempFileName(); + var path2 = Path.GetTempFileName(); + try + { + intermediate1.Save(path1); + intermediate2.Save(path2); + + var loaded = Intermediate.Load(new[] { path1, path2 }); + + var loaded1 = loaded.First(); + var loaded2 = loaded.Skip(1).Single(); + + var loadedTuple1 = loaded1.Sections.Single().Tuples.Single(); + var loadedTuple2 = loaded2.Sections.Single().Tuples.Single(); + + Assert.Equal("foo", loadedTuple1.AsString(0)); + Assert.Equal(2, loadedTuple1[1].AsNumber()); + Assert.True(loadedTuple1[2].AsBool()); + + Assert.Equal("bar", loadedTuple2.AsString(0)); + Assert.Equal(3, loadedTuple2[1].AsNumber()); + Assert.False(loadedTuple2[2].AsBool()); + Assert.Equal("baz", loadedTuple2.AsString(3)); + } + finally + { + File.Delete(path2); + File.Delete(path1); + } + } + + [Fact] + public void CanSaveAndLoadMultipleIntermediateWithCustomDefinitionsAndTags() + { + var sln = new SourceLineNumber("test.wxs", 1); + + // Intermediate #1 + var fieldDefs = new[] + { + new IntermediateFieldDefinition("A", IntermediateFieldType.String), + new IntermediateFieldDefinition("B", IntermediateFieldType.Number), + new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), + }; + + var tupleDef = new IntermediateTupleDefinition("CustomDef", fieldDefs, null); + + tupleDef.AddTag("customDef"); + + var tuple = tupleDef.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT")); + tuple.Set(0, "foo"); + tuple.Set(1, 2); + tuple.Set(2, true); + + tuple.AddTag("tuple1tag"); + + var section = new IntermediateSection("test", SectionType.Product, 65001); + section.Tuples.Add(tuple); + + var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null, null); + + // Intermediate #2 + var fieldDefs2 = new[] + { + new IntermediateFieldDefinition("A", IntermediateFieldType.String), + new IntermediateFieldDefinition("B", IntermediateFieldType.Number), + new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("D", IntermediateFieldType.String), + }; + + var tupleDef2 = new IntermediateTupleDefinition("CustomDef2", 1, fieldDefs2, null); + + tupleDef2.AddTag("customDef2"); + tupleDef2.AddTag("customDef2 tag2"); var tuple2 = tupleDef2.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT2")); tuple2.Set(0, "bar"); @@ -127,6 +213,9 @@ namespace WixToolsetTest.Data tuple2.Set(2, false); tuple2.Set(3, "baz"); + tuple2.AddTag("tuple2tag1"); + tuple2.AddTag("tuple2tag2"); + var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); section2.Tuples.Add(tuple2); @@ -148,15 +237,20 @@ namespace WixToolsetTest.Data var loadedTuple1 = loaded1.Sections.Single().Tuples.Single(); var loadedTuple2 = loaded2.Sections.Single().Tuples.Single(); + Assert.True(loadedTuple1.Definition.HasTag("customDef")); Assert.Equal("foo", loadedTuple1.AsString(0)); Assert.Equal(2, loadedTuple1[1].AsNumber()); Assert.True(loadedTuple1[2].AsBool()); - Assert.Null(loadedTuple1.AsString(3)); + Assert.True(loadedTuple1.HasTag("tuple1tag")); + Assert.True(loadedTuple2.Definition.HasTag("customDef2")); + Assert.True(loadedTuple2.Definition.HasTag("customDef2 tag2")); Assert.Equal("bar", loadedTuple2.AsString(0)); Assert.Equal(3, loadedTuple2[1].AsNumber()); Assert.False(loadedTuple2[2].AsBool()); Assert.Equal("baz", loadedTuple2.AsString(3)); + Assert.True(loadedTuple2.HasTag("tuple2tag1")); + Assert.True(loadedTuple2.HasTag("tuple2tag2")); } finally { diff --git a/src/test/WixToolsetTest.Data/TagFixture.cs b/src/test/WixToolsetTest.Data/TagFixture.cs new file mode 100644 index 00000000..4c0426a0 --- /dev/null +++ b/src/test/WixToolsetTest.Data/TagFixture.cs @@ -0,0 +1,101 @@ +// 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. + +namespace WixToolsetTest.Data +{ + using WixToolset.Data; + using Xunit; + + public class TagFixture + { + [Fact] + public void CanAddSingleTag() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test")); + Assert.True(tuple.HasTag("test")); + } + + [Fact] + public void CanAddDuplicateTag() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test")); + Assert.False(tuple.AddTag("test")); + } + + [Fact] + public void CanAddRemoveSingleTag() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test")); + Assert.True(tuple.RemoveTag("test")); + Assert.False(tuple.HasTag("test")); + } + + [Fact] + public void CanAddMultipleTags() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test1")); + Assert.True(tuple.AddTag("test2")); + Assert.True(tuple.HasTag("test1")); + Assert.True(tuple.HasTag("test2")); + } + + [Fact] + public void CanAddRemoveMultipleTags() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test1")); + Assert.True(tuple.AddTag("test2")); + Assert.True(tuple.RemoveTag("test2")); + Assert.False(tuple.HasTag("test2")); + Assert.True(tuple.RemoveTag("test1")); + Assert.False(tuple.HasTag("test1")); + } + + [Fact] + public void CanAddRemoveMissingTags() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test1")); + Assert.True(tuple.AddTag("test2")); + Assert.False(tuple.RemoveTag("test3")); + } + + [Fact] + public void CanAdd2AndRemoveAllTags() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test1")); + Assert.True(tuple.AddTag("test2")); + Assert.True(tuple.RemoveTag("test1")); + Assert.True(tuple.RemoveTag("test2")); + } + + [Fact] + public void CanAdd3AndRemoveAllTags() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test1")); + Assert.True(tuple.AddTag("test2")); + Assert.True(tuple.AddTag("test3")); + Assert.True(tuple.RemoveTag("test1")); + Assert.True(tuple.RemoveTag("test3")); + Assert.True(tuple.RemoveTag("test2")); + } + + [Fact] + public void CanAdd3AndRemoveMissingTags() + { + var tuple = TupleDefinitions.File.CreateTuple(); + Assert.True(tuple.AddTag("test1")); + Assert.True(tuple.AddTag("test2")); + Assert.True(tuple.AddTag("test3")); + Assert.False(tuple.RemoveTag("test4")); + Assert.True(tuple.RemoveTag("test1")); + Assert.True(tuple.RemoveTag("test3")); + Assert.True(tuple.RemoveTag("test2")); + } + } +} -- cgit v1.2.3-55-g6feb From 3eb21f9eba6e3fd9ab7902cdfe6cb4971244f6b6 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 7 Oct 2019 13:20:47 -0700 Subject: Fix AppSearch related tuples --- src/WixToolset.Data/Tuples/AppSearchTuple.cs | 10 +++++----- src/WixToolset.Data/Tuples/CompLocatorTuple.cs | 8 ++++++++ src/WixToolset.Data/Tuples/IniLocatorTuple.cs | 8 ++++---- src/WixToolset.Data/Tuples/SignatureTuple.cs | 8 -------- 4 files changed, 17 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/AppSearchTuple.cs b/src/WixToolset.Data/Tuples/AppSearchTuple.cs index 5c972fa0..098b4946 100644 --- a/src/WixToolset.Data/Tuples/AppSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/AppSearchTuple.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.AppSearch, new[] { - new IntermediateFieldDefinition(nameof(AppSearchTupleFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppSearchTupleFields.PropertyRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(AppSearchTupleFields.SignatureRef), IntermediateFieldType.String), }, typeof(AppSearchTuple)); @@ -21,7 +21,7 @@ namespace WixToolset.Data.Tuples { public enum AppSearchTupleFields { - Property, + PropertyRef, SignatureRef, } @@ -37,10 +37,10 @@ namespace WixToolset.Data.Tuples public IntermediateField this[AppSearchTupleFields index] => this.Fields[(int)index]; - public string Property + public string PropertyRef { - get => (string)this.Fields[(int)AppSearchTupleFields.Property]; - set => this.Set((int)AppSearchTupleFields.Property, value); + get => (string)this.Fields[(int)AppSearchTupleFields.PropertyRef]; + set => this.Set((int)AppSearchTupleFields.PropertyRef, value); } public string SignatureRef diff --git a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs index 4a92d132..746d3073 100644 --- a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs @@ -10,6 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.CompLocator, new[] { + new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.SignatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.ComponentId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.Type), IntermediateFieldType.Number), }, @@ -21,6 +22,7 @@ namespace WixToolset.Data.Tuples { public enum CompLocatorTupleFields { + SignatureRef, ComponentId, Type, } @@ -37,6 +39,12 @@ namespace WixToolset.Data.Tuples public IntermediateField this[CompLocatorTupleFields index] => this.Fields[(int)index]; + public string SignatureRef + { + get => (string)this.Fields[(int)IniLocatorTupleFields.SignatureRef]; + set => this.Set((int)IniLocatorTupleFields.SignatureRef, value); + } + public string ComponentId { get => (string)this.Fields[(int)CompLocatorTupleFields.ComponentId]; diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs index b95bcdf2..0bb670c6 100644 --- a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs @@ -69,15 +69,15 @@ namespace WixToolset.Data.Tuples set => this.Set((int)IniLocatorTupleFields.Key, value); } - public int Field + public int? Field { - get => (int)this.Fields[(int)IniLocatorTupleFields.Field]; + get => (int?)this.Fields[(int)IniLocatorTupleFields.Field]; set => this.Set((int)IniLocatorTupleFields.Field, value); } - public int Type + public int? Type { - get => (int)this.Fields[(int)IniLocatorTupleFields.Type]; + get => this.Fields[(int)IniLocatorTupleFields.Type].AsNullableNumber(); set => this.Set((int)IniLocatorTupleFields.Type, value); } } diff --git a/src/WixToolset.Data/Tuples/SignatureTuple.cs b/src/WixToolset.Data/Tuples/SignatureTuple.cs index 59c40d99..db380bb6 100644 --- a/src/WixToolset.Data/Tuples/SignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/SignatureTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.Signature, new[] { - new IntermediateFieldDefinition(nameof(SignatureTupleFields.Signature), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(SignatureTupleFields.FileName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinVersion), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxVersion), IntermediateFieldType.String), @@ -28,7 +27,6 @@ namespace WixToolset.Data.Tuples { public enum SignatureTupleFields { - Signature, FileName, MinVersion, MaxVersion, @@ -51,12 +49,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[SignatureTupleFields index] => this.Fields[(int)index]; - public string Signature - { - get => (string)this.Fields[(int)SignatureTupleFields.Signature]; - set => this.Set((int)SignatureTupleFields.Signature, value); - } - public string FileName { get => (string)this.Fields[(int)SignatureTupleFields.FileName]; -- cgit v1.2.3-55-g6feb From 39c098e3dc7767be788f7d3b69ff62fb2f38af63 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 7 Oct 2019 14:08:10 -0700 Subject: Remove unused field from WixFeatureGroup --- src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs index e2ae6b14..424bddb7 100644 --- a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixFeatureGroup = new IntermediateTupleDefinition( TupleDefinitionType.WixFeatureGroup, - new[] - { - new IntermediateFieldDefinition(nameof(WixFeatureGroupTupleFields.WixFeatureGroup), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(WixFeatureGroupTuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum WixFeatureGroupTupleFields { - WixFeatureGroup, } public class WixFeatureGroupTuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixFeatureGroupTupleFields index] => this.Fields[(int)index]; - - public string WixFeatureGroup - { - get => (string)this.Fields[(int)WixFeatureGroupTupleFields.WixFeatureGroup]; - set => this.Set((int)WixFeatureGroupTupleFields.WixFeatureGroup, value); - } - } + } } \ No newline at end of file -- cgit v1.2.3-55-g6feb From aee0dd90aad9511c8563e5a343a98363f61148d9 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 7 Oct 2019 14:40:29 -0700 Subject: Fix ServiceType enum values --- src/WixToolset.Data/Tuples/ServiceInstallTuple.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs index 8b9410b4..9bf9afd2 100644 --- a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs @@ -53,9 +53,9 @@ namespace WixToolset.Data.Tuples { KernelDriver, SystemDriver, - OwnProcess = 4, - ShareProcess = 8, - InteractiveProcess = 256, + OwnProcess = 0x10, + ShareProcess = 0x20, + InteractiveProcess = 0x100, } public enum ServiceStartType -- cgit v1.2.3-55-g6feb From 20bff30fa767a4de768fe6c5291e31b11dfd0101 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 14 Oct 2019 14:47:26 -0700 Subject: Fix lock permissions --- src/WixToolset.Data/Tuples/LockPermissionsTuple.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs index e09b56a3..33c1ad15 100644 --- a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs +++ b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs @@ -67,9 +67,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)LockPermissionsTupleFields.User, value); } - public int Permission + public int? Permission { - get => (int)this.Fields[(int)LockPermissionsTupleFields.Permission]; + get => (int?)this.Fields[(int)LockPermissionsTupleFields.Permission]; set => this.Set((int)LockPermissionsTupleFields.Permission, value); } } -- cgit v1.2.3-55-g6feb From 8e55f76d9dccc15c8230a8acd426a8958e856740 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 16 Oct 2019 16:57:36 -0700 Subject: MSI standard actions should be overridable --- .../WindowsInstaller/WindowsInstallerStandard.cs | 218 ++++++++++----------- 1 file changed, 109 insertions(+), 109 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 9f648f4b..e3e33f02 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -89,156 +89,156 @@ namespace WixToolset.Data.WindowsInstaller private static readonly WixActionTuple[] standardActions = new[] { - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT>=600" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, }; private static readonly HashSet standardDirectories = new HashSet -- cgit v1.2.3-55-g6feb From c5bae04ebcf3cae706ca3bc2717ff3d59ec04824 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 16 Oct 2019 16:58:55 -0700 Subject: Minor tuple fixes --- src/WixToolset.Data/IntermediateFieldExtensions.cs | 2 +- src/WixToolset.Data/Tuples/WixFragmentTuple.cs | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index 5d2ddf06..e488866e 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -441,7 +441,7 @@ namespace WixToolset.Data } else { - throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", nameof(value)); + throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", field.Name); } break; diff --git a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs index fd4c309d..fedfa872 100644 --- a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs @@ -8,10 +8,7 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixFragment = new IntermediateTupleDefinition( TupleDefinitionType.WixFragment, - new[] - { - new IntermediateFieldDefinition(nameof(WixFragmentTupleFields.WixFragment), IntermediateFieldType.String), - }, + new IntermediateFieldDefinition[0], typeof(WixFragmentTuple)); } } @@ -20,7 +17,6 @@ namespace WixToolset.Data.Tuples { public enum WixFragmentTupleFields { - WixFragment, } public class WixFragmentTuple : IntermediateTuple @@ -34,11 +30,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixFragmentTupleFields index] => this.Fields[(int)index]; - - public string WixFragment - { - get => (string)this.Fields[(int)WixFragmentTupleFields.WixFragment]; - set => this.Set((int)WixFragmentTupleFields.WixFragment, value); - } } } \ No newline at end of file -- cgit v1.2.3-55-g6feb From cf6531a216dc248177116399120f02d67731f312 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 18 Oct 2019 11:28:14 -0700 Subject: Small fixes to tuples --- src/WixToolset.Data/IntermediateTupleExtensions.cs | 25 +++--------- src/WixToolset.Data/Tuples/ClassTuple.cs | 4 +- src/WixToolset.Data/Tuples/TextStyleTuple.cs | 44 +++++++++++++--------- 3 files changed, 33 insertions(+), 40 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs index dd488dc5..7fb2a6c3 100644 --- a/src/WixToolset.Data/IntermediateTupleExtensions.cs +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs @@ -16,11 +16,6 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, bool value) { - if (value == default && NoFieldMetadata(tuple, index)) - { - return tuple.Fields[index] = null; - } - var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -30,7 +25,7 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, bool? value) { - if (value == default && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(tuple, index)) { return tuple.Fields[index] = null; } @@ -44,11 +39,6 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, long value) { - if (value == default && NoFieldMetadata(tuple, index)) - { - return tuple.Fields[index] = null; - } - var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -58,7 +48,7 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, long? value) { - if (value == default && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(tuple, index)) { return tuple.Fields[index] = null; } @@ -72,11 +62,6 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, int value) { - if (value == default && NoFieldMetadata(tuple, index)) - { - return tuple.Fields[index] = null; - } - var definition = tuple.Definition.FieldDefinitions[index]; var field = tuple.Fields[index].Set(definition, value); @@ -86,7 +71,7 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, int? value) { - if (value == default && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(tuple, index)) { return tuple.Fields[index] = null; } @@ -100,7 +85,7 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, IntermediateFieldPathValue value) { - if (value == default && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(tuple, index)) { return tuple.Fields[index] = null; } @@ -114,7 +99,7 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, string value) { - if (value == default && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(tuple, index)) { return tuple.Fields[index] = null; } diff --git a/src/WixToolset.Data/Tuples/ClassTuple.cs b/src/WixToolset.Data/Tuples/ClassTuple.cs index 5e40fe35..a5ff89e8 100644 --- a/src/WixToolset.Data/Tuples/ClassTuple.cs +++ b/src/WixToolset.Data/Tuples/ClassTuple.cs @@ -107,9 +107,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ClassTupleFields.IconRef, value); } - public int IconIndex + public int? IconIndex { - get => (int)this.Fields[(int)ClassTupleFields.IconIndex]; + get => (int?)this.Fields[(int)ClassTupleFields.IconIndex]; set => this.Set((int)ClassTupleFields.IconIndex, value); } diff --git a/src/WixToolset.Data/Tuples/TextStyleTuple.cs b/src/WixToolset.Data/Tuples/TextStyleTuple.cs index e4929ccf..3614808e 100644 --- a/src/WixToolset.Data/Tuples/TextStyleTuple.cs +++ b/src/WixToolset.Data/Tuples/TextStyleTuple.cs @@ -10,10 +10,11 @@ namespace WixToolset.Data TupleDefinitionType.TextStyle, new[] { - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.TextStyle), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TextStyleTupleFields.FaceName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Size), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Color), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Red), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Green), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Blue), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Bold), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Italic), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Strike), IntermediateFieldType.Bool), @@ -27,10 +28,11 @@ namespace WixToolset.Data.Tuples { public enum TextStyleTupleFields { - TextStyle, FaceName, Size, - Color, + Red, + Green, + Blue, Bold, Italic, Strike, @@ -49,12 +51,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[TextStyleTupleFields index] => this.Fields[(int)index]; - public string TextStyle - { - get => (string)this.Fields[(int)TextStyleTupleFields.TextStyle]; - set => this.Set((int)TextStyleTupleFields.TextStyle, value); - } - public string FaceName { get => (string)this.Fields[(int)TextStyleTupleFields.FaceName]; @@ -63,37 +59,49 @@ namespace WixToolset.Data.Tuples public int Size { - get => this.Fields[(int)TextStyleTupleFields.Size].AsNumber(); + get => (int)this.Fields[(int)TextStyleTupleFields.Size]; set => this.Set((int)TextStyleTupleFields.Size, value); } - public int Color + public int? Red + { + get => (int?)this.Fields[(int)TextStyleTupleFields.Red]; + set => this.Set((int)TextStyleTupleFields.Red, value); + } + + public int? Green + { + get => (int?)this.Fields[(int)TextStyleTupleFields.Green]; + set => this.Set((int)TextStyleTupleFields.Green, value); + } + + public int? Blue { - get => (int)this.Fields[(int)TextStyleTupleFields.Color].AsNumber(); - set => this.Set((int)TextStyleTupleFields.Color, value); + get => (int?)this.Fields[(int)TextStyleTupleFields.Blue]; + set => this.Set((int)TextStyleTupleFields.Blue, value); } public bool Bold { - get => this.Fields[(int)TextStyleTupleFields.Bold].AsBool(); + get => (bool)this.Fields[(int)TextStyleTupleFields.Bold]; set => this.Set((int)TextStyleTupleFields.Bold, value); } public bool Italic { - get => this.Fields[(int)TextStyleTupleFields.Italic].AsBool(); + get => (bool)this.Fields[(int)TextStyleTupleFields.Italic]; set => this.Set((int)TextStyleTupleFields.Italic, value); } public bool Strike { - get => this.Fields[(int)TextStyleTupleFields.Strike].AsBool(); + get => (bool)this.Fields[(int)TextStyleTupleFields.Strike]; set => this.Set((int)TextStyleTupleFields.Strike, value); } public bool Underline { - get => this.Fields[(int)TextStyleTupleFields.Underline].AsBool(); + get => (bool)this.Fields[(int)TextStyleTupleFields.Underline]; set => this.Set((int)TextStyleTupleFields.Underline, value); } } -- cgit v1.2.3-55-g6feb From 83722a63311ba516889ff0af8510a7740e01a4c2 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 18 Oct 2019 15:44:56 -0700 Subject: Better support all .NETs --- src/WixToolset.Data/WixToolset.Data.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 72bdaa0f..95f16c66 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.0;net461;net472 7.3 WiX Toolset Data -- cgit v1.2.3-55-g6feb From 534d79c4434c4a165f4d82ddf033fa43768c3357 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 23 Oct 2019 12:48:22 -0700 Subject: Remove BootstrapperApplicationData generally in favor of Unreal --- src/WixToolset.Data/Tuples/WixCustomRowTuple.cs | 6 +++- src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 10 +++---- .../WindowsInstaller/TableDefinition.cs | 34 ++++++---------------- 3 files changed, 19 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs index ec73c1b8..c51089e8 100644 --- a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs @@ -27,6 +27,8 @@ namespace WixToolset.Data.Tuples public class WixCustomRowTuple : IntermediateTuple { + public const char FieldSeparator = '\x85'; + public WixCustomRowTuple() : base(TupleDefinitions.WixCustomRow, null, null) { } @@ -48,5 +50,7 @@ namespace WixToolset.Data.Tuples get => (string)this.Fields[(int)WixCustomRowTupleFields.FieldData]; set => this.Set((int)WixCustomRowTupleFields.FieldData, value); } + + public string[] FieldDataSeparated => this.FieldData.Split(FieldSeparator); } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index cf4e60db..2ef2b88d 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -22,7 +22,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Sets), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Descriptions), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Modularizations), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.BootstrapperApplicationData), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Number), }, typeof(WixCustomTableTuple)); } @@ -44,7 +44,7 @@ namespace WixToolset.Data.Tuples Sets, Descriptions, Modularizations, - BootstrapperApplicationData, + Unreal, } public class WixCustomTableTuple : IntermediateTuple @@ -131,10 +131,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixCustomTableTupleFields.Modularizations, value); } - public bool BootstrapperApplicationData + public bool Unreal { - get => (bool)this.Fields[(int)WixCustomTableTupleFields.BootstrapperApplicationData]; - set => this.Set((int)WixCustomTableTupleFields.BootstrapperApplicationData, value); + get => (bool)this.Fields[(int)WixCustomTableTupleFields.Unreal]; + set => this.Set((int)WixCustomTableTupleFields.Unreal, value); } } } diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index bc7fb537..ee8ab0c1 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -4,7 +4,7 @@ namespace WixToolset.Data.WindowsInstaller { using System; using System.Collections.Generic; - using System.Collections.ObjectModel; + using System.Linq; using System.Xml; /// @@ -24,14 +24,12 @@ namespace WixToolset.Data.WindowsInstaller /// Name of table to create. /// Column definitions for the table. /// Flag if table is unreal. - /// Flag if table is part of UX Manifest. - public TableDefinition(string name, ColumnDefinition[] columns, bool unreal = false, bool bootstrapperApplicationData = false) + public TableDefinition(string name, IEnumerable columns, bool unreal = false) { this.Name = name; this.Unreal = unreal; - this.BootstrapperApplicationData = bootstrapperApplicationData; - this.Columns = columns; + this.Columns = columns.ToArray(); } /// @@ -46,12 +44,6 @@ namespace WixToolset.Data.WindowsInstaller /// Flag if table is unreal. public bool Unreal { get; private set; } - /// - /// Gets if the table is a part of the bootstrapper application data manifest. - /// - /// Flag if table is a part of the bootstrapper application data manifest. - public bool BootstrapperApplicationData { get; private set; } - /// /// Gets the collection of column definitions for this table. /// @@ -82,7 +74,7 @@ namespace WixToolset.Data.WindowsInstaller } // compare the table names - int ret = String.Compare(this.Name, updated.Name, StringComparison.Ordinal); + var ret = String.Compare(this.Name, updated.Name, StringComparison.Ordinal); // compare the column count if (0 == ret) @@ -91,10 +83,10 @@ namespace WixToolset.Data.WindowsInstaller ret = Math.Min(0, updated.Columns.Length - this.Columns.Length); // compare name, type, and length of each column - for (int i = 0; 0 == ret && this.Columns.Length > i; i++) + for (var i = 0; 0 == ret && this.Columns.Length > i; i++) { - ColumnDefinition thisColumnDef = this.Columns[i]; - ColumnDefinition updatedColumnDef = updated.Columns[i]; + var thisColumnDef = this.Columns[i]; + var updatedColumnDef = updated.Columns[i]; ret = thisColumnDef.CompareTo(updatedColumnDef); } @@ -125,9 +117,6 @@ namespace WixToolset.Data.WindowsInstaller case "unreal": unreal = reader.Value.Equals("yes"); break; - case "bootstrapperApplicationData": - bootstrapperApplicationData = reader.Value.Equals("yes"); - break; } } @@ -181,7 +170,7 @@ namespace WixToolset.Data.WindowsInstaller } } - return new TableDefinition(name, columns.ToArray(), unreal, bootstrapperApplicationData); + return new TableDefinition(name, columns.ToArray(), unreal); } /// @@ -199,12 +188,7 @@ namespace WixToolset.Data.WindowsInstaller writer.WriteAttributeString("unreal", "yes"); } - if (this.BootstrapperApplicationData) - { - writer.WriteAttributeString("bootstrapperApplicationData", "yes"); - } - - foreach (ColumnDefinition columnDefinition in this.Columns) + foreach (var columnDefinition in this.Columns) { columnDefinition.Write(writer); } -- cgit v1.2.3-55-g6feb From 0078364515ba1f7570f43d47e43bd359918cafd0 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 23 Oct 2019 17:53:49 -0400 Subject: Remove id field from WixSearchTuple. --- src/WixToolset.Data/Tuples/WixSearchTuple.cs | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixSearchTuple.cs b/src/WixToolset.Data/Tuples/WixSearchTuple.cs index 21970e40..fd1ae5bf 100644 --- a/src/WixToolset.Data/Tuples/WixSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixSearch, new[] { - new IntermediateFieldDefinition(nameof(WixSearchTupleFields.WixSearch), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Variable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Condition), IntermediateFieldType.String), }, @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples { public enum WixSearchTupleFields { - WixSearch, Variable, Condition, } @@ -39,12 +37,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixSearchTupleFields index] => this.Fields[(int)index]; - public string WixSearch - { - get => (string)this.Fields[(int)WixSearchTupleFields.WixSearch]; - set => this.Set((int)WixSearchTupleFields.WixSearch, value); - } - public string Variable { get => (string)this.Fields[(int)WixSearchTupleFields.Variable]; -- cgit v1.2.3-55-g6feb From 6c1ae2593faab59e1a01c96794e0835a6fcd0626 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 25 Oct 2019 00:23:42 -0700 Subject: Implement WixOutput with support for multiple streams of data --- src/WixToolset.Data/ErrorMessages.cs | 8 +- src/WixToolset.Data/FileFormat.cs | 19 -- src/WixToolset.Data/FileStructure.cs | 316 --------------------- src/WixToolset.Data/Intermediate.cs | 301 +++++++------------- src/WixToolset.Data/IntermediateFieldContext.cs | 6 +- src/WixToolset.Data/IntermediateFieldExtensions.cs | 4 +- src/WixToolset.Data/IntermediateFieldPathValue.cs | 7 +- src/WixToolset.Data/IntermediateFieldValue.cs | 16 +- src/WixToolset.Data/NonClosingStreamWrapper.cs | 84 ------ src/WixToolset.Data/WindowsInstaller/Field.cs | 4 +- .../WindowsInstaller/ObjectField.cs | 2 +- src/WixToolset.Data/WindowsInstaller/Output.cs | 56 ++-- src/WixToolset.Data/WindowsInstaller/Pdb.cs | 155 ---------- src/WixToolset.Data/WindowsInstaller/Row.cs | 2 +- src/WixToolset.Data/WindowsInstaller/Table.cs | 2 +- .../WindowsInstaller/TableDefinitionCollection.cs | 2 +- src/WixToolset.Data/WixCorruptFileException.cs | 4 +- src/WixToolset.Data/WixOutput.cs | 233 +++++++++++++++ src/WixToolset.Data/WixToolset.Data.csproj | 4 + .../WixUnexpectedFileFormatException.cs | 6 +- src/test/WixToolsetTest.Data/SerializeFixture.cs | 14 +- 21 files changed, 399 insertions(+), 846 deletions(-) delete mode 100644 src/WixToolset.Data/FileFormat.cs delete mode 100644 src/WixToolset.Data/FileStructure.cs delete mode 100644 src/WixToolset.Data/NonClosingStreamWrapper.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Pdb.cs create mode 100644 src/WixToolset.Data/WixOutput.cs (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 33cccdd2..3fa23a74 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -198,9 +198,9 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.ConditionExpected, "The {0} element's inner text cannot be an empty string or completely whitespace. If you don't want a condition, then simply remove the entire {0} element.", elementName); } - public static Message CorruptFileFormat(string path, FileFormat format) + public static Message CorruptFileFormat(string path, string format) { - return Message(null, Ids.CorruptFileFormat, "Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified.", path, format.ToString().ToLowerInvariant()); + return Message(null, Ids.CorruptFileFormat, "Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified.", path, format.ToLowerInvariant()); } public static Message CreateCabAddFileFailed() @@ -2049,9 +2049,9 @@ namespace WixToolset.Data return Message(null, Ids.UnexpectedFileExtension, "The file '{0}' has an unexpected extension. Expected one of the following: '{1}'.", fileName, expectedExtensions); } - public static Message UnexpectedFileFormat(string path, FileFormat expectedFormat, FileFormat actualFormat) + public static Message UnexpectedFileFormat(string path, string expectedFormat, string actualFormat) { - return Message(null, Ids.UnexpectedFileFormat, "Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided.", path, expectedFormat.ToString().ToLowerInvariant(), actualFormat.ToString().ToLowerInvariant()); + return Message(null, Ids.UnexpectedFileFormat, "Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided.", path, expectedFormat.ToLowerInvariant(), actualFormat.ToLowerInvariant()); } public static Message UnexpectedGroupChild(string parentType, string parentId, string childType, string childId) diff --git a/src/WixToolset.Data/FileFormat.cs b/src/WixToolset.Data/FileFormat.cs deleted file mode 100644 index 75eab3de..00000000 --- a/src/WixToolset.Data/FileFormat.cs +++ /dev/null @@ -1,19 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public enum FileFormat - { - Unknown, - - Wixobj, - - Wixlib, - - Wixout, - - Wixpdb, - - WixIR, - } -} diff --git a/src/WixToolset.Data/FileStructure.cs b/src/WixToolset.Data/FileStructure.cs deleted file mode 100644 index 2667df1e..00000000 --- a/src/WixToolset.Data/FileStructure.cs +++ /dev/null @@ -1,316 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.IO; - using System.Linq; - using System.Text; - - /// - /// Class that understands the standard file structures in the WiX toolset. - /// - public class FileStructure : IDisposable - { - private long dataStreamOffset; - private long[] embeddedFileSizes; - private Stream stream; - private bool disposed; - - private static readonly Dictionary SupportedFileFormats = new Dictionary() - { - { "wir", FileFormat.WixIR }, - { "wixirf", FileFormat.WixIR }, - { "wixipl", FileFormat.WixIR }, - { "wixobj", FileFormat.Wixobj }, - { "wixlib", FileFormat.Wixlib }, - { "wixout", FileFormat.Wixout }, - { "wixpdb", FileFormat.Wixpdb }, - { "wixmst", FileFormat.Wixout }, - { "wixmsp", FileFormat.Wixout }, - }; - - /// - /// Use Create or Read to create a FileStructure. - /// - private FileStructure() { } - - /// - /// Count of embedded files in the file structure. - /// - public int EmbeddedFileCount => this.embeddedFileSizes.Length; - - /// - /// File format of the file structure. - /// - public FileFormat FileFormat { get; private set; } - - /// - /// Creates a new file structure. - /// - /// Stream to write the file structure to. - /// File format for the file structure. - /// Paths to files to embedd in the file structure. - /// Newly created file structure. - public static FileStructure Create(Stream stream, FileFormat fileFormat, IEnumerable embedFilePaths) - { - var fs = new FileStructure(); - - using (var writer = new BinaryWriter(stream, Encoding.UTF8, true)) - { - fs.WriteType(writer, fileFormat); - - fs.WriteEmbeddedFiles(writer, embedFilePaths?.ToArray() ?? Array.Empty()); - - // Remember the data stream offset, which is right after the embedded files have been written. - fs.dataStreamOffset = stream.Position; - } - - fs.stream = stream; - - return fs; - } - - /// - /// Reads a file structure from an open stream. - /// - /// Stream to read from. - /// File structure populated from the stream. - public static FileStructure Read(Stream stream) - { - var fs = new FileStructure(); - - using (var reader = new BinaryReader(stream, Encoding.UTF8, true)) - { - fs.FileFormat = FileStructure.ReadFileFormat(reader); - - if (fs.FileFormat != FileFormat.Unknown) - { - fs.embeddedFileSizes = FileStructure.ReadEmbeddedFileSizes(reader); - - // Remember the data stream offset, which is right after the embedded files have been written. - fs.dataStreamOffset = stream.Position; - foreach (long size in fs.embeddedFileSizes) - { - fs.dataStreamOffset += size; - } - } - } - - fs.stream = stream; - - return fs; - } - - /// - /// Guess at the file format based on the file extension. - /// - /// File extension to guess the file format for. - /// Best guess at file format. - public static FileFormat GuessFileFormatFromExtension(string extension) - { - return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out var format) ? format : FileFormat.Unknown; - } - - /// - /// Probes a stream to determine the file format. - /// - /// Stream to test. - /// The file format. - public static FileFormat TestFileFormat(Stream stream) - { - FileFormat format = FileFormat.Unknown; - - long position = stream.Position; - - try - { - using (var reader = new BinaryReader(stream, Encoding.UTF8, true)) - { - format = FileStructure.ReadFileFormat(reader); - } - } - finally - { - stream.Seek(position, SeekOrigin.Begin); - } - - return format; - } - - /// - /// Extracts an embedded file. - /// - /// Index to the file to extract. - /// Path to write the extracted file to. - public void ExtractEmbeddedFile(int embeddedIndex, string outputPath) - { - if (this.EmbeddedFileCount <= embeddedIndex) - { - throw new ArgumentOutOfRangeException("embeddedIndex"); - } - - long header = 6 + 4 + (this.embeddedFileSizes.Length * 8); // skip the type + the count of embedded files + all the sizes of embedded files. - long position = this.embeddedFileSizes.Take(embeddedIndex).Sum(); // skip to the embedded file we want. - long size = this.embeddedFileSizes[embeddedIndex]; - - this.stream.Seek(header + position, SeekOrigin.Begin); - - Directory.CreateDirectory(Path.GetDirectoryName(outputPath)); - - using (FileStream output = File.OpenWrite(outputPath)) - { - int read; - int total = 0; - byte[] buffer = new byte[64 * 1024]; - while (0 < (read = this.stream.Read(buffer, 0, (int)Math.Min(buffer.Length, size - total)))) - { - output.Write(buffer, 0, read); - total += read; - } - } - } - - /// - /// Gets a non-closing stream to the data of the file. - /// - /// Stream to the data of the file. - public Stream GetDataStream() - { - this.stream.Seek(this.dataStreamOffset, SeekOrigin.Begin); - return new NonClosingStreamWrapper(this.stream); - } - - /// - /// Gets the data of the file as a string. - /// - /// String contents data of the file. - public string GetData() - { - var bytes = new byte[this.stream.Length - this.dataStreamOffset]; - - this.stream.Seek(this.dataStreamOffset, SeekOrigin.Begin); - this.stream.Read(bytes, 0, bytes.Length); - - return Encoding.UTF8.GetString(bytes); - } - - /// - /// Disposes of the internal state of the file structure. - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Disposes of the internsl state of the file structure. - /// - /// True if disposing. - protected virtual void Dispose(bool disposing) - { - if (!this.disposed) - { - if (disposing) - { - if (null != this.stream) - { - // We do not own the stream, so we don't close it. We're just resetting our internal state. - this.embeddedFileSizes = null; - this.dataStreamOffset = 0; - this.stream = null; - } - } - } - - this.disposed = true; - } - - private static FileFormat ReadFileFormat(BinaryReader reader) - { - FileFormat format = FileFormat.Unknown; - - string type = new string(reader.ReadChars(3)); - if (FileStructure.SupportedFileFormats.TryGetValue(type, out format)) - { - return format; - } - - type += new string(reader.ReadChars(3)); - FileStructure.SupportedFileFormats.TryGetValue(type, out format); - - return format; - } - - private static long[] ReadEmbeddedFileSizes(BinaryReader reader) - { - uint count = reader.ReadUInt32(); - - long[] embeddedFileSizes = new long[count]; - - for (int i = 0; i < embeddedFileSizes.Length; ++i) - { - embeddedFileSizes[i] = (long)reader.ReadUInt64(); - } - - return embeddedFileSizes; - } - - private BinaryWriter WriteType(BinaryWriter writer, FileFormat fileFormat) - { - string type = null; - foreach (var supported in FileStructure.SupportedFileFormats) - { - if (supported.Value.Equals(fileFormat)) - { - type = supported.Key; - break; - } - } - - if (String.IsNullOrEmpty(type)) - { - throw new ArgumentException("Unknown file format type", "fileFormat"); - } - - this.FileFormat = fileFormat; - - Debug.Assert(3 == type.ToCharArray().Length || 6 == type.ToCharArray().Length); - writer.Write(type.ToCharArray()); - return writer; - } - - private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, string[] embedFilePaths) - { - // First write the count of embedded files as a Uint32; - writer.Write((uint)embedFilePaths.Length); - - this.embeddedFileSizes = new long[embedFilePaths.Length]; - - // Next write out the size of each file as a Uint64 in order. - FileInfo[] files = new FileInfo[embedFilePaths.Length]; - for (int i = 0; i < embedFilePaths.Length; ++i) - { - files[i] = new FileInfo(embedFilePaths[i]); - - this.embeddedFileSizes[i] = files[i].Length; - writer.Write((ulong)this.embeddedFileSizes[i]); - } - - // Next write out the content of each file *after* the sizes of - // *all* of the files were written. - foreach (FileInfo file in files) - { - using (FileStream stream = file.OpenRead()) - { - stream.CopyTo(writer.BaseStream); - } - } - - return writer; - } - } -} diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 7693b815..1db21d85 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -14,8 +14,8 @@ namespace WixToolset.Data /// public sealed class Intermediate { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixobj"; private static readonly Version CurrentVersion = new Version("4.0.0.0"); + private const string WixOutputStreamName = "wix-ir.json"; private readonly Dictionary localizationsByCulture; @@ -25,15 +25,13 @@ namespace WixToolset.Data public Intermediate() { this.Id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); - this.EmbedFilePaths = new List(); this.localizationsByCulture = new Dictionary(StringComparer.OrdinalIgnoreCase); this.Sections = new List(); } - public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture, IEnumerable embedFilePaths) + public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture) { this.Id = id; - this.EmbedFilePaths = (embedFilePaths != null) ? new List(embedFilePaths) : new List(); this.localizationsByCulture = (localizationsByCulture != null) ? new Dictionary(localizationsByCulture, StringComparer.OrdinalIgnoreCase) : new Dictionary(StringComparer.OrdinalIgnoreCase); this.Sections = (sections != null) ? new List(sections) : new List(); } @@ -43,11 +41,6 @@ namespace WixToolset.Data /// public string Id { get; } - /// - /// Get the embed file paths in this intermediate. - /// - public IList EmbedFilePaths { get; } - /// /// Get the localizations contained in this intermediate. /// @@ -66,12 +59,8 @@ namespace WixToolset.Data /// Returns the loaded intermediate. public static Intermediate Load(string path, bool suppressVersionCheck = false) { - using (var stream = File.OpenRead(path)) - { - var uri = new Uri(Path.GetFullPath(path)); - var creator = new SimpleTupleDefinitionCreator(); - return Intermediate.LoadIntermediate(stream, uri, creator, suppressVersionCheck); - } + var creator = new SimpleTupleDefinitionCreator(); + return Intermediate.Load(path, creator, suppressVersionCheck); } /// @@ -97,13 +86,9 @@ namespace WixToolset.Data /// Returns the loaded intermediate. public static Intermediate Load(Assembly assembly, string resourceName, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) { - using (var resourceStream = assembly.GetManifestResourceStream(resourceName)) + using (var wixout = WixOutput.Read(assembly, resourceName)) { - var uriBuilder = new UriBuilder(assembly.CodeBase); - uriBuilder.Scheme = "embeddedresource"; - uriBuilder.Fragment = resourceName; - - return Intermediate.LoadIntermediate(resourceStream, uriBuilder.Uri, creator, suppressVersionCheck); + return Intermediate.LoadIntermediate(wixout, creator, suppressVersionCheck); } } @@ -116,11 +101,9 @@ namespace WixToolset.Data /// Returns the loaded intermediate. public static Intermediate Load(string path, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) { - using (var stream = File.OpenRead(path)) + using (var wixout = WixOutput.Read(path)) { - var uri = new Uri(Path.GetFullPath(path)); - - return Intermediate.LoadIntermediate(stream, uri, creator, suppressVersionCheck); + return Intermediate.LoadIntermediate(wixout, creator, suppressVersionCheck); } } @@ -133,7 +116,6 @@ namespace WixToolset.Data public static IEnumerable Load(IEnumerable intermediateFiles) { var creator = new SimpleTupleDefinitionCreator(); - return Intermediate.Load(intermediateFiles, creator); } @@ -151,15 +133,14 @@ namespace WixToolset.Data foreach (var path in intermediateFiles) { - using (var stream = File.OpenRead(path)) + using (var wixout = WixOutput.Read(path)) { - var uri = new Uri(Path.GetFullPath(path)); - - var json = Intermediate.LoadJson(stream, uri, suppressVersionCheck); + var data = wixout.GetData(WixOutputStreamName); + var json = Intermediate.LoadJson(data, wixout.Uri, suppressVersionCheck); Intermediate.LoadDefinitions(json, creator); - jsons.Enqueue(new JsonWithPath { Json = json, Path = uri }); + jsons.Enqueue(new JsonWithPath { Json = json, Path = wixout.Uri }); } } @@ -183,55 +164,21 @@ namespace WixToolset.Data { Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - using (var stream = File.Create(path)) - using (var fs = FileStructure.Create(stream, FileFormat.WixIR, this.EmbedFilePaths)) - using (var writer = new StreamWriter(fs.GetDataStream())) + using (var wixout = WixOutput.Create(path)) { - var jsonObject = new JsonObject - { - { "id", this.Id }, - { "version", Intermediate.CurrentVersion.ToString() } - }; - - var sectionsJson = new JsonArray(this.Sections.Count); - foreach (var section in this.Sections) - { - var sectionJson = section.Serialize(); - sectionsJson.Add(sectionJson); - } - - jsonObject.Add("sections", sectionsJson); - - var customDefinitions = this.GetCustomDefinitionsInSections(); - - if (customDefinitions.Count > 0) - { - var customDefinitionsJson = new JsonArray(customDefinitions.Count); - - foreach (var kvp in customDefinitions.OrderBy(d => d.Key)) - { - var customDefinitionJson = kvp.Value.Serialize(); - customDefinitionsJson.Add(customDefinitionJson); - } - - jsonObject.Add("definitions", customDefinitionsJson); - } - - if (this.Localizations.Any()) - { - var localizationsJson = new JsonArray(); - foreach (var localization in this.Localizations) - { - var localizationJson = localization.Serialize(); - localizationsJson.Add(localizationJson); - } + this.Save(wixout); + } + } - jsonObject.Add("localizations", localizationsJson); - } + /// + /// Saves an intermediate to a path on disk. + /// + /// Path to save intermediate file to disk. + public void Save(WixOutput wixout) + { + this.SaveEmbedFiles(wixout); - var json = SimpleJson.SerializeObject(jsonObject); - writer.Write(json); - } + this.SaveIR(wixout); } /// @@ -242,13 +189,14 @@ namespace WixToolset.Data /// ITupleDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. - private static Intermediate LoadIntermediate(Stream stream, Uri baseUri, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + private static Intermediate LoadIntermediate(WixOutput wixout, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) { - var json = Intermediate.LoadJson(stream, baseUri, suppressVersionCheck); + var data = wixout.GetData(WixOutputStreamName); + var json = Intermediate.LoadJson(data, wixout.Uri, suppressVersionCheck); Intermediate.LoadDefinitions(json, creator); - return Intermediate.FinalizeLoad(json, baseUri, creator); + return Intermediate.FinalizeLoad(json, wixout.Uri, creator); } /// @@ -258,19 +206,9 @@ namespace WixToolset.Data /// Path name of intermediate file. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded json. - private static JsonObject LoadJson(Stream stream, Uri baseUri, bool suppressVersionCheck) + private static JsonObject LoadJson(string json, Uri baseUri, bool suppressVersionCheck) { - JsonObject jsonObject; - using (var fs = FileStructure.Read(stream)) - { - if (FileFormat.WixIR != fs.FileFormat) - { - throw new WixUnexpectedFileFormatException(baseUri.LocalPath, FileFormat.WixIR, fs.FileFormat); - } - - var json = fs.GetData(); - jsonObject = SimpleJson.DeserializeObject(json) as JsonObject; - } + var jsonObject = SimpleJson.DeserializeObject(json) as JsonObject; if (!suppressVersionCheck) { @@ -333,153 +271,118 @@ namespace WixToolset.Data localizations.Add(localization.Culture, localization); } - return new Intermediate(id, sections, localizations, null); + return new Intermediate(id, sections, localizations); } -#if false - /// - /// Loads an intermediate from a path on disk. - /// - /// Path to intermediate file saved on disk. - /// Collection containing TableDefinitions to use when reconstituting the intermediate. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - public static Intermediate Load(string path, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + private void SaveEmbedFiles(WixOutput wixout) { - using (FileStream stream = File.OpenRead(path)) - using (FileStructure fs = FileStructure.Read(stream)) + var embeddedFields = this.Sections.SelectMany(s => s.Tuples) + .SelectMany(t => t.Fields) + .Where(f => f?.Type == IntermediateFieldType.Path) + .Select(f => f.AsPath()) + .Where(f => f.Embed) + .ToList(); + + var savedEmbedFields = new Dictionary(StringComparer.OrdinalIgnoreCase); + var uniqueEntryNames = new HashSet(StringComparer.OrdinalIgnoreCase); + + foreach (var embeddedField in embeddedFields) { - if (FileFormat.Wixobj != fs.FileFormat) + var key = String.Concat(embeddedField.BaseUri?.AbsoluteUri, "?", embeddedField.Path); + + if (savedEmbedFields.TryGetValue(key, out var existing)) { - throw new WixUnexpectedFileFormatException(path, FileFormat.Wixobj, fs.FileFormat); + embeddedField.Path = existing.Path; } - - Uri uri = new Uri(Path.GetFullPath(path)); - using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) + else { - try + var entryName = CalculateUniqueEntryName(uniqueEntryNames, embeddedField.Path); + + if (embeddedField.BaseUri == null) { - reader.MoveToContent(); - return Intermediate.Read(reader, tableDefinitions, suppressVersionCheck); + wixout.ImportDataStream(entryName, embeddedField.Path); } - catch (XmlException xe) + else // open the container specified in baseUri and copy the correct stream out of it. { - throw new WixCorruptFileException(path, fs.FileFormat, xe); + using (var otherWixout = WixOutput.Read(embeddedField.BaseUri)) + using (var stream = otherWixout.GetDataStream(embeddedField.Path)) + using (var target = wixout.CreateDataStream(entryName)) + { + stream.CopyTo(target); + } } - } - } - } - /// - /// Saves an intermediate to a path on disk. - /// - /// Path to save intermediate file to disk. - public void Save(string path) - { - Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); + embeddedField.Path = entryName; - using (var stream = File.Create(path)) - using (var fs = FileStructure.Create(stream, FileFormat.Wixobj, null)) - using (var writer = XmlWriter.Create(fs.GetDataStream())) - { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); + savedEmbedFields.Add(key, embeddedField); + } } } - /// - /// Parse an intermediate from an XML format. - /// - /// XmlReader where the intermediate is persisted. - /// TableDefinitions to use in the intermediate. - /// Suppress checking for wix.dll version mismatch. - /// The parsed Intermediate. - private static Intermediate Read(XmlReader reader, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + private void SaveIR(WixOutput wixout) { - if ("wixObject" != reader.LocalName) + using (var writer = new StreamWriter(wixout.CreateDataStream(WixOutputStreamName))) { - throw new XmlException(); - } - - bool empty = reader.IsEmptyElement; - Version objVersion = null; - string id = null; + var jsonObject = new JsonObject + { + { "id", this.Id }, + { "version", Intermediate.CurrentVersion.ToString() } + }; - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) + var sectionsJson = new JsonArray(this.Sections.Count); + foreach (var section in this.Sections) { - case "version": - objVersion = new Version(reader.Value); - break; - case "id": - id = reader.Value; - break; + var sectionJson = section.Serialize(); + sectionsJson.Add(sectionJson); } - } - - if (!suppressVersionCheck && null != objVersion && !Intermediate.CurrentVersion.Equals(objVersion)) - { - throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "object", objVersion.ToString(), Intermediate.CurrentVersion.ToString())); - } - Intermediate intermediate = new Intermediate(); - intermediate.id = id; + jsonObject.Add("sections", sectionsJson); - if (!empty) - { - bool done = false; + var customDefinitions = this.GetCustomDefinitionsInSections(); - while (!done && reader.Read()) + if (customDefinitions.Count > 0) { - switch (reader.NodeType) + var customDefinitionsJson = new JsonArray(customDefinitions.Count); + + foreach (var kvp in customDefinitions.OrderBy(d => d.Key)) { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "section": - intermediate.AddSection(Section.Read(reader, tableDefinitions)); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; + var customDefinitionJson = kvp.Value.Serialize(); + customDefinitionsJson.Add(customDefinitionJson); } + + jsonObject.Add("definitions", customDefinitionsJson); } - if (!done) + if (this.Localizations.Any()) { - throw new XmlException(); + var localizationsJson = new JsonArray(); + foreach (var localization in this.Localizations) + { + var localizationJson = localization.Serialize(); + localizationsJson.Add(localizationJson); + } + + jsonObject.Add("localizations", localizationsJson); } - } - return intermediate; + var json = SimpleJson.SerializeObject(jsonObject); + writer.Write(json); + } } - /// - /// Persists an intermediate in an XML format. - /// - /// XmlWriter where the Intermediate should persist itself as XML. - private void Write(XmlWriter writer) + private static string CalculateUniqueEntryName(ISet entryNames, string path) { - writer.WriteStartElement("wixObject", XmlNamespaceUri); - - writer.WriteAttributeString("version", Intermediate.CurrentVersion.ToString()); - - writer.WriteAttributeString("id", this.id); + var filename = Path.GetFileName(path); + var entryName = "wix-ir/" + filename; + var i = 0; - foreach (Section section in this.Sections) + while (!entryNames.Add(entryName)) { - section.Write(writer); + entryName = $"wix-ir/{filename}-{++i}"; } - writer.WriteEndElement(); + return entryName; } -#endif private Dictionary GetCustomDefinitionsInSections() { diff --git a/src/WixToolset.Data/IntermediateFieldContext.cs b/src/WixToolset.Data/IntermediateFieldContext.cs index a29a63c4..785a959f 100644 --- a/src/WixToolset.Data/IntermediateFieldContext.cs +++ b/src/WixToolset.Data/IntermediateFieldContext.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -6,7 +6,7 @@ namespace WixToolset.Data public class IntermediateFieldContext : IDisposable { - private string previous; + private readonly string previous; private bool disposed; public IntermediateFieldContext(string context) @@ -18,7 +18,7 @@ namespace WixToolset.Data public void Dispose() { - Dispose(true); + this.Dispose(true); GC.SuppressFinalize(this); } diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index e488866e..06189b9c 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -386,7 +386,7 @@ namespace WixToolset.Data default: throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); - }; + } } return AssignFieldValue(field, data); @@ -455,7 +455,7 @@ namespace WixToolset.Data default: throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); - }; + } } return AssignFieldValue(field, data); diff --git a/src/WixToolset.Data/IntermediateFieldPathValue.cs b/src/WixToolset.Data/IntermediateFieldPathValue.cs index 7d4fcdfe..a8d2735a 100644 --- a/src/WixToolset.Data/IntermediateFieldPathValue.cs +++ b/src/WixToolset.Data/IntermediateFieldPathValue.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -7,10 +7,9 @@ namespace WixToolset.Data public class IntermediateFieldPathValue { /// - /// Gets or sets the index of the embedded file in a library. + /// Indicates whether to embed the path to the file when the intermediate field is saved. /// - /// The index of the embedded file. - public int? EmbeddedFileIndex { get; set; } + public bool Embed { get; set; } /// /// Gets the base URI of the path field. diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs index ca109e7f..9a6b6ef5 100644 --- a/src/WixToolset.Data/IntermediateFieldValue.cs +++ b/src/WixToolset.Data/IntermediateFieldValue.cs @@ -76,19 +76,19 @@ namespace WixToolset.Data break; case JsonObject jsonData: - jsonData.TryGetValue("embeddedIndex", out var embeddedIndex); + jsonData.TryGetValue("embed", out var embed); value = new IntermediateFieldPathValue { - BaseUri = (embeddedIndex == null) ? null : baseUri, - EmbeddedFileIndex = (embeddedIndex == null) ? null : (int?)Convert.ToInt32(embeddedIndex), + BaseUri = (embed != null) ? baseUri : null, + Embed = embed != null, Path = jsonData.GetValueOrDefault("path"), }; break; - // Nothing to do for this case, so leave it out. - // case string stringData: - // break; + // Nothing to do for this case, so leave it out. + // case string stringData: + // break; } var previousValueJson = jsonObject.GetValueOrDefault("prev"); @@ -117,9 +117,9 @@ namespace WixToolset.Data // pathField.BaseUri is set during load, not saved. - if (pathField.EmbeddedFileIndex.HasValue) + if (pathField.Embed) { - jsonData.Add("embeddedIndex", pathField.EmbeddedFileIndex.Value); + jsonData.Add("embed", "true"); } if (!String.IsNullOrEmpty(pathField.Path)) diff --git a/src/WixToolset.Data/NonClosingStreamWrapper.cs b/src/WixToolset.Data/NonClosingStreamWrapper.cs deleted file mode 100644 index a2d3be6a..00000000 --- a/src/WixToolset.Data/NonClosingStreamWrapper.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.IO; - - /// - /// Wrapper around stream to prevent other streams (like BinaryReader/Writer) from prematurely - /// closing a parent stream. - /// - internal class NonClosingStreamWrapper : Stream - { - private Stream stream; - - public NonClosingStreamWrapper(Stream stream) - { - this.stream = stream; - } - - public override bool CanRead => this.stream.CanRead; - - public override bool CanSeek => this.stream.CanSeek; - - public override bool CanTimeout => this.stream.CanTimeout; - - public override bool CanWrite => this.stream.CanWrite; - - public override long Length => this.stream.Length; - - public override long Position - { - get => this.stream.Position; - set => this.stream.Position = value; - } - - public override int ReadTimeout - { - get => this.stream.ReadTimeout; - set => this.stream.ReadTimeout = value; - } - - public override int WriteTimeout - { - get => this.stream.WriteTimeout; - set => this.stream.WriteTimeout = value; - } - - public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginRead(buffer, offset, count, callback, state); - - public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginWrite(buffer, offset, count, callback, state); - - public override int EndRead(IAsyncResult asyncResult) => this.stream.EndRead(asyncResult); - - public override void EndWrite(IAsyncResult asyncResult) => this.stream.EndWrite(asyncResult); - - public override void Flush() => this.stream.Flush(); - - public override int Read(byte[] buffer, int offset, int count) => this.stream.Read(buffer, offset, count); - - public override int ReadByte() => this.stream.ReadByte(); - - public override long Seek(long offset, SeekOrigin origin) => this.stream.Seek(offset, origin); - - public override void SetLength(long value) => this.stream.SetLength(value); - - public override void Write(byte[] buffer, int offset, int count) => this.stream.Write(buffer, offset, count); - - public override void WriteByte(byte value) => this.stream.WriteByte(value); - - public override void Close() - { - // Do not pass through the call since this is what we are overriding. - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - this.stream.Flush(); - } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Field.cs b/src/WixToolset.Data/WindowsInstaller/Field.cs index aa359c64..ac8df9a4 100644 --- a/src/WixToolset.Data/WindowsInstaller/Field.cs +++ b/src/WixToolset.Data/WindowsInstaller/Field.cs @@ -154,7 +154,7 @@ namespace WixToolset.Data.WindowsInstaller // be enhanced if that ever changes. if (value is int || value.GetType().IsEnum) { - int intValue = (int)value; + var intValue = (int)value; // validate the value against the minimum allowed value if (column.MinValue.HasValue && column.MinValue > intValue) @@ -275,7 +275,7 @@ namespace WixToolset.Data.WindowsInstaller /// XmlWriter where the Field should persist itself as XML. internal virtual void Write(XmlWriter writer) { - writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); + writer.WriteStartElement("field", Output.XmlNamespaceUri); if (this.Modified) { diff --git a/src/WixToolset.Data/WindowsInstaller/ObjectField.cs b/src/WixToolset.Data/WindowsInstaller/ObjectField.cs index 016693f5..4e654dde 100644 --- a/src/WixToolset.Data/WindowsInstaller/ObjectField.cs +++ b/src/WixToolset.Data/WindowsInstaller/ObjectField.cs @@ -130,7 +130,7 @@ namespace WixToolset.Data.WindowsInstaller /// XmlWriter where the Field should persist itself as XML. internal override void Write(XmlWriter writer) { - writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); + writer.WriteStartElement("field", Output.XmlNamespaceUri); if (this.EmbeddedFileIndex.HasValue) { diff --git a/src/WixToolset.Data/WindowsInstaller/Output.cs b/src/WixToolset.Data/WindowsInstaller/Output.cs index 7f2990f4..ee46c159 100644 --- a/src/WixToolset.Data/WindowsInstaller/Output.cs +++ b/src/WixToolset.Data/WindowsInstaller/Output.cs @@ -5,7 +5,6 @@ namespace WixToolset.Data.WindowsInstaller using System; using System.Collections.Generic; using System.Globalization; - using System.IO; using System.Linq; using System.Xml; @@ -16,6 +15,7 @@ namespace WixToolset.Data.WindowsInstaller { public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixout"; private static readonly Version CurrentVersion = new Version("4.0.0.0"); + private const string WixOutputStreamName = "wix-wi.xml"; /// /// Creates a new empty output object. @@ -66,41 +66,29 @@ namespace WixToolset.Data.WindowsInstaller /// Output object. public static Output Load(string path, bool suppressVersionCheck) { - using (FileStream stream = File.OpenRead(path)) - using (FileStructure fs = FileStructure.Read(stream)) + using (var wixout = WixOutput.Read(path)) + using (var stream = wixout.GetDataStream(WixOutputStreamName)) + using (var reader = XmlReader.Create(stream, null, wixout.Uri.AbsoluteUri)) { - if (FileFormat.Wixout != fs.FileFormat) + try { - throw new WixUnexpectedFileFormatException(path, FileFormat.Wixout, fs.FileFormat); + reader.MoveToContent(); + return Output.Read(reader, suppressVersionCheck); } - - Uri uri = new Uri(Path.GetFullPath(path)); - using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) + catch (XmlException xe) { - try - { - reader.MoveToContent(); - return Output.Read(reader, suppressVersionCheck); - } - catch (XmlException xe) - { - throw new WixCorruptFileException(path, fs.FileFormat, xe); - } + throw new WixCorruptFileException(path, "wixout", xe); } } } /// - /// Saves an output to a path on disk. + /// Saves an output to a WixOutput container. /// - /// Path to save output file to on disk. - public void Save(string path) + /// Container to save to. + public void Save(WixOutput wixout) { - Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - - using (FileStream stream = File.Create(path)) - using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixout, null)) - using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) + using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName))) { writer.WriteStartDocument(); this.Write(writer); @@ -121,8 +109,8 @@ namespace WixToolset.Data.WindowsInstaller throw new XmlException(); } - bool empty = reader.IsEmptyElement; - Output output = new Output(SourceLineNumber.CreateFromUri(reader.BaseURI)); + var empty = reader.IsEmptyElement; + var output = new Output(SourceLineNumber.CreateFromUri(reader.BaseURI)); Version version = null; while (reader.MoveToNextAttribute()) @@ -170,10 +158,10 @@ namespace WixToolset.Data.WindowsInstaller // loop through the rest of the xml building up the Output object TableDefinitionCollection tableDefinitions = null; - List
tables = new List
(); + var tables = new List
(); if (!empty) { - bool done = false; + var done = false; // loop through all the fields in a row while (!done && reader.Read()) @@ -224,7 +212,7 @@ namespace WixToolset.Data.WindowsInstaller /// The table in this output. public Table EnsureTable(TableDefinition tableDefinition) { - if (!this.Tables.TryGetTable(tableDefinition.Name, out Table table)) + if (!this.Tables.TryGetTable(tableDefinition.Name, out var table)) { table = new Table(tableDefinition); this.Tables.Add(table); @@ -251,19 +239,19 @@ namespace WixToolset.Data.WindowsInstaller writer.WriteAttributeString("version", Output.CurrentVersion.ToString()); // Collect all the table definitions and write them. - TableDefinitionCollection tableDefinitions = new TableDefinitionCollection(); - foreach (Table table in this.Tables) + var tableDefinitions = new TableDefinitionCollection(); + foreach (var table in this.Tables) { tableDefinitions.Add(table.Definition); } tableDefinitions.Write(writer); - foreach (Table table in this.Tables.OrderBy(t => t.Name)) + foreach (var table in this.Tables.OrderBy(t => t.Name)) { table.Write(writer); } - foreach (SubStorage subStorage in this.SubStorages) + foreach (var subStorage in this.SubStorages) { subStorage.Write(writer); } diff --git a/src/WixToolset.Data/WindowsInstaller/Pdb.cs b/src/WixToolset.Data/WindowsInstaller/Pdb.cs deleted file mode 100644 index 574d5593..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Pdb.cs +++ /dev/null @@ -1,155 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.IO; - using System.Xml; - - /// - /// Pdb generated by the binder. - /// - public sealed class Pdb - { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixpdb"; - private static readonly Version CurrentVersion = new Version("4.0.0.0"); - - /// - /// Gets or sets the output that is a part of this pdb. - /// - /// Type of the output. - public Output Output { get; set; } - - /// - /// Loads a pdb from a path on disk. - /// - /// Path to pdb file saved on disk. - /// Suppresses wix.dll version mismatch check. - /// Pdb pdb. - public static Pdb Load(string path, bool suppressVersionCheck) - { - using (FileStream stream = File.OpenRead(path)) - using (FileStructure fs = FileStructure.Read(stream)) - { - if (FileFormat.Wixpdb != fs.FileFormat) - { - throw new WixUnexpectedFileFormatException(path, FileFormat.Wixpdb, fs.FileFormat); - } - - Uri uri = new Uri(Path.GetFullPath(path)); - using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) - { - try - { - reader.MoveToContent(); - return Pdb.Read(reader, suppressVersionCheck); - } - catch (XmlException xe) - { - throw new WixCorruptFileException(path, fs.FileFormat, xe); - } - } - } - } - - /// - /// Saves a pdb to a path on disk. - /// - /// Path to save pdb file to on disk. - public void Save(string path) - { - Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - - using (FileStream stream = File.Create(path)) - using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixpdb, null)) - using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) - { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); - } - } - - /// - /// Processes an XmlReader and builds up the pdb object. - /// - /// Reader to get data from. - /// Suppresses wix.dll version mismatch check. - /// The Pdb represented by the Xml. - internal static Pdb Read(XmlReader reader, bool suppressVersionCheck) - { - if ("wixPdb" != reader.LocalName) - { - throw new XmlException(); - } - - bool empty = reader.IsEmptyElement; - Pdb pdb = new Pdb(); - Version version = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "version": - version = new Version(reader.Value); - break; - } - } - - if (!suppressVersionCheck && null != version && !Pdb.CurrentVersion.Equals(version)) - { - throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString())); - } - - // loop through the rest of the pdb building up the Output object - if (!empty) - { - bool done = false; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "wixOutput": - pdb.Output = Output.Read(reader, suppressVersionCheck); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return pdb; - } - - /// - /// Persists a pdb in an XML format. - /// - /// XmlWriter where the Pdb should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("wixPdb", XmlNamespaceUri); - - writer.WriteAttributeString("version", Pdb.CurrentVersion.ToString()); - - this.Output.Write(writer); - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Row.cs b/src/WixToolset.Data/WindowsInstaller/Row.cs index af1af628..a267f04b 100644 --- a/src/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/WixToolset.Data/WindowsInstaller/Row.cs @@ -354,7 +354,7 @@ namespace WixToolset.Data.WindowsInstaller /// XmlWriter where the Row should persist itself as XML. internal void Write(XmlWriter writer) { - writer.WriteStartElement("row", Intermediate.XmlNamespaceUri); + writer.WriteStartElement("row", Output.XmlNamespaceUri); if (RowOperation.None != this.Operation) { diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index acb4b6fe..c7f2c8f2 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -291,7 +291,7 @@ namespace WixToolset.Data.WindowsInstaller throw new ArgumentNullException("writer"); } - writer.WriteStartElement("table", Intermediate.XmlNamespaceUri); + writer.WriteStartElement("table", Output.XmlNamespaceUri); writer.WriteAttributeString("name", this.Name); if (TableOperation.None != this.Operation) diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs index 619a5206..80303913 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs @@ -227,7 +227,7 @@ namespace WixToolset.Data.WindowsInstaller { writer.WriteStartElement("tableDefinitions", XmlNamespaceUri); - foreach (TableDefinition tableDefinition in this.collection.Values.OrderBy(t => t.Name)) + foreach (var tableDefinition in this.collection.Values.OrderBy(t => t.Name)) { tableDefinition.Write(writer); } diff --git a/src/WixToolset.Data/WixCorruptFileException.cs b/src/WixToolset.Data/WixCorruptFileException.cs index f77f0d8a..83c3eb80 100644 --- a/src/WixToolset.Data/WixCorruptFileException.cs +++ b/src/WixToolset.Data/WixCorruptFileException.cs @@ -9,7 +9,7 @@ namespace WixToolset.Data /// public class WixCorruptFileException : WixException { - public WixCorruptFileException(string path, FileFormat format, Exception innerException = null) + public WixCorruptFileException(string path, string format, Exception innerException = null) : base(ErrorMessages.CorruptFileFormat(path, format), innerException) { this.Path = path; @@ -19,7 +19,7 @@ namespace WixToolset.Data /// /// Gets the actual file format found in the file. /// - public FileFormat FileFormat { get; } + public string FileFormat { get; } /// /// Gets the path to the file with unexpected format. diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs new file mode 100644 index 00000000..f27f7c77 --- /dev/null +++ b/src/WixToolset.Data/WixOutput.cs @@ -0,0 +1,233 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.IO; + using System.IO.Compression; + using System.Reflection; + using System.Text; + + /// + /// Class that understands the standard file structure of the WiX toolset. + /// + public class WixOutput : IDisposable + { + private readonly ZipArchive archive; + private bool disposed; + + private WixOutput(Uri uri, ZipArchive archive) + { + this.Uri = uri; + this.archive = archive; + } + + public Uri Uri { get; } + + /// + /// Creates a new file structure in memory. + /// + /// Newly created WixOutput. + public static WixOutput Create() + { + var uri = new Uri("memorystream:"); + + var stream = new MemoryStream(); + + return WixOutput.Create(uri, stream); + } + + /// + /// Creates a new file structure on disk. + /// + /// Path to write file structure to. + /// Newly created WixOutput. + public static WixOutput Create(string path) + { + var uri = new Uri(Path.GetFullPath(path)); + + var stream = File.Create(path); + + return WixOutput.Create(uri, stream); + } + + /// + /// Creates a new file structure. + /// + /// Stream to write the file structure to. + /// Paths to files to embedd in the file structure. + /// Newly created WixOutput. + public static WixOutput Create(Uri uri, Stream stream) + { + var archive = new ZipArchive(stream, ZipArchiveMode.Update); + + return new WixOutput(uri, archive); + } + + /// + /// Loads a wixout from a path on disk. + /// + /// Path to wixout file saved on disk. + /// Loaded created WixOutput. + public static WixOutput Read(string path) + { + var uri = new Uri(Path.GetFullPath(path)); + + var stream = File.OpenRead(path); + + return Read(uri, stream); + } + + /// + /// Loads a wixout from a path on disk or embedded resource in assembly. + /// + /// Uri with local path to wixout file saved on disk or embedded resource in assembly. + /// Loaded created WixOutput. + public static WixOutput Read(Uri baseUri) + { + // If the embedded files are stored in an assembly resource stream (usually + // a .wixlib embedded in a WixExtension). + if ("embeddedresource" == baseUri.Scheme) + { + var assemblyPath = Path.GetFullPath(baseUri.LocalPath); + var resourceName = baseUri.Fragment.TrimStart('#'); + + var assembly = Assembly.LoadFile(assemblyPath); + return WixOutput.Read(assembly, resourceName); + } + else // normal file (usually a binary .wixlib on disk). + { + var stream = File.OpenRead(baseUri.LocalPath); + return WixOutput.Read(baseUri, stream); + } + } + + /// + /// Loads a wixout from a assembly resource stream. + /// + /// Path to wixout file saved on disk. + public static WixOutput Read(Assembly assembly, string resourceName) + { + var resourceStream = assembly.GetManifestResourceStream(resourceName); + + var uriBuilder = new UriBuilder(assembly.CodeBase) + { + Scheme = "embeddedresource", + Fragment = resourceName + }; + + return Read(uriBuilder.Uri, resourceStream); + } + + /// + /// Reads a file structure from an open stream. + /// + /// Stream to read from. + /// Loaded created WixOutput. + public static WixOutput Read(Uri uri, Stream stream, bool leaveOpen = false) + { + try + { + var archive = new ZipArchive(stream, ZipArchiveMode.Read, leaveOpen); + + return new WixOutput(uri, archive); + } + catch (InvalidDataException) + { + throw new WixException(ErrorMessages.CorruptFileFormat(uri.AbsoluteUri, "wixout")); + } + } + + /// + /// Extracts an embedded file. + /// + /// Id to the file to extract. + /// Path to write the extracted file to. + public void ExtractEmbeddedFile(string embeddedId, string outputPath) + { + var entry = this.archive.GetEntry(embeddedId); + + if (entry == null) + { + throw new ArgumentOutOfRangeException(nameof(embeddedId)); + } + + var folder = Path.GetDirectoryName(outputPath); + + Directory.CreateDirectory(folder); + + entry.ExtractToFile(outputPath); + } + + /// + /// Creates a data stream in the wixout. + /// + /// Stream to the data of the file. + public Stream CreateDataStream(string name) + { + var entry = this.archive.CreateEntry(name); + + return entry.Open(); + } + + public void ImportDataStream(string name, string path) + { + this.archive.CreateEntryFromFile(path, name, System.IO.Compression.CompressionLevel.Optimal); + } + + /// + /// Gets a non-closing stream to the data of the file. + /// + /// Stream to the data of the file. + public Stream GetDataStream(string name) + { + var entry = this.archive.GetEntry(name); + + return entry.Open(); + } + + /// + /// Gets the data of the file as a string. + /// + /// String contents data of the file. + public string GetData(string name) + { + var entry = this.archive.GetEntry(name); + + var bytes = new byte[entry.Length]; + + using (var stream = entry.Open()) + { + stream.Read(bytes, 0, bytes.Length); + } + + return Encoding.UTF8.GetString(bytes); + } + + /// + /// Disposes of the internal state of the file structure. + /// + public void Dispose() + { + this.Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Disposes of the internsl state of the file structure. + /// + /// True if disposing. + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + this.archive?.Dispose(); + } + } + + this.disposed = true; + } + } +} diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 95f16c66..0a7efe60 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -11,6 +11,10 @@ true + + + + diff --git a/src/WixToolset.Data/WixUnexpectedFileFormatException.cs b/src/WixToolset.Data/WixUnexpectedFileFormatException.cs index 340fb4d7..4bd6ba4a 100644 --- a/src/WixToolset.Data/WixUnexpectedFileFormatException.cs +++ b/src/WixToolset.Data/WixUnexpectedFileFormatException.cs @@ -9,7 +9,7 @@ namespace WixToolset.Data /// public class WixUnexpectedFileFormatException : WixException { - public WixUnexpectedFileFormatException(string path, FileFormat expectedFormat, FileFormat format, Exception innerException = null) + public WixUnexpectedFileFormatException(string path, string expectedFormat, string format, Exception innerException = null) : base(ErrorMessages.UnexpectedFileFormat(path, expectedFormat, format), innerException) { this.Path = path; @@ -20,12 +20,12 @@ namespace WixToolset.Data /// /// Gets the expected file format. /// - public FileFormat ExpectedFileFormat { get; } + public string ExpectedFileFormat { get; } /// /// Gets the actual file format found in the file. /// - public FileFormat FileFormat { get; } + public string FileFormat { get; } /// /// Gets the path to the file with unexpected format. diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 221ca19c..34e50f36 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -26,7 +26,7 @@ namespace WixToolsetTest.Data Location = ComponentLocation.Either, }); - var intermediate = new Intermediate("TestIntermediate", new[] { section }, null, null); + var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); var path = Path.GetTempFileName(); intermediate.Save(path); @@ -64,7 +64,7 @@ namespace WixToolsetTest.Data section.Tuples.Add(tuple); - var intermediate = new Intermediate("TestIntermediate", new[] { section }, null, null); + var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); var path = Path.GetTempFileName(); try @@ -108,7 +108,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); section.Tuples.Add(tuple); - var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null, null); + var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); // Intermediate #2 var fieldDefs2 = new[] @@ -130,7 +130,7 @@ namespace WixToolsetTest.Data var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); section2.Tuples.Add(tuple2); - var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null, null); + var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); // Save var path1 = Path.GetTempFileName(); @@ -191,7 +191,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); section.Tuples.Add(tuple); - var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null, null); + var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); // Intermediate #2 var fieldDefs2 = new[] @@ -219,7 +219,7 @@ namespace WixToolsetTest.Data var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); section2.Tuples.Add(tuple2); - var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null, null); + var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); // Save var path1 = Path.GetTempFileName(); @@ -290,7 +290,7 @@ namespace WixToolsetTest.Data Location = ComponentLocation.Either, }); - var intermediate = new Intermediate("TestIntermediate", new[] { section }, localizations.ToDictionary(l => l.Culture), null); + var intermediate = new Intermediate("TestIntermediate", new[] { section }, localizations.ToDictionary(l => l.Culture)); var path = Path.GetTempFileName(); try -- cgit v1.2.3-55-g6feb From 94da334adaafa4444fb278991aa01cce58d9f758 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 26 Oct 2019 13:35:15 -0700 Subject: Rename Output to WindowsInstallerData --- src/WixToolset.Data/WindowsInstaller/Field.cs | 2 +- .../WindowsInstaller/ObjectField.cs | 2 +- src/WixToolset.Data/WindowsInstaller/Output.cs | 262 -------------------- src/WixToolset.Data/WindowsInstaller/Row.cs | 2 +- src/WixToolset.Data/WindowsInstaller/SubStorage.cs | 12 +- src/WixToolset.Data/WindowsInstaller/Table.cs | 2 +- .../WindowsInstaller/WindowsInstallerData.cs | 264 +++++++++++++++++++++ src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd | 66 ++++++ .../WindowsInstaller/Xsd/outputs.xsd | 66 ------ src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd | 32 --- 10 files changed, 340 insertions(+), 370 deletions(-) delete mode 100644 src/WixToolset.Data/WindowsInstaller/Output.cs create mode 100644 src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs create mode 100644 src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd delete mode 100644 src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd delete mode 100644 src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Field.cs b/src/WixToolset.Data/WindowsInstaller/Field.cs index ac8df9a4..84e8d543 100644 --- a/src/WixToolset.Data/WindowsInstaller/Field.cs +++ b/src/WixToolset.Data/WindowsInstaller/Field.cs @@ -275,7 +275,7 @@ namespace WixToolset.Data.WindowsInstaller /// XmlWriter where the Field should persist itself as XML. internal virtual void Write(XmlWriter writer) { - writer.WriteStartElement("field", Output.XmlNamespaceUri); + writer.WriteStartElement("field", WindowsInstallerData.XmlNamespaceUri); if (this.Modified) { diff --git a/src/WixToolset.Data/WindowsInstaller/ObjectField.cs b/src/WixToolset.Data/WindowsInstaller/ObjectField.cs index 4e654dde..f10837c1 100644 --- a/src/WixToolset.Data/WindowsInstaller/ObjectField.cs +++ b/src/WixToolset.Data/WindowsInstaller/ObjectField.cs @@ -130,7 +130,7 @@ namespace WixToolset.Data.WindowsInstaller /// XmlWriter where the Field should persist itself as XML. internal override void Write(XmlWriter writer) { - writer.WriteStartElement("field", Output.XmlNamespaceUri); + writer.WriteStartElement("field", WindowsInstallerData.XmlNamespaceUri); if (this.EmbeddedFileIndex.HasValue) { diff --git a/src/WixToolset.Data/WindowsInstaller/Output.cs b/src/WixToolset.Data/WindowsInstaller/Output.cs deleted file mode 100644 index ee46c159..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Output.cs +++ /dev/null @@ -1,262 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.Linq; - using System.Xml; - - /// - /// Output is generated by the linker. - /// - public sealed class Output - { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixout"; - private static readonly Version CurrentVersion = new Version("4.0.0.0"); - private const string WixOutputStreamName = "wix-wi.xml"; - - /// - /// Creates a new empty output object. - /// - /// The source line information for the output. - public Output(SourceLineNumber sourceLineNumbers) - { - this.SourceLineNumbers = sourceLineNumbers; - this.SubStorages = new List(); - this.Tables = new TableIndexedCollection(); - } - - /// - /// Gets the type of the output. - /// - /// Type of the output. - public OutputType Type { get; set; } - - /// - /// Gets or sets the codepage for this output. - /// - /// Codepage of the output. - public int Codepage { get; set; } - - /// - /// Gets the source line information for this output. - /// - /// The source line information for this output. - public SourceLineNumber SourceLineNumbers { get; private set; } - - /// - /// Gets the substorages in this output. - /// - /// The substorages in this output. - public ICollection SubStorages { get; private set; } - - /// - /// Gets the tables contained in this output. - /// - /// Collection of tables. - public TableIndexedCollection Tables { get; private set; } - - /// - /// Loads an output from a path on disk. - /// - /// Path to output file saved on disk. - /// Suppresses wix.dll version mismatch check. - /// Output object. - public static Output Load(string path, bool suppressVersionCheck) - { - using (var wixout = WixOutput.Read(path)) - using (var stream = wixout.GetDataStream(WixOutputStreamName)) - using (var reader = XmlReader.Create(stream, null, wixout.Uri.AbsoluteUri)) - { - try - { - reader.MoveToContent(); - return Output.Read(reader, suppressVersionCheck); - } - catch (XmlException xe) - { - throw new WixCorruptFileException(path, "wixout", xe); - } - } - } - - /// - /// Saves an output to a WixOutput container. - /// - /// Container to save to. - public void Save(WixOutput wixout) - { - using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName))) - { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); - } - } - - /// - /// Processes an XmlReader and builds up the output object. - /// - /// Reader to get data from. - /// Suppresses wix.dll version mismatch check. - /// The Output represented by the Xml. - internal static Output Read(XmlReader reader, bool suppressVersionCheck) - { - if (!reader.LocalName.Equals("wixOutput")) - { - throw new XmlException(); - } - - var empty = reader.IsEmptyElement; - var output = new Output(SourceLineNumber.CreateFromUri(reader.BaseURI)); - Version version = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "codepage": - output.Codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture.NumberFormat); - break; - case "type": - switch (reader.Value) - { - case "Bundle": - output.Type = OutputType.Bundle; - break; - case "Module": - output.Type = OutputType.Module; - break; - case "Patch": - output.Type = OutputType.Patch; - break; - case "PatchCreation": - output.Type = OutputType.PatchCreation; - break; - case "Product": - output.Type = OutputType.Product; - break; - case "Transform": - output.Type = OutputType.Transform; - break; - default: - throw new XmlException(); - } - break; - case "version": - version = new Version(reader.Value); - break; - } - } - - if (!suppressVersionCheck && null != version && !Output.CurrentVersion.Equals(version)) - { - throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString())); - } - - // loop through the rest of the xml building up the Output object - TableDefinitionCollection tableDefinitions = null; - var tables = new List
(); - if (!empty) - { - var done = false; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "subStorage": - output.SubStorages.Add(SubStorage.Read(reader)); - break; - case "table": - if (null == tableDefinitions) - { - throw new XmlException(); - } - tables.Add(Table.Read(reader, tableDefinitions)); - break; - case "tableDefinitions": - tableDefinitions = TableDefinitionCollection.Read(reader); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - output.Tables = new TableIndexedCollection(tables); - return output; - } - - /// - /// Ensure this output contains a particular table. - /// - /// Definition of the table that should exist. - /// Optional section to use for the table. If one is not provided, the entry section will be used. - /// The table in this output. - public Table EnsureTable(TableDefinition tableDefinition) - { - if (!this.Tables.TryGetTable(tableDefinition.Name, out var table)) - { - table = new Table(tableDefinition); - this.Tables.Add(table); - } - - return table; - } - - /// - /// Persists an output in an XML format. - /// - /// XmlWriter where the Output should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("wixOutput", XmlNamespaceUri); - - writer.WriteAttributeString("type", this.Type.ToString()); - - if (0 != this.Codepage) - { - writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); - } - - writer.WriteAttributeString("version", Output.CurrentVersion.ToString()); - - // Collect all the table definitions and write them. - var tableDefinitions = new TableDefinitionCollection(); - foreach (var table in this.Tables) - { - tableDefinitions.Add(table.Definition); - } - tableDefinitions.Write(writer); - - foreach (var table in this.Tables.OrderBy(t => t.Name)) - { - table.Write(writer); - } - - foreach (var subStorage in this.SubStorages) - { - subStorage.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Row.cs b/src/WixToolset.Data/WindowsInstaller/Row.cs index a267f04b..a7a63d58 100644 --- a/src/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/WixToolset.Data/WindowsInstaller/Row.cs @@ -354,7 +354,7 @@ namespace WixToolset.Data.WindowsInstaller /// XmlWriter where the Row should persist itself as XML. internal void Write(XmlWriter writer) { - writer.WriteStartElement("row", Output.XmlNamespaceUri); + writer.WriteStartElement("row", WindowsInstallerData.XmlNamespaceUri); if (RowOperation.None != this.Operation) { diff --git a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs b/src/WixToolset.Data/WindowsInstaller/SubStorage.cs index c1981f1b..6aae1dd8 100644 --- a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs +++ b/src/WixToolset.Data/WindowsInstaller/SubStorage.cs @@ -14,7 +14,7 @@ namespace WixToolset.Data.WindowsInstaller /// /// The substorage name. /// The substorage data. - public SubStorage(string name, Output data) + public SubStorage(string name, WindowsInstallerData data) { this.Name = name; this.Data = data; @@ -30,7 +30,7 @@ namespace WixToolset.Data.WindowsInstaller /// Gets the substorage data. /// /// The substorage data. - public Output Data { get; } + public WindowsInstallerData Data { get; } /// /// Creates a SubStorage from the XmlReader. @@ -44,7 +44,7 @@ namespace WixToolset.Data.WindowsInstaller throw new XmlException(); } - Output data = null; + WindowsInstallerData data = null; bool empty = reader.IsEmptyElement; string name = null; @@ -69,8 +69,8 @@ namespace WixToolset.Data.WindowsInstaller case XmlNodeType.Element: switch (reader.LocalName) { - case "wixOutput": - data = Output.Read(reader, true); + case WindowsInstallerData.XmlElementName: + data = WindowsInstallerData.Read(reader, true); break; default: throw new XmlException(); @@ -97,7 +97,7 @@ namespace WixToolset.Data.WindowsInstaller /// XmlWriter where the SubStorage should persist itself as XML. internal void Write(XmlWriter writer) { - writer.WriteStartElement("subStorage", Output.XmlNamespaceUri); + writer.WriteStartElement("subStorage", WindowsInstallerData.XmlNamespaceUri); writer.WriteAttributeString("name", this.Name); diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index c7f2c8f2..3325dd8b 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -291,7 +291,7 @@ namespace WixToolset.Data.WindowsInstaller throw new ArgumentNullException("writer"); } - writer.WriteStartElement("table", Output.XmlNamespaceUri); + writer.WriteStartElement("table", WindowsInstallerData.XmlNamespaceUri); writer.WriteAttributeString("name", this.Name); if (TableOperation.None != this.Operation) diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs new file mode 100644 index 00000000..0855997c --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -0,0 +1,264 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + using System.Xml; + + /// + /// Output is generated by the linker. + /// + public sealed class WindowsInstallerData + { + internal const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/windowsinstallerdata"; + internal const string XmlElementName = "windowsInstallerData"; + + private static readonly Version CurrentVersion = new Version("4.0.0.0"); + private const string WixOutputStreamName = "wix-wid.xml"; + + /// + /// Creates a new empty output object. + /// + /// The source line information for the output. + public WindowsInstallerData(SourceLineNumber sourceLineNumbers) + { + this.SourceLineNumbers = sourceLineNumbers; + this.SubStorages = new List(); + this.Tables = new TableIndexedCollection(); + } + + /// + /// Gets the type of the output. + /// + /// Type of the output. + public OutputType Type { get; set; } + + /// + /// Gets or sets the codepage for this output. + /// + /// Codepage of the output. + public int Codepage { get; set; } + + /// + /// Gets the source line information for this output. + /// + /// The source line information for this output. + public SourceLineNumber SourceLineNumbers { get; private set; } + + /// + /// Gets the substorages in this output. + /// + /// The substorages in this output. + public ICollection SubStorages { get; private set; } + + /// + /// Gets the tables contained in this output. + /// + /// Collection of tables. + public TableIndexedCollection Tables { get; private set; } + + /// + /// Loads an output from a path on disk. + /// + /// Path to output file saved on disk. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(string path, bool suppressVersionCheck) + { + using (var wixout = WixOutput.Read(path)) + using (var stream = wixout.GetDataStream(WixOutputStreamName)) + using (var reader = XmlReader.Create(stream, null, wixout.Uri.AbsoluteUri)) + { + try + { + reader.MoveToContent(); + return WindowsInstallerData.Read(reader, suppressVersionCheck); + } + catch (XmlException xe) + { + throw new WixCorruptFileException(path, "wixout", xe); + } + } + } + + /// + /// Saves an output to a WixOutput container. + /// + /// Container to save to. + public void Save(WixOutput wixout) + { + using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName))) + { + writer.WriteStartDocument(); + this.Write(writer); + writer.WriteEndDocument(); + } + } + + /// + /// Processes an XmlReader and builds up the output object. + /// + /// Reader to get data from. + /// Suppresses wix.dll version mismatch check. + /// The Output represented by the Xml. + internal static WindowsInstallerData Read(XmlReader reader, bool suppressVersionCheck) + { + if (!reader.LocalName.Equals(WindowsInstallerData.XmlElementName)) + { + throw new XmlException(); + } + + var empty = reader.IsEmptyElement; + var output = new WindowsInstallerData(SourceLineNumber.CreateFromUri(reader.BaseURI)); + Version version = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "codepage": + output.Codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture.NumberFormat); + break; + case "type": + switch (reader.Value) + { + case "Bundle": + output.Type = OutputType.Bundle; + break; + case "Module": + output.Type = OutputType.Module; + break; + case "Patch": + output.Type = OutputType.Patch; + break; + case "PatchCreation": + output.Type = OutputType.PatchCreation; + break; + case "Product": + output.Type = OutputType.Product; + break; + case "Transform": + output.Type = OutputType.Transform; + break; + default: + throw new XmlException(); + } + break; + case "version": + version = new Version(reader.Value); + break; + } + } + + if (!suppressVersionCheck && null != version && !WindowsInstallerData.CurrentVersion.Equals(version)) + { + throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), WindowsInstallerData.XmlElementName, version.ToString(), WindowsInstallerData.CurrentVersion.ToString())); + } + + // loop through the rest of the xml building up the Output object + TableDefinitionCollection tableDefinitions = null; + var tables = new List
(); + if (!empty) + { + var done = false; + + // loop through all the fields in a row + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "subStorage": + output.SubStorages.Add(SubStorage.Read(reader)); + break; + case "table": + if (null == tableDefinitions) + { + throw new XmlException(); + } + tables.Add(Table.Read(reader, tableDefinitions)); + break; + case "tableDefinitions": + tableDefinitions = TableDefinitionCollection.Read(reader); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + output.Tables = new TableIndexedCollection(tables); + return output; + } + + /// + /// Ensure this output contains a particular table. + /// + /// Definition of the table that should exist. + /// Optional section to use for the table. If one is not provided, the entry section will be used. + /// The table in this output. + public Table EnsureTable(TableDefinition tableDefinition) + { + if (!this.Tables.TryGetTable(tableDefinition.Name, out var table)) + { + table = new Table(tableDefinition); + this.Tables.Add(table); + } + + return table; + } + + /// + /// Persists an output in an XML format. + /// + /// XmlWriter where the Output should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement(WindowsInstallerData.XmlElementName, XmlNamespaceUri); + + writer.WriteAttributeString("type", this.Type.ToString()); + + if (0 != this.Codepage) + { + writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); + } + + writer.WriteAttributeString("version", WindowsInstallerData.CurrentVersion.ToString()); + + // Collect all the table definitions and write them. + var tableDefinitions = new TableDefinitionCollection(); + foreach (var table in this.Tables) + { + tableDefinitions.Add(table.Definition); + } + tableDefinitions.Write(writer); + + foreach (var table in this.Tables.OrderBy(t => t.Name)) + { + table.Write(writer); + } + + foreach (var subStorage in this.SubStorages) + { + subStorage.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd new file mode 100644 index 00000000..a3dc7e2b --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd @@ -0,0 +1,66 @@ + + + + + + + + Schema for describing WiX Windows Installer Data files. + + + + + + + + + + + + + + + + Codepage of the output. + + + + + Type of the output. + + + + + + + + + + + + + + + Version of WiX used to create this output file. + + + + + + + + + + + + + Name of the substorage. + + + + + diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd deleted file mode 100644 index 00e20f12..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Xsd/outputs.xsd +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - Schema for describing WiX Output files (.wixout). - - - - - - - - - - - - - - - - Codepage of the output. - - - - - Type of the output. - - - - - - - - - - - - - - - Version of WiX used to create this output file. - - - - - - - - - - - - - Name of the substorage. - - - - - diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd deleted file mode 100644 index c1d1756d..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Xsd/pdbs.xsd +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - Schema for describing WiX Pdb files (.wixpdb). - - - - - - - - - - - - - - - - Version of WiX used to create this pdb file - - - - - -- cgit v1.2.3-55-g6feb From 6823fa7340169e0cba56c20548b1bfb346121a17 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 14 Nov 2019 18:04:32 -0500 Subject: Fix EnvironmentTuple nullable fields. --- src/WixToolset.Data/Tuples/EnvironmentTuple.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs index a6a10ac5..98c51f4d 100644 --- a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs +++ b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs @@ -84,13 +84,13 @@ namespace WixToolset.Data.Tuples public EnvironmentActionType? Action { get => (EnvironmentActionType?)this.Fields[(int)EnvironmentTupleFields.Action].AsNullableNumber(); - set => this.Set((int)EnvironmentTupleFields.Action, (int)value); + set => this.Set((int)EnvironmentTupleFields.Action, (int?)value); } public EnvironmentPartType? Part { get => (EnvironmentPartType?)this.Fields[(int)EnvironmentTupleFields.Part].AsNullableNumber(); - set => this.Set((int)EnvironmentTupleFields.Part, (int)value); + set => this.Set((int)EnvironmentTupleFields.Part, (int?)value); } public bool Permanent -- cgit v1.2.3-55-g6feb From b3fdaaded840dffce93d35aff2bcf19ba4f18371 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 25 Nov 2019 16:00:34 +1000 Subject: Update AdvtExecuteSequence standard actions to AdvertiseExecuteSequence. --- .../WindowsInstaller/WindowsInstallerStandard.cs | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index e3e33f02..43a5e54c 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -90,7 +90,7 @@ namespace WixToolset.Data.WindowsInstaller private static readonly WixActionTuple[] standardActions = new[] { new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, @@ -98,7 +98,7 @@ namespace WixToolset.Data.WindowsInstaller new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, @@ -113,48 +113,48 @@ namespace WixToolset.Data.WindowsInstaller new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvtExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, -- cgit v1.2.3-55-g6feb From f12179866ef9963a9349ff16e11c35607d8dddef Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 6 Jan 2020 20:31:08 -0500 Subject: Remove ErrorTuple id as field. --- src/WixToolset.Data/Tuples/ErrorTuple.cs | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/ErrorTuple.cs b/src/WixToolset.Data/Tuples/ErrorTuple.cs index e7c93c59..89968283 100644 --- a/src/WixToolset.Data/Tuples/ErrorTuple.cs +++ b/src/WixToolset.Data/Tuples/ErrorTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.Error, new[] { - new IntermediateFieldDefinition(nameof(ErrorTupleFields.Error), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(ErrorTupleFields.Message), IntermediateFieldType.String), }, typeof(ErrorTuple)); @@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples { public enum ErrorTupleFields { - Error, Message, } @@ -37,12 +35,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ErrorTupleFields index] => this.Fields[(int)index]; - public int Error - { - get => (int)this.Fields[(int)ErrorTupleFields.Error]; - set => this.Set((int)ErrorTupleFields.Error, value); - } - public string Message { get => (string)this.Fields[(int)ErrorTupleFields.Message]; -- cgit v1.2.3-55-g6feb From 3cb3464e12bcaee6b0555fce05b96a56e3f6c375 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 12 Jan 2020 13:49:39 -0800 Subject: Binary Data should be path value --- src/WixToolset.Data/Tuples/BinaryTuple.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/BinaryTuple.cs b/src/WixToolset.Data/Tuples/BinaryTuple.cs index 9e8df73d..358f5bf6 100644 --- a/src/WixToolset.Data/Tuples/BinaryTuple.cs +++ b/src/WixToolset.Data/Tuples/BinaryTuple.cs @@ -35,9 +35,9 @@ namespace WixToolset.Data.Tuples public IntermediateField this[BinaryTupleFields index] => this.Fields[(int)index]; - public string Data + public IntermediateFieldPathValue Data { - get => (string)this.Fields[(int)BinaryTupleFields.Data]; + get => this.Fields[(int)BinaryTupleFields.Data].AsPath(); set => this.Set((int)BinaryTupleFields.Data, value); } } -- cgit v1.2.3-55-g6feb From af83b04dc7b8c05607d3263835c39fdf001649fc Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Fri, 17 Jan 2020 21:02:52 -0500 Subject: Let listeners adjust message levels; general messaging cleanup. --- src/WixToolset.Data/Message.cs | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Message.cs b/src/WixToolset.Data/Message.cs index 6cd4105c..85a402e5 100644 --- a/src/WixToolset.Data/Message.cs +++ b/src/WixToolset.Data/Message.cs @@ -82,19 +82,6 @@ namespace WixToolset.Data /// The arguments for the format string. public object[] MessageArgs { get; } - /// - /// Makes a warning an error. - /// - public void ElevateWarningToError() - { - if (this.Level != MessageLevel.Warning) - { - throw new InvalidOperationException($"Cannot elevate {this.Level.ToString()} Message to an Error. Only Warning Messages can be elevated to an Error."); - } - - this.Level = MessageLevel.Error; - } - public override string ToString() { if (this.ResourceManager == null) -- cgit v1.2.3-55-g6feb From 7d8b84ebde2940b693462ca8ef22117fe6b9420c Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 23 Jan 2020 14:15:56 -0500 Subject: Fix CustomTable/@Unreal="yes" binding. --- src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index 2ef2b88d..bfb2031a 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -22,7 +22,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Sets), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Descriptions), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Modularizations), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Bool), }, typeof(WixCustomTableTuple)); } -- cgit v1.2.3-55-g6feb From 2b001acb812edb523a072ac0bb4f49761616c080 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 5 Feb 2020 14:33:15 -0800 Subject: Add support for unreal columns --- .../WindowsInstaller/ColumnDefinition.cs | 20 ++++++++++++++++++-- .../WindowsInstaller/TableDefinition.cs | 6 ++++++ 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs b/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs index 1cbad230..de554fd8 100644 --- a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs @@ -29,7 +29,7 @@ namespace WixToolset.Data.WindowsInstaller /// Type of modularization for column /// If the column is localizable. /// If whitespace should be preserved in a CDATA node. - public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnCategory category, long? minValue = null, long? maxValue = null, string keyTable = null, int? keyColumn = null, string possibilities = null, string description = null, ColumnModularizeType? modularizeType = null, bool forceLocalizable = false, bool useCData = false) + public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnCategory category, long? minValue = null, long? maxValue = null, string keyTable = null, int? keyColumn = null, string possibilities = null, string description = null, ColumnModularizeType? modularizeType = null, bool forceLocalizable = false, bool useCData = false, bool unreal = false) { this.Name = name; this.Type = type; @@ -46,6 +46,7 @@ namespace WixToolset.Data.WindowsInstaller this.Possibilities = possibilities; this.Description = description; this.UseCData = useCData; + this.Unreal = unreal; } /// @@ -145,6 +146,12 @@ namespace WixToolset.Data.WindowsInstaller /// true if whitespace should be preserved in a CDATA node. public bool UseCData { get; } + /// + /// Gets if column is Unreal. + /// + /// true if column should not be included in idts. + public bool Unreal { get; } + /// /// Parses a column definition in a table definition. /// @@ -174,6 +181,7 @@ namespace WixToolset.Data.WindowsInstaller bool primaryKey = false; var type = ColumnType.Unknown; bool useCData = false; + bool unreal = false; // parse the attributes while (reader.MoveToNextAttribute()) @@ -370,6 +378,9 @@ namespace WixToolset.Data.WindowsInstaller case "useCData": useCData = reader.Value.Equals("yes"); break; + case "unreal": + unreal = reader.Value.Equals("yes"); + break; } } @@ -396,7 +407,7 @@ namespace WixToolset.Data.WindowsInstaller } } - ColumnDefinition columnDefinition = new ColumnDefinition(name, type, length, primaryKey, nullable, category, minValue, maxValue, keyTable, keyColumn, possibilities, description, modularize, localizable, useCData); + ColumnDefinition columnDefinition = new ColumnDefinition(name, type, length, primaryKey, nullable, category, minValue, maxValue, keyTable, keyColumn, possibilities, description, modularize, localizable, useCData, unreal); columnDefinition.Added = added; return columnDefinition; @@ -601,6 +612,11 @@ namespace WixToolset.Data.WindowsInstaller writer.WriteAttributeString("useCData", "yes"); } + if (this.Unreal) + { + writer.WriteAttributeString("unreal", "yes"); + } + writer.WriteEndElement(); } diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index ee8ab0c1..4738ac82 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -88,6 +88,12 @@ namespace WixToolset.Data.WindowsInstaller var thisColumnDef = this.Columns[i]; var updatedColumnDef = updated.Columns[i]; + // Igmore unreal columns when comparing table definitions. + if (thisColumnDef.Unreal || updatedColumnDef.Unreal) + { + continue; + } + ret = thisColumnDef.CompareTo(updatedColumnDef); } } -- cgit v1.2.3-55-g6feb From e87c38acec6597ab4d98820e2ba1fc891483c023 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 5 Feb 2020 14:34:11 -0800 Subject: Improve handling of standard actions --- .../WindowsInstaller/WindowsInstallerStandard.cs | 426 +++++++++------------ 1 file changed, 179 insertions(+), 247 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 43a5e54c..5f01c3a0 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -2,244 +2,15 @@ namespace WixToolset.Data.WindowsInstaller { + using System; using System.Collections.Generic; + using System.Linq; using WixToolset.Data.Tuples; public static class WindowsInstallerStandard { - private static readonly HashSet standardActionNames = new HashSet - { - "AllocateRegistrySpace", - "AppSearch", - "BindImage", - "CCPSearch", - "CostFinalize", - "CostInitialize", - "CreateFolders", - "CreateShortcuts", - "DeleteServices", - "DisableRollback", - "DuplicateFiles", - "ExecuteAction", - "FileCost", - "FindRelatedProducts", - "ForceReboot", - "InstallAdminPackage", - "InstallExecute", - "InstallExecuteAgain", - "InstallFiles", - "InstallFinalize", - "InstallInitialize", - "InstallODBC", - "InstallServices", - "InstallSFPCatalogFile", - "InstallValidate", - "IsolateComponents", - "LaunchConditions", - "MigrateFeatureStates", - "MoveFiles", - "MsiConfigureServices", - "MsiPublishAssemblies", - "MsiUnpublishAssemblies", - "PatchFiles", - "ProcessComponents", - "PublishComponents", - "PublishFeatures", - "PublishProduct", - "RegisterClassInfo", - "RegisterComPlus", - "RegisterExtensionInfo", - "RegisterFonts", - "RegisterMIMEInfo", - "RegisterProduct", - "RegisterProgIdInfo", - "RegisterTypeLibraries", - "RegisterUser", - "RemoveDuplicateFiles", - "RemoveEnvironmentStrings", - "RemoveExistingProducts", - "RemoveFiles", - "RemoveFolders", - "RemoveIniValues", - "RemoveODBC", - "RemoveRegistryValues", - "RemoveShortcuts", - "ResolveSource", - "RMCCPSearch", - "ScheduleReboot", - "SelfRegModules", - "SelfUnregModules", - "SetODBCFolders", - "StartServices", - "StopServices", - "UnpublishComponents", - "UnpublishFeatures", - "UnregisterClassInfo", - "UnregisterComPlus", - "UnregisterExtensionInfo", - "UnregisterFonts", - "UnregisterMIMEInfo", - "UnregisterProgIdInfo", - "UnregisterTypeLibraries", - "ValidateProductID", - "WriteEnvironmentStrings", - "WriteIniValues", - "WriteRegistryValues", - }; - - private static readonly WixActionTuple[] standardActions = new[] - { - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - }; + private static readonly Dictionary standardActionsById; + private static readonly HashSet standardActionNames; private static readonly HashSet standardDirectories = new HashSet { @@ -468,39 +239,200 @@ namespace WixToolset.Data.WindowsInstaller "WindowsVolume", }; + static WindowsInstallerStandard() + { + var standardActions = new[] + { + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + }; + + standardActionNames = new HashSet(standardActions.Select(a => a.Action)); + standardActionsById = standardActions.ToDictionary(a => a.Id.Id); + } + /// /// Find out if an action is a standard action. /// /// Name of the action. /// true if the action is standard, false otherwise. - public static bool IsStandardAction(string actionName) - { - return standardActionNames.Contains(actionName); - } + public static bool IsStandardAction(string actionName) => standardActionNames.Contains(actionName); /// - /// Array of standard actions. + /// Standard actions. /// - public static WixActionTuple[] StandardActions() => standardActions; + public static IEnumerable StandardActions() => standardActionsById.Values; /// /// Find out if a directory is a standard directory. /// /// Name of the directory. /// true if the directory is standard, false otherwise. - public static bool IsStandardDirectory(string directoryName) - { - return standardDirectories.Contains(directoryName); - } + public static bool IsStandardDirectory(string directoryName) => standardDirectories.Contains(directoryName); /// /// Find out if a property is a standard property. /// /// Name of the property. /// true if a property is standard, false otherwise. - public static bool IsStandardProperty(string propertyName) - { - return standardProperties.Contains(propertyName); - } + public static bool IsStandardProperty(string propertyName) => standardProperties.Contains(propertyName); + + /// + /// Try to get standard action by id. + /// + public static bool TryGetStandardAction(string id, out WixActionTuple standardAction) => standardActionsById.TryGetValue(id, out standardAction); + + /// + /// Try to get standard action by sequence and action name. + /// + public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionTuple standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); } } -- cgit v1.2.3-55-g6feb From df8f367c7bc515be7f5652338f1e64e6a9e6acd8 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 5 Feb 2020 14:36:35 -0800 Subject: Code cleanup --- .../WindowsInstaller/Rows/FileRow.cs | 525 ++------------------- src/WixToolset.Data/WindowsInstaller/SubStorage.cs | 8 +- .../WindowsInstaller/TableDefinitionCollection.cs | 61 +-- .../WindowsInstaller/TableIndexedCollection.cs | 62 +-- .../WindowsInstaller/WindowsInstallerData.cs | 67 +-- 5 files changed, 117 insertions(+), 606 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs index cd3660e4..1cf8cf12 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs @@ -2,41 +2,13 @@ namespace WixToolset.Data.WindowsInstaller.Rows { - using System; using System.Diagnostics; - using System.Globalization; /// /// Specialization of a row for the file table. /// - public sealed class FileRow : Row //, IComparable + public sealed class FileRow : Row { - //private string assemblyApplication; - //private string assemblyManifest; - //private FileAssemblyType assemblyType; - //private string directory; - //private int diskId; - //private bool fromModule; - //private bool isGeneratedShortFileName; - //private int patchGroup; - //private string processorArchitecture; - //private string source; - //private Row hashRow; - //private List assemblyNameRows; - //private string[] previousSource; - //private string symbols; - //private string[] previousSymbols; - //private PatchAttributeType patchAttributes; - //private string retainOffsets; - //private string retainLengths; - //private string ignoreOffsets; - //private string ignoreLengths; - //private string[] previousRetainOffsets; - //private string[] previousRetainLengths; - //private string[] previousIgnoreOffsets; - //private string[] previousIgnoreLengths; - //private string patch; - /// /// Creates a File row that belongs to a table. /// @@ -45,13 +17,6 @@ namespace WixToolset.Data.WindowsInstaller.Rows public FileRow(SourceLineNumber sourceLineNumbers, Table table) : base(sourceLineNumbers, table) { - //this.assemblyType = FileAssemblyType.NotAnAssembly; - //this.previousSource = new string[1]; - //this.previousSymbols = new string[1]; - //this.previousRetainOffsets = new string[1]; - //this.previousRetainLengths = new string[1]; - //this.previousIgnoreOffsets = new string[1]; - //this.previousIgnoreLengths = new string[1]; } /// @@ -62,13 +27,6 @@ namespace WixToolset.Data.WindowsInstaller.Rows public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : base(sourceLineNumbers, tableDefinition) { - //this.assemblyType = FileAssemblyType.NotAnAssembly; - //this.previousSource = new string[1]; - //this.previousSymbols = new string[1]; - //this.previousRetainOffsets = new string[1]; - //this.previousRetainLengths = new string[1]; - //this.previousIgnoreOffsets = new string[1]; - //this.previousIgnoreLengths = new string[1]; } /// @@ -77,8 +35,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Primary key of the file row. public string File { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } + get => this.FieldAsString(0); + set => this.Fields[0].Data = value; } /// @@ -87,8 +45,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Component this file row belongs to. public string Component { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } + get => this.FieldAsString(1); + set => this.Fields[1].Data = value; } /// @@ -97,8 +55,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Name of the file. public string FileName { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } + get => this.FieldAsString(2); + set => this.Fields[2].Data = value; } /// @@ -110,18 +68,12 @@ namespace WixToolset.Data.WindowsInstaller.Rows { get { - string fileName = this.FileName; - int index = fileName.IndexOf('|'); + var fileName = this.FileName; + var index = fileName.IndexOf('|'); // If it doesn't contain a pipe, just return the whole string - if (-1 == index) - { - return fileName; - } - else // otherwise, extract the part of the string after the pipe - { - return fileName.Substring(index + 1); - } + // otherwise, extract the part of the string after the pipe. + return (-1 == index) ? fileName : fileName.Substring(index + 1); } } @@ -131,8 +83,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Size of the file. public int FileSize { - get { return (int)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } + get => this.FieldAsInteger(3); + set => this.Fields[3].Data = value; } /// @@ -141,8 +93,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Version of the file. public string Version { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } + get => this.FieldAsString(4); + set => this.Fields[4].Data = value; } /// @@ -151,8 +103,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// LCID of the file. public string Language { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } + get => this.FieldAsString(5); + set => this.Fields[5].Data = value; } /// @@ -161,8 +113,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Attributes on a file. public int Attributes { - get { return Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture); } - set { this.Fields[6].Data = value; } + get => this.FieldAsInteger(6); + set => this.Fields[6].Data = value; } /// @@ -173,8 +125,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows { get { - bool compressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesCompressed)); - bool noncompressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesNoncompressed)); + var compressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesCompressed)); + var noncompressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesNoncompressed)); if (compressedFlag && noncompressedFlag) { @@ -225,415 +177,38 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Sequence of the file row. public int Sequence { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } + get => this.FieldAsInteger(7); + set => this.Fields[7].Data = value; } - /////// - /////// Gets or sets the type of assembly of file row. - /////// - /////// Assembly type for file row. - ////public FileAssemblyType AssemblyType - ////{ - //// get { return this.assemblyType; } - //// set { this.assemblyType = value; } - ////} - - /////// - /////// Gets or sets the identifier for the assembly application. - /////// - /////// Identifier for the assembly application. - ////public string AssemblyApplication - ////{ - //// get { return this.assemblyApplication; } - //// set { this.assemblyApplication = value; } - ////} - - /////// - /////// Gets or sets the identifier for the assembly manifest. - /////// - /////// Identifier for the assembly manifest. - ////public string AssemblyManifest - ////{ - //// get { return this.assemblyManifest; } - //// set { this.assemblyManifest = value; } - ////} - - /////// - /////// Gets or sets the directory of the file. - /////// - /////// Directory of the file. - ////public string Directory - ////{ - //// get { return this.directory; } - //// set { this.directory = value; } - ////} - - /////// - /////// Gets or sets the disk id for this file. - /////// - /////// Disk id for the file. - ////public int DiskId - ////{ - //// get { return this.diskId; } - //// set { this.diskId = value; } - ////} - - /////// - /////// Gets or sets the source location to the file. - /////// - /////// Source location to the file. - ////public string Source - ////{ - //// get { return this.source; } - //// set { this.source = value; } - ////} - - /////// - /////// Gets or sets the source location to the previous file. - /////// - /////// Source location to the previous file. - ////public string PreviousSource - ////{ - //// get { return this.previousSource[0]; } - //// set { this.previousSource[0] = value; } - ////} - - /////// - /////// Gets the source location to the previous files. - /////// - /////// Source location to the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousSourceArray - ////{ - //// get { return this.previousSource; } - ////} - - /////// - /////// Gets or sets the architecture the file executes on. - /////// - /////// Architecture the file executes on. - ////public string ProcessorArchitecture - ////{ - //// get { return this.processorArchitecture; } - //// set { this.processorArchitecture = value; } - ////} - - /////// - /////// Gets of sets the patch group of a patch-added file. - /////// - /////// The patch group of a patch-added file. - ////public int PatchGroup - ////{ - //// get { return this.patchGroup; } - //// set { this.patchGroup = value; } - ////} - - /////// - /////// Gets or sets the patch header of the file. - /////// - /////// Patch header of the file. - ////public string Patch - ////{ - //// get { return this.patch; } - //// set { this.patch = value; } - ////} - - /////// - /////// Gets or sets the locations to find the file's symbols. - /////// - /////// Symbol paths for the file. - ////public string Symbols - ////{ - //// get { return this.symbols; } - //// set { this.symbols = value; } - ////} - - /////// - /////// Gets or sets the locations to find the file's previous symbols. - /////// - /////// Symbol paths for the previous file. - ////public string PreviousSymbols - ////{ - //// get { return this.previousSymbols[0]; } - //// set { this.previousSymbols[0] = value; } - ////} - - /////// - /////// Gets the locations to find the files' previous symbols. - /////// - /////// Symbol paths for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousSymbolsArray - ////{ - //// get { return this.previousSymbols; } - ////} - - /////// - /////// Gets or sets the generated short file name attribute. - /////// - /////// The generated short file name attribute. - ////public bool IsGeneratedShortFileName - ////{ - //// get { return this.isGeneratedShortFileName; } - - //// set { this.isGeneratedShortFileName = value; } - ////} - - /////// - /////// Gets or sets whether this row came from a merge module. - /////// - /////// Whether this row came from a merge module. - ////public bool FromModule - ////{ - //// get { return this.fromModule; } - //// set { this.fromModule = value; } - ////} - - /////// - /////// Gets or sets the MsiFileHash row created for this FileRow. - /////// - /////// Row for MsiFileHash table. - ////public Row HashRow - ////{ - //// get { return this.hashRow; } - //// set { this.hashRow = value; } - ////} - - /////// - /////// Gets or sets the set of MsiAssemblyName rows created for this FileRow. - /////// - /////// RowCollection of MsiAssemblyName table. - ////[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] - ////public List AssemblyNameRows - ////{ - //// get { return this.assemblyNameRows; } - //// set { this.assemblyNameRows = value; } - ////} - - /////// - /////// Gets or sets the patching attributes to the file. - /////// - /////// Patching attributes of the file. - ////public PatchAttributeType PatchAttributes - ////{ - //// get { return this.patchAttributes; } - //// set { this.patchAttributes = value; } - ////} - - /////// - /////// Gets or sets the delta patch retain-length list for the file. - /////// - /////// RetainLength list for the file. - ////public string RetainLengths - ////{ - //// get { return this.retainLengths; } - //// set { this.retainLengths = value; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-offset list for the file. - /////// - /////// IgnoreOffset list for the file. - ////public string IgnoreOffsets - ////{ - //// get { return this.ignoreOffsets; } - //// set { this.ignoreOffsets = value; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-length list for the file. - /////// - /////// IgnoreLength list for the file. - ////public string IgnoreLengths - ////{ - //// get { return this.ignoreLengths; } - //// set { this.ignoreLengths = value; } - ////} - - /////// - /////// Gets or sets the delta patch retain-offset list for the file. - /////// - /////// RetainOffset list for the file. - ////public string RetainOffsets - ////{ - //// get { return this.retainOffsets; } - //// set { this.retainOffsets = value; } - ////} - - /////// - /////// Gets or sets the delta patch retain-length list for the previous file. - /////// - /////// RetainLength list for the previous file. - ////public string PreviousRetainLengths - ////{ - //// get { return this.previousRetainLengths[0]; } - //// set { this.previousRetainLengths[0] = value; } - ////} - - /////// - /////// Gets the delta patch retain-length list for the previous files. - /////// - /////// RetainLength list for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousRetainLengthsArray - ////{ - //// get { return this.previousRetainLengths; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-offset list for the previous file. - /////// - /////// IgnoreOffset list for the previous file. - ////public string PreviousIgnoreOffsets - ////{ - //// get { return this.previousIgnoreOffsets[0]; } - //// set { this.previousIgnoreOffsets[0] = value; } - ////} - - /////// - /////// Gets the delta patch ignore-offset list for the previous files. - /////// - /////// IgnoreOffset list for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousIgnoreOffsetsArray - ////{ - //// get { return this.previousIgnoreOffsets; } - ////} - - /////// - /////// Gets or sets the delta patch ignore-length list for the previous file. - /////// - /////// IgnoreLength list for the previous file. - ////public string PreviousIgnoreLengths - ////{ - //// get { return this.previousIgnoreLengths[0]; } - //// set { this.previousIgnoreLengths[0] = value; } - ////} - - /////// - /////// Gets the delta patch ignore-length list for the previous files. - /////// - /////// IgnoreLength list for the previous files. - ////[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousIgnoreLengthsArray - ////{ - //// get { return this.previousIgnoreLengths; } - ////} - - /////// - /////// Gets or sets the delta patch retain-offset list for the previous file. - /////// - /////// RetainOffset list for the previous file. - ////public string PreviousRetainOffsets - ////{ - //// get { return this.previousRetainOffsets[0]; } - //// set { this.previousRetainOffsets[0] = value; } - ////} - - /////// - /////// Gets the delta patch retain-offset list for the previous files. - /////// - /////// RetainOffset list for the previous files. - ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] - ////public string[] PreviousRetainOffsetsArray - ////{ - //// get { return this.previousRetainOffsets; } - ////} - - /////// - /////// Compares the current FileRow with another object of the same type. - /////// - /////// An object to compare with this instance. - /////// An integer that indicates the relative order of the comparands. - ////[SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String)")] - ////[SuppressMessage("Microsoft.Globalization", "CA1309:UseOrdinalStringComparison")] - ////public int CompareTo(object obj) - ////{ - //// if (this == obj) - //// { - //// return 0; - //// } - - //// FileRow fileRow = obj as FileRow; - //// if (null == fileRow) - //// { - //// throw new ArgumentException(WixDataStrings.EXP_OtherObjectIsNotFileRow); - //// } - - //// int compared = this.DiskId - fileRow.DiskId; - //// if (0 == compared) - //// { - //// compared = this.patchGroup - fileRow.patchGroup; - - //// if (0 == compared) - //// { - //// compared = String.Compare(this.File, fileRow.File, StringComparison.InvariantCulture); - //// } - //// } - - //// return compared; - ////} - - /////// - /////// Copies data from another FileRow object. - /////// - /////// An row to get data from. - ////public void CopyFrom(FileRow src) - ////{ - //// for (int i = 0; i < src.Fields.Length; i++) - //// { - //// this[i] = src[i]; - //// } - //// this.assemblyManifest = src.assemblyManifest; - //// this.assemblyType = src.assemblyType; - //// this.directory = src.directory; - //// this.diskId = src.diskId; - //// this.fromModule = src.fromModule; - //// this.isGeneratedShortFileName = src.isGeneratedShortFileName; - //// this.patchGroup = src.patchGroup; - //// this.processorArchitecture = src.processorArchitecture; - //// this.source = src.source; - //// this.PreviousSource = src.PreviousSource; - //// this.Operation = src.Operation; - //// this.symbols = src.symbols; - //// this.PreviousSymbols = src.PreviousSymbols; - //// this.patchAttributes = src.patchAttributes; - //// this.retainOffsets = src.retainOffsets; - //// this.retainLengths = src.retainLengths; - //// this.ignoreOffsets = src.ignoreOffsets; - //// this.ignoreLengths = src.ignoreLengths; - //// this.PreviousRetainOffsets = src.PreviousRetainOffsets; - //// this.PreviousRetainLengths = src.PreviousRetainLengths; - //// this.PreviousIgnoreOffsets = src.PreviousIgnoreOffsets; - //// this.PreviousIgnoreLengths = src.PreviousIgnoreLengths; - ////} + /// + /// Gets or sets the disk id for this file. + /// + /// Disk id for the file. + public int DiskId + { + get => this.FieldAsInteger(8); + set => this.Fields[8].Data = value; + } - /////// - /////// Appends previous data from another FileRow object. - /////// - /////// An row to get data from. - ////public void AppendPreviousDataFrom(FileRow src) - ////{ - //// AppendStringToArray(ref this.previousSource, src.previousSource[0]); - //// AppendStringToArray(ref this.previousSymbols, src.previousSymbols[0]); - //// AppendStringToArray(ref this.previousRetainOffsets, src.previousRetainOffsets[0]); - //// AppendStringToArray(ref this.previousRetainLengths, src.previousRetainLengths[0]); - //// AppendStringToArray(ref this.previousIgnoreOffsets, src.previousIgnoreOffsets[0]); - //// AppendStringToArray(ref this.previousIgnoreLengths, src.previousIgnoreLengths[0]); - ////} + /// + /// Gets or sets the source location to the file. + /// + /// Source location to the file. + public string Source + { + get => this.FieldAsString(9); + set => this.Fields[9].Data = value; + } - /////// - /////// Helper method for AppendPreviousDataFrom. - /////// - /////// Destination array. - /////// Source string. - ////private static void AppendStringToArray(ref string[] destination, string source) - ////{ - //// string[] result = new string[destination.Length + 1]; - //// destination.CopyTo(result, 0); - //// result[destination.Length] = source; - //// destination = result; - ////} + /// + /// Gets or sets the source location to the previous file. + /// + /// Source location to the previous file. + public string PreviousSource + { + get => this.Fields[9].PreviousData; + set => this.Fields[9].PreviousData = value; + } } } diff --git a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs b/src/WixToolset.Data/WindowsInstaller/SubStorage.cs index 6aae1dd8..e24839c0 100644 --- a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs +++ b/src/WixToolset.Data/WindowsInstaller/SubStorage.cs @@ -39,15 +39,16 @@ namespace WixToolset.Data.WindowsInstaller /// New SubStorage object. internal static SubStorage Read(XmlReader reader) { - if (!reader.LocalName.Equals("subStorage" == reader.LocalName)) + if (reader.LocalName != "subStorage") { throw new XmlException(); } WindowsInstallerData data = null; - bool empty = reader.IsEmptyElement; string name = null; + var empty = reader.IsEmptyElement; + while (reader.MoveToNextAttribute()) { switch (reader.LocalName) @@ -60,7 +61,7 @@ namespace WixToolset.Data.WindowsInstaller if (!empty) { - bool done = false; + var done = false; while (!done && reader.Read()) { @@ -76,6 +77,7 @@ namespace WixToolset.Data.WindowsInstaller throw new XmlException(); } break; + case XmlNodeType.EndElement: done = true; break; diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs index 80303913..96c5f74f 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs @@ -36,18 +36,12 @@ namespace WixToolset.Data.WindowsInstaller /// Gets the number of items in the collection. /// /// Number of items in collection. - public int Count - { - get { return this.collection.Count; } - } + public int Count => this.collection.Count; /// /// Table definition collections are never read-only. /// - public bool IsReadOnly - { - get { return false; } - } + public bool IsReadOnly => false; /// /// Gets a table definition by name. @@ -72,10 +66,7 @@ namespace WixToolset.Data.WindowsInstaller /// Name of table to locate. /// Table definition if found. /// True if table definition was found otherwise false. - public bool TryGet(string tableName, out TableDefinition table) - { - return this.collection.TryGetValue(tableName, out table); - } + public bool TryGet(string tableName, out TableDefinition table) => this.collection.TryGetValue(tableName, out table); /// /// Load a table definition collection from an XmlReader. @@ -95,76 +86,52 @@ namespace WixToolset.Data.WindowsInstaller /// /// Table definition to add to the collection. /// Indexes by table definition name. - public void Add(TableDefinition tableDefinition) - { - this.collection.Add(tableDefinition.Name, tableDefinition); - } + public void Add(TableDefinition tableDefinition) => this.collection.Add(tableDefinition.Name, tableDefinition); /// /// Removes all table definitions from the collection. /// - public void Clear() - { - this.collection.Clear(); - } + public void Clear() => this.collection.Clear(); /// /// Checks if the collection contains a table name. /// /// The table to check in the collection. /// True if collection contains the table. - public bool Contains(string tableName) - { - return this.collection.ContainsKey(tableName); - } + public bool Contains(string tableName) => this.collection.ContainsKey(tableName); /// /// Checks if the collection contains a table. /// /// The table to check in the collection. /// True if collection contains the table. - public bool Contains(TableDefinition table) - { - return this.collection.ContainsKey(table.Name); - } + public bool Contains(TableDefinition table) => this.collection.ContainsKey(table.Name); /// /// Copies table definitions to an arry. /// /// Array to copy the table definitions to. /// Index in the array to start copying at. - public void CopyTo(TableDefinition[] array, int index) - { - this.collection.Values.CopyTo(array, index); - } + public void CopyTo(TableDefinition[] array, int index) => this.collection.Values.CopyTo(array, index); /// /// Removes a table definition from the collection. /// /// Table to remove from the collection. /// True if the table definition existed in the collection and was removed. - public bool Remove(TableDefinition table) - { - return this.collection.Remove(table.Name); - } + public bool Remove(TableDefinition table) => this.collection.Remove(table.Name); /// /// Gets enumerator for the collection. /// /// Enumerator for the collection. - public IEnumerator GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } + public IEnumerator GetEnumerator() => this.collection.Values.GetEnumerator(); /// /// Gets the untyped enumerator for the collection. /// /// Untyped enumerator for the collection. - IEnumerator IEnumerable.GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } + IEnumerator IEnumerable.GetEnumerator() => this.collection.Values.GetEnumerator(); /// /// Loads a collection of table definitions from a XmlReader in memory. @@ -178,8 +145,8 @@ namespace WixToolset.Data.WindowsInstaller throw new XmlException(); } - bool empty = reader.IsEmptyElement; - TableDefinitionCollection tableDefinitionCollection = new TableDefinitionCollection(); + var empty = reader.IsEmptyElement; + var tableDefinitionCollection = new TableDefinitionCollection(); while (reader.MoveToNextAttribute()) { @@ -188,7 +155,7 @@ namespace WixToolset.Data.WindowsInstaller // parse the child elements if (!empty) { - bool done = false; + var done = false; while (!done && reader.Read()) { diff --git a/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs index 57ba19d1..a399c6fa 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs @@ -15,19 +15,13 @@ namespace WixToolset.Data.WindowsInstaller /// /// Instantiate a new empty collection. /// - public TableIndexedCollection() - { - this.collection = new Dictionary(); - } + public TableIndexedCollection() => this.collection = new Dictionary(); /// /// Instantiate a new collection populated with a set of tables. /// /// Set of tables. - public TableIndexedCollection(IEnumerable
tables) - { - this.collection = tables.ToDictionary(t => t.Name); - } + public TableIndexedCollection(IEnumerable
tables) => this.collection = tables.ToDictionary(t => t.Name); /// /// Gets the number of items in the collection. @@ -45,18 +39,12 @@ namespace WixToolset.Data.WindowsInstaller /// /// Table to add to the collection. /// Indexes the table by name. - public void Add(Table table) - { - this.collection.Add(table.Name, table); - } + public void Add(Table table) => this.collection.Add(table.Name, table); /// /// Clear the tables from the collection. /// - public void Clear() - { - this.collection.Clear(); - } + public void Clear() => this.collection.Clear(); /// /// Determines if a table is in the collection. @@ -70,46 +58,31 @@ namespace WixToolset.Data.WindowsInstaller /// /// Array to copy the collection into. /// Index to start copying from. - public void CopyTo(Table[] array, int arrayIndex) - { - this.collection.Values.CopyTo(array, arrayIndex); - } + public void CopyTo(Table[] array, int arrayIndex) => this.collection.Values.CopyTo(array, arrayIndex); /// /// Remove a table from the collection by name. /// /// Table name to remove from the collection. - public void Remove(string tableName) - { - this.collection.Remove(tableName); - } + public void Remove(string tableName) => _ = this.collection.Remove(tableName); /// /// Remove a table from the collection. /// /// Table with matching name to remove from the collection. - public bool Remove(Table table) - { - return this.collection.Remove(table.Name); - } + public bool Remove(Table table) => this.collection.Remove(table.Name); /// /// Gets an enumerator over the whole collection. /// /// Collection enumerator. - public IEnumerator
GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } + public IEnumerator
GetEnumerator() => this.collection.Values.GetEnumerator(); /// /// Gets an untyped enumerator over the whole collection. /// /// Untyped collection enumerator. - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return this.collection.Values.GetEnumerator(); - } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => this.collection.Values.GetEnumerator(); /// /// Gets a table by name. @@ -117,16 +90,8 @@ namespace WixToolset.Data.WindowsInstaller /// Name of table to locate. public Table this[string tableName] { - get - { - Table table; - return this.collection.TryGetValue(tableName, out table) ? table : null; - } - - set - { - this.collection[tableName] = value; - } + get => this.collection.TryGetValue(tableName, out var table) ? table : null; + set => this.collection[tableName] = value; } /// @@ -135,9 +100,6 @@ namespace WixToolset.Data.WindowsInstaller /// Table name to locate. /// Found table. /// True if table with table name was found, otherwise false. - public bool TryGetTable(string tableName, out Table table) - { - return this.collection.TryGetValue(tableName, out table); - } + public bool TryGetTable(string tableName, out Table table) => this.collection.TryGetValue(tableName, out table); } } diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs index 0855997c..ac593152 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -60,6 +60,42 @@ namespace WixToolset.Data.WindowsInstaller /// Collection of tables. public TableIndexedCollection Tables { get; private set; } + /// + /// Ensure this output contains a particular table. + /// + /// Definition of the table that should exist. + /// Optional section to use for the table. If one is not provided, the entry section will be used. + /// The table in this output. + public Table EnsureTable(TableDefinition tableDefinition) + { + if (!this.Tables.TryGetTable(tableDefinition.Name, out var table)) + { + table = new Table(tableDefinition); + this.Tables.Add(table); + } + + return table; + } + + /// + /// Saves an output to a WixOutput container. + /// + /// Container to save to. + public void Save(WixOutput wixout) + { + using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName))) + { + writer.WriteStartDocument(); + this.Write(writer); + writer.WriteEndDocument(); + } + } + + /// + /// Gets table by name. + /// + public bool TryGetTable(string tableName, out Table table) => this.Tables.TryGetTable(tableName, out table); + /// /// Loads an output from a path on disk. /// @@ -84,20 +120,6 @@ namespace WixToolset.Data.WindowsInstaller } } - /// - /// Saves an output to a WixOutput container. - /// - /// Container to save to. - public void Save(WixOutput wixout) - { - using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName))) - { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); - } - } - /// /// Processes an XmlReader and builds up the output object. /// @@ -206,23 +228,6 @@ namespace WixToolset.Data.WindowsInstaller return output; } - /// - /// Ensure this output contains a particular table. - /// - /// Definition of the table that should exist. - /// Optional section to use for the table. If one is not provided, the entry section will be used. - /// The table in this output. - public Table EnsureTable(TableDefinition tableDefinition) - { - if (!this.Tables.TryGetTable(tableDefinition.Name, out var table)) - { - table = new Table(tableDefinition); - this.Tables.Add(table); - } - - return table; - } - /// /// Persists an output in an XML format. /// -- cgit v1.2.3-55-g6feb From a91661efa6d4c678d8ddee458bbf4b8643f96377 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 5 Feb 2020 14:38:46 -0800 Subject: Ensure path tuples fields with BaseUri are saved --- src/WixToolset.Data/IntermediateTupleExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs index 7fb2a6c3..95fb1b19 100644 --- a/src/WixToolset.Data/IntermediateTupleExtensions.cs +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs @@ -85,7 +85,7 @@ namespace WixToolset.Data public static IntermediateField Set(this IntermediateTuple tuple, int index, IntermediateFieldPathValue value) { - if (value == null && NoFieldMetadata(tuple, index)) + if (value?.Path == null && value?.BaseUri == null && NoFieldMetadata(tuple, index)) { return tuple.Fields[index] = null; } -- cgit v1.2.3-55-g6feb From a482589448fb6e0f7abc1c725c49c65344c83509 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 5 Feb 2020 14:41:10 -0800 Subject: Fix patch related tuples --- src/WixToolset.Data/ErrorMessages.cs | 6 ++++ .../Tuples/SummaryInformationTuple.cs | 33 +++++++++++++++++++++- .../Tuples/WixPatchBaselineTuple.cs | 24 ++++++++++++++++ src/WixToolset.Data/Tuples/WixPatchIdTuple.cs | 8 ------ .../Tuples/WixPatchMetadataTuple.cs | 10 ++----- 5 files changed, 64 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 3fa23a74..43398ad2 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -203,6 +203,11 @@ namespace WixToolset.Data return Message(null, Ids.CorruptFileFormat, "Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified.", path, format.ToLowerInvariant()); } + public static Message CouldNotDetermineProductCodeFromTransformSummaryInfo() + { + return Message(null, Ids.CouldNotDetermineProductCodeFromTransformSummaryInfo, "Could not determine ProductCode from transform summary information."); + } + public static Message CreateCabAddFileFailed() { return Message(null, Ids.CreateCabAddFileFailed, "An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file."); @@ -2640,6 +2645,7 @@ namespace WixToolset.Data NoSourceFiles = 391, WixiplSourceFileIsExclusive = 392, UnableToConvertFieldToNumber = 393, + CouldNotDetermineProductCodeFromTransformSummaryInfo = 394, } } } diff --git a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs index a67f1985..074c2bb1 100644 --- a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs +++ b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs @@ -30,20 +30,51 @@ namespace WixToolset.Data.Tuples Codepage = 1, Title, Subject, + PatchPackageName = 3, //used by patches Author, Keywords, Comments, PlatformAndLanguage, + PatchProductCodes = 7, // used by patches TransformPlatformAndLanguageOrStorageNames, + TransformNames = 8, // used by patches PackageCode, - Created = 12, + PatchCode = 9, // used by patches + TransformProductCodes = 9, // used by transforms + Reserved11 = 11, // reserved by patches + Created, LastSaved, WindowsInstallerVersion, + Reserved14 = 14, // reserved by patches WordCount, + PatchInstallerRequirement = 15, // used by patches + Reserved16, // reserved by patches + TransformValidationFlags = 16, // used by transforms CreatingApplication = 18, Security } + /// + /// Summary information values for the PachInstallerRequirement property. + /// + public enum PatchInstallerRequirement + { + /// Any version of the installer will do + Version10 = 1, + + /// At least 1.2 + Version12 = 2, + + /// At least 2.0 + Version20 = 3, + + /// At least 3.0 + Version30 = 4, + + /// At least 3.1 + Version31 = 5, + } + public class SummaryInformationTuple : IntermediateTuple { public SummaryInformationTuple() : base(TupleDefinitions.SummaryInformation, null, null) diff --git a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs index f5b6dba0..7358e66e 100644 --- a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs @@ -12,6 +12,9 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.DiskId), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.ValidationFlags), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.BaselineFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.UpdateFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.TransformFile), IntermediateFieldType.Path), }, typeof(WixPatchBaselineTuple)); } @@ -23,6 +26,9 @@ namespace WixToolset.Data.Tuples { DiskId, ValidationFlags, + BaselineFile, + UpdateFile, + TransformFile, } public class WixPatchBaselineTuple : IntermediateTuple @@ -48,5 +54,23 @@ namespace WixToolset.Data.Tuples get => (TransformFlags)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags].AsNumber(); set => this.Set((int)WixPatchBaselineTupleFields.ValidationFlags, (int)value); } + + public IntermediateFieldPathValue BaselineFile + { + get => this.Fields[(int)WixPatchBaselineTupleFields.BaselineFile].AsPath(); + set => this.Set((int)WixPatchBaselineTupleFields.BaselineFile, value); + } + + public IntermediateFieldPathValue UpdateFile + { + get => this.Fields[(int)WixPatchBaselineTupleFields.UpdateFile].AsPath(); + set => this.Set((int)WixPatchBaselineTupleFields.UpdateFile, value); + } + + public IntermediateFieldPathValue TransformFile + { + get => this.Fields[(int)WixPatchBaselineTupleFields.TransformFile].AsPath(); + set => this.Set((int)WixPatchBaselineTupleFields.TransformFile, value); + } } } diff --git a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs index 303ccecd..35c99493 100644 --- a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixPatchId, new[] { - new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ProductCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ClientPatchId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), @@ -23,7 +22,6 @@ namespace WixToolset.Data.Tuples { public enum WixPatchIdTupleFields { - ProductCode, ClientPatchId, OptimizePatchSizeForLargeFiles, ApiPatchingSymbolFlags, @@ -41,12 +39,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixPatchIdTupleFields index] => this.Fields[(int)index]; - public string ProductCode - { - get => (string)this.Fields[(int)WixPatchIdTupleFields.ProductCode]; - set => this.Set((int)WixPatchIdTupleFields.ProductCode, value); - } - public string ClientPatchId { get => (string)this.Fields[(int)WixPatchIdTupleFields.ClientPatchId]; diff --git a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs index 7c065fe8..b64fd891 100644 --- a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs @@ -1,5 +1,7 @@ // 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. +// TODO: delete this + namespace WixToolset.Data { using WixToolset.Data.Tuples; @@ -10,7 +12,6 @@ namespace WixToolset.Data TupleDefinitionType.WixPatchMetadata, new[] { - new IntermediateFieldDefinition(nameof(WixPatchMetadataTupleFields.Property), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixPatchMetadataTupleFields.Value), IntermediateFieldType.String), }, typeof(WixPatchMetadataTuple)); @@ -21,7 +22,6 @@ namespace WixToolset.Data.Tuples { public enum WixPatchMetadataTupleFields { - Property, Value, } @@ -37,12 +37,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixPatchMetadataTupleFields index] => this.Fields[(int)index]; - public string Property - { - get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Property]; - set => this.Set((int)WixPatchMetadataTupleFields.Property, value); - } - public string Value { get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Value]; -- cgit v1.2.3-55-g6feb From a85f2e992a301abe5d2c0d58f07e7bc9692ff6e3 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 10 Feb 2020 14:10:51 -0500 Subject: Support loading WindowsInstallerData and Intermediate from WixOutput. --- src/WixToolset.Data/Intermediate.cs | 25 ++++++++++++++++++++++ .../WindowsInstaller/WindowsInstallerData.cs | 23 +++++++++++++++----- 2 files changed, 43 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 1db21d85..7fc7d6c3 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -107,6 +107,31 @@ namespace WixToolset.Data } } + /// + /// Loads an intermediate from a WixOutput object. + /// + /// WixOutput object. + /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(WixOutput wixOutput, bool suppressVersionCheck = false) + { + var creator = new SimpleTupleDefinitionCreator(); + return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); + } + + /// + /// Loads an intermediate from a WixOutput object. + /// + /// WixOutput object. + /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(WixOutput wixOutput, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + { + return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); + } + /// /// Loads several intermediates from paths on disk using the same definitions. /// diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs index ac593152..43c19d69 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -102,11 +102,24 @@ namespace WixToolset.Data.WindowsInstaller /// Path to output file saved on disk. /// Suppresses wix.dll version mismatch check. /// Output object. - public static WindowsInstallerData Load(string path, bool suppressVersionCheck) + public static WindowsInstallerData Load(string path, bool suppressVersionCheck = false) { - using (var wixout = WixOutput.Read(path)) - using (var stream = wixout.GetDataStream(WixOutputStreamName)) - using (var reader = XmlReader.Create(stream, null, wixout.Uri.AbsoluteUri)) + using (var wixOutput = WixOutput.Read(path)) + { + return WindowsInstallerData.Load(wixOutput, suppressVersionCheck); + } + } + + /// + /// Loads an output from a WixOutput object. + /// + /// WixOutput object. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(WixOutput wixOutput, bool suppressVersionCheck = false) + { + using (var stream = wixOutput.GetDataStream(WixOutputStreamName)) + using (var reader = XmlReader.Create(stream, null, wixOutput.Uri.AbsoluteUri)) { try { @@ -115,7 +128,7 @@ namespace WixToolset.Data.WindowsInstaller } catch (XmlException xe) { - throw new WixCorruptFileException(path, "wixout", xe); + throw new WixCorruptFileException(wixOutput.Uri.AbsoluteUri, "wixout", xe); } } } -- cgit v1.2.3-55-g6feb From 6014309c4cb85bf2ee2efb034eafa956ca06a42a Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 13 Feb 2020 21:32:33 -0500 Subject: Support reopening WixOutputs, to be able to read immediately after writing. --- src/WixToolset.Data/WixOutput.cs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index f27f7c77..43a43a6a 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -13,13 +13,15 @@ namespace WixToolset.Data /// public class WixOutput : IDisposable { - private readonly ZipArchive archive; + private ZipArchive archive; + private Stream stream; private bool disposed; - private WixOutput(Uri uri, ZipArchive archive) + private WixOutput(Uri uri, ZipArchive archive, Stream stream) { this.Uri = uri; this.archive = archive; + this.stream = stream; } public Uri Uri { get; } @@ -59,9 +61,9 @@ namespace WixToolset.Data /// Newly created WixOutput. public static WixOutput Create(Uri uri, Stream stream) { - var archive = new ZipArchive(stream, ZipArchiveMode.Update); + var archive = new ZipArchive(stream, ZipArchiveMode.Update, leaveOpen: true); - return new WixOutput(uri, archive); + return new WixOutput(uri, archive, stream); } /// @@ -124,13 +126,13 @@ namespace WixToolset.Data /// /// Stream to read from. /// Loaded created WixOutput. - public static WixOutput Read(Uri uri, Stream stream, bool leaveOpen = false) + public static WixOutput Read(Uri uri, Stream stream) { try { - var archive = new ZipArchive(stream, ZipArchiveMode.Read, leaveOpen); + var archive = new ZipArchive(stream, ZipArchiveMode.Read, leaveOpen: true); - return new WixOutput(uri, archive); + return new WixOutput(uri, archive, stream); } catch (InvalidDataException) { @@ -138,6 +140,12 @@ namespace WixToolset.Data } } + public void Reopen(ZipArchiveMode mode) + { + this.archive?.Dispose(); + this.archive = new ZipArchive(this.stream, mode, leaveOpen: true); + } + /// /// Extracts an embedded file. /// @@ -224,6 +232,7 @@ namespace WixToolset.Data if (disposing) { this.archive?.Dispose(); + this.stream?.Dispose(); } } -- cgit v1.2.3-55-g6feb From ce0fd262e48341402416c8428e37226c80332935 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 26 Feb 2020 11:30:13 -0800 Subject: Hide the ZipArchive details from the public WixOutput API --- src/WixToolset.Data/WixOutput.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index 43a43a6a..bb7a9a70 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -13,8 +13,8 @@ namespace WixToolset.Data /// public class WixOutput : IDisposable { + private readonly Stream stream; private ZipArchive archive; - private Stream stream; private bool disposed; private WixOutput(Uri uri, ZipArchive archive, Stream stream) @@ -140,10 +140,16 @@ namespace WixToolset.Data } } - public void Reopen(ZipArchiveMode mode) + /// + /// Reopen the underlying archive for read-only or read-write access. + /// + /// Indicates whether the output can be modified. Defaults to false. + public void Reopen(bool writable = false) { this.archive?.Dispose(); - this.archive = new ZipArchive(this.stream, mode, leaveOpen: true); + this.archive = null; + + this.archive = new ZipArchive(this.stream, writable ? ZipArchiveMode.Update : ZipArchiveMode.Read, leaveOpen: true); } /// @@ -178,6 +184,11 @@ namespace WixToolset.Data return entry.Open(); } + /// + /// Imports a file from disk into the output. + /// + /// Name of the stream in the output. + /// Path to file on disk to include in the output. public void ImportDataStream(string name, string path) { this.archive.CreateEntryFromFile(path, name, System.IO.Compression.CompressionLevel.Optimal); -- cgit v1.2.3-55-g6feb From 45907a8635c462108046741cd6abddf5164938f1 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 3 Mar 2020 15:21:02 -0500 Subject: Add ARM64 platform. --- src/WixToolset.Data/Platform.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Platform.cs b/src/WixToolset.Data/Platform.cs index 4edc9af0..193a0e05 100644 --- a/src/WixToolset.Data/Platform.cs +++ b/src/WixToolset.Data/Platform.cs @@ -17,6 +17,9 @@ namespace WixToolset.Data IA64, /// arm. - ARM + ARM, + + /// arm64. + ARM64, } } -- cgit v1.2.3-55-g6feb From ff99718c7f6dd09b6d42c9ef201955cedd81ad86 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 4 Mar 2020 18:58:35 -0500 Subject: To make it easier to associate tuples with tables... ...add TupleDefinitionName to TableDefinition. --- .../WindowsInstaller/TableDefinition.cs | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 4738ac82..527199b2 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -27,17 +27,35 @@ namespace WixToolset.Data.WindowsInstaller public TableDefinition(string name, IEnumerable columns, bool unreal = false) { this.Name = name; + this.TupleDefinitionName = name; this.Unreal = unreal; - this.Columns = columns.ToArray(); } + /// + /// Creates a table definition. + /// + /// Name of table to create. + /// Optional name of tuple definition for this table. + /// Column definitions for the table. + /// Flag if table is unreal. + public TableDefinition(string name, string tupleDefinitionName, IEnumerable columns, bool unreal = false) : this(name, columns, unreal) + { + this.TupleDefinitionName = tupleDefinitionName ?? name; + } + /// /// Gets the name of the table. /// /// Name of the table. public string Name { get; private set; } + /// + /// Gets the name of the tuple definition associated with this table. + /// + /// Name of the tuple definition. + public string TupleDefinitionName { get; private set; } + /// /// Gets if the table is unreal. /// @@ -110,6 +128,7 @@ namespace WixToolset.Data.WindowsInstaller { var empty = reader.IsEmptyElement; string name = null; + string tupleDefinitionName = null; var unreal = false; var bootstrapperApplicationData = false; @@ -120,6 +139,9 @@ namespace WixToolset.Data.WindowsInstaller case "name": name = reader.Value; break; + case "tupleDefinitionName": + tupleDefinitionName = reader.Value; + break; case "unreal": unreal = reader.Value.Equals("yes"); break; @@ -176,7 +198,7 @@ namespace WixToolset.Data.WindowsInstaller } } - return new TableDefinition(name, columns.ToArray(), unreal); + return new TableDefinition(name, tupleDefinitionName, columns.ToArray(), unreal); } /// -- cgit v1.2.3-55-g6feb From 9240b527b9b204764830b578ef41a5b880a0bda4 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 17 Mar 2020 21:10:57 -0400 Subject: Partial WixPdbs stop the backend before binding. --- src/WixToolset.Data/PdbType.cs | 19 +++++++++++++++++++ src/WixToolset.Data/WixOutput.cs | 6 +++++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/WixToolset.Data/PdbType.cs (limited to 'src') diff --git a/src/WixToolset.Data/PdbType.cs b/src/WixToolset.Data/PdbType.cs new file mode 100644 index 00000000..55d7f24e --- /dev/null +++ b/src/WixToolset.Data/PdbType.cs @@ -0,0 +1,19 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Platforms supported by compiler. + /// + public enum PdbType + { + /// A .wixpdb file matching the generated output (default). + Full, + + /// No .wixpdb file. + None, + + /// A .wixpdb file with partial, pre-bind data. No other output will be generated. + Partial, + } +} diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index bb7a9a70..1810862a 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -46,7 +46,11 @@ namespace WixToolset.Data /// Newly created WixOutput. public static WixOutput Create(string path) { - var uri = new Uri(Path.GetFullPath(path)); + var fullPath = Path.GetFullPath(path); + + Directory.CreateDirectory(Path.GetDirectoryName(fullPath)); + + var uri = new Uri(fullPath); var stream = File.Create(path); -- cgit v1.2.3-55-g6feb From c1ebab9485256e5fbf4f47d20be8627fd03c68a1 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 24 Mar 2020 13:49:28 -0400 Subject: Add XmlWriter overload. - Also fix some typos. --- src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs | 8 ++++---- .../WindowsInstaller/WindowsInstallerData.cs | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs index ad5197d9..3aba5de6 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs @@ -3,12 +3,12 @@ namespace WixToolset.Data.WindowsInstaller.Rows { /// - /// Specialization of a row for the upgrade table. + /// Specialization of a row for the Property table. /// public sealed class PropertyRow : Row { /// - /// Creates an Upgrade row that belongs to a table. + /// Creates an Property row that belongs to a table. /// /// Original source lines for this row. /// Table this Upgrade row belongs to and should get its column definitions from. @@ -18,7 +18,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows } /// - /// Gets and sets the upgrade code for the row. + /// Gets and sets the property name for the row. /// /// Property identifier for the row. public string Property @@ -28,7 +28,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows } /// - /// Gets and sets the value for the row. + /// Gets and sets the property value for the row. /// /// Property value for the row. public string Value diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs index 43c19d69..e30be598 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -85,12 +85,21 @@ namespace WixToolset.Data.WindowsInstaller { using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName))) { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); + this.Save(writer); } } + /// + /// Saves an output to an XmlWriter. + /// + /// XmlWriter to save to. + public void Save(XmlWriter writer) + { + writer.WriteStartDocument(); + this.Write(writer); + writer.WriteEndDocument(); + } + /// /// Gets table by name. /// -- cgit v1.2.3-55-g6feb From 271601dfe0990917ef6331fbddcfd1b400882eb2 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 26 Mar 2020 13:31:04 -0400 Subject: Add intermediate levels to track how IR has been lowered. --- src/WixToolset.Data/ErrorMessages.cs | 18 +++++++++++ src/WixToolset.Data/Intermediate.cs | 35 ++++++++++++++++++++-- src/WixToolset.Data/IntermediateLevels.cs | 9 ++++++ .../WindowsInstaller/IntermediateLevels.cs | 9 ++++++ src/test/WixToolsetTest.Data/SerializeFixture.cs | 10 ++++++- 5 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 src/WixToolset.Data/IntermediateLevels.cs create mode 100644 src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 43398ad2..1740f6c9 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -2249,6 +2249,21 @@ namespace WixToolset.Data return Message(null, Ids.WixiplSourceFileIsExclusive, "When an intermediate post link source file is specified, it must be the only source file provided."); } + public static Message IntermediatesMustBeCompiled(string invalidIntermediates) + { + return Message(null, Ids.IntermediatesMustBeCompiled, "Intermediates being linked must have been compiled. Intermediates with these ids were not compiled: {0}", invalidIntermediates); + } + + public static Message IntermediatesMustBeLinked(string invalidIntermediate) + { + return Message(null, Ids.IntermediatesMustBeLinked, "Intermediates being resolved must have been linked. This intermediate was not linked: {0}", invalidIntermediate); + } + + public static Message IntermediatesMustBeResolved(string invalidIntermediate) + { + return Message(null, Ids.IntermediatesMustBeResolved, "Intermediates being bound must have been resolved. This intermediate was not resolved: {0}", invalidIntermediate); + } + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) { return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); @@ -2646,6 +2661,9 @@ namespace WixToolset.Data WixiplSourceFileIsExclusive = 392, UnableToConvertFieldToNumber = 393, CouldNotDetermineProductCodeFromTransformSummaryInfo = 394, + IntermediatesMustBeCompiled = 395, + IntermediatesMustBeLinked = 396, + IntermediatesMustBeResolved = 397, } } } diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 7fc7d6c3..d1c38cf0 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -29,9 +29,14 @@ namespace WixToolset.Data this.Sections = new List(); } - public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture) + public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture) : this(id, level: null, sections, localizationsByCulture) + { + } + + public Intermediate(string id, string level, IEnumerable sections, IDictionary localizationsByCulture) { this.Id = id; + this.Level = level; this.localizationsByCulture = (localizationsByCulture != null) ? new Dictionary(localizationsByCulture, StringComparer.OrdinalIgnoreCase) : new Dictionary(StringComparer.OrdinalIgnoreCase); this.Sections = (sections != null) ? new List(sections) : new List(); } @@ -41,6 +46,11 @@ namespace WixToolset.Data /// public string Id { get; } + /// + /// Get the id for the intermediate. + /// + public string Level { get; private set; } + /// /// Get the localizations contained in this intermediate. /// @@ -181,6 +191,25 @@ namespace WixToolset.Data return intermediates; } + /// + /// Updates the intermediate level to the specified level. + /// + /// Intermediate level. + public void UpdateLevel(string level) + { + this.Level = String.IsNullOrEmpty(this.Level) ? level : String.Concat(this.Level, ";", level); + } + + /// + /// Returns whether a specifed intermediate level has been set for this intermediate. + /// + /// Intermediate level. + /// True if the specifed intermediate level has been set for this intermediate. + public bool HasLevel(string level) + { + return this.Level?.Contains(level) == true; + } + /// /// Saves an intermediate to a path on disk. /// @@ -277,6 +306,7 @@ namespace WixToolset.Data private static Intermediate FinalizeLoad(JsonObject json, Uri baseUri, ITupleDefinitionCreator creator) { var id = json.GetValueOrDefault("id"); + var level = json.GetValueOrDefault("level"); var sections = new List(); @@ -296,7 +326,7 @@ namespace WixToolset.Data localizations.Add(localization.Culture, localization); } - return new Intermediate(id, sections, localizations); + return new Intermediate(id, level, sections, localizations); } private void SaveEmbedFiles(WixOutput wixout) @@ -351,6 +381,7 @@ namespace WixToolset.Data var jsonObject = new JsonObject { { "id", this.Id }, + { "level", this.Level }, { "version", Intermediate.CurrentVersion.ToString() } }; diff --git a/src/WixToolset.Data/IntermediateLevels.cs b/src/WixToolset.Data/IntermediateLevels.cs new file mode 100644 index 00000000..738cabaa --- /dev/null +++ b/src/WixToolset.Data/IntermediateLevels.cs @@ -0,0 +1,9 @@ +namespace WixToolset.Data +{ + public static class IntermediateLevels + { + public const string Compiled = "compiled"; + public const string Linked = "linked"; + public const string Resolved = "resolved"; + } +} diff --git a/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs b/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs new file mode 100644 index 00000000..1eb0ef2d --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs @@ -0,0 +1,9 @@ +namespace WixToolset.Data.WindowsInstaller +{ + public static class IntermediateLevels + { + // TODO: These are placeholder names until we (hopefully) come up with better ones. + public const string PartiallyBound = "msiPartiallyBound"; + public const string FullyBound = "msiFullyBound"; + } +} diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 34e50f36..55460d54 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -26,13 +26,21 @@ namespace WixToolsetTest.Data Location = ComponentLocation.Either, }); - var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); + var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); + + intermediate.UpdateLevel(IntermediateLevels.Linked); + intermediate.UpdateLevel(IntermediateLevels.Resolved); var path = Path.GetTempFileName(); intermediate.Save(path); var loaded = Intermediate.Load(path); + Assert.True(loaded.HasLevel(IntermediateLevels.Compiled)); + Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); + Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); + Assert.False(loaded.HasLevel(WixToolset.Data.WindowsInstaller.IntermediateLevels.PartiallyBound)); + var tuple = (ComponentTuple)loaded.Sections.Single().Tuples.Single(); Assert.Equal("TestComponent", tuple.Id.Id); -- cgit v1.2.3-55-g6feb From 50a0d7358e804138ec766adc107cb1f8762c59b0 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 26 Mar 2020 15:02:02 -0400 Subject: Add Combined intermediate levels to track librarian. --- src/WixToolset.Data/ErrorMessages.cs | 8 +------- src/WixToolset.Data/IntermediateLevels.cs | 1 + 2 files changed, 2 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 1740f6c9..23d32b4f 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -2254,11 +2254,6 @@ namespace WixToolset.Data return Message(null, Ids.IntermediatesMustBeCompiled, "Intermediates being linked must have been compiled. Intermediates with these ids were not compiled: {0}", invalidIntermediates); } - public static Message IntermediatesMustBeLinked(string invalidIntermediate) - { - return Message(null, Ids.IntermediatesMustBeLinked, "Intermediates being resolved must have been linked. This intermediate was not linked: {0}", invalidIntermediate); - } - public static Message IntermediatesMustBeResolved(string invalidIntermediate) { return Message(null, Ids.IntermediatesMustBeResolved, "Intermediates being bound must have been resolved. This intermediate was not resolved: {0}", invalidIntermediate); @@ -2662,8 +2657,7 @@ namespace WixToolset.Data UnableToConvertFieldToNumber = 393, CouldNotDetermineProductCodeFromTransformSummaryInfo = 394, IntermediatesMustBeCompiled = 395, - IntermediatesMustBeLinked = 396, - IntermediatesMustBeResolved = 397, + IntermediatesMustBeResolved = 396, } } } diff --git a/src/WixToolset.Data/IntermediateLevels.cs b/src/WixToolset.Data/IntermediateLevels.cs index 738cabaa..64c19ae1 100644 --- a/src/WixToolset.Data/IntermediateLevels.cs +++ b/src/WixToolset.Data/IntermediateLevels.cs @@ -3,6 +3,7 @@ namespace WixToolset.Data public static class IntermediateLevels { public const string Compiled = "compiled"; + public const string Combined = "combined"; public const string Linked = "linked"; public const string Resolved = "resolved"; } -- cgit v1.2.3-55-g6feb From 39df3cf47aa22abfea57a74b7f985f44cb9beba5 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 25 Mar 2020 17:28:45 +1000 Subject: Add WixBundleExtensionTuple. --- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 4 ++ .../Tuples/WixBundleExtensionTuple.cs | 44 ++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index bad8af3f..2bec2d01 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -133,6 +133,7 @@ namespace WixToolset.Data WixBundleCatalog, WixBundleContainer, WixBundleExePackage, + WixBundleExtension, WixBundleMsiFeature, WixBundleMsiPackage, WixBundleMsiProperty, @@ -586,6 +587,9 @@ namespace WixToolset.Data case TupleDefinitionType.WixBundleContainer: return TupleDefinitions.WixBundleContainer; + case TupleDefinitionType.WixBundleExtension: + return TupleDefinitions.WixBundleExtension; + case TupleDefinitionType.WixBundleExePackage: return TupleDefinitions.WixBundleExePackage; diff --git a/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs new file mode 100644 index 00000000..7df56963 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleExtension = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleExtension, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleExtensionTupleFields.PayloadRef), IntermediateFieldType.String), + }, + typeof(WixBundleExtensionTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleExtensionTupleFields + { + PayloadRef, + } + + public class WixBundleExtensionTuple : IntermediateTuple + { + public WixBundleExtensionTuple() : base(TupleDefinitions.WixBundleExtension, null, null) + { + } + + public WixBundleExtensionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleExtension, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExtensionTupleFields index] => this.Fields[(int)index]; + + public string PayloadRef + { + get => (string)this.Fields[(int)WixBundleExtensionTupleFields.PayloadRef]; + set => this.Set((int)WixBundleExtensionTupleFields.PayloadRef, value); + } + } +} -- cgit v1.2.3-55-g6feb From 66b668b4c5d37f572dfca86446f7dddc5dd3d85f Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 26 Mar 2020 19:26:01 +1000 Subject: Add support for bundle extension searches. Add MissingBundleSearch error message. Add BundleExtensionRef to WixSearchTuple. Add BundleExtensionSearchTupleDefinitionTag. --- src/WixToolset.Data/Burn/BurnConstants.cs | 1 + src/WixToolset.Data/ErrorMessages.cs | 6 ++++++ src/WixToolset.Data/Tuples/WixSearchTuple.cs | 8 ++++++++ 3 files changed, 15 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Burn/BurnConstants.cs b/src/WixToolset.Data/Burn/BurnConstants.cs index 9803a73a..1a0db73e 100644 --- a/src/WixToolset.Data/Burn/BurnConstants.cs +++ b/src/WixToolset.Data/Burn/BurnConstants.cs @@ -9,6 +9,7 @@ namespace WixToolset.Data.Burn public const string BundleLayoutOnlyPayloadsName = "BundleLayoutOnlyPayloads"; public const string BootstrapperApplicationDataTupleDefinitionTag = "WixBootstrapperApplicationData"; + public const string BundleExtensionSearchTupleDefinitionTag = "WixBundleExtensionSearch"; // The following constants must stay in sync with src\burn\engine\core.h public const string BURN_BUNDLE_NAME = "WixBundleName"; diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 23d32b4f..4d972903 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -1469,6 +1469,11 @@ namespace WixToolset.Data return Message(null, Ids.MissingBundleInformation, "The Bundle is missing '{0}' data, and cannot continue.", data); } + public static Message MissingBundleSearch(SourceLineNumber sourceLineNumbers, string searchId) + { + return Message(sourceLineNumbers, Ids.MissingBundleSearch, "Bundle Search with id '{0}' has no corresponding implementation tuple.", searchId); + } + public static Message MissingDependencyVersion(string packageId) { return Message(null, Ids.MissingDependencyVersion, "The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package.", packageId); @@ -2658,6 +2663,7 @@ namespace WixToolset.Data CouldNotDetermineProductCodeFromTransformSummaryInfo = 394, IntermediatesMustBeCompiled = 395, IntermediatesMustBeResolved = 396, + MissingBundleSearch = 397, } } } diff --git a/src/WixToolset.Data/Tuples/WixSearchTuple.cs b/src/WixToolset.Data/Tuples/WixSearchTuple.cs index fd1ae5bf..6f58f62e 100644 --- a/src/WixToolset.Data/Tuples/WixSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchTuple.cs @@ -12,6 +12,7 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Variable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchTupleFields.BundleExtensionRef), IntermediateFieldType.String), }, typeof(WixSearchTuple)); } @@ -23,6 +24,7 @@ namespace WixToolset.Data.Tuples { Variable, Condition, + BundleExtensionRef, } public class WixSearchTuple : IntermediateTuple @@ -48,5 +50,11 @@ namespace WixToolset.Data.Tuples get => (string)this.Fields[(int)WixSearchTupleFields.Condition]; set => this.Set((int)WixSearchTupleFields.Condition, value); } + + public string BundleExtensionRef + { + get => (string)this.Fields[(int)WixSearchTupleFields.BundleExtensionRef]; + set => this.Set((int)WixSearchTupleFields.BundleExtensionRef, value); + } } } \ No newline at end of file -- cgit v1.2.3-55-g6feb From 70bf83df639289f550ddba22c9e8c85208fb188f Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 27 Mar 2020 10:35:53 +1000 Subject: Add WixSetVariableTuple. --- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 4 ++ src/WixToolset.Data/Tuples/WixSetVariableTuple.cs | 52 +++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/WixToolset.Data/Tuples/WixSetVariableTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index 2bec2d01..78da0da3 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -185,6 +185,7 @@ namespace WixToolset.Data WixRelatedBundle, WixSearch, WixSearchRelation, + WixSetVariable, WixSimpleReference, WixSuppressAction, WixSuppressModularization, @@ -737,6 +738,9 @@ namespace WixToolset.Data case TupleDefinitionType.WixSearchRelation: return TupleDefinitions.WixSearchRelation; + case TupleDefinitionType.WixSetVariable: + return TupleDefinitions.WixSetVariable; + case TupleDefinitionType.WixSimpleReference: return TupleDefinitions.WixSimpleReference; diff --git a/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs b/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs new file mode 100644 index 00000000..6c1e9908 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixSetVariable = new IntermediateTupleDefinition( + TupleDefinitionType.WixSetVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixSetVariableTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSetVariableTupleFields.Type), IntermediateFieldType.String), + }, + typeof(WixSetVariableTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixSetVariableTupleFields + { + Value, + Type, + } + + public class WixSetVariableTuple : IntermediateTuple + { + public WixSetVariableTuple() : base(TupleDefinitions.WixSetVariable, null, null) + { + } + + public WixSetVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSetVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSetVariableTupleFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)WixSetVariableTupleFields.Value]; + set => this.Set((int)WixSetVariableTupleFields.Value, value); + } + + public string Type + { + get => (string)this.Fields[(int)WixSetVariableTupleFields.Type]; + set => this.Set((int)WixSetVariableTupleFields.Type, value); + } + } +} -- cgit v1.2.3-55-g6feb From afaa41df8ac183e25051199ff8e993fa81cce6e2 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 27 Mar 2020 15:35:54 +1000 Subject: Add support for sorting WixSearches in Core. Move error message CircularSearchReference here from UtilExtension. Remove redundant id field from WixSearchRelationTuple. --- src/WixToolset.Data/ErrorMessages.cs | 6 ++++++ src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs | 8 -------- 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 4d972903..6759b14a 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -173,6 +173,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.CheckBoxValueOnlyValidWithCheckBox, "A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'.", elementName, controlType); } + public static Message CircularSearchReference(string chain) + { + return Message(null, Ids.CircularSearchReference, "A circular reference of search ordering constraints was detected: {0}. Search ordering references must form a directed acyclic graph.", chain); + } + public static Message CollidingModularizationTypes(string tableName, string columnName, string foreignTableName, int foreignColumnNumber, string modularizationType, string foreignModularizationType) { return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: one is {4} and the other is {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); @@ -2664,6 +2669,7 @@ namespace WixToolset.Data IntermediatesMustBeCompiled = 395, IntermediatesMustBeResolved = 396, MissingBundleSearch = 397, + CircularSearchReference = 398, } } } diff --git a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs index 9c9b4662..559a41fa 100644 --- a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.WixSearchRelation, new[] { - new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.WixSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.ParentSearchRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.Attributes), IntermediateFieldType.Number), }, @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples { public enum WixSearchRelationTupleFields { - WixSearchRef, ParentSearchRef, Attributes, } @@ -39,12 +37,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixSearchRelationTupleFields index] => this.Fields[(int)index]; - public string WixSearchRef - { - get => (string)this.Fields[(int)WixSearchRelationTupleFields.WixSearchRef]; - set => this.Set((int)WixSearchRelationTupleFields.WixSearchRef, value); - } - public string ParentSearchRef { get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentSearchRef]; -- cgit v1.2.3-55-g6feb From 4ebc31a7c0bfaa1901065fa588b487027a1268f9 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 31 Mar 2020 19:31:25 -0400 Subject: Minor tweaks to make debugging easier. --- src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs | 2 ++ src/WixToolset.Data/WixOutput.cs | 5 +++++ 2 files changed, 7 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs index 2964cfb2..abc53b3a 100644 --- a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs @@ -20,6 +20,7 @@ namespace WixToolset.Data namespace WixToolset.Data.Tuples { using System; + using System.Diagnostics; public enum WixSimpleReferenceTupleFields { @@ -27,6 +28,7 @@ namespace WixToolset.Data.Tuples PrimaryKeys, } + [DebuggerDisplay("{SymbolicName}")] public class WixSimpleReferenceTuple : IntermediateTuple { public WixSimpleReferenceTuple() : base(TupleDefinitions.WixSimpleReference, null, null) diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index 1810862a..a3326b0b 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -206,6 +206,11 @@ namespace WixToolset.Data { var entry = this.archive.GetEntry(name); + if (entry == null) + { + throw new ArgumentOutOfRangeException(nameof(name)); + } + return entry.Open(); } -- cgit v1.2.3-55-g6feb From e9fb8cfde9cbd9f9f9f52957828b7993b9d9355a Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 2 Apr 2020 16:33:36 +1000 Subject: Create AddTuple extension method for IntermediateSection. --- src/WixToolset.Data/IntermediateSectionExtensions.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/WixToolset.Data/IntermediateSectionExtensions.cs (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateSectionExtensions.cs b/src/WixToolset.Data/IntermediateSectionExtensions.cs new file mode 100644 index 00000000..73afca7b --- /dev/null +++ b/src/WixToolset.Data/IntermediateSectionExtensions.cs @@ -0,0 +1,14 @@ +// 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. + +namespace WixToolset.Data +{ + public static class IntermediateSectionExtensions + { + public static T AddTuple(this IntermediateSection section, T tuple) + where T : IntermediateTuple + { + section.Tuples.Add(tuple); + return tuple; + } + } +} -- cgit v1.2.3-55-g6feb From 9a128569f6ebf7ed43d57b0ecd4ada5ba8a5585a Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 3 Apr 2020 11:01:57 +1000 Subject: Add TupleIdIsPrimaryKey. --- .../WindowsInstaller/TableDefinition.cs | 40 ++++++++++++++++------ 1 file changed, 30 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 527199b2..9740b89b 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -24,12 +24,8 @@ namespace WixToolset.Data.WindowsInstaller /// Name of table to create. /// Column definitions for the table. /// Flag if table is unreal. - public TableDefinition(string name, IEnumerable columns, bool unreal = false) + public TableDefinition(string name, IEnumerable columns, bool unreal = false) : this(name, null, columns, unreal) { - this.Name = name; - this.TupleDefinitionName = name; - this.Unreal = unreal; - this.Columns = columns.ToArray(); } /// @@ -39,34 +35,49 @@ namespace WixToolset.Data.WindowsInstaller /// Optional name of tuple definition for this table. /// Column definitions for the table. /// Flag if table is unreal. - public TableDefinition(string name, string tupleDefinitionName, IEnumerable columns, bool unreal = false) : this(name, columns, unreal) + public TableDefinition(string name, string tupleDefinitionName, IEnumerable columns, bool unreal = false) { + this.Name = name; this.TupleDefinitionName = tupleDefinitionName ?? name; + this.Unreal = unreal; + this.Columns = columns?.ToArray(); + + if (this.Columns == null || this.Columns.Length == 0) + { + throw new ArgumentOutOfRangeException(nameof(columns)); + } + this.TupleIdIsPrimaryKey = DeriveTupleIdIsPrimaryKey(this.Columns); } /// /// Gets the name of the table. /// /// Name of the table. - public string Name { get; private set; } + public string Name { get; } /// /// Gets the name of the tuple definition associated with this table. /// /// Name of the tuple definition. - public string TupleDefinitionName { get; private set; } + public string TupleDefinitionName { get; } /// /// Gets if the table is unreal. /// /// Flag if table is unreal. - public bool Unreal { get; private set; } + public bool Unreal { get; } /// /// Gets the collection of column definitions for this table. /// /// Collection of column definitions for this table. - public ColumnDefinition[] Columns { get; private set; } + public ColumnDefinition[] Columns { get; } + + /// + /// Gets if the primary key is the id of the tuple definition associated with this table. + /// + /// Flag if table is unreal. + public bool TupleIdIsPrimaryKey { get; } /// /// Gets the column definition in the table by index. @@ -223,5 +234,14 @@ namespace WixToolset.Data.WindowsInstaller writer.WriteEndElement(); } + + private static bool DeriveTupleIdIsPrimaryKey(ColumnDefinition[] columns) + { + return columns[0].PrimaryKey && + columns[0].Type == ColumnType.String && + columns[0].Category == ColumnCategory.Identifier && + !columns[0].Name.EndsWith("_") && + (columns.Length == 1 || !columns.Skip(1).Any(t => t.PrimaryKey)); + } } } -- cgit v1.2.3-55-g6feb From 494a3f66905381e3f65faefeed7f5224fcf42860 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 5 Apr 2020 21:28:19 +1000 Subject: Make TupleIdIsPrimaryKey configurable. --- .../WindowsInstaller/TableDefinition.cs | 24 ++++++++-------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 9740b89b..5a9d2f20 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -24,18 +24,9 @@ namespace WixToolset.Data.WindowsInstaller /// Name of table to create. /// Column definitions for the table. /// Flag if table is unreal. - public TableDefinition(string name, IEnumerable columns, bool unreal = false) : this(name, null, columns, unreal) - { - } - - /// - /// Creates a table definition. - /// - /// Name of table to create. /// Optional name of tuple definition for this table. - /// Column definitions for the table. - /// Flag if table is unreal. - public TableDefinition(string name, string tupleDefinitionName, IEnumerable columns, bool unreal = false) + /// Whether the primary key is the id of the tuple definition associated with this table. + public TableDefinition(string name, IEnumerable columns, bool unreal = false, string tupleDefinitionName = null, bool? tupleIdIsPrimaryKey = null) { this.Name = name; this.TupleDefinitionName = tupleDefinitionName ?? name; @@ -46,7 +37,7 @@ namespace WixToolset.Data.WindowsInstaller { throw new ArgumentOutOfRangeException(nameof(columns)); } - this.TupleIdIsPrimaryKey = DeriveTupleIdIsPrimaryKey(this.Columns); + this.TupleIdIsPrimaryKey = tupleIdIsPrimaryKey ?? DeriveTupleIdIsPrimaryKey(this.Columns); } /// @@ -141,7 +132,7 @@ namespace WixToolset.Data.WindowsInstaller string name = null; string tupleDefinitionName = null; var unreal = false; - var bootstrapperApplicationData = false; + bool? tupleIdIsPrimaryKey = null; while (reader.MoveToNextAttribute()) { @@ -153,6 +144,9 @@ namespace WixToolset.Data.WindowsInstaller case "tupleDefinitionName": tupleDefinitionName = reader.Value; break; + case "tupleIdIsPrimaryKey": + tupleIdIsPrimaryKey = reader.Value.Equals("yes"); + break; case "unreal": unreal = reader.Value.Equals("yes"); break; @@ -198,7 +192,7 @@ namespace WixToolset.Data.WindowsInstaller } } - if (!unreal && !bootstrapperApplicationData && !hasPrimaryKeyColumn) + if (!unreal && !hasPrimaryKeyColumn) { throw new WixException(ErrorMessages.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); } @@ -209,7 +203,7 @@ namespace WixToolset.Data.WindowsInstaller } } - return new TableDefinition(name, tupleDefinitionName, columns.ToArray(), unreal); + return new TableDefinition(name, columns.ToArray(), unreal, tupleDefinitionName, tupleIdIsPrimaryKey); } /// -- cgit v1.2.3-55-g6feb From be42b2dd8104eec6384ab632d9869e09d29fe827 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sat, 11 Apr 2020 19:32:26 -0400 Subject: Remove partial WixPdb support. Not as useful as intended and I'd rather remove it than potentially have to support something as weird as this. --- src/WixToolset.Data/PdbType.cs | 3 --- 1 file changed, 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/PdbType.cs b/src/WixToolset.Data/PdbType.cs index 55d7f24e..fcbf9cb7 100644 --- a/src/WixToolset.Data/PdbType.cs +++ b/src/WixToolset.Data/PdbType.cs @@ -12,8 +12,5 @@ namespace WixToolset.Data /// No .wixpdb file. None, - - /// A .wixpdb file with partial, pre-bind data. No other output will be generated. - Partial, } } -- cgit v1.2.3-55-g6feb From f49060303504d112b1580c1c90430aab4aaf1763 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sat, 11 Apr 2020 16:02:25 +1000 Subject: Move table definitions from Core to Data. Sync tuple and table definitions. --- .../Tuples/AdminExecuteSequenceTuple.cs | 60 - src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs | 60 - .../Tuples/AdvtExecuteSequenceTuple.cs | 60 - src/WixToolset.Data/Tuples/AssemblyTuple.cs | 8 +- src/WixToolset.Data/Tuples/CCPSearchTuple.cs | 4 +- src/WixToolset.Data/Tuples/CompLocatorTuple.cs | 4 +- .../Tuples/InstallExecuteSequenceTuple.cs | 60 - .../Tuples/InstallUISequenceTuple.cs | 60 - .../Tuples/ModuleAdminExecuteSequenceTuple.cs | 76 - .../Tuples/ModuleAdminUISequenceTuple.cs | 76 - .../Tuples/ModuleAdvtExecuteSequenceTuple.cs | 76 - .../Tuples/ModuleIgnoreTableTuple.cs | 6 +- .../Tuples/ModuleInstallExecuteSequenceTuple.cs | 76 - .../Tuples/ModuleInstallUISequenceTuple.cs | 76 - .../Tuples/MsiDigitalCertificateTuple.cs | 8 - .../Tuples/MsiEmbeddedChainerTuple.cs | 8 - .../Tuples/MsiServiceConfigTuple.cs | 1 - src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs | 100 - src/WixToolset.Data/Tuples/ServiceControlTuple.cs | 8 - src/WixToolset.Data/Tuples/TupleDefinitions.cs | 53 +- .../Tuples/WixBootstrapperApplicationTuple.cs | 6 +- .../Tuples/WixBundlePackageGroupTuple.cs | 10 +- .../Tuples/WixBundlePayloadGroupTuple.cs | 10 +- src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixChainItemTuple.cs | 4 +- .../Tuples/WixDeltaPatchFileTuple.cs | 84 + src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs | 6 +- src/WixToolset.Data/Tuples/WixFragmentTuple.cs | 4 +- .../Tuples/WixPatchMetadataTuple.cs | 46 - .../Tuples/WixSuppressModularizationTuple.cs | 4 +- src/WixToolset.Data/Tuples/WixUITuple.cs | 6 +- .../WindowsInstaller/TableDefinitionCollection.cs | 8 + .../WindowsInstallerTableDefinitions.cs | 2967 ++++++++++++++++++++ 33 files changed, 3099 insertions(+), 938 deletions(-) delete mode 100644 src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs create mode 100644 src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs deleted file mode 100644 index 6dea5cfc..00000000 --- a/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition AdminExecuteSequence = new IntermediateTupleDefinition( - TupleDefinitionType.AdminExecuteSequence, - new[] - { - new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), - }, - typeof(AdminExecuteSequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum AdminExecuteSequenceTupleFields - { - Action, - Condition, - Sequence, - } - - public class AdminExecuteSequenceTuple : IntermediateTuple - { - public AdminExecuteSequenceTuple() : base(TupleDefinitions.AdminExecuteSequence, null, null) - { - } - - public AdminExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdminExecuteSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[AdminExecuteSequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Action]; - set => this.Set((int)AdminExecuteSequenceTupleFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Condition]; - set => this.Set((int)AdminExecuteSequenceTupleFields.Condition, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)AdminExecuteSequenceTupleFields.Sequence]; - set => this.Set((int)AdminExecuteSequenceTupleFields.Sequence, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs deleted file mode 100644 index b6830b74..00000000 --- a/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition AdminUISequence = new IntermediateTupleDefinition( - TupleDefinitionType.AdminUISequence, - new[] - { - new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Sequence), IntermediateFieldType.Number), - }, - typeof(AdminUISequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum AdminUISequenceTupleFields - { - Action, - Condition, - Sequence, - } - - public class AdminUISequenceTuple : IntermediateTuple - { - public AdminUISequenceTuple() : base(TupleDefinitions.AdminUISequence, null, null) - { - } - - public AdminUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdminUISequence, sourceLineNumber, id) - { - } - - public IntermediateField this[AdminUISequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)AdminUISequenceTupleFields.Action]; - set => this.Set((int)AdminUISequenceTupleFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)AdminUISequenceTupleFields.Condition]; - set => this.Set((int)AdminUISequenceTupleFields.Condition, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)AdminUISequenceTupleFields.Sequence]; - set => this.Set((int)AdminUISequenceTupleFields.Sequence, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs deleted file mode 100644 index e2e808c9..00000000 --- a/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition AdvtExecuteSequence = new IntermediateTupleDefinition( - TupleDefinitionType.AdvtExecuteSequence, - new[] - { - new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), - }, - typeof(AdvtExecuteSequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum AdvtExecuteSequenceTupleFields - { - Action, - Condition, - Sequence, - } - - public class AdvtExecuteSequenceTuple : IntermediateTuple - { - public AdvtExecuteSequenceTuple() : base(TupleDefinitions.AdvtExecuteSequence, null, null) - { - } - - public AdvtExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdvtExecuteSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[AdvtExecuteSequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Action]; - set => this.Set((int)AdvtExecuteSequenceTupleFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Condition]; - set => this.Set((int)AdvtExecuteSequenceTupleFields.Condition, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)AdvtExecuteSequenceTupleFields.Sequence]; - set => this.Set((int)AdvtExecuteSequenceTupleFields.Sequence, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AssemblyTuple.cs b/src/WixToolset.Data/Tuples/AssemblyTuple.cs index 15367cc3..d1e5e1ce 100644 --- a/src/WixToolset.Data/Tuples/AssemblyTuple.cs +++ b/src/WixToolset.Data/Tuples/AssemblyTuple.cs @@ -14,7 +14,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(AssemblyTupleFields.FeatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ManifestFileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ApplicationFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblyTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AssemblyTupleFields.Type), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ProcessorArchitecture), IntermediateFieldType.String), }, typeof(AssemblyTuple)); @@ -29,7 +29,7 @@ namespace WixToolset.Data.Tuples FeatureRef, ManifestFileRef, ApplicationFileRef, - Attributes, + Type, ProcessorArchitecture, } @@ -83,8 +83,8 @@ namespace WixToolset.Data.Tuples public AssemblyType Type { - get => (AssemblyType)this.Fields[(int)AssemblyTupleFields.Attributes].AsNumber(); - set => this.Set((int)AssemblyTupleFields.Attributes, (int)value); + get => (AssemblyType)this.Fields[(int)AssemblyTupleFields.Type].AsNumber(); + set => this.Set((int)AssemblyTupleFields.Type, (int)value); } public string ProcessorArchitecture diff --git a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs index bdc64907..63720d64 100644 --- a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition CCPSearch = new IntermediateTupleDefinition( TupleDefinitionType.CCPSearch, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(CCPSearchTuple)); } } diff --git a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs index 746d3073..58b32604 100644 --- a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs @@ -41,8 +41,8 @@ namespace WixToolset.Data.Tuples public string SignatureRef { - get => (string)this.Fields[(int)IniLocatorTupleFields.SignatureRef]; - set => this.Set((int)IniLocatorTupleFields.SignatureRef, value); + get => (string)this.Fields[(int)CompLocatorTupleFields.SignatureRef]; + set => this.Set((int)CompLocatorTupleFields.SignatureRef, value); } public string ComponentId diff --git a/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs deleted file mode 100644 index 0dbb00ed..00000000 --- a/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition InstallExecuteSequence = new IntermediateTupleDefinition( - TupleDefinitionType.InstallExecuteSequence, - new[] - { - new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), - }, - typeof(InstallExecuteSequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum InstallExecuteSequenceTupleFields - { - Action, - Condition, - Sequence, - } - - public class InstallExecuteSequenceTuple : IntermediateTuple - { - public InstallExecuteSequenceTuple() : base(TupleDefinitions.InstallExecuteSequence, null, null) - { - } - - public InstallExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.InstallExecuteSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[InstallExecuteSequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Action]; - set => this.Set((int)InstallExecuteSequenceTupleFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Condition]; - set => this.Set((int)InstallExecuteSequenceTupleFields.Condition, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)InstallExecuteSequenceTupleFields.Sequence]; - set => this.Set((int)InstallExecuteSequenceTupleFields.Sequence, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs deleted file mode 100644 index 09751df3..00000000 --- a/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition InstallUISequence = new IntermediateTupleDefinition( - TupleDefinitionType.InstallUISequence, - new[] - { - new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Sequence), IntermediateFieldType.Number), - }, - typeof(InstallUISequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum InstallUISequenceTupleFields - { - Action, - Condition, - Sequence, - } - - public class InstallUISequenceTuple : IntermediateTuple - { - public InstallUISequenceTuple() : base(TupleDefinitions.InstallUISequence, null, null) - { - } - - public InstallUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.InstallUISequence, sourceLineNumber, id) - { - } - - public IntermediateField this[InstallUISequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)InstallUISequenceTupleFields.Action]; - set => this.Set((int)InstallUISequenceTupleFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)InstallUISequenceTupleFields.Condition]; - set => this.Set((int)InstallUISequenceTupleFields.Condition, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)InstallUISequenceTupleFields.Sequence]; - set => this.Set((int)InstallUISequenceTupleFields.Sequence, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs deleted file mode 100644 index eba7a431..00000000 --- a/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition ModuleAdminExecuteSequence = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleAdminExecuteSequence, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.After), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), - }, - typeof(ModuleAdminExecuteSequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum ModuleAdminExecuteSequenceTupleFields - { - Action, - Sequence, - BaseAction, - After, - Condition, - } - - public class ModuleAdminExecuteSequenceTuple : IntermediateTuple - { - public ModuleAdminExecuteSequenceTuple() : base(TupleDefinitions.ModuleAdminExecuteSequence, null, null) - { - } - - public ModuleAdminExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdminExecuteSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleAdminExecuteSequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Action]; - set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Action, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Sequence]; - set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Sequence, value); - } - - public string BaseAction - { - get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.BaseAction]; - set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.BaseAction, value); - } - - public int After - { - get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.After]; - set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.After, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Condition]; - set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs deleted file mode 100644 index 396a81da..00000000 --- a/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition ModuleAdminUISequence = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleAdminUISequence, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.BaseAction), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.After), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Condition), IntermediateFieldType.String), - }, - typeof(ModuleAdminUISequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum ModuleAdminUISequenceTupleFields - { - Action, - Sequence, - BaseAction, - After, - Condition, - } - - public class ModuleAdminUISequenceTuple : IntermediateTuple - { - public ModuleAdminUISequenceTuple() : base(TupleDefinitions.ModuleAdminUISequence, null, null) - { - } - - public ModuleAdminUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdminUISequence, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleAdminUISequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Action]; - set => this.Set((int)ModuleAdminUISequenceTupleFields.Action, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.Sequence]; - set => this.Set((int)ModuleAdminUISequenceTupleFields.Sequence, value); - } - - public string BaseAction - { - get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.BaseAction]; - set => this.Set((int)ModuleAdminUISequenceTupleFields.BaseAction, value); - } - - public int After - { - get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.After]; - set => this.Set((int)ModuleAdminUISequenceTupleFields.After, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Condition]; - set => this.Set((int)ModuleAdminUISequenceTupleFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs deleted file mode 100644 index 146d09d0..00000000 --- a/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition ModuleAdvtExecuteSequence = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleAdvtExecuteSequence, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.After), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), - }, - typeof(ModuleAdvtExecuteSequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum ModuleAdvtExecuteSequenceTupleFields - { - Action, - Sequence, - BaseAction, - After, - Condition, - } - - public class ModuleAdvtExecuteSequenceTuple : IntermediateTuple - { - public ModuleAdvtExecuteSequenceTuple() : base(TupleDefinitions.ModuleAdvtExecuteSequence, null, null) - { - } - - public ModuleAdvtExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdvtExecuteSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleAdvtExecuteSequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Action]; - set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Action, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Sequence]; - set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Sequence, value); - } - - public string BaseAction - { - get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.BaseAction]; - set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.BaseAction, value); - } - - public int After - { - get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.After]; - set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.After, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Condition]; - set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs index efcf0f79..d786b8d9 100644 --- a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition ModuleIgnoreTable = new IntermediateTupleDefinition( TupleDefinitionType.ModuleIgnoreTable, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(ModuleIgnoreTableTuple)); } } @@ -30,5 +32,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[ModuleIgnoreTableTupleFields index] => this.Fields[(int)index]; - } + } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs deleted file mode 100644 index 07b79239..00000000 --- a/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition ModuleInstallExecuteSequence = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleInstallExecuteSequence, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.After), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), - }, - typeof(ModuleInstallExecuteSequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum ModuleInstallExecuteSequenceTupleFields - { - Action, - Sequence, - BaseAction, - After, - Condition, - } - - public class ModuleInstallExecuteSequenceTuple : IntermediateTuple - { - public ModuleInstallExecuteSequenceTuple() : base(TupleDefinitions.ModuleInstallExecuteSequence, null, null) - { - } - - public ModuleInstallExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleInstallExecuteSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleInstallExecuteSequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Action]; - set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Action, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Sequence]; - set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Sequence, value); - } - - public string BaseAction - { - get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.BaseAction]; - set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.BaseAction, value); - } - - public int After - { - get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.After]; - set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.After, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Condition]; - set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs deleted file mode 100644 index 31bb8555..00000000 --- a/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition ModuleInstallUISequence = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleInstallUISequence, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.BaseAction), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.After), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Condition), IntermediateFieldType.String), - }, - typeof(ModuleInstallUISequenceTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum ModuleInstallUISequenceTupleFields - { - Action, - Sequence, - BaseAction, - After, - Condition, - } - - public class ModuleInstallUISequenceTuple : IntermediateTuple - { - public ModuleInstallUISequenceTuple() : base(TupleDefinitions.ModuleInstallUISequence, null, null) - { - } - - public ModuleInstallUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleInstallUISequence, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleInstallUISequenceTupleFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Action]; - set => this.Set((int)ModuleInstallUISequenceTupleFields.Action, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.Sequence]; - set => this.Set((int)ModuleInstallUISequenceTupleFields.Sequence, value); - } - - public string BaseAction - { - get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.BaseAction]; - set => this.Set((int)ModuleInstallUISequenceTupleFields.BaseAction, value); - } - - public int After - { - get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.After]; - set => this.Set((int)ModuleInstallUISequenceTupleFields.After, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Condition]; - set => this.Set((int)ModuleInstallUISequenceTupleFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs index 52f1adea..e4c0469b 100644 --- a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.MsiDigitalCertificate, new[] { - new IntermediateFieldDefinition(nameof(MsiDigitalCertificateTupleFields.DigitalCertificate), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiDigitalCertificateTupleFields.CertData), IntermediateFieldType.Path), }, typeof(MsiDigitalCertificateTuple)); @@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples { public enum MsiDigitalCertificateTupleFields { - DigitalCertificate, CertData, } @@ -37,12 +35,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiDigitalCertificateTupleFields index] => this.Fields[(int)index]; - public string DigitalCertificate - { - get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.DigitalCertificate]; - set => this.Set((int)MsiDigitalCertificateTupleFields.DigitalCertificate, value); - } - public string CertData { get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.CertData]; diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs index 72d92c3e..d1e49834 100644 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.MsiEmbeddedChainer, new[] { - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Condition), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.CommandLine), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Source), IntermediateFieldType.String), @@ -24,7 +23,6 @@ namespace WixToolset.Data.Tuples { public enum MsiEmbeddedChainerTupleFields { - MsiEmbeddedChainer, Condition, CommandLine, Source, @@ -43,12 +41,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[MsiEmbeddedChainerTupleFields index] => this.Fields[(int)index]; - public string MsiEmbeddedChainer - { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer]; - set => this.Set((int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer, value); - } - public string Condition { get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Condition]; diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs index 4943c245..242098cd 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs @@ -26,7 +26,6 @@ namespace WixToolset.Data.Tuples { public enum MsiServiceConfigTupleFields { - MsiServiceConfig, Name, OnInstall, OnReinstall, diff --git a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs deleted file mode 100644 index 22aa7065..00000000 --- a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition RemoveIniFile = new IntermediateTupleDefinition( - TupleDefinitionType.RemoveIniFile, - new[] - { - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.RemoveIniFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.DirProperty), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Section), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(RemoveIniFileTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum RemoveIniFileTupleFields - { - RemoveIniFile, - FileName, - DirProperty, - Section, - Key, - Value, - Action, - ComponentRef, - } - - public class RemoveIniFileTuple : IntermediateTuple - { - public RemoveIniFileTuple() : base(TupleDefinitions.RemoveIniFile, null, null) - { - } - - public RemoveIniFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveIniFile, sourceLineNumber, id) - { - } - - public IntermediateField this[RemoveIniFileTupleFields index] => this.Fields[(int)index]; - - public string RemoveIniFile - { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.RemoveIniFile]; - set => this.Set((int)RemoveIniFileTupleFields.RemoveIniFile, value); - } - - public string FileName - { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.FileName]; - set => this.Set((int)RemoveIniFileTupleFields.FileName, value); - } - - public string DirProperty - { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.DirProperty]; - set => this.Set((int)RemoveIniFileTupleFields.DirProperty, value); - } - - public string Section - { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Section]; - set => this.Set((int)RemoveIniFileTupleFields.Section, value); - } - - public string Key - { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Key]; - set => this.Set((int)RemoveIniFileTupleFields.Key, value); - } - - public string Value - { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.Value]; - set => this.Set((int)RemoveIniFileTupleFields.Value, value); - } - - public int Action - { - get => (int)this.Fields[(int)RemoveIniFileTupleFields.Action]; - set => this.Set((int)RemoveIniFileTupleFields.Action, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)RemoveIniFileTupleFields.ComponentRef]; - set => this.Set((int)RemoveIniFileTupleFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs index 113d71db..e34de0df 100644 --- a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data TupleDefinitionType.ServiceControl, new[] { - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.ServiceControl), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.InstallRemove), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.UninstallRemove), IntermediateFieldType.Bool), @@ -30,7 +29,6 @@ namespace WixToolset.Data.Tuples { public enum ServiceControlTupleFields { - ServiceControl, Name, InstallRemove, UninstallRemove, @@ -55,12 +53,6 @@ namespace WixToolset.Data.Tuples public IntermediateField this[ServiceControlTupleFields index] => this.Fields[(int)index]; - public string ServiceControl - { - get => (string)this.Fields[(int)ServiceControlTupleFields.ServiceControl]; - set => this.Set((int)ServiceControlTupleFields.ServiceControl, value); - } - public string Name { get => (string)this.Fields[(int)ServiceControlTupleFields.Name]; diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index 78da0da3..67393f04 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -7,11 +7,7 @@ namespace WixToolset.Data public enum TupleDefinitionType { SummaryInformation, - Validation, ActionText, - AdminExecuteSequence, - AdminUISequence, - AdvtExecuteSequence, AppId, AppSearch, BBControl, @@ -48,8 +44,6 @@ namespace WixToolset.Data ImageFamilies, IniFile, IniLocator, - InstallExecuteSequence, - InstallUISequence, IsolatedComponent, LaunchCondition, ListBox, @@ -57,16 +51,11 @@ namespace WixToolset.Data LockPermissions, Media, MIME, - ModuleAdminExecuteSequence, - ModuleAdminUISequence, - ModuleAdvtExecuteSequence, ModuleComponents, ModuleConfiguration, ModuleDependency, ModuleExclusion, ModuleIgnoreTable, - ModuleInstallExecuteSequence, - ModuleInstallUISequence, ModuleSignature, ModuleSubstitution, MoveFile, @@ -106,7 +95,6 @@ namespace WixToolset.Data Registry, RegLocator, RemoveFile, - RemoveIniFile, RemoveRegistry, ReserveCost, ServiceControl, @@ -164,7 +152,6 @@ namespace WixToolset.Data WixEnsureTable, WixFeatureGroup, WixFeatureModules, - WixFile, WixFileSearch, WixFragment, WixGroup, @@ -176,7 +163,6 @@ namespace WixToolset.Data WixPatchBaseline, WixPatchFamilyGroup, WixPatchId, - WixPatchMetadata, WixPatchRef, WixPatchTarget, WixProductSearch, @@ -219,15 +205,6 @@ namespace WixToolset.Data case TupleDefinitionType.ActionText: return TupleDefinitions.ActionText; - case TupleDefinitionType.AdminExecuteSequence: - return TupleDefinitions.AdminExecuteSequence; - - case TupleDefinitionType.AdminUISequence: - return TupleDefinitions.AdminUISequence; - - case TupleDefinitionType.AdvtExecuteSequence: - return TupleDefinitions.AdvtExecuteSequence; - case TupleDefinitionType.AppId: return TupleDefinitions.AppId; @@ -336,12 +313,6 @@ namespace WixToolset.Data case TupleDefinitionType.IniLocator: return TupleDefinitions.IniLocator; - case TupleDefinitionType.InstallExecuteSequence: - return TupleDefinitions.InstallExecuteSequence; - - case TupleDefinitionType.InstallUISequence: - return TupleDefinitions.InstallUISequence; - case TupleDefinitionType.IsolatedComponent: return TupleDefinitions.IsolatedComponent; @@ -363,15 +334,6 @@ namespace WixToolset.Data case TupleDefinitionType.MIME: return TupleDefinitions.MIME; - case TupleDefinitionType.ModuleAdminExecuteSequence: - return TupleDefinitions.ModuleAdminExecuteSequence; - - case TupleDefinitionType.ModuleAdminUISequence: - return TupleDefinitions.ModuleAdminUISequence; - - case TupleDefinitionType.ModuleAdvtExecuteSequence: - return TupleDefinitions.ModuleAdvtExecuteSequence; - case TupleDefinitionType.ModuleComponents: return TupleDefinitions.ModuleComponents; @@ -387,12 +349,6 @@ namespace WixToolset.Data case TupleDefinitionType.ModuleIgnoreTable: return TupleDefinitions.ModuleIgnoreTable; - case TupleDefinitionType.ModuleInstallExecuteSequence: - return TupleDefinitions.ModuleInstallExecuteSequence; - - case TupleDefinitionType.ModuleInstallUISequence: - return TupleDefinitions.ModuleInstallUISequence; - case TupleDefinitionType.ModuleSignature: return TupleDefinitions.ModuleSignature; @@ -510,9 +466,6 @@ namespace WixToolset.Data case TupleDefinitionType.RemoveFile: return TupleDefinitions.RemoveFile; - case TupleDefinitionType.RemoveIniFile: - return TupleDefinitions.RemoveIniFile; - case TupleDefinitionType.RemoveRegistry: return TupleDefinitions.RemoveRegistry; @@ -666,6 +619,9 @@ namespace WixToolset.Data case TupleDefinitionType.WixCustomTable: return TupleDefinitions.WixCustomTable; + case TupleDefinitionType.WixDeltaPatchFile: + return TupleDefinitions.WixDeltaPatchFile; + case TupleDefinitionType.WixDeltaPatchSymbolPaths: return TupleDefinitions.WixDeltaPatchSymbolPaths; @@ -711,9 +667,6 @@ namespace WixToolset.Data case TupleDefinitionType.WixPatchId: return TupleDefinitions.WixPatchId; - case TupleDefinitionType.WixPatchMetadata: - return TupleDefinitions.WixPatchMetadata; - case TupleDefinitionType.WixPatchRef: return TupleDefinitions.WixPatchRef; diff --git a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs index e3c1490f..84a74b17 100644 --- a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixBootstrapperApplication = new IntermediateTupleDefinition( TupleDefinitionType.WixBootstrapperApplication, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(WixBootstrapperApplicationTuple)); } } @@ -30,5 +32,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixBootstrapperApplicationTupleFields index] => this.Fields[(int)index]; - } + } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs index 61084c88..ababd00e 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs @@ -8,9 +8,8 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixBundlePackageGroup = new IntermediateTupleDefinition( TupleDefinitionType.WixBundlePackageGroup, - new[] + new IntermediateFieldDefinition[] { - new IntermediateFieldDefinition(nameof(WixBundlePackageGroupTupleFields.WixBundlePackageGroup), IntermediateFieldType.String), }, typeof(WixBundlePackageGroupTuple)); } @@ -20,7 +19,6 @@ namespace WixToolset.Data.Tuples { public enum WixBundlePackageGroupTupleFields { - WixBundlePackageGroup, } public class WixBundlePackageGroupTuple : IntermediateTuple @@ -34,11 +32,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixBundlePackageGroupTupleFields index] => this.Fields[(int)index]; - - public string WixBundlePackageGroup - { - get => (string)this.Fields[(int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup]; - set => this.Set((int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup, value); - } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs index c2f01ebc..9c177a47 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs @@ -8,9 +8,8 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixBundlePayloadGroup = new IntermediateTupleDefinition( TupleDefinitionType.WixBundlePayloadGroup, - new[] + new IntermediateFieldDefinition[] { - new IntermediateFieldDefinition(nameof(WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup), IntermediateFieldType.String), }, typeof(WixBundlePayloadGroupTuple)); } @@ -20,7 +19,6 @@ namespace WixToolset.Data.Tuples { public enum WixBundlePayloadGroupTupleFields { - WixBundlePayloadGroup, } public class WixBundlePayloadGroupTuple : IntermediateTuple @@ -34,11 +32,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixBundlePayloadGroupTupleFields index] => this.Fields[(int)index]; - - public string WixBundlePayloadGroup - { - get => (string)this.Fields[(int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup]; - set => this.Set((int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup, value); - } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs index 25686027..08ca5d6e 100644 --- a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs @@ -31,7 +31,7 @@ namespace WixToolset.Data.Tuples { } - public WixBundleUpdateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleUpdate,sourceLineNumber,id) + public WixBundleUpdateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleUpdate, sourceLineNumber, id) { } diff --git a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs index a6541c43..6c0633e0 100644 --- a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs +++ b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixChainItem = new IntermediateTupleDefinition( TupleDefinitionType.WixChainItem, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(WixChainItemTuple)); } } diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs new file mode 100644 index 00000000..4f90bb7c --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixDeltaPatchFile = new IntermediateTupleDefinition( + TupleDefinitionType.WixDeltaPatchFile, + new[] + { + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(WixDeltaPatchFileTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixDeltaPatchFileTupleFields + { + FileRef, + RetainLengths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + SymbolPaths, + } + + public class WixDeltaPatchFileTuple : IntermediateTuple + { + public WixDeltaPatchFileTuple() : base(TupleDefinitions.WixDeltaPatchFile, null, null) + { + } + + public WixDeltaPatchFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchFile, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDeltaPatchFileTupleFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.FileRef]; + set => this.Set((int)WixDeltaPatchFileTupleFields.FileRef, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]; + set => this.Set((int)WixDeltaPatchFileTupleFields.RetainLengths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreOffsets]; + set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreLengths]; + set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainOffsets]; + set => this.Set((int)WixDeltaPatchFileTupleFields.RetainOffsets, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.SymbolPaths]; + set => this.Set((int)WixDeltaPatchFileTupleFields.SymbolPaths, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs index 424bddb7..481bb193 100644 --- a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixFeatureGroup = new IntermediateTupleDefinition( TupleDefinitionType.WixFeatureGroup, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(WixFeatureGroupTuple)); } } @@ -30,5 +32,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixFeatureGroupTupleFields index] => this.Fields[(int)index]; - } + } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs index fedfa872..cda7534d 100644 --- a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixFragment = new IntermediateTupleDefinition( TupleDefinitionType.WixFragment, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(WixFragmentTuple)); } } diff --git a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs deleted file mode 100644 index b64fd891..00000000 --- a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs +++ /dev/null @@ -1,46 +0,0 @@ -// 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. - -// TODO: delete this - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixPatchMetadata = new IntermediateTupleDefinition( - TupleDefinitionType.WixPatchMetadata, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchMetadataTupleFields.Value), IntermediateFieldType.String), - }, - typeof(WixPatchMetadataTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixPatchMetadataTupleFields - { - Value, - } - - public class WixPatchMetadataTuple : IntermediateTuple - { - public WixPatchMetadataTuple() : base(TupleDefinitions.WixPatchMetadata, null, null) - { - } - - public WixPatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchMetadata, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchMetadataTupleFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Value]; - set => this.Set((int)WixPatchMetadataTupleFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs index ab1a1a4c..9c6c8468 100644 --- a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixSuppressModularization = new IntermediateTupleDefinition( TupleDefinitionType.WixSuppressModularization, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(WixSuppressModularizationTuple)); } } diff --git a/src/WixToolset.Data/Tuples/WixUITuple.cs b/src/WixToolset.Data/Tuples/WixUITuple.cs index 89205850..23312096 100644 --- a/src/WixToolset.Data/Tuples/WixUITuple.cs +++ b/src/WixToolset.Data/Tuples/WixUITuple.cs @@ -8,7 +8,9 @@ namespace WixToolset.Data { public static readonly IntermediateTupleDefinition WixUI = new IntermediateTupleDefinition( TupleDefinitionType.WixUI, - new IntermediateFieldDefinition[0], + new IntermediateFieldDefinition[] + { + }, typeof(WixUITuple)); } } @@ -30,5 +32,5 @@ namespace WixToolset.Data.Tuples } public IntermediateField this[WixUITupleFields index] => this.Fields[(int)index]; - } + } } diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs index 96c5f74f..e1119a68 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs @@ -32,6 +32,14 @@ namespace WixToolset.Data.WindowsInstaller this.collection = new Dictionary(tableDefinitions.collection); } + /// + /// Creates a table definition collection with the given table definitions. + /// + public TableDefinitionCollection(IEnumerable tableDefinitions) + { + this.collection = tableDefinitions.ToDictionary(t => t.Name); + } + /// /// Gets the number of items in the collection. /// diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs new file mode 100644 index 00000000..11b884bd --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -0,0 +1,2967 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + public static class WindowsInstallerTableDefinitions + { + public static readonly TableDefinition ActionText = new TableDefinition( + "ActionText", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to be described.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description displayed in progress dialog and log when action is executing."), + new ColumnDefinition("Template", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Optional localized format template used to format action data records for display during action execution.", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.ActionText.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition AdminExecuteSequence = new TableDefinition( + "AdminExecuteSequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Condition = new TableDefinition( + "Condition", + new[] + { + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Reference to a Feature entry in Feature table."), + new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "New selection Level to set in Feature table if Condition evaluates to TRUE."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Expression evaluated to determine if Level in the Feature table is to change.", forceLocalizable: true), + }, + tupleDefinitionName: TupleDefinitions.Condition.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition AdminUISequence = new TableDefinition( + "AdminUISequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition AdvtExecuteSequence = new TableDefinition( + "AdvtExecuteSequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition AdvtUISequence = new TableDefinition( + "AdvtUISequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition AppId = new TableDefinition( + "AppId", + new[] + { + new ColumnDefinition("AppId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("RemoteServerName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("LocalService", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("ServiceParameters", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("DllSurrogate", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("ActivateAtStorage", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("RunAsInteractiveUser", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + }, + tupleDefinitionName: TupleDefinitions.AppId.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition AppSearch = new TableDefinition( + "AppSearch", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The property associated with a Signature", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.AppSearch.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Property = new TableDefinition( + "Property", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of property, uppercase if settable by launcher or loader.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "String value for property. Never null or empty."), + }, + tupleDefinitionName: TupleDefinitions.Property.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition BBControl = new TableDefinition( + "BBControl", + new[] + { + new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Billboard", keyColumn: 1, description: "External key to the Billboard table, name of the billboard.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("BBControl", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the control. This name must be unique within a billboard, but can repeat on different billboard."), + new ColumnDefinition("Type", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The type of the control."), + new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Horizontal coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Vertical coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), + new ColumnDefinition("Text", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A string used to set the initial text contained within a control (if appropriate)."), + }, + tupleDefinitionName: TupleDefinitions.BBControl.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Billboard = new TableDefinition( + "Billboard", + new[] + { + new ColumnDefinition("Billboard", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the billboard.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "An external key to the Feature Table. The billboard is shown only if this feature is being installed."), + new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of an action. The billboard is displayed during the progress messages received from this action."), + new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "A positive integer. If there is more than one billboard corresponding to an action they will be shown in the order defined by this column."), + }, + tupleDefinitionName: TupleDefinitions.Billboard.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Feature = new TableDefinition( + "Feature", + new[] + { + new ColumnDefinition("Feature", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular feature record."), + new ColumnDefinition("Feature_Parent", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Optional key of a parent record in the same table. If the parent is not selected, then the record will not be installed. Null indicates a root item."), + new ColumnDefinition("Title", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Short text identifying a visible feature item."), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Longer descriptive text describing a visible feature item."), + new ColumnDefinition("Display", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Numeric sort order, used to force a specific display ordering."), + new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The install level at which record will be initially selected. An install level of 0 will disable an item and prevent its display."), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.UpperCase, keyTable: "Directory", keyColumn: 1, description: "The name of the Directory that can be configured by the UI. A non-null value will enable the browse button.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54", description: "Feature attributes"), + }, + tupleDefinitionName: TupleDefinitions.Feature.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Binary = new TableDefinition( + "Binary", + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique key identifying the binary data.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "The unformatted binary data."), + }, + tupleDefinitionName: TupleDefinitions.Binary.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition BindImage = new TableDefinition( + "BindImage", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The index into the File table. This must be an executable file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Paths, description: "A list of ; delimited paths that represent the paths to be searched for the import DLLS. The list is usually a list of properties each enclosed within square brackets [] .", modularizeType: ColumnModularizeType.Property), + }, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition File = new TableDefinition( + "File", + new[] + { + new ColumnDefinition("File", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "File name used for installation, may be localized. This may contain a \"short name|long name\" pair."), + new ColumnDefinition("FileSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("Version", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, keyTable: "File", keyColumn: 1, description: "Version string for versioned files; Blank for unversioned files.", modularizeType: ColumnModularizeType.CompanionFile), + new ColumnDefinition("Language", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Language, description: "List of decimal language Ids, comma-separated if more than one."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses)"), + new ColumnDefinition("Sequence", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 2147483647, description: "Sequence with respect to the media images; order must track cabinet order."), + new ColumnDefinition("DiskId", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Disk identifier for the file.", unreal: true), + new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Path to source of file.", unreal: true), + }, + tupleDefinitionName: TupleDefinitions.File.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition CCPSearch = new TableDefinition( + "CCPSearch", + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables."), + }, + tupleDefinitionName: TupleDefinitions.CCPSearch.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition CheckBox = new TableDefinition( + "CheckBox", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to the item.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value string associated with the item.", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.CheckBox.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Class = new TableDefinition( + "Class", + new[] + { + new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The CLSID of an OLE factory."), + new ColumnDefinition("Context", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The numeric server context for this server. CLSCTX_xxxx"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProgId_Default", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "Optional ProgId associated with this CLSID."), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description for the Class."), + new ColumnDefinition("AppId_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, keyTable: "AppId", keyColumn: 1, description: "Optional AppID containing DCOM information for associated application (string GUID)."), + new ColumnDefinition("FileTypeMask", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Optional string containing information for the HKCRthis CLSID) key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2..."), + new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this CLSID. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), + new ColumnDefinition("DefInprocHandler", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Filename, possibilities: "1;2;3", description: "Optional default inproc handler. Only optionally provided if Context=CLSCTX_LOCAL_SERVER. Typically \"ole32.dll\" or \"mapi32.dll\""), + new ColumnDefinition("Argument", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "optional argument for LocalServers."), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, maxValue: 32767, description: "Class registration attributes."), + }, + tupleDefinitionName: TupleDefinitions.Class.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Component = new TableDefinition( + "Component", + new[] + { + new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular component record.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Required key of a Directory table record. This is actually a property name whose value contains the actual path, set either by the AppSearch action or with the default setting obtained from the Directory table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Remote execution option, one of irsEnum"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + new ColumnDefinition("KeyPath", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File;Registry;ODBCDataSource", keyColumn: 1, description: "Either the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.Component.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Icon = new TableDefinition( + "Icon", + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. Name of the icon file.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format."), + }, + tupleDefinitionName: TupleDefinitions.Icon.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ProgId = new TableDefinition( + "ProgId", + new[] + { + new ColumnDefinition("ProgId", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The Program Identifier. Primary key."), + new ColumnDefinition("ProgId_Parent", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "The Parent Program Identifier. If specified, the ProgId column becomes a version independent prog id."), + new ColumnDefinition("Class_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, keyTable: "Class", keyColumn: 1, description: "The CLSID of an OLE factory corresponding to the ProgId."), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description for the Program identifier."), + new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this ProgId. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), + }, + tupleDefinitionName: TupleDefinitions.ProgId.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ComboBox = new TableDefinition( + "ComboBox", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same combobox.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list. The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.ComboBox.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition CompLocator = new TableDefinition( + "CompLocator", + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "A boolean value that determines if the registry value is a filename or a directory location."), + }, + tupleDefinitionName: TupleDefinitions.CompLocator.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Complus = new TableDefinition( + "Complus", + new[] + { + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the ComPlus component.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ExpType", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "ComPlus component attributes."), + }, + tupleDefinitionName: TupleDefinitions.Complus.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Directory = new TableDefinition( + "Directory", + new[] + { + new ColumnDefinition("Directory", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Directory_Parent", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Reference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DefaultDir", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.DefaultDir, description: "The default sub-path under parent's path."), + }, + tupleDefinitionName: TupleDefinitions.Directory.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Control = new TableDefinition( + "Control", + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "External key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the control. This name must be unique within a dialog, but can repeat on different dialogs. "), + new ColumnDefinition("Type", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The type of the control."), + new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Horizontal coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Vertical coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of a defined property to be linked to this control. ", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "A string used to set the initial text contained within a control (if appropriate).", modularizeType: ColumnModularizeType.ControlText), + new ColumnDefinition("Control_Next", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "The name of an other control on the same dialog. This link defines the tab order of the controls. The links have to form one or more cycles!"), + new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional. "), + }, + tupleDefinitionName: TupleDefinitions.Control.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Dialog = new TableDefinition( + "Dialog", + new[] + { + new ColumnDefinition("Dialog", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("HCentering", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 100, description: "Horizontal position of the dialog on a 0-100 scale. 0 means left end, 100 means right end of the screen, 50 center."), + new ColumnDefinition("VCentering", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 100, description: "Vertical position of the dialog on a 0-100 scale. 0 means top end, 100 means bottom end of the screen, 50 center."), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the dialog."), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the dialog."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this dialog."), + new ColumnDefinition("Title", ColumnType.Localized, 128, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "A text string specifying the title to be displayed in the title bar of the dialog's window.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Control_First", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the control that has the focus when the dialog is created."), + new ColumnDefinition("Control_Default", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the default control. Hitting return is equivalent to pushing this button."), + new ColumnDefinition("Control_Cancel", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button."), + }, + tupleDefinitionName: TupleDefinitions.Dialog.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ControlCondition = new TableDefinition( + "ControlCondition", + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control."), + new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Default;Disable;Enable;Hide;Show", description: "The desired action to be taken on the specified control."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions the action should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + tupleDefinitionName: TupleDefinitions.ControlCondition.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ControlEvent = new TableDefinition( + "ControlEvent", + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control"), + new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "An identifier that specifies the type of the event that should take place when the user interacts with control specified by the first two entries.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Argument", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "A value to be used as a modifier when triggering a particular event.", modularizeType: ColumnModularizeType.ControlEventArgument, forceLocalizable: true), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions an event should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "An integer used to order several events tied to the same control. Can be left blank."), + }, + tupleDefinitionName: TupleDefinitions.ControlEvent.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition CreateFolder = new TableDefinition( + "CreateFolder", + new[] + { + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Primary key, could be foreign key into the Directory table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.CreateFolder.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition CustomAction = new TableDefinition( + "CustomAction", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, name of action, normally appears in sequence table unless private use.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "The numeric custom action type, consisting of source location, code type, entry, option flags."), + new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.CustomSource, description: "The table reference of the source of the code.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Target", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Excecution parameter, depends on the type of custom action", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("ExtendedType", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A numeric custom action type that extends code type or option flags of the Type column."), + }, + tupleDefinitionName: TupleDefinitions.CustomAction.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition DrLocator = new TableDefinition( + "DrLocator", + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Parent", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "The parent file signature. It is also a foreign key in the Signature table. If null and the Path column does not expand to a full path, then all the fixed drives of the user system are searched using the Path.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.AnyPath, description: "The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Depth", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0."), + }, + tupleDefinitionName: TupleDefinitions.DrLocator.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition DuplicateFile = new TableDefinition( + "DuplicateFile", + new[] + { + new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the duplicate file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key referencing the source file to be duplicated.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Filename to be given to the duplicate file."), + new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to a destination folder.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.DuplicateFile.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Environment = new TableDefinition( + "Environment", + new[] + { + new ColumnDefinition("Environment", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for the environmental variable setting", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the environmental value."), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to set in the environmental settings.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the environmental value.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.Environment.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Error = new TableDefinition( + "Error", + new[] + { + new ColumnDefinition("Error", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer error number, obtained from header file IError(...) macros."), + new ColumnDefinition("Message", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Error formatting template, obtained from user ed. or localizers.", modularizeType: ColumnModularizeType.Property, useCData: true), + }, + tupleDefinitionName: TupleDefinitions.Error.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition EventMapping = new TableDefinition( + "EventMapping", + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the Dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control."), + new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "An identifier that specifies the type of the event that the control subscribes to."), + new ColumnDefinition("Attribute", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The name of the control attribute, that is set when this event is received."), + }, + tupleDefinitionName: TupleDefinitions.EventMapping.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Extension = new TableDefinition( + "Extension", + new[] + { + new ColumnDefinition("Extension", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The extension associated with the table row."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProgId_", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "Optional ProgId associated with this extension."), + new ColumnDefinition("MIME_", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "MIME", keyColumn: 1, description: "Optional Context identifier, typically \"type/format\" associated with the extension"), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), + }, + tupleDefinitionName: TupleDefinitions.Extension.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MIME = new TableDefinition( + "MIME", + new[] + { + new ColumnDefinition("ContentType", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key. Context identifier, typically \"type/format\"."), + new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "Optional associated extension (without dot)"), + new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "Optional associated CLSID."), + }, + tupleDefinitionName: TupleDefinitions.MIME.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition FeatureComponents = new TableDefinition( + "FeatureComponents", + new[] + { + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.FeatureComponents.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition FileSFPCatalog = new TableDefinition( + "FileSFPCatalog", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "File associated with the catalog", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SFPCatalog_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, keyTable: "SFPCatalog", keyColumn: 1, description: "Catalog associated with the file"), + }, + tupleDefinitionName: TupleDefinitions.FileSFPCatalog.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition SFPCatalog = new TableDefinition( + "SFPCatalog", + new[] + { + new ColumnDefinition("SFPCatalog", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, description: "File name for the catalog."), + new ColumnDefinition("Catalog", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "SFP Catalog"), + new ColumnDefinition("Dependency", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Parent catalog - only used by SFP", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.SFPCatalog.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Font = new TableDefinition( + "Font", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing font file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FontTitle", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Font name."), + }, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition IniFile = new TableDefinition( + "IniFile", + new[] + { + new ColumnDefinition("IniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name in which to write the information"), + new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Foreign key into the Directory table denoting the directory where the .INI file is.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Section", ColumnType.Localized, 96, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Key", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file key below Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value to be written.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;3", description: "The type of modification to be made, one of iifEnum"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the .INI value.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.IniFile.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition IniLocator = new TableDefinition( + "IniLocator", + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name."), + new ColumnDefinition("Section", ColumnType.String, 96, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Section name within in file (within square brackets in INI file)."), + new ColumnDefinition("Key", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Key value (followed by an equals sign in INI file)."), + new ColumnDefinition("Field", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The field in the .INI line. If Field is null or 0 the entire line is read."), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2, description: "An integer value that determines if the .INI value read is a filename or a directory location or to be used as is w/o interpretation."), + }, + tupleDefinitionName: TupleDefinitions.IniLocator.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition InstallExecuteSequence = new TableDefinition( + "InstallExecuteSequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition InstallUISequence = new TableDefinition( + "InstallUISequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition IsolatedComponent = new TableDefinition( + "IsolatedComponent", + new[] + { + new ColumnDefinition("Component_Shared", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item to be isolated", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_Application", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item for application", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.IsolatedComponent.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition LaunchCondition = new TableDefinition( + "LaunchCondition", + new[] + { + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "Expression which must evaluate to TRUE in order for install to commence.", forceLocalizable: true), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Localizable text to display when condition fails and install must abort."), + }, + tupleDefinitionName: TupleDefinitions.LaunchCondition.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ListBox = new TableDefinition( + "ListBox", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listbox.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."), + }, + tupleDefinitionName: TupleDefinitions.ListBox.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ListView = new TableDefinition( + "ListView", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listview.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Binary_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Binary", keyColumn: 1, description: "The name of the icon to be displayed with the icon. The binary information is looked up from the Binary Table.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.ListView.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition LockPermissions = new TableDefinition( + "LockPermissions", + new[] + { + new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry or File table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, possibilities: "Directory;File;Registry", description: "Reference to another table name"), + new ColumnDefinition("Domain", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Formatted, description: "Domain name for user whose permissions are being set. (usually a property)", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("User", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "User for permissions to be set. (usually a property)", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Permission", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Permission Access mask. Full Control = 268435456 (GENERIC_ALL = 0x10000000)"), + }, + tupleDefinitionName: TupleDefinitions.LockPermissions.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiLockPermissionsEx = new TableDefinition( + "MsiLockPermissionsEx", + new[] + { + new ColumnDefinition("MsiLockPermissionsEx", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry, File, CreateFolder, or ServiceInstall table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Identifier, possibilities: "CreateFolder;File;Registry;ServiceInstall", description: "Reference to another table name"), + new ColumnDefinition("SDDLText", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.FormattedSDDLText, description: "String to indicate permissions to be applied to the LockObject", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Expression which must evaluate to TRUE in order for this set of permissions to be applied", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.MsiLockPermissionsEx.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Media = new TableDefinition( + "Media", + new[] + { + new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Primary key, integer to determine sort order for table."), + new ColumnDefinition("LastSequence", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "File sequence number for the last file for this media."), + new ColumnDefinition("DiskPrompt", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Disk name: the visible text actually printed on the disk. This will be used to prompt the user when this disk needs to be inserted."), + new ColumnDefinition("Cabinet", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Cabinet, description: "If some or all of the files stored on the media are compressed in a cabinet, the name of that cabinet."), + new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The label attributed to the volume."), + new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Property, description: "The property defining the location of the cabinet file."), + }, + tupleDefinitionName: TupleDefinitions.Media.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MoveFile = new TableDefinition( + "MoveFile", + new[] + { + new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular MoveFile record", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "If this component is not \"selected\" for installation or removal, no action will be taken on the associated MoveFile entry", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SourceName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Name of the source file(s) to be moved or copied. Can contain the '*' or '?' wildcards."), + new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Name to be given to the original file after it is moved or copied. If blank, the destination file will be given the same name as the source file"), + new ColumnDefinition("SourceFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the source directory", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Integer value specifying the MoveFile operating mode, one of imfoEnum"), + }, + tupleDefinitionName: TupleDefinitions.MoveFile.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiAssembly = new TableDefinition( + "MsiAssembly", + new[] + { + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), + new ColumnDefinition("File_Manifest", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the manifest file for the assembly.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_Application", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table, denoting the application context for private assemblies. Null for global assemblies.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Assembly attributes"), + }, + tupleDefinitionName: TupleDefinitions.Assembly.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiAssemblyName = new TableDefinition( + "MsiAssemblyName", + new[] + { + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name."), + new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name."), + }, + tupleDefinitionName: TupleDefinitions.MsiAssemblyName.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiDigitalCertificate = new TableDefinition( + "MsiDigitalCertificate", + new[] + { + new ColumnDefinition("DigitalCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row"), + new ColumnDefinition("CertData", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "A certificate context blob for a signer certificate"), + }, + tupleDefinitionName: TupleDefinitions.MsiDigitalCertificate.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiDigitalSignature = new TableDefinition( + "MsiDigitalSignature", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Media", description: "Reference to another table name (only Media table is supported)"), + new ColumnDefinition("SignObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Foreign key to Media table"), + new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate"), + new ColumnDefinition("Hash", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "The encoded hash blob from the digital signature"), + }, + tupleDefinitionName: TupleDefinitions.MsiDigitalSignature.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiEmbeddedChainer = new TableDefinition( + "MsiEmbeddedChainer", + new[] + { + new ColumnDefinition("MsiEmbeddedChainer", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement for running the user-defined function.", forceLocalizable: true), + new ColumnDefinition("CommandLine", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value in this field is a part of the command line string passed to the executable file identified in the Source column.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.CustomSource, description: "The location of the executable file for the user-defined function.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;18;50", description: "The functions listed in the MsiEmbeddedChainer table are described using the following custom action numeric types."), + }, + tupleDefinitionName: TupleDefinitions.MsiEmbeddedChainer.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiEmbeddedUI = new TableDefinition( + "MsiEmbeddedUI", + new[] + { + new ColumnDefinition("MsiEmbeddedUI", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the file that receives the binary information in the Data column."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;3", description: "Information about the data in the Data column."), + new ColumnDefinition("MessageFilter", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies the types of messages that are sent to the user interface DLL."), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "This column contains binary information."), + }, + tupleDefinitionName: TupleDefinitions.MsiEmbeddedUI.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiFileHash = new TableDefinition( + "MsiFileHash", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing file with this hash", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Various options and attributes for this hash."), + new ColumnDefinition("HashPart1", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("HashPart2", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("HashPart3", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("HashPart4", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + }, + tupleDefinitionName: TupleDefinitions.MsiFileHash.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiPackageCertificate = new TableDefinition( + "MsiPackageCertificate", + new[] + { + new ColumnDefinition("PackageCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), + new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), + }, + tupleDefinitionName: TupleDefinitions.MsiPackageCertificate.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchCertificate = new TableDefinition( + "MsiPatchCertificate", + new[] + { + new ColumnDefinition("PatchCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), + new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), + }, + tupleDefinitionName: TupleDefinitions.MsiPatchCertificate.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchHeaders = new TableDefinition( + "MsiPatchHeaders", + new[] + { + new ColumnDefinition("StreamRef", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), + new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), + }, + tupleDefinitionName: TupleDefinitions.MsiPatchHeaders.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PatchMetadata = new TableDefinition( + "PatchMetadata", + new[] + { + new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "Primary key. The name of the company."), + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the property."), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Non-null, non-empty value of the metadata property."), + }, + tupleDefinitionName: TupleDefinitions.PatchMetadata.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchMetadata = new TableDefinition( + "MsiPatchMetadata", + new[] + { + new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + tupleDefinitionName: TupleDefinitions.MsiPatchMetadata.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchOldAssemblyFile = new TableDefinition( + "MsiPatchOldAssemblyFile", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table. Patch-only table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Assembly_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiPatchOldAssemblyName", keyColumn: 1, description: "Foreign key into MsiPatchOldAssemblyName table.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.MsiPatchOldAssemblyFile.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchOldAssemblyName = new TableDefinition( + "MsiPatchOldAssemblyName", + new[] + { + new ColumnDefinition("Assembly", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name. This represents the old name for the assembly."), + new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name. This represents the old name for the assembly."), + }, + tupleDefinitionName: TupleDefinitions.MsiPatchOldAssemblyName.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PatchSequence = new TableDefinition( + "PatchSequence", + new[] + { + new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the family for the patch."), + new ColumnDefinition("Target", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Text, description: "Primary key. Determines product code filtering for family."), + new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Sequence information in version (x.x.x.x) format."), + new ColumnDefinition("Supersede", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Indicates that this patch supersedes earlier patches."), + }, + tupleDefinitionName: TupleDefinitions.PatchSequence.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchSequence = new TableDefinition( + "MsiPatchSequence", + new[] + { + new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: true, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + tupleDefinitionName: TupleDefinitions.MsiPatchSequence.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ODBCAttribute = new TableDefinition( + "ODBCAttribute", + new[] + { + new ColumnDefinition("Driver_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDriver", keyColumn: 1, description: "Reference to ODBC driver in ODBCDriver table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attribute", ColumnType.String, 40, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC driver attribute"), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC driver attribute"), + }, + tupleDefinitionName: TupleDefinitions.ODBCAttribute.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ODBCDriver = new TableDefinition( + "ODBCDriver", + new[] + { + new ColumnDefinition("Driver", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for driver", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for driver, non-localized"), + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key driver file", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key driver setup DLL", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.ODBCDriver.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ODBCDataSource = new TableDefinition( + "ODBCDataSource", + new[] + { + new ColumnDefinition("DataSource", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for data source", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for data source"), + new ColumnDefinition("DriverDescription", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Reference to driver description, may be existing driver"), + new ColumnDefinition("Registration", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Registration option: 0=machine, 1=user, others t.b.d."), + }, + tupleDefinitionName: TupleDefinitions.ODBCDataSource.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ODBCSourceAttribute = new TableDefinition( + "ODBCSourceAttribute", + new[] + { + new ColumnDefinition("DataSource_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDataSource", keyColumn: 1, description: "Reference to ODBC data source in ODBCDataSource table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attribute", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC data source attribute"), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC data source attribute"), + }, + tupleDefinitionName: TupleDefinitions.ODBCSourceAttribute.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ODBCTranslator = new TableDefinition( + "ODBCTranslator", + new[] + { + new ColumnDefinition("Translator", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for translator", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for translator"), + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key translator file", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key translator setup DLL", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.ODBCTranslator.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Patch = new TableDefinition( + "Patch", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, foreign key to File table, must match identifier in cabinet.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 4, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Primary key, sequence with respect to the media images; order must track cabinet order."), + new ColumnDefinition("PatchSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Size of patch in bytes (long integer)."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer containing bit flags representing patch attributes"), + new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), + new ColumnDefinition("StreamRef_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Identifier. Foreign key to the StreamRef column of the MsiPatchHeaders table."), + }, + tupleDefinitionName: TupleDefinitions.Patch.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PatchPackage = new TableDefinition( + "PatchPackage", + new[] + { + new ColumnDefinition("PatchId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A unique string GUID representing this patch."), + new ColumnDefinition("Media_", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Foreign key to DiskId column of Media table. Indicates the disk containing the patch package."), + }, + tupleDefinitionName: TupleDefinitions.PatchPackage.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PublishComponent = new TableDefinition( + "PublishComponent", + new[] + { + new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A string GUID that represents the component id that will be requested by the alien product."), + new ColumnDefinition("Qualifier", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "This is defined only when the ComponentId column is an Qualified Component Id. This is the Qualifier for ProvideComponentIndirect."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("AppData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "This is localisable Application specific data that can be associated with a Qualified Component."), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into the Feature table."), + }, + tupleDefinitionName: TupleDefinitions.PublishComponent.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition RadioButton = new TableDefinition( + "RadioButton", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this radio button. All the buttons tied to the same property become part of the same group.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this button. Selecting the button will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The horizontal coordinate of the upper left corner of the bounding rectangle of the radio button.", forceLocalizable: true), + new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The vertical coordinate of the upper left corner of the bounding rectangle of the radio button.", forceLocalizable: true), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The width of the button.", forceLocalizable: true), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The height of the button.", forceLocalizable: true), + new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible title to be assigned to the radio button."), + new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional."), + }, + tupleDefinitionName: TupleDefinitions.RadioButton.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Registry = new TableDefinition( + "Registry", + new[] + { + new ColumnDefinition("Registry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -1, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum."), + new ColumnDefinition("Key", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the registry value.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.Registry.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RegLocator = new TableDefinition( + "RegLocator", + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum."), + new ColumnDefinition("Key", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 18, description: "An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation."), + }, + tupleDefinitionName: TupleDefinitions.RegLocator.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RemoveFile = new TableDefinition( + "RemoveFile", + new[] + { + new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the file to be removed.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.WildCardFilename, description: "Name of the file to be removed."), + new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("InstallMode", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "1;2;3", description: "Installation option, one of iimEnum."), + }, + tupleDefinitionName: TupleDefinitions.RemoveFile.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RemoveIniFile = new TableDefinition( + "RemoveIniFile", + new[] + { + new ColumnDefinition("RemoveIniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name in which to delete the information"), + new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Foreign key into the Directory table denoting the directory where the .INI file is.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Section", ColumnType.Localized, 96, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Key", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file key below Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to be deleted. The value is required when Action is iifIniRemoveTag", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;4", description: "The type of modification to be made, one of iifEnum."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the .INI value.", modularizeType: ColumnModularizeType.Column), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RemoveRegistry = new TableDefinition( + "RemoveRegistry", + new[] + { + new ColumnDefinition("RemoveRegistry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -1, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum"), + new ColumnDefinition("Key", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the registry value.", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.RemoveRegistry.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ReserveCost = new TableDefinition( + "ReserveCost", + new[] + { + new ColumnDefinition("ReserveKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular ReserveCost record", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reserve a specified amount of space if this component is to be installed.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ReserveFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ReserveLocal", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed locally."), + new ColumnDefinition("ReserveSource", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed to run from the source location."), + }, + tupleDefinitionName: TupleDefinitions.ReserveCost.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition SelfReg = new TableDefinition( + "SelfReg", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the module that needs to be registered.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Cost", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The cost of registering the module."), + }, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ServiceControl = new TableDefinition( + "ServiceControl", + new[] + { + new ColumnDefinition("ServiceControl", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 187, description: "Bit field: Install: 0x1 = Start, 0x2 = Stop, 0x8 = Delete, Uninstall: 0x10 = Start, 0x20 = Stop, 0x80 = Delete"), + new ColumnDefinition("Arguments", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Arguments for the service. Separate by [~].", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Wait", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Boolean for whether to wait for the service to fully start"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.ServiceControl.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ServiceInstall = new TableDefinition( + "ServiceInstall", + new[] + { + new ColumnDefinition("ServiceInstall", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Internal Name of the Service", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("DisplayName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "External Name of the Service", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("ServiceType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Type of the service"), + new ColumnDefinition("StartType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 4, description: "Type of the service"), + new ColumnDefinition("ErrorControl", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Severity of error if service fails to start"), + new ColumnDefinition("LoadOrderGroup", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "LoadOrderGroup", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Dependencies", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Other services this depends on to start. Separate by [~], and end with [~][~]", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("StartName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "User or object name to run service as", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Password", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "password to run service with. (with StartName)", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Arguments", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Arguments to include in every start of the service, passed to WinMain", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of service.", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.ServiceInstall.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiServiceConfig = new TableDefinition( + "MsiServiceConfig", + new[] + { + new ColumnDefinition("MsiServiceConfig", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 7, description: "Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"), + new ColumnDefinition("ConfigType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Service Configuration Option"), + new ColumnDefinition("Argument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Argument(s) for service configuration. Value depends on the content of the ConfigType field"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of the service", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.MsiServiceConfig.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiServiceConfigFailureActions = new TableDefinition( + "MsiServiceConfigFailureActions", + new[] + { + new ColumnDefinition("MsiServiceConfigFailureActions", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 7, description: "Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"), + new ColumnDefinition("ResetPeriod", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Time in seconds after which to reset the failure count to zero. Leave blank if it should never be reset"), + new ColumnDefinition("RebootMessage", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Message to be broadcast to server users before rebooting"), + new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Command line of the process to CreateProcess function to execute"), + new ColumnDefinition("Actions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of integer actions separated by [~] delimiters: 0 = SC_ACTION_NONE, 1 = SC_ACTION_RESTART, 2 = SC_ACTION_REBOOT, 3 = SC_ACTION_RUN_COMMAND. Terminate with [~][~]"), + new ColumnDefinition("DelayActions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of delays (time in milli-seconds), separated by [~] delmiters, to wait before taking the corresponding Action. Terminate with [~][~]"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of failure actions for the service", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.MsiServiceConfigFailureActions.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Shortcut = new TableDefinition( + "Shortcut", + new[] + { + new ColumnDefinition("Shortcut", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Foreign key into the Directory table denoting the directory where the shortcut file is created.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The name of the shortcut to be created."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table denoting the component whose selection gates the the shortcut creation/deletion.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Target", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Shortcut, description: "The shortcut target. This is usually a property that is expanded to a file or a folder that the shortcut points to.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Arguments", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command-line arguments for the shortcut.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The description for the shortcut."), + new ColumnDefinition("Hotkey", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The hotkey for the shortcut. It has the virtual-key code for the key in the low-order byte, and the modifier flags in the high-order byte. "), + new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Foreign key into the File table denoting the external icon file for the shortcut.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "The icon index for the shortcut."), + new ColumnDefinition("ShowCmd", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "1;3;7", description: "The show command for the application window.The following values may be used."), + new ColumnDefinition("WkDir", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of property defining location of working directory.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DisplayResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("DisplayResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The display name index for the shortcut. This must be a non-negative number."), + new ColumnDefinition("DescriptionResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("DescriptionResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The description name index for the shortcut. This must be a non-negative number."), + }, + tupleDefinitionName: TupleDefinitions.Shortcut.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiShortcutProperty = new TableDefinition( + "MsiShortcutProperty", + new[] + { + new ColumnDefinition("MsiShortcutProperty", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Shortcut_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Shortcut", keyColumn: 1, description: "Foreign key into the Shortcut table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("PropertyKey", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Canonical string representation of the Property Key being set", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("PropVariantValue", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "String representation of the value in the property", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.MsiShortcutProperty.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Signature = new TableDefinition( + "Signature", + new[] + { + new ColumnDefinition("Signature", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature represents a unique file signature.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the file. This may contain a \"short name|long name\" pair."), + new ColumnDefinition("MinVersion", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The minimum version of the file."), + new ColumnDefinition("MaxVersion", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The maximum version of the file."), + new ColumnDefinition("MinSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The minimum size of the file."), + new ColumnDefinition("MaxSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum size of the file. "), + new ColumnDefinition("MinDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The minimum creation date of the file."), + new ColumnDefinition("MaxDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum creation date of the file."), + new ColumnDefinition("Languages", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Language, description: "The languages supported by the file."), + }, + tupleDefinitionName: TupleDefinitions.Signature.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition TextStyle = new TableDefinition( + "TextStyle", + new[] + { + new ColumnDefinition("TextStyle", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the style. The primary key of this table. This name is embedded in the texts to indicate a style change."), + new ColumnDefinition("FaceName", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Text, description: "A string indicating the name of the font used. Required. The string must be at most 31 characters long.", forceLocalizable: true), + new ColumnDefinition("Size", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The size of the font used. This size is given in our units (1/12 of the system font height). Assuming that the system font is set to 12 point size, this is equivalent to the point size.", forceLocalizable: true), + new ColumnDefinition("Color", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "A long integer indicating the color of the string in the RGB format (Red, Green, Blue each 0-255, RGB = R + 256*G + 256^2*B)."), + new ColumnDefinition("StyleBits", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 15, description: "A combination of style bits."), + }, + tupleDefinitionName: TupleDefinitions.TextStyle.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition TypeLib = new TableDefinition( + "TypeLib", + new[] + { + new ColumnDefinition("LibID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The GUID that represents the library."), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The language of the library."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Version", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "The version of the library. The minor version is in the lower 8 bits of the integer. The major version is in the next 16 bits. "), + new ColumnDefinition("Description", ColumnType.Localized, 128, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Optional. The foreign key into the Directory table denoting the path to the help file for the type library.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the type library to be operational."), + new ColumnDefinition("Cost", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The cost associated with the registration of the typelib. This column is currently optional."), + }, + tupleDefinitionName: TupleDefinitions.TypeLib.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UIText = new TableDefinition( + "UIText", + new[] + { + new ColumnDefinition("Key", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique key that identifies the particular string."), + new ColumnDefinition("Text", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The localized version of the string."), + }, + tupleDefinitionName: TupleDefinitions.UIText.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Upgrade = new TableDefinition( + "Upgrade", + new[] + { + new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The UpgradeCode GUID belonging to the products in this set."), + new ColumnDefinition("VersionMin", ColumnType.String, 20, primaryKey: true, nullable: true, ColumnCategory.Text, description: "The minimum ProductVersion of the products in this set. The set may or may not include products with this particular version."), + new ColumnDefinition("VersionMax", ColumnType.String, 20, primaryKey: true, nullable: true, ColumnCategory.Text, description: "The maximum ProductVersion of the products in this set. The set may or may not include products with this particular version."), + new ColumnDefinition("Language", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Language, description: "A comma-separated list of languages for either products in this set or products not in this set.", forceLocalizable: true), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The attributes of this product set."), + new ColumnDefinition("Remove", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The list of features to remove when uninstalling a product from this set. The default is \"ALL\"."), + new ColumnDefinition("ActionProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.UpperCase, description: "The property to set when a product in this set is found."), + }, + tupleDefinitionName: TupleDefinitions.Upgrade.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Verb = new TableDefinition( + "Verb", + new[] + { + new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "The extension associated with the table row."), + new ColumnDefinition("Verb", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The verb for the command."), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Order within the verbs for a particular extension. Also used simply to specify the default verb."), + new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command text.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Argument", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Optional value for the command arguments.", modularizeType: ColumnModularizeType.Property), + }, + tupleDefinitionName: TupleDefinitions.Verb.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleAdminExecuteSequence = new TableDefinition( + "ModuleAdminExecuteSequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdminExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleAdminUISequence = new TableDefinition( + "ModuleAdminUISequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdminUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleAdvtExecuteSequence = new TableDefinition( + "ModuleAdvtExecuteSequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdvtExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleAdvtUISequence = new TableDefinition( + "ModuleAdvtUISequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdvtUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleComponents = new TableDefinition( + "ModuleComponents", + new[] + { + new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Component contained in the module.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module containing the component.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Default language ID for module (may be changed by transform).", forceLocalizable: true), + }, + tupleDefinitionName: TupleDefinitions.ModuleComponents.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleSignature = new TableDefinition( + "ModuleSignature", + new[] + { + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Module identifier (String.GUID).", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Default decimal language of module.", forceLocalizable: true), + new ColumnDefinition("Version", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Version, description: "Version of the module."), + }, + tupleDefinitionName: TupleDefinitions.ModuleSignature.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleConfiguration = new TableDefinition( + "ModuleConfiguration", + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for this row."), + new ColumnDefinition("Format", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "Format of this item."), + new ColumnDefinition("Type", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Additional type information for this item."), + new ColumnDefinition("ContextData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Additional context information about this item."), + new ColumnDefinition("DefaultValue", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Default value for this item."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "Additional type-specific attributes."), + new ColumnDefinition("DisplayName", ColumnType.Localized, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A short human-readable name for this item."), + new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A human-readable description."), + new ColumnDefinition("HelpLocation", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Filename or namespace of the context-sensitive help for this item."), + new ColumnDefinition("HelpKeyword", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Keyword index into the HelpLocation for this item."), + }, + tupleDefinitionName: TupleDefinitions.ModuleConfiguration.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleDependency = new TableDefinition( + "ModuleDependency", + new[] + { + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module requiring the dependency.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ModuleLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Language of module requiring the dependency.", forceLocalizable: true), + new ColumnDefinition("RequiredID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "String.GUID of required module."), + new ColumnDefinition("RequiredLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "LanguageID of the required module.", forceLocalizable: true), + new ColumnDefinition("RequiredVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Version of the required version."), + }, + tupleDefinitionName: TupleDefinitions.ModuleDependency.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleExclusion = new TableDefinition( + "ModuleExclusion", + new[] + { + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "String.GUID of module with exclusion requirement.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ModuleLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "LanguageID of module with exclusion requirement.", forceLocalizable: true), + new ColumnDefinition("ExcludedID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "String.GUID of excluded module."), + new ColumnDefinition("ExcludedLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Language of excluded module.", forceLocalizable: true), + new ColumnDefinition("ExcludedMinVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Minimum version of excluded module."), + new ColumnDefinition("ExcludedMaxVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Maximum version of excluded module."), + }, + tupleDefinitionName: TupleDefinitions.ModuleExclusion.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleIgnoreTable = new TableDefinition( + "ModuleIgnoreTable", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table name to ignore during merge operation."), + }, + tupleDefinitionName: TupleDefinitions.ModuleIgnoreTable.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleInstallExecuteSequence = new TableDefinition( + "ModuleInstallExecuteSequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleInstallExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleInstallUISequence = new TableDefinition( + "ModuleInstallUISequence", + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleInstallUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleSubstitution = new TableDefinition( + "ModuleSubstitution", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table containing the data to be modified."), + new ColumnDefinition("Row", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Row containing the data to be modified.", modularizeType: ColumnModularizeType.SemicolonDelimited), + new ColumnDefinition("Column", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Column containing the data to be modified."), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Template for modification data."), + }, + tupleDefinitionName: TupleDefinitions.ModuleSubstitution.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Properties = new TableDefinition( + "Properties", + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key, non-localized token"), + new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Value of the property"), + }, + tupleDefinitionName: TupleDefinitions.Properties.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ImageFamilies = new TableDefinition( + "ImageFamilies", + new[] + { + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), + new ColumnDefinition("MediaSrcPropName", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("MediaDiskId", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), + new ColumnDefinition("FileSequenceStart", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Integer, minValue: 1, maxValue: 214743647), + new ColumnDefinition("DiskPrompt", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, forceLocalizable: true), + new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text), + }, + tupleDefinitionName: TupleDefinitions.ImageFamilies.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UpgradedImages = new TableDefinition( + "UpgradedImages", + new[] + { + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), + new ColumnDefinition("MsiPath", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("PatchMsiPath", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family to which this image belongs"), + }, + tupleDefinitionName: TupleDefinitions.UpgradedImages.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UpgradedFilesToIgnore = new TableDefinition( + "UpgradedFilesToIgnore", + new[] + { + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + }, + tupleDefinitionName: TupleDefinitions.UpgradedFilesToIgnore.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UpgradedFiles_OptionalData = new TableDefinition( + "UpgradedFiles_OptionalData", + new[] + { + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("AllowIgnoreOnPatchError", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), + new ColumnDefinition("IncludeWholeFile", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), + }, + tupleDefinitionName: TupleDefinitions.UpgradedFilesOptionalData.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition TargetImages = new TableDefinition( + "TargetImages", + new[] + { + new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text), + new ColumnDefinition("MsiPath", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), + new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), + new ColumnDefinition("ProductValidateFlags", ColumnType.String, 16, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreMissingSrcFiles", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), + }, + tupleDefinitionName: TupleDefinitions.TargetImages.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition TargetFiles_OptionalData = new TableDefinition( + "TargetFiles_OptionalData", + new[] + { + new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "TargetImages", keyColumn: 1, description: "Foreign key, Target image"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + }, + tupleDefinitionName: TupleDefinitions.TargetFilesOptionalData.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition FamilyFileRanges = new TableDefinition( + "FamilyFileRanges", + new[] + { + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("RetainOffsets", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("RetainLengths", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), + }, + tupleDefinitionName: TupleDefinitions.FamilyFileRanges.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ExternalFiles = new TableDefinition( + "ExternalFiles", + new[] + { + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FilePath", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), + }, + tupleDefinitionName: TupleDefinitions.ExternalFiles.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixAction = new TableDefinition( + "WixAction", + new[] + { + new ColumnDefinition("SequenceTable", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Unknown, forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Before", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("After", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Overridable", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixAction.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBBControl = new TableDefinition( + "WixBBControl", + new[] + { + new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("BBControl_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixComplexReference = new TableDefinition( + "WixComplexReference", + new[] + { + new ColumnDefinition("Parent", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown, forceLocalizable: true), + new ColumnDefinition("ParentAttributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ParentLanguage", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Child", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown, forceLocalizable: true), + new ColumnDefinition("ChildAttributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixComplexReference.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixComponentGroup = new TableDefinition( + "WixComponentGroup", + new[] + { + new ColumnDefinition("WixComponentGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixComponentGroup.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixControl = new TableDefinition( + "WixControl", + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixCustomRow = new TableDefinition( + "WixCustomRow", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 62, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("FieldData", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixCustomRow.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixCustomTable = new TableDefinition( + "WixCustomTable", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ColumnCount", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ColumnNames", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ColumnTypes", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("MinValues", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("MaxValues", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("KeyTables", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("KeyColumns", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Categories", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Sets", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Descriptions", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Modularizations", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("BootstrapperApplicationData", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixCustomTable.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixDirectory = new TableDefinition( + "WixDirectory", + new[] + { + new ColumnDefinition("Directory_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ComponentGuidGenerationSeed", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixEnsureTable = new TableDefinition( + "WixEnsureTable", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 31, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixEnsureTable.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixFeatureGroup = new TableDefinition( + "WixFeatureGroup", + new[] + { + new ColumnDefinition("WixFeatureGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixFeatureGroup.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixPatchFamilyGroup = new TableDefinition( + "WixPatchFamilyGroup", + new[] + { + new ColumnDefinition("WixPatchFamilyGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixPatchFamilyGroup.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixGroup = new TableDefinition( + "WixGroup", + new[] + { + new ColumnDefinition("ParentId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular record in a parent table."), + new ColumnDefinition("ParentType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify a particular parent type in a parent table."), + new ColumnDefinition("ChildId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular record in a child table."), + new ColumnDefinition("ChildType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify a particular child type in a child table."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixGroup.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixFeatureModules = new TableDefinition( + "WixFeatureModules", + new[] + { + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("WixMerge_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixFeatureModules.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixFile = new TableDefinition( + "WixFile", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("AssemblyType", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("File_AssemblyManifest", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_AssemblyApplication", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown, keyTable: "Directory", keyColumn: 1, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DiskId", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ProcessorArchitecture", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("PatchGroup", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("PatchAttributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("DeltaPatchHeaderSource", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBindUpdatedFiles = new TableDefinition( + "WixBindUpdatedFiles", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBindUpdatedFiles.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBuildInfo = new TableDefinition( + "WixBuildInfo", + new[] + { + new ColumnDefinition("WixVersion", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Version number of WiX."), + new ColumnDefinition("WixOutputFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Path to output file, if supplied."), + new ColumnDefinition("WixProjectFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Path to .wixproj file, if supplied."), + new ColumnDefinition("WixPdbFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Path to .wixpdb file, if supplied."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBuildInfo.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixFragment = new TableDefinition( + "WixFragment", + new[] + { + new ColumnDefinition("WixFragment", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixFragment.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixInstanceComponent = new TableDefinition( + "WixInstanceComponent", + new[] + { + new ColumnDefinition("Component_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixInstanceComponent.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixInstanceTransforms = new TableDefinition( + "WixInstanceTransforms", + new[] + { + new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("PropertyId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ProductCode", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("ProductName", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, forceLocalizable: true), + new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixInstanceTransforms.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixMedia = new TableDefinition( + "WixMedia", + new[] + { + new ColumnDefinition("DiskId_", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("CompressionLevel", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 4), + new ColumnDefinition("Layout", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixMediaTemplate = new TableDefinition( + "WixMediaTemplate", + new[] + { + new ColumnDefinition("CabinetTemplate", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("CompressionLevel", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 4), + new ColumnDefinition("DiskPrompt", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("VolumeLabel", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("MaximumUncompressedMediaSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("MaximumCabinetSizeForLargeFileSplitting", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixMediaTemplate.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixMerge = new TableDefinition( + "WixMerge", + new[] + { + new ColumnDefinition("WixMerge", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, forceLocalizable: true), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("FileCompression", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("ConfigurationData", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Feature_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixMerge.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixOrdering = new TableDefinition( + "WixOrdering", + new[] + { + new ColumnDefinition("ItemType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify the item in another table."), + new ColumnDefinition("ItemId_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Reference to an entry in another table."), + new ColumnDefinition("DependsOnType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify the item in another table."), + new ColumnDefinition("DependsOnId_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Reference to an entry in another table."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixOrdering.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixDeltaPatchFile = new TableDefinition( + "WixDeltaPatchFile", + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("RetainLengths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreOffsets", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreLengths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("RetainOffsets", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixDeltaPatchFile.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixDeltaPatchSymbolPaths = new TableDefinition( + "WixDeltaPatchSymbolPaths", + new[] + { + new ColumnDefinition("Id", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 4), + new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: false, ColumnCategory.Text), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixDeltaPatchSymbolPaths.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixProperty = new TableDefinition( + "WixProperty", + new[] + { + new ColumnDefinition("Property_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixProperty.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixSimpleReference = new TableDefinition( + "WixSimpleReference", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixSimpleReference.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixSuppressAction = new TableDefinition( + "WixSuppressAction", + new[] + { + new ColumnDefinition("SequenceTable", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixSuppressAction.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixSuppressModularization = new TableDefinition( + "WixSuppressModularization", + new[] + { + new ColumnDefinition("WixSuppressModularization", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixSuppressModularization.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixPatchBaseline = new TableDefinition( + "WixPatchBaseline", + new[] + { + new ColumnDefinition("WixPatchBaseline", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify sets of transforms in a patch."), + new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ValidationFlags", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Integer, description: "Patch transform validation flags for the associated patch baseline."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixPatchBaseline.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixPatchRef = new TableDefinition( + "WixPatchRef", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixPatchRef.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixPatchId = new TableDefinition( + "WixPatchId", + new[] + { + new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ClientPatchId", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("OptimizePatchSizeForLargeFiles", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("ApiPatchingSymbolFlags", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 7), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixPatchId.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixPatchTarget = new TableDefinition( + "WixPatchTarget", + new[] + { + new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixPatchTarget.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixPatchMetadata = new TableDefinition( + "WixPatchMetadata", + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixUI = new TableDefinition( + "WixUI", + new[] + { + new ColumnDefinition("WixUI", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixUI.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixVariable = new TableDefinition( + "WixVariable", + new[] + { + new ColumnDefinition("WixVariable", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixVariable.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleContainer = new TableDefinition( + "WixBundleContainer", + new[] + { + new ColumnDefinition("WixBundleContainer", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("DownloadUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Size", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0), + new ColumnDefinition("Hash", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("AttachedContainerIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("WorkingPath", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleContainer.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundlePayloadGroup = new TableDefinition( + "WixBundlePayloadGroup", + new[] + { + new ColumnDefinition("WixBundlePayloadGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundlePayloadGroup.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundlePayload = new TableDefinition( + "WixBundlePayload", + new[] + { + new ColumnDefinition("WixBundlePayload", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("DownloadUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Compressed", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2), + new ColumnDefinition("UnresolvedSourceFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("EnableSignatureValidation", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("FileSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647), + new ColumnDefinition("Version", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Hash", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("PublicKey", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Thumbprint", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Catalog_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "WixBundleCatalog", keyColumn: 1, description: "Reference to a catalog entry in the WixBundleCatalog table."), + new ColumnDefinition("Container_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleContainer", keyColumn: 1, description: "Reference to a container entry in the WixBundleContainer table."), + new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("ContentFile", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("EmbeddedId", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("LayoutOnly", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("Packaging", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 1, maxValue: 2), + new ColumnDefinition("ParentPackagePayload_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundlePayload.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundlePatchTargetCode = new TableDefinition( + "WixBundlePatchTargetCode", + new[] + { + new ColumnDefinition("PackageId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("TargetCode", ColumnType.String, 0, primaryKey: true, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundlePatchTargetCode.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundle = new TableDefinition( + "WixBundle", + new[] + { + new ColumnDefinition("Version", ColumnType.String, 24, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Copyright", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("AboutUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("DisableModify", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), + new ColumnDefinition("DisableRemove", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("DisableRepair", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("HelpTelephone", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("HelpUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("UpdateUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Compressed", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("LogPrefixAndExtension", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("IconSourceFile", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("SplashScreenSourceFile", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Tag", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Platform", ColumnType.String, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ParentName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("BundleId", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid, description: "Only valid after binding."), + new ColumnDefinition("ProviderKey", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "Only valid after binding."), + new ColumnDefinition("PerMachine", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Only valid after binding."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundle.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixApprovedExeForElevation = new TableDefinition( + "WixApprovedExeForElevation", + new[] + { + new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Key", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixApprovedExeForElevation.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleUpdate = new TableDefinition( + "WixBundleUpdate", + new[] + { + new ColumnDefinition("Location", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleUpdate.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBootstrapperApplication = new TableDefinition( + "WixBootstrapperApplication", + new[] + { + new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBootstrapperApplication.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixUpdateRegistration = new TableDefinition( + "WixUpdateRegistration", + new[] + { + new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Department", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("ProductFamily", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Classification", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixUpdateRegistration.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundleCatalog = new TableDefinition( + "WixBundleCatalog", + new[] + { + new ColumnDefinition("WixBundleCatalog", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Payload_", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePayload", keyColumn: 1, description: "Reference to a payload entry in the WixBundlePayload table."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleCatalog.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixChain = new TableDefinition( + "WixChain", + new[] + { + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to the chain."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixChain.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixChainItem = new TableDefinition( + "WixChainItem", + new[] + { + new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixChainItem.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleRollbackBoundary = new TableDefinition( + "WixBundleRollbackBoundary", + new[] + { + new ColumnDefinition("WixChainItem_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixChainItem", keyColumn: 1, description: "Reference to a WixChainItem entry in the WixChainItem table."), + new ColumnDefinition("Vital", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("Transaction", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleRollbackBoundary.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundlePackageGroup = new TableDefinition( + "WixBundlePackageGroup", + new[] + { + new ColumnDefinition("WixBundlePackageGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundlePackageGroup.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundlePackage = new TableDefinition( + "WixBundlePackage", + new[] + { + new ColumnDefinition("WixChainItem_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixChainItem", keyColumn: 1, description: "Reference to a WixChainItem entry in the WixChainItem table."), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3), + new ColumnDefinition("Payload_", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePayload", keyColumn: 1, description: "Reference to a payload entry in the WixBundlePayload table."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this package."), + new ColumnDefinition("InstallCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Cache", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), + new ColumnDefinition("CacheId", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Vital", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("PerMachine", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), + new ColumnDefinition("LogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("RollbackLogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Size", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("InstallSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Version", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Version), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("RollbackBoundary_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleRollbackBoundary", keyColumn: 1, description: "Reference to a rollback boundary entry in the WixBundleRollbackBoundary table."), + new ColumnDefinition("RollbackBoundaryBackward_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleRollbackBoundary", keyColumn: 1, description: "Reference to a rollback boundary entry in the WixBundleRollbackBoundary table."), + new ColumnDefinition("x64", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundlePackage.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleExePackage = new TableDefinition( + "WixBundleExePackage", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this MSI package."), + new ColumnDefinition("DetectCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("InstallCommand", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("RepairCommand", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("UninstallCommand", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("ExeProtocol", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleExePackage.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleMsiPackage = new TableDefinition( + "WixBundleMsiPackage", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this MSI package."), + new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), + new ColumnDefinition("ProductVersion", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ProductLanguage", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ProductName", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleMsiPackage.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleMspPackage = new TableDefinition( + "WixBundleMspPackage", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("PatchCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), + new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("PatchXml", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleMspPackage.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleMsuPackage = new TableDefinition( + "WixBundleMsuPackage", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("DetectCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("MsuKB", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleMsuPackage.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundlePackageExitCode = new TableDefinition( + "WixBundlePackageExitCode", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the parent Exe."), + new ColumnDefinition("Code", ColumnType.Number, 0, primaryKey: true, nullable: true, ColumnCategory.Integer), + new ColumnDefinition("Behavior", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Integer, minValue: 0, maxValue: 3), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundlePackageExitCode.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundleMsiFeature = new TableDefinition( + "WixBundleMsiFeature", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Size", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Parent", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Title", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Display", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Directory", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleMsiFeature.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundleMsiProperty = new TableDefinition( + "WixBundleMsiProperty", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleMsiProperty.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundleSlipstreamMsp = new TableDefinition( + "WixBundleSlipstreamMsp", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the parent Msi."), + new ColumnDefinition("WixBundlePackage_Msp", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the referenced Msp."), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleSlipstreamMsp.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundlePackageCommandLine = new TableDefinition( + "WixBundlePackageCommandLine", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("InstallArgument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("UninstallArgument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("RepairArgument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundlePackageCommandLine.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixRelatedBundle = new TableDefinition( + "WixRelatedBundle", + new[] + { + new ColumnDefinition("Id", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("Action", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixRelatedBundle.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundleRelatedPackage = new TableDefinition( + "WixBundleRelatedPackage", + new[] + { + new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("MinVersion", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("MaxVersion", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Languages", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("MinInclusive", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("MaxInclusive", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("LangInclusive", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("OnlyDetect", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleRelatedPackage.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixBundleVariable = new TableDefinition( + "WixBundleVariable", + new[] + { + new ColumnDefinition("WixBundleVariable", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Type", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Hidden", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("Persisted", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixBundleVariable.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixBundleProperties = new TableDefinition( + "WixBundleProperties", + new[] + { + new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("LogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Compressed", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("UpgradeCode", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("PerMachine", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixPackageFeatureInfo = new TableDefinition( + "WixPackageFeatureInfo", + new[] + { + new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Feature", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Size", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Parent", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Title", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Display", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Level", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Directory", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixPackageProperties = new TableDefinition( + "WixPackageProperties", + new[] + { + new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Vital", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("DownloadSize", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("PackageSize", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("InstalledSize", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("PackageType", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Permanent", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("LogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("RollbackLogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Compressed", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("DisplayInternalUI", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("ProductCode", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("UpgradeCode", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Version", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("InstallCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Cache", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), + }, + unreal: true, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixPayloadProperties = new TableDefinition( + "WixPayloadProperties", + new[] + { + new ColumnDefinition("Payload", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: true, nullable: true, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), + new ColumnDefinition("Container", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleContainer", keyColumn: 1, description: "Reference to a container entry in the WixBundleContainer table."), + new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Size", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("DownloadUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("LayoutOnly", ColumnType.String, 3, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Streams = new TableDefinition( + "_Streams", + new[] + { + new ColumnDefinition("Name", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition SummaryInformation = new TableDefinition( + "_SummaryInformation", + new[] + { + new ColumnDefinition("PropertyId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + tupleDefinitionName: TupleDefinitions.SummaryInformation.Name, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition TransformView = new TableDefinition( + "_TransformView", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Column", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Row", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Data", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Current", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Validation = new TableDefinition( + "_Validation", + new[] + { + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of table"), + new ColumnDefinition("Column", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of column"), + new ColumnDefinition("Nullable", ColumnType.String, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "Y;N", description: "Whether the column is nullable"), + new ColumnDefinition("MinValue", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Minimum value allowed"), + new ColumnDefinition("MaxValue", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Maximum value allowed"), + new ColumnDefinition("KeyTable", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "For foreign key, Name of table to which data must link"), + new ColumnDefinition("KeyColumn", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 1, maxValue: 32, description: "Column to which foreign key connects"), + new ColumnDefinition("Category", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "Text;Formatted;Template;Condition;Guid;Path;Version;Language;Identifier;Binary;UpperCase;LowerCase;Filename;Paths;AnyPath;WildCardFilename;RegPath;CustomSource;Property;Cabinet;Shortcut;FormattedSDDLText;Integer;DoubleInteger;TimeDate;DefaultDir", description: "String category"), + new ColumnDefinition("Set", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Set of values that are permitted"), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of column"), + }, + tupleIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixSearch = new TableDefinition( + "WixSearch", + new[] + { + new ColumnDefinition("WixSearch", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier), + new ColumnDefinition("Variable", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixSearch.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixSearchRelation = new TableDefinition( + "WixSearchRelation", + new[] + { + new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), + new ColumnDefinition("ParentId_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixSearchRelation.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixFileSearch = new TableDefinition( + "WixFileSearch", + new[] + { + new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), + new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("MinVersion", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Version), + new ColumnDefinition("MaxVersion", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Version), + new ColumnDefinition("MinSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), + new ColumnDefinition("MaxSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), + new ColumnDefinition("MinDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), + new ColumnDefinition("MaxDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), + new ColumnDefinition("Languages", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixFileSearch.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixRegistrySearch = new TableDefinition( + "WixRegistrySearch", + new[] + { + new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), + new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), + new ColumnDefinition("Key", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixRegistrySearch.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixComponentSearch = new TableDefinition( + "WixComponentSearch", + new[] + { + new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), + new ColumnDefinition("Guid", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixComponentSearch.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixProductSearch = new TableDefinition( + "WixProductSearch", + new[] + { + new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), + new ColumnDefinition("Guid", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), + }, + unreal: true, + tupleDefinitionName: TupleDefinitions.WixProductSearch.Name, + tupleIdIsPrimaryKey: true + ); + + public static readonly TableDefinition[] All = new[] + { + ActionText, + AdminExecuteSequence, + Condition, + AdminUISequence, + AdvtExecuteSequence, + AdvtUISequence, + AppId, + AppSearch, + Property, + BBControl, + Billboard, + Feature, + Binary, + BindImage, + File, + CCPSearch, + CheckBox, + Class, + Component, + Icon, + ProgId, + ComboBox, + CompLocator, + Complus, + Directory, + Control, + Dialog, + ControlCondition, + ControlEvent, + CreateFolder, + CustomAction, + DrLocator, + DuplicateFile, + Environment, + Error, + EventMapping, + Extension, + MIME, + FeatureComponents, + FileSFPCatalog, + SFPCatalog, + Font, + IniFile, + IniLocator, + InstallExecuteSequence, + InstallUISequence, + IsolatedComponent, + LaunchCondition, + ListBox, + ListView, + LockPermissions, + MsiLockPermissionsEx, + Media, + MoveFile, + MsiAssembly, + MsiAssemblyName, + MsiDigitalCertificate, + MsiDigitalSignature, + MsiEmbeddedChainer, + MsiEmbeddedUI, + MsiFileHash, + MsiPackageCertificate, + MsiPatchCertificate, + MsiPatchHeaders, + PatchMetadata, + MsiPatchMetadata, + MsiPatchOldAssemblyFile, + MsiPatchOldAssemblyName, + PatchSequence, + MsiPatchSequence, + ODBCAttribute, + ODBCDriver, + ODBCDataSource, + ODBCSourceAttribute, + ODBCTranslator, + Patch, + PatchPackage, + PublishComponent, + RadioButton, + Registry, + RegLocator, + RemoveFile, + RemoveIniFile, + RemoveRegistry, + ReserveCost, + SelfReg, + ServiceControl, + ServiceInstall, + MsiServiceConfig, + MsiServiceConfigFailureActions, + Shortcut, + MsiShortcutProperty, + Signature, + TextStyle, + TypeLib, + UIText, + Upgrade, + Verb, + ModuleAdminExecuteSequence, + ModuleAdminUISequence, + ModuleAdvtExecuteSequence, + ModuleAdvtUISequence, + ModuleComponents, + ModuleSignature, + ModuleConfiguration, + ModuleDependency, + ModuleExclusion, + ModuleIgnoreTable, + ModuleInstallExecuteSequence, + ModuleInstallUISequence, + ModuleSubstitution, + Properties, + ImageFamilies, + UpgradedImages, + UpgradedFilesToIgnore, + UpgradedFiles_OptionalData, + TargetImages, + TargetFiles_OptionalData, + FamilyFileRanges, + ExternalFiles, + WixAction, + WixBBControl, + WixComplexReference, + WixComponentGroup, + WixControl, + WixCustomRow, + WixCustomTable, + WixDirectory, + WixEnsureTable, + WixFeatureGroup, + WixPatchFamilyGroup, + WixGroup, + WixFeatureModules, + WixFile, + WixBindUpdatedFiles, + WixBuildInfo, + WixFragment, + WixInstanceComponent, + WixInstanceTransforms, + WixMedia, + WixMediaTemplate, + WixMerge, + WixOrdering, + WixDeltaPatchFile, + WixDeltaPatchSymbolPaths, + WixProperty, + WixSimpleReference, + WixSuppressAction, + WixSuppressModularization, + WixPatchBaseline, + WixPatchRef, + WixPatchId, + WixPatchTarget, + WixPatchMetadata, + WixUI, + WixVariable, + WixBundleContainer, + WixBundlePayloadGroup, + WixBundlePayload, + WixBundlePatchTargetCode, + WixBundle, + WixApprovedExeForElevation, + WixBundleUpdate, + WixBootstrapperApplication, + WixUpdateRegistration, + WixBundleCatalog, + WixChain, + WixChainItem, + WixBundleRollbackBoundary, + WixBundlePackageGroup, + WixBundlePackage, + WixBundleExePackage, + WixBundleMsiPackage, + WixBundleMspPackage, + WixBundleMsuPackage, + WixBundlePackageExitCode, + WixBundleMsiFeature, + WixBundleMsiProperty, + WixBundleSlipstreamMsp, + WixBundlePackageCommandLine, + WixRelatedBundle, + WixBundleRelatedPackage, + WixBundleVariable, + WixBundleProperties, + WixPackageFeatureInfo, + WixPackageProperties, + WixPayloadProperties, + Streams, + SummaryInformation, + TransformView, + Validation, + WixSearch, + WixSearchRelation, + WixFileSearch, + WixRegistrySearch, + WixComponentSearch, + WixProductSearch, + }; + } +} -- cgit v1.2.3-55-g6feb From 1b46a79f04302fdbb5b5129ecbf4563a95e9843d Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 12 Apr 2020 11:54:32 +1000 Subject: Add TupleNotTranslatedToOutput warning. --- src/WixToolset.Data/WarningMessages.cs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 25e189bb..55bf2c2c 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -567,6 +567,12 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.TooManyProgIds, "Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output.", clsId, progId, otherClsId); } + public static Message TupleNotTranslatedToOutput(IntermediateTuple tuple) + { + var tupleString = $"TupleName: '{tuple.Definition.Name}', Id: '{tuple.Id?.Id}'"; + return Message(tuple.SourceLineNumbers, Ids.TupleNotTranslatedToOutput, "The binder doesn't know how to place the following tuple into the output: {0}", tupleString); + } + public static Message UnableToFindFileFromCabOrImage(SourceLineNumber sourceLineNumbers, string existingFileSpec, string srcFileSpec) { return Message(sourceLineNumbers, Ids.UnableToFindFileFromCabOrImage, "Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break.", existingFileSpec, srcFileSpec); @@ -773,6 +779,7 @@ namespace WixToolset.Data BackslashTerminateInlineDirectorySyntax = 1147, VersionTruncated = 1148, ServiceConfigFamilyNotSupported = 1149, + TupleNotTranslatedToOutput = 1150, } } } -- cgit v1.2.3-55-g6feb From 45e58d750f54c0b7713bcb74792aef4bdb7197cb Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 13 Apr 2020 10:16:48 +1000 Subject: Fix typo in SummaryInformationType. --- src/WixToolset.Data/Tuples/SummaryInformationTuple.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs index 074c2bb1..d395d115 100644 --- a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs +++ b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs @@ -25,7 +25,7 @@ namespace WixToolset.Data.Tuples Value, } - public enum SumaryInformationType + public enum SummaryInformationType { Codepage = 1, Title, @@ -87,9 +87,9 @@ namespace WixToolset.Data.Tuples public IntermediateField this[SummaryInformationTupleFields index] => this.Fields[(int)index]; - public SumaryInformationType PropertyId + public SummaryInformationType PropertyId { - get => (SumaryInformationType)this.Fields[(int)SummaryInformationTupleFields.PropertyId].AsNumber(); + get => (SummaryInformationType)this.Fields[(int)SummaryInformationTupleFields.PropertyId].AsNumber(); set => this.Set((int)SummaryInformationTupleFields.PropertyId, (int)value); } -- cgit v1.2.3-55-g6feb From d0d447ad64afdd5956856c4c6b6599f69a522d6b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 13 Apr 2020 11:36:20 +1000 Subject: Change TableDefinition to have TupleDefinition instead of TupleDefinitionName. --- .../WindowsInstaller/TableDefinition.cs | 33 +- .../WindowsInstaller/TableDefinitionCollection.cs | 13 - .../WindowsInstallerTableDefinitions.cs | 373 +++++++++++---------- 3 files changed, 209 insertions(+), 210 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 5a9d2f20..7c4a3e9d 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -22,14 +22,15 @@ namespace WixToolset.Data.WindowsInstaller /// Creates a table definition. /// /// Name of table to create. + /// Optional tuple definition for this table. /// Column definitions for the table. /// Flag if table is unreal. - /// Optional name of tuple definition for this table. /// Whether the primary key is the id of the tuple definition associated with this table. - public TableDefinition(string name, IEnumerable columns, bool unreal = false, string tupleDefinitionName = null, bool? tupleIdIsPrimaryKey = null) + public TableDefinition(string name, IntermediateTupleDefinition tupleDefinition, IEnumerable columns, bool unreal = false, bool tupleIdIsPrimaryKey = false) { this.Name = name; - this.TupleDefinitionName = tupleDefinitionName ?? name; + this.TupleDefinition = tupleDefinition; + this.TupleIdIsPrimaryKey = tupleIdIsPrimaryKey; this.Unreal = unreal; this.Columns = columns?.ToArray(); @@ -37,7 +38,6 @@ namespace WixToolset.Data.WindowsInstaller { throw new ArgumentOutOfRangeException(nameof(columns)); } - this.TupleIdIsPrimaryKey = tupleIdIsPrimaryKey ?? DeriveTupleIdIsPrimaryKey(this.Columns); } /// @@ -47,10 +47,10 @@ namespace WixToolset.Data.WindowsInstaller public string Name { get; } /// - /// Gets the name of the tuple definition associated with this table. + /// Gets the tuple definition associated with this table. /// - /// Name of the tuple definition. - public string TupleDefinitionName { get; } + /// The tuple definition. + public IntermediateTupleDefinition TupleDefinition { get; } /// /// Gets if the table is unreal. @@ -130,9 +130,7 @@ namespace WixToolset.Data.WindowsInstaller { var empty = reader.IsEmptyElement; string name = null; - string tupleDefinitionName = null; var unreal = false; - bool? tupleIdIsPrimaryKey = null; while (reader.MoveToNextAttribute()) { @@ -141,12 +139,6 @@ namespace WixToolset.Data.WindowsInstaller case "name": name = reader.Value; break; - case "tupleDefinitionName": - tupleDefinitionName = reader.Value; - break; - case "tupleIdIsPrimaryKey": - tupleIdIsPrimaryKey = reader.Value.Equals("yes"); - break; case "unreal": unreal = reader.Value.Equals("yes"); break; @@ -203,7 +195,7 @@ namespace WixToolset.Data.WindowsInstaller } } - return new TableDefinition(name, columns.ToArray(), unreal, tupleDefinitionName, tupleIdIsPrimaryKey); + return new TableDefinition(name, null, columns.ToArray(), unreal); } /// @@ -228,14 +220,5 @@ namespace WixToolset.Data.WindowsInstaller writer.WriteEndElement(); } - - private static bool DeriveTupleIdIsPrimaryKey(ColumnDefinition[] columns) - { - return columns[0].PrimaryKey && - columns[0].Type == ColumnType.String && - columns[0].Category == ColumnCategory.Identifier && - !columns[0].Name.EndsWith("_") && - (columns.Length == 1 || !columns.Skip(1).Any(t => t.PrimaryKey)); - } } } diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs index e1119a68..91385d74 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs @@ -76,19 +76,6 @@ namespace WixToolset.Data.WindowsInstaller /// True if table definition was found otherwise false. public bool TryGet(string tableName, out TableDefinition table) => this.collection.TryGetValue(tableName, out table); - /// - /// Load a table definition collection from an XmlReader. - /// - /// Reader to get data from. - /// Suppress xml schema validation while loading. - /// The TableDefinitionCollection represented by the xml. - public static TableDefinitionCollection Load(XmlReader reader) - { - reader.MoveToContent(); - - return Read(reader); - } - /// /// Adds a table definition to the collection. /// diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index 11b884bd..be59b844 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -6,18 +6,19 @@ namespace WixToolset.Data.WindowsInstaller { public static readonly TableDefinition ActionText = new TableDefinition( "ActionText", + TupleDefinitions.ActionText, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to be described.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description displayed in progress dialog and log when action is executing."), new ColumnDefinition("Template", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Optional localized format template used to format action data records for display during action execution.", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.ActionText.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition AdminExecuteSequence = new TableDefinition( "AdminExecuteSequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), @@ -29,18 +30,19 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition Condition = new TableDefinition( "Condition", + TupleDefinitions.Condition, new[] { new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Reference to a Feature entry in Feature table."), new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "New selection Level to set in Feature table if Condition evaluates to TRUE."), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Expression evaluated to determine if Level in the Feature table is to change.", forceLocalizable: true), }, - tupleDefinitionName: TupleDefinitions.Condition.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition AdminUISequence = new TableDefinition( "AdminUISequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), @@ -52,6 +54,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition AdvtExecuteSequence = new TableDefinition( "AdvtExecuteSequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), @@ -63,6 +66,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition AdvtUISequence = new TableDefinition( "AdvtUISequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), @@ -74,6 +78,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition AppId = new TableDefinition( "AppId", + TupleDefinitions.AppId, new[] { new ColumnDefinition("AppId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), @@ -84,34 +89,34 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ActivateAtStorage", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), new ColumnDefinition("RunAsInteractiveUser", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), }, - tupleDefinitionName: TupleDefinitions.AppId.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition AppSearch = new TableDefinition( "AppSearch", + TupleDefinitions.AppSearch, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The property associated with a Signature", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.AppSearch.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Property = new TableDefinition( "Property", + TupleDefinitions.Property, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of property, uppercase if settable by launcher or loader.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "String value for property. Never null or empty."), }, - tupleDefinitionName: TupleDefinitions.Property.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition BBControl = new TableDefinition( "BBControl", + TupleDefinitions.BBControl, new[] { new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Billboard", keyColumn: 1, description: "External key to the Billboard table, name of the billboard.", modularizeType: ColumnModularizeType.Column), @@ -124,12 +129,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), new ColumnDefinition("Text", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A string used to set the initial text contained within a control (if appropriate)."), }, - tupleDefinitionName: TupleDefinitions.BBControl.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Billboard = new TableDefinition( "Billboard", + TupleDefinitions.Billboard, new[] { new ColumnDefinition("Billboard", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the billboard.", modularizeType: ColumnModularizeType.Column), @@ -137,12 +142,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of an action. The billboard is displayed during the progress messages received from this action."), new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "A positive integer. If there is more than one billboard corresponding to an action they will be shown in the order defined by this column."), }, - tupleDefinitionName: TupleDefinitions.Billboard.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Feature = new TableDefinition( "Feature", + TupleDefinitions.Feature, new[] { new ColumnDefinition("Feature", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular feature record."), @@ -154,23 +159,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.UpperCase, keyTable: "Directory", keyColumn: 1, description: "The name of the Directory that can be configured by the UI. A non-null value will enable the browse button.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54", description: "Feature attributes"), }, - tupleDefinitionName: TupleDefinitions.Feature.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Binary = new TableDefinition( "Binary", + TupleDefinitions.Binary, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique key identifying the binary data.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "The unformatted binary data."), }, - tupleDefinitionName: TupleDefinitions.Binary.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition BindImage = new TableDefinition( "BindImage", + null, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The index into the File table. This must be an executable file.", modularizeType: ColumnModularizeType.Column), @@ -181,6 +186,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition File = new TableDefinition( "File", + TupleDefinitions.File, new[] { new ColumnDefinition("File", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored.", modularizeType: ColumnModularizeType.Column), @@ -194,33 +200,33 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DiskId", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Disk identifier for the file.", unreal: true), new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Path to source of file.", unreal: true), }, - tupleDefinitionName: TupleDefinitions.File.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition CCPSearch = new TableDefinition( "CCPSearch", + TupleDefinitions.CCPSearch, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables."), }, - tupleDefinitionName: TupleDefinitions.CCPSearch.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition CheckBox = new TableDefinition( "CheckBox", + TupleDefinitions.CheckBox, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to the item.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value string associated with the item.", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.CheckBox.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Class = new TableDefinition( "Class", + TupleDefinitions.Class, new[] { new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The CLSID of an OLE factory."), @@ -237,12 +243,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, maxValue: 32767, description: "Class registration attributes."), }, - tupleDefinitionName: TupleDefinitions.Class.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Component = new TableDefinition( "Component", + TupleDefinitions.Component, new[] { new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular component record.", modularizeType: ColumnModularizeType.Column), @@ -252,23 +258,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), new ColumnDefinition("KeyPath", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File;Registry;ODBCDataSource", keyColumn: 1, description: "Either the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.Component.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Icon = new TableDefinition( "Icon", + TupleDefinitions.Icon, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. Name of the icon file.", modularizeType: ColumnModularizeType.Icon), new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format."), }, - tupleDefinitionName: TupleDefinitions.Icon.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ProgId = new TableDefinition( "ProgId", + TupleDefinitions.ProgId, new[] { new ColumnDefinition("ProgId", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The Program Identifier. Primary key."), @@ -278,12 +284,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this ProgId. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), }, - tupleDefinitionName: TupleDefinitions.ProgId.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ComboBox = new TableDefinition( "ComboBox", + TupleDefinitions.ComboBox, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same combobox.", modularizeType: ColumnModularizeType.Column), @@ -291,47 +297,47 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.ComboBox.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition CompLocator = new TableDefinition( "CompLocator", + TupleDefinitions.CompLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "A boolean value that determines if the registry value is a filename or a directory location."), }, - tupleDefinitionName: TupleDefinitions.CompLocator.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Complus = new TableDefinition( "Complus", + TupleDefinitions.Complus, new[] { new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the ComPlus component.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("ExpType", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "ComPlus component attributes."), }, - tupleDefinitionName: TupleDefinitions.Complus.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Directory = new TableDefinition( "Directory", + TupleDefinitions.Directory, new[] { new ColumnDefinition("Directory", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Directory_Parent", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Reference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("DefaultDir", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.DefaultDir, description: "The default sub-path under parent's path."), }, - tupleDefinitionName: TupleDefinitions.Directory.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Control = new TableDefinition( "Control", + TupleDefinitions.Control, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "External key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -347,12 +353,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Control_Next", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "The name of an other control on the same dialog. This link defines the tab order of the controls. The links have to form one or more cycles!"), new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional. "), }, - tupleDefinitionName: TupleDefinitions.Control.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Dialog = new TableDefinition( "Dialog", + TupleDefinitions.Dialog, new[] { new ColumnDefinition("Dialog", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -366,12 +372,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Control_Default", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the default control. Hitting return is equivalent to pushing this button."), new ColumnDefinition("Control_Cancel", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button."), }, - tupleDefinitionName: TupleDefinitions.Dialog.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ControlCondition = new TableDefinition( "ControlCondition", + TupleDefinitions.ControlCondition, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -379,12 +385,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Default;Disable;Enable;Hide;Show", description: "The desired action to be taken on the specified control."), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions the action should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleDefinitionName: TupleDefinitions.ControlCondition.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ControlEvent = new TableDefinition( "ControlEvent", + TupleDefinitions.ControlEvent, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -394,23 +400,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions an event should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "An integer used to order several events tied to the same control. Can be left blank."), }, - tupleDefinitionName: TupleDefinitions.ControlEvent.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition CreateFolder = new TableDefinition( "CreateFolder", + TupleDefinitions.CreateFolder, new[] { new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Primary key, could be foreign key into the Directory table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.CreateFolder.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition CustomAction = new TableDefinition( "CustomAction", + TupleDefinitions.CustomAction, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, name of action, normally appears in sequence table unless private use.", modularizeType: ColumnModularizeType.Column), @@ -419,12 +425,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Target", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Excecution parameter, depends on the type of custom action", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), new ColumnDefinition("ExtendedType", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A numeric custom action type that extends code type or option flags of the Type column."), }, - tupleDefinitionName: TupleDefinitions.CustomAction.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition DrLocator = new TableDefinition( "DrLocator", + TupleDefinitions.DrLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), @@ -432,12 +438,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.AnyPath, description: "The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Depth", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0."), }, - tupleDefinitionName: TupleDefinitions.DrLocator.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition DuplicateFile = new TableDefinition( "DuplicateFile", + TupleDefinitions.DuplicateFile, new[] { new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), @@ -446,12 +452,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Filename to be given to the duplicate file."), new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to a destination folder.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.DuplicateFile.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Environment = new TableDefinition( "Environment", + TupleDefinitions.Environment, new[] { new ColumnDefinition("Environment", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for the environmental variable setting", modularizeType: ColumnModularizeType.Column), @@ -459,23 +465,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to set in the environmental settings.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the environmental value.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.Environment.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Error = new TableDefinition( "Error", + TupleDefinitions.Error, new[] { new ColumnDefinition("Error", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer error number, obtained from header file IError(...) macros."), new ColumnDefinition("Message", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Error formatting template, obtained from user ed. or localizers.", modularizeType: ColumnModularizeType.Property, useCData: true), }, - tupleDefinitionName: TupleDefinitions.Error.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition EventMapping = new TableDefinition( "EventMapping", + TupleDefinitions.EventMapping, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the Dialog.", modularizeType: ColumnModularizeType.Column), @@ -483,12 +489,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "An identifier that specifies the type of the event that the control subscribes to."), new ColumnDefinition("Attribute", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The name of the control attribute, that is set when this event is received."), }, - tupleDefinitionName: TupleDefinitions.EventMapping.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Extension = new TableDefinition( "Extension", + TupleDefinitions.Extension, new[] { new ColumnDefinition("Extension", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The extension associated with the table row."), @@ -497,58 +503,58 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MIME_", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "MIME", keyColumn: 1, description: "Optional Context identifier, typically \"type/format\" associated with the extension"), new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), }, - tupleDefinitionName: TupleDefinitions.Extension.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MIME = new TableDefinition( "MIME", + TupleDefinitions.MIME, new[] { new ColumnDefinition("ContentType", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key. Context identifier, typically \"type/format\"."), new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "Optional associated extension (without dot)"), new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "Optional associated CLSID."), }, - tupleDefinitionName: TupleDefinitions.MIME.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition FeatureComponents = new TableDefinition( "FeatureComponents", + TupleDefinitions.FeatureComponents, new[] { new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.FeatureComponents.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition FileSFPCatalog = new TableDefinition( "FileSFPCatalog", + TupleDefinitions.FileSFPCatalog, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "File associated with the catalog", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("SFPCatalog_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, keyTable: "SFPCatalog", keyColumn: 1, description: "Catalog associated with the file"), }, - tupleDefinitionName: TupleDefinitions.FileSFPCatalog.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition SFPCatalog = new TableDefinition( "SFPCatalog", + TupleDefinitions.SFPCatalog, new[] { new ColumnDefinition("SFPCatalog", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, description: "File name for the catalog."), new ColumnDefinition("Catalog", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "SFP Catalog"), new ColumnDefinition("Dependency", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Parent catalog - only used by SFP", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.SFPCatalog.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Font = new TableDefinition( "Font", + null, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing font file.", modularizeType: ColumnModularizeType.Column), @@ -559,6 +565,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition IniFile = new TableDefinition( "IniFile", + TupleDefinitions.IniFile, new[] { new ColumnDefinition("IniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -570,12 +577,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;3", description: "The type of modification to be made, one of iifEnum"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the .INI value.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.IniFile.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition IniLocator = new TableDefinition( "IniLocator", + TupleDefinitions.IniLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), @@ -585,12 +592,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Field", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The field in the .INI line. If Field is null or 0 the entire line is read."), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2, description: "An integer value that determines if the .INI value read is a filename or a directory location or to be used as is w/o interpretation."), }, - tupleDefinitionName: TupleDefinitions.IniLocator.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition InstallExecuteSequence = new TableDefinition( "InstallExecuteSequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), @@ -602,6 +609,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition InstallUISequence = new TableDefinition( "InstallUISequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), @@ -613,28 +621,29 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition IsolatedComponent = new TableDefinition( "IsolatedComponent", + TupleDefinitions.IsolatedComponent, new[] { new ColumnDefinition("Component_Shared", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item to be isolated", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Component_Application", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item for application", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.IsolatedComponent.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition LaunchCondition = new TableDefinition( "LaunchCondition", + TupleDefinitions.LaunchCondition, new[] { new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "Expression which must evaluate to TRUE in order for install to commence.", forceLocalizable: true), new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Localizable text to display when condition fails and install must abort."), }, - tupleDefinitionName: TupleDefinitions.LaunchCondition.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ListBox = new TableDefinition( "ListBox", + TupleDefinitions.ListBox, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listbox.", modularizeType: ColumnModularizeType.Column), @@ -642,12 +651,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."), }, - tupleDefinitionName: TupleDefinitions.ListBox.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ListView = new TableDefinition( "ListView", + TupleDefinitions.ListView, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listview.", modularizeType: ColumnModularizeType.Column), @@ -656,12 +665,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Binary_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Binary", keyColumn: 1, description: "The name of the icon to be displayed with the icon. The binary information is looked up from the Binary Table.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.ListView.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition LockPermissions = new TableDefinition( "LockPermissions", + TupleDefinitions.LockPermissions, new[] { new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry or File table", modularizeType: ColumnModularizeType.Column), @@ -670,12 +679,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("User", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "User for permissions to be set. (usually a property)", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Permission", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Permission Access mask. Full Control = 268435456 (GENERIC_ALL = 0x10000000)"), }, - tupleDefinitionName: TupleDefinitions.LockPermissions.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiLockPermissionsEx = new TableDefinition( "MsiLockPermissionsEx", + TupleDefinitions.MsiLockPermissionsEx, new[] { new ColumnDefinition("MsiLockPermissionsEx", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), @@ -684,12 +693,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SDDLText", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.FormattedSDDLText, description: "String to indicate permissions to be applied to the LockObject", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Expression which must evaluate to TRUE in order for this set of permissions to be applied", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.MsiLockPermissionsEx.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Media = new TableDefinition( "Media", + TupleDefinitions.Media, new[] { new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Primary key, integer to determine sort order for table."), @@ -699,12 +708,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The label attributed to the volume."), new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Property, description: "The property defining the location of the cabinet file."), }, - tupleDefinitionName: TupleDefinitions.Media.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MoveFile = new TableDefinition( "MoveFile", + TupleDefinitions.MoveFile, new[] { new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular MoveFile record", modularizeType: ColumnModularizeType.Column), @@ -715,12 +724,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Integer value specifying the MoveFile operating mode, one of imfoEnum"), }, - tupleDefinitionName: TupleDefinitions.MoveFile.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiAssembly = new TableDefinition( "MsiAssembly", + TupleDefinitions.Assembly, new[] { new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), @@ -729,35 +738,35 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_Application", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table, denoting the application context for private assemblies. Null for global assemblies.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Assembly attributes"), }, - tupleDefinitionName: TupleDefinitions.Assembly.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiAssemblyName = new TableDefinition( "MsiAssemblyName", + TupleDefinitions.MsiAssemblyName, new[] { new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name."), new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name."), }, - tupleDefinitionName: TupleDefinitions.MsiAssemblyName.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiDigitalCertificate = new TableDefinition( "MsiDigitalCertificate", + TupleDefinitions.MsiDigitalCertificate, new[] { new ColumnDefinition("DigitalCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row"), new ColumnDefinition("CertData", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "A certificate context blob for a signer certificate"), }, - tupleDefinitionName: TupleDefinitions.MsiDigitalCertificate.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiDigitalSignature = new TableDefinition( "MsiDigitalSignature", + TupleDefinitions.MsiDigitalSignature, new[] { new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Media", description: "Reference to another table name (only Media table is supported)"), @@ -765,12 +774,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate"), new ColumnDefinition("Hash", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "The encoded hash blob from the digital signature"), }, - tupleDefinitionName: TupleDefinitions.MsiDigitalSignature.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiEmbeddedChainer = new TableDefinition( "MsiEmbeddedChainer", + TupleDefinitions.MsiEmbeddedChainer, new[] { new ColumnDefinition("MsiEmbeddedChainer", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), @@ -779,12 +788,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.CustomSource, description: "The location of the executable file for the user-defined function.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;18;50", description: "The functions listed in the MsiEmbeddedChainer table are described using the following custom action numeric types."), }, - tupleDefinitionName: TupleDefinitions.MsiEmbeddedChainer.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiEmbeddedUI = new TableDefinition( "MsiEmbeddedUI", + TupleDefinitions.MsiEmbeddedUI, new[] { new ColumnDefinition("MsiEmbeddedUI", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), @@ -793,12 +802,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MessageFilter", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies the types of messages that are sent to the user interface DLL."), new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "This column contains binary information."), }, - tupleDefinitionName: TupleDefinitions.MsiEmbeddedUI.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiFileHash = new TableDefinition( "MsiFileHash", + TupleDefinitions.MsiFileHash, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing file with this hash", modularizeType: ColumnModularizeType.Column), @@ -808,92 +817,92 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("HashPart3", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), new ColumnDefinition("HashPart4", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), }, - tupleDefinitionName: TupleDefinitions.MsiFileHash.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiPackageCertificate = new TableDefinition( "MsiPackageCertificate", + TupleDefinitions.MsiPackageCertificate, new[] { new ColumnDefinition("PackageCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), }, - tupleDefinitionName: TupleDefinitions.MsiPackageCertificate.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchCertificate = new TableDefinition( "MsiPatchCertificate", + TupleDefinitions.MsiPatchCertificate, new[] { new ColumnDefinition("PatchCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), }, - tupleDefinitionName: TupleDefinitions.MsiPatchCertificate.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchHeaders = new TableDefinition( "MsiPatchHeaders", + TupleDefinitions.MsiPatchHeaders, new[] { new ColumnDefinition("StreamRef", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), }, - tupleDefinitionName: TupleDefinitions.MsiPatchHeaders.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition PatchMetadata = new TableDefinition( "PatchMetadata", + TupleDefinitions.PatchMetadata, new[] { new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "Primary key. The name of the company."), new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the property."), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Non-null, non-empty value of the metadata property."), }, - tupleDefinitionName: TupleDefinitions.PatchMetadata.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchMetadata = new TableDefinition( "MsiPatchMetadata", + TupleDefinitions.MsiPatchMetadata, new[] { new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Unknown), new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, - tupleDefinitionName: TupleDefinitions.MsiPatchMetadata.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchOldAssemblyFile = new TableDefinition( "MsiPatchOldAssemblyFile", + TupleDefinitions.MsiPatchOldAssemblyFile, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table. Patch-only table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Assembly_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiPatchOldAssemblyName", keyColumn: 1, description: "Foreign key into MsiPatchOldAssemblyName table.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.MsiPatchOldAssemblyFile.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchOldAssemblyName = new TableDefinition( "MsiPatchOldAssemblyName", + TupleDefinitions.MsiPatchOldAssemblyName, new[] { new ColumnDefinition("Assembly", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name. This represents the old name for the assembly."), new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name. This represents the old name for the assembly."), }, - tupleDefinitionName: TupleDefinitions.MsiPatchOldAssemblyName.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition PatchSequence = new TableDefinition( "PatchSequence", + TupleDefinitions.PatchSequence, new[] { new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the family for the patch."), @@ -901,12 +910,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Sequence information in version (x.x.x.x) format."), new ColumnDefinition("Supersede", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Indicates that this patch supersedes earlier patches."), }, - tupleDefinitionName: TupleDefinitions.PatchSequence.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchSequence = new TableDefinition( "MsiPatchSequence", + TupleDefinitions.MsiPatchSequence, new[] { new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -914,24 +923,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, - tupleDefinitionName: TupleDefinitions.MsiPatchSequence.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ODBCAttribute = new TableDefinition( "ODBCAttribute", + TupleDefinitions.ODBCAttribute, new[] { new ColumnDefinition("Driver_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDriver", keyColumn: 1, description: "Reference to ODBC driver in ODBCDriver table", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attribute", ColumnType.String, 40, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC driver attribute"), new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC driver attribute"), }, - tupleDefinitionName: TupleDefinitions.ODBCAttribute.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ODBCDriver = new TableDefinition( "ODBCDriver", + TupleDefinitions.ODBCDriver, new[] { new ColumnDefinition("Driver", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for driver", modularizeType: ColumnModularizeType.Column), @@ -940,12 +949,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key driver file", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key driver setup DLL", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.ODBCDriver.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ODBCDataSource = new TableDefinition( "ODBCDataSource", + TupleDefinitions.ODBCDataSource, new[] { new ColumnDefinition("DataSource", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for data source", modularizeType: ColumnModularizeType.Column), @@ -954,24 +963,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DriverDescription", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Reference to driver description, may be existing driver"), new ColumnDefinition("Registration", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Registration option: 0=machine, 1=user, others t.b.d."), }, - tupleDefinitionName: TupleDefinitions.ODBCDataSource.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ODBCSourceAttribute = new TableDefinition( "ODBCSourceAttribute", + TupleDefinitions.ODBCSourceAttribute, new[] { new ColumnDefinition("DataSource_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDataSource", keyColumn: 1, description: "Reference to ODBC data source in ODBCDataSource table", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attribute", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC data source attribute"), new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC data source attribute"), }, - tupleDefinitionName: TupleDefinitions.ODBCSourceAttribute.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ODBCTranslator = new TableDefinition( "ODBCTranslator", + TupleDefinitions.ODBCTranslator, new[] { new ColumnDefinition("Translator", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for translator", modularizeType: ColumnModularizeType.Column), @@ -980,12 +989,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key translator file", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key translator setup DLL", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.ODBCTranslator.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Patch = new TableDefinition( "Patch", + TupleDefinitions.Patch, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, foreign key to File table, must match identifier in cabinet.", modularizeType: ColumnModularizeType.Column), @@ -995,23 +1004,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), new ColumnDefinition("StreamRef_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Identifier. Foreign key to the StreamRef column of the MsiPatchHeaders table."), }, - tupleDefinitionName: TupleDefinitions.Patch.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition PatchPackage = new TableDefinition( "PatchPackage", + TupleDefinitions.PatchPackage, new[] { new ColumnDefinition("PatchId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A unique string GUID representing this patch."), new ColumnDefinition("Media_", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Foreign key to DiskId column of Media table. Indicates the disk containing the patch package."), }, - tupleDefinitionName: TupleDefinitions.PatchPackage.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition PublishComponent = new TableDefinition( "PublishComponent", + TupleDefinitions.PublishComponent, new[] { new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A string GUID that represents the component id that will be requested by the alien product."), @@ -1020,12 +1029,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("AppData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "This is localisable Application specific data that can be associated with a Qualified Component."), new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into the Feature table."), }, - tupleDefinitionName: TupleDefinitions.PublishComponent.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition RadioButton = new TableDefinition( "RadioButton", + TupleDefinitions.RadioButton, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this radio button. All the buttons tied to the same property become part of the same group.", modularizeType: ColumnModularizeType.Column), @@ -1038,12 +1047,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible title to be assigned to the radio button."), new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional."), }, - tupleDefinitionName: TupleDefinitions.RadioButton.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Registry = new TableDefinition( "Registry", + TupleDefinitions.Registry, new[] { new ColumnDefinition("Registry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1053,12 +1062,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the registry value.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.Registry.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition RegLocator = new TableDefinition( "RegLocator", + TupleDefinitions.RegLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key.", modularizeType: ColumnModularizeType.Column), @@ -1067,12 +1076,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 18, description: "An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation."), }, - tupleDefinitionName: TupleDefinitions.RegLocator.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition RemoveFile = new TableDefinition( "RemoveFile", + TupleDefinitions.RemoveFile, new[] { new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), @@ -1081,12 +1090,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("InstallMode", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "1;2;3", description: "Installation option, one of iimEnum."), }, - tupleDefinitionName: TupleDefinitions.RemoveFile.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition RemoveIniFile = new TableDefinition( "RemoveIniFile", + null, new[] { new ColumnDefinition("RemoveIniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1103,6 +1112,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition RemoveRegistry = new TableDefinition( "RemoveRegistry", + TupleDefinitions.RemoveRegistry, new[] { new ColumnDefinition("RemoveRegistry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1111,12 +1121,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the registry value.", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.RemoveRegistry.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ReserveCost = new TableDefinition( "ReserveCost", + TupleDefinitions.ReserveCost, new[] { new ColumnDefinition("ReserveKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular ReserveCost record", modularizeType: ColumnModularizeType.Column), @@ -1125,12 +1135,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ReserveLocal", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed locally."), new ColumnDefinition("ReserveSource", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed to run from the source location."), }, - tupleDefinitionName: TupleDefinitions.ReserveCost.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition SelfReg = new TableDefinition( "SelfReg", + null, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the module that needs to be registered.", modularizeType: ColumnModularizeType.Column), @@ -1141,6 +1151,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ServiceControl = new TableDefinition( "ServiceControl", + TupleDefinitions.ServiceControl, new[] { new ColumnDefinition("ServiceControl", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1150,12 +1161,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Wait", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Boolean for whether to wait for the service to fully start"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.ServiceControl.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ServiceInstall = new TableDefinition( "ServiceInstall", + TupleDefinitions.ServiceInstall, new[] { new ColumnDefinition("ServiceInstall", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1172,12 +1183,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of service.", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.ServiceInstall.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiServiceConfig = new TableDefinition( "MsiServiceConfig", + TupleDefinitions.MsiServiceConfig, new[] { new ColumnDefinition("MsiServiceConfig", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1187,12 +1198,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Argument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Argument(s) for service configuration. Value depends on the content of the ConfigType field"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of the service", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.MsiServiceConfig.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiServiceConfigFailureActions = new TableDefinition( "MsiServiceConfigFailureActions", + TupleDefinitions.MsiServiceConfigFailureActions, new[] { new ColumnDefinition("MsiServiceConfigFailureActions", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), @@ -1205,12 +1216,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DelayActions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of delays (time in milli-seconds), separated by [~] delmiters, to wait before taking the corresponding Action. Terminate with [~][~]"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of failure actions for the service", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.MsiServiceConfigFailureActions.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Shortcut = new TableDefinition( "Shortcut", + TupleDefinitions.Shortcut, new[] { new ColumnDefinition("Shortcut", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1230,12 +1241,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DescriptionResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("DescriptionResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The description name index for the shortcut. This must be a non-negative number."), }, - tupleDefinitionName: TupleDefinitions.Shortcut.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition MsiShortcutProperty = new TableDefinition( "MsiShortcutProperty", + TupleDefinitions.MsiShortcutProperty, new[] { new ColumnDefinition("MsiShortcutProperty", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), @@ -1243,12 +1254,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("PropertyKey", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Canonical string representation of the Property Key being set", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("PropVariantValue", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "String representation of the value in the property", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.MsiShortcutProperty.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Signature = new TableDefinition( "Signature", + TupleDefinitions.Signature, new[] { new ColumnDefinition("Signature", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature represents a unique file signature.", modularizeType: ColumnModularizeType.Column), @@ -1261,12 +1272,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MaxDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum creation date of the file."), new ColumnDefinition("Languages", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Language, description: "The languages supported by the file."), }, - tupleDefinitionName: TupleDefinitions.Signature.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition TextStyle = new TableDefinition( "TextStyle", + TupleDefinitions.TextStyle, new[] { new ColumnDefinition("TextStyle", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the style. The primary key of this table. This name is embedded in the texts to indicate a style change."), @@ -1275,12 +1286,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Color", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "A long integer indicating the color of the string in the RGB format (Red, Green, Blue each 0-255, RGB = R + 256*G + 256^2*B)."), new ColumnDefinition("StyleBits", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 15, description: "A combination of style bits."), }, - tupleDefinitionName: TupleDefinitions.TextStyle.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition TypeLib = new TableDefinition( "TypeLib", + TupleDefinitions.TypeLib, new[] { new ColumnDefinition("LibID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The GUID that represents the library."), @@ -1292,23 +1303,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the type library to be operational."), new ColumnDefinition("Cost", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The cost associated with the registration of the typelib. This column is currently optional."), }, - tupleDefinitionName: TupleDefinitions.TypeLib.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition UIText = new TableDefinition( "UIText", + TupleDefinitions.UIText, new[] { new ColumnDefinition("Key", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique key that identifies the particular string."), new ColumnDefinition("Text", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The localized version of the string."), }, - tupleDefinitionName: TupleDefinitions.UIText.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition Upgrade = new TableDefinition( "Upgrade", + TupleDefinitions.Upgrade, new[] { new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The UpgradeCode GUID belonging to the products in this set."), @@ -1319,12 +1330,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Remove", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The list of features to remove when uninstalling a product from this set. The default is \"ALL\"."), new ColumnDefinition("ActionProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.UpperCase, description: "The property to set when a product in this set is found."), }, - tupleDefinitionName: TupleDefinitions.Upgrade.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Verb = new TableDefinition( "Verb", + TupleDefinitions.Verb, new[] { new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "The extension associated with the table row."), @@ -1333,12 +1344,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command text.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Argument", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Optional value for the command arguments.", modularizeType: ColumnModularizeType.Property), }, - tupleDefinitionName: TupleDefinitions.Verb.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleAdminExecuteSequence = new TableDefinition( "ModuleAdminExecuteSequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), @@ -1352,6 +1363,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ModuleAdminUISequence = new TableDefinition( "ModuleAdminUISequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), @@ -1365,6 +1377,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ModuleAdvtExecuteSequence = new TableDefinition( "ModuleAdvtExecuteSequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), @@ -1378,6 +1391,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ModuleAdvtUISequence = new TableDefinition( "ModuleAdvtUISequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), @@ -1391,30 +1405,31 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ModuleComponents = new TableDefinition( "ModuleComponents", + TupleDefinitions.ModuleComponents, new[] { new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Component contained in the module.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module containing the component.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Default language ID for module (may be changed by transform).", forceLocalizable: true), }, - tupleDefinitionName: TupleDefinitions.ModuleComponents.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleSignature = new TableDefinition( "ModuleSignature", + TupleDefinitions.ModuleSignature, new[] { new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Module identifier (String.GUID).", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Default decimal language of module.", forceLocalizable: true), new ColumnDefinition("Version", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Version, description: "Version of the module."), }, - tupleDefinitionName: TupleDefinitions.ModuleSignature.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleConfiguration = new TableDefinition( "ModuleConfiguration", + TupleDefinitions.ModuleConfiguration, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for this row."), @@ -1428,12 +1443,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("HelpLocation", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Filename or namespace of the context-sensitive help for this item."), new ColumnDefinition("HelpKeyword", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Keyword index into the HelpLocation for this item."), }, - tupleDefinitionName: TupleDefinitions.ModuleConfiguration.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleDependency = new TableDefinition( "ModuleDependency", + TupleDefinitions.ModuleDependency, new[] { new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module requiring the dependency.", modularizeType: ColumnModularizeType.Column), @@ -1442,12 +1457,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("RequiredLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "LanguageID of the required module.", forceLocalizable: true), new ColumnDefinition("RequiredVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Version of the required version."), }, - tupleDefinitionName: TupleDefinitions.ModuleDependency.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleExclusion = new TableDefinition( "ModuleExclusion", + TupleDefinitions.ModuleExclusion, new[] { new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "String.GUID of module with exclusion requirement.", modularizeType: ColumnModularizeType.Column), @@ -1457,22 +1472,22 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ExcludedMinVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Minimum version of excluded module."), new ColumnDefinition("ExcludedMaxVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Maximum version of excluded module."), }, - tupleDefinitionName: TupleDefinitions.ModuleExclusion.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleIgnoreTable = new TableDefinition( "ModuleIgnoreTable", + TupleDefinitions.ModuleIgnoreTable, new[] { new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table name to ignore during merge operation."), }, - tupleDefinitionName: TupleDefinitions.ModuleIgnoreTable.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleInstallExecuteSequence = new TableDefinition( "ModuleInstallExecuteSequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), @@ -1486,6 +1501,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ModuleInstallUISequence = new TableDefinition( "ModuleInstallUISequence", + null, new[] { new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), @@ -1499,6 +1515,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ModuleSubstitution = new TableDefinition( "ModuleSubstitution", + TupleDefinitions.ModuleSubstitution, new[] { new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table containing the data to be modified."), @@ -1506,23 +1523,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Column", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Column containing the data to be modified."), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Template for modification data."), }, - tupleDefinitionName: TupleDefinitions.ModuleSubstitution.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition Properties = new TableDefinition( "Properties", + TupleDefinitions.Properties, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key, non-localized token"), new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Value of the property"), }, - tupleDefinitionName: TupleDefinitions.Properties.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ImageFamilies = new TableDefinition( "ImageFamilies", + TupleDefinitions.ImageFamilies, new[] { new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), @@ -1532,12 +1549,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DiskPrompt", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, forceLocalizable: true), new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text), }, - tupleDefinitionName: TupleDefinitions.ImageFamilies.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition UpgradedImages = new TableDefinition( "UpgradedImages", + TupleDefinitions.UpgradedImages, new[] { new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), @@ -1546,23 +1563,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family to which this image belongs"), }, - tupleDefinitionName: TupleDefinitions.UpgradedImages.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition UpgradedFilesToIgnore = new TableDefinition( "UpgradedFilesToIgnore", + TupleDefinitions.UpgradedFilesToIgnore, new[] { new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), }, - tupleDefinitionName: TupleDefinitions.UpgradedFilesToIgnore.Name, tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition UpgradedFiles_OptionalData = new TableDefinition( + public static readonly TableDefinition UpgradedFilesOptionalData = new TableDefinition( "UpgradedFiles_OptionalData", + TupleDefinitions.UpgradedFilesOptionalData, new[] { new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), @@ -1571,12 +1588,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("AllowIgnoreOnPatchError", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), new ColumnDefinition("IncludeWholeFile", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), }, - tupleDefinitionName: TupleDefinitions.UpgradedFilesOptionalData.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition TargetImages = new TableDefinition( "TargetImages", + TupleDefinitions.TargetImages, new[] { new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text), @@ -1587,12 +1604,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ProductValidateFlags", ColumnType.String, 16, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("IgnoreMissingSrcFiles", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), }, - tupleDefinitionName: TupleDefinitions.TargetImages.Name, tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition TargetFiles_OptionalData = new TableDefinition( + public static readonly TableDefinition TargetFilesOptionalData = new TableDefinition( "TargetFiles_OptionalData", + TupleDefinitions.TargetFilesOptionalData, new[] { new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "TargetImages", keyColumn: 1, description: "Foreign key, Target image"), @@ -1602,12 +1619,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), }, - tupleDefinitionName: TupleDefinitions.TargetFilesOptionalData.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition FamilyFileRanges = new TableDefinition( "FamilyFileRanges", + TupleDefinitions.FamilyFileRanges, new[] { new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), @@ -1615,12 +1632,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("RetainOffsets", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), new ColumnDefinition("RetainLengths", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), }, - tupleDefinitionName: TupleDefinitions.FamilyFileRanges.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition ExternalFiles = new TableDefinition( "ExternalFiles", + TupleDefinitions.ExternalFiles, new[] { new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), @@ -1632,12 +1649,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), }, - tupleDefinitionName: TupleDefinitions.ExternalFiles.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixAction = new TableDefinition( "WixAction", + TupleDefinitions.WixAction, new[] { new ColumnDefinition("SequenceTable", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -1649,12 +1666,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Overridable", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixAction.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBBControl = new TableDefinition( "WixBBControl", + null, new[] { new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), @@ -1667,6 +1684,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixComplexReference = new TableDefinition( "WixComplexReference", + TupleDefinitions.WixComplexReference, new[] { new ColumnDefinition("Parent", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown, forceLocalizable: true), @@ -1677,23 +1695,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixComplexReference.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixComponentGroup = new TableDefinition( "WixComponentGroup", + TupleDefinitions.WixComponentGroup, new[] { new ColumnDefinition("WixComponentGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixComponentGroup.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixControl = new TableDefinition( "WixControl", + null, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), @@ -1706,18 +1724,19 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixCustomRow = new TableDefinition( "WixCustomRow", + TupleDefinitions.WixCustomRow, new[] { new ColumnDefinition("Table", ColumnType.String, 62, primaryKey: false, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("FieldData", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixCustomRow.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixCustomTable = new TableDefinition( "WixCustomTable", + TupleDefinitions.WixCustomTable, new[] { new ColumnDefinition("Table", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -1736,12 +1755,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("BootstrapperApplicationData", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixCustomTable.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixDirectory = new TableDefinition( "WixDirectory", + null, new[] { new ColumnDefinition("Directory_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), @@ -1753,39 +1772,40 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixEnsureTable = new TableDefinition( "WixEnsureTable", + TupleDefinitions.WixEnsureTable, new[] { new ColumnDefinition("Table", ColumnType.String, 31, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixEnsureTable.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixFeatureGroup = new TableDefinition( "WixFeatureGroup", + TupleDefinitions.WixFeatureGroup, new[] { new ColumnDefinition("WixFeatureGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixFeatureGroup.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixPatchFamilyGroup = new TableDefinition( "WixPatchFamilyGroup", + TupleDefinitions.WixPatchFamilyGroup, new[] { new ColumnDefinition("WixPatchFamilyGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixPatchFamilyGroup.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixGroup = new TableDefinition( "WixGroup", + TupleDefinitions.WixGroup, new[] { new ColumnDefinition("ParentId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular record in a parent table."), @@ -1794,24 +1814,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ChildType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify a particular child type in a child table."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixGroup.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixFeatureModules = new TableDefinition( "WixFeatureModules", + TupleDefinitions.WixFeatureModules, new[] { new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("WixMerge_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixFeatureModules.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixFile = new TableDefinition( "WixFile", + null, new[] { new ColumnDefinition("File_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), @@ -1833,17 +1853,18 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixBindUpdatedFiles = new TableDefinition( "WixBindUpdatedFiles", + TupleDefinitions.WixBindUpdatedFiles, new[] { new ColumnDefinition("File_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBindUpdatedFiles.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBuildInfo = new TableDefinition( "WixBuildInfo", + TupleDefinitions.WixBuildInfo, new[] { new ColumnDefinition("WixVersion", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Version number of WiX."), @@ -1852,34 +1873,34 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("WixPdbFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Path to .wixpdb file, if supplied."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBuildInfo.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixFragment = new TableDefinition( "WixFragment", + TupleDefinitions.WixFragment, new[] { new ColumnDefinition("WixFragment", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixFragment.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixInstanceComponent = new TableDefinition( "WixInstanceComponent", + TupleDefinitions.WixInstanceComponent, new[] { new ColumnDefinition("Component_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixInstanceComponent.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixInstanceTransforms = new TableDefinition( "WixInstanceTransforms", + TupleDefinitions.WixInstanceTransforms, new[] { new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -1889,12 +1910,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixInstanceTransforms.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixMedia = new TableDefinition( "WixMedia", + null, new[] { new ColumnDefinition("DiskId_", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -1907,6 +1928,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixMediaTemplate = new TableDefinition( "WixMediaTemplate", + TupleDefinitions.WixMediaTemplate, new[] { new ColumnDefinition("CabinetTemplate", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), @@ -1917,12 +1939,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MaximumCabinetSizeForLargeFileSplitting", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixMediaTemplate.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixMerge = new TableDefinition( "WixMerge", + TupleDefinitions.WixMerge, new[] { new ColumnDefinition("WixMerge", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -1935,12 +1957,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Feature_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixMerge.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixOrdering = new TableDefinition( "WixOrdering", + TupleDefinitions.WixOrdering, new[] { new ColumnDefinition("ItemType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify the item in another table."), @@ -1949,12 +1971,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DependsOnId_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Reference to an entry in another table."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixOrdering.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixDeltaPatchFile = new TableDefinition( "WixDeltaPatchFile", + TupleDefinitions.WixDeltaPatchFile, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), @@ -1965,12 +1987,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixDeltaPatchFile.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixDeltaPatchSymbolPaths = new TableDefinition( "WixDeltaPatchSymbolPaths", + TupleDefinitions.WixDeltaPatchSymbolPaths, new[] { new ColumnDefinition("Id", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -1978,59 +2000,59 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: false, ColumnCategory.Text), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixDeltaPatchSymbolPaths.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixProperty = new TableDefinition( "WixProperty", + TupleDefinitions.WixProperty, new[] { new ColumnDefinition("Property_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixProperty.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixSimpleReference = new TableDefinition( "WixSimpleReference", + TupleDefinitions.WixSimpleReference, new[] { new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixSimpleReference.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixSuppressAction = new TableDefinition( "WixSuppressAction", + TupleDefinitions.WixSuppressAction, new[] { new ColumnDefinition("SequenceTable", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixSuppressAction.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixSuppressModularization = new TableDefinition( "WixSuppressModularization", + TupleDefinitions.WixSuppressModularization, new[] { new ColumnDefinition("WixSuppressModularization", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixSuppressModularization.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixPatchBaseline = new TableDefinition( "WixPatchBaseline", + TupleDefinitions.WixPatchBaseline, new[] { new ColumnDefinition("WixPatchBaseline", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify sets of transforms in a patch."), @@ -2038,24 +2060,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ValidationFlags", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Integer, description: "Patch transform validation flags for the associated patch baseline."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixPatchBaseline.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixPatchRef = new TableDefinition( "WixPatchRef", + TupleDefinitions.WixPatchRef, new[] { new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixPatchRef.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixPatchId = new TableDefinition( "WixPatchId", + TupleDefinitions.WixPatchId, new[] { new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Unknown), @@ -2064,23 +2086,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ApiPatchingSymbolFlags", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 7), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixPatchId.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixPatchTarget = new TableDefinition( "WixPatchTarget", + TupleDefinitions.WixPatchTarget, new[] { new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixPatchTarget.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixPatchMetadata = new TableDefinition( "WixPatchMetadata", + null, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -2092,17 +2114,18 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixUI = new TableDefinition( "WixUI", + TupleDefinitions.WixUI, new[] { new ColumnDefinition("WixUI", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixUI.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixVariable = new TableDefinition( "WixVariable", + TupleDefinitions.WixVariable, new[] { new ColumnDefinition("WixVariable", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), @@ -2110,12 +2133,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixVariable.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleContainer = new TableDefinition( "WixBundleContainer", + TupleDefinitions.WixBundleContainer, new[] { new ColumnDefinition("WixBundleContainer", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), @@ -2128,23 +2151,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("WorkingPath", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleContainer.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundlePayloadGroup = new TableDefinition( "WixBundlePayloadGroup", + TupleDefinitions.WixBundlePayloadGroup, new[] { new ColumnDefinition("WixBundlePayloadGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundlePayloadGroup.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundlePayload = new TableDefinition( "WixBundlePayload", + TupleDefinitions.WixBundlePayload, new[] { new ColumnDefinition("WixBundlePayload", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), @@ -2171,12 +2194,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ParentPackagePayload_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundlePayload.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundlePatchTargetCode = new TableDefinition( "WixBundlePatchTargetCode", + TupleDefinitions.WixBundlePatchTargetCode, new[] { new ColumnDefinition("PackageId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), @@ -2184,12 +2207,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundlePatchTargetCode.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundle = new TableDefinition( "WixBundle", + TupleDefinitions.WixBundle, new[] { new ColumnDefinition("Version", ColumnType.String, 24, primaryKey: false, nullable: false, ColumnCategory.Unknown), @@ -2217,12 +2240,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("PerMachine", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Only valid after binding."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundle.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixApprovedExeForElevation = new TableDefinition( "WixApprovedExeForElevation", + TupleDefinitions.WixApprovedExeForElevation, new[] { new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), @@ -2231,35 +2254,35 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixApprovedExeForElevation.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleUpdate = new TableDefinition( "WixBundleUpdate", + TupleDefinitions.WixBundleUpdate, new[] { new ColumnDefinition("Location", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleUpdate.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBootstrapperApplication = new TableDefinition( "WixBootstrapperApplication", + TupleDefinitions.WixBootstrapperApplication, new[] { new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBootstrapperApplication.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixUpdateRegistration = new TableDefinition( "WixUpdateRegistration", + TupleDefinitions.WixUpdateRegistration, new[] { new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), @@ -2269,46 +2292,46 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Classification", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixUpdateRegistration.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundleCatalog = new TableDefinition( "WixBundleCatalog", + TupleDefinitions.WixBundleCatalog, new[] { new ColumnDefinition("WixBundleCatalog", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), new ColumnDefinition("Payload_", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePayload", keyColumn: 1, description: "Reference to a payload entry in the WixBundlePayload table."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleCatalog.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixChain = new TableDefinition( "WixChain", + TupleDefinitions.WixChain, new[] { new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to the chain."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixChain.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixChainItem = new TableDefinition( "WixChainItem", + TupleDefinitions.WixChainItem, new[] { new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixChainItem.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleRollbackBoundary = new TableDefinition( "WixBundleRollbackBoundary", + TupleDefinitions.WixBundleRollbackBoundary, new[] { new ColumnDefinition("WixChainItem_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixChainItem", keyColumn: 1, description: "Reference to a WixChainItem entry in the WixChainItem table."), @@ -2316,23 +2339,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Transaction", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleRollbackBoundary.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundlePackageGroup = new TableDefinition( "WixBundlePackageGroup", + TupleDefinitions.WixBundlePackageGroup, new[] { new ColumnDefinition("WixBundlePackageGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundlePackageGroup.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundlePackage = new TableDefinition( "WixBundlePackage", + TupleDefinitions.WixBundlePackage, new[] { new ColumnDefinition("WixChainItem_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixChainItem", keyColumn: 1, description: "Reference to a WixChainItem entry in the WixChainItem table."), @@ -2357,12 +2380,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("x64", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundlePackage.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleExePackage = new TableDefinition( "WixBundleExePackage", + TupleDefinitions.WixBundleExePackage, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2374,12 +2397,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ExeProtocol", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleExePackage.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleMsiPackage = new TableDefinition( "WixBundleMsiPackage", + TupleDefinitions.WixBundleMsiPackage, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2392,12 +2415,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleMsiPackage.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleMspPackage = new TableDefinition( "WixBundleMspPackage", + TupleDefinitions.WixBundleMspPackage, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2407,12 +2430,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("PatchXml", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleMspPackage.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleMsuPackage = new TableDefinition( "WixBundleMsuPackage", + TupleDefinitions.WixBundleMsuPackage, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2420,12 +2443,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MsuKB", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleMsuPackage.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundlePackageExitCode = new TableDefinition( "WixBundlePackageExitCode", + TupleDefinitions.WixBundlePackageExitCode, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the parent Exe."), @@ -2433,12 +2456,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Behavior", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Integer, minValue: 0, maxValue: 3), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundlePackageExitCode.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundleMsiFeature = new TableDefinition( "WixBundleMsiFeature", + TupleDefinitions.WixBundleMsiFeature, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2453,12 +2476,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleMsiFeature.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundleMsiProperty = new TableDefinition( "WixBundleMsiProperty", + TupleDefinitions.WixBundleMsiProperty, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2467,24 +2490,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleMsiProperty.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundleSlipstreamMsp = new TableDefinition( "WixBundleSlipstreamMsp", + TupleDefinitions.WixBundleSlipstreamMsp, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the parent Msi."), new ColumnDefinition("WixBundlePackage_Msp", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the referenced Msp."), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleSlipstreamMsp.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundlePackageCommandLine = new TableDefinition( "WixBundlePackageCommandLine", + TupleDefinitions.WixBundlePackageCommandLine, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2494,24 +2517,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundlePackageCommandLine.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixRelatedBundle = new TableDefinition( "WixRelatedBundle", + TupleDefinitions.WixRelatedBundle, new[] { new ColumnDefinition("Id", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), new ColumnDefinition("Action", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixRelatedBundle.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundleRelatedPackage = new TableDefinition( "WixBundleRelatedPackage", + TupleDefinitions.WixBundleRelatedPackage, new[] { new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2525,12 +2548,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("OnlyDetect", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleRelatedPackage.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition WixBundleVariable = new TableDefinition( "WixBundleVariable", + TupleDefinitions.WixBundleVariable, new[] { new ColumnDefinition("WixBundleVariable", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), @@ -2540,12 +2563,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Persisted", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixBundleVariable.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixBundleProperties = new TableDefinition( "WixBundleProperties", + null, new[] { new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), @@ -2561,6 +2584,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixPackageFeatureInfo = new TableDefinition( "WixPackageFeatureInfo", + null, new[] { new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), @@ -2580,6 +2604,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixPackageProperties = new TableDefinition( "WixPackageProperties", + null, new[] { new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), @@ -2607,6 +2632,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixPayloadProperties = new TableDefinition( "WixPayloadProperties", + null, new[] { new ColumnDefinition("Payload", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), @@ -2623,6 +2649,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition Streams = new TableDefinition( "_Streams", + null, new[] { new ColumnDefinition("Name", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -2634,17 +2661,18 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition SummaryInformation = new TableDefinition( "_SummaryInformation", + TupleDefinitions.SummaryInformation, new[] { new ColumnDefinition("PropertyId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, - tupleDefinitionName: TupleDefinitions.SummaryInformation.Name, tupleIdIsPrimaryKey: false ); public static readonly TableDefinition TransformView = new TableDefinition( "_TransformView", + null, new[] { new ColumnDefinition("Table", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -2659,6 +2687,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition Validation = new TableDefinition( "_Validation", + null, new[] { new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of table"), @@ -2677,6 +2706,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition WixSearch = new TableDefinition( "WixSearch", + TupleDefinitions.WixSearch, new[] { new ColumnDefinition("WixSearch", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier), @@ -2684,12 +2714,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixSearch.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixSearchRelation = new TableDefinition( "WixSearchRelation", + TupleDefinitions.WixSearchRelation, new[] { new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), @@ -2697,12 +2727,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixSearchRelation.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixFileSearch = new TableDefinition( "WixFileSearch", + TupleDefinitions.WixFileSearch, new[] { new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), @@ -2717,12 +2747,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixFileSearch.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixRegistrySearch = new TableDefinition( "WixRegistrySearch", + TupleDefinitions.WixRegistrySearch, new[] { new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), @@ -2732,12 +2762,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixRegistrySearch.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixComponentSearch = new TableDefinition( "WixComponentSearch", + TupleDefinitions.WixComponentSearch, new[] { new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), @@ -2746,12 +2776,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixComponentSearch.Name, tupleIdIsPrimaryKey: true ); public static readonly TableDefinition WixProductSearch = new TableDefinition( "WixProductSearch", + TupleDefinitions.WixProductSearch, new[] { new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), @@ -2759,7 +2789,6 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), }, unreal: true, - tupleDefinitionName: TupleDefinitions.WixProductSearch.Name, tupleIdIsPrimaryKey: true ); @@ -2880,9 +2909,9 @@ namespace WixToolset.Data.WindowsInstaller ImageFamilies, UpgradedImages, UpgradedFilesToIgnore, - UpgradedFiles_OptionalData, + UpgradedFilesOptionalData, TargetImages, - TargetFiles_OptionalData, + TargetFilesOptionalData, FamilyFileRanges, ExternalFiles, WixAction, -- cgit v1.2.3-55-g6feb From ddb4161e3d9d13703b0df2915e68b5b4ef47e71b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 13 Apr 2020 16:39:11 +1000 Subject: Try to be more accurate in the tuples with nullable fields. --- src/WixToolset.Data/Tuples/BillboardTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/ComplusTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/ControlEventTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/ControlTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/DrLocatorTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/IniLocatorTuple.cs | 2 +- src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs | 4 ++-- src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs | 4 ++-- .../Tuples/MsiServiceConfigFailureActionsTuple.cs | 2 +- src/WixToolset.Data/Tuples/PatchSequenceTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/SignatureTuple.cs | 16 ++++++++-------- src/WixToolset.Data/Tuples/TypeLibTuple.cs | 8 ++++---- .../Tuples/UpgradedFilesOptionalDataTuple.cs | 8 ++++---- src/WixToolset.Data/Tuples/VerbTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs | 8 ++++---- src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs | 4 ++-- src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs | 10 +++++----- src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | 16 ++++++++-------- src/WixToolset.Data/Tuples/WixPatchIdTuple.cs | 8 ++++---- .../WindowsInstaller/WindowsInstallerTableDefinitions.cs | 2 +- 21 files changed, 62 insertions(+), 62 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs index 9931d16a..c5242d33 100644 --- a/src/WixToolset.Data/Tuples/BillboardTuple.cs +++ b/src/WixToolset.Data/Tuples/BillboardTuple.cs @@ -51,9 +51,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)BillboardTupleFields.Action, value); } - public int Ordering + public int? Ordering { - get => (int)this.Fields[(int)BillboardTupleFields.Ordering]; + get => (int?)this.Fields[(int)BillboardTupleFields.Ordering]; set => this.Set((int)BillboardTupleFields.Ordering, value); } } diff --git a/src/WixToolset.Data/Tuples/ComplusTuple.cs b/src/WixToolset.Data/Tuples/ComplusTuple.cs index bd76c0d3..428f3a8e 100644 --- a/src/WixToolset.Data/Tuples/ComplusTuple.cs +++ b/src/WixToolset.Data/Tuples/ComplusTuple.cs @@ -43,9 +43,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ComplusTupleFields.ComponentRef, value); } - public int ExpType + public int? ExpType { - get => (int)this.Fields[(int)ComplusTupleFields.ExpType]; + get => (int?)this.Fields[(int)ComplusTupleFields.ExpType]; set => this.Set((int)ComplusTupleFields.ExpType, value); } } diff --git a/src/WixToolset.Data/Tuples/ControlEventTuple.cs b/src/WixToolset.Data/Tuples/ControlEventTuple.cs index 96d0bcdc..9c460353 100644 --- a/src/WixToolset.Data/Tuples/ControlEventTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlEventTuple.cs @@ -75,9 +75,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ControlEventTupleFields.Condition, value); } - public int Ordering + public int? Ordering { - get => (int)this.Fields[(int)ControlEventTupleFields.Ordering]; + get => (int?)this.Fields[(int)ControlEventTupleFields.Ordering]; set => this.Set((int)ControlEventTupleFields.Ordering, value); } } diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs index f0fd92c1..ed61392e 100644 --- a/src/WixToolset.Data/Tuples/ControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlTuple.cs @@ -119,9 +119,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ControlTupleFields.Height, value); } - public int Attributes + public int? Attributes { - get => this.Fields[(int)ControlTupleFields.Attributes].AsNumber(); + get => (int?)this.Fields[(int)ControlTupleFields.Attributes]; set => this.Set((int)ControlTupleFields.Attributes, value); } diff --git a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs index 4f696b5c..667ffda1 100644 --- a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs @@ -59,9 +59,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)DrLocatorTupleFields.Path, value); } - public int Depth + public int? Depth { - get => (int)this.Fields[(int)DrLocatorTupleFields.Depth]; + get => (int?)this.Fields[(int)DrLocatorTupleFields.Depth]; set => this.Set((int)DrLocatorTupleFields.Depth, value); } } diff --git a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs index b7052ee3..4538b88c 100644 --- a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs +++ b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs @@ -57,9 +57,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ImageFamiliesTupleFields.MediaSrcPropName, value); } - public int MediaDiskId + public int? MediaDiskId { - get => (int)this.Fields[(int)ImageFamiliesTupleFields.MediaDiskId]; + get => (int?)this.Fields[(int)ImageFamiliesTupleFields.MediaDiskId]; set => this.Set((int)ImageFamiliesTupleFields.MediaDiskId, value); } diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs index 0bb670c6..1a52715d 100644 --- a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs @@ -77,7 +77,7 @@ namespace WixToolset.Data.Tuples public int? Type { - get => this.Fields[(int)IniLocatorTupleFields.Type].AsNullableNumber(); + get => (int?)this.Fields[(int)IniLocatorTupleFields.Type]; set => this.Set((int)IniLocatorTupleFields.Type, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs index 83cfcc43..baedf56b 100644 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs @@ -61,9 +61,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiEmbeddedUITupleFields.SupportsBasicUI, value); } - public int MessageFilter + public int? MessageFilter { - get => (int)this.Fields[(int)MsiEmbeddedUITupleFields.MessageFilter]; + get => (int?)this.Fields[(int)MsiEmbeddedUITupleFields.MessageFilter]; set => this.Set((int)MsiEmbeddedUITupleFields.MessageFilter, value); } diff --git a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs index 1d5a5d90..143e58a0 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs @@ -59,9 +59,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)MsiPatchSequenceTupleFields.Sequence, value); } - public int Attributes + public int? Attributes { - get => (int)this.Fields[(int)MsiPatchSequenceTupleFields.Attributes]; + get => (int?)this.Fields[(int)MsiPatchSequenceTupleFields.Attributes]; set => this.Set((int)MsiPatchSequenceTupleFields.Attributes, value); } } diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs index 8a0001ae..faf9069e 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs @@ -79,7 +79,7 @@ namespace WixToolset.Data.Tuples public int? ResetPeriod { - get => (int)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod].AsNullableNumber(); + get => (int?)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod]; set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod, value); } diff --git a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs index 857e8d6e..f7036a05 100644 --- a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs @@ -59,9 +59,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)PatchSequenceTupleFields.Sequence, value); } - public int Supersede + public int? Supersede { - get => (int)this.Fields[(int)PatchSequenceTupleFields.Supersede]; + get => (int?)this.Fields[(int)PatchSequenceTupleFields.Supersede]; set => this.Set((int)PatchSequenceTupleFields.Supersede, value); } } diff --git a/src/WixToolset.Data/Tuples/SignatureTuple.cs b/src/WixToolset.Data/Tuples/SignatureTuple.cs index db380bb6..ed559f64 100644 --- a/src/WixToolset.Data/Tuples/SignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/SignatureTuple.cs @@ -67,27 +67,27 @@ namespace WixToolset.Data.Tuples set => this.Set((int)SignatureTupleFields.MaxVersion, value); } - public int MinSize + public int? MinSize { - get => (int)this.Fields[(int)SignatureTupleFields.MinSize]; + get => (int?)this.Fields[(int)SignatureTupleFields.MinSize]; set => this.Set((int)SignatureTupleFields.MinSize, value); } - public int MaxSize + public int? MaxSize { - get => (int)this.Fields[(int)SignatureTupleFields.MaxSize]; + get => (int?)this.Fields[(int)SignatureTupleFields.MaxSize]; set => this.Set((int)SignatureTupleFields.MaxSize, value); } - public int MinDate + public int? MinDate { - get => (int)this.Fields[(int)SignatureTupleFields.MinDate]; + get => (int?)this.Fields[(int)SignatureTupleFields.MinDate]; set => this.Set((int)SignatureTupleFields.MinDate, value); } - public int MaxDate + public int? MaxDate { - get => (int)this.Fields[(int)SignatureTupleFields.MaxDate]; + get => (int?)this.Fields[(int)SignatureTupleFields.MaxDate]; set => this.Set((int)SignatureTupleFields.MaxDate, value); } diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs index 14c69c1a..071fe593 100644 --- a/src/WixToolset.Data/Tuples/TypeLibTuple.cs +++ b/src/WixToolset.Data/Tuples/TypeLibTuple.cs @@ -67,9 +67,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)TypeLibTupleFields.ComponentRef, value); } - public int Version + public int? Version { - get => (int)this.Fields[(int)TypeLibTupleFields.Version]; + get => (int?)this.Fields[(int)TypeLibTupleFields.Version]; set => this.Set((int)TypeLibTupleFields.Version, value); } @@ -91,9 +91,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)TypeLibTupleFields.FeatureRef, value); } - public int Cost + public int? Cost { - get => (int)this.Fields[(int)TypeLibTupleFields.Cost]; + get => (int?)this.Fields[(int)TypeLibTupleFields.Cost]; set => this.Set((int)TypeLibTupleFields.Cost, value); } } diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs index 72dac43a..1b4769b3 100644 --- a/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs @@ -61,15 +61,15 @@ namespace WixToolset.Data.Tuples set => this.Set((int)UpgradedFilesOptionalDataTupleFields.SymbolPaths, value); } - public bool AllowIgnoreOnPatchError + public bool? AllowIgnoreOnPatchError { - get => (bool)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError]; + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError]; set => this.Set((int)UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError, value); } - public bool IncludeWholeFile + public bool? IncludeWholeFile { - get => (bool)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.IncludeWholeFile]; + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.IncludeWholeFile]; set => this.Set((int)UpgradedFilesOptionalDataTupleFields.IncludeWholeFile, value); } } diff --git a/src/WixToolset.Data/Tuples/VerbTuple.cs b/src/WixToolset.Data/Tuples/VerbTuple.cs index 77df01e4..7a257a3e 100644 --- a/src/WixToolset.Data/Tuples/VerbTuple.cs +++ b/src/WixToolset.Data/Tuples/VerbTuple.cs @@ -55,9 +55,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)VerbTupleFields.Verb, value); } - public int Sequence + public int? Sequence { - get => (int)this.Fields[(int)VerbTupleFields.Sequence]; + get => (int?)this.Fields[(int)VerbTupleFields.Sequence]; set => this.Set((int)VerbTupleFields.Sequence, value); } diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs index ed12a804..a0f64611 100644 --- a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs @@ -76,9 +76,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleContainerTupleFields.DownloadUrl, value); } - public long Size + public long? Size { - get => (long)this.Fields[(int)WixBundleContainerTupleFields.Size]; + get => (long?)this.Fields[(int)WixBundleContainerTupleFields.Size]; set => this.Set((int)WixBundleContainerTupleFields.Size, value); } @@ -88,9 +88,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleContainerTupleFields.Hash, value); } - public int AttachedContainerIndex + public int? AttachedContainerIndex { - get => (int)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]; + get => (int?)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]; set => this.Set((int)WixBundleContainerTupleFields.AttachedContainerIndex, value); } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index d61e12d0..03c7879d 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -171,9 +171,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePackageTupleFields.Version, value); } - public int Language + public int? Language { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.Language]; + get => (int?)this.Fields[(int)WixBundlePackageTupleFields.Language]; set => this.Set((int)WixBundlePackageTupleFields.Language, value); } diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs index 049ac3b5..e0ef6fe1 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -125,9 +125,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.EnableSignatureValidation, value); } - public int FileSize + public int? FileSize { - get => (int)this.Fields[(int)WixBundlePayloadTupleFields.FileSize]; + get => (int?)this.Fields[(int)WixBundlePayloadTupleFields.FileSize]; set => this.Set((int)WixBundlePayloadTupleFields.FileSize, value); } @@ -191,10 +191,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundlePayloadTupleFields.LayoutOnly, value); } - public PackagingType Packaging + public PackagingType? Packaging { - get => (PackagingType)this.Fields[(int)WixBundlePayloadTupleFields.Packaging].AsNumber(); - set => this.Set((int)WixBundlePayloadTupleFields.Packaging, (int)value); + get => (PackagingType?)this.Fields[(int)WixBundlePayloadTupleFields.Packaging].AsNumber(); + set => this.Set((int)WixBundlePayloadTupleFields.Packaging, (int?)value); } public string ParentPackagePayloadRef diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs index 4c0cedf3..033aca21 100644 --- a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs @@ -86,27 +86,27 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixFileSearchTupleFields.MaxVersion, value); } - public int MinSize + public int? MinSize { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MinSize]; + get => (int?)this.Fields[(int)WixFileSearchTupleFields.MinSize]; set => this.Set((int)WixFileSearchTupleFields.MinSize, value); } - public int MaxSize + public int? MaxSize { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxSize]; + get => (int?)this.Fields[(int)WixFileSearchTupleFields.MaxSize]; set => this.Set((int)WixFileSearchTupleFields.MaxSize, value); } - public int MinDate + public int? MinDate { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MinDate]; + get => (int?)this.Fields[(int)WixFileSearchTupleFields.MinDate]; set => this.Set((int)WixFileSearchTupleFields.MinDate, value); } - public int MaxDate + public int? MaxDate { - get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxDate]; + get => (int?)this.Fields[(int)WixFileSearchTupleFields.MaxDate]; set => this.Set((int)WixFileSearchTupleFields.MaxDate, value); } diff --git a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs index 35c99493..6e6fb2ae 100644 --- a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs @@ -45,15 +45,15 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixPatchIdTupleFields.ClientPatchId, value); } - public bool OptimizePatchSizeForLargeFiles + public bool? OptimizePatchSizeForLargeFiles { - get => (bool)this.Fields[(int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles]; + get => (bool?)this.Fields[(int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles]; set => this.Set((int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles, value); } - public int ApiPatchingSymbolFlags + public int? ApiPatchingSymbolFlags { - get => (int)this.Fields[(int)WixPatchIdTupleFields.ApiPatchingSymbolFlags]; + get => (int?)this.Fields[(int)WixPatchIdTupleFields.ApiPatchingSymbolFlags]; set => this.Set((int)WixPatchIdTupleFields.ApiPatchingSymbolFlags, value); } } diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index be59b844..ea1ecbbd 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1663,7 +1663,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), new ColumnDefinition("Before", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), new ColumnDefinition("After", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Overridable", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Overridable", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, tupleIdIsPrimaryKey: false -- cgit v1.2.3-55-g6feb From 2b3c14c790e8a95edabecf2d7bb50baa58d8e95b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sat, 18 Apr 2020 12:27:59 +1000 Subject: Remove bundle table definitions and rows. --- .../WindowsInstaller/Rows/ContainerType.cs | 13 - .../Rows/WixApprovedExeForElevationRow.cs | 80 --- .../WindowsInstaller/Rows/WixBundleCatalogRow.cs | 50 -- .../WindowsInstaller/Rows/WixBundleContainerRow.cs | 78 --- .../Rows/WixBundleExePackageRow.cs | 104 ---- .../Rows/WixBundleMsiFeatureRow.cs | 93 --- .../Rows/WixBundleMsiPackageRow.cs | 130 ----- .../Rows/WixBundleMsiPropertyRow.cs | 58 -- .../Rows/WixBundleMspPackageRow.cs | 101 ---- .../Rows/WixBundleMsuPackageRow.cs | 57 -- .../Rows/WixBundlePackageCommandLineRow.cs | 80 --- .../Rows/WixBundlePackageExitCodeRow.cs | 53 -- .../WindowsInstaller/Rows/WixBundlePackageRow.cs | 228 -------- .../Rows/WixBundlePatchTargetCodeRow.cs | 61 -- .../WindowsInstaller/Rows/WixBundlePayloadRow.cs | 185 ------ .../Rows/WixBundleRelatedPackageRow.cs | 87 --- .../Rows/WixBundleRollbackBoundaryRow.cs | 59 -- .../WindowsInstaller/Rows/WixBundleRow.cs | 228 -------- .../Rows/WixBundleSlipstreamMspRow.cs | 48 -- .../WindowsInstaller/Rows/WixBundleUpdateRow.cs | 36 -- .../WindowsInstaller/Rows/WixBundleVariableRow.cs | 80 --- .../WindowsInstaller/Rows/WixChainItemRow.cs | 39 -- .../WindowsInstaller/Rows/WixChainRow.cs | 65 --- .../Rows/WixPayloadPropertiesRow.cs | 72 --- .../WindowsInstaller/Rows/WixRelatedBundleRow.cs | 52 -- .../Rows/WixUpdateRegistrationRow.cs | 62 -- src/WixToolset.Data/WindowsInstaller/Table.cs | 75 --- .../WindowsInstallerTableDefinitions.cs | 636 --------------------- 28 files changed, 2910 deletions(-) delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/ContainerType.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleCatalogRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleContainerRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiFeatureRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPropertyRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMspPackageRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsuPackageRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageCommandLineRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageExitCodeRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePayloadRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRelatedPackageRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRollbackBoundaryRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleSlipstreamMspRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleUpdateRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixBundleVariableRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixChainItemRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixChainRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixPayloadPropertiesRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixRelatedBundleRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixUpdateRegistrationRow.cs (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/ContainerType.cs b/src/WixToolset.Data/WindowsInstaller/Rows/ContainerType.cs deleted file mode 100644 index b983c2a6..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/ContainerType.cs +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Types of bundle packages. - /// - public enum ContainerType - { - Attached, - Detached, - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs deleted file mode 100644 index 28a14ddd..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs +++ /dev/null @@ -1,80 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the WixApprovedExeForElevation table. - /// - public class WixApprovedExeForElevationRow : Row - { - /// - /// Creates an ApprovedExeForElevation row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this ApprovedExeForElevation row belongs to and should get its column definitions from. - public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates an ApprovedExeForElevation row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this ApprovedExeForElevation row belongs to and should get its column definitions from. - public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the ApprovedExeForElevation identifier. - /// - /// The ApprovedExeForElevation identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the Key path. - /// - /// The Key path. - public string Key - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the Value name. - /// - /// The Value name. - public string ValueName - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the attibutes. - /// - /// The BundleApprovedExeForElevationAttributes. - public WixApprovedExeForElevationAttributes Attributes - { - get { return (WixApprovedExeForElevationAttributes)this.Fields[3].Data; } - set { this.Fields[3].Data = (int)value; } - } - - /// - /// Gets whether this row is 64-bit. - /// - public bool Win64 - { - get { return WixApprovedExeForElevationAttributes.Win64 == (this.Attributes & WixApprovedExeForElevationAttributes.Win64); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleCatalogRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleCatalogRow.cs deleted file mode 100644 index 0bebb5f3..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleCatalogRow.cs +++ /dev/null @@ -1,50 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixCatalog table. - /// - public sealed class WixBundleCatalogRow : Row - { - /// - /// Creates a Catalog row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Catalog row belongs to and should get its column definitions from. - public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a Catalog row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Catalog row belongs to and should get its column definitions from. - public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the catalog identifier. - /// - /// The catalog identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the payload identifier. - /// - /// The payload identifier. - public string Payload - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleContainerRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleContainerRow.cs deleted file mode 100644 index 1c138190..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleContainerRow.cs +++ /dev/null @@ -1,78 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the Container table. - /// - public class WixBundleContainerRow : Row - { - /// - /// Creates a ContainerRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a ContainerRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public ContainerType Type - { - get { return (ContainerType)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - - public string DownloadUrl - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public long Size - { - get { return (long)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public string Hash - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public int AttachedContainerIndex - { - get { return (null == this.Fields[6].Data) ? -1 : (int)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - public string WorkingPath - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs deleted file mode 100644 index 241c1f7f..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs +++ /dev/null @@ -1,104 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the WixBundleExePackage table. - /// - public sealed class WixBundleExePackageRow : Row - { - /// - /// Creates a WixBundleExePackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleExePackageRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the raw Exe attributes of a patch. - /// - public WixBundleExePackageAttributes Attributes - { - get { return (WixBundleExePackageAttributes)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the protcol for the executable package. - /// - public string DetectCondition - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the install command for the executable package. - /// - public string InstallCommand - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the repair command for the executable package. - /// - public string RepairCommand - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the uninstall command for the executable package. - /// - public string UninstallCommand - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the protcol for the executable package. - /// - public string ExeProtocol - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets whether the executable package is repairable. - /// - public bool Repairable - { - get { return !String.IsNullOrEmpty(this.RepairCommand); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiFeatureRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiFeatureRow.cs deleted file mode 100644 index 6230a20c..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiFeatureRow.cs +++ /dev/null @@ -1,93 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the MsiFeature table. - /// - public class WixBundleMsiFeatureRow : Row - { - /// - /// Creates a MsiFeatureRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a MsiFeatureRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public long Size - { - get { return (long)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string Parent - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Title - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public string Description - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public int Display - { - get { return (int)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - public int Level - { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - public string Directory - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - public int Attributes - { - get { return (int)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs deleted file mode 100644 index 5f07072d..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs +++ /dev/null @@ -1,130 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using System.Globalization; - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the WixBundleMsiPackage table. - /// - public sealed class WixBundleMsiPackageRow : Row - { - /// - /// Creates a WixBundleMsiPackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleMsiPackageRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the raw MSI attributes of a package. - /// - public WixBundleMsiPackageAttributes Attributes - { - get { return (WixBundleMsiPackageAttributes)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the MSI package's product code. - /// - public string ProductCode - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the MSI package's upgrade code. - /// - public string UpgradeCode - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the product version of the MSI package. - /// - public string ProductVersion - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the language of the MSI package. - /// - public int ProductLanguage - { - get { return Convert.ToInt32(this.Fields[5].Data, CultureInfo.InvariantCulture); } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the product name of the MSI package. - /// - public string ProductName - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the MSI package's manufacturer. - /// - public string Manufacturer - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets the display internal UI of a package. - /// - public bool DisplayInternalUI - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.DisplayInternalUI); } - } - - /// - /// Gets the display internal UI of a package. - /// - public bool EnableFeatureSelection - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection); } - } - - /// - /// Gets the display internal UI of a package. - /// - public bool ForcePerMachine - { - get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPropertyRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPropertyRow.cs deleted file mode 100644 index baa58f73..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPropertyRow.cs +++ /dev/null @@ -1,58 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixBundleMsiProperty table. - /// - public sealed class WixBundleMsiPropertyRow : Row - { - /// - /// Creates an WixBundleMsiProperty row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundleMsiProperty row belongs to and should get its column definitions from. - public WixBundleMsiPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the property identity. - /// - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets and sets the value for the row. - /// - /// MsiProperty value for the row. - public string Value - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets and sets the condition for the row. - /// - /// MsiProperty condition for the row. - public string Condition - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMspPackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMspPackageRow.cs deleted file mode 100644 index 23c331fd..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMspPackageRow.cs +++ /dev/null @@ -1,101 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the ChainMspPackage table. - /// - public sealed class WixBundleMspPackageRow : Row - { - /// - /// Creates a ChainMspPackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleMspPackage row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the raw MSP attributes of a patch. - /// - public WixBundleMspPackageAttributes Attributes - { - get { return (WixBundleMspPackageAttributes)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the patch code. - /// - public string PatchCode - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the patch's manufacturer. - /// - public string Manufacturer - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the patch's xml. - /// - public string PatchXml - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets the display internal UI of a patch. - /// - public bool DisplayInternalUI - { - get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.DisplayInternalUI); } - } - - /// - /// Gets whether to slipstream the patch. - /// - public bool Slipstream - { - get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.Slipstream); } - } - - /// - /// Gets whether the patch targets an unspecified number of packages. - /// - public bool TargetUnspecified - { - get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsuPackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsuPackageRow.cs deleted file mode 100644 index 2a858d07..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsuPackageRow.cs +++ /dev/null @@ -1,57 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixBundleMsuPackage table. - /// - public sealed class WixBundleMsuPackageRow : Row - { - /// - /// Creates a WixBundleMsuPackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleMsuPackage row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the detection condition the package. - /// - public string DetectCondition - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the KB of the package. - /// - public string MsuKB - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageCommandLineRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageCommandLineRow.cs deleted file mode 100644 index 3f23c82c..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageCommandLineRow.cs +++ /dev/null @@ -1,80 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixBundlePackageCommandLine table. - /// - public class WixBundlePackageCommandLineRow : Row - { - /// - /// Creates a WixBundlePackageCommandLineRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from. - public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates an WixBundlePackageCommandLineRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from. - public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the package identifier. - /// - /// The package identifier. - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the command-line argument for installation. - /// - /// The command-line argument. - public string InstallArgument - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the command-line argument for uninstallation. - /// - /// The command-line argument. - public string UninstallArgument - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the command-line argument for repair. - /// - /// The command-line argument. - public string RepairArgument - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the condition. - /// - /// The condition. - public string Condition - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageExitCodeRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageExitCodeRow.cs deleted file mode 100644 index 2de40eb2..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageExitCodeRow.cs +++ /dev/null @@ -1,53 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the ExitCode table. - /// - public class WixBundlePackageExitCodeRow : Row - { - /// - /// Creates a ExitCodeRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a ExitCodeRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public int? Code - { - get { return (null == this.Fields[1].Data) ? (int?)null : (int?)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public ExitCodeBehaviorType Behavior - { - get { return (ExitCodeBehaviorType)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageRow.cs deleted file mode 100644 index 8a1f438e..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePackageRow.cs +++ /dev/null @@ -1,228 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the WixBundlePackage table. - /// - public sealed class WixBundlePackageRow : Row - { - /// - /// Creates a WixBundlePackage row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundlePackage row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key to the WixChainItem. - /// - public string WixChainItemId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the item type. - /// - public WixBundlePackageType Type - { - get { return (WixBundlePackageType)this.Fields[1].Data; } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets the indentifier of the package's payload. - /// - public string PackagePayload - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the raw attributes of a package. - /// - public WixBundlePackageAttributes Attributes - { - get { return (WixBundlePackageAttributes)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the install condition of the package. - /// - public string InstallCondition - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the language of the package. - /// - public YesNoAlwaysType Cache - { - get { return (null == this.Fields[5].Data) ? YesNoAlwaysType.NotSet : (YesNoAlwaysType)this.Fields[5].Data; } - set { this.Fields[5].Data = (int)value; } - } - - /// - /// Gets or sets the indentifier of the package's cache. - /// - public string CacheId - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets whether the package is vital. - /// - public YesNoType Vital - { - get { return (null == this.Fields[7].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[7].Data; } - set { this.Fields[7].Data = (int)value; } - } - - /// - /// Gets or sets whether the package is per-machine. - /// - public YesNoDefaultType PerMachine - { - get { return (null == this.Fields[8].Data) ? YesNoDefaultType.NotSet : (YesNoDefaultType)this.Fields[8].Data; } - set { this.Fields[8].Data = (int)value; } - } - - /// - /// Gets or sets the variable that points to the log for the package. - /// - public string LogPathVariable - { - get { return (string)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - /// - /// Gets or sets the variable that points to the rollback log for the package. - /// - public string RollbackLogPathVariable - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - /// - /// Gets or sets the size of the package. - /// - public long Size - { - get { return (long)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - - /// - /// Gets or sets the install size of the package. - /// - public long? InstallSize - { - get { return (long?)this.Fields[12].Data; } - set { this.Fields[12].Data = value; } - } - - /// - /// Gets or sets the version of the package. - /// - public string Version - { - get { return (string)this.Fields[13].Data; } - set { this.Fields[13].Data = value; } - } - - /// - /// Gets or sets the language of the package. - /// - public int Language - { - get { return (int)this.Fields[14].Data; } - set { this.Fields[14].Data = value; } - } - - /// - /// Gets or sets the display name of the package. - /// - public string DisplayName - { - get { return (string)this.Fields[15].Data; } - set { this.Fields[15].Data = value; } - } - - /// - /// Gets or sets the description of the package. - /// - public string Description - { - get { return (string)this.Fields[16].Data; } - set { this.Fields[16].Data = value; } - } - - /// - /// Gets or sets the rollback boundary identifier for the package. - /// - public string RollbackBoundary - { - get { return (string)this.Fields[17].Data; } - set { this.Fields[17].Data = value; } - } - - /// - /// Gets or sets the backward rollback boundary identifier for the package. - /// - public string RollbackBoundaryBackward - { - get { return (string)this.Fields[18].Data; } - set { this.Fields[18].Data = value; } - } - - /// - /// Gets or sets whether the package is x64. - /// - public YesNoType x64 - { - get { return (null == this.Fields[19].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[19].Data; } - set { this.Fields[19].Data = (int)value; } - } - - /// - /// Gets whether the package is permanent. - /// - public bool Permanent - { - get { return 0 != (this.Attributes & WixBundlePackageAttributes.Permanent); } - } - - /// - /// Gets whether the package is visible. - /// - public bool Visible - { - get { return 0 != (this.Attributes & WixBundlePackageAttributes.Visible); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs deleted file mode 100644 index 84d13c43..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs +++ /dev/null @@ -1,61 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the PatchTargetCode table. - /// - public class WixBundlePatchTargetCodeRow : Row - { - /// - /// Creates a PatchTargetCodeRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this PatchTargetCode row belongs to and should get its column definitions from. - public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a PatchTargetCodeRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this PatchTargetCode row belongs to and should get its column definitions from. - public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string MspPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string TargetCode - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public WixBundlePatchTargetCodeAttributes Attributes - { - get { return (WixBundlePatchTargetCodeAttributes)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - - public bool TargetsProductCode - { - get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsProductCode & this.Attributes); } - } - - public bool TargetsUpgradeCode - { - get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode & this.Attributes); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePayloadRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePayloadRow.cs deleted file mode 100644 index ca4d35cc..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePayloadRow.cs +++ /dev/null @@ -1,185 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using System.IO; - - /// - /// Specialization of a row for the PayloadInfo table. - /// - public class WixBundlePayloadRow : Row - { - /// - /// Creates a PayloadRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a PayloadRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string SourceFile - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string DownloadUrl - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public YesNoDefaultType Compressed - { - get { return (YesNoDefaultType)this.Fields[4].Data; } - set { this.Fields[4].Data = (int)value; } - } - - public string UnresolvedSourceFile - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public string DisplayName - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - public string Description - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - public bool EnableSignatureValidation - { - get { return (null != this.Fields[8].Data) && (1 == (int)this.Fields[8].Data); } - set { this.Fields[8].Data = value ? 1 : 0; } - } - - public int FileSize - { - get { return (int)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - public string Version - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - public string Hash - { - get { return (string)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - - public string PublicKey - { - get { return (string)this.Fields[12].Data; } - set { this.Fields[12].Data = value; } - } - - public string Thumbprint - { - get { return (string)this.Fields[13].Data; } - set { this.Fields[13].Data = value; } - } - - public string Catalog - { - get { return (string)this.Fields[14].Data; } - set { this.Fields[14].Data = value; } - } - - public string Container - { - get { return (string)this.Fields[15].Data; } - set { this.Fields[15].Data = value; } - } - - public string Package - { - get { return (string)this.Fields[16].Data; } - set { this.Fields[16].Data = value; } - } - - public bool ContentFile - { - get { return (null != this.Fields[17].Data) && (1 == (int)this.Fields[17].Data); } - set { this.Fields[17].Data = value ? 1 : 0; } - } - - public string EmbeddedId - { - get { return (string)this.Fields[18].Data; } - set { this.Fields[18].Data = value; } - } - - public bool LayoutOnly - { - get { return (null != this.Fields[19].Data) && (1 == (int)this.Fields[19].Data); } - set { this.Fields[19].Data = value ? 1 : 0; } - } - - public PackagingType Packaging - { - get - { - object data = this.Fields[20].Data; - return (null == data) ? PackagingType.Unknown : (PackagingType)data; - } - - set - { - if (PackagingType.Unknown == value) - { - this.Fields[20].Data = null; - } - else - { - this.Fields[20].Data = (int)value; - } - } - } - - public string ParentPackagePayload - { - get { return (string)this.Fields[21].Data; } - set { this.Fields[21].Data = value; } - } - - public string FullFileName - { - get { return String.IsNullOrEmpty(this.SourceFile) ? String.Empty : Path.GetFullPath(this.SourceFile); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRelatedPackageRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRelatedPackageRow.cs deleted file mode 100644 index 5b0d2a18..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRelatedPackageRow.cs +++ /dev/null @@ -1,87 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the RelatedPackage table. - /// - public class WixBundleRelatedPackageRow : Row - { - /// - /// Creates a RelatedPackageRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a RelatedPackageRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Id - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string MinVersion - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string MaxVersion - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Languages - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public bool MinInclusive - { - get { return 1 == (int)this.Fields[5].Data; } - set { this.Fields[5].Data = value ? 1 : 0; } - } - - public bool MaxInclusive - { - get { return 1 == (int)this.Fields[6].Data; } - set { this.Fields[6].Data = value ? 1 : 0; } - } - - public bool LangInclusive - { - get { return 1 == (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value ? 1 : 0; } - } - - public bool OnlyDetect - { - get { return 1 == (int)this.Fields[8].Data; } - set { this.Fields[8].Data = value ? 1 : 0; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRollbackBoundaryRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRollbackBoundaryRow.cs deleted file mode 100644 index 434a19e3..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRollbackBoundaryRow.cs +++ /dev/null @@ -1,59 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixBundleRollbackBoundary table. - /// - public sealed class WixBundleRollbackBoundaryRow : Row - { - /// - /// Creates a WixBundleRollbackBoundary row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a RollbackBoundaryRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets whether the package is vital. - /// - /// Vitality of the package. - public YesNoType Vital - { - get { return (null == this.Fields[1].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[1].Data; } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets whether the rollback-boundary should be installed as an MSI transaction. - /// - /// Vitality of the package. - public YesNoType Transaction - { - get { return (null == this.Fields[2].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[2].Data; } - set { this.Fields[2].Data = (int)value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRow.cs deleted file mode 100644 index 22538606..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleRow.cs +++ /dev/null @@ -1,228 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - - /// - /// Bundle info for binding Bundles. - /// - public class WixBundleRow : Row - { - /// - /// Creates a WixBundleRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixBundleRow row belongs to and should get its column definitions from. - public WixBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundleRow row belongs to and should get its column definitions from. - public WixBundleRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Version - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Copyright - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string AboutUrl - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public int DisableModify - { - get { return (null == this.Fields[4].Data) ? 0 : (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public bool DisableRemove - { - get { return (null != this.Fields[5].Data && 0 != (int)this.Fields[5].Data); } - set { this.Fields[5].Data = value ? 1 : 0; } - } - - // There is no 6. It used to be DisableRepair. - - public string HelpTelephone - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - public string HelpLink - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - public string Publisher - { - get { return (string)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - public string UpdateUrl - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - public YesNoDefaultType Compressed - { - get { return (null == this.Fields[11].Data) ? YesNoDefaultType.Default : (0 == (int)this.Fields[11].Data) ? YesNoDefaultType.No : YesNoDefaultType.Yes; } - set { this.Fields[11].Data = (int)value; } - } - - public PackagingType DefaultPackagingType - { - get { return (YesNoDefaultType.No == this.Compressed) ? PackagingType.External : PackagingType.Embedded; } - } - - public string LogPathPrefixExtension - { - get { return (string)this.Fields[12].Data ?? String.Empty; } - set { this.Fields[12].Data = value; } - } - - public string LogPathVariable - { - get - { - string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); - return logVariableAndPrefixExtension[0]; - } - } - - public string LogPrefix - { - get - { - string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); - if (2 > logVariableAndPrefixExtension.Length) - { - return String.Empty; - } - string logPrefixAndExtension = logVariableAndPrefixExtension[1]; - int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); - return logPrefixAndExtension.Substring(0, extensionIndex); - } - } - - public string LogExtension - { - get - { - string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); - if (2 > logVariableAndPrefixExtension.Length) - { - return String.Empty; - } - string logPrefixAndExtension = logVariableAndPrefixExtension[1]; - int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); - return logPrefixAndExtension.Substring(extensionIndex + 1); - } - } - - public string IconPath - { - get { return (string)this.Fields[13].Data; } - set { this.Fields[13].Data = value; } - } - - public string SplashScreenBitmapPath - { - get { return (string)this.Fields[14].Data; } - set { this.Fields[14].Data = value; } - } - - public string Condition - { - get { return (string)this.Fields[15].Data; } - set { this.Fields[15].Data = value; } - } - - public string Tag - { - get { return (string)this.Fields[16].Data; } - set { this.Fields[16].Data = value; } - } - - public Platform Platform - { - get { return (Platform)Enum.Parse(typeof(Platform), (string)this.Fields[17].Data); } - set { this.Fields[17].Data = value.ToString(); } - } - - public string ParentName - { - get { return (string)this.Fields[18].Data; } - set { this.Fields[18].Data = value; } - } - - public string UpgradeCode - { - get { return (string)this.Fields[19].Data; } - set { this.Fields[19].Data = value; } - } - - public Guid BundleId - { - get - { - if (null == this.Fields[20].Data) - { - this.Fields[20].Data = Guid.NewGuid().ToString("B"); - } - - return new Guid((string)this.Fields[20].Data); - } - - set { this.Fields[20].Data = value.ToString(); } - } - - public string ProviderKey - { - get - { - if (null == this.Fields[21].Data) - { - this.Fields[21].Data = this.BundleId.ToString("B"); - } - - return (string)this.Fields[21].Data; - } - - set { this.Fields[21].Data = value; } - } - - public bool PerMachine - { - get { return (null != this.Fields[22].Data && 0 != (int)this.Fields[22].Data); } - set { this.Fields[22].Data = value ? 1 : 0; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleSlipstreamMspRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleSlipstreamMspRow.cs deleted file mode 100644 index 0fea725f..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleSlipstreamMspRow.cs +++ /dev/null @@ -1,48 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the SlipstreamMsp table. - /// - public class WixBundleSlipstreamMspRow : Row - { - /// - /// Creates a SlipstreamMspRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a SlipstreamMspRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row. - /// - public string ChainPackageId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the foreign key identifier to the ChainPackage row for the MSP package. - /// - public string MspPackageId - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleUpdateRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleUpdateRow.cs deleted file mode 100644 index 68360ae9..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleUpdateRow.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Bundle update info for binding Bundles. - /// - public class WixBundleUpdateRow : Row - { - /// - /// Creates a WixBundleUpdateRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixBundleUpdateRow row belongs to and should get its column definitions from. - public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixBundleUpdateRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixBundleUpdateRow row belongs to and should get its column definitions from. - public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Location - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleVariableRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleVariableRow.cs deleted file mode 100644 index 64fa0336..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixBundleVariableRow.cs +++ /dev/null @@ -1,80 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the Variable table. - /// - public sealed class WixBundleVariableRow : Row - { - /// - /// Creates a Variable row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a Variable row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the variable identifier. - /// - /// The variable identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the variable's value. - /// - /// The variable's value. - public string Value - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the variable's type. - /// - /// The variable's type. - public string Type - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets whether this variable is hidden. - /// - /// Whether this variable is hidden. - public bool Hidden - { - get { return (null == this.Fields[3].Data || 0 == ((int)this.Fields[3].Data)) ? false : true; } - set { this.Fields[3].Data = value ? 1 : 0; } - } - - /// - /// Gets or sets whether this variable is persisted. - /// - /// Whether this variable is persisted. - public bool Persisted - { - get { return (null == this.Fields[4].Data || 0 == ((int)this.Fields[4].Data)) ? false : true; } - set { this.Fields[4].Data = value ? 1 : 0; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixChainItemRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixChainItemRow.cs deleted file mode 100644 index 8e08d613..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixChainItemRow.cs +++ /dev/null @@ -1,39 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixChainItem table. - /// - public sealed class WixChainItemRow : Row - { - /// - /// Creates a WixChainItem row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this ChainItem row belongs to and should get its column definitions from. - public WixChainItemRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixChainItem row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this ChainItem row belongs to and should get its column definitions from. - public WixChainItemRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the WixChainItem identifier. - /// - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixChainRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixChainRow.cs deleted file mode 100644 index 78ba9766..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixChainRow.cs +++ /dev/null @@ -1,65 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the WixChain table. - /// - public sealed class WixChainRow : Row - { - /// - /// Creates a WixChain row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixChainRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixChainRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixChainRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the raw chain attributes. - /// - public WixChainAttributes Attributes - { - get { return (WixChainAttributes)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets the disable rollback state of a chain. - /// - public bool DisableRollback - { - get { return 0 != (this.Attributes & WixChainAttributes.DisableRollback); } - } - - /// - /// Gets disable system restore state of a chain. - /// - public bool DisableSystemRestore - { - get { return 0 != (this.Attributes & WixChainAttributes.DisableSystemRestore); } - } - - /// - /// Gets parallel cache of a chain. - /// - public bool ParallelCache - { - get { return 0 != (this.Attributes & WixChainAttributes.ParallelCache); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixPayloadPropertiesRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixPayloadPropertiesRow.cs deleted file mode 100644 index 8bb9ef31..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixPayloadPropertiesRow.cs +++ /dev/null @@ -1,72 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixPayloadProperties table. - /// - public class WixPayloadPropertiesRow : Row - { - /// - /// Creates a WixPayloadProperties row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixPayloadProperties row belongs to and should get its column definitions from. - public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixPayloadProperties row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixPayloadProperties row belongs to and should get its column definitions from. - public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Package - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string Container - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Size - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - public string DownloadUrl - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - public string LayoutOnly - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixRelatedBundleRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixRelatedBundleRow.cs deleted file mode 100644 index d06429c5..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixRelatedBundleRow.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using Serialize = WixToolset.Data.Serialize; - - /// - /// Specialization of a row for the RelatedBundle table. - /// - public sealed class WixRelatedBundleRow : Row - { - /// - /// Creates a RelatedBundle row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this RelatedBundle row belongs to and should get its column definitions from. - public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a RelatedBundle row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this RelatedBundle row belongs to and should get its column definitions from. - public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the related bundle identifier. - /// - /// The related bundle identifier. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the related bundle action. - /// - /// The related bundle action. - public Serialize.RelatedBundle.ActionType Action - { - get { return (Serialize.RelatedBundle.ActionType)this.Fields[1].Data; } - set { this.Fields[1].Data = (int)value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixUpdateRegistrationRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixUpdateRegistrationRow.cs deleted file mode 100644 index 8602d502..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixUpdateRegistrationRow.cs +++ /dev/null @@ -1,62 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - - /// - /// Update registration information for Binding. - /// - public class WixUpdateRegistrationRow : Row - { - /// - /// Creates a WixUpdateRegistrationRow row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this WixUpdateRegistrationRow row belongs to and should get its column definitions from. - public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixUpdateRegistrationRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this WixUpdateRegistrationRow row belongs to and should get its column definitions from. - public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public string Manufacturer - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - public string Department - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - public string ProductFamily - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - public string Name - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - public string Classification - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index 3325dd8b..54753dee 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -63,96 +63,27 @@ namespace WixToolset.Data.WindowsInstaller case "BBControl": row = new BBControlRow(sourceLineNumbers, this); break; - case "WixBundlePackage": - row = new WixBundlePackageRow(sourceLineNumbers, this); - break; - case "WixBundleExePackage": - row = new WixBundleExePackageRow(sourceLineNumbers, this); - break; - case "WixBundleMsiPackage": - row = new WixBundleMsiPackageRow(sourceLineNumbers, this); - break; - case "WixBundleMspPackage": - row = new WixBundleMspPackageRow(sourceLineNumbers, this); - break; - case "WixBundleMsuPackage": - row = new WixBundleMsuPackageRow(sourceLineNumbers, this); - break; case "Component": row = new ComponentRow(sourceLineNumbers, this); break; - case "WixBundleContainer": - row = new WixBundleContainerRow(sourceLineNumbers, this); - break; case "Control": row = new ControlRow(sourceLineNumbers, this); break; case "File": row = new FileRow(sourceLineNumbers, this); break; - case "WixBundleMsiFeature": - row = new WixBundleMsiFeatureRow(sourceLineNumbers, this); - break; - case "WixBundleMsiProperty": - row = new WixBundleMsiPropertyRow(sourceLineNumbers, this); - break; case "Media": row = new MediaRow(sourceLineNumbers, this); break; - case "WixBundlePayload": - row = new WixBundlePayloadRow(sourceLineNumbers, this); - break; case "Property": row = new PropertyRow(sourceLineNumbers, this); break; - case "WixRelatedBundle": - row = new WixRelatedBundleRow(sourceLineNumbers, this); - break; - case "WixBundleRelatedPackage": - row = new WixBundleRelatedPackageRow(sourceLineNumbers, this); - break; - case "WixBundleRollbackBoundary": - row = new WixBundleRollbackBoundaryRow(sourceLineNumbers, this); - break; case "Upgrade": row = new UpgradeRow(sourceLineNumbers, this); break; - case "WixBundleVariable": - row = new WixBundleVariableRow(sourceLineNumbers, this); - break; case "WixAction": row = new WixActionRow(sourceLineNumbers, this); break; - case "WixApprovedExeForElevation": - row = new WixApprovedExeForElevationRow(sourceLineNumbers, this); - break; - case "WixBundle": - row = new WixBundleRow(sourceLineNumbers, this); - break; - case "WixBundlePackageExitCode": - row = new WixBundlePackageExitCodeRow(sourceLineNumbers, this); - break; - case "WixBundlePatchTargetCode": - row = new WixBundlePatchTargetCodeRow(sourceLineNumbers, this); - break; - case "WixBundleSlipstreamMsp": - row = new WixBundleSlipstreamMspRow(sourceLineNumbers, this); - break; - case "WixBundleUpdate": - row = new WixBundleUpdateRow(sourceLineNumbers, this); - break; - case "WixBundleCatalog": - row = new WixBundleCatalogRow(sourceLineNumbers, this); - break; - case "WixChain": - row = new WixChainRow(sourceLineNumbers, this); - break; - case "WixChainItem": - row = new WixChainItemRow(sourceLineNumbers, this); - break; - case "WixBundlePackageCommandLine": - row = new WixBundlePackageCommandLineRow(sourceLineNumbers, this); - break; case "WixComplexReference": row = new WixComplexReferenceRow(sourceLineNumbers, this); break; @@ -174,18 +105,12 @@ namespace WixToolset.Data.WindowsInstaller case "WixMerge": row = new WixMergeRow(sourceLineNumbers, this); break; - case "WixPayloadProperties": - row = new WixPayloadPropertiesRow(sourceLineNumbers, this); - break; case "WixProperty": row = new WixPropertyRow(sourceLineNumbers, this); break; case "WixSimpleReference": row = new WixSimpleReferenceRow(sourceLineNumbers, this); break; - case "WixUpdateRegistration": - row = new WixUpdateRegistrationRow(sourceLineNumbers, this); - break; default: row = new Row(sourceLineNumbers, this); diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index ea1ecbbd..f6c07a83 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -2136,517 +2136,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: true ); - public static readonly TableDefinition WixBundleContainer = new TableDefinition( - "WixBundleContainer", - TupleDefinitions.WixBundleContainer, - new[] - { - new ColumnDefinition("WixBundleContainer", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("DownloadUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Size", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0), - new ColumnDefinition("Hash", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("AttachedContainerIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("WorkingPath", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundlePayloadGroup = new TableDefinition( - "WixBundlePayloadGroup", - TupleDefinitions.WixBundlePayloadGroup, - new[] - { - new ColumnDefinition("WixBundlePayloadGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundlePayload = new TableDefinition( - "WixBundlePayload", - TupleDefinitions.WixBundlePayload, - new[] - { - new ColumnDefinition("WixBundlePayload", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("DownloadUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Compressed", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2), - new ColumnDefinition("UnresolvedSourceFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("EnableSignatureValidation", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("FileSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647), - new ColumnDefinition("Version", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Hash", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("PublicKey", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Thumbprint", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Catalog_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "WixBundleCatalog", keyColumn: 1, description: "Reference to a catalog entry in the WixBundleCatalog table."), - new ColumnDefinition("Container_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleContainer", keyColumn: 1, description: "Reference to a container entry in the WixBundleContainer table."), - new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("ContentFile", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("EmbeddedId", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("LayoutOnly", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("Packaging", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 1, maxValue: 2), - new ColumnDefinition("ParentPackagePayload_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundlePatchTargetCode = new TableDefinition( - "WixBundlePatchTargetCode", - TupleDefinitions.WixBundlePatchTargetCode, - new[] - { - new ColumnDefinition("PackageId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("TargetCode", ColumnType.String, 0, primaryKey: true, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundle = new TableDefinition( - "WixBundle", - TupleDefinitions.WixBundle, - new[] - { - new ColumnDefinition("Version", ColumnType.String, 24, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Copyright", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("AboutUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("DisableModify", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), - new ColumnDefinition("DisableRemove", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("DisableRepair", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("HelpTelephone", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("HelpUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("UpdateUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Compressed", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("LogPrefixAndExtension", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("IconSourceFile", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("SplashScreenSourceFile", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Tag", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Platform", ColumnType.String, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ParentName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), - new ColumnDefinition("BundleId", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid, description: "Only valid after binding."), - new ColumnDefinition("ProviderKey", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "Only valid after binding."), - new ColumnDefinition("PerMachine", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Only valid after binding."), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixApprovedExeForElevation = new TableDefinition( - "WixApprovedExeForElevation", - TupleDefinitions.WixApprovedExeForElevation, - new[] - { - new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Key", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundleUpdate = new TableDefinition( - "WixBundleUpdate", - TupleDefinitions.WixBundleUpdate, - new[] - { - new ColumnDefinition("Location", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBootstrapperApplication = new TableDefinition( - "WixBootstrapperApplication", - TupleDefinitions.WixBootstrapperApplication, - new[] - { - new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixUpdateRegistration = new TableDefinition( - "WixUpdateRegistration", - TupleDefinitions.WixUpdateRegistration, - new[] - { - new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Department", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("ProductFamily", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Classification", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundleCatalog = new TableDefinition( - "WixBundleCatalog", - TupleDefinitions.WixBundleCatalog, - new[] - { - new ColumnDefinition("WixBundleCatalog", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Payload_", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePayload", keyColumn: 1, description: "Reference to a payload entry in the WixBundlePayload table."), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixChain = new TableDefinition( - "WixChain", - TupleDefinitions.WixChain, - new[] - { - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to the chain."), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixChainItem = new TableDefinition( - "WixChainItem", - TupleDefinitions.WixChainItem, - new[] - { - new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundleRollbackBoundary = new TableDefinition( - "WixBundleRollbackBoundary", - TupleDefinitions.WixBundleRollbackBoundary, - new[] - { - new ColumnDefinition("WixChainItem_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixChainItem", keyColumn: 1, description: "Reference to a WixChainItem entry in the WixChainItem table."), - new ColumnDefinition("Vital", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("Transaction", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundlePackageGroup = new TableDefinition( - "WixBundlePackageGroup", - TupleDefinitions.WixBundlePackageGroup, - new[] - { - new ColumnDefinition("WixBundlePackageGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundlePackage = new TableDefinition( - "WixBundlePackage", - TupleDefinitions.WixBundlePackage, - new[] - { - new ColumnDefinition("WixChainItem_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixChainItem", keyColumn: 1, description: "Reference to a WixChainItem entry in the WixChainItem table."), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3), - new ColumnDefinition("Payload_", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePayload", keyColumn: 1, description: "Reference to a payload entry in the WixBundlePayload table."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this package."), - new ColumnDefinition("InstallCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Cache", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), - new ColumnDefinition("CacheId", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Vital", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("PerMachine", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), - new ColumnDefinition("LogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("RollbackLogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Size", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("InstallSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Version", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Version), - new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("RollbackBoundary_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleRollbackBoundary", keyColumn: 1, description: "Reference to a rollback boundary entry in the WixBundleRollbackBoundary table."), - new ColumnDefinition("RollbackBoundaryBackward_", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleRollbackBoundary", keyColumn: 1, description: "Reference to a rollback boundary entry in the WixBundleRollbackBoundary table."), - new ColumnDefinition("x64", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundleExePackage = new TableDefinition( - "WixBundleExePackage", - TupleDefinitions.WixBundleExePackage, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this MSI package."), - new ColumnDefinition("DetectCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("InstallCommand", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("RepairCommand", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("UninstallCommand", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("ExeProtocol", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundleMsiPackage = new TableDefinition( - "WixBundleMsiPackage", - TupleDefinitions.WixBundleMsiPackage, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this MSI package."), - new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), - new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), - new ColumnDefinition("ProductVersion", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ProductLanguage", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ProductName", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundleMspPackage = new TableDefinition( - "WixBundleMspPackage", - TupleDefinitions.WixBundleMspPackage, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("PatchCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), - new ColumnDefinition("Manufacturer", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("PatchXml", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundleMsuPackage = new TableDefinition( - "WixBundleMsuPackage", - TupleDefinitions.WixBundleMsuPackage, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("DetectCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("MsuKB", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundlePackageExitCode = new TableDefinition( - "WixBundlePackageExitCode", - TupleDefinitions.WixBundlePackageExitCode, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the parent Exe."), - new ColumnDefinition("Code", ColumnType.Number, 0, primaryKey: true, nullable: true, ColumnCategory.Integer), - new ColumnDefinition("Behavior", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Integer, minValue: 0, maxValue: 3), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundleMsiFeature = new TableDefinition( - "WixBundleMsiFeature", - TupleDefinitions.WixBundleMsiFeature, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Size", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Parent", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Title", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Display", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Directory", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundleMsiProperty = new TableDefinition( - "WixBundleMsiProperty", - TupleDefinitions.WixBundleMsiProperty, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundleSlipstreamMsp = new TableDefinition( - "WixBundleSlipstreamMsp", - TupleDefinitions.WixBundleSlipstreamMsp, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the parent Msi."), - new ColumnDefinition("WixBundlePackage_Msp", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table for the referenced Msp."), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundlePackageCommandLine = new TableDefinition( - "WixBundlePackageCommandLine", - TupleDefinitions.WixBundlePackageCommandLine, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("InstallArgument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("UninstallArgument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("RepairArgument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Condition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixRelatedBundle = new TableDefinition( - "WixRelatedBundle", - TupleDefinitions.WixRelatedBundle, - new[] - { - new ColumnDefinition("Id", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), - new ColumnDefinition("Action", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundleRelatedPackage = new TableDefinition( - "WixBundleRelatedPackage", - TupleDefinitions.WixBundleRelatedPackage, - new[] - { - new ColumnDefinition("WixBundlePackage_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("MinVersion", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("MaxVersion", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Languages", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("MinInclusive", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("MaxInclusive", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("LangInclusive", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("OnlyDetect", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBundleVariable = new TableDefinition( - "WixBundleVariable", - TupleDefinitions.WixBundleVariable, - new[] - { - new ColumnDefinition("WixBundleVariable", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Type", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Hidden", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("Persisted", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixBundleProperties = new TableDefinition( - "WixBundleProperties", - null, - new[] - { - new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("LogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Compressed", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("UpgradeCode", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("PerMachine", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixPackageFeatureInfo = new TableDefinition( - "WixPackageFeatureInfo", - null, - new[] - { - new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Feature", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Size", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Parent", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Title", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Display", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Level", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Directory", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixPackageProperties = new TableDefinition( - "WixPackageProperties", - null, - new[] - { - new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Vital", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("DisplayName", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Description", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("DownloadSize", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("PackageSize", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("InstalledSize", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("PackageType", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Permanent", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("LogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("RollbackLogPathVariable", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Compressed", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("DisplayInternalUI", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("ProductCode", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("UpgradeCode", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Version", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("InstallCondition", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Cache", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixPayloadProperties = new TableDefinition( - "WixPayloadProperties", - null, - new[] - { - new ColumnDefinition("Payload", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Package", ColumnType.String, 0, primaryKey: true, nullable: true, ColumnCategory.Identifier, keyTable: "WixBundlePackage", keyColumn: 1, description: "Reference to a chain package entry in the WixBundlePackage table."), - new ColumnDefinition("Container", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "WixBundleContainer", keyColumn: 1, description: "Reference to a container entry in the WixBundleContainer table."), - new ColumnDefinition("Name", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Size", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("DownloadUrl", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("LayoutOnly", ColumnType.String, 3, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - public static readonly TableDefinition Streams = new TableDefinition( "_Streams", null, @@ -2704,94 +2193,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition WixSearch = new TableDefinition( - "WixSearch", - TupleDefinitions.WixSearch, - new[] - { - new ColumnDefinition("WixSearch", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier), - new ColumnDefinition("Variable", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixSearchRelation = new TableDefinition( - "WixSearchRelation", - TupleDefinitions.WixSearchRelation, - new[] - { - new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), - new ColumnDefinition("ParentId_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixFileSearch = new TableDefinition( - "WixFileSearch", - TupleDefinitions.WixFileSearch, - new[] - { - new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), - new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), - new ColumnDefinition("MinVersion", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Version), - new ColumnDefinition("MaxVersion", ColumnType.String, 24, primaryKey: false, nullable: true, ColumnCategory.Version), - new ColumnDefinition("MinSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), - new ColumnDefinition("MaxSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), - new ColumnDefinition("MinDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), - new ColumnDefinition("MaxDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.DoubleInteger), - new ColumnDefinition("Languages", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixRegistrySearch = new TableDefinition( - "WixRegistrySearch", - TupleDefinitions.WixRegistrySearch, - new[] - { - new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), - new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), - new ColumnDefinition("Key", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), - new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixComponentSearch = new TableDefinition( - "WixComponentSearch", - TupleDefinitions.WixComponentSearch, - new[] - { - new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), - new ColumnDefinition("Guid", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), - new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixProductSearch = new TableDefinition( - "WixProductSearch", - TupleDefinitions.WixProductSearch, - new[] - { - new ColumnDefinition("WixSearch_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixSearch", keyColumn: 1, description: "Reference to a WixSearch entry in the WixSearch table."), - new ColumnDefinition("Guid", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.DoubleInteger), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - public static readonly TableDefinition[] All = new[] { ActionText, @@ -2950,47 +2351,10 @@ namespace WixToolset.Data.WindowsInstaller WixPatchMetadata, WixUI, WixVariable, - WixBundleContainer, - WixBundlePayloadGroup, - WixBundlePayload, - WixBundlePatchTargetCode, - WixBundle, - WixApprovedExeForElevation, - WixBundleUpdate, - WixBootstrapperApplication, - WixUpdateRegistration, - WixBundleCatalog, - WixChain, - WixChainItem, - WixBundleRollbackBoundary, - WixBundlePackageGroup, - WixBundlePackage, - WixBundleExePackage, - WixBundleMsiPackage, - WixBundleMspPackage, - WixBundleMsuPackage, - WixBundlePackageExitCode, - WixBundleMsiFeature, - WixBundleMsiProperty, - WixBundleSlipstreamMsp, - WixBundlePackageCommandLine, - WixRelatedBundle, - WixBundleRelatedPackage, - WixBundleVariable, - WixBundleProperties, - WixPackageFeatureInfo, - WixPackageProperties, - WixPayloadProperties, Streams, SummaryInformation, TransformView, Validation, - WixSearch, - WixSearchRelation, - WixFileSearch, - WixRegistrySearch, - WixComponentSearch, - WixProductSearch, }; } } -- cgit v1.2.3-55-g6feb From 1c933963d1354495d4a31a08baf7f1240b5fbfce Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sat, 18 Apr 2020 13:53:54 +1000 Subject: Add ability for an extension to have a custom strongly typed row during binding. Remove some unused functionality in Table and Row. Use strongRowType in core tables. --- src/WixToolset.Data/WindowsInstaller/Row.cs | 16 ----- .../WindowsInstaller/Rows/BBControlRow.cs | 5 ++ .../WindowsInstaller/Rows/ComponentRow.cs | 5 ++ .../WindowsInstaller/Rows/ControlRow.cs | 5 ++ .../WindowsInstaller/Rows/MediaRow.cs | 5 ++ .../WindowsInstaller/Rows/PropertyRow.cs | 5 ++ .../WindowsInstaller/Rows/UpgradeRow.cs | 5 ++ .../WindowsInstaller/Rows/WixActionRow.cs | 9 +-- .../Rows/WixComplexReferenceRow.cs | 5 ++ .../WindowsInstaller/Rows/WixGroupRow.cs | 5 ++ .../WindowsInstaller/Rows/WixMediaTemplateRow.cs | 5 ++ .../WindowsInstaller/Rows/WixPropertyRow.cs | 5 ++ src/WixToolset.Data/WindowsInstaller/Table.cs | 74 ++-------------------- .../WindowsInstaller/TableDefinition.cs | 33 +++++++++- .../WindowsInstallerTableDefinitions.cs | 19 ++++++ .../WindowsInstallerTableDefinitionsFixture.cs | 29 +++++++++ 16 files changed, 136 insertions(+), 94 deletions(-) create mode 100644 src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Row.cs b/src/WixToolset.Data/WindowsInstaller/Row.cs index a7a63d58..af0a323e 100644 --- a/src/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/WixToolset.Data/WindowsInstaller/Row.cs @@ -46,22 +46,6 @@ namespace WixToolset.Data.WindowsInstaller } } - /// - /// Creates a shallow copy of a row from another row. - /// - /// The row the data is copied from. - protected Row(Row source) - { - this.Table = source.Table; - this.TableDefinition = source.TableDefinition; - this.Number = source.Number; - this.Operation = source.Operation; - this.Redundant = source.Redundant; - this.SectionId = source.SectionId; - this.SourceLineNumbers = source.SourceLineNumbers; - this.Fields = source.Fields; - } - /// /// Gets or sets the row transform operation. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs index bf962e73..20482560 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs @@ -19,6 +19,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public BBControlRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets or sets the dialog of the Control row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs index 001703ee..b7836241 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs @@ -19,6 +19,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public ComponentRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets or sets the identifier for this Component row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs index 95289dea..e0ae2de0 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs @@ -19,6 +19,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public ControlRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets or sets the dialog of the Control row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs index b931632f..b8fa5e83 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs @@ -17,6 +17,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public MediaRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets or sets the disk id for this media row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs index 3aba5de6..b4212430 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs @@ -17,6 +17,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public PropertyRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets and sets the property name for the row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs index d757c8d3..dbbfa0f9 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs @@ -17,6 +17,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public UpgradeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets and sets the upgrade code for the row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs index f7bc784d..61240820 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs @@ -23,13 +23,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } - /// - /// Instantiates an ActionRow by copying data from another ActionRow. - /// - /// The row the data is copied from. - /// The previous and next action collections are not copied. - private WixActionRow(WixActionRow source) - : base(source) + public WixActionRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) { } diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs index 2abd7656..0e942724 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs @@ -20,6 +20,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public WixComplexReferenceRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) + : base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets the parent type of the complex reference. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs index e59df729..bbdbc6b6 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs @@ -19,6 +19,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public WixGroupRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) + : base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets or sets the parent identifier of the complex reference. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs index b2a64356..29479147 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs @@ -17,6 +17,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public WixMediaTemplateRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) + : base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets or sets the cabinet template name for this media template row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs index 2f356b71..8a54d36e 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs @@ -18,6 +18,11 @@ namespace WixToolset.Data.WindowsInstaller.Rows { } + public WixPropertyRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + /// /// Gets and sets the id for this property row. /// diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index 54753dee..ca6fe3ba 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -6,7 +6,6 @@ namespace WixToolset.Data.WindowsInstaller using System.Collections.Generic; using System.Diagnostics; using System.Xml; - using WixToolset.Data.WindowsInstaller.Rows; /// /// Object that represents a table in a database. @@ -49,79 +48,14 @@ namespace WixToolset.Data.WindowsInstaller public IList Rows { get; } /// - /// Creates a new row in the table. + /// Creates a new row and adds it to the table. /// /// Original source lines for this row. - /// Specifies whether to only create the row or add it to the table automatically. /// Row created in table. - public Row CreateRow(SourceLineNumber sourceLineNumbers, bool add = true) + public Row CreateRow(SourceLineNumber sourceLineNumbers) { - Row row; - - switch (this.Name) - { - case "BBControl": - row = new BBControlRow(sourceLineNumbers, this); - break; - case "Component": - row = new ComponentRow(sourceLineNumbers, this); - break; - case "Control": - row = new ControlRow(sourceLineNumbers, this); - break; - case "File": - row = new FileRow(sourceLineNumbers, this); - break; - case "Media": - row = new MediaRow(sourceLineNumbers, this); - break; - case "Property": - row = new PropertyRow(sourceLineNumbers, this); - break; - case "Upgrade": - row = new UpgradeRow(sourceLineNumbers, this); - break; - case "WixAction": - row = new WixActionRow(sourceLineNumbers, this); - break; - case "WixComplexReference": - row = new WixComplexReferenceRow(sourceLineNumbers, this); - break; - case "WixDeltaPatchFile": - row = new WixDeltaPatchFileRow(sourceLineNumbers, this); - break; - case "WixDeltaPatchSymbolPaths": - row = new WixDeltaPatchSymbolPathsRow(sourceLineNumbers, this); - break; - case "WixGroup": - row = new WixGroupRow(sourceLineNumbers, this); - break; - case "WixMedia": - row = new WixMediaRow(sourceLineNumbers, this); - break; - case "WixMediaTemplate": - row = new WixMediaTemplateRow(sourceLineNumbers, this); - break; - case "WixMerge": - row = new WixMergeRow(sourceLineNumbers, this); - break; - case "WixProperty": - row = new WixPropertyRow(sourceLineNumbers, this); - break; - case "WixSimpleReference": - row = new WixSimpleReferenceRow(sourceLineNumbers, this); - break; - - default: - row = new Row(sourceLineNumbers, this); - break; - } - - if (add) - { - this.Rows.Add(row); - } - + var row = this.Definition.CreateRow(sourceLineNumbers, this); + this.Rows.Add(row); return row; } diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 7c4a3e9d..9ec37895 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -26,18 +26,22 @@ namespace WixToolset.Data.WindowsInstaller /// Column definitions for the table. /// Flag if table is unreal. /// Whether the primary key is the id of the tuple definition associated with this table. - public TableDefinition(string name, IntermediateTupleDefinition tupleDefinition, IEnumerable columns, bool unreal = false, bool tupleIdIsPrimaryKey = false) + public TableDefinition(string name, IntermediateTupleDefinition tupleDefinition, IEnumerable columns, bool unreal = false, bool tupleIdIsPrimaryKey = false, Type strongRowType = null) { this.Name = name; this.TupleDefinition = tupleDefinition; this.TupleIdIsPrimaryKey = tupleIdIsPrimaryKey; this.Unreal = unreal; this.Columns = columns?.ToArray(); + this.StrongRowType = strongRowType ?? typeof(Row); if (this.Columns == null || this.Columns.Length == 0) { throw new ArgumentOutOfRangeException(nameof(columns)); } +#if DEBUG + if (this.StrongRowType != typeof(Row) && !this.StrongRowType.IsSubclassOf(typeof(Row))) { throw new ArgumentException(nameof(strongRowType)); } +#endif } /// @@ -70,6 +74,8 @@ namespace WixToolset.Data.WindowsInstaller /// Flag if table is unreal. public bool TupleIdIsPrimaryKey { get; } + private Type StrongRowType { get; } + /// /// Gets the column definition in the table by index. /// @@ -77,6 +83,31 @@ namespace WixToolset.Data.WindowsInstaller /// Column definition in the table by index. public ColumnDefinition this[int columnIndex] => this.Columns[columnIndex]; + /// + /// In general this method shouldn't be used - create rows from a Table instead. + /// Creates a new row object of the type specified in this definition. + /// + /// Original source lines for this row. + /// Created row. + public Row CreateRow(SourceLineNumber sourceLineNumbers) + { + var result = (Row)Activator.CreateInstance(this.StrongRowType, sourceLineNumbers, this); + return result; + } + + /// + /// Creates a new row object of the type specified in this definition for the given table. + /// External callers should create the row from the table. + /// + /// Original source lines for this row. + /// The owning table for this row. + /// Created row. + internal Row CreateRow(SourceLineNumber sourceLineNumbers, Table table) + { + var result = (Row)Activator.CreateInstance(this.StrongRowType, sourceLineNumbers, table); + return result; + } + /// /// Compares this table definition to another table definition. /// diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index f6c07a83..3a1a8916 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -2,6 +2,8 @@ namespace WixToolset.Data.WindowsInstaller { + using WixToolset.Data.WindowsInstaller.Rows; + public static class WindowsInstallerTableDefinitions { public static readonly TableDefinition ActionText = new TableDefinition( @@ -111,6 +113,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of property, uppercase if settable by launcher or loader.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "String value for property. Never null or empty."), }, + strongRowType: typeof(PropertyRow), tupleIdIsPrimaryKey: true ); @@ -129,6 +132,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), new ColumnDefinition("Text", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A string used to set the initial text contained within a control (if appropriate)."), }, + strongRowType: typeof(BBControlRow), tupleIdIsPrimaryKey: false ); @@ -200,6 +204,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DiskId", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Disk identifier for the file.", unreal: true), new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Path to source of file.", unreal: true), }, + strongRowType: typeof(FileRow), tupleIdIsPrimaryKey: true ); @@ -258,6 +263,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), new ColumnDefinition("KeyPath", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File;Registry;ODBCDataSource", keyColumn: 1, description: "Either the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.", modularizeType: ColumnModularizeType.Column), }, + strongRowType: typeof(ComponentRow), tupleIdIsPrimaryKey: true ); @@ -353,6 +359,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Control_Next", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "The name of an other control on the same dialog. This link defines the tab order of the controls. The links have to form one or more cycles!"), new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional. "), }, + strongRowType: typeof(ControlRow), tupleIdIsPrimaryKey: false ); @@ -708,6 +715,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The label attributed to the volume."), new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Property, description: "The property defining the location of the cabinet file."), }, + strongRowType: typeof(MediaRow), tupleIdIsPrimaryKey: false ); @@ -1330,6 +1338,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Remove", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The list of features to remove when uninstalling a product from this set. The default is \"ALL\"."), new ColumnDefinition("ActionProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.UpperCase, description: "The property to set when a product in this set is found."), }, + strongRowType: typeof(UpgradeRow), tupleIdIsPrimaryKey: false ); @@ -1666,6 +1675,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Overridable", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, + strongRowType: typeof(WixActionRow), tupleIdIsPrimaryKey: false ); @@ -1695,6 +1705,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, + strongRowType: typeof(WixComplexReferenceRow), tupleIdIsPrimaryKey: false ); @@ -1814,6 +1825,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ChildType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify a particular child type in a child table."), }, unreal: true, + strongRowType: typeof(WixGroupRow), tupleIdIsPrimaryKey: false ); @@ -1923,6 +1935,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Layout", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, + strongRowType: typeof(WixMediaRow), tupleIdIsPrimaryKey: false ); @@ -1939,6 +1952,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MaximumCabinetSizeForLargeFileSplitting", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, + strongRowType: typeof(WixMediaTemplateRow), tupleIdIsPrimaryKey: false ); @@ -1957,6 +1971,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Feature_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, + strongRowType: typeof(WixMergeRow), tupleIdIsPrimaryKey: true ); @@ -1987,6 +2002,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), }, unreal: true, + strongRowType: typeof(WixDeltaPatchFileRow), tupleIdIsPrimaryKey: false ); @@ -2000,6 +2016,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: false, ColumnCategory.Text), }, unreal: true, + strongRowType: typeof(WixDeltaPatchSymbolPathsRow), tupleIdIsPrimaryKey: false ); @@ -2012,6 +2029,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, + strongRowType: typeof(WixPropertyRow), tupleIdIsPrimaryKey: false ); @@ -2024,6 +2042,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, + strongRowType: typeof(WixSimpleReferenceRow), tupleIdIsPrimaryKey: false ); diff --git a/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs b/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs new file mode 100644 index 00000000..5621a756 --- /dev/null +++ b/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs @@ -0,0 +1,29 @@ +// 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. + +namespace WixToolsetTest.Data +{ + using WixToolset.Data.WindowsInstaller; + using Xunit; + + public class WindowsInstallerTableDefinitionsFixture + { + [Fact] + public void CanCreateWindowsInstallerRows() + { + foreach (var tableDefinition in WindowsInstallerTableDefinitions.All) + { + var table = new Table(tableDefinition); + var rowFromTable = table.CreateRow(null); + var rowFromTableDefinition = tableDefinition.CreateRow(null); + var expectedRowTypeName = tableDefinition.Name.Replace("_", "") + "Row"; + var expectedRowType = rowFromTable.GetType(); + + Assert.Equal(expectedRowType, rowFromTableDefinition.GetType()); + if (typeof(Row) != expectedRowType) + { + Assert.Equal(expectedRowTypeName, expectedRowType.Name); + } + } + } + } +} -- cgit v1.2.3-55-g6feb From 759166e0762d711bdea1b79e94678aba89a194e6 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sat, 18 Apr 2020 20:32:49 +1000 Subject: Add constants for bundle Wixout stream names. --- src/WixToolset.Data/Burn/BurnConstants.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Burn/BurnConstants.cs b/src/WixToolset.Data/Burn/BurnConstants.cs index 1a0db73e..18978195 100644 --- a/src/WixToolset.Data/Burn/BurnConstants.cs +++ b/src/WixToolset.Data/Burn/BurnConstants.cs @@ -8,6 +8,10 @@ namespace WixToolset.Data.Burn public const string BurnDefaultAttachedContainerName = "WixAttachedContainer"; public const string BundleLayoutOnlyPayloadsName = "BundleLayoutOnlyPayloads"; + public const string BurnManifestWixOutputStreamName = "wix-burndata.xml"; + public const string BundleExtensionDataWixOutputStreamName = "wix-bextdata"; + public const string BootstrapperApplicationDataWixOutputStreamName = "wix-badata.xml"; + public const string BootstrapperApplicationDataTupleDefinitionTag = "WixBootstrapperApplicationData"; public const string BundleExtensionSearchTupleDefinitionTag = "WixBundleExtensionSearch"; -- cgit v1.2.3-55-g6feb From 5a105b510c5f2a082e5b5ab7ae94adf2491b0416 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sat, 18 Apr 2020 21:15:24 +1000 Subject: Update WixOutput's GetData to use StreamReader. --- src/WixToolset.Data/WixOutput.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index a3326b0b..27e7827a 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -222,14 +222,12 @@ namespace WixToolset.Data { var entry = this.archive.GetEntry(name); - var bytes = new byte[entry.Length]; - + // Use StreamReader to "swallow" BOM if present. using (var stream = entry.Open()) + using (var streamReader = new StreamReader(stream, Encoding.UTF8)) { - stream.Read(bytes, 0, bytes.Length); + return streamReader.ReadToEnd(); } - - return Encoding.UTF8.GetString(bytes); } /// -- cgit v1.2.3-55-g6feb From 635bf639ac8eddd82cf4d54677b757fb9a68194f Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 22 Apr 2020 22:00:59 +1000 Subject: Change PerMachine field type to string to match usage. Change Compressed field type to bool to match usage. --- src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index 03c7879d..6d248062 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -17,7 +17,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Cache), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.CacheId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Vital), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PerMachine), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PerMachine), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.LogPathVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Size), IntermediateFieldType.Number), diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs index e0ef6fe1..6e3b1d70 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -13,7 +13,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Name), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.SourceFile), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Compressed), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Compressed), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.UnresolvedSourceFile), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DisplayName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Description), IntermediateFieldType.String), -- cgit v1.2.3-55-g6feb From 9c89538349c9a21cc662c6292a9ea757ebdb36ff Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Fri, 8 May 2020 20:20:37 -0400 Subject: Clean up unused stuff and fix whitespace. --- .../WindowsInstaller/IntermediateLevels.cs | 1 - .../WindowsInstaller/WindowsInstallerStandard.cs | 178 ++++++++++----------- src/test/WixToolsetTest.Data/SerializeFixture.cs | 1 - 3 files changed, 89 insertions(+), 91 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs b/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs index 1eb0ef2d..6ffdf041 100644 --- a/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs +++ b/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs @@ -3,7 +3,6 @@ namespace WixToolset.Data.WindowsInstaller public static class IntermediateLevels { // TODO: These are placeholder names until we (hopefully) come up with better ones. - public const string PartiallyBound = "msiPartiallyBound"; public const string FullyBound = "msiFullyBound"; } } diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 5f01c3a0..73b30ef2 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -262,108 +262,108 @@ namespace WixToolset.Data.WindowsInstaller new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, @@ -376,23 +376,23 @@ namespace WixToolset.Data.WindowsInstaller new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, }; standardActionNames = new HashSet(standardActions.Select(a => a.Action)); diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 55460d54..c07124ef 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -39,7 +39,6 @@ namespace WixToolsetTest.Data Assert.True(loaded.HasLevel(IntermediateLevels.Compiled)); Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); - Assert.False(loaded.HasLevel(WixToolset.Data.WindowsInstaller.IntermediateLevels.PartiallyBound)); var tuple = (ComponentTuple)loaded.Sections.Single().Tuples.Single(); -- cgit v1.2.3-55-g6feb From 20e2190443f2e47dae1cb8c6fc1abb4d2e213e6b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 13 May 2020 14:28:46 +1000 Subject: Add overload for UnexpectedException that takes the exception so inner exceptions can also be part of the message. --- appveyor.yml | 2 +- src/WixToolset.Data/ErrorMessages.cs | 5 +++++ src/WixToolset.Data/WixToolset.Data.csproj | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/appveyor.yml b/appveyor.yml index c1df03cc..7c686b04 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -8,7 +8,7 @@ branches: - master - develop -image: Visual Studio 2017 +image: Visual Studio 2019 version: 0.0.0.{build} configuration: Release diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 6759b14a..aef2ab66 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -2044,6 +2044,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.UnexpectedEmptySubexpression, "The empty subexpression is unexpected in the expression '{0}'.", expression); } + public static Message UnexpectedException(Exception exception) + { + return Message(null, Ids.UnexpectedException, exception.ToString()); + } + public static Message UnexpectedException(string message, string type, string stackTrace) { return Message(null, Ids.UnexpectedException, "{0}\r\n\r\nException Type: {1}\r\n\r\nStack Trace:\r\n{2}", message, type, stackTrace); diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 0a7efe60..da4665eb 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -16,7 +16,7 @@ - + -- cgit v1.2.3-55-g6feb From c3c1d46cd8d833bc7d59ee52a5daf6210679ac05 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 14 May 2020 19:40:26 +1000 Subject: WIXFEAT:6164 Move DisplayInternalUI into BalExtension. --- src/WixToolset.Data/Serialize/wix.cs | 78 ---------------------- .../Tuples/WixBundleMsiPackageTuple.cs | 3 - .../Tuples/WixBundleMspPackageTuple.cs | 3 - 3 files changed, 84 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Serialize/wix.cs b/src/WixToolset.Data/Serialize/wix.cs index 3ff83699..0daa7335 100644 --- a/src/WixToolset.Data/Serialize/wix.cs +++ b/src/WixToolset.Data/Serialize/wix.cs @@ -3772,10 +3772,6 @@ namespace WixToolset.Data.Serialize private bool enableSignatureVerificationFieldSet; - private YesNoType displayInternalUIField; - - private bool displayInternalUIFieldSet; - private YesNoType enableFeatureSelectionField; private bool enableFeatureSelectionFieldSet; @@ -4114,25 +4110,6 @@ namespace WixToolset.Data.Serialize } } - /// - /// Specifies whether the bundle will show the UI authored into the msi package. The default is "no" - /// which means all information is routed to the bootstrapper application to provide a unified installation - /// experience. If "yes" is specified the UI authored into the msi package will be displayed on top of - /// any bootstrapper application UI. - /// - public YesNoType DisplayInternalUI - { - get - { - return this.displayInternalUIField; - } - set - { - this.displayInternalUIFieldSet = true; - this.displayInternalUIField = value; - } - } - /// /// Specifies whether the bundle will allow individual control over the installation state of Features inside /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and @@ -4389,17 +4366,6 @@ namespace WixToolset.Data.Serialize writer.WriteAttributeString("EnableSignatureVerification", "yes"); } } - if (this.displayInternalUIFieldSet) - { - if ((this.displayInternalUIField == YesNoType.no)) - { - writer.WriteAttributeString("DisplayInternalUI", "no"); - } - if ((this.displayInternalUIField == YesNoType.yes)) - { - writer.WriteAttributeString("DisplayInternalUI", "yes"); - } - } if (this.enableFeatureSelectionFieldSet) { if ((this.enableFeatureSelectionField == YesNoType.no)) @@ -4545,11 +4511,6 @@ namespace WixToolset.Data.Serialize this.enableSignatureVerificationField = Enums.ParseYesNoType(value); this.enableSignatureVerificationFieldSet = true; } - if (("DisplayInternalUI" == name)) - { - this.displayInternalUIField = Enums.ParseYesNoType(value); - this.displayInternalUIFieldSet = true; - } if (("EnableFeatureSelection" == name)) { this.enableFeatureSelectionField = Enums.ParseYesNoType(value); @@ -4650,10 +4611,6 @@ namespace WixToolset.Data.Serialize private bool enableSignatureVerificationFieldSet; - private YesNoType displayInternalUIField; - - private bool displayInternalUIFieldSet; - private YesNoDefaultType perMachineField; private bool perMachineFieldSet; @@ -4983,25 +4940,6 @@ namespace WixToolset.Data.Serialize } } - /// - /// Specifies whether the bundle will show the UI authored into the msp package. The default is "no" - /// which means all information is routed to the bootstrapper application to provide a unified installation - /// experience. If "yes" is specified the UI authored into the msp package will be displayed on top of - /// any bootstrapper application UI. - /// - public YesNoType DisplayInternalUI - { - get - { - return this.displayInternalUIField; - } - set - { - this.displayInternalUIFieldSet = true; - this.displayInternalUIField = value; - } - } - /// /// Indicates the package must be executed elevated. The default is "no". /// @@ -5216,17 +5154,6 @@ namespace WixToolset.Data.Serialize writer.WriteAttributeString("EnableSignatureVerification", "yes"); } } - if (this.displayInternalUIFieldSet) - { - if ((this.displayInternalUIField == YesNoType.no)) - { - writer.WriteAttributeString("DisplayInternalUI", "no"); - } - if ((this.displayInternalUIField == YesNoType.yes)) - { - writer.WriteAttributeString("DisplayInternalUI", "yes"); - } - } if (this.perMachineFieldSet) { if ((this.perMachineField == YesNoDefaultType.@default)) @@ -5354,11 +5281,6 @@ namespace WixToolset.Data.Serialize this.enableSignatureVerificationField = Enums.ParseYesNoType(value); this.enableSignatureVerificationFieldSet = true; } - if (("DisplayInternalUI" == name)) - { - this.displayInternalUIField = Enums.ParseYesNoType(value); - this.displayInternalUIFieldSet = true; - } if (("PerMachine" == name)) { this.perMachineField = Enums.ParseYesNoDefaultType(value); diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs index 3a205376..163b56ae 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs @@ -40,7 +40,6 @@ namespace WixToolset.Data.Tuples [Flags] public enum WixBundleMsiPackageAttributes { - DisplayInternalUI = 0x1, EnableFeatureSelection = 0x4, ForcePerMachine = 0x2, } @@ -99,8 +98,6 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleMsiPackageTupleFields.Manufacturer, value); } - public bool DisplayInternalUI => (this.Attributes & WixBundleMsiPackageAttributes.DisplayInternalUI) == WixBundleMsiPackageAttributes.DisplayInternalUI; - public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs index 6c5cb38b..7e94ff25 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs @@ -34,7 +34,6 @@ namespace WixToolset.Data.Tuples [Flags] public enum WixBundleMspPackageAttributes { - DisplayInternalUI = 0x1, Slipstream = 0x2, TargetUnspecified = 0x4, } @@ -75,8 +74,6 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixBundleMspPackageTupleFields.PatchXml, value); } - public bool DisplayInternalUI => (this.Attributes & WixBundleMspPackageAttributes.DisplayInternalUI) == WixBundleMspPackageAttributes.DisplayInternalUI; - public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; -- cgit v1.2.3-55-g6feb From e25b29f5ded38e281f3a686bc5ce7cbe1d872d3b Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 21 May 2020 18:42:42 -0400 Subject: Handle updating entries in a WixOutput. --- src/WixToolset.Data/WixOutput.cs | 13 ++++ src/test/WixToolsetTest.Data/SerializeFixture.cs | 83 +++++++++++++++++++++--- 2 files changed, 86 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index 27e7827a..bb546821 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -183,6 +183,8 @@ namespace WixToolset.Data /// Stream to the data of the file. public Stream CreateDataStream(string name) { + this.DeleteExistingEntry(name); + var entry = this.archive.CreateEntry(name); return entry.Open(); @@ -195,6 +197,8 @@ namespace WixToolset.Data /// Path to file on disk to include in the output. public void ImportDataStream(string name, string path) { + this.DeleteExistingEntry(name); + this.archive.CreateEntryFromFile(path, name, System.IO.Compression.CompressionLevel.Optimal); } @@ -256,5 +260,14 @@ namespace WixToolset.Data this.disposed = true; } + + private void DeleteExistingEntry(string name) + { + var entry = this.archive.GetEntry(name); + if (entry != null) + { + entry.Delete(); + } + } } } diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index c07124ef..6e224438 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -32,20 +32,83 @@ namespace WixToolsetTest.Data intermediate.UpdateLevel(IntermediateLevels.Resolved); var path = Path.GetTempFileName(); - intermediate.Save(path); + try + { + intermediate.Save(path); + + var loaded = Intermediate.Load(path); + + Assert.True(loaded.HasLevel(IntermediateLevels.Compiled)); + Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); + Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); + + var tuple = (ComponentTuple)loaded.Sections.Single().Tuples.Single(); + + Assert.Equal("TestComponent", tuple.Id.Id); + Assert.Equal(AccessModifier.Public, tuple.Id.Access); + Assert.Equal("TestFolder", tuple.DirectoryRef); + Assert.Equal(ComponentLocation.Either, tuple.Location); + } + finally + { + File.Delete(path); + } + } + + [Fact] + public void CanUpdateIntermediate() + { + var sln = new SourceLineNumber("test.wxs", 1); + var section = new IntermediateSection("test", SectionType.Product, 65001); + + section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) + { + ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + DirectoryRef = "TestFolder", + Location = ComponentLocation.Either, + }); + + var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); + + var path = Path.GetTempFileName(); + try + { + intermediate.Save(path); - var loaded = Intermediate.Load(path); + var uri = new Uri(Path.GetFullPath(path)); + var stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite); - Assert.True(loaded.HasLevel(IntermediateLevels.Compiled)); - Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); - Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); + using (var wixout = WixOutput.Read(uri, stream)) + { + var loaded = Intermediate.Load(wixout); + var tuple = (ComponentTuple)loaded.Sections.Single().Tuples.Single(); + + Assert.Equal("TestComponent", tuple.Id.Id); + Assert.Equal(AccessModifier.Public, tuple.Id.Access); + + wixout.Reopen(writable: true); + + section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "NewComponent")) + { + ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + }); + + intermediate.Save(wixout); + loaded = Intermediate.Load(wixout); + + var newTuple = loaded.Sections.Single().Tuples.Where(t => t.Id.Id == "NewComponent"); + Assert.Single(newTuple); + } - var tuple = (ComponentTuple)loaded.Sections.Single().Tuples.Single(); + var loadedAfterDispose = Intermediate.Load(path); + var newTupleStillThere = loadedAfterDispose.Sections.Single().Tuples.Where(t => t.Id.Id == "NewComponent"); + Assert.Single(newTupleStillThere); - Assert.Equal("TestComponent", tuple.Id.Id); - Assert.Equal(AccessModifier.Public, tuple.Id.Access); - Assert.Equal("TestFolder", tuple.DirectoryRef); - Assert.Equal(ComponentLocation.Either, tuple.Location); + } + finally + { + File.Delete(path); + } } [Fact] -- cgit v1.2.3-55-g6feb From 311dbab658184e603953791a075c776456226b95 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 29 May 2020 11:44:46 +1000 Subject: Add overloads to WindowsInstallerData.Load for table definitions. --- src/WixToolset.Data/WindowsInstaller/SubStorage.cs | 5 ++- .../WindowsInstaller/TableDefinition.cs | 15 +++++++- .../WindowsInstaller/TableDefinitionCollection.cs | 5 ++- .../WindowsInstaller/WindowsInstallerData.cs | 43 ++++++++++++++++++---- src/test/WixToolsetTest.Data/SerializeFixture.cs | 40 ++++++++++++++++++++ 5 files changed, 94 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs b/src/WixToolset.Data/WindowsInstaller/SubStorage.cs index e24839c0..76b1b795 100644 --- a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs +++ b/src/WixToolset.Data/WindowsInstaller/SubStorage.cs @@ -36,8 +36,9 @@ namespace WixToolset.Data.WindowsInstaller /// Creates a SubStorage from the XmlReader. /// /// Reader to get data from. + /// Table definitions to use for strongly-typed rows. /// New SubStorage object. - internal static SubStorage Read(XmlReader reader) + internal static SubStorage Read(XmlReader reader, TableDefinitionCollection tableDefinitions) { if (reader.LocalName != "subStorage") { @@ -71,7 +72,7 @@ namespace WixToolset.Data.WindowsInstaller switch (reader.LocalName) { case WindowsInstallerData.XmlElementName: - data = WindowsInstallerData.Read(reader, true); + data = WindowsInstallerData.Read(reader, tableDefinitions, true); break; default: throw new XmlException(); diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 9ec37895..214544ca 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -156,12 +156,16 @@ namespace WixToolset.Data.WindowsInstaller /// Parses table definition from xml reader. /// /// Reader to get data from. + /// Table definitions to use for strongly-typed rows. /// The TableDefintion represented by the Xml. - internal static TableDefinition Read(XmlReader reader) + internal static TableDefinition Read(XmlReader reader, TableDefinitionCollection tableDefinitions) { var empty = reader.IsEmptyElement; string name = null; + IntermediateTupleDefinition tupleDefinition = null; var unreal = false; + var tupleIdIsPrimaryKey = false; + Type strongRowType = null; while (reader.MoveToNextAttribute()) { @@ -181,6 +185,13 @@ namespace WixToolset.Data.WindowsInstaller throw new XmlException(); } + if (tableDefinitions.TryGet(name, out var tableDefinition)) + { + tupleDefinition = tableDefinition.TupleDefinition; + tupleIdIsPrimaryKey = tableDefinition.TupleIdIsPrimaryKey; + strongRowType = tableDefinition.StrongRowType; + } + var columns = new List(); var hasPrimaryKeyColumn = false; @@ -226,7 +237,7 @@ namespace WixToolset.Data.WindowsInstaller } } - return new TableDefinition(name, null, columns.ToArray(), unreal); + return new TableDefinition(name, tupleDefinition, columns.ToArray(), unreal, tupleIdIsPrimaryKey, strongRowType); } /// diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs index 91385d74..fcc2b1f6 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs @@ -132,8 +132,9 @@ namespace WixToolset.Data.WindowsInstaller /// Loads a collection of table definitions from a XmlReader in memory. /// /// Reader to get data from. + /// Table definitions to use for strongly-typed rows. /// The TableDefinitionCollection represented by the xml. - internal static TableDefinitionCollection Read(XmlReader reader) + internal static TableDefinitionCollection Read(XmlReader reader, TableDefinitionCollection tableDefinitions) { if ("tableDefinitions" != reader.LocalName) { @@ -160,7 +161,7 @@ namespace WixToolset.Data.WindowsInstaller switch (reader.LocalName) { case "tableDefinition": - tableDefinitionCollection.Add(TableDefinition.Read(reader)); + tableDefinitionCollection.Add(TableDefinition.Read(reader, tableDefinitions)); break; default: throw new XmlException(); diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs index e30be598..67a074c6 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -112,10 +112,23 @@ namespace WixToolset.Data.WindowsInstaller /// Suppresses wix.dll version mismatch check. /// Output object. public static WindowsInstallerData Load(string path, bool suppressVersionCheck = false) + { + var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); + return WindowsInstallerData.Load(path, tableDefinitions, suppressVersionCheck); + } + + /// + /// Loads an output from a path on disk. + /// + /// Path to output file saved on disk. + /// Table definitions to use for creating strongly-typed rows. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(string path, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck = false) { using (var wixOutput = WixOutput.Read(path)) { - return WindowsInstallerData.Load(wixOutput, suppressVersionCheck); + return WindowsInstallerData.Load(wixOutput, tableDefinitions, suppressVersionCheck); } } @@ -126,6 +139,19 @@ namespace WixToolset.Data.WindowsInstaller /// Suppresses wix.dll version mismatch check. /// Output object. public static WindowsInstallerData Load(WixOutput wixOutput, bool suppressVersionCheck = false) + { + var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); + return WindowsInstallerData.Load(wixOutput, tableDefinitions, suppressVersionCheck); + } + + /// + /// Loads an output from a WixOutput object. + /// + /// WixOutput object. + /// Table definitions to use for creating strongly-typed rows. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(WixOutput wixOutput, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck = false) { using (var stream = wixOutput.GetDataStream(WixOutputStreamName)) using (var reader = XmlReader.Create(stream, null, wixOutput.Uri.AbsoluteUri)) @@ -133,7 +159,7 @@ namespace WixToolset.Data.WindowsInstaller try { reader.MoveToContent(); - return WindowsInstallerData.Read(reader, suppressVersionCheck); + return WindowsInstallerData.Read(reader, tableDefinitions, suppressVersionCheck); } catch (XmlException xe) { @@ -146,9 +172,10 @@ namespace WixToolset.Data.WindowsInstaller /// Processes an XmlReader and builds up the output object. /// /// Reader to get data from. + /// Table definitions to use for creating strongly-typed rows. /// Suppresses wix.dll version mismatch check. /// The Output represented by the Xml. - internal static WindowsInstallerData Read(XmlReader reader, bool suppressVersionCheck) + internal static WindowsInstallerData Read(XmlReader reader, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) { if (!reader.LocalName.Equals(WindowsInstallerData.XmlElementName)) { @@ -203,7 +230,7 @@ namespace WixToolset.Data.WindowsInstaller } // loop through the rest of the xml building up the Output object - TableDefinitionCollection tableDefinitions = null; + TableDefinitionCollection xmlTableDefinitions = null; var tables = new List
(); if (!empty) { @@ -218,17 +245,17 @@ namespace WixToolset.Data.WindowsInstaller switch (reader.LocalName) { case "subStorage": - output.SubStorages.Add(SubStorage.Read(reader)); + output.SubStorages.Add(SubStorage.Read(reader, tableDefinitions)); break; case "table": - if (null == tableDefinitions) + if (null == xmlTableDefinitions) { throw new XmlException(); } - tables.Add(Table.Read(reader, tableDefinitions)); + tables.Add(Table.Read(reader, xmlTableDefinitions)); break; case "tableDefinitions": - tableDefinitions = TableDefinitionCollection.Read(reader); + xmlTableDefinitions = TableDefinitionCollection.Read(reader, tableDefinitions); break; default: throw new XmlException(); diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 6e224438..198b2571 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -8,8 +8,11 @@ namespace WixToolsetTest.Data using WixToolset.Data; using WixToolset.Data.Bind; using WixToolset.Data.Tuples; + using WixToolset.Data.WindowsInstaller.Rows; using Xunit; + using Wid = WixToolset.Data.WindowsInstaller; + public class SerializeFixture { [Fact] @@ -383,5 +386,42 @@ namespace WixToolsetTest.Data File.Delete(path); } } + + [Fact] + public void CanSaveAndLoadWindowsInstallerData() + { + var sln = new SourceLineNumber("test.wxs", 1); + var windowsInstallerData = new Wid.WindowsInstallerData(sln) + { + Type = OutputType.Product, + }; + + var fileTable = windowsInstallerData.EnsureTable(Wid.WindowsInstallerTableDefinitions.File); + var fileRow = (FileRow)fileTable.CreateRow(sln); + fileRow.File = "TestFile"; + + var path = Path.GetTempFileName(); + try + { + using (var wixout = WixOutput.Create(path)) + { + windowsInstallerData.Save(wixout); + } + + var loaded = Wid.WindowsInstallerData.Load(path); + + var loadedTable = Assert.Single(loaded.Tables); + Assert.Equal(Wid.WindowsInstallerTableDefinitions.File.Name, loadedTable.Name); + + var loadedRow = Assert.Single(loadedTable.Rows); + var loadedFileRow = Assert.IsType(loadedRow); + + Assert.Equal("TestFile", loadedFileRow.File); + } + finally + { + File.Delete(path); + } + } } } -- cgit v1.2.3-55-g6feb From f4b129a9039f54cff0ac315b39adcb17c8528ae8 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 30 May 2020 14:27:17 -0700 Subject: Add Row.CopyTo() --- src/WixToolset.Data/WindowsInstaller/Row.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Row.cs b/src/WixToolset.Data/WindowsInstaller/Row.cs index af0a323e..8c847c5b 100644 --- a/src/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/WixToolset.Data/WindowsInstaller/Row.cs @@ -236,6 +236,18 @@ namespace WixToolset.Data.WindowsInstaller return identical; } + /// + /// Copies this row to the target row. + /// + /// Row to copy data to. + public void CopyTo(Row target) + { + for (var i = 0; i < this.Fields.Length; i++) + { + target[i] = this[i]; + } + } + /// /// Returns a string representation of the Row. /// -- cgit v1.2.3-55-g6feb From 29be4a31c4cf1268d847d4c37c70487f29b84701 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 30 May 2020 14:28:21 -0700 Subject: Remove unused WixMediaRow --- .../WindowsInstaller/Rows/WixMediaRow.cs | 60 ---------------------- .../WindowsInstallerTableDefinitions.cs | 15 ------ 2 files changed, 75 deletions(-) delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixMediaRow.cs (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaRow.cs deleted file mode 100644 index dfe40c35..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaRow.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixMedia table. - /// - public sealed class WixMediaRow : Row - { - /// - /// Creates a WixMedia row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixMediaRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixMedia row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public WixMediaRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the disk id for this media. - /// - /// Disk id for the media. - public int DiskId - { - get { return (int)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the compression level for this media row. - /// - /// Compression level. - public CompressionLevel? CompressionLevel - { - get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the layout location for this media row. - /// - /// Layout location to the root of the media. - public string Layout - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index 3a1a8916..ceeaf2fa 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1925,20 +1925,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: true ); - public static readonly TableDefinition WixMedia = new TableDefinition( - "WixMedia", - null, - new[] - { - new ColumnDefinition("DiskId_", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("CompressionLevel", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 4), - new ColumnDefinition("Layout", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - strongRowType: typeof(WixMediaRow), - tupleIdIsPrimaryKey: false - ); - public static readonly TableDefinition WixMediaTemplate = new TableDefinition( "WixMediaTemplate", TupleDefinitions.WixMediaTemplate, @@ -2353,7 +2339,6 @@ namespace WixToolset.Data.WindowsInstaller WixFragment, WixInstanceComponent, WixInstanceTransforms, - WixMedia, WixMediaTemplate, WixMerge, WixOrdering, -- cgit v1.2.3-55-g6feb From 4a8dc1f4d55278abdff056bb2a332ffec0f60c90 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 3 Jun 2020 02:04:35 -0700 Subject: Redesign CustomTable tuples to enable file resolution in Core --- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 12 +- src/WixToolset.Data/Tuples/WixCustomRowTuple.cs | 56 ------- .../Tuples/WixCustomTableCellTuple.cs | 68 ++++++++ .../Tuples/WixCustomTableColumnTuple.cs | 173 +++++++++++++++++++++ src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 92 +---------- .../WindowsInstallerTableDefinitions.cs | 38 ----- 6 files changed, 253 insertions(+), 186 deletions(-) delete mode 100644 src/WixToolset.Data/Tuples/WixCustomRowTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index 67393f04..a91b3f8f 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -144,8 +144,9 @@ namespace WixToolset.Data WixComplexReference, WixComponentGroup, WixComponentSearch, - WixCustomRow, WixCustomTable, + WixCustomTableCell, + WixCustomTableColumn, WixDeltaPatchFile, WixDeltaPatchSymbolPaths, WixDependencyProvider, @@ -613,12 +614,15 @@ namespace WixToolset.Data case TupleDefinitionType.WixComponentSearch: return TupleDefinitions.WixComponentSearch; - case TupleDefinitionType.WixCustomRow: - return TupleDefinitions.WixCustomRow; - case TupleDefinitionType.WixCustomTable: return TupleDefinitions.WixCustomTable; + case TupleDefinitionType.WixCustomTableCell: + return TupleDefinitions.WixCustomTableCell; + + case TupleDefinitionType.WixCustomTableColumn: + return TupleDefinitions.WixCustomTableColumn; + case TupleDefinitionType.WixDeltaPatchFile: return TupleDefinitions.WixDeltaPatchFile; diff --git a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs deleted file mode 100644 index c51089e8..00000000 --- a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs +++ /dev/null @@ -1,56 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Tuples; - - public static partial class TupleDefinitions - { - public static readonly IntermediateTupleDefinition WixCustomRow = new IntermediateTupleDefinition( - TupleDefinitionType.WixCustomRow, - new[] - { - new IntermediateFieldDefinition(nameof(WixCustomRowTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomRowTupleFields.FieldData), IntermediateFieldType.String), - }, - typeof(WixCustomRowTuple)); - } -} - -namespace WixToolset.Data.Tuples -{ - public enum WixCustomRowTupleFields - { - Table, - FieldData, - } - - public class WixCustomRowTuple : IntermediateTuple - { - public const char FieldSeparator = '\x85'; - - public WixCustomRowTuple() : base(TupleDefinitions.WixCustomRow, null, null) - { - } - - public WixCustomRowTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomRow, sourceLineNumber, id) - { - } - - public IntermediateField this[WixCustomRowTupleFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)WixCustomRowTupleFields.Table]; - set => this.Set((int)WixCustomRowTupleFields.Table, value); - } - - public string FieldData - { - get => (string)this.Fields[(int)WixCustomRowTupleFields.FieldData]; - set => this.Set((int)WixCustomRowTupleFields.FieldData, value); - } - - public string[] FieldDataSeparated => this.FieldData.Split(FieldSeparator); - } -} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs new file mode 100644 index 00000000..18be675e --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixCustomTableCell = new IntermediateTupleDefinition( + TupleDefinitionType.WixCustomTableCell, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.ColumnRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.RowId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.Data), IntermediateFieldType.String), + }, + typeof(WixCustomTableCellTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixCustomTableCellTupleFields + { + TableRef, + ColumnRef, + RowId, + Data, + } + + public class WixCustomTableCellTuple : IntermediateTuple + { + public WixCustomTableCellTuple() : base(TupleDefinitions.WixCustomTableCell, null, null) + { + } + + public WixCustomTableCellTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTableCell, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableCellTupleFields index] => this.Fields[(int)index]; + + public string TableRef + { + get => (string)this.Fields[(int)WixCustomTableCellTupleFields.TableRef]; + set => this.Set((int)WixCustomTableCellTupleFields.TableRef, value); + } + + public string ColumnRef + { + get => (string)this.Fields[(int)WixCustomTableCellTupleFields.ColumnRef]; + set => this.Set((int)WixCustomTableCellTupleFields.ColumnRef, value); + } + + public string RowId + { + get => (string)this.Fields[(int)WixCustomTableCellTupleFields.RowId]; + set => this.Set((int)WixCustomTableCellTupleFields.RowId, value); + } + + public string Data + { + get => (string)this.Fields[(int)WixCustomTableCellTupleFields.Data]; + set => this.Set((int)WixCustomTableCellTupleFields.Data, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs new file mode 100644 index 00000000..66d3e48f --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs @@ -0,0 +1,173 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixCustomTableColumn = new IntermediateTupleDefinition( + TupleDefinitionType.WixCustomTableColumn, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.MinValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.MaxValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.KeyTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.KeyColumn), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Category), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Set), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Modularize), IntermediateFieldType.Number) + }, + typeof(WixCustomTableColumnTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixCustomTableColumnTupleFields + { + TableRef, + Name, + Type, + Attributes, + Width, + MinValue, + MaxValue, + KeyTable, + KeyColumn, + Category, + Set, + Description, + Modularize, + } + + [Flags] + public enum WixCustomTableColumnTupleAttributes + { + None, + PrimaryKey, + Localizable, + Nullable, + Unreal, + } + + public enum WixCustomTableColumnModularizeType + { + None, + Column, + CompanionFile, + Condition, + ControlEventArgument, + ControlText, + Icon, + Property, + SemicolonDelimited, + } + + public class WixCustomTableColumnTuple : IntermediateTuple + { + public WixCustomTableColumnTuple() : base(TupleDefinitions.WixCustomTableColumn, null, null) + { + } + + public WixCustomTableColumnTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTableColumn, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableColumnTupleFields index] => this.Fields[(int)index]; + + public string TableRef + { + get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.TableRef]; + set => this.Set((int)WixCustomTableColumnTupleFields.TableRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Name]; + set => this.Set((int)WixCustomTableColumnTupleFields.Name, value); + } + + public IntermediateFieldType Type + { + get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnTupleFields.Type].AsNumber(); + set => this.Set((int)WixCustomTableColumnTupleFields.Type, (int)value); + } + + public WixCustomTableColumnTupleAttributes Attributes + { + get => (WixCustomTableColumnTupleAttributes)this.Fields[(int)WixCustomTableColumnTupleFields.Attributes].AsNumber(); + set => this.Set((int)WixCustomTableColumnTupleFields.Attributes, (int)value); + } + + public int Width + { + get => (int)this.Fields[(int)WixCustomTableColumnTupleFields.Width]; + set => this.Set((int)WixCustomTableColumnTupleFields.Width, value); + } + + public long? MinValue + { + get => (long?)this.Fields[(int)WixCustomTableColumnTupleFields.MinValue]; + set => this.Set((int)WixCustomTableColumnTupleFields.MinValue, value); + } + + public long? MaxValue + { + get => (long?)this.Fields[(int)WixCustomTableColumnTupleFields.MaxValue]; + set => this.Set((int)WixCustomTableColumnTupleFields.MaxValue, value); + } + + public string KeyTable + { + get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.KeyTable]; + set => this.Set((int)WixCustomTableColumnTupleFields.KeyTable, value); + } + + public int? KeyColumn + { + get => (int?)this.Fields[(int)WixCustomTableColumnTupleFields.KeyColumn]; + set => this.Set((int)WixCustomTableColumnTupleFields.KeyColumn, value); + } + + public string Category + { + get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Category]; + set => this.Set((int)WixCustomTableColumnTupleFields.Category, value); + } + + public string Set + { + get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Set]; + set => this.Set((int)WixCustomTableColumnTupleFields.Set, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Description]; + set => this.Set((int)WixCustomTableColumnTupleFields.Description, value); + } + + public WixCustomTableColumnModularizeType? Modularize + { + get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnTupleFields.Modularize].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnTupleFields.Modularize, (int?)value); + } + + public bool PrimaryKey => (this.Attributes & WixCustomTableColumnTupleAttributes.PrimaryKey) == WixCustomTableColumnTupleAttributes.PrimaryKey; + + public bool Localizable => (this.Attributes & WixCustomTableColumnTupleAttributes.Localizable) == WixCustomTableColumnTupleAttributes.Localizable; + + public bool Nullable => (this.Attributes & WixCustomTableColumnTupleAttributes.Nullable) == WixCustomTableColumnTupleAttributes.Nullable; + + public bool Unreal => (this.Attributes & WixCustomTableColumnTupleAttributes.Unreal) == WixCustomTableColumnTupleAttributes.Unreal; + } +} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index bfb2031a..b0d12a63 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -10,18 +10,7 @@ namespace WixToolset.Data TupleDefinitionType.WixCustomTable, new[] { - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnCount), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnTypes), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.PrimaryKeys), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.MinValues), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.MaxValues), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.KeyTables), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.KeyColumns), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Categories), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Sets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Descriptions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Modularizations), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Bool), }, typeof(WixCustomTableTuple)); @@ -32,23 +21,14 @@ namespace WixToolset.Data.Tuples { public enum WixCustomTableTupleFields { - ColumnCount, ColumnNames, - ColumnTypes, - PrimaryKeys, - MinValues, - MaxValues, - KeyTables, - KeyColumns, - Categories, - Sets, - Descriptions, - Modularizations, Unreal, } public class WixCustomTableTuple : IntermediateTuple { + public const char ColumnNamesSeparator = '\x85'; + public WixCustomTableTuple() : base(TupleDefinitions.WixCustomTable, null, null) { } @@ -59,82 +39,18 @@ namespace WixToolset.Data.Tuples public IntermediateField this[WixCustomTableTupleFields index] => this.Fields[(int)index]; - public int ColumnCount - { - get => (int)this.Fields[(int)WixCustomTableTupleFields.ColumnCount]; - set => this.Set((int)WixCustomTableTupleFields.ColumnCount, value); - } - public string ColumnNames { get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnNames]; set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); } - public string ColumnTypes - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnTypes]; - set => this.Set((int)WixCustomTableTupleFields.ColumnTypes, value); - } - - public string PrimaryKeys - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.PrimaryKeys]; - set => this.Set((int)WixCustomTableTupleFields.PrimaryKeys, value); - } - - public string MinValues - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.MinValues]; - set => this.Set((int)WixCustomTableTupleFields.MinValues, value); - } - - public string MaxValues - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.MaxValues]; - set => this.Set((int)WixCustomTableTupleFields.MaxValues, value); - } - - public string KeyTables - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyTables]; - set => this.Set((int)WixCustomTableTupleFields.KeyTables, value); - } - - public string KeyColumns - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyColumns]; - set => this.Set((int)WixCustomTableTupleFields.KeyColumns, value); - } - - public string Categories - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Categories]; - set => this.Set((int)WixCustomTableTupleFields.Categories, value); - } - - public string Sets - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Sets]; - set => this.Set((int)WixCustomTableTupleFields.Sets, value); - } - - public string Descriptions - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Descriptions]; - set => this.Set((int)WixCustomTableTupleFields.Descriptions, value); - } - - public string Modularizations - { - get => (string)this.Fields[(int)WixCustomTableTupleFields.Modularizations]; - set => this.Set((int)WixCustomTableTupleFields.Modularizations, value); - } - public bool Unreal { get => (bool)this.Fields[(int)WixCustomTableTupleFields.Unreal]; set => this.Set((int)WixCustomTableTupleFields.Unreal, value); } + + public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); } } diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index ceeaf2fa..86db0f0a 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1733,42 +1733,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition WixCustomRow = new TableDefinition( - "WixCustomRow", - TupleDefinitions.WixCustomRow, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 62, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("FieldData", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixCustomTable = new TableDefinition( - "WixCustomTable", - TupleDefinitions.WixCustomTable, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ColumnCount", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ColumnNames", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ColumnTypes", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("MinValues", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("MaxValues", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("KeyTables", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("KeyColumns", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Categories", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Sets", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Descriptions", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Modularizations", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("BootstrapperApplicationData", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - public static readonly TableDefinition WixDirectory = new TableDefinition( "WixDirectory", null, @@ -2325,8 +2289,6 @@ namespace WixToolset.Data.WindowsInstaller WixComplexReference, WixComponentGroup, WixControl, - WixCustomRow, - WixCustomTable, WixDirectory, WixEnsureTable, WixFeatureGroup, -- cgit v1.2.3-55-g6feb From 58791d3dbffce2a96280e08fc2d36ab69571d02c Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 4 Jun 2020 10:18:50 -0700 Subject: Add SequenceTable.WindowsInstallerTableName() and other minor clean up --- .../WindowsInstaller/SequenceTableExtensions.cs | 17 +++++++++ src/WixToolset.Data/WindowsInstaller/Table.cs | 42 +++++++++++----------- 2 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs b/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs new file mode 100644 index 00000000..099d722a --- /dev/null +++ b/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs @@ -0,0 +1,17 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using WixToolset.Data.Tuples; + + /// + /// Enhancements to the SequenceTable enum. + /// + public static class SequenceTableExtensions + { + /// + /// Gets the SequenceTable enum as the Windows Installer table name. + /// + public static string WindowsInstallerTableName(this SequenceTable sequence) => (sequence == SequenceTable.AdvertiseExecuteSequence) ? "AdvtExecuteSequence" : sequence.ToString(); + } +} diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs index ca6fe3ba..714be20f 100644 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ b/src/WixToolset.Data/WindowsInstaller/Table.cs @@ -59,6 +59,27 @@ namespace WixToolset.Data.WindowsInstaller return row; } + /// + /// Validates the rows of this OutputTable and throws if it collides on + /// primary keys. + /// + public void ValidateRows() + { + var primaryKeys = new Dictionary(); + + foreach (var row in this.Rows) + { + var primaryKey = row.GetPrimaryKey(); + + if (primaryKeys.TryGetValue(primaryKey, out var collisionSourceLineNumber)) + { + throw new WixException(ErrorMessages.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); + } + + primaryKeys.Add(primaryKey, row.SourceLineNumbers); + } + } + /// /// Parse a table from the xml. /// @@ -165,26 +186,5 @@ namespace WixToolset.Data.WindowsInstaller writer.WriteEndElement(); } - - /// - /// Validates the rows of this OutputTable and throws if it collides on - /// primary keys. - /// - public void ValidateRows() - { - var primaryKeys = new Dictionary(); - - foreach (var row in this.Rows) - { - var primaryKey = row.GetPrimaryKey(); - - if (primaryKeys.TryGetValue(primaryKey, out var collisionSourceLineNumber)) - { - throw new WixException(ErrorMessages.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); - } - - primaryKeys.Add(primaryKey, row.SourceLineNumbers); - } - } } } -- cgit v1.2.3-55-g6feb From 021565eca7be6c3307821bd9d4500a73a5c1c68f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 4 Jun 2020 10:19:31 -0700 Subject: Remove obsolete rows --- .../Rows/WixComplexReferenceRow.cs | 207 --------------------- .../WindowsInstaller/Rows/WixMergeRow.cs | 147 --------------- .../WindowsInstaller/Rows/WixPropertyRow.cs | 123 ------------ .../WindowsInstaller/Rows/WixSimpleReferenceRow.cs | 61 ------ .../WindowsInstallerTableDefinitions.cs | 104 ----------- 5 files changed, 642 deletions(-) delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixMergeRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixSimpleReferenceRow.cs (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs deleted file mode 100644 index 0e942724..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixComplexReferenceRow.cs +++ /dev/null @@ -1,207 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using System.Diagnostics.CodeAnalysis; - - /// - /// Specialization of a row for the WixComplexReference table. - /// - public sealed class WixComplexReferenceRow : Row, IComparable - { - /// - /// Creates a WixComplexReferenceRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixComplexReferenceRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - public WixComplexReferenceRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) - : base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets the parent type of the complex reference. - /// - /// Parent type of the complex reference. - public ComplexReferenceParentType ParentType - { - get { return (ComplexReferenceParentType)Enum.ToObject(typeof(ComplexReferenceParentType), (int)this.Fields[1].Data); } - set { this.Fields[1].Data = (int)value; } - } - - /// - /// Gets or sets the parent identifier of the complex reference. - /// - /// Parent identifier of the complex reference. - public string ParentId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets the parent language of the complex reference. - /// - /// Parent language of the complex reference. - public string ParentLanguage - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets the child type of the complex reference. - /// - /// Child type of the complex reference. - public ComplexReferenceChildType ChildType - { - get { return (ComplexReferenceChildType)Enum.ToObject(typeof(ComplexReferenceChildType), (int)this.Fields[4].Data); } - set { this.Fields[4].Data = (int)value; } - } - - /// - /// Gets the child identifier of the complex reference. - /// - /// Child identifier of the complex reference. - public string ChildId - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets if this is the primary complex reference. - /// - /// true if primary complex reference. - public bool IsPrimary - { - get - { - return (0x1 == ((int)this.Fields[5].Data & 0x1)); - } - - set - { - if (null == this.Fields[5].Data) - { - this.Fields[5].Data = 0; - } - - if (value) - { - this.Fields[5].Data = (int)this.Fields[5].Data | 0x1; - } - else - { - this.Fields[5].Data = (int)this.Fields[5].Data & ~0x1; - } - } - } - - /// - /// Determines if two complex references are equivalent. - /// - /// Complex reference to compare. - /// True if complex references are equivalent. - public override bool Equals(object obj) - { - return 0 == this.CompareTo(obj); - } - - /// - /// Gets the hash code for the complex reference. - /// - /// Hash code for the complex reference. - public override int GetHashCode() - { - return this.ChildType.GetHashCode() ^ this.ChildId.GetHashCode() ^ this.ParentType.GetHashCode() ^ this.ParentLanguage.GetHashCode() ^ this.ParentId.GetHashCode() ^ this.IsPrimary.GetHashCode(); - } - - /// - /// Compares two complex references. - /// - /// Complex reference to compare to. - /// Zero if the objects are equivalent, negative number if the provided object is less, positive if greater. - public int CompareTo(object obj) - { - int comparison = this.CompareToWithoutConsideringPrimary(obj); - if (0 == comparison) - { - comparison = ((WixComplexReferenceRow)obj).IsPrimary.CompareTo(this.IsPrimary); // Note: the order of these is purposely switched to ensure that "Yes" is lower than "No" and "NotSet" - } - return comparison; - } - - /// - /// Compares two complex references without considering the primary bit. - /// - /// Complex reference to compare to. - /// Zero if the objects are equivalent, negative number if the provided object is less, positive if greater. - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")] - public int CompareToWithoutConsideringPrimary(object obj) - { - var other = obj as WixComplexReferenceRow ?? throw new ArgumentNullException(nameof(obj)); - - int comparison = this.ChildType - other.ChildType; - if (0 == comparison) - { - comparison = String.Compare(this.ChildId, other.ChildId, StringComparison.Ordinal); - if (0 == comparison) - { - comparison = this.ParentType - other.ParentType; - if (0 == comparison) - { - string thisParentLanguage = null == this.ParentLanguage ? String.Empty : this.ParentLanguage; - string otherParentLanguage = null == other.ParentLanguage ? String.Empty : other.ParentLanguage; - comparison = String.Compare(thisParentLanguage, otherParentLanguage, StringComparison.Ordinal); - if (0 == comparison) - { - comparison = String.Compare(this.ParentId, other.ParentId, StringComparison.Ordinal); - } - } - } - } - - return comparison; - } - - /// - /// Creates a shallow copy of the ComplexReference. - /// - /// A shallow copy of the ComplexReference. - public WixComplexReferenceRow Clone() - { - WixComplexReferenceRow wixComplexReferenceRow = new WixComplexReferenceRow(this.SourceLineNumbers, this.Table); - wixComplexReferenceRow.ParentType = this.ParentType; - wixComplexReferenceRow.ParentId = this.ParentId; - wixComplexReferenceRow.ParentLanguage = this.ParentLanguage; - wixComplexReferenceRow.ChildType = this.ChildType; - wixComplexReferenceRow.ChildId = this.ChildId; - wixComplexReferenceRow.IsPrimary = this.IsPrimary; - - return wixComplexReferenceRow; - } - - /// - /// Changes all of the parent references to point to the passed in parent reference. - /// - /// New parent complex reference. - public void Reparent(WixComplexReferenceRow parent) - { - this.ParentId = parent.ParentId; - this.ParentLanguage = parent.ParentLanguage; - this.ParentType = parent.ParentType; - - if (!this.IsPrimary) - { - this.IsPrimary = parent.IsPrimary; - } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixMergeRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixMergeRow.cs deleted file mode 100644 index ac60452e..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixMergeRow.cs +++ /dev/null @@ -1,147 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using System.Globalization; - - /// - /// Specialization of a row for tracking merge statements. - /// - public sealed class WixMergeRow : Row - { - /// - /// Creates a Merge row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Merge row belongs to and should get its column definitions from. - public WixMergeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// Creates a Merge row that belongs to a table. - /// Original source lines for this row. - /// Table this Merge row belongs to and should get its column definitions from. - public WixMergeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets and sets the id for a merge row. - /// - /// Id for the row. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the language for a merge row. - /// - /// Language for the row. - public string Language - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets and sets the directory for a merge row. - /// - /// Direcotory for the row. - public string Directory - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets and sets the path to the merge module for a merge row. - /// - /// Source path for the row. - public string SourceFile - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets and sets the disk id the merge module should be placed on for a merge row. - /// - /// Disk identifier for row. - public int DiskId - { - get { return (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets and sets the compression value for a merge row. - /// - /// Compression for a merge row. - public YesNoType FileCompression - { - get - { - if (null == this.Fields[5].Data) - { - return YesNoType.NotSet; - } - else if (1 == (int)this.Fields[5].Data) - { - return YesNoType.Yes; - } - else if (0 == (int)this.Fields[5].Data) - { - return YesNoType.No; - } - else - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_MergeTableFileCompressionColumnContainsInvalidValue, this.Fields[5].Data)); - } - } - set - { - if (YesNoType.Yes == value) - { - this.Fields[5].Data = 1; - } - else if (YesNoType.No == value) - { - this.Fields[5].Data = 0; - } - else if (YesNoType.NotSet == value) - { - this.Fields[5].Data = null; - } - else - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue, value)); - } - } - } - - /// - /// Gets and sets the configuration data for a merge row. - /// - /// Comma delimited string of "name=value" pairs. - public string ConfigurationData - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets and sets the primary feature for a merge row. - /// - /// The primary feature for a merge row. - public string Feature - { - get { return (string)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs deleted file mode 100644 index 8a54d36e..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixPropertyRow.cs +++ /dev/null @@ -1,123 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using System.Globalization; - - /// - /// Specialization of a row for the WixProperty table. - /// - public sealed class WixPropertyRow : Row - { - /// Creates a WixProperty row that belongs to a table. - /// Original source lines for this row. - /// Table this WixProperty row belongs to and should get its column definitions from. - public WixPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public WixPropertyRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets and sets the id for this property row. - /// - /// Id for the property. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets if this is an admin property row. - /// - /// Flag if this is an admin property. - public bool Admin - { - get - { - return (0x1 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x1)); - } - - set - { - if (null == this.Fields[1].Data) - { - this.Fields[1].Data = 0; - } - - if (value) - { - this.Fields[1].Data = (int)this.Fields[1].Data | 0x1; - } - else - { - this.Fields[1].Data = (int)this.Fields[1].Data & ~0x1; - } - } - } - - /// - /// Gets and sets if this is a hidden property row. - /// - /// Flag if this is a hidden property. - public bool Hidden - { - get - { - return (0x2 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x2)); - } - - set - { - if (null == this.Fields[1].Data) - { - this.Fields[1].Data = 0; - } - - if (value) - { - this.Fields[1].Data = (int)this.Fields[1].Data | 0x2; - } - else - { - this.Fields[1].Data = (int)this.Fields[1].Data & ~0x2; - } - } - } - - /// - /// Gets and sets if this is a secure property row. - /// - /// Flag if this is a secure property. - public bool Secure - { - get - { - return (0x4 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x4)); - } - - set - { - if (null == this.Fields[1].Data) - { - this.Fields[1].Data = 0; - } - - if (value) - { - this.Fields[1].Data = (int)this.Fields[1].Data | 0x4; - } - else - { - this.Fields[1].Data = (int)this.Fields[1].Data & ~0x4; - } - } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixSimpleReferenceRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixSimpleReferenceRow.cs deleted file mode 100644 index bf7dfb0e..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixSimpleReferenceRow.cs +++ /dev/null @@ -1,61 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - - /// - /// Specialization of a row for the WixSimpleReference table. - /// - public sealed class WixSimpleReferenceRow : Row - { - /// - /// Creates a WixSimpleReferenceRow that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Creates a WixSimpleReferenceRow that belongs to a table. - /// - /// Original source lines for this row. - /// Table definitions for this row. - public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinitions) - : base(sourceLineNumbers, tableDefinitions) - { - } - - /// - /// Gets or sets the primary keys of the simple reference. - /// - /// The primary keys of the simple reference. - public string PrimaryKeys - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets the symbolic name. - /// - /// Symbolic name. - public string SymbolicName - { - get { return String.Concat(this.TableName, ":", this.PrimaryKeys); } - } - - /// - /// Gets or sets the table name of the simple reference. - /// - /// The table name of the simple reference. - public string TableName - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index 86db0f0a..7e6b2cc9 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1692,23 +1692,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition WixComplexReference = new TableDefinition( - "WixComplexReference", - TupleDefinitions.WixComplexReference, - new[] - { - new ColumnDefinition("Parent", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown, forceLocalizable: true), - new ColumnDefinition("ParentAttributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ParentLanguage", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Child", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown, forceLocalizable: true), - new ColumnDefinition("ChildAttributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - strongRowType: typeof(WixComplexReferenceRow), - tupleIdIsPrimaryKey: false - ); - public static readonly TableDefinition WixComponentGroup = new TableDefinition( "WixComponentGroup", TupleDefinitions.WixComponentGroup, @@ -1793,18 +1776,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition WixFeatureModules = new TableDefinition( - "WixFeatureModules", - TupleDefinitions.WixFeatureModules, - new[] - { - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("WixMerge_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - public static readonly TableDefinition WixFile = new TableDefinition( "WixFile", null, @@ -1906,25 +1877,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition WixMerge = new TableDefinition( - "WixMerge", - TupleDefinitions.WixMerge, - new[] - { - new ColumnDefinition("WixMerge", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, forceLocalizable: true), - new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("FileCompression", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("ConfigurationData", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Feature_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - strongRowType: typeof(WixMergeRow), - tupleIdIsPrimaryKey: true - ); - public static readonly TableDefinition WixOrdering = new TableDefinition( "WixOrdering", TupleDefinitions.WixOrdering, @@ -1970,55 +1922,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition WixProperty = new TableDefinition( - "WixProperty", - TupleDefinitions.WixProperty, - new[] - { - new ColumnDefinition("Property_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - strongRowType: typeof(WixPropertyRow), - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixSimpleReference = new TableDefinition( - "WixSimpleReference", - TupleDefinitions.WixSimpleReference, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - strongRowType: typeof(WixSimpleReferenceRow), - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixSuppressAction = new TableDefinition( - "WixSuppressAction", - TupleDefinitions.WixSuppressAction, - new[] - { - new ColumnDefinition("SequenceTable", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixSuppressModularization = new TableDefinition( - "WixSuppressModularization", - TupleDefinitions.WixSuppressModularization, - new[] - { - new ColumnDefinition("WixSuppressModularization", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - public static readonly TableDefinition WixPatchBaseline = new TableDefinition( "WixPatchBaseline", TupleDefinitions.WixPatchBaseline, @@ -2286,7 +2189,6 @@ namespace WixToolset.Data.WindowsInstaller ExternalFiles, WixAction, WixBBControl, - WixComplexReference, WixComponentGroup, WixControl, WixDirectory, @@ -2294,7 +2196,6 @@ namespace WixToolset.Data.WindowsInstaller WixFeatureGroup, WixPatchFamilyGroup, WixGroup, - WixFeatureModules, WixFile, WixBindUpdatedFiles, WixBuildInfo, @@ -2302,14 +2203,9 @@ namespace WixToolset.Data.WindowsInstaller WixInstanceComponent, WixInstanceTransforms, WixMediaTemplate, - WixMerge, WixOrdering, WixDeltaPatchFile, WixDeltaPatchSymbolPaths, - WixProperty, - WixSimpleReference, - WixSuppressAction, - WixSuppressModularization, WixPatchBaseline, WixPatchRef, WixPatchId, -- cgit v1.2.3-55-g6feb From 47a086901d4227ad8d63b82602e4e0132a295741 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 8 Jun 2020 16:28:58 -0700 Subject: Add error when extension cannot be found in cache --- src/WixToolset.Data/ErrorMessages.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index aef2ab66..cb8d5f8f 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -1239,6 +1239,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.InvalidEmbeddedUIFileName, "The EmbeddedUI/@Name attribute value, '{0}', does not contain an extension. Windows Installer will not load an embedded UI DLL without an extension. Include an extension or just omit the Name attribute so it defaults to the file name portion of the Source attribute value.", codepage); } + public static Message CouldNotFindExtensionInPaths(string extensionPath, IEnumerable checkedPaths) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be found. Checked paths: {1}", extensionPath, String.Join(", ", checkedPaths)); + } + public static Message InvalidExtension(string extension) { return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be loaded.", extension); -- cgit v1.2.3-55-g6feb From eecd0353a70e74f2776c25f8b89e86f08c013168 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 10 Jun 2020 07:40:38 -0700 Subject: Fix flag enums to actually be flags --- src/WixToolset.Data/Tuples/FileTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs | 2 +- src/WixToolset.Data/Tuples/WixBundleTuple.cs | 10 +++++----- src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs | 10 +++++----- 4 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index caae7b34..95776257 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -78,7 +78,7 @@ namespace WixToolset.Data.Tuples [Flags] public enum FileTupleAttributes : int { - None, + None = 0x0, ReadOnly = 0x1, Hidden = 0x2, System = 0x4, diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs index e9a087f3..0d5cb0fe 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs @@ -38,7 +38,7 @@ namespace WixToolset.Data.Tuples [Flags] public enum WixBundleRelatedPackageAttributes { - None, + None = 0x0, OnlyDetect = 0x1, MinInclusive = 0x2, MaxInclusive = 0x4, diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs index dcaea6bc..01318d0c 100644 --- a/src/WixToolset.Data/Tuples/WixBundleTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleTuple.cs @@ -70,11 +70,11 @@ namespace WixToolset.Data.Tuples [Flags] public enum WixBundleAttributes { - None, - DisableModify, - DisableRemove, - SingleChangeUninstallButton, - PerMachine, + None = 0x0, + DisableModify = 0x1, + DisableRemove = 0x2, + SingleChangeUninstallButton = 0x4, + PerMachine = 0x8, } public class WixBundleTuple : IntermediateTuple diff --git a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs index 66d3e48f..17cf7f28 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs @@ -52,11 +52,11 @@ namespace WixToolset.Data.Tuples [Flags] public enum WixCustomTableColumnTupleAttributes { - None, - PrimaryKey, - Localizable, - Nullable, - Unreal, + None = 0x0, + PrimaryKey = 0x1, + Localizable = 0x2, + Nullable = 0x4, + Unreal = 0x8, } public enum WixCustomTableColumnModularizeType -- cgit v1.2.3-55-g6feb From 9ebc094931aa473136c56c095a1170948f481f2e Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 10 Jun 2020 21:38:18 -0400 Subject: Add error message when tuple can't be found. --- src/WixToolset.Data/ErrorMessages.cs | 6 ++++++ src/WixToolset.Data/IntermediateTuple.cs | 7 ++++++- src/WixToolset.Data/WarningMessages.cs | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index cb8d5f8f..d0736628 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -2279,6 +2279,11 @@ namespace WixToolset.Data return Message(null, Ids.IntermediatesMustBeResolved, "Intermediates being bound must have been resolved. This intermediate was not resolved: {0}", invalidIntermediate); } + public static Message UnknownSymbolType(string symbolName) + { + return Message(null, Ids.UnknownSymbolType, "Could not deserialize symbol of type type '{0}' because it is not a standard symbol type or one provided by a loaded extension.", symbolName); + } + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) { return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); @@ -2680,6 +2685,7 @@ namespace WixToolset.Data IntermediatesMustBeResolved = 396, MissingBundleSearch = 397, CircularSearchReference = 398, + UnknownSymbolType = 399, } } } diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs index 8a5858ee..9146b2be 100644 --- a/src/WixToolset.Data/IntermediateTuple.cs +++ b/src/WixToolset.Data/IntermediateTuple.cs @@ -165,7 +165,12 @@ namespace WixToolset.Data var id = (idJson == null) ? null : Identifier.Deserialize(idJson); var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); - creator.TryGetTupleDefinitionByName(definitionName, out var definition); // TODO: this isn't sufficient. + // TODO: this isn't sufficient. + if (!creator.TryGetTupleDefinitionByName(definitionName, out var definition)) + { + throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); + } + var tuple = definition.CreateTuple(sourceLineNumbers, id); for (var i = 0; i < fieldsJson.Count && i < tuple.Fields.Length; ++i) diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 55bf2c2c..b31f5aaf 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -504,7 +504,7 @@ namespace WixToolset.Data public static Message RequiresMsi500forArmPackage(SourceLineNumber sourceLineNumbers) { - return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an Arm package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning."); + return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an ARM or ARM64 package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning."); } public static Message ReservedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) -- cgit v1.2.3-55-g6feb From 2a9fdc41d80dc34f63239eb7dbb2c1be0b61c08d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 12 Jun 2020 06:48:35 -0700 Subject: Enumerate custom column categories and fix serialization code by hand --- src/WixToolset.Data/Serialize/wix.cs | 206 ++++++++++----------- .../Tuples/WixCustomTableColumnTuple.cs | 36 +++- 2 files changed, 136 insertions(+), 106 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Serialize/wix.cs b/src/WixToolset.Data/Serialize/wix.cs index 0daa7335..478159ab 100644 --- a/src/WixToolset.Data/Serialize/wix.cs +++ b/src/WixToolset.Data/Serialize/wix.cs @@ -55497,157 +55497,157 @@ namespace WixToolset.Data.Serialize } if (("Text" == value)) { - parsedValue = CategoryType.Text; + parsedValue = CategoryType.text; } else { if (("UpperCase" == value)) { - parsedValue = CategoryType.UpperCase; + parsedValue = CategoryType.upperCase; } else { if (("LowerCase" == value)) { - parsedValue = CategoryType.LowerCase; + parsedValue = CategoryType.lowerCase; } else { if (("Integer" == value)) { - parsedValue = CategoryType.Integer; + parsedValue = CategoryType.integer; } else { if (("DoubleInteger" == value)) { - parsedValue = CategoryType.DoubleInteger; + parsedValue = CategoryType.doubleInteger; } else { if (("TimeDate" == value)) { - parsedValue = CategoryType.TimeDate; + parsedValue = CategoryType.timeDate; } else { if (("Identifier" == value)) { - parsedValue = CategoryType.Identifier; + parsedValue = CategoryType.identifier; } else { if (("Property" == value)) { - parsedValue = CategoryType.Property; + parsedValue = CategoryType.property; } else { if (("Filename" == value)) { - parsedValue = CategoryType.Filename; + parsedValue = CategoryType.filename; } else { if (("WildCardFilename" == value)) { - parsedValue = CategoryType.WildCardFilename; + parsedValue = CategoryType.wildCardFilename; } else { if (("Path" == value)) { - parsedValue = CategoryType.Path; + parsedValue = CategoryType.path; } else { if (("Paths" == value)) { - parsedValue = CategoryType.Paths; + parsedValue = CategoryType.paths; } else { if (("AnyPath" == value)) { - parsedValue = CategoryType.AnyPath; + parsedValue = CategoryType.anyPath; } else { if (("DefaultDir" == value)) { - parsedValue = CategoryType.DefaultDir; + parsedValue = CategoryType.defaultDir; } else { if (("RegPath" == value)) { - parsedValue = CategoryType.RegPath; + parsedValue = CategoryType.regPath; } else { if (("Formatted" == value)) { - parsedValue = CategoryType.Formatted; + parsedValue = CategoryType.formatted; } else { if (("FormattedSddl" == value)) { - parsedValue = CategoryType.FormattedSddl; + parsedValue = CategoryType.formattedSddl; } else { if (("Template" == value)) { - parsedValue = CategoryType.Template; + parsedValue = CategoryType.template; } else { if (("Condition" == value)) { - parsedValue = CategoryType.Condition; + parsedValue = CategoryType.condition; } else { if (("Guid" == value)) { - parsedValue = CategoryType.Guid; + parsedValue = CategoryType.guid; } else { if (("Version" == value)) { - parsedValue = CategoryType.Version; + parsedValue = CategoryType.version; } else { if (("Language" == value)) { - parsedValue = CategoryType.Language; + parsedValue = CategoryType.language; } else { if (("Binary" == value)) { - parsedValue = CategoryType.Binary; + parsedValue = CategoryType.binary; } else { if (("CustomSource" == value)) { - parsedValue = CategoryType.CustomSource; + parsedValue = CategoryType.customSource; } else { if (("Cabinet" == value)) { - parsedValue = CategoryType.Cabinet; + parsedValue = CategoryType.cabinet; } else { if (("Shortcut" == value)) { - parsedValue = CategoryType.Shortcut; + parsedValue = CategoryType.shortcut; } else { @@ -55834,109 +55834,109 @@ namespace WixToolset.Data.Serialize } if (this.categoryFieldSet) { - if ((this.categoryField == CategoryType.Text)) + if ((this.categoryField == CategoryType.text)) { - writer.WriteAttributeString("Category", "Text"); + writer.WriteAttributeString("Category", "text"); } - if ((this.categoryField == CategoryType.UpperCase)) + if ((this.categoryField == CategoryType.upperCase)) { - writer.WriteAttributeString("Category", "UpperCase"); + writer.WriteAttributeString("Category", "upperCase"); } - if ((this.categoryField == CategoryType.LowerCase)) + if ((this.categoryField == CategoryType.lowerCase)) { - writer.WriteAttributeString("Category", "LowerCase"); + writer.WriteAttributeString("Category", "lowerCase"); } - if ((this.categoryField == CategoryType.Integer)) + if ((this.categoryField == CategoryType.integer)) { - writer.WriteAttributeString("Category", "Integer"); + writer.WriteAttributeString("Category", "integer"); } - if ((this.categoryField == CategoryType.DoubleInteger)) + if ((this.categoryField == CategoryType.doubleInteger)) { - writer.WriteAttributeString("Category", "DoubleInteger"); + writer.WriteAttributeString("Category", "doubleInteger"); } - if ((this.categoryField == CategoryType.TimeDate)) + if ((this.categoryField == CategoryType.timeDate)) { - writer.WriteAttributeString("Category", "TimeDate"); + writer.WriteAttributeString("Category", "timeDate"); } - if ((this.categoryField == CategoryType.Identifier)) + if ((this.categoryField == CategoryType.identifier)) { - writer.WriteAttributeString("Category", "Identifier"); + writer.WriteAttributeString("Category", "identifier"); } - if ((this.categoryField == CategoryType.Property)) + if ((this.categoryField == CategoryType.property)) { - writer.WriteAttributeString("Category", "Property"); + writer.WriteAttributeString("Category", "property"); } - if ((this.categoryField == CategoryType.Filename)) + if ((this.categoryField == CategoryType.filename)) { - writer.WriteAttributeString("Category", "Filename"); + writer.WriteAttributeString("Category", "filename"); } - if ((this.categoryField == CategoryType.WildCardFilename)) + if ((this.categoryField == CategoryType.wildCardFilename)) { - writer.WriteAttributeString("Category", "WildCardFilename"); + writer.WriteAttributeString("Category", "wildCardFilename"); } - if ((this.categoryField == CategoryType.Path)) + if ((this.categoryField == CategoryType.path)) { - writer.WriteAttributeString("Category", "Path"); + writer.WriteAttributeString("Category", "path"); } - if ((this.categoryField == CategoryType.Paths)) + if ((this.categoryField == CategoryType.paths)) { - writer.WriteAttributeString("Category", "Paths"); + writer.WriteAttributeString("Category", "paths"); } - if ((this.categoryField == CategoryType.AnyPath)) + if ((this.categoryField == CategoryType.anyPath)) { - writer.WriteAttributeString("Category", "AnyPath"); + writer.WriteAttributeString("Category", "anyPath"); } - if ((this.categoryField == CategoryType.DefaultDir)) + if ((this.categoryField == CategoryType.defaultDir)) { - writer.WriteAttributeString("Category", "DefaultDir"); + writer.WriteAttributeString("Category", "defaultDir"); } - if ((this.categoryField == CategoryType.RegPath)) + if ((this.categoryField == CategoryType.regPath)) { - writer.WriteAttributeString("Category", "RegPath"); + writer.WriteAttributeString("Category", "regPath"); } - if ((this.categoryField == CategoryType.Formatted)) + if ((this.categoryField == CategoryType.formatted)) { - writer.WriteAttributeString("Category", "Formatted"); + writer.WriteAttributeString("Category", "formatted"); } - if ((this.categoryField == CategoryType.FormattedSddl)) + if ((this.categoryField == CategoryType.formattedSddl)) { - writer.WriteAttributeString("Category", "FormattedSddl"); + writer.WriteAttributeString("Category", "formattedSddl"); } - if ((this.categoryField == CategoryType.Template)) + if ((this.categoryField == CategoryType.template)) { - writer.WriteAttributeString("Category", "Template"); + writer.WriteAttributeString("Category", "template"); } - if ((this.categoryField == CategoryType.Condition)) + if ((this.categoryField == CategoryType.condition)) { - writer.WriteAttributeString("Category", "Condition"); + writer.WriteAttributeString("Category", "condition"); } - if ((this.categoryField == CategoryType.Guid)) + if ((this.categoryField == CategoryType.guid)) { - writer.WriteAttributeString("Category", "Guid"); + writer.WriteAttributeString("Category", "guid"); } - if ((this.categoryField == CategoryType.Version)) + if ((this.categoryField == CategoryType.version)) { - writer.WriteAttributeString("Category", "Version"); + writer.WriteAttributeString("Category", "version"); } - if ((this.categoryField == CategoryType.Language)) + if ((this.categoryField == CategoryType.language)) { - writer.WriteAttributeString("Category", "Language"); + writer.WriteAttributeString("Category", "language"); } - if ((this.categoryField == CategoryType.Binary)) + if ((this.categoryField == CategoryType.binary)) { writer.WriteAttributeString("Category", "Binary"); } - if ((this.categoryField == CategoryType.CustomSource)) + if ((this.categoryField == CategoryType.customSource)) { - writer.WriteAttributeString("Category", "CustomSource"); + writer.WriteAttributeString("Category", "customSource"); } - if ((this.categoryField == CategoryType.Cabinet)) + if ((this.categoryField == CategoryType.cabinet)) { - writer.WriteAttributeString("Category", "Cabinet"); + writer.WriteAttributeString("Category", "cabinet"); } - if ((this.categoryField == CategoryType.Shortcut)) + if ((this.categoryField == CategoryType.shortcut)) { - writer.WriteAttributeString("Category", "Shortcut"); + writer.WriteAttributeString("Category", "shortcut"); } } if (this.setFieldSet) @@ -56090,57 +56090,57 @@ namespace WixToolset.Data.Serialize NotSet = -1, - Text, + text, - UpperCase, + upperCase, - LowerCase, + lowerCase, - Integer, + integer, - DoubleInteger, + doubleInteger, - TimeDate, + timeDate, - Identifier, + identifier, - Property, + property, - Filename, + filename, - WildCardFilename, + wildCardFilename, - Path, + path, - Paths, + paths, - AnyPath, + anyPath, - DefaultDir, + defaultDir, - RegPath, + regPath, - Formatted, + formatted, - FormattedSddl, + formattedSddl, - Template, + template, - Condition, + condition, - Guid, + guid, - Version, + version, - Language, + language, - Binary, + binary, - CustomSource, + customSource, - Cabinet, + cabinet, - Shortcut, + shortcut, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] diff --git a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs index 17cf7f28..8f3cf571 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs @@ -59,6 +59,36 @@ namespace WixToolset.Data.Tuples Unreal = 0x8, } + public enum WixCustomTableColumnCategoryType + { + Text, + UpperCase, + LowerCase, + Integer, + DoubleInteger, + TimeDate, + Identifier, + Property, + Filename, + WildCardFilename, + Path, + Paths, + AnyPath, + DefaultDir, + RegPath, + Formatted, + FormattedSddl, + Template, + Condition, + Guid, + Version, + Language, + Binary, + CustomSource, + Cabinet, + Shortcut, + } + public enum WixCustomTableColumnModularizeType { None, @@ -138,10 +168,10 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixCustomTableColumnTupleFields.KeyColumn, value); } - public string Category + public WixCustomTableColumnCategoryType? Category { - get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Category]; - set => this.Set((int)WixCustomTableColumnTupleFields.Category, value); + get => (WixCustomTableColumnCategoryType?)this.Fields[(int)WixCustomTableColumnTupleFields.Category].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnTupleFields.Category, (int?)value); } public string Set -- cgit v1.2.3-55-g6feb From 17fa409d8e275e70c00be5426f6bb564edd3b500 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 12 Jun 2020 13:02:46 -0700 Subject: Remove remaining WixXxxRows --- src/WixToolset.Data/Tuples/BBControlTuple.cs | 4 +- src/WixToolset.Data/Tuples/ControlTuple.cs | 4 +- .../WindowsInstaller/Rows/WixActionRow.cs | 113 ------- .../WindowsInstaller/Rows/WixDeltaPatchFileRow.cs | 142 -------- .../Rows/WixDeltaPatchSymbolPathsRow.cs | 60 ---- .../WindowsInstaller/Rows/WixGroupRow.cs | 67 ---- .../WindowsInstaller/Rows/WixMediaTemplateRow.cs | 86 ----- .../WindowsInstallerTableDefinitions.cs | 373 --------------------- 8 files changed, 4 insertions(+), 845 deletions(-) delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchFileRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchSymbolPathsRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/BBControlTuple.cs b/src/WixToolset.Data/Tuples/BBControlTuple.cs index ba2868ec..cef525bf 100644 --- a/src/WixToolset.Data/Tuples/BBControlTuple.cs +++ b/src/WixToolset.Data/Tuples/BBControlTuple.cs @@ -171,9 +171,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)BBControlTupleFields.Text, value); } - public string SourceFile + public IntermediateFieldPathValue SourceFile { - get => (string)this.Fields[(int)BBControlTupleFields.SourceFile]; + get => this.Fields[(int)BBControlTupleFields.SourceFile].AsPath(); set => this.Set((int)BBControlTupleFields.SourceFile, value); } } diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs index ed61392e..165e40e2 100644 --- a/src/WixToolset.Data/Tuples/ControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlTuple.cs @@ -294,9 +294,9 @@ namespace WixToolset.Data.Tuples set => this.Set((int)ControlTupleFields.TrackDiskSpace, value); } - public string SourceFile + public IntermediateFieldPathValue SourceFile { - get => (string)this.Fields[(int)ControlTupleFields.SourceFile]; + get => this.Fields[(int)ControlTupleFields.SourceFile].AsPath(); set => this.Set((int)ControlTupleFields.SourceFile, value); } } diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs deleted file mode 100644 index 61240820..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixActionRow.cs +++ /dev/null @@ -1,113 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using System.Diagnostics; - using System.Globalization; - using System.Xml; - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the sequence tables. - /// - public sealed class WixActionRow : Row, IComparable - { - /// - /// Instantiates an ActionRow that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Action row belongs to and should get its column definitions from. - public WixActionRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public WixActionRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the name of the action. - /// - /// The name of the action. - public string Action - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets the name of the action this action should be scheduled after. - /// - /// The name of the action this action should be scheduled after. - public string After - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets the name of the action this action should be scheduled before. - /// - /// The name of the action this action should be scheduled before. - public string Before - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the condition of the action. - /// - /// The condition of the action. - public string Condition - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets whether this action is overridable. - /// - /// Whether this action is overridable. - public bool Overridable - { - get { return (1 == Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture)); } - set { this.Fields[6].Data = (value ? 1 : 0); } - } - - /// - /// Gets or sets the sequence number of this action. - /// - /// The sequence number of this action. - public int Sequence - { - get { return Convert.ToInt32(this.Fields[3].Data, CultureInfo.InvariantCulture); } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets of sets the sequence table of this action. - /// - /// The sequence table of this action. - public SequenceTable SequenceTable - { - get { return (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[0].Data); } - set { this.Fields[0].Data = value.ToString(); } - } - - /// - /// Compares the current instance with another object of the same type. - /// - /// Other reference to compare this one to. - /// Returns less than 0 for less than, 0 for equals, and greater than 0 for greater. - public int CompareTo(object obj) - { - WixActionRow otherActionRow = (WixActionRow)obj; - - return this.Sequence.CompareTo(otherActionRow.Sequence); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchFileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchFileRow.cs deleted file mode 100644 index 9edcea92..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchFileRow.cs +++ /dev/null @@ -1,142 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the WixDeltaPatchFile table. - /// - public sealed class WixDeltaPatchFileRow : Row - { - /// - /// Creates a WixDeltaPatchFile row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixDeltaPatchFile row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this File row belongs to and should get its column definitions from. - public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the primary key of the file row. - /// - /// Primary key of the file row. - public string File - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the delta patch retain-length list for the file. - /// - /// RetainLength list for the file. - public string RetainLengths - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the previous delta patch retain-length list for the file. - /// - /// Previous RetainLength list for the file. - public string PreviousRetainLengths - { - get { return this.Fields[1].PreviousData; } - set { this.Fields[1].PreviousData = value; } - } - - /// - /// Gets or sets the delta patch ignore-offset list for the file. - /// - /// IgnoreOffset list for the file. - public string IgnoreOffsets - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the previous delta patch ignore-offset list for the file. - /// - /// Previous IgnoreOffset list for the file. - public string PreviousIgnoreOffsets - { - get { return this.Fields[2].PreviousData; } - set { this.Fields[2].PreviousData = value; } - } - - /// - /// Gets or sets the delta patch ignore-length list for the file. - /// - /// IgnoreLength list for the file. - public string IgnoreLengths - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the previous delta patch ignore-length list for the file. - /// - /// Previous IgnoreLength list for the file. - public string PreviousIgnoreLengths - { - get { return this.Fields[3].PreviousData; } - set { this.Fields[3].PreviousData = value; } - } - - /// - /// Gets or sets the delta patch retain-offset list for the file. - /// - /// RetainOffset list for the file. - public string RetainOffsets - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the previous delta patch retain-offset list for the file. - /// - /// PreviousRetainOffset list for the file. - public string PreviousRetainOffsets - { - get { return this.Fields[4].PreviousData; } - set { this.Fields[4].PreviousData = value; } - } - - /// - /// Gets or sets the symbol paths for the file. - /// - /// SymbolPath list for the file. - /// This is set during binding. - public string Symbols - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the previous symbol paths for the file. - /// - /// PreviousSymbolPath list for the file. - /// This is set during binding. - public string PreviousSymbols - { - get { return (string)this.Fields[5].PreviousData; } - set { this.Fields[5].PreviousData = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchSymbolPathsRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchSymbolPathsRow.cs deleted file mode 100644 index 13899bd0..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixDeltaPatchSymbolPathsRow.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using WixToolset.Data.Tuples; - - /// - /// Specialization of a row for the WixDeltaPatchSymbolPaths table. - /// - public sealed class WixDeltaPatchSymbolPathsRow : Row - { - /// - /// Creates a WixDeltaPatchSymbolPaths row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row belongs to and should get its column definitions from. - public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : - base(sourceLineNumbers, tableDef) - { - } - - /// - /// Creates a WixDeltaPatchSymbolPaths row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - /// - /// Gets or sets the identifier the symbol paths apply to. - /// - /// RetainLength list for the file. - public string Id - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the type of the identifier. - /// - public SymbolPathType Type - { - get { return (SymbolPathType)this.Fields[1].AsInteger(); } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the delta patch symbol paths. - /// - public string SymbolPaths - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs deleted file mode 100644 index bbdbc6b6..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixGroupRow.cs +++ /dev/null @@ -1,67 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - - /// - /// Specialization of a row for the WixGroup table. - /// - public sealed class WixGroupRow : Row - { - /// - /// Creates a WixGroupRow row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - public WixGroupRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - public WixGroupRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) - : base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the parent identifier of the complex reference. - /// - /// Parent identifier of the complex reference. - public string ParentId - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets the parent type of the complex reference. - /// - /// Parent type of the complex reference. - public ComplexReferenceParentType ParentType - { - get { return (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[1].Data); } - set { this.Fields[1].Data = value.ToString(); } - } - - /// - /// Gets the child identifier of the complex reference. - /// - /// Child identifier of the complex reference. - public string ChildId - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets the child type of the complex reference. - /// - /// Child type of the complex reference. - public ComplexReferenceChildType ChildType - { - get { return (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[3].Data); } - set { this.Fields[3].Data = value.ToString(); } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs deleted file mode 100644 index 29479147..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/WixMediaTemplateRow.cs +++ /dev/null @@ -1,86 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the MediaTemplate table. - /// - public sealed class WixMediaTemplateRow : Row - { - /// - /// Creates a MediaTemplate row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this MediaTeplate row belongs to and should get its column definitions from. - public WixMediaTemplateRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - public WixMediaTemplateRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) - : base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the cabinet template name for this media template row. - /// - /// Cabinet name. - public string CabinetTemplate - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the compression level for this media template row. - /// - /// Compression level. - public CompressionLevel? CompressionLevel - { - get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the disk prompt for this media template row. - /// - /// Disk prompt. - public string DiskPrompt - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - - /// - /// Gets or sets the volume label for this media template row. - /// - /// Volume label. - public string VolumeLabel - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the maximum uncompressed media size for this media template row. - /// - /// Disk id. - public int MaximumUncompressedMediaSize - { - get { return (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the Maximum Cabinet Size For Large File Splitting for this media template row. - /// - /// Disk id. - public int MaximumCabinetSizeForLargeFileSplitting - { - get { return (int)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index 7e6b2cc9..2f219b53 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1661,353 +1661,6 @@ namespace WixToolset.Data.WindowsInstaller tupleIdIsPrimaryKey: false ); - public static readonly TableDefinition WixAction = new TableDefinition( - "WixAction", - TupleDefinitions.WixAction, - new[] - { - new ColumnDefinition("SequenceTable", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Unknown, forceLocalizable: true), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Before", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("After", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Overridable", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - strongRowType: typeof(WixActionRow), - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBBControl = new TableDefinition( - "WixBBControl", - null, - new[] - { - new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("BBControl_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixComponentGroup = new TableDefinition( - "WixComponentGroup", - TupleDefinitions.WixComponentGroup, - new[] - { - new ColumnDefinition("WixComponentGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixControl = new TableDefinition( - "WixControl", - null, - new[] - { - new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("SourceFile", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixDirectory = new TableDefinition( - "WixDirectory", - null, - new[] - { - new ColumnDefinition("Directory_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ComponentGuidGenerationSeed", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixEnsureTable = new TableDefinition( - "WixEnsureTable", - TupleDefinitions.WixEnsureTable, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 31, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixFeatureGroup = new TableDefinition( - "WixFeatureGroup", - TupleDefinitions.WixFeatureGroup, - new[] - { - new ColumnDefinition("WixFeatureGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixPatchFamilyGroup = new TableDefinition( - "WixPatchFamilyGroup", - TupleDefinitions.WixPatchFamilyGroup, - new[] - { - new ColumnDefinition("WixPatchFamilyGroup", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixGroup = new TableDefinition( - "WixGroup", - TupleDefinitions.WixGroup, - new[] - { - new ColumnDefinition("ParentId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular record in a parent table."), - new ColumnDefinition("ParentType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify a particular parent type in a parent table."), - new ColumnDefinition("ChildId", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular record in a child table."), - new ColumnDefinition("ChildType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify a particular child type in a child table."), - }, - unreal: true, - strongRowType: typeof(WixGroupRow), - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixFile = new TableDefinition( - "WixFile", - null, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("AssemblyType", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("File_AssemblyManifest", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("File_AssemblyApplication", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown, keyTable: "Directory", keyColumn: 1, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("DiskId", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ProcessorArchitecture", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("PatchGroup", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("PatchAttributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("DeltaPatchHeaderSource", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBindUpdatedFiles = new TableDefinition( - "WixBindUpdatedFiles", - TupleDefinitions.WixBindUpdatedFiles, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixBuildInfo = new TableDefinition( - "WixBuildInfo", - TupleDefinitions.WixBuildInfo, - new[] - { - new ColumnDefinition("WixVersion", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Version number of WiX."), - new ColumnDefinition("WixOutputFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Path to output file, if supplied."), - new ColumnDefinition("WixProjectFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Path to .wixproj file, if supplied."), - new ColumnDefinition("WixPdbFile", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Path to .wixpdb file, if supplied."), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixFragment = new TableDefinition( - "WixFragment", - TupleDefinitions.WixFragment, - new[] - { - new ColumnDefinition("WixFragment", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixInstanceComponent = new TableDefinition( - "WixInstanceComponent", - TupleDefinitions.WixInstanceComponent, - new[] - { - new ColumnDefinition("Component_", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, modularizeType: ColumnModularizeType.Column), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixInstanceTransforms = new TableDefinition( - "WixInstanceTransforms", - TupleDefinitions.WixInstanceTransforms, - new[] - { - new ColumnDefinition("Id", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("PropertyId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ProductCode", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Guid), - new ColumnDefinition("ProductName", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown, forceLocalizable: true), - new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixMediaTemplate = new TableDefinition( - "WixMediaTemplate", - TupleDefinitions.WixMediaTemplate, - new[] - { - new ColumnDefinition("CabinetTemplate", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("CompressionLevel", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 4), - new ColumnDefinition("DiskPrompt", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("VolumeLabel", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("MaximumUncompressedMediaSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("MaximumCabinetSizeForLargeFileSplitting", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - strongRowType: typeof(WixMediaTemplateRow), - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixOrdering = new TableDefinition( - "WixOrdering", - TupleDefinitions.WixOrdering, - new[] - { - new ColumnDefinition("ItemType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify the item in another table."), - new ColumnDefinition("ItemId_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Reference to an entry in another table."), - new ColumnDefinition("DependsOnType", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Primary key used to identify the item in another table."), - new ColumnDefinition("DependsOnId_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Reference to an entry in another table."), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixDeltaPatchFile = new TableDefinition( - "WixDeltaPatchFile", - TupleDefinitions.WixDeltaPatchFile, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "File", keyColumn: 1, modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("RetainLengths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("IgnoreOffsets", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("IgnoreLengths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("RetainOffsets", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: true, ColumnCategory.Text), - }, - unreal: true, - strongRowType: typeof(WixDeltaPatchFileRow), - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixDeltaPatchSymbolPaths = new TableDefinition( - "WixDeltaPatchSymbolPaths", - TupleDefinitions.WixDeltaPatchSymbolPaths, - new[] - { - new ColumnDefinition("Id", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 4), - new ColumnDefinition("SymbolPaths", ColumnType.Preserved, 0, primaryKey: false, nullable: false, ColumnCategory.Text), - }, - unreal: true, - strongRowType: typeof(WixDeltaPatchSymbolPathsRow), - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixPatchBaseline = new TableDefinition( - "WixPatchBaseline", - TupleDefinitions.WixPatchBaseline, - new[] - { - new ColumnDefinition("WixPatchBaseline", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify sets of transforms in a patch."), - new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ValidationFlags", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Integer, description: "Patch transform validation flags for the associated patch baseline."), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixPatchRef = new TableDefinition( - "WixPatchRef", - TupleDefinitions.WixPatchRef, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("PrimaryKeys", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixPatchId = new TableDefinition( - "WixPatchId", - TupleDefinitions.WixPatchId, - new[] - { - new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ClientPatchId", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("OptimizePatchSizeForLargeFiles", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("ApiPatchingSymbolFlags", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 7), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixPatchTarget = new TableDefinition( - "WixPatchTarget", - TupleDefinitions.WixPatchTarget, - new[] - { - new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixPatchMetadata = new TableDefinition( - "WixPatchMetadata", - null, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixUI = new TableDefinition( - "WixUI", - TupleDefinitions.WixUI, - new[] - { - new ColumnDefinition("WixUI", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixVariable = new TableDefinition( - "WixVariable", - TupleDefinitions.WixVariable, - new[] - { - new ColumnDefinition("WixVariable", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - tupleIdIsPrimaryKey: true - ); - public static readonly TableDefinition Streams = new TableDefinition( "_Streams", null, @@ -2187,32 +1840,6 @@ namespace WixToolset.Data.WindowsInstaller TargetFilesOptionalData, FamilyFileRanges, ExternalFiles, - WixAction, - WixBBControl, - WixComponentGroup, - WixControl, - WixDirectory, - WixEnsureTable, - WixFeatureGroup, - WixPatchFamilyGroup, - WixGroup, - WixFile, - WixBindUpdatedFiles, - WixBuildInfo, - WixFragment, - WixInstanceComponent, - WixInstanceTransforms, - WixMediaTemplate, - WixOrdering, - WixDeltaPatchFile, - WixDeltaPatchSymbolPaths, - WixPatchBaseline, - WixPatchRef, - WixPatchId, - WixPatchTarget, - WixPatchMetadata, - WixUI, - WixVariable, Streams, SummaryInformation, TransformView, -- cgit v1.2.3-55-g6feb From 4b3a3e60eb5f621723be7b894a7a71ae331dcf46 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 19 Jun 2020 13:45:04 +1000 Subject: Add BundleCustomData tuples. Remove Unreal from CustomTable. --- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 12 ++++ .../Tuples/WixBundleCustomDataAttributeTuple.cs | 52 ++++++++++++++++ .../Tuples/WixBundleCustomDataCellTuple.cs | 68 +++++++++++++++++++++ .../Tuples/WixBundleCustomDataTuple.cs | 71 ++++++++++++++++++++++ src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 8 --- 5 files changed, 203 insertions(+), 8 deletions(-) create mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index a91b3f8f..10776b67 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -120,6 +120,9 @@ namespace WixToolset.Data WixBundle, WixBundleCatalog, WixBundleContainer, + WixBundleCustomData, + WixBundleCustomDataAttribute, + WixBundleCustomDataCell, WixBundleExePackage, WixBundleExtension, WixBundleMsiFeature, @@ -542,6 +545,15 @@ namespace WixToolset.Data case TupleDefinitionType.WixBundleContainer: return TupleDefinitions.WixBundleContainer; + case TupleDefinitionType.WixBundleCustomData: + return TupleDefinitions.WixBundleCustomData; + + case TupleDefinitionType.WixBundleCustomDataAttribute: + return TupleDefinitions.WixBundleCustomDataAttribute; + + case TupleDefinitionType.WixBundleCustomDataCell: + return TupleDefinitions.WixBundleCustomDataCell; + case TupleDefinitionType.WixBundleExtension: return TupleDefinitions.WixBundleExtension; diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs new file mode 100644 index 00000000..9c27c9f4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleCustomDataAttribute = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleCustomDataAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeTupleFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeTupleFields.Name), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataAttributeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleCustomDataAttributeTupleFields + { + CustomDataRef, + Name, + } + + public class WixBundleCustomDataAttributeTuple : IntermediateTuple + { + public WixBundleCustomDataAttributeTuple() : base(TupleDefinitions.WixBundleCustomDataAttribute, null, null) + { + } + + public WixBundleCustomDataAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataAttributeTupleFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeTupleFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataAttributeTupleFields.CustomDataRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeTupleFields.Name]; + set => this.Set((int)WixBundleCustomDataAttributeTupleFields.Name, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs new file mode 100644 index 00000000..d488d6d0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleCustomDataCell = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleCustomDataCell, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.AttributeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.ElementId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.Value), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataCellTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleCustomDataCellTupleFields + { + CustomDataRef, + AttributeRef, + ElementId, + Value, + } + + public class WixBundleCustomDataCellTuple : IntermediateTuple + { + public WixBundleCustomDataCellTuple() : base(TupleDefinitions.WixBundleCustomDataCell, null, null) + { + } + + public WixBundleCustomDataCellTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataCellTupleFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.CustomDataRef, value); + } + + public string AttributeRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.AttributeRef]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.AttributeRef, value); + } + + public string ElementId + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.ElementId]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.ElementId, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.Value]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.Value, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs new file mode 100644 index 00000000..d0878deb --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleCustomData = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleCustomData, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.AttributeNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.BundleExtensionRef), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleCustomDataTupleFields + { + AttributeNames, + Type, + BundleExtensionRef, + } + + public enum WixBundleCustomDataType + { + Unknown, + BootstrapperApplication, + BundleExtension, + } + + public class WixBundleCustomDataTuple : IntermediateTuple + { + public const char AttributeNamesSeparator = '\x85'; + + public WixBundleCustomDataTuple() : base(TupleDefinitions.WixBundleCustomData, null, null) + { + } + + public WixBundleCustomDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomData, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataTupleFields index] => this.Fields[(int)index]; + + public string AttributeNames + { + get => (string)this.Fields[(int)WixBundleCustomDataTupleFields.AttributeNames]; + set => this.Set((int)WixBundleCustomDataTupleFields.AttributeNames, value); + } + + public WixBundleCustomDataType Type + { + get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataTupleFields.Type].AsNumber(); + set => this.Set((int)WixBundleCustomDataTupleFields.Type, (int)value); + } + + public string BundleExtensionRef + { + get => (string)this.Fields[(int)WixBundleCustomDataTupleFields.BundleExtensionRef]; + set => this.Set((int)WixBundleCustomDataTupleFields.BundleExtensionRef, value); + } + + public string[] AttributeNamesSeparated => this.AttributeNames.Split(AttributeNamesSeparator); + } +} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index b0d12a63..4d668842 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -11,7 +11,6 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Bool), }, typeof(WixCustomTableTuple)); } @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples public enum WixCustomTableTupleFields { ColumnNames, - Unreal, } public class WixCustomTableTuple : IntermediateTuple @@ -45,12 +43,6 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); } - public bool Unreal - { - get => (bool)this.Fields[(int)WixCustomTableTupleFields.Unreal]; - set => this.Set((int)WixCustomTableTupleFields.Unreal, value); - } - public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); } } -- cgit v1.2.3-55-g6feb From c555f1fe49af68147615c8fe3d87bfef2eb6001d Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 19 Jun 2020 14:35:18 +1000 Subject: Restore Unreal to CustomTable. --- src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index 4d668842..b0d12a63 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -11,6 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Bool), }, typeof(WixCustomTableTuple)); } @@ -21,6 +22,7 @@ namespace WixToolset.Data.Tuples public enum WixCustomTableTupleFields { ColumnNames, + Unreal, } public class WixCustomTableTuple : IntermediateTuple @@ -43,6 +45,12 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); } + public bool Unreal + { + get => (bool)this.Fields[(int)WixCustomTableTupleFields.Unreal]; + set => this.Set((int)WixCustomTableTupleFields.Unreal, value); + } + public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); } } -- cgit v1.2.3-55-g6feb From 742d315c73a0bc592c452222d0eb6c71309276f5 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 21 Jun 2020 16:22:27 +1000 Subject: Add ExpectedElement for any child type. --- src/WixToolset.Data/ErrorMessages.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index d0736628..38f3b45d 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -528,6 +528,11 @@ namespace WixToolset.Data return Message(null, Ids.ExpectedDirectoryGotFile, "The {0} option requires a directory, but the provided path is a file: {1}", option, path); } + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element.", elementName); + } + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName) { return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}.", elementName, childName); -- cgit v1.2.3-55-g6feb From d07a45c15127fbcb25ec87dbc356f98b6629fa21 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 22 Jun 2020 23:29:09 -0700 Subject: Add ScriptFile path to CustomActionTuple --- src/WixToolset.Data/Tuples/CustomActionTuple.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/CustomActionTuple.cs b/src/WixToolset.Data/Tuples/CustomActionTuple.cs index fbda67fa..b2b34df0 100644 --- a/src/WixToolset.Data/Tuples/CustomActionTuple.cs +++ b/src/WixToolset.Data/Tuples/CustomActionTuple.cs @@ -22,6 +22,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(CustomActionTupleFields.PatchUninstall), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(CustomActionTupleFields.TSAware), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionTupleFields.ScriptFile), IntermediateFieldType.Path), }, typeof(CustomActionTuple)); } @@ -43,6 +44,7 @@ namespace WixToolset.Data.Tuples PatchUninstall, TSAware, Win64, + ScriptFile } public enum CustomActionExecutionType @@ -156,5 +158,11 @@ namespace WixToolset.Data.Tuples get => this.Fields[(int)CustomActionTupleFields.Win64].AsBool(); set => this.Set((int)CustomActionTupleFields.Win64, value); } + + public IntermediateFieldPathValue ScriptFile + { + get => this.Fields[(int)CustomActionTupleFields.ScriptFile].AsPath(); + set => this.Set((int)CustomActionTupleFields.ScriptFile, value); + } } -} \ No newline at end of file +} -- cgit v1.2.3-55-g6feb From 2bcc21d5c2d27e578f59f905f6acd0979b78aa9d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 24 Jun 2020 12:23:42 -0700 Subject: Rename Symbol more correctly as TupleWithSection --- src/WixToolset.Data/Symbol.cs | 90 --------------------------------- src/WixToolset.Data/TupleWithSection.cs | 90 +++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 90 deletions(-) delete mode 100644 src/WixToolset.Data/Symbol.cs create mode 100644 src/WixToolset.Data/TupleWithSection.cs (limited to 'src') diff --git a/src/WixToolset.Data/Symbol.cs b/src/WixToolset.Data/Symbol.cs deleted file mode 100644 index 8bcdd4f0..00000000 --- a/src/WixToolset.Data/Symbol.cs +++ /dev/null @@ -1,90 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Linq; - - /// - /// Symbol representing a single row in a database. - /// - public sealed class Symbol - { - private HashSet possibleConflictSymbols; - private HashSet redundantSymbols; - - /// - /// Creates a symbol for a row. - /// - /// Row for the symbol - public Symbol(IntermediateSection section, IntermediateTuple tuple) - { - this.Row = tuple; - this.Section = section; - this.Name = String.Concat(this.Row.Definition.Name, ":", this.Row.Id.Id); - } - - /// - /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. - /// - /// Accessbility of the symbol. - public AccessModifier Access => this.Row.Id.Access; - - /// - /// Gets the name of the symbol. - /// - /// Name of the symbol. - public string Name { get; } - - /// - /// Gets the row for this symbol. - /// - /// Row for this symbol. - public IntermediateTuple Row { get; } - - /// - /// Gets the section for the symbol. - /// - /// Section for the symbol. - public IntermediateSection Section { get; } - - /// - /// Gets any duplicates of this symbol that are possible conflicts. - /// - public IEnumerable PossiblyConflictingSymbols { get { return this.possibleConflictSymbols ?? Enumerable.Empty(); } } - - /// - /// Gets any duplicates of this symbol that are redundant. - /// - public IEnumerable RedundantSymbols { get { return this.redundantSymbols ?? Enumerable.Empty(); } } - - /// - /// Adds a duplicate symbol that is a possible conflict. - /// - /// Symbol that is a possible conflict of this symbol. - public void AddPossibleConflict(Symbol symbol) - { - if (null == this.possibleConflictSymbols) - { - this.possibleConflictSymbols = new HashSet(); - } - - this.possibleConflictSymbols.Add(symbol); - } - - /// - /// Adds a duplicate symbol that is redundant. - /// - /// Symbol that is redundant of this symbol. - public void AddRedundant(Symbol symbol) - { - if (null == this.redundantSymbols) - { - this.redundantSymbols = new HashSet(); - } - - this.redundantSymbols.Add(symbol); - } - } -} diff --git a/src/WixToolset.Data/TupleWithSection.cs b/src/WixToolset.Data/TupleWithSection.cs new file mode 100644 index 00000000..a8b88814 --- /dev/null +++ b/src/WixToolset.Data/TupleWithSection.cs @@ -0,0 +1,90 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Linq; + + /// + /// Tuple with section representing a single unique tuple. + /// + public sealed class TupleWithSection + { + private HashSet possibleConflicts; + private HashSet redundants; + + /// + /// Creates a symbol for a tuple. + /// + /// Tuple for the symbol + public TupleWithSection(IntermediateSection section, IntermediateTuple tuple) + { + this.Tuple = tuple; + this.Section = section; + this.Name = String.Concat(this.Tuple.Definition.Name, ":", this.Tuple.Id.Id); + } + + /// + /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. + /// + /// Accessbility of the symbol. + public AccessModifier Access => this.Tuple.Id.Access; + + /// + /// Gets the name of the symbol. + /// + /// Name of the symbol. + public string Name { get; } + + /// + /// Gets the tuple for this symbol. + /// + /// Tuple for this symbol. + public IntermediateTuple Tuple { get; } + + /// + /// Gets the section for the symbol. + /// + /// Section for the symbol. + public IntermediateSection Section { get; } + + /// + /// Gets any duplicates of this tuple with sections that are possible conflicts. + /// + public IEnumerable PossiblyConflicts => this.possibleConflicts ?? Enumerable.Empty(); + + /// + /// Gets any duplicates of this tuple with sections that are redundant. + /// + public IEnumerable Redundants => this.redundants ?? Enumerable.Empty(); + + /// + /// Adds a duplicate tuple with sections that is a possible conflict. + /// + /// Tuple with section that is a possible conflict of this symbol. + public void AddPossibleConflict(TupleWithSection tupleWithSection) + { + if (null == this.possibleConflicts) + { + this.possibleConflicts = new HashSet(); + } + + this.possibleConflicts.Add(tupleWithSection); + } + + /// + /// Adds a duplicate tuple that is redundant. + /// + /// Tuple with section that is redundant of this tuple. + public void AddRedundant(TupleWithSection tupleWithSection) + { + if (null == this.redundants) + { + this.redundants = new HashSet(); + } + + this.redundants.Add(tupleWithSection); + } + } +} -- cgit v1.2.3-55-g6feb From 9787570331b511bab73ac8f4f38a3b8cfa053ca5 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 24 Jun 2020 14:05:08 -0700 Subject: The Great Tuple to Symbol Rename (tm) --- src/WixToolset.Data/Burn/BurnConstants.cs | 4 +- src/WixToolset.Data/ErrorMessages.cs | 6 +- src/WixToolset.Data/ITupleDefinitionCreator.cs | 6 +- src/WixToolset.Data/Identifier.cs | 6 +- src/WixToolset.Data/Intermediate.cs | 54 +- src/WixToolset.Data/IntermediateSection.cs | 26 +- .../IntermediateSectionExtensions.cs | 8 +- src/WixToolset.Data/IntermediateTuple.cs | 24 +- src/WixToolset.Data/IntermediateTupleDefinition.cs | 32 +- src/WixToolset.Data/IntermediateTupleExtensions.cs | 100 +-- src/WixToolset.Data/Serialize/ElementCollection.cs | 54 +- .../SimpleTupleDefinitionCreator.cs | 16 +- src/WixToolset.Data/TupleWithSection.cs | 54 +- src/WixToolset.Data/Tuples/ActionTextTuple.cs | 40 +- src/WixToolset.Data/Tuples/AppIdTuple.cs | 64 +- src/WixToolset.Data/Tuples/AppSearchTuple.cs | 34 +- src/WixToolset.Data/Tuples/AssemblyTuple.cs | 58 +- src/WixToolset.Data/Tuples/BBControlTuple.cs | 130 ++-- src/WixToolset.Data/Tuples/BillboardTuple.cs | 40 +- src/WixToolset.Data/Tuples/BinaryTuple.cs | 28 +- src/WixToolset.Data/Tuples/CCPSearchTuple.cs | 22 +- src/WixToolset.Data/Tuples/CheckBoxTuple.cs | 34 +- src/WixToolset.Data/Tuples/ClassTuple.cs | 100 +-- src/WixToolset.Data/Tuples/ComboBoxTuple.cs | 46 +- src/WixToolset.Data/Tuples/CompLocatorTuple.cs | 40 +- src/WixToolset.Data/Tuples/ComplusTuple.cs | 34 +- src/WixToolset.Data/Tuples/ComponentTuple.cs | 106 +-- src/WixToolset.Data/Tuples/ConditionTuple.cs | 40 +- .../Tuples/ControlConditionTuple.cs | 46 +- src/WixToolset.Data/Tuples/ControlEventTuple.cs | 58 +- src/WixToolset.Data/Tuples/ControlTuple.cs | 206 +++--- src/WixToolset.Data/Tuples/CreateFolderTuple.cs | 34 +- src/WixToolset.Data/Tuples/CustomActionTuple.cs | 100 +-- src/WixToolset.Data/Tuples/DialogTuple.cs | 136 ++-- src/WixToolset.Data/Tuples/DirectoryTuple.cs | 58 +- src/WixToolset.Data/Tuples/DrLocatorTuple.cs | 46 +- src/WixToolset.Data/Tuples/DuplicateFileTuple.cs | 46 +- src/WixToolset.Data/Tuples/EnvironmentTuple.cs | 70 +- src/WixToolset.Data/Tuples/ErrorTuple.cs | 28 +- src/WixToolset.Data/Tuples/EventMappingTuple.cs | 46 +- src/WixToolset.Data/Tuples/ExtensionTuple.cs | 52 +- src/WixToolset.Data/Tuples/ExternalFilesTuple.cs | 70 +- .../Tuples/FamilyFileRangesTuple.cs | 46 +- .../Tuples/FeatureComponentsTuple.cs | 34 +- src/WixToolset.Data/Tuples/FeatureTuple.cs | 82 +-- src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs | 34 +- src/WixToolset.Data/Tuples/FileTuple.cs | 166 ++--- src/WixToolset.Data/Tuples/IconTuple.cs | 28 +- src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs | 58 +- src/WixToolset.Data/Tuples/IniFileTuple.cs | 64 +- src/WixToolset.Data/Tuples/IniLocatorTuple.cs | 58 +- src/WixToolset.Data/Tuples/InifFileActionType.cs | 2 +- .../Tuples/IsolatedComponentTuple.cs | 34 +- src/WixToolset.Data/Tuples/LaunchConditionTuple.cs | 34 +- src/WixToolset.Data/Tuples/ListBoxTuple.cs | 46 +- src/WixToolset.Data/Tuples/ListViewTuple.cs | 52 +- src/WixToolset.Data/Tuples/LocatorType.cs | 2 +- src/WixToolset.Data/Tuples/LockPermissionsTuple.cs | 52 +- src/WixToolset.Data/Tuples/MIMETuple.cs | 40 +- src/WixToolset.Data/Tuples/MediaTuple.cs | 70 +- .../Tuples/ModuleComponentsTuple.cs | 40 +- .../Tuples/ModuleConfigurationTuple.cs | 82 +-- .../Tuples/ModuleDependencyTuple.cs | 52 +- src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs | 58 +- .../Tuples/ModuleIgnoreTableTuple.cs | 22 +- src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs | 40 +- .../Tuples/ModuleSubstitutionTuple.cs | 46 +- src/WixToolset.Data/Tuples/MoveFileTuple.cs | 58 +- src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs | 40 +- .../Tuples/MsiDigitalCertificateTuple.cs | 28 +- .../Tuples/MsiDigitalSignatureTuple.cs | 46 +- .../Tuples/MsiEmbeddedChainerTuple.cs | 46 +- src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs | 52 +- src/WixToolset.Data/Tuples/MsiFileHashTuple.cs | 52 +- .../Tuples/MsiLockPermissionsExTuple.cs | 46 +- .../Tuples/MsiPackageCertificateTuple.cs | 34 +- .../Tuples/MsiPatchCertificateTuple.cs | 34 +- src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs | 34 +- .../Tuples/MsiPatchMetadataTuple.cs | 40 +- .../Tuples/MsiPatchOldAssemblyFileTuple.cs | 34 +- .../Tuples/MsiPatchOldAssemblyNameTuple.cs | 40 +- .../Tuples/MsiPatchSequenceTuple.cs | 46 +- .../Tuples/MsiServiceConfigFailureActionsTuple.cs | 82 +-- .../Tuples/MsiServiceConfigTuple.cs | 64 +- .../Tuples/MsiShortcutPropertyTuple.cs | 40 +- src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs | 40 +- src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs | 46 +- src/WixToolset.Data/Tuples/ODBCDriverTuple.cs | 46 +- .../Tuples/ODBCSourceAttributeTuple.cs | 40 +- src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs | 46 +- src/WixToolset.Data/Tuples/PatchMetadataTuple.cs | 40 +- src/WixToolset.Data/Tuples/PatchPackageTuple.cs | 34 +- src/WixToolset.Data/Tuples/PatchSequenceTuple.cs | 46 +- src/WixToolset.Data/Tuples/PatchTuple.cs | 58 +- src/WixToolset.Data/Tuples/ProgIdTuple.cs | 58 +- src/WixToolset.Data/Tuples/PropertiesTuple.cs | 34 +- src/WixToolset.Data/Tuples/PropertyTuple.cs | 28 +- .../Tuples/ProvidesDependencyTuple.cs | 58 +- .../Tuples/PublishComponentTuple.cs | 52 +- src/WixToolset.Data/Tuples/RadioButtonTuple.cs | 76 +-- src/WixToolset.Data/Tuples/RegLocatorTuple.cs | 52 +- src/WixToolset.Data/Tuples/RegistryRootType.cs | 2 +- src/WixToolset.Data/Tuples/RegistryTuple.cs | 64 +- src/WixToolset.Data/Tuples/RemoveFileTuple.cs | 52 +- src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | 52 +- src/WixToolset.Data/Tuples/ReserveCostTuple.cs | 46 +- src/WixToolset.Data/Tuples/SFPCatalogTuple.cs | 40 +- src/WixToolset.Data/Tuples/ServiceControlTuple.cs | 82 +-- src/WixToolset.Data/Tuples/ServiceInstallTuple.cs | 106 +-- src/WixToolset.Data/Tuples/ShortcutTuple.cs | 118 ++-- src/WixToolset.Data/Tuples/SignatureTuple.cs | 70 +- .../Tuples/SummaryInformationTuple.cs | 34 +- .../Tuples/TargetFilesOptionalDataTuple.cs | 58 +- src/WixToolset.Data/Tuples/TargetImagesTuple.cs | 64 +- src/WixToolset.Data/Tuples/TextStyleTuple.cs | 76 +-- src/WixToolset.Data/Tuples/TransformsFlags.cs | 2 +- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 710 ++++++++++----------- src/WixToolset.Data/Tuples/TypeLibTuple.cs | 70 +- src/WixToolset.Data/Tuples/UITextTuple.cs | 28 +- src/WixToolset.Data/Tuples/UpgradeTuple.cs | 94 +-- .../Tuples/UpgradedFilesOptionalDataTuple.cs | 52 +- .../Tuples/UpgradedFilesToIgnoreTuple.cs | 34 +- src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs | 52 +- src/WixToolset.Data/Tuples/VerbTuple.cs | 52 +- src/WixToolset.Data/Tuples/WixActionTuple.cs | 64 +- .../Tuples/WixApprovedExeForElevationTuple.cs | 40 +- .../Tuples/WixBindUpdatedFilesTuple.cs | 28 +- .../Tuples/WixBootstrapperApplicationTuple.cs | 22 +- src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs | 46 +- .../Tuples/WixBundleCatalogTuple.cs | 28 +- .../Tuples/WixBundleContainerTuple.cs | 64 +- .../Tuples/WixBundleCustomDataAttributeTuple.cs | 34 +- .../Tuples/WixBundleCustomDataCellTuple.cs | 46 +- .../Tuples/WixBundleCustomDataTuple.cs | 40 +- .../Tuples/WixBundleExePackageTuple.cs | 58 +- .../Tuples/WixBundleExtensionTuple.cs | 28 +- .../Tuples/WixBundleMsiFeatureTuple.cs | 82 +-- .../Tuples/WixBundleMsiPackageTuple.cs | 64 +- .../Tuples/WixBundleMsiPropertyTuple.cs | 46 +- .../Tuples/WixBundleMspPackageTuple.cs | 46 +- .../Tuples/WixBundleMsuPackageTuple.cs | 34 +- .../Tuples/WixBundlePackageCommandLineTuple.cs | 52 +- .../Tuples/WixBundlePackageExitCodeTuple.cs | 40 +- .../Tuples/WixBundlePackageGroupTuple.cs | 22 +- .../Tuples/WixBundlePackageTuple.cs | 136 ++-- .../Tuples/WixBundlePatchTargetCodeTuple.cs | 40 +- .../Tuples/WixBundlePayloadGroupTuple.cs | 22 +- .../Tuples/WixBundlePayloadTuple.cs | 148 ++--- .../Tuples/WixBundleRelatedPackageTuple.cs | 58 +- .../Tuples/WixBundleRollbackBoundaryTuple.cs | 34 +- .../Tuples/WixBundleSlipstreamMspTuple.cs | 34 +- src/WixToolset.Data/Tuples/WixBundleTuple.cs | 154 ++--- src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs | 34 +- .../Tuples/WixBundleVariableTuple.cs | 46 +- src/WixToolset.Data/Tuples/WixChainItemTuple.cs | 22 +- src/WixToolset.Data/Tuples/WixChainTuple.cs | 28 +- .../Tuples/WixComplexReferenceTuple.cs | 58 +- .../Tuples/WixComponentGroupTuple.cs | 28 +- .../Tuples/WixComponentSearchTuple.cs | 40 +- .../Tuples/WixCustomTableCellTuple.cs | 46 +- .../Tuples/WixCustomTableColumnTuple.cs | 112 ++-- src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 34 +- .../Tuples/WixDeltaPatchFileTuple.cs | 58 +- .../Tuples/WixDeltaPatchSymbolPathsTuple.cs | 40 +- .../Tuples/WixDependencyProviderTuple.cs | 52 +- src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs | 28 +- src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs | 22 +- .../Tuples/WixFeatureModulesTuple.cs | 34 +- src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | 76 +-- src/WixToolset.Data/Tuples/WixFragmentTuple.cs | 22 +- src/WixToolset.Data/Tuples/WixGroupTuple.cs | 46 +- .../Tuples/WixInstanceComponentTuple.cs | 28 +- .../Tuples/WixInstanceTransformsTuple.cs | 46 +- .../Tuples/WixMediaTemplateTuple.cs | 58 +- src/WixToolset.Data/Tuples/WixMergeTuple.cs | 66 +- src/WixToolset.Data/Tuples/WixOrderingTuple.cs | 46 +- .../Tuples/WixPatchBaselineTuple.cs | 52 +- .../Tuples/WixPatchFamilyGroupTuple.cs | 28 +- src/WixToolset.Data/Tuples/WixPatchIdTuple.cs | 40 +- src/WixToolset.Data/Tuples/WixPatchRefTuple.cs | 34 +- src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs | 28 +- .../Tuples/WixProductSearchTuple.cs | 34 +- src/WixToolset.Data/Tuples/WixPropertyTuple.cs | 46 +- .../Tuples/WixRegistrySearchTuple.cs | 46 +- .../Tuples/WixRelatedBundleTuple.cs | 34 +- .../Tuples/WixSearchRelationTuple.cs | 34 +- src/WixToolset.Data/Tuples/WixSearchTuple.cs | 40 +- src/WixToolset.Data/Tuples/WixSetVariableTuple.cs | 34 +- .../Tuples/WixSimpleReferenceTuple.cs | 34 +- .../Tuples/WixSuppressActionTuple.cs | 34 +- .../Tuples/WixSuppressModularizationTuple.cs | 22 +- src/WixToolset.Data/Tuples/WixUITuple.cs | 22 +- .../Tuples/WixUpdateRegistrationTuple.cs | 52 +- src/WixToolset.Data/Tuples/WixVariableTuple.cs | 34 +- src/WixToolset.Data/WarningMessages.cs | 8 +- .../WindowsInstaller/SequenceTableExtensions.cs | 2 +- .../WindowsInstaller/TableDefinition.cs | 30 +- .../WindowsInstaller/WindowsInstallerStandard.cs | 232 +++---- .../WindowsInstallerTableDefinitions.cs | 458 ++++++------- src/test/WixToolsetTest.Data/SerializeFixture.cs | 170 ++--- src/test/WixToolsetTest.Data/TagFixture.cs | 92 +-- .../WixToolsetTest.Data/TupleDefinitionFixture.cs | 92 +-- 202 files changed, 5642 insertions(+), 5642 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Burn/BurnConstants.cs b/src/WixToolset.Data/Burn/BurnConstants.cs index 18978195..65bfb4df 100644 --- a/src/WixToolset.Data/Burn/BurnConstants.cs +++ b/src/WixToolset.Data/Burn/BurnConstants.cs @@ -12,8 +12,8 @@ namespace WixToolset.Data.Burn public const string BundleExtensionDataWixOutputStreamName = "wix-bextdata"; public const string BootstrapperApplicationDataWixOutputStreamName = "wix-badata.xml"; - public const string BootstrapperApplicationDataTupleDefinitionTag = "WixBootstrapperApplicationData"; - public const string BundleExtensionSearchTupleDefinitionTag = "WixBundleExtensionSearch"; + public const string BootstrapperApplicationDataSymbolDefinitionTag = "WixBootstrapperApplicationData"; + public const string BundleExtensionSearchSymbolDefinitionTag = "WixBundleExtensionSearch"; // The following constants must stay in sync with src\burn\engine\core.h public const string BURN_BUNDLE_NAME = "WixBundleName"; diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 38f3b45d..e36cc55c 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -212,7 +212,7 @@ namespace WixToolset.Data { return Message(null, Ids.CouldNotDetermineProductCodeFromTransformSummaryInfo, "Could not determine ProductCode from transform summary information."); } - + public static Message CreateCabAddFileFailed() { return Message(null, Ids.CreateCabAddFileFailed, "An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file."); @@ -1486,7 +1486,7 @@ namespace WixToolset.Data public static Message MissingBundleSearch(SourceLineNumber sourceLineNumbers, string searchId) { - return Message(sourceLineNumbers, Ids.MissingBundleSearch, "Bundle Search with id '{0}' has no corresponding implementation tuple.", searchId); + return Message(sourceLineNumbers, Ids.MissingBundleSearch, "Bundle Search with id '{0}' has no corresponding implementation symbol.", searchId); } public static Message MissingDependencyVersion(string packageId) @@ -1981,7 +1981,7 @@ namespace WixToolset.Data public static Message UnableToConvertFieldToNumber(string value) { - return Message(null, Ids.UnableToConvertFieldToNumber, "Unable to convert intermediate tuple field value '{0}' to a number. This means the intermediate is corrupt or of an unsupported version.", value); + return Message(null, Ids.UnableToConvertFieldToNumber, "Unable to convert intermediate symbol field value '{0}' to a number. This means the intermediate is corrupt or of an unsupported version.", value); } public static Message UnableToOpenModule(SourceLineNumber sourceLineNumbers, string modulePath, string message) diff --git a/src/WixToolset.Data/ITupleDefinitionCreator.cs b/src/WixToolset.Data/ITupleDefinitionCreator.cs index 7d818be1..93b10ce8 100644 --- a/src/WixToolset.Data/ITupleDefinitionCreator.cs +++ b/src/WixToolset.Data/ITupleDefinitionCreator.cs @@ -2,10 +2,10 @@ namespace WixToolset.Data { - public interface ITupleDefinitionCreator + public interface ISymbolDefinitionCreator { - void AddCustomTupleDefinition(IntermediateTupleDefinition definition); + void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition); - bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition); + bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition); } } diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs index 9bbf35f0..57241007 100644 --- a/src/WixToolset.Data/Identifier.cs +++ b/src/WixToolset.Data/Identifier.cs @@ -7,7 +7,7 @@ namespace WixToolset.Data using SimpleJson; /// - /// Class to define the identifier and access for a tuple. + /// Class to define the identifier and access for a symbol. /// [DebuggerDisplay("{Access} {Id,nq}")] public class Identifier @@ -46,12 +46,12 @@ namespace WixToolset.Data } /// - /// Access modifier for a tuple. + /// Access modifier for a symbol. /// public AccessModifier Access { get; } /// - /// Identifier for the tuple. + /// Identifier for the symbol. /// public string Id { get; } diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index d1c38cf0..30a50120 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -69,7 +69,7 @@ namespace WixToolset.Data /// Returns the loaded intermediate. public static Intermediate Load(string path, bool suppressVersionCheck = false) { - var creator = new SimpleTupleDefinitionCreator(); + var creator = new SimpleSymbolDefinitionCreator(); return Intermediate.Load(path, creator, suppressVersionCheck); } @@ -82,7 +82,7 @@ namespace WixToolset.Data /// Returns the loaded intermediate. public static Intermediate Load(Assembly assembly, string resourceName, bool suppressVersionCheck = false) { - var creator = new SimpleTupleDefinitionCreator(); + var creator = new SimpleSymbolDefinitionCreator(); return Intermediate.Load(assembly, resourceName, creator, suppressVersionCheck); } @@ -91,10 +91,10 @@ namespace WixToolset.Data /// /// Assembly with intermediate embedded in resource stream. /// Name of resource stream. - /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. - public static Intermediate Load(Assembly assembly, string resourceName, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + public static Intermediate Load(Assembly assembly, string resourceName, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) { using (var wixout = WixOutput.Read(assembly, resourceName)) { @@ -106,10 +106,10 @@ namespace WixToolset.Data /// Loads an intermediate from a path on disk. /// /// Path to intermediate file saved on disk. - /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. - public static Intermediate Load(string path, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + public static Intermediate Load(string path, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) { using (var wixout = WixOutput.Read(path)) { @@ -121,12 +121,12 @@ namespace WixToolset.Data /// Loads an intermediate from a WixOutput object. /// /// WixOutput object. - /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. public static Intermediate Load(WixOutput wixOutput, bool suppressVersionCheck = false) { - var creator = new SimpleTupleDefinitionCreator(); + var creator = new SimpleSymbolDefinitionCreator(); return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); } @@ -134,10 +134,10 @@ namespace WixToolset.Data /// Loads an intermediate from a WixOutput object. /// /// WixOutput object. - /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. - public static Intermediate Load(WixOutput wixOutput, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + public static Intermediate Load(WixOutput wixOutput, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) { return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); } @@ -150,7 +150,7 @@ namespace WixToolset.Data /// Returns the loaded intermediates public static IEnumerable Load(IEnumerable intermediateFiles) { - var creator = new SimpleTupleDefinitionCreator(); + var creator = new SimpleSymbolDefinitionCreator(); return Intermediate.Load(intermediateFiles, creator); } @@ -158,10 +158,10 @@ namespace WixToolset.Data /// Loads several intermediates from paths on disk using the same definitions. /// /// Paths to intermediate files saved on disk. - /// ITupleDefinitionCreator to use when reconstituting the intermediates. + /// ISymbolDefinitionCreator to use when reconstituting the intermediates. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediates - public static IEnumerable Load(IEnumerable intermediateFiles, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + public static IEnumerable Load(IEnumerable intermediateFiles, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) { var jsons = new Queue(); var intermediates = new List(); @@ -240,10 +240,10 @@ namespace WixToolset.Data /// /// Stream to intermediate file. /// Path name of intermediate file. - /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. - private static Intermediate LoadIntermediate(WixOutput wixout, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) + private static Intermediate LoadIntermediate(WixOutput wixout, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) { var data = wixout.GetData(WixOutputStreamName); var json = Intermediate.LoadJson(data, wixout.Uri, suppressVersionCheck); @@ -281,8 +281,8 @@ namespace WixToolset.Data /// Loads custom definitions in intermediate json into the creator. /// /// Json version of intermediate. - /// ITupleDefinitionCreator to use when reconstituting the intermediate. - private static void LoadDefinitions(JsonObject json, ITupleDefinitionCreator creator) + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. + private static void LoadDefinitions(JsonObject json, ISymbolDefinitionCreator creator) { var definitionsJson = json.GetValueOrDefault("definitions"); @@ -290,8 +290,8 @@ namespace WixToolset.Data { foreach (JsonObject definitionJson in definitionsJson) { - var definition = IntermediateTupleDefinition.Deserialize(definitionJson); - creator.AddCustomTupleDefinition(definition); + var definition = IntermediateSymbolDefinition.Deserialize(definitionJson); + creator.AddCustomSymbolDefinition(definition); } } } @@ -301,9 +301,9 @@ namespace WixToolset.Data /// /// Json version of intermediate. /// Path to the intermediate. - /// ITupleDefinitionCreator to use when reconstituting the intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// The finalized intermediate. - private static Intermediate FinalizeLoad(JsonObject json, Uri baseUri, ITupleDefinitionCreator creator) + private static Intermediate FinalizeLoad(JsonObject json, Uri baseUri, ISymbolDefinitionCreator creator) { var id = json.GetValueOrDefault("id"); var level = json.GetValueOrDefault("level"); @@ -331,7 +331,7 @@ namespace WixToolset.Data private void SaveEmbedFiles(WixOutput wixout) { - var embeddedFields = this.Sections.SelectMany(s => s.Tuples) + var embeddedFields = this.Sections.SelectMany(s => s.Symbols) .SelectMany(t => t.Fields) .Where(f => f?.Type == IntermediateFieldType.Path) .Select(f => f.AsPath()) @@ -440,15 +440,15 @@ namespace WixToolset.Data return entryName; } - private Dictionary GetCustomDefinitionsInSections() + private Dictionary GetCustomDefinitionsInSections() { - var customDefinitions = new Dictionary(); + var customDefinitions = new Dictionary(); - foreach (var tuple in this.Sections.SelectMany(s => s.Tuples).Where(t => t.Definition.Type == TupleDefinitionType.MustBeFromAnExtension)) + foreach (var symbol in this.Sections.SelectMany(s => s.Symbols).Where(t => t.Definition.Type == SymbolDefinitionType.MustBeFromAnExtension)) { - if (!customDefinitions.ContainsKey(tuple.Definition.Name)) + if (!customDefinitions.ContainsKey(symbol.Definition.Name)) { - customDefinitions.Add(tuple.Definition.Name, tuple.Definition); + customDefinitions.Add(symbol.Definition.Name, symbol.Definition); } } diff --git a/src/WixToolset.Data/IntermediateSection.cs b/src/WixToolset.Data/IntermediateSection.cs index b46d20ba..cd001d5c 100644 --- a/src/WixToolset.Data/IntermediateSection.cs +++ b/src/WixToolset.Data/IntermediateSection.cs @@ -22,7 +22,7 @@ namespace WixToolset.Data this.Id = id; this.Type = type; this.Codepage = codepage; - this.Tuples = new List(); + this.Symbols = new List(); } /// @@ -54,14 +54,14 @@ namespace WixToolset.Data public string LibraryId { get; set; } /// - /// Tuples in the section. + /// Symbols in the section. /// - public IList Tuples { get; } + public IList Symbols { get; } /// /// Parse a section from the JSON data. /// - internal static IntermediateSection Deserialize(ITupleDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) + internal static IntermediateSection Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) { var codepage = jsonObject.GetValueOrDefault("codepage", 0); var id = jsonObject.GetValueOrDefault("id"); @@ -74,12 +74,12 @@ namespace WixToolset.Data var section = new IntermediateSection(id, type, codepage); - var tuplesJson = jsonObject.GetValueOrDefault("tuples"); + var symbolsJson = jsonObject.GetValueOrDefault("symbols"); - foreach (JsonObject tupleJson in tuplesJson) + foreach (JsonObject symbolJson in symbolsJson) { - var tuple = IntermediateTuple.Deserialize(creator, baseUri, tupleJson); - section.Tuples.Add(tuple); + var symbol = IntermediateSymbol.Deserialize(creator, baseUri, symbolJson); + section.Symbols.Add(symbol); } return section; @@ -98,15 +98,15 @@ namespace WixToolset.Data jsonObject.Add("id", this.Id); } - var tuplesJson = new JsonArray(this.Tuples.Count); + var symbolsJson = new JsonArray(this.Symbols.Count); - foreach (var tuple in this.Tuples) + foreach (var symbol in this.Symbols) { - var tupleJson = tuple.Serialize(); - tuplesJson.Add(tupleJson); + var symbolJson = symbol.Serialize(); + symbolsJson.Add(symbolJson); } - jsonObject.Add("tuples", tuplesJson); + jsonObject.Add("symbols", symbolsJson); return jsonObject; } diff --git a/src/WixToolset.Data/IntermediateSectionExtensions.cs b/src/WixToolset.Data/IntermediateSectionExtensions.cs index 73afca7b..80e64eaa 100644 --- a/src/WixToolset.Data/IntermediateSectionExtensions.cs +++ b/src/WixToolset.Data/IntermediateSectionExtensions.cs @@ -4,11 +4,11 @@ namespace WixToolset.Data { public static class IntermediateSectionExtensions { - public static T AddTuple(this IntermediateSection section, T tuple) - where T : IntermediateTuple + public static T AddSymbol(this IntermediateSection section, T symbol) + where T : IntermediateSymbol { - section.Tuples.Add(tuple); - return tuple; + section.Symbols.Add(symbol); + return symbol; } } } diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs index 9146b2be..4030df5d 100644 --- a/src/WixToolset.Data/IntermediateTuple.cs +++ b/src/WixToolset.Data/IntermediateTuple.cs @@ -7,15 +7,15 @@ namespace WixToolset.Data using SimpleJson; [DebuggerDisplay("{DebuggerDisplay,nq}")] - public class IntermediateTuple + public class IntermediateSymbol { private object tags; - public IntermediateTuple(IntermediateTupleDefinition definition) : this(definition, null, null) + public IntermediateSymbol(IntermediateSymbolDefinition definition) : this(definition, null, null) { } - public IntermediateTuple(IntermediateTupleDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) + public IntermediateSymbol(IntermediateSymbolDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) { this.Definition = definition; this.Fields = new IntermediateField[definition.FieldDefinitions.Length]; @@ -23,7 +23,7 @@ namespace WixToolset.Data this.Id = id; } - public IntermediateTupleDefinition Definition { get; } + public IntermediateSymbolDefinition Definition { get; } public IntermediateField[] Fields { get; } @@ -154,7 +154,7 @@ namespace WixToolset.Data return false; } - internal static IntermediateTuple Deserialize(ITupleDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) + internal static IntermediateSymbol Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) { var definitionName = jsonObject.GetValueOrDefault("type"); var idJson = jsonObject.GetValueOrDefault("id"); @@ -166,18 +166,18 @@ namespace WixToolset.Data var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); // TODO: this isn't sufficient. - if (!creator.TryGetTupleDefinitionByName(definitionName, out var definition)) + if (!creator.TryGetSymbolDefinitionByName(definitionName, out var definition)) { throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); } - var tuple = definition.CreateTuple(sourceLineNumbers, id); + var symbol = definition.CreateSymbol(sourceLineNumbers, id); - for (var i = 0; i < fieldsJson.Count && i < tuple.Fields.Length; ++i) + for (var i = 0; i < fieldsJson.Count && i < symbol.Fields.Length; ++i) { if (fieldsJson[i] is JsonObject fieldJson) { - tuple.Fields[i] = IntermediateField.Deserialize(tuple.Definition.FieldDefinitions[i], baseUri, fieldJson); + symbol.Fields[i] = IntermediateField.Deserialize(symbol.Definition.FieldDefinitions[i], baseUri, fieldJson); } } @@ -186,7 +186,7 @@ namespace WixToolset.Data } else if (tagsJson.Count == 1) { - tuple.tags = (string)tagsJson[0]; + symbol.tags = (string)tagsJson[0]; } else { @@ -197,10 +197,10 @@ namespace WixToolset.Data tags[i] = (string)tagsJson[i]; } - tuple.tags = tags; + symbol.tags = tags; } - return tuple; + return symbol; } internal JsonObject Serialize() diff --git a/src/WixToolset.Data/IntermediateTupleDefinition.cs b/src/WixToolset.Data/IntermediateTupleDefinition.cs index eb05c28b..102a9f5c 100644 --- a/src/WixToolset.Data/IntermediateTupleDefinition.cs +++ b/src/WixToolset.Data/IntermediateTupleDefinition.cs @@ -5,50 +5,50 @@ namespace WixToolset.Data using System; using SimpleJson; - public class IntermediateTupleDefinition + public class IntermediateSymbolDefinition { private object tags; - public IntermediateTupleDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) - : this(TupleDefinitionType.MustBeFromAnExtension, name, 0, fieldDefinitions, strongTupleType) + public IntermediateSymbolDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(SymbolDefinitionType.MustBeFromAnExtension, name, 0, fieldDefinitions, strongSymbolType) { } - public IntermediateTupleDefinition(string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) - : this(TupleDefinitionType.MustBeFromAnExtension, name, revision, fieldDefinitions, strongTupleType) + public IntermediateSymbolDefinition(string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(SymbolDefinitionType.MustBeFromAnExtension, name, revision, fieldDefinitions, strongSymbolType) { } - internal IntermediateTupleDefinition(TupleDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) - : this(type, type.ToString(), 0, fieldDefinitions, strongTupleType) + internal IntermediateSymbolDefinition(SymbolDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(type, type.ToString(), 0, fieldDefinitions, strongSymbolType) { } - private IntermediateTupleDefinition(TupleDefinitionType type, string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) + private IntermediateSymbolDefinition(SymbolDefinitionType type, string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) { this.Type = type; this.Name = name; this.Revision = revision; this.FieldDefinitions = fieldDefinitions; - this.StrongTupleType = strongTupleType ?? typeof(IntermediateTuple); + this.StrongSymbolType = strongSymbolType ?? typeof(IntermediateSymbol); #if DEBUG - if (this.StrongTupleType != typeof(IntermediateTuple) && !this.StrongTupleType.IsSubclassOf(typeof(IntermediateTuple))) { throw new ArgumentException(nameof(strongTupleType)); } + if (this.StrongSymbolType != typeof(IntermediateSymbol) && !this.StrongSymbolType.IsSubclassOf(typeof(IntermediateSymbol))) { throw new ArgumentException(nameof(strongSymbolType)); } #endif } public int Revision { get; } - public TupleDefinitionType Type { get; } + public SymbolDefinitionType Type { get; } public string Name { get; } public IntermediateFieldDefinition[] FieldDefinitions { get; } - private Type StrongTupleType { get; } + private Type StrongSymbolType { get; } - public IntermediateTuple CreateTuple(SourceLineNumber sourceLineNumber = null, Identifier id = null) + public IntermediateSymbol CreateSymbol(SourceLineNumber sourceLineNumber = null, Identifier id = null) { - var result = (this.StrongTupleType == typeof(IntermediateTuple)) ? (IntermediateTuple)Activator.CreateInstance(this.StrongTupleType, this) : (IntermediateTuple)Activator.CreateInstance(this.StrongTupleType); + var result = (this.StrongSymbolType == typeof(IntermediateSymbol)) ? (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType, this) : (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType); result.SourceLineNumbers = sourceLineNumber; result.Id = id; @@ -174,7 +174,7 @@ namespace WixToolset.Data return false; } - internal static IntermediateTupleDefinition Deserialize(JsonObject jsonObject) + internal static IntermediateSymbolDefinition Deserialize(JsonObject jsonObject) { var name = jsonObject.GetValueOrDefault("name"); var revision = jsonObject.GetValueOrDefault("rev", 0); @@ -191,7 +191,7 @@ namespace WixToolset.Data fieldDefinitions[i] = new IntermediateFieldDefinition(fieldName, fieldType); } - var definition = new IntermediateTupleDefinition(name, revision, fieldDefinitions, null); + var definition = new IntermediateSymbolDefinition(name, revision, fieldDefinitions, null); if (tagsJson == null || tagsJson.Count == 0) { diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs index 95fb1b19..10f0d7f0 100644 --- a/src/WixToolset.Data/IntermediateTupleExtensions.cs +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs @@ -2,118 +2,118 @@ namespace WixToolset.Data { - public static class IntermediateTupleExtensions + public static class IntermediateSymbolExtensions { - public static bool AsBool(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsBool() ?? false; + public static bool AsBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsBool() ?? false; - public static bool? AsNullableBool(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsNullableBool(); + public static bool? AsNullableBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableBool(); - public static int AsNumber(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsNumber() ?? 0; + public static int AsNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNumber() ?? 0; - public static int? AsNullableNumber(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsNullableNumber(); + public static int? AsNullableNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableNumber(); - public static string AsString(this IntermediateTuple tuple, int index) => tuple?.Fields[index].AsString(); + public static string AsString(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsString(); - public static IntermediateField Set(this IntermediateTuple tuple, int index, bool value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool value) { - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - public static IntermediateField Set(this IntermediateTuple tuple, int index, bool? value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool? value) { - if (value == null && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(symbol, index)) { - return tuple.Fields[index] = null; + return symbol.Fields[index] = null; } - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - public static IntermediateField Set(this IntermediateTuple tuple, int index, long value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, long value) { - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - public static IntermediateField Set(this IntermediateTuple tuple, int index, long? value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, long? value) { - if (value == null && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(symbol, index)) { - return tuple.Fields[index] = null; + return symbol.Fields[index] = null; } - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - public static IntermediateField Set(this IntermediateTuple tuple, int index, int value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, int value) { - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - public static IntermediateField Set(this IntermediateTuple tuple, int index, int? value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, int? value) { - if (value == null && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(symbol, index)) { - return tuple.Fields[index] = null; + return symbol.Fields[index] = null; } - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - public static IntermediateField Set(this IntermediateTuple tuple, int index, IntermediateFieldPathValue value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, IntermediateFieldPathValue value) { - if (value?.Path == null && value?.BaseUri == null && NoFieldMetadata(tuple, index)) + if (value?.Path == null && value?.BaseUri == null && NoFieldMetadata(symbol, index)) { - return tuple.Fields[index] = null; + return symbol.Fields[index] = null; } - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - public static IntermediateField Set(this IntermediateTuple tuple, int index, string value) + public static IntermediateField Set(this IntermediateSymbol symbol, int index, string value) { - if (value == null && NoFieldMetadata(tuple, index)) + if (value == null && NoFieldMetadata(symbol, index)) { - return tuple.Fields[index] = null; + return symbol.Fields[index] = null; } - var definition = tuple.Definition.FieldDefinitions[index]; + var definition = symbol.Definition.FieldDefinitions[index]; - var field = tuple.Fields[index].Set(definition, value); + var field = symbol.Fields[index].Set(definition, value); - return tuple.Fields[index] = field; + return symbol.Fields[index] = field; } - private static bool NoFieldMetadata(IntermediateTuple tuple, int index) + private static bool NoFieldMetadata(IntermediateSymbol symbol, int index) { - var field = tuple?.Fields[index]; + var field = symbol?.Fields[index]; return field?.Context == null && field?.PreviousValue == null; } diff --git a/src/WixToolset.Data/Serialize/ElementCollection.cs b/src/WixToolset.Data/Serialize/ElementCollection.cs index 1d64c5eb..c2236627 100644 --- a/src/WixToolset.Data/Serialize/ElementCollection.cs +++ b/src/WixToolset.Data/Serialize/ElementCollection.cs @@ -429,13 +429,13 @@ namespace WixToolset.Data.Serialize { if (this.collectionStack != null && this.collectionStack.Count > 0) { - CollectionTuple tuple = (CollectionTuple)this.collectionStack.Peek(); - object container = tuple.Collection.items[tuple.ContainerIndex]; + CollectionSymbol symbol = (CollectionSymbol)this.collectionStack.Peek(); + object container = symbol.Collection.items[symbol.ContainerIndex]; CollectionItem collectionItem = container as CollectionItem; if (collectionItem != null) { - return collectionItem.Elements[tuple.ItemIndex]; + return collectionItem.Elements[symbol.ItemIndex]; } throw new InvalidOperationException(String.Format( @@ -474,12 +474,12 @@ namespace WixToolset.Data.Serialize } this.collectionStack = new Stack(); - this.collectionStack.Push(new CollectionTuple(this.collection)); + this.collectionStack.Push(new CollectionSymbol(this.collection)); } - CollectionTuple tuple = (CollectionTuple)this.collectionStack.Peek(); + CollectionSymbol symbol = (CollectionSymbol)this.collectionStack.Peek(); - if (this.FindNext(tuple)) + if (this.FindNext(symbol)) { return true; } @@ -507,50 +507,50 @@ namespace WixToolset.Data.Serialize elementCollection.Count)); } - CollectionTuple tuple = new CollectionTuple(elementCollection); - this.collectionStack.Push(tuple); - this.FindNext(tuple); + CollectionSymbol symbol = new CollectionSymbol(elementCollection); + this.collectionStack.Push(symbol); + this.FindNext(symbol); } /// - /// Finds the next item from a given tuple. + /// Finds the next item from a given symbol. /// - /// The tuple to start looking from. + /// The symbol to start looking from. /// True if a next element is found, false otherwise. - private bool FindNext(CollectionTuple tuple) + private bool FindNext(CollectionSymbol symbol) { - object container = tuple.Collection.items[tuple.ContainerIndex]; + object container = symbol.Collection.items[symbol.ContainerIndex]; CollectionItem collectionItem = container as CollectionItem; if (collectionItem != null) { - if (tuple.ItemIndex + 1 < collectionItem.Elements.Count) + if (symbol.ItemIndex + 1 < collectionItem.Elements.Count) { - tuple.ItemIndex++; + symbol.ItemIndex++; return true; } } ElementCollection elementCollection = container as ElementCollection; - if (elementCollection != null && elementCollection.Count > 0 && tuple.ItemIndex == -1) + if (elementCollection != null && elementCollection.Count > 0 && symbol.ItemIndex == -1) { - tuple.ItemIndex++; + symbol.ItemIndex++; this.PushCollection(elementCollection); return true; } - tuple.ItemIndex = 0; + symbol.ItemIndex = 0; - for (int i = tuple.ContainerIndex + 1; i < tuple.Collection.items.Count; ++i) + for (int i = symbol.ContainerIndex + 1; i < symbol.Collection.items.Count; ++i) { - object nestedContainer = tuple.Collection.items[i]; + object nestedContainer = symbol.Collection.items[i]; CollectionItem nestedCollectionItem = nestedContainer as CollectionItem; if (nestedCollectionItem != null) { if (nestedCollectionItem.Elements.Count > 0) { - tuple.ContainerIndex = i; + symbol.ContainerIndex = i; return true; } } @@ -558,7 +558,7 @@ namespace WixToolset.Data.Serialize ElementCollection nestedElementCollection = nestedContainer as ElementCollection; if (nestedElementCollection != null && nestedElementCollection.Count > 0) { - tuple.ContainerIndex = i; + symbol.ContainerIndex = i; this.PushCollection(nestedElementCollection); return true; } @@ -571,23 +571,23 @@ namespace WixToolset.Data.Serialize /// Class representing a single point in the collection. Consists of an ElementCollection, /// a container index, and an index into the container. /// - private class CollectionTuple + private class CollectionSymbol { private ElementCollection collection; private int containerIndex; private int itemIndex = -1; /// - /// Creates a new CollectionTuple. + /// Creates a new CollectionSymbol. /// - /// The collection for the tuple. - public CollectionTuple(ElementCollection collection) + /// The collection for the symbol. + public CollectionSymbol(ElementCollection collection) { this.collection = collection; } /// - /// Gets the collection for the tuple. + /// Gets the collection for the symbol. /// public ElementCollection Collection { diff --git a/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs b/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs index 257f028c..e22d53e7 100644 --- a/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs +++ b/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs @@ -4,11 +4,11 @@ namespace WixToolset.Data { using System.Collections.Generic; - internal class SimpleTupleDefinitionCreator : ITupleDefinitionCreator + internal class SimpleSymbolDefinitionCreator : ISymbolDefinitionCreator { - private Dictionary CustomDefinitionByName { get; } = new Dictionary(); + private Dictionary CustomDefinitionByName { get; } = new Dictionary(); - public void AddCustomTupleDefinition(IntermediateTupleDefinition definition) + public void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition) { if (!this.CustomDefinitionByName.TryGetValue(definition.Name, out var existing) || definition.Revision > existing.Revision) { @@ -16,16 +16,16 @@ namespace WixToolset.Data } } - public bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition) + public bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition) { - tupleDefinition = TupleDefinitions.ByName(name); + symbolDefinition = SymbolDefinitions.ByName(name); - if (tupleDefinition == null) + if (symbolDefinition == null) { - tupleDefinition = this.CustomDefinitionByName.GetValueOrDefault(name); + symbolDefinition = this.CustomDefinitionByName.GetValueOrDefault(name); } - return tupleDefinition != null; + return symbolDefinition != null; } } } diff --git a/src/WixToolset.Data/TupleWithSection.cs b/src/WixToolset.Data/TupleWithSection.cs index a8b88814..89a5fccd 100644 --- a/src/WixToolset.Data/TupleWithSection.cs +++ b/src/WixToolset.Data/TupleWithSection.cs @@ -7,29 +7,29 @@ namespace WixToolset.Data using System.Linq; /// - /// Tuple with section representing a single unique tuple. + /// Symbol with section representing a single unique symbol. /// - public sealed class TupleWithSection + public sealed class SymbolWithSection { - private HashSet possibleConflicts; - private HashSet redundants; + private HashSet possibleConflicts; + private HashSet redundants; /// - /// Creates a symbol for a tuple. + /// Creates a symbol for a symbol. /// - /// Tuple for the symbol - public TupleWithSection(IntermediateSection section, IntermediateTuple tuple) + /// Symbol for the symbol + public SymbolWithSection(IntermediateSection section, IntermediateSymbol symbol) { - this.Tuple = tuple; + this.Symbol = symbol; this.Section = section; - this.Name = String.Concat(this.Tuple.Definition.Name, ":", this.Tuple.Id.Id); + this.Name = String.Concat(this.Symbol.Definition.Name, ":", this.Symbol.Id.Id); } /// /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. /// /// Accessbility of the symbol. - public AccessModifier Access => this.Tuple.Id.Access; + public AccessModifier Access => this.Symbol.Id.Access; /// /// Gets the name of the symbol. @@ -38,10 +38,10 @@ namespace WixToolset.Data public string Name { get; } /// - /// Gets the tuple for this symbol. + /// Gets the symbol for this symbol. /// - /// Tuple for this symbol. - public IntermediateTuple Tuple { get; } + /// Symbol for this symbol. + public IntermediateSymbol Symbol { get; } /// /// Gets the section for the symbol. @@ -50,41 +50,41 @@ namespace WixToolset.Data public IntermediateSection Section { get; } /// - /// Gets any duplicates of this tuple with sections that are possible conflicts. + /// Gets any duplicates of this symbol with sections that are possible conflicts. /// - public IEnumerable PossiblyConflicts => this.possibleConflicts ?? Enumerable.Empty(); + public IEnumerable PossiblyConflicts => this.possibleConflicts ?? Enumerable.Empty(); /// - /// Gets any duplicates of this tuple with sections that are redundant. + /// Gets any duplicates of this symbol with sections that are redundant. /// - public IEnumerable Redundants => this.redundants ?? Enumerable.Empty(); + public IEnumerable Redundants => this.redundants ?? Enumerable.Empty(); /// - /// Adds a duplicate tuple with sections that is a possible conflict. + /// Adds a duplicate symbol with sections that is a possible conflict. /// - /// Tuple with section that is a possible conflict of this symbol. - public void AddPossibleConflict(TupleWithSection tupleWithSection) + /// Symbol with section that is a possible conflict of this symbol. + public void AddPossibleConflict(SymbolWithSection symbolWithSection) { if (null == this.possibleConflicts) { - this.possibleConflicts = new HashSet(); + this.possibleConflicts = new HashSet(); } - this.possibleConflicts.Add(tupleWithSection); + this.possibleConflicts.Add(symbolWithSection); } /// - /// Adds a duplicate tuple that is redundant. + /// Adds a duplicate symbol that is redundant. /// - /// Tuple with section that is redundant of this tuple. - public void AddRedundant(TupleWithSection tupleWithSection) + /// Symbol with section that is redundant of this symbol. + public void AddRedundant(SymbolWithSection symbolWithSection) { if (null == this.redundants) { - this.redundants = new HashSet(); + this.redundants = new HashSet(); } - this.redundants.Add(tupleWithSection); + this.redundants.Add(symbolWithSection); } } } diff --git a/src/WixToolset.Data/Tuples/ActionTextTuple.cs b/src/WixToolset.Data/Tuples/ActionTextTuple.cs index e816a5e1..80662060 100644 --- a/src/WixToolset.Data/Tuples/ActionTextTuple.cs +++ b/src/WixToolset.Data/Tuples/ActionTextTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ActionText = new IntermediateTupleDefinition( - TupleDefinitionType.ActionText, + public static readonly IntermediateSymbolDefinition ActionText = new IntermediateSymbolDefinition( + SymbolDefinitionType.ActionText, new[] { - new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Template), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Template), IntermediateFieldType.String), }, - typeof(ActionTextTuple)); + typeof(ActionTextSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ActionTextTupleFields + public enum ActionTextSymbolFields { Action, Description, Template, } - public class ActionTextTuple : IntermediateTuple + public class ActionTextSymbol : IntermediateSymbol { - public ActionTextTuple() : base(TupleDefinitions.ActionText, null, null) + public ActionTextSymbol() : base(SymbolDefinitions.ActionText, null, null) { } - public ActionTextTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ActionText, sourceLineNumber, id) + public ActionTextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ActionText, sourceLineNumber, id) { } - public IntermediateField this[ActionTextTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ActionTextSymbolFields index] => this.Fields[(int)index]; public string Action { - get => (string)this.Fields[(int)ActionTextTupleFields.Action]; - set => this.Set((int)ActionTextTupleFields.Action, value); + get => (string)this.Fields[(int)ActionTextSymbolFields.Action]; + set => this.Set((int)ActionTextSymbolFields.Action, value); } public string Description { - get => (string)this.Fields[(int)ActionTextTupleFields.Description]; - set => this.Set((int)ActionTextTupleFields.Description, value); + get => (string)this.Fields[(int)ActionTextSymbolFields.Description]; + set => this.Set((int)ActionTextSymbolFields.Description, value); } public string Template { - get => (string)this.Fields[(int)ActionTextTupleFields.Template]; - set => this.Set((int)ActionTextTupleFields.Template, value); + get => (string)this.Fields[(int)ActionTextSymbolFields.Template]; + set => this.Set((int)ActionTextSymbolFields.Template, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AppIdTuple.cs b/src/WixToolset.Data/Tuples/AppIdTuple.cs index 22cec56e..3eafa26f 100644 --- a/src/WixToolset.Data/Tuples/AppIdTuple.cs +++ b/src/WixToolset.Data/Tuples/AppIdTuple.cs @@ -2,29 +2,29 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition AppId = new IntermediateTupleDefinition( - TupleDefinitionType.AppId, + public static readonly IntermediateSymbolDefinition AppId = new IntermediateSymbolDefinition( + SymbolDefinitionType.AppId, new[] { - new IntermediateFieldDefinition(nameof(AppIdTupleFields.AppId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdTupleFields.RemoteServerName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdTupleFields.LocalService), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdTupleFields.ServiceParameters), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdTupleFields.DllSurrogate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdTupleFields.ActivateAtStorage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(AppIdTupleFields.RunAsInteractiveUser), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.AppId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RemoteServerName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.LocalService), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ServiceParameters), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.DllSurrogate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ActivateAtStorage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RunAsInteractiveUser), IntermediateFieldType.Number), }, - typeof(AppIdTuple)); + typeof(AppIdSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum AppIdTupleFields + public enum AppIdSymbolFields { AppId, RemoteServerName, @@ -35,58 +35,58 @@ namespace WixToolset.Data.Tuples RunAsInteractiveUser, } - public class AppIdTuple : IntermediateTuple + public class AppIdSymbol : IntermediateSymbol { - public AppIdTuple() : base(TupleDefinitions.AppId, null, null) + public AppIdSymbol() : base(SymbolDefinitions.AppId, null, null) { } - public AppIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AppId, sourceLineNumber, id) + public AppIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppId, sourceLineNumber, id) { } - public IntermediateField this[AppIdTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[AppIdSymbolFields index] => this.Fields[(int)index]; public string AppId { - get => (string)this.Fields[(int)AppIdTupleFields.AppId]; - set => this.Set((int)AppIdTupleFields.AppId, value); + get => (string)this.Fields[(int)AppIdSymbolFields.AppId]; + set => this.Set((int)AppIdSymbolFields.AppId, value); } public string RemoteServerName { - get => (string)this.Fields[(int)AppIdTupleFields.RemoteServerName]; - set => this.Set((int)AppIdTupleFields.RemoteServerName, value); + get => (string)this.Fields[(int)AppIdSymbolFields.RemoteServerName]; + set => this.Set((int)AppIdSymbolFields.RemoteServerName, value); } public string LocalService { - get => (string)this.Fields[(int)AppIdTupleFields.LocalService]; - set => this.Set((int)AppIdTupleFields.LocalService, value); + get => (string)this.Fields[(int)AppIdSymbolFields.LocalService]; + set => this.Set((int)AppIdSymbolFields.LocalService, value); } public string ServiceParameters { - get => (string)this.Fields[(int)AppIdTupleFields.ServiceParameters]; - set => this.Set((int)AppIdTupleFields.ServiceParameters, value); + get => (string)this.Fields[(int)AppIdSymbolFields.ServiceParameters]; + set => this.Set((int)AppIdSymbolFields.ServiceParameters, value); } public string DllSurrogate { - get => (string)this.Fields[(int)AppIdTupleFields.DllSurrogate]; - set => this.Set((int)AppIdTupleFields.DllSurrogate, value); + get => (string)this.Fields[(int)AppIdSymbolFields.DllSurrogate]; + set => this.Set((int)AppIdSymbolFields.DllSurrogate, value); } public bool? ActivateAtStorage { - get => (bool?)this.Fields[(int)AppIdTupleFields.ActivateAtStorage]; - set => this.Set((int)AppIdTupleFields.ActivateAtStorage, value); + get => (bool?)this.Fields[(int)AppIdSymbolFields.ActivateAtStorage]; + set => this.Set((int)AppIdSymbolFields.ActivateAtStorage, value); } public bool? RunAsInteractiveUser { - get => (bool?)this.Fields[(int)AppIdTupleFields.RunAsInteractiveUser]; - set => this.Set((int)AppIdTupleFields.RunAsInteractiveUser, value); + get => (bool?)this.Fields[(int)AppIdSymbolFields.RunAsInteractiveUser]; + set => this.Set((int)AppIdSymbolFields.RunAsInteractiveUser, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AppSearchTuple.cs b/src/WixToolset.Data/Tuples/AppSearchTuple.cs index 098b4946..2bd3d6ba 100644 --- a/src/WixToolset.Data/Tuples/AppSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/AppSearchTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition AppSearch = new IntermediateTupleDefinition( - TupleDefinitionType.AppSearch, + public static readonly IntermediateSymbolDefinition AppSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.AppSearch, new[] { - new IntermediateFieldDefinition(nameof(AppSearchTupleFields.PropertyRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppSearchTupleFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.PropertyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.SignatureRef), IntermediateFieldType.String), }, - typeof(AppSearchTuple)); + typeof(AppSearchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum AppSearchTupleFields + public enum AppSearchSymbolFields { PropertyRef, SignatureRef, } - public class AppSearchTuple : IntermediateTuple + public class AppSearchSymbol : IntermediateSymbol { - public AppSearchTuple() : base(TupleDefinitions.AppSearch, null, null) + public AppSearchSymbol() : base(SymbolDefinitions.AppSearch, null, null) { } - public AppSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AppSearch, sourceLineNumber, id) + public AppSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppSearch, sourceLineNumber, id) { } - public IntermediateField this[AppSearchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[AppSearchSymbolFields index] => this.Fields[(int)index]; public string PropertyRef { - get => (string)this.Fields[(int)AppSearchTupleFields.PropertyRef]; - set => this.Set((int)AppSearchTupleFields.PropertyRef, value); + get => (string)this.Fields[(int)AppSearchSymbolFields.PropertyRef]; + set => this.Set((int)AppSearchSymbolFields.PropertyRef, value); } public string SignatureRef { - get => (string)this.Fields[(int)AppSearchTupleFields.SignatureRef]; - set => this.Set((int)AppSearchTupleFields.SignatureRef, value); + get => (string)this.Fields[(int)AppSearchSymbolFields.SignatureRef]; + set => this.Set((int)AppSearchSymbolFields.SignatureRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AssemblyTuple.cs b/src/WixToolset.Data/Tuples/AssemblyTuple.cs index d1e5e1ce..192ca4eb 100644 --- a/src/WixToolset.Data/Tuples/AssemblyTuple.cs +++ b/src/WixToolset.Data/Tuples/AssemblyTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Assembly = new IntermediateTupleDefinition( - TupleDefinitionType.Assembly, + public static readonly IntermediateSymbolDefinition Assembly = new IntermediateSymbolDefinition( + SymbolDefinitionType.Assembly, new[] { - new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblyTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ManifestFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ApplicationFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblyTupleFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(AssemblyTupleFields.ProcessorArchitecture), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ManifestFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ApplicationFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ProcessorArchitecture), IntermediateFieldType.String), }, - typeof(AssemblyTuple)); + typeof(AssemblySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum AssemblyTupleFields + public enum AssemblySymbolFields { ComponentRef, FeatureRef, @@ -45,52 +45,52 @@ namespace WixToolset.Data.Tuples Win32Assembly, } - public class AssemblyTuple : IntermediateTuple + public class AssemblySymbol : IntermediateSymbol { - public AssemblyTuple() : base(TupleDefinitions.Assembly, null, null) + public AssemblySymbol() : base(SymbolDefinitions.Assembly, null, null) { } - public AssemblyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Assembly, sourceLineNumber, id) + public AssemblySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Assembly, sourceLineNumber, id) { } - public IntermediateField this[AssemblyTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[AssemblySymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)AssemblyTupleFields.ComponentRef]; - set => this.Set((int)AssemblyTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)AssemblySymbolFields.ComponentRef]; + set => this.Set((int)AssemblySymbolFields.ComponentRef, value); } public string FeatureRef { - get => (string)this.Fields[(int)AssemblyTupleFields.FeatureRef]; - set => this.Set((int)AssemblyTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)AssemblySymbolFields.FeatureRef]; + set => this.Set((int)AssemblySymbolFields.FeatureRef, value); } public string ManifestFileRef { - get => (string)this.Fields[(int)AssemblyTupleFields.ManifestFileRef]; - set => this.Set((int)AssemblyTupleFields.ManifestFileRef, value); + get => (string)this.Fields[(int)AssemblySymbolFields.ManifestFileRef]; + set => this.Set((int)AssemblySymbolFields.ManifestFileRef, value); } public string ApplicationFileRef { - get => (string)this.Fields[(int)AssemblyTupleFields.ApplicationFileRef]; - set => this.Set((int)AssemblyTupleFields.ApplicationFileRef, value); + get => (string)this.Fields[(int)AssemblySymbolFields.ApplicationFileRef]; + set => this.Set((int)AssemblySymbolFields.ApplicationFileRef, value); } public AssemblyType Type { - get => (AssemblyType)this.Fields[(int)AssemblyTupleFields.Type].AsNumber(); - set => this.Set((int)AssemblyTupleFields.Type, (int)value); + get => (AssemblyType)this.Fields[(int)AssemblySymbolFields.Type].AsNumber(); + set => this.Set((int)AssemblySymbolFields.Type, (int)value); } public string ProcessorArchitecture { - get => (string)this.Fields[(int)AssemblyTupleFields.ProcessorArchitecture]; - set => this.Set((int)AssemblyTupleFields.ProcessorArchitecture, value); + get => (string)this.Fields[(int)AssemblySymbolFields.ProcessorArchitecture]; + set => this.Set((int)AssemblySymbolFields.ProcessorArchitecture, value); } } } diff --git a/src/WixToolset.Data/Tuples/BBControlTuple.cs b/src/WixToolset.Data/Tuples/BBControlTuple.cs index cef525bf..277d1d85 100644 --- a/src/WixToolset.Data/Tuples/BBControlTuple.cs +++ b/src/WixToolset.Data/Tuples/BBControlTuple.cs @@ -2,40 +2,40 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition BBControl = new IntermediateTupleDefinition( - TupleDefinitionType.BBControl, + public static readonly IntermediateSymbolDefinition BBControl = new IntermediateSymbolDefinition( + SymbolDefinitionType.BBControl, new[] { - new IntermediateFieldDefinition(nameof(BBControlTupleFields.BillboardRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.BBControl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Enabled), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Indirect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Integer), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Sunken), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlTupleFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BillboardRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BBControl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Enabled), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Indirect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Integer), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Sunken), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.SourceFile), IntermediateFieldType.Path), }, - typeof(BBControlTuple)); + typeof(BBControlSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum BBControlTupleFields + public enum BBControlSymbolFields { BillboardRef, BBControl, @@ -57,124 +57,124 @@ namespace WixToolset.Data.Tuples SourceFile } - public class BBControlTuple : IntermediateTuple + public class BBControlSymbol : IntermediateSymbol { - public BBControlTuple() : base(TupleDefinitions.BBControl, null, null) + public BBControlSymbol() : base(SymbolDefinitions.BBControl, null, null) { } - public BBControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.BBControl, sourceLineNumber, id) + public BBControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.BBControl, sourceLineNumber, id) { } - public IntermediateField this[BBControlTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[BBControlSymbolFields index] => this.Fields[(int)index]; public string BillboardRef { - get => (string)this.Fields[(int)BBControlTupleFields.BillboardRef]; - set => this.Set((int)BBControlTupleFields.BillboardRef, value); + get => (string)this.Fields[(int)BBControlSymbolFields.BillboardRef]; + set => this.Set((int)BBControlSymbolFields.BillboardRef, value); } public string BBControl { - get => (string)this.Fields[(int)BBControlTupleFields.BBControl]; - set => this.Set((int)BBControlTupleFields.BBControl, value); + get => (string)this.Fields[(int)BBControlSymbolFields.BBControl]; + set => this.Set((int)BBControlSymbolFields.BBControl, value); } public string Type { - get => (string)this.Fields[(int)BBControlTupleFields.Type]; - set => this.Set((int)BBControlTupleFields.Type, value); + get => (string)this.Fields[(int)BBControlSymbolFields.Type]; + set => this.Set((int)BBControlSymbolFields.Type, value); } public int X { - get => (int)this.Fields[(int)BBControlTupleFields.X]; - set => this.Set((int)BBControlTupleFields.X, value); + get => (int)this.Fields[(int)BBControlSymbolFields.X]; + set => this.Set((int)BBControlSymbolFields.X, value); } public int Y { - get => (int)this.Fields[(int)BBControlTupleFields.Y]; - set => this.Set((int)BBControlTupleFields.Y, value); + get => (int)this.Fields[(int)BBControlSymbolFields.Y]; + set => this.Set((int)BBControlSymbolFields.Y, value); } public int Width { - get => (int)this.Fields[(int)BBControlTupleFields.Width].AsNumber(); - set => this.Set((int)BBControlTupleFields.Width, value); + get => (int)this.Fields[(int)BBControlSymbolFields.Width].AsNumber(); + set => this.Set((int)BBControlSymbolFields.Width, value); } public int Height { - get => (int)this.Fields[(int)BBControlTupleFields.Height]; - set => this.Set((int)BBControlTupleFields.Height, value); + get => (int)this.Fields[(int)BBControlSymbolFields.Height]; + set => this.Set((int)BBControlSymbolFields.Height, value); } public int Attributes { - get => this.Fields[(int)BBControlTupleFields.Attributes].AsNumber(); - set => this.Set((int)BBControlTupleFields.Attributes, value); + get => this.Fields[(int)BBControlSymbolFields.Attributes].AsNumber(); + set => this.Set((int)BBControlSymbolFields.Attributes, value); } public bool Enabled { - get => this.Fields[(int)BBControlTupleFields.Enabled].AsBool(); - set => this.Set((int)BBControlTupleFields.Enabled, value); + get => this.Fields[(int)BBControlSymbolFields.Enabled].AsBool(); + set => this.Set((int)BBControlSymbolFields.Enabled, value); } public bool Indirect { - get => this.Fields[(int)BBControlTupleFields.Indirect].AsBool(); - set => this.Set((int)BBControlTupleFields.Indirect, value); + get => this.Fields[(int)BBControlSymbolFields.Indirect].AsBool(); + set => this.Set((int)BBControlSymbolFields.Indirect, value); } public bool Integer { - get => this.Fields[(int)BBControlTupleFields.Integer].AsBool(); - set => this.Set((int)BBControlTupleFields.Integer, value); + get => this.Fields[(int)BBControlSymbolFields.Integer].AsBool(); + set => this.Set((int)BBControlSymbolFields.Integer, value); } public bool LeftScroll { - get => this.Fields[(int)BBControlTupleFields.LeftScroll].AsBool(); - set => this.Set((int)BBControlTupleFields.LeftScroll, value); + get => this.Fields[(int)BBControlSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)BBControlSymbolFields.LeftScroll, value); } public bool RightAligned { - get => this.Fields[(int)BBControlTupleFields.RightAligned].AsBool(); - set => this.Set((int)BBControlTupleFields.RightAligned, value); + get => this.Fields[(int)BBControlSymbolFields.RightAligned].AsBool(); + set => this.Set((int)BBControlSymbolFields.RightAligned, value); } public bool RightToLeft { - get => this.Fields[(int)BBControlTupleFields.RightToLeft].AsBool(); - set => this.Set((int)BBControlTupleFields.RightToLeft, value); + get => this.Fields[(int)BBControlSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)BBControlSymbolFields.RightToLeft, value); } public bool Sunken { - get => this.Fields[(int)BBControlTupleFields.Sunken].AsBool(); - set => this.Set((int)BBControlTupleFields.Sunken, value); + get => this.Fields[(int)BBControlSymbolFields.Sunken].AsBool(); + set => this.Set((int)BBControlSymbolFields.Sunken, value); } public bool Visible { - get => this.Fields[(int)BBControlTupleFields.Visible].AsBool(); - set => this.Set((int)BBControlTupleFields.Visible, value); + get => this.Fields[(int)BBControlSymbolFields.Visible].AsBool(); + set => this.Set((int)BBControlSymbolFields.Visible, value); } public string Text { - get => (string)this.Fields[(int)BBControlTupleFields.Text]; - set => this.Set((int)BBControlTupleFields.Text, value); + get => (string)this.Fields[(int)BBControlSymbolFields.Text]; + set => this.Set((int)BBControlSymbolFields.Text, value); } public IntermediateFieldPathValue SourceFile { - get => this.Fields[(int)BBControlTupleFields.SourceFile].AsPath(); - set => this.Set((int)BBControlTupleFields.SourceFile, value); + get => this.Fields[(int)BBControlSymbolFields.SourceFile].AsPath(); + set => this.Set((int)BBControlSymbolFields.SourceFile, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs index c5242d33..77f60bcb 100644 --- a/src/WixToolset.Data/Tuples/BillboardTuple.cs +++ b/src/WixToolset.Data/Tuples/BillboardTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Billboard = new IntermediateTupleDefinition( - TupleDefinitionType.Billboard, + public static readonly IntermediateSymbolDefinition Billboard = new IntermediateSymbolDefinition( + SymbolDefinitionType.Billboard, new[] { - new IntermediateFieldDefinition(nameof(BillboardTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BillboardTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BillboardTupleFields.Ordering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Ordering), IntermediateFieldType.Number), }, - typeof(BillboardTuple)); + typeof(BillboardSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum BillboardTupleFields + public enum BillboardSymbolFields { FeatureRef, Action, Ordering, } - public class BillboardTuple : IntermediateTuple + public class BillboardSymbol : IntermediateSymbol { - public BillboardTuple() : base(TupleDefinitions.Billboard, null, null) + public BillboardSymbol() : base(SymbolDefinitions.Billboard, null, null) { } - public BillboardTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Billboard, sourceLineNumber, id) + public BillboardSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Billboard, sourceLineNumber, id) { } - public IntermediateField this[BillboardTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[BillboardSymbolFields index] => this.Fields[(int)index]; public string FeatureRef { - get => (string)this.Fields[(int)BillboardTupleFields.FeatureRef]; - set => this.Set((int)BillboardTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)BillboardSymbolFields.FeatureRef]; + set => this.Set((int)BillboardSymbolFields.FeatureRef, value); } public string Action { - get => (string)this.Fields[(int)BillboardTupleFields.Action]; - set => this.Set((int)BillboardTupleFields.Action, value); + get => (string)this.Fields[(int)BillboardSymbolFields.Action]; + set => this.Set((int)BillboardSymbolFields.Action, value); } public int? Ordering { - get => (int?)this.Fields[(int)BillboardTupleFields.Ordering]; - set => this.Set((int)BillboardTupleFields.Ordering, value); + get => (int?)this.Fields[(int)BillboardSymbolFields.Ordering]; + set => this.Set((int)BillboardSymbolFields.Ordering, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BinaryTuple.cs b/src/WixToolset.Data/Tuples/BinaryTuple.cs index 358f5bf6..ec26b01a 100644 --- a/src/WixToolset.Data/Tuples/BinaryTuple.cs +++ b/src/WixToolset.Data/Tuples/BinaryTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Binary = new IntermediateTupleDefinition( - TupleDefinitionType.Binary, + public static readonly IntermediateSymbolDefinition Binary = new IntermediateSymbolDefinition( + SymbolDefinitionType.Binary, new[] { - new IntermediateFieldDefinition(nameof(BinaryTupleFields.Data), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(BinarySymbolFields.Data), IntermediateFieldType.Path), }, - typeof(BinaryTuple)); + typeof(BinarySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum BinaryTupleFields + public enum BinarySymbolFields { Data, } - public class BinaryTuple : IntermediateTuple + public class BinarySymbol : IntermediateSymbol { - public BinaryTuple() : base(TupleDefinitions.Binary, null, null) + public BinarySymbol() : base(SymbolDefinitions.Binary, null, null) { } - public BinaryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Binary, sourceLineNumber, id) + public BinarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Binary, sourceLineNumber, id) { } - public IntermediateField this[BinaryTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[BinarySymbolFields index] => this.Fields[(int)index]; public IntermediateFieldPathValue Data { - get => this.Fields[(int)BinaryTupleFields.Data].AsPath(); - set => this.Set((int)BinaryTupleFields.Data, value); + get => this.Fields[(int)BinarySymbolFields.Data].AsPath(); + set => this.Set((int)BinarySymbolFields.Data, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs index 63720d64..6f6227fd 100644 --- a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition CCPSearch = new IntermediateTupleDefinition( - TupleDefinitionType.CCPSearch, + public static readonly IntermediateSymbolDefinition CCPSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.CCPSearch, new IntermediateFieldDefinition[] { }, - typeof(CCPSearchTuple)); + typeof(CCPSearchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum CCPSearchTupleFields + public enum CCPSearchSymbolFields { } - public class CCPSearchTuple : IntermediateTuple + public class CCPSearchSymbol : IntermediateSymbol { - public CCPSearchTuple() : base(TupleDefinitions.CCPSearch, null, null) + public CCPSearchSymbol() : base(SymbolDefinitions.CCPSearch, null, null) { } - public CCPSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CCPSearch, sourceLineNumber, id) + public CCPSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CCPSearch, sourceLineNumber, id) { } - public IntermediateField this[CCPSearchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[CCPSearchSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs index b35ff1f0..cd6355c4 100644 --- a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs +++ b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition CheckBox = new IntermediateTupleDefinition( - TupleDefinitionType.CheckBox, + public static readonly IntermediateSymbolDefinition CheckBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.CheckBox, new[] { - new IntermediateFieldDefinition(nameof(CheckBoxTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CheckBoxTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Value), IntermediateFieldType.String), }, - typeof(CheckBoxTuple)); + typeof(CheckBoxSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum CheckBoxTupleFields + public enum CheckBoxSymbolFields { Property, Value, } - public class CheckBoxTuple : IntermediateTuple + public class CheckBoxSymbol : IntermediateSymbol { - public CheckBoxTuple() : base(TupleDefinitions.CheckBox, null, null) + public CheckBoxSymbol() : base(SymbolDefinitions.CheckBox, null, null) { } - public CheckBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CheckBox, sourceLineNumber, id) + public CheckBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CheckBox, sourceLineNumber, id) { } - public IntermediateField this[CheckBoxTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[CheckBoxSymbolFields index] => this.Fields[(int)index]; public string Property { - get => (string)this.Fields[(int)CheckBoxTupleFields.Property]; - set => this.Set((int)CheckBoxTupleFields.Property, value); + get => (string)this.Fields[(int)CheckBoxSymbolFields.Property]; + set => this.Set((int)CheckBoxSymbolFields.Property, value); } public string Value { - get => (string)this.Fields[(int)CheckBoxTupleFields.Value]; - set => this.Set((int)CheckBoxTupleFields.Value, value); + get => (string)this.Fields[(int)CheckBoxSymbolFields.Value]; + set => this.Set((int)CheckBoxSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ClassTuple.cs b/src/WixToolset.Data/Tuples/ClassTuple.cs index a5ff89e8..833867b1 100644 --- a/src/WixToolset.Data/Tuples/ClassTuple.cs +++ b/src/WixToolset.Data/Tuples/ClassTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Class = new IntermediateTupleDefinition( - TupleDefinitionType.Class, + public static readonly IntermediateSymbolDefinition Class = new IntermediateSymbolDefinition( + SymbolDefinitionType.Class, new[] { - new IntermediateFieldDefinition(nameof(ClassTupleFields.CLSID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.Context), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.DefaultProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.AppIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.FileTypeMask), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.IconIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ClassTupleFields.DefInprocHandler), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassTupleFields.RelativePath), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.CLSID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Context), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefaultProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.AppIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.FileTypeMask), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefInprocHandler), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.RelativePath), IntermediateFieldType.Bool), }, - typeof(ClassTuple)); + typeof(ClassSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ClassTupleFields + public enum ClassSymbolFields { CLSID, Context, @@ -47,94 +47,94 @@ namespace WixToolset.Data.Tuples RelativePath, } - public class ClassTuple : IntermediateTuple + public class ClassSymbol : IntermediateSymbol { - public ClassTuple() : base(TupleDefinitions.Class, null, null) + public ClassSymbol() : base(SymbolDefinitions.Class, null, null) { } - public ClassTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Class, sourceLineNumber, id) + public ClassSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Class, sourceLineNumber, id) { } - public IntermediateField this[ClassTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ClassSymbolFields index] => this.Fields[(int)index]; public string CLSID { - get => (string)this.Fields[(int)ClassTupleFields.CLSID]; - set => this.Set((int)ClassTupleFields.CLSID, value); + get => (string)this.Fields[(int)ClassSymbolFields.CLSID]; + set => this.Set((int)ClassSymbolFields.CLSID, value); } public string Context { - get => (string)this.Fields[(int)ClassTupleFields.Context]; - set => this.Set((int)ClassTupleFields.Context, value); + get => (string)this.Fields[(int)ClassSymbolFields.Context]; + set => this.Set((int)ClassSymbolFields.Context, value); } public string ComponentRef { - get => (string)this.Fields[(int)ClassTupleFields.ComponentRef]; - set => this.Set((int)ClassTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ClassSymbolFields.ComponentRef]; + set => this.Set((int)ClassSymbolFields.ComponentRef, value); } public string DefaultProgIdRef { - get => (string)this.Fields[(int)ClassTupleFields.DefaultProgIdRef]; - set => this.Set((int)ClassTupleFields.DefaultProgIdRef, value); + get => (string)this.Fields[(int)ClassSymbolFields.DefaultProgIdRef]; + set => this.Set((int)ClassSymbolFields.DefaultProgIdRef, value); } public string Description { - get => (string)this.Fields[(int)ClassTupleFields.Description]; - set => this.Set((int)ClassTupleFields.Description, value); + get => (string)this.Fields[(int)ClassSymbolFields.Description]; + set => this.Set((int)ClassSymbolFields.Description, value); } public string AppIdRef { - get => (string)this.Fields[(int)ClassTupleFields.AppIdRef]; - set => this.Set((int)ClassTupleFields.AppIdRef, value); + get => (string)this.Fields[(int)ClassSymbolFields.AppIdRef]; + set => this.Set((int)ClassSymbolFields.AppIdRef, value); } public string FileTypeMask { - get => (string)this.Fields[(int)ClassTupleFields.FileTypeMask]; - set => this.Set((int)ClassTupleFields.FileTypeMask, value); + get => (string)this.Fields[(int)ClassSymbolFields.FileTypeMask]; + set => this.Set((int)ClassSymbolFields.FileTypeMask, value); } public string IconRef { - get => (string)this.Fields[(int)ClassTupleFields.IconRef]; - set => this.Set((int)ClassTupleFields.IconRef, value); + get => (string)this.Fields[(int)ClassSymbolFields.IconRef]; + set => this.Set((int)ClassSymbolFields.IconRef, value); } public int? IconIndex { - get => (int?)this.Fields[(int)ClassTupleFields.IconIndex]; - set => this.Set((int)ClassTupleFields.IconIndex, value); + get => (int?)this.Fields[(int)ClassSymbolFields.IconIndex]; + set => this.Set((int)ClassSymbolFields.IconIndex, value); } public string DefInprocHandler { - get => (string)this.Fields[(int)ClassTupleFields.DefInprocHandler]; - set => this.Set((int)ClassTupleFields.DefInprocHandler, value); + get => (string)this.Fields[(int)ClassSymbolFields.DefInprocHandler]; + set => this.Set((int)ClassSymbolFields.DefInprocHandler, value); } public string Argument { - get => (string)this.Fields[(int)ClassTupleFields.Argument]; - set => this.Set((int)ClassTupleFields.Argument, value); + get => (string)this.Fields[(int)ClassSymbolFields.Argument]; + set => this.Set((int)ClassSymbolFields.Argument, value); } public string FeatureRef { - get => (string)this.Fields[(int)ClassTupleFields.FeatureRef]; - set => this.Set((int)ClassTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)ClassSymbolFields.FeatureRef]; + set => this.Set((int)ClassSymbolFields.FeatureRef, value); } public bool RelativePath { - get => this.Fields[(int)ClassTupleFields.RelativePath].AsBool(); - set => this.Set((int)ClassTupleFields.RelativePath, value); + get => this.Fields[(int)ClassSymbolFields.RelativePath].AsBool(); + set => this.Set((int)ClassSymbolFields.RelativePath, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs index f3629c5f..c7d8d986 100644 --- a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs +++ b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ComboBox = new IntermediateTupleDefinition( - TupleDefinitionType.ComboBox, + public static readonly IntermediateSymbolDefinition ComboBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.ComboBox, new[] { - new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Text), IntermediateFieldType.String), }, - typeof(ComboBoxTuple)); + typeof(ComboBoxSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ComboBoxTupleFields + public enum ComboBoxSymbolFields { Property, Order, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Text, } - public class ComboBoxTuple : IntermediateTuple + public class ComboBoxSymbol : IntermediateSymbol { - public ComboBoxTuple() : base(TupleDefinitions.ComboBox, null, null) + public ComboBoxSymbol() : base(SymbolDefinitions.ComboBox, null, null) { } - public ComboBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ComboBox, sourceLineNumber, id) + public ComboBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ComboBox, sourceLineNumber, id) { } - public IntermediateField this[ComboBoxTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ComboBoxSymbolFields index] => this.Fields[(int)index]; public string Property { - get => (string)this.Fields[(int)ComboBoxTupleFields.Property]; - set => this.Set((int)ComboBoxTupleFields.Property, value); + get => (string)this.Fields[(int)ComboBoxSymbolFields.Property]; + set => this.Set((int)ComboBoxSymbolFields.Property, value); } public int Order { - get => (int)this.Fields[(int)ComboBoxTupleFields.Order]; - set => this.Set((int)ComboBoxTupleFields.Order, value); + get => (int)this.Fields[(int)ComboBoxSymbolFields.Order]; + set => this.Set((int)ComboBoxSymbolFields.Order, value); } public string Value { - get => (string)this.Fields[(int)ComboBoxTupleFields.Value]; - set => this.Set((int)ComboBoxTupleFields.Value, value); + get => (string)this.Fields[(int)ComboBoxSymbolFields.Value]; + set => this.Set((int)ComboBoxSymbolFields.Value, value); } public string Text { - get => (string)this.Fields[(int)ComboBoxTupleFields.Text]; - set => this.Set((int)ComboBoxTupleFields.Text, value); + get => (string)this.Fields[(int)ComboBoxSymbolFields.Text]; + set => this.Set((int)ComboBoxSymbolFields.Text, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs index 58b32604..9004859c 100644 --- a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition CompLocator = new IntermediateTupleDefinition( - TupleDefinitionType.CompLocator, + public static readonly IntermediateSymbolDefinition CompLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.CompLocator, new[] { - new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.Type), IntermediateFieldType.Number), }, - typeof(CompLocatorTuple)); + typeof(CompLocatorSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum CompLocatorTupleFields + public enum CompLocatorSymbolFields { SignatureRef, ComponentId, Type, } - public class CompLocatorTuple : IntermediateTuple + public class CompLocatorSymbol : IntermediateSymbol { - public CompLocatorTuple() : base(TupleDefinitions.CompLocator, null, null) + public CompLocatorSymbol() : base(SymbolDefinitions.CompLocator, null, null) { } - public CompLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CompLocator, sourceLineNumber, id) + public CompLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CompLocator, sourceLineNumber, id) { } - public IntermediateField this[CompLocatorTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[CompLocatorSymbolFields index] => this.Fields[(int)index]; public string SignatureRef { - get => (string)this.Fields[(int)CompLocatorTupleFields.SignatureRef]; - set => this.Set((int)CompLocatorTupleFields.SignatureRef, value); + get => (string)this.Fields[(int)CompLocatorSymbolFields.SignatureRef]; + set => this.Set((int)CompLocatorSymbolFields.SignatureRef, value); } public string ComponentId { - get => (string)this.Fields[(int)CompLocatorTupleFields.ComponentId]; - set => this.Set((int)CompLocatorTupleFields.ComponentId, value); + get => (string)this.Fields[(int)CompLocatorSymbolFields.ComponentId]; + set => this.Set((int)CompLocatorSymbolFields.ComponentId, value); } public LocatorType Type { - get => (LocatorType)this.Fields[(int)CompLocatorTupleFields.Type].AsNumber(); - set => this.Set((int)CompLocatorTupleFields.Type, (int)value); + get => (LocatorType)this.Fields[(int)CompLocatorSymbolFields.Type].AsNumber(); + set => this.Set((int)CompLocatorSymbolFields.Type, (int)value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComplusTuple.cs b/src/WixToolset.Data/Tuples/ComplusTuple.cs index 428f3a8e..fa16af86 100644 --- a/src/WixToolset.Data/Tuples/ComplusTuple.cs +++ b/src/WixToolset.Data/Tuples/ComplusTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Complus = new IntermediateTupleDefinition( - TupleDefinitionType.Complus, + public static readonly IntermediateSymbolDefinition Complus = new IntermediateSymbolDefinition( + SymbolDefinitionType.Complus, new[] { - new IntermediateFieldDefinition(nameof(ComplusTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComplusTupleFields.ExpType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ExpType), IntermediateFieldType.Number), }, - typeof(ComplusTuple)); + typeof(ComplusSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ComplusTupleFields + public enum ComplusSymbolFields { ComponentRef, ExpType, } - public class ComplusTuple : IntermediateTuple + public class ComplusSymbol : IntermediateSymbol { - public ComplusTuple() : base(TupleDefinitions.Complus, null, null) + public ComplusSymbol() : base(SymbolDefinitions.Complus, null, null) { } - public ComplusTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Complus, sourceLineNumber, id) + public ComplusSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Complus, sourceLineNumber, id) { } - public IntermediateField this[ComplusTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ComplusSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)ComplusTupleFields.ComponentRef]; - set => this.Set((int)ComplusTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ComplusSymbolFields.ComponentRef]; + set => this.Set((int)ComplusSymbolFields.ComponentRef, value); } public int? ExpType { - get => (int?)this.Fields[(int)ComplusTupleFields.ExpType]; - set => this.Set((int)ComplusTupleFields.ExpType, value); + get => (int?)this.Fields[(int)ComplusSymbolFields.ExpType]; + set => this.Set((int)ComplusSymbolFields.ExpType, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs index 51693b53..13d398b1 100644 --- a/src/WixToolset.Data/Tuples/ComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/ComponentTuple.cs @@ -2,36 +2,36 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Component = new IntermediateTupleDefinition( - TupleDefinitionType.Component, + public static readonly IntermediateSymbolDefinition Component = new IntermediateSymbolDefinition( + SymbolDefinitionType.Component, new[] { - new IntermediateFieldDefinition(nameof(ComponentTupleFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Location), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.DisableRegistryReflection), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.NeverOverwrite), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Permanent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.SharedDllRefCount), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Shared), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Transitive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.UninstallWhenSuperseded), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Win64), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.KeyPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentTupleFields.KeyPathType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Location), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DisableRegistryReflection), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.NeverOverwrite), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Permanent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.SharedDllRefCount), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Shared), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Transitive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.UninstallWhenSuperseded), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPathType), IntermediateFieldType.Number), }, - typeof(ComponentTuple)); + typeof(ComponentSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ComponentTupleFields + public enum ComponentSymbolFields { ComponentId, DirectoryRef, @@ -56,100 +56,100 @@ namespace WixToolset.Data.Tuples Either } - public class ComponentTuple : IntermediateTuple + public class ComponentSymbol : IntermediateSymbol { - public ComponentTuple() : base(TupleDefinitions.Component, null, null) + public ComponentSymbol() : base(SymbolDefinitions.Component, null, null) { } - public ComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Component, sourceLineNumber, id) + public ComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Component, sourceLineNumber, id) { } - public IntermediateField this[ComponentTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ComponentSymbolFields index] => this.Fields[(int)index]; public string ComponentId { - get => (string)this.Fields[(int)ComponentTupleFields.ComponentId]; - set => this.Set((int)ComponentTupleFields.ComponentId, value); + get => (string)this.Fields[(int)ComponentSymbolFields.ComponentId]; + set => this.Set((int)ComponentSymbolFields.ComponentId, value); } public string DirectoryRef { - get => (string)this.Fields[(int)ComponentTupleFields.DirectoryRef]; - set => this.Set((int)ComponentTupleFields.DirectoryRef, value); + get => (string)this.Fields[(int)ComponentSymbolFields.DirectoryRef]; + set => this.Set((int)ComponentSymbolFields.DirectoryRef, value); } public ComponentLocation Location { - get => (ComponentLocation)this.Fields[(int)ComponentTupleFields.Location].AsNumber(); - set => this.Set((int)ComponentTupleFields.Location, (int)value); + get => (ComponentLocation)this.Fields[(int)ComponentSymbolFields.Location].AsNumber(); + set => this.Set((int)ComponentSymbolFields.Location, (int)value); } public bool DisableRegistryReflection { - get => this.Fields[(int)ComponentTupleFields.DisableRegistryReflection].AsBool(); - set => this.Set((int)ComponentTupleFields.DisableRegistryReflection, value); + get => this.Fields[(int)ComponentSymbolFields.DisableRegistryReflection].AsBool(); + set => this.Set((int)ComponentSymbolFields.DisableRegistryReflection, value); } public bool NeverOverwrite { - get => this.Fields[(int)ComponentTupleFields.NeverOverwrite].AsBool(); - set => this.Set((int)ComponentTupleFields.NeverOverwrite, value); + get => this.Fields[(int)ComponentSymbolFields.NeverOverwrite].AsBool(); + set => this.Set((int)ComponentSymbolFields.NeverOverwrite, value); } public bool Permanent { - get => this.Fields[(int)ComponentTupleFields.Permanent].AsBool(); - set => this.Set((int)ComponentTupleFields.Permanent, value); + get => this.Fields[(int)ComponentSymbolFields.Permanent].AsBool(); + set => this.Set((int)ComponentSymbolFields.Permanent, value); } public bool SharedDllRefCount { - get => this.Fields[(int)ComponentTupleFields.SharedDllRefCount].AsBool(); - set => this.Set((int)ComponentTupleFields.SharedDllRefCount, value); + get => this.Fields[(int)ComponentSymbolFields.SharedDllRefCount].AsBool(); + set => this.Set((int)ComponentSymbolFields.SharedDllRefCount, value); } public bool Shared { - get => this.Fields[(int)ComponentTupleFields.Shared].AsBool(); - set => this.Set((int)ComponentTupleFields.Shared, value); + get => this.Fields[(int)ComponentSymbolFields.Shared].AsBool(); + set => this.Set((int)ComponentSymbolFields.Shared, value); } public bool Transitive { - get => this.Fields[(int)ComponentTupleFields.Transitive].AsBool(); - set => this.Set((int)ComponentTupleFields.Transitive, value); + get => this.Fields[(int)ComponentSymbolFields.Transitive].AsBool(); + set => this.Set((int)ComponentSymbolFields.Transitive, value); } public bool UninstallWhenSuperseded { - get => this.Fields[(int)ComponentTupleFields.UninstallWhenSuperseded].AsBool(); - set => this.Set((int)ComponentTupleFields.UninstallWhenSuperseded, value); + get => this.Fields[(int)ComponentSymbolFields.UninstallWhenSuperseded].AsBool(); + set => this.Set((int)ComponentSymbolFields.UninstallWhenSuperseded, value); } public bool Win64 { - get => this.Fields[(int)ComponentTupleFields.Win64].AsBool(); - set => this.Set((int)ComponentTupleFields.Win64, value); + get => this.Fields[(int)ComponentSymbolFields.Win64].AsBool(); + set => this.Set((int)ComponentSymbolFields.Win64, value); } public string Condition { - get => (string)this.Fields[(int)ComponentTupleFields.Condition]; - set => this.Set((int)ComponentTupleFields.Condition, value); + get => (string)this.Fields[(int)ComponentSymbolFields.Condition]; + set => this.Set((int)ComponentSymbolFields.Condition, value); } public string KeyPath { - get => (string)this.Fields[(int)ComponentTupleFields.KeyPath]; - set => this.Set((int)ComponentTupleFields.KeyPath, value); + get => (string)this.Fields[(int)ComponentSymbolFields.KeyPath]; + set => this.Set((int)ComponentSymbolFields.KeyPath, value); } public ComponentKeyPathType KeyPathType { - get => (ComponentKeyPathType)this.Fields[(int)ComponentTupleFields.KeyPathType].AsNumber(); - set => this.Set((int)ComponentTupleFields.KeyPathType, (int)value); + get => (ComponentKeyPathType)this.Fields[(int)ComponentSymbolFields.KeyPathType].AsNumber(); + set => this.Set((int)ComponentSymbolFields.KeyPathType, (int)value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ConditionTuple.cs b/src/WixToolset.Data/Tuples/ConditionTuple.cs index 9b2284a4..3a94ebb1 100644 --- a/src/WixToolset.Data/Tuples/ConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/ConditionTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Condition = new IntermediateTupleDefinition( - TupleDefinitionType.Condition, + public static readonly IntermediateSymbolDefinition Condition = new IntermediateSymbolDefinition( + SymbolDefinitionType.Condition, new[] { - new IntermediateFieldDefinition(nameof(ConditionTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ConditionTupleFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ConditionTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Condition), IntermediateFieldType.String), }, - typeof(ConditionTuple)); + typeof(ConditionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ConditionTupleFields + public enum ConditionSymbolFields { FeatureRef, Level, Condition, } - public class ConditionTuple : IntermediateTuple + public class ConditionSymbol : IntermediateSymbol { - public ConditionTuple() : base(TupleDefinitions.Condition, null, null) + public ConditionSymbol() : base(SymbolDefinitions.Condition, null, null) { } - public ConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Condition, sourceLineNumber, id) + public ConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Condition, sourceLineNumber, id) { } - public IntermediateField this[ConditionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ConditionSymbolFields index] => this.Fields[(int)index]; public string FeatureRef { - get => (string)this.Fields[(int)ConditionTupleFields.FeatureRef]; - set => this.Set((int)ConditionTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)ConditionSymbolFields.FeatureRef]; + set => this.Set((int)ConditionSymbolFields.FeatureRef, value); } public int Level { - get => (int)this.Fields[(int)ConditionTupleFields.Level]; - set => this.Set((int)ConditionTupleFields.Level, value); + get => (int)this.Fields[(int)ConditionSymbolFields.Level]; + set => this.Set((int)ConditionSymbolFields.Level, value); } public string Condition { - get => (string)this.Fields[(int)ConditionTupleFields.Condition]; - set => this.Set((int)ConditionTupleFields.Condition, value); + get => (string)this.Fields[(int)ConditionSymbolFields.Condition]; + set => this.Set((int)ConditionSymbolFields.Condition, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs index 2e5dbf77..cc5f2d74 100644 --- a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ControlCondition = new IntermediateTupleDefinition( - TupleDefinitionType.ControlCondition, + public static readonly IntermediateSymbolDefinition ControlCondition = new IntermediateSymbolDefinition( + SymbolDefinitionType.ControlCondition, new[] { - new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Condition), IntermediateFieldType.String), }, - typeof(ControlConditionTuple)); + typeof(ControlConditionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ControlConditionTupleFields + public enum ControlConditionSymbolFields { DialogRef, ControlRef, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Condition, } - public class ControlConditionTuple : IntermediateTuple + public class ControlConditionSymbol : IntermediateSymbol { - public ControlConditionTuple() : base(TupleDefinitions.ControlCondition, null, null) + public ControlConditionSymbol() : base(SymbolDefinitions.ControlCondition, null, null) { } - public ControlConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ControlCondition, sourceLineNumber, id) + public ControlConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlCondition, sourceLineNumber, id) { } - public IntermediateField this[ControlConditionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ControlConditionSymbolFields index] => this.Fields[(int)index]; public string DialogRef { - get => (string)this.Fields[(int)ControlConditionTupleFields.DialogRef]; - set => this.Set((int)ControlConditionTupleFields.DialogRef, value); + get => (string)this.Fields[(int)ControlConditionSymbolFields.DialogRef]; + set => this.Set((int)ControlConditionSymbolFields.DialogRef, value); } public string ControlRef { - get => (string)this.Fields[(int)ControlConditionTupleFields.ControlRef]; - set => this.Set((int)ControlConditionTupleFields.ControlRef, value); + get => (string)this.Fields[(int)ControlConditionSymbolFields.ControlRef]; + set => this.Set((int)ControlConditionSymbolFields.ControlRef, value); } public string Action { - get => (string)this.Fields[(int)ControlConditionTupleFields.Action]; - set => this.Set((int)ControlConditionTupleFields.Action, value); + get => (string)this.Fields[(int)ControlConditionSymbolFields.Action]; + set => this.Set((int)ControlConditionSymbolFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)ControlConditionTupleFields.Condition]; - set => this.Set((int)ControlConditionTupleFields.Condition, value); + get => (string)this.Fields[(int)ControlConditionSymbolFields.Condition]; + set => this.Set((int)ControlConditionSymbolFields.Condition, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlEventTuple.cs b/src/WixToolset.Data/Tuples/ControlEventTuple.cs index 9c460353..3cf6da53 100644 --- a/src/WixToolset.Data/Tuples/ControlEventTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlEventTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ControlEvent = new IntermediateTupleDefinition( - TupleDefinitionType.ControlEvent, + public static readonly IntermediateSymbolDefinition ControlEvent = new IntermediateSymbolDefinition( + SymbolDefinitionType.ControlEvent, new[] { - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Event), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Ordering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Ordering), IntermediateFieldType.Number), }, - typeof(ControlEventTuple)); + typeof(ControlEventSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ControlEventTupleFields + public enum ControlEventSymbolFields { DialogRef, ControlRef, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples Ordering, } - public class ControlEventTuple : IntermediateTuple + public class ControlEventSymbol : IntermediateSymbol { - public ControlEventTuple() : base(TupleDefinitions.ControlEvent, null, null) + public ControlEventSymbol() : base(SymbolDefinitions.ControlEvent, null, null) { } - public ControlEventTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ControlEvent, sourceLineNumber, id) + public ControlEventSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlEvent, sourceLineNumber, id) { } - public IntermediateField this[ControlEventTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ControlEventSymbolFields index] => this.Fields[(int)index]; public string DialogRef { - get => (string)this.Fields[(int)ControlEventTupleFields.DialogRef]; - set => this.Set((int)ControlEventTupleFields.DialogRef, value); + get => (string)this.Fields[(int)ControlEventSymbolFields.DialogRef]; + set => this.Set((int)ControlEventSymbolFields.DialogRef, value); } public string ControlRef { - get => (string)this.Fields[(int)ControlEventTupleFields.ControlRef]; - set => this.Set((int)ControlEventTupleFields.ControlRef, value); + get => (string)this.Fields[(int)ControlEventSymbolFields.ControlRef]; + set => this.Set((int)ControlEventSymbolFields.ControlRef, value); } public string Event { - get => (string)this.Fields[(int)ControlEventTupleFields.Event]; - set => this.Set((int)ControlEventTupleFields.Event, value); + get => (string)this.Fields[(int)ControlEventSymbolFields.Event]; + set => this.Set((int)ControlEventSymbolFields.Event, value); } public string Argument { - get => (string)this.Fields[(int)ControlEventTupleFields.Argument]; - set => this.Set((int)ControlEventTupleFields.Argument, value); + get => (string)this.Fields[(int)ControlEventSymbolFields.Argument]; + set => this.Set((int)ControlEventSymbolFields.Argument, value); } public string Condition { - get => (string)this.Fields[(int)ControlEventTupleFields.Condition]; - set => this.Set((int)ControlEventTupleFields.Condition, value); + get => (string)this.Fields[(int)ControlEventSymbolFields.Condition]; + set => this.Set((int)ControlEventSymbolFields.Condition, value); } public int? Ordering { - get => (int?)this.Fields[(int)ControlEventTupleFields.Ordering]; - set => this.Set((int)ControlEventTupleFields.Ordering, value); + get => (int?)this.Fields[(int)ControlEventSymbolFields.Ordering]; + set => this.Set((int)ControlEventSymbolFields.Ordering, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs index 165e40e2..732566d5 100644 --- a/src/WixToolset.Data/Tuples/ControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ControlTuple.cs @@ -2,44 +2,44 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Control = new IntermediateTupleDefinition( - TupleDefinitionType.Control, + public static readonly IntermediateSymbolDefinition Control = new IntermediateSymbolDefinition( + SymbolDefinitionType.Control, new[] { - new IntermediateFieldDefinition(nameof(ControlTupleFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Control), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Enabled), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Indirect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Integer), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Sunken), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.NextControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.Help), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlTupleFields.TrackDiskSpace), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlTupleFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Control), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Enabled), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Indirect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Integer), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Sunken), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.NextControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Help), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.SourceFile), IntermediateFieldType.Path), }, - typeof(ControlTuple)); + typeof(ControlSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ControlTupleFields + public enum ControlSymbolFields { DialogRef, Control, @@ -65,239 +65,239 @@ namespace WixToolset.Data.Tuples SourceFile, } - public class ControlTuple : IntermediateTuple + public class ControlSymbol : IntermediateSymbol { - public ControlTuple() : base(TupleDefinitions.Control, null, null) + public ControlSymbol() : base(SymbolDefinitions.Control, null, null) { } - public ControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Control, sourceLineNumber, id) + public ControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Control, sourceLineNumber, id) { } - public IntermediateField this[ControlTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ControlSymbolFields index] => this.Fields[(int)index]; public string DialogRef { - get => (string)this.Fields[(int)ControlTupleFields.DialogRef]; - set => this.Set((int)ControlTupleFields.DialogRef, value); + get => (string)this.Fields[(int)ControlSymbolFields.DialogRef]; + set => this.Set((int)ControlSymbolFields.DialogRef, value); } public string Control { - get => (string)this.Fields[(int)ControlTupleFields.Control]; - set => this.Set((int)ControlTupleFields.Control, value); + get => (string)this.Fields[(int)ControlSymbolFields.Control]; + set => this.Set((int)ControlSymbolFields.Control, value); } public string Type { - get => (string)this.Fields[(int)ControlTupleFields.Type]; - set => this.Set((int)ControlTupleFields.Type, value); + get => (string)this.Fields[(int)ControlSymbolFields.Type]; + set => this.Set((int)ControlSymbolFields.Type, value); } public int X { - get => (int)this.Fields[(int)ControlTupleFields.X]; - set => this.Set((int)ControlTupleFields.X, value); + get => (int)this.Fields[(int)ControlSymbolFields.X]; + set => this.Set((int)ControlSymbolFields.X, value); } public int Y { - get => (int)this.Fields[(int)ControlTupleFields.Y]; - set => this.Set((int)ControlTupleFields.Y, value); + get => (int)this.Fields[(int)ControlSymbolFields.Y]; + set => this.Set((int)ControlSymbolFields.Y, value); } public int Width { - get => (int)this.Fields[(int)ControlTupleFields.Width]; - set => this.Set((int)ControlTupleFields.Width, value); + get => (int)this.Fields[(int)ControlSymbolFields.Width]; + set => this.Set((int)ControlSymbolFields.Width, value); } public int Height { - get => (int)this.Fields[(int)ControlTupleFields.Height]; - set => this.Set((int)ControlTupleFields.Height, value); + get => (int)this.Fields[(int)ControlSymbolFields.Height]; + set => this.Set((int)ControlSymbolFields.Height, value); } public int? Attributes { - get => (int?)this.Fields[(int)ControlTupleFields.Attributes]; - set => this.Set((int)ControlTupleFields.Attributes, value); + get => (int?)this.Fields[(int)ControlSymbolFields.Attributes]; + set => this.Set((int)ControlSymbolFields.Attributes, value); } public bool Enabled { - get => this.Fields[(int)ControlTupleFields.Enabled].AsBool(); - set => this.Set((int)ControlTupleFields.Enabled, value); + get => this.Fields[(int)ControlSymbolFields.Enabled].AsBool(); + set => this.Set((int)ControlSymbolFields.Enabled, value); } public bool Indirect { - get => this.Fields[(int)ControlTupleFields.Indirect].AsBool(); - set => this.Set((int)ControlTupleFields.Indirect, value); + get => this.Fields[(int)ControlSymbolFields.Indirect].AsBool(); + set => this.Set((int)ControlSymbolFields.Indirect, value); } public bool Integer { - get => this.Fields[(int)ControlTupleFields.Integer].AsBool(); - set => this.Set((int)ControlTupleFields.Integer, value); + get => this.Fields[(int)ControlSymbolFields.Integer].AsBool(); + set => this.Set((int)ControlSymbolFields.Integer, value); } /* /// PictureButton control public bool Bitmap { - get => this.Fields[(int)ControlTupleFields.Bitmap].AsBool(); - set => this.Set((int)ControlTupleFields.Bitmap, value); + get => this.Fields[(int)ControlSymbolFields.Bitmap].AsBool(); + set => this.Set((int)ControlSymbolFields.Bitmap, value); } /// RadioButton control public bool Border { - get => this.Fields[(int)ControlTupleFields.Border].AsBool(); - set => this.Set((int)ControlTupleFields.Border, value); + get => this.Fields[(int)ControlSymbolFields.Border].AsBool(); + set => this.Set((int)ControlSymbolFields.Border, value); } /// ListBox and ComboBox control public bool ComboList { - get => this.Fields[(int)ControlTupleFields.ComboList].AsBool(); - set => this.Set((int)ControlTupleFields.ComboList, value); + get => this.Fields[(int)ControlSymbolFields.ComboList].AsBool(); + set => this.Set((int)ControlSymbolFields.ComboList, value); } /// PushButton control public bool ElevationShield { - get => this.Fields[(int)ControlTupleFields.ElevationShield].AsBool(); - set => this.Set((int)ControlTupleFields.ElevationShield, value); + get => this.Fields[(int)ControlSymbolFields.ElevationShield].AsBool(); + set => this.Set((int)ControlSymbolFields.ElevationShield, value); } /// PictureButton control public bool FixedSize { - get => this.Fields[(int)ControlTupleFields.FixedSize].AsBool(); - set => this.Set((int)ControlTupleFields.FixedSize, value); + get => this.Fields[(int)ControlSymbolFields.FixedSize].AsBool(); + set => this.Set((int)ControlSymbolFields.FixedSize, value); } /// PictureButton control public bool Icon { - get => this.Fields[(int)ControlTupleFields.Icon].AsBool(); - set => this.Set((int)ControlTupleFields.Icon, value); + get => this.Fields[(int)ControlSymbolFields.Icon].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon, value); } /// PictureButton control public bool Icon16 { - get => this.Fields[(int)ControlTupleFields.Icon16].AsBool(); - set => this.Set((int)ControlTupleFields.Icon16, value); + get => this.Fields[(int)ControlSymbolFields.Icon16].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon16, value); } /// PictureButton control public bool Icon32 { - get => this.Fields[(int)ControlTupleFields.Icon32].AsBool(); - set => this.Set((int)ControlTupleFields.Icon32, value); + get => this.Fields[(int)ControlSymbolFields.Icon32].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon32, value); } /// PictureButton control public bool Icon48 { - get => this.Fields[(int)ControlTupleFields.Icon48].AsBool(); - set => this.Set((int)ControlTupleFields.Icon48, value); + get => this.Fields[(int)ControlSymbolFields.Icon48].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon48, value); } */ public bool LeftScroll { - get => this.Fields[(int)ControlTupleFields.LeftScroll].AsBool(); - set => this.Set((int)ControlTupleFields.LeftScroll, value); + get => this.Fields[(int)ControlSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)ControlSymbolFields.LeftScroll, value); } /* /// PictureButton control public bool PushLike { - get => this.Fields[(int)ControlTupleFields.PushLike].AsBool(); - set => this.Set((int)ControlTupleFields.PushLike, value); + get => this.Fields[(int)ControlSymbolFields.PushLike].AsBool(); + set => this.Set((int)ControlSymbolFields.PushLike, value); } /// Edit control public bool Mulitline { - get => this.Fields[(int)ControlTupleFields.Mulitline].AsBool(); - set => this.Set((int)ControlTupleFields.Mulitline, value); + get => this.Fields[(int)ControlSymbolFields.Mulitline].AsBool(); + set => this.Set((int)ControlSymbolFields.Mulitline, value); } */ public bool RightAligned { - get => this.Fields[(int)ControlTupleFields.RightAligned].AsBool(); - set => this.Set((int)ControlTupleFields.RightAligned, value); + get => this.Fields[(int)ControlSymbolFields.RightAligned].AsBool(); + set => this.Set((int)ControlSymbolFields.RightAligned, value); } public bool RightToLeft { - get => this.Fields[(int)ControlTupleFields.RightToLeft].AsBool(); - set => this.Set((int)ControlTupleFields.RightToLeft, value); + get => this.Fields[(int)ControlSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)ControlSymbolFields.RightToLeft, value); } /* /// VolumeCostList control public bool ShowRollbackCost { - get => this.Fields[(int)ControlTupleFields.ShowRollbackCost].AsBool(); - set => this.Set((int)ControlTupleFields.ShowRollbackCost, value); + get => this.Fields[(int)ControlSymbolFields.ShowRollbackCost].AsBool(); + set => this.Set((int)ControlSymbolFields.ShowRollbackCost, value); } /// ListBox and ComboBox control public bool Sorted { - get => this.Fields[(int)ControlTupleFields.Sorted].AsBool(); - set => this.Set((int)ControlTupleFields.Sorted, value); + get => this.Fields[(int)ControlSymbolFields.Sorted].AsBool(); + set => this.Set((int)ControlSymbolFields.Sorted, value); } */ public bool Sunken { - get => this.Fields[(int)ControlTupleFields.Sunken].AsBool(); - set => this.Set((int)ControlTupleFields.Sunken, value); + get => this.Fields[(int)ControlSymbolFields.Sunken].AsBool(); + set => this.Set((int)ControlSymbolFields.Sunken, value); } public bool Visible { - get => this.Fields[(int)ControlTupleFields.Visible].AsBool(); - set => this.Set((int)ControlTupleFields.Visible, value); + get => this.Fields[(int)ControlSymbolFields.Visible].AsBool(); + set => this.Set((int)ControlSymbolFields.Visible, value); } public string Property { - get => (string)this.Fields[(int)ControlTupleFields.Property]; - set => this.Set((int)ControlTupleFields.Property, value); + get => (string)this.Fields[(int)ControlSymbolFields.Property]; + set => this.Set((int)ControlSymbolFields.Property, value); } public string Text { - get => (string)this.Fields[(int)ControlTupleFields.Text]; - set => this.Set((int)ControlTupleFields.Text, value); + get => (string)this.Fields[(int)ControlSymbolFields.Text]; + set => this.Set((int)ControlSymbolFields.Text, value); } public string NextControlRef { - get => (string)this.Fields[(int)ControlTupleFields.NextControlRef]; - set => this.Set((int)ControlTupleFields.NextControlRef, value); + get => (string)this.Fields[(int)ControlSymbolFields.NextControlRef]; + set => this.Set((int)ControlSymbolFields.NextControlRef, value); } public string Help { - get => (string)this.Fields[(int)ControlTupleFields.Help]; - set => this.Set((int)ControlTupleFields.Help, value); + get => (string)this.Fields[(int)ControlSymbolFields.Help]; + set => this.Set((int)ControlSymbolFields.Help, value); } public bool TrackDiskSpace { - get => this.Fields[(int)ControlTupleFields.TrackDiskSpace].AsBool(); - set => this.Set((int)ControlTupleFields.TrackDiskSpace, value); + get => this.Fields[(int)ControlSymbolFields.TrackDiskSpace].AsBool(); + set => this.Set((int)ControlSymbolFields.TrackDiskSpace, value); } public IntermediateFieldPathValue SourceFile { - get => this.Fields[(int)ControlTupleFields.SourceFile].AsPath(); - set => this.Set((int)ControlTupleFields.SourceFile, value); + get => this.Fields[(int)ControlSymbolFields.SourceFile].AsPath(); + set => this.Set((int)ControlSymbolFields.SourceFile, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs index d9d4763e..2b282266 100644 --- a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs +++ b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition CreateFolder = new IntermediateTupleDefinition( - TupleDefinitionType.CreateFolder, + public static readonly IntermediateSymbolDefinition CreateFolder = new IntermediateSymbolDefinition( + SymbolDefinitionType.CreateFolder, new[] { - new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(CreateFolderTuple)); + typeof(CreateFolderSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum CreateFolderTupleFields + public enum CreateFolderSymbolFields { DirectoryRef, ComponentRef, } - public class CreateFolderTuple : IntermediateTuple + public class CreateFolderSymbol : IntermediateSymbol { - public CreateFolderTuple() : base(TupleDefinitions.CreateFolder, null, null) + public CreateFolderSymbol() : base(SymbolDefinitions.CreateFolder, null, null) { } - public CreateFolderTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CreateFolder, sourceLineNumber, id) + public CreateFolderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CreateFolder, sourceLineNumber, id) { } - public IntermediateField this[CreateFolderTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[CreateFolderSymbolFields index] => this.Fields[(int)index]; public string DirectoryRef { - get => (string)this.Fields[(int)CreateFolderTupleFields.DirectoryRef]; - set => this.Set((int)CreateFolderTupleFields.DirectoryRef, value); + get => (string)this.Fields[(int)CreateFolderSymbolFields.DirectoryRef]; + set => this.Set((int)CreateFolderSymbolFields.DirectoryRef, value); } public string ComponentRef { - get => (string)this.Fields[(int)CreateFolderTupleFields.ComponentRef]; - set => this.Set((int)CreateFolderTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)CreateFolderSymbolFields.ComponentRef]; + set => this.Set((int)CreateFolderSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CustomActionTuple.cs b/src/WixToolset.Data/Tuples/CustomActionTuple.cs index b2b34df0..1180dab4 100644 --- a/src/WixToolset.Data/Tuples/CustomActionTuple.cs +++ b/src/WixToolset.Data/Tuples/CustomActionTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition CustomAction = new IntermediateTupleDefinition( - TupleDefinitionType.CustomAction, + public static readonly IntermediateSymbolDefinition CustomAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.CustomAction, new[] { - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.ExecutionType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.SourceType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.TargetType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Async), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.IgnoreResult), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Impersonate), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.PatchUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.TSAware), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Win64), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionTupleFields.ScriptFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ExecutionType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.SourceType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TargetType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Async), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.IgnoreResult), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Impersonate), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.PatchUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TSAware), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ScriptFile), IntermediateFieldType.Path), }, - typeof(CustomActionTuple)); + typeof(CustomActionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum CustomActionTupleFields + public enum CustomActionSymbolFields { ExecutionType, Source, @@ -75,94 +75,94 @@ namespace WixToolset.Data.Tuples VBScript = 6, } - public class CustomActionTuple : IntermediateTuple + public class CustomActionSymbol : IntermediateSymbol { - public CustomActionTuple() : base(TupleDefinitions.CustomAction, null, null) + public CustomActionSymbol() : base(SymbolDefinitions.CustomAction, null, null) { } - public CustomActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CustomAction, sourceLineNumber, id) + public CustomActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CustomAction, sourceLineNumber, id) { } - public IntermediateField this[CustomActionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[CustomActionSymbolFields index] => this.Fields[(int)index]; public CustomActionExecutionType ExecutionType { - get => (CustomActionExecutionType)this.Fields[(int)CustomActionTupleFields.ExecutionType].AsNumber(); - set => this.Set((int)CustomActionTupleFields.ExecutionType, (int)value); + get => (CustomActionExecutionType)this.Fields[(int)CustomActionSymbolFields.ExecutionType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.ExecutionType, (int)value); } public string Source { - get => (string)this.Fields[(int)CustomActionTupleFields.Source]; - set => this.Set((int)CustomActionTupleFields.Source, value); + get => (string)this.Fields[(int)CustomActionSymbolFields.Source]; + set => this.Set((int)CustomActionSymbolFields.Source, value); } public CustomActionSourceType SourceType { - get => (CustomActionSourceType)this.Fields[(int)CustomActionTupleFields.SourceType].AsNumber(); - set => this.Set((int)CustomActionTupleFields.SourceType, (int)value); + get => (CustomActionSourceType)this.Fields[(int)CustomActionSymbolFields.SourceType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.SourceType, (int)value); } public string Target { - get => (string)this.Fields[(int)CustomActionTupleFields.Target]; - set => this.Set((int)CustomActionTupleFields.Target, value); + get => (string)this.Fields[(int)CustomActionSymbolFields.Target]; + set => this.Set((int)CustomActionSymbolFields.Target, value); } public CustomActionTargetType TargetType { - get => (CustomActionTargetType)this.Fields[(int)CustomActionTupleFields.TargetType].AsNumber(); - set => this.Set((int)CustomActionTupleFields.TargetType, (int)value); + get => (CustomActionTargetType)this.Fields[(int)CustomActionSymbolFields.TargetType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.TargetType, (int)value); } public bool Async { - get => this.Fields[(int)CustomActionTupleFields.Async].AsBool(); - set => this.Set((int)CustomActionTupleFields.Async, value); + get => this.Fields[(int)CustomActionSymbolFields.Async].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Async, value); } public bool Hidden { - get => this.Fields[(int)CustomActionTupleFields.Hidden].AsBool(); - set => this.Set((int)CustomActionTupleFields.Hidden, value); + get => this.Fields[(int)CustomActionSymbolFields.Hidden].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Hidden, value); } public bool IgnoreResult { - get => this.Fields[(int)CustomActionTupleFields.IgnoreResult].AsBool(); - set => this.Set((int)CustomActionTupleFields.IgnoreResult, value); + get => this.Fields[(int)CustomActionSymbolFields.IgnoreResult].AsBool(); + set => this.Set((int)CustomActionSymbolFields.IgnoreResult, value); } public bool Impersonate { - get => this.Fields[(int)CustomActionTupleFields.Impersonate].AsBool(); - set => this.Set((int)CustomActionTupleFields.Impersonate, value); + get => this.Fields[(int)CustomActionSymbolFields.Impersonate].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Impersonate, value); } public bool PatchUninstall { - get => this.Fields[(int)CustomActionTupleFields.PatchUninstall].AsBool(); - set => this.Set((int)CustomActionTupleFields.PatchUninstall, value); + get => this.Fields[(int)CustomActionSymbolFields.PatchUninstall].AsBool(); + set => this.Set((int)CustomActionSymbolFields.PatchUninstall, value); } public bool TSAware { - get => this.Fields[(int)CustomActionTupleFields.TSAware].AsBool(); - set => this.Set((int)CustomActionTupleFields.TSAware, value); + get => this.Fields[(int)CustomActionSymbolFields.TSAware].AsBool(); + set => this.Set((int)CustomActionSymbolFields.TSAware, value); } public bool Win64 { - get => this.Fields[(int)CustomActionTupleFields.Win64].AsBool(); - set => this.Set((int)CustomActionTupleFields.Win64, value); + get => this.Fields[(int)CustomActionSymbolFields.Win64].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Win64, value); } public IntermediateFieldPathValue ScriptFile { - get => this.Fields[(int)CustomActionTupleFields.ScriptFile].AsPath(); - set => this.Set((int)CustomActionTupleFields.ScriptFile, value); + get => this.Fields[(int)CustomActionSymbolFields.ScriptFile].AsPath(); + set => this.Set((int)CustomActionSymbolFields.ScriptFile, value); } } } diff --git a/src/WixToolset.Data/Tuples/DialogTuple.cs b/src/WixToolset.Data/Tuples/DialogTuple.cs index 492d2fb1..ee030405 100644 --- a/src/WixToolset.Data/Tuples/DialogTuple.cs +++ b/src/WixToolset.Data/Tuples/DialogTuple.cs @@ -2,41 +2,41 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Dialog = new IntermediateTupleDefinition( - TupleDefinitionType.Dialog, + public static readonly IntermediateSymbolDefinition Dialog = new IntermediateSymbolDefinition( + SymbolDefinitionType.Dialog, new[] { - new IntermediateFieldDefinition(nameof(DialogTupleFields.HCentering), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogTupleFields.VCentering), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogTupleFields.CustomPalette), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.ErrorDialog), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Modal), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.KeepModeless), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Minimize), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.SystemModal), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.TrackDiskSpace), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogTupleFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogTupleFields.FirstControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogTupleFields.DefaultControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogTupleFields.CancelControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.HCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.VCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.CustomPalette), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.ErrorDialog), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Modal), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.KeepModeless), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Minimize), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.SystemModal), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.FirstControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.DefaultControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.CancelControlRef), IntermediateFieldType.String), }, - typeof(DialogTuple)); + typeof(DialogSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum DialogTupleFields + public enum DialogSymbolFields { HCentering, VCentering, @@ -59,130 +59,130 @@ namespace WixToolset.Data.Tuples CancelControlRef, } - public class DialogTuple : IntermediateTuple + public class DialogSymbol : IntermediateSymbol { - public DialogTuple() : base(TupleDefinitions.Dialog, null, null) + public DialogSymbol() : base(SymbolDefinitions.Dialog, null, null) { } - public DialogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Dialog, sourceLineNumber, id) + public DialogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Dialog, sourceLineNumber, id) { } - public IntermediateField this[DialogTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[DialogSymbolFields index] => this.Fields[(int)index]; public int HCentering { - get => (int)this.Fields[(int)DialogTupleFields.HCentering]; - set => this.Set((int)DialogTupleFields.HCentering, value); + get => (int)this.Fields[(int)DialogSymbolFields.HCentering]; + set => this.Set((int)DialogSymbolFields.HCentering, value); } public int VCentering { - get => (int)this.Fields[(int)DialogTupleFields.VCentering]; - set => this.Set((int)DialogTupleFields.VCentering, value); + get => (int)this.Fields[(int)DialogSymbolFields.VCentering]; + set => this.Set((int)DialogSymbolFields.VCentering, value); } public int Width { - get => (int)this.Fields[(int)DialogTupleFields.Width]; - set => this.Set((int)DialogTupleFields.Width, value); + get => (int)this.Fields[(int)DialogSymbolFields.Width]; + set => this.Set((int)DialogSymbolFields.Width, value); } public int Height { - get => (int)this.Fields[(int)DialogTupleFields.Height]; - set => this.Set((int)DialogTupleFields.Height, value); + get => (int)this.Fields[(int)DialogSymbolFields.Height]; + set => this.Set((int)DialogSymbolFields.Height, value); } public bool CustomPalette { - get => this.Fields[(int)DialogTupleFields.CustomPalette].AsBool(); - set => this.Set((int)DialogTupleFields.CustomPalette, value); + get => this.Fields[(int)DialogSymbolFields.CustomPalette].AsBool(); + set => this.Set((int)DialogSymbolFields.CustomPalette, value); } public bool ErrorDialog { - get => this.Fields[(int)DialogTupleFields.ErrorDialog].AsBool(); - set => this.Set((int)DialogTupleFields.ErrorDialog, value); + get => this.Fields[(int)DialogSymbolFields.ErrorDialog].AsBool(); + set => this.Set((int)DialogSymbolFields.ErrorDialog, value); } public bool Visible { - get => this.Fields[(int)DialogTupleFields.Visible].AsBool(); - set => this.Set((int)DialogTupleFields.Visible, value); + get => this.Fields[(int)DialogSymbolFields.Visible].AsBool(); + set => this.Set((int)DialogSymbolFields.Visible, value); } public bool Modal { - get => this.Fields[(int)DialogTupleFields.Modal].AsBool(); - set => this.Set((int)DialogTupleFields.Modal, value); + get => this.Fields[(int)DialogSymbolFields.Modal].AsBool(); + set => this.Set((int)DialogSymbolFields.Modal, value); } public bool KeepModeless { - get => this.Fields[(int)DialogTupleFields.KeepModeless].AsBool(); - set => this.Set((int)DialogTupleFields.KeepModeless, value); + get => this.Fields[(int)DialogSymbolFields.KeepModeless].AsBool(); + set => this.Set((int)DialogSymbolFields.KeepModeless, value); } public bool LeftScroll { - get => this.Fields[(int)DialogTupleFields.LeftScroll].AsBool(); - set => this.Set((int)DialogTupleFields.LeftScroll, value); + get => this.Fields[(int)DialogSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)DialogSymbolFields.LeftScroll, value); } public bool Minimize { - get => this.Fields[(int)DialogTupleFields.Minimize].AsBool(); - set => this.Set((int)DialogTupleFields.Minimize, value); + get => this.Fields[(int)DialogSymbolFields.Minimize].AsBool(); + set => this.Set((int)DialogSymbolFields.Minimize, value); } public bool RightAligned { - get => this.Fields[(int)DialogTupleFields.RightAligned].AsBool(); - set => this.Set((int)DialogTupleFields.RightAligned, value); + get => this.Fields[(int)DialogSymbolFields.RightAligned].AsBool(); + set => this.Set((int)DialogSymbolFields.RightAligned, value); } public bool RightToLeft { - get => this.Fields[(int)DialogTupleFields.RightToLeft].AsBool(); - set => this.Set((int)DialogTupleFields.RightToLeft, value); + get => this.Fields[(int)DialogSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)DialogSymbolFields.RightToLeft, value); } public bool TrackDiskSpace { - get => this.Fields[(int)DialogTupleFields.TrackDiskSpace].AsBool(); - set => this.Set((int)DialogTupleFields.TrackDiskSpace, value); + get => this.Fields[(int)DialogSymbolFields.TrackDiskSpace].AsBool(); + set => this.Set((int)DialogSymbolFields.TrackDiskSpace, value); } public bool SystemModal { - get => this.Fields[(int)DialogTupleFields.SystemModal].AsBool(); - set => this.Set((int)DialogTupleFields.SystemModal, value); + get => this.Fields[(int)DialogSymbolFields.SystemModal].AsBool(); + set => this.Set((int)DialogSymbolFields.SystemModal, value); } public string Title { - get => (string)this.Fields[(int)DialogTupleFields.Title]; - set => this.Set((int)DialogTupleFields.Title, value); + get => (string)this.Fields[(int)DialogSymbolFields.Title]; + set => this.Set((int)DialogSymbolFields.Title, value); } public string FirstControlRef { - get => (string)this.Fields[(int)DialogTupleFields.FirstControlRef]; - set => this.Set((int)DialogTupleFields.FirstControlRef, value); + get => (string)this.Fields[(int)DialogSymbolFields.FirstControlRef]; + set => this.Set((int)DialogSymbolFields.FirstControlRef, value); } public string DefaultControlRef { - get => (string)this.Fields[(int)DialogTupleFields.DefaultControlRef]; - set => this.Set((int)DialogTupleFields.DefaultControlRef, value); + get => (string)this.Fields[(int)DialogSymbolFields.DefaultControlRef]; + set => this.Set((int)DialogSymbolFields.DefaultControlRef, value); } public string CancelControlRef { - get => (string)this.Fields[(int)DialogTupleFields.CancelControlRef]; - set => this.Set((int)DialogTupleFields.CancelControlRef, value); + get => (string)this.Fields[(int)DialogSymbolFields.CancelControlRef]; + set => this.Set((int)DialogSymbolFields.CancelControlRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DirectoryTuple.cs b/src/WixToolset.Data/Tuples/DirectoryTuple.cs index 51f559aa..209f5ca1 100644 --- a/src/WixToolset.Data/Tuples/DirectoryTuple.cs +++ b/src/WixToolset.Data/Tuples/DirectoryTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Directory = new IntermediateTupleDefinition( - TupleDefinitionType.Directory, + public static readonly IntermediateSymbolDefinition Directory = new IntermediateSymbolDefinition( + SymbolDefinitionType.Directory, new[] { - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ParentDirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.SourceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.SourceShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectoryTupleFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ParentDirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), }, - typeof(DirectoryTuple)); + typeof(DirectorySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum DirectoryTupleFields + public enum DirectorySymbolFields { ParentDirectoryRef, Name, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples ComponentGuidGenerationSeed, } - public class DirectoryTuple : IntermediateTuple + public class DirectorySymbol : IntermediateSymbol { - public DirectoryTuple() : base(TupleDefinitions.Directory, null, null) + public DirectorySymbol() : base(SymbolDefinitions.Directory, null, null) { } - public DirectoryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Directory, sourceLineNumber, id) + public DirectorySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Directory, sourceLineNumber, id) { } - public IntermediateField this[DirectoryTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[DirectorySymbolFields index] => this.Fields[(int)index]; public string ParentDirectoryRef { - get => (string)this.Fields[(int)DirectoryTupleFields.ParentDirectoryRef]; - set => this.Set((int)DirectoryTupleFields.ParentDirectoryRef, value); + get => (string)this.Fields[(int)DirectorySymbolFields.ParentDirectoryRef]; + set => this.Set((int)DirectorySymbolFields.ParentDirectoryRef, value); } public string Name { - get => (string)this.Fields[(int)DirectoryTupleFields.Name]; - set => this.Set((int)DirectoryTupleFields.Name, value); + get => (string)this.Fields[(int)DirectorySymbolFields.Name]; + set => this.Set((int)DirectorySymbolFields.Name, value); } public string ShortName { - get => (string)this.Fields[(int)DirectoryTupleFields.ShortName]; - set => this.Set((int)DirectoryTupleFields.ShortName, value); + get => (string)this.Fields[(int)DirectorySymbolFields.ShortName]; + set => this.Set((int)DirectorySymbolFields.ShortName, value); } public string SourceName { - get => (string)this.Fields[(int)DirectoryTupleFields.SourceName]; - set => this.Set((int)DirectoryTupleFields.SourceName, value); + get => (string)this.Fields[(int)DirectorySymbolFields.SourceName]; + set => this.Set((int)DirectorySymbolFields.SourceName, value); } public string SourceShortName { - get => (string)this.Fields[(int)DirectoryTupleFields.SourceShortName]; - set => this.Set((int)DirectoryTupleFields.SourceShortName, value); + get => (string)this.Fields[(int)DirectorySymbolFields.SourceShortName]; + set => this.Set((int)DirectorySymbolFields.SourceShortName, value); } public string ComponentGuidGenerationSeed { - get => (string)this.Fields[(int)DirectoryTupleFields.ComponentGuidGenerationSeed]; - set => this.Set((int)DirectoryTupleFields.ComponentGuidGenerationSeed, value); + get => (string)this.Fields[(int)DirectorySymbolFields.ComponentGuidGenerationSeed]; + set => this.Set((int)DirectorySymbolFields.ComponentGuidGenerationSeed, value); } } } diff --git a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs index 667ffda1..e403c61c 100644 --- a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition DrLocator = new IntermediateTupleDefinition( - TupleDefinitionType.DrLocator, + public static readonly IntermediateSymbolDefinition DrLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.DrLocator, new[] { - new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Path), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Depth), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Depth), IntermediateFieldType.Number), }, - typeof(DrLocatorTuple)); + typeof(DrLocatorSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum DrLocatorTupleFields + public enum DrLocatorSymbolFields { SignatureRef, Parent, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Depth, } - public class DrLocatorTuple : IntermediateTuple + public class DrLocatorSymbol : IntermediateSymbol { - public DrLocatorTuple() : base(TupleDefinitions.DrLocator, null, null) + public DrLocatorSymbol() : base(SymbolDefinitions.DrLocator, null, null) { } - public DrLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.DrLocator, sourceLineNumber, id) + public DrLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DrLocator, sourceLineNumber, id) { } - public IntermediateField this[DrLocatorTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[DrLocatorSymbolFields index] => this.Fields[(int)index]; public string SignatureRef { - get => (string)this.Fields[(int)DrLocatorTupleFields.SignatureRef]; - set => this.Set((int)DrLocatorTupleFields.SignatureRef, value); + get => (string)this.Fields[(int)DrLocatorSymbolFields.SignatureRef]; + set => this.Set((int)DrLocatorSymbolFields.SignatureRef, value); } public string Parent { - get => (string)this.Fields[(int)DrLocatorTupleFields.Parent]; - set => this.Set((int)DrLocatorTupleFields.Parent, value); + get => (string)this.Fields[(int)DrLocatorSymbolFields.Parent]; + set => this.Set((int)DrLocatorSymbolFields.Parent, value); } public string Path { - get => (string)this.Fields[(int)DrLocatorTupleFields.Path]; - set => this.Set((int)DrLocatorTupleFields.Path, value); + get => (string)this.Fields[(int)DrLocatorSymbolFields.Path]; + set => this.Set((int)DrLocatorSymbolFields.Path, value); } public int? Depth { - get => (int?)this.Fields[(int)DrLocatorTupleFields.Depth]; - set => this.Set((int)DrLocatorTupleFields.Depth, value); + get => (int?)this.Fields[(int)DrLocatorSymbolFields.Depth]; + set => this.Set((int)DrLocatorSymbolFields.Depth, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs index 87220e80..1344ced4 100644 --- a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs +++ b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition DuplicateFile = new IntermediateTupleDefinition( - TupleDefinitionType.DuplicateFile, + public static readonly IntermediateSymbolDefinition DuplicateFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.DuplicateFile, new[] { - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestinationName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestinationFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationFolder), IntermediateFieldType.String), }, - typeof(DuplicateFileTuple)); + typeof(DuplicateFileSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum DuplicateFileTupleFields + public enum DuplicateFileSymbolFields { ComponentRef, FileRef, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples DestinationFolder, } - public class DuplicateFileTuple : IntermediateTuple + public class DuplicateFileSymbol : IntermediateSymbol { - public DuplicateFileTuple() : base(TupleDefinitions.DuplicateFile, null, null) + public DuplicateFileSymbol() : base(SymbolDefinitions.DuplicateFile, null, null) { } - public DuplicateFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.DuplicateFile, sourceLineNumber, id) + public DuplicateFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DuplicateFile, sourceLineNumber, id) { } - public IntermediateField this[DuplicateFileTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[DuplicateFileSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)DuplicateFileTupleFields.ComponentRef]; - set => this.Set((int)DuplicateFileTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)DuplicateFileSymbolFields.ComponentRef]; + set => this.Set((int)DuplicateFileSymbolFields.ComponentRef, value); } public string FileRef { - get => (string)this.Fields[(int)DuplicateFileTupleFields.FileRef]; - set => this.Set((int)DuplicateFileTupleFields.FileRef, value); + get => (string)this.Fields[(int)DuplicateFileSymbolFields.FileRef]; + set => this.Set((int)DuplicateFileSymbolFields.FileRef, value); } public string DestinationName { - get => (string)this.Fields[(int)DuplicateFileTupleFields.DestinationName]; - set => this.Set((int)DuplicateFileTupleFields.DestinationName, value); + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationName]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationName, value); } public string DestinationFolder { - get => (string)this.Fields[(int)DuplicateFileTupleFields.DestinationFolder]; - set => this.Set((int)DuplicateFileTupleFields.DestinationFolder, value); + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationFolder]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationFolder, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs index 98c51f4d..3fe12d4b 100644 --- a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs +++ b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Environment = new IntermediateTupleDefinition( - TupleDefinitionType.Environment, + public static readonly IntermediateSymbolDefinition Environment = new IntermediateSymbolDefinition( + SymbolDefinitionType.Environment, new[] { - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Separator), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Part), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Permanent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.System), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Separator), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Part), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Permanent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.System), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(EnvironmentTuple)); + typeof(EnvironmentSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum EnvironmentTupleFields + public enum EnvironmentSymbolFields { Name, Value, @@ -51,64 +51,64 @@ namespace WixToolset.Data.Tuples Last } - public class EnvironmentTuple : IntermediateTuple + public class EnvironmentSymbol : IntermediateSymbol { - public EnvironmentTuple() : base(TupleDefinitions.Environment, null, null) + public EnvironmentSymbol() : base(SymbolDefinitions.Environment, null, null) { } - public EnvironmentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Environment, sourceLineNumber, id) + public EnvironmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Environment, sourceLineNumber, id) { } - public IntermediateField this[EnvironmentTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[EnvironmentSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)EnvironmentTupleFields.Name]; - set => this.Set((int)EnvironmentTupleFields.Name, value); + get => (string)this.Fields[(int)EnvironmentSymbolFields.Name]; + set => this.Set((int)EnvironmentSymbolFields.Name, value); } public string Value { - get => (string)this.Fields[(int)EnvironmentTupleFields.Value]; - set => this.Set((int)EnvironmentTupleFields.Value, value); + get => (string)this.Fields[(int)EnvironmentSymbolFields.Value]; + set => this.Set((int)EnvironmentSymbolFields.Value, value); } public string Separator { - get => (string)this.Fields[(int)EnvironmentTupleFields.Separator]; - set => this.Set((int)EnvironmentTupleFields.Separator, value); + get => (string)this.Fields[(int)EnvironmentSymbolFields.Separator]; + set => this.Set((int)EnvironmentSymbolFields.Separator, value); } public EnvironmentActionType? Action { - get => (EnvironmentActionType?)this.Fields[(int)EnvironmentTupleFields.Action].AsNullableNumber(); - set => this.Set((int)EnvironmentTupleFields.Action, (int?)value); + get => (EnvironmentActionType?)this.Fields[(int)EnvironmentSymbolFields.Action].AsNullableNumber(); + set => this.Set((int)EnvironmentSymbolFields.Action, (int?)value); } public EnvironmentPartType? Part { - get => (EnvironmentPartType?)this.Fields[(int)EnvironmentTupleFields.Part].AsNullableNumber(); - set => this.Set((int)EnvironmentTupleFields.Part, (int?)value); + get => (EnvironmentPartType?)this.Fields[(int)EnvironmentSymbolFields.Part].AsNullableNumber(); + set => this.Set((int)EnvironmentSymbolFields.Part, (int?)value); } public bool Permanent { - get => this.Fields[(int)EnvironmentTupleFields.Permanent].AsBool(); - set => this.Set((int)EnvironmentTupleFields.Permanent, value); + get => this.Fields[(int)EnvironmentSymbolFields.Permanent].AsBool(); + set => this.Set((int)EnvironmentSymbolFields.Permanent, value); } public bool System { - get => this.Fields[(int)EnvironmentTupleFields.System].AsBool(); - set => this.Set((int)EnvironmentTupleFields.System, value); + get => this.Fields[(int)EnvironmentSymbolFields.System].AsBool(); + set => this.Set((int)EnvironmentSymbolFields.System, value); } public string ComponentRef { - get => (string)this.Fields[(int)EnvironmentTupleFields.ComponentRef]; - set => this.Set((int)EnvironmentTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)EnvironmentSymbolFields.ComponentRef]; + set => this.Set((int)EnvironmentSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ErrorTuple.cs b/src/WixToolset.Data/Tuples/ErrorTuple.cs index 89968283..d2994598 100644 --- a/src/WixToolset.Data/Tuples/ErrorTuple.cs +++ b/src/WixToolset.Data/Tuples/ErrorTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Error = new IntermediateTupleDefinition( - TupleDefinitionType.Error, + public static readonly IntermediateSymbolDefinition Error = new IntermediateSymbolDefinition( + SymbolDefinitionType.Error, new[] { - new IntermediateFieldDefinition(nameof(ErrorTupleFields.Message), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ErrorSymbolFields.Message), IntermediateFieldType.String), }, - typeof(ErrorTuple)); + typeof(ErrorSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ErrorTupleFields + public enum ErrorSymbolFields { Message, } - public class ErrorTuple : IntermediateTuple + public class ErrorSymbol : IntermediateSymbol { - public ErrorTuple() : base(TupleDefinitions.Error, null, null) + public ErrorSymbol() : base(SymbolDefinitions.Error, null, null) { } - public ErrorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Error, sourceLineNumber, id) + public ErrorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Error, sourceLineNumber, id) { } - public IntermediateField this[ErrorTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ErrorSymbolFields index] => this.Fields[(int)index]; public string Message { - get => (string)this.Fields[(int)ErrorTupleFields.Message]; - set => this.Set((int)ErrorTupleFields.Message, value); + get => (string)this.Fields[(int)ErrorSymbolFields.Message]; + set => this.Set((int)ErrorSymbolFields.Message, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EventMappingTuple.cs b/src/WixToolset.Data/Tuples/EventMappingTuple.cs index d172d4ce..fec7be3b 100644 --- a/src/WixToolset.Data/Tuples/EventMappingTuple.cs +++ b/src/WixToolset.Data/Tuples/EventMappingTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition EventMapping = new IntermediateTupleDefinition( - TupleDefinitionType.EventMapping, + public static readonly IntermediateSymbolDefinition EventMapping = new IntermediateSymbolDefinition( + SymbolDefinitionType.EventMapping, new[] { - new IntermediateFieldDefinition(nameof(EventMappingTupleFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingTupleFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Event), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Attribute), IntermediateFieldType.String), }, - typeof(EventMappingTuple)); + typeof(EventMappingSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum EventMappingTupleFields + public enum EventMappingSymbolFields { DialogRef, ControlRef, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Attribute, } - public class EventMappingTuple : IntermediateTuple + public class EventMappingSymbol : IntermediateSymbol { - public EventMappingTuple() : base(TupleDefinitions.EventMapping, null, null) + public EventMappingSymbol() : base(SymbolDefinitions.EventMapping, null, null) { } - public EventMappingTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.EventMapping, sourceLineNumber, id) + public EventMappingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.EventMapping, sourceLineNumber, id) { } - public IntermediateField this[EventMappingTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[EventMappingSymbolFields index] => this.Fields[(int)index]; public string DialogRef { - get => (string)this.Fields[(int)EventMappingTupleFields.DialogRef]; - set => this.Set((int)EventMappingTupleFields.DialogRef, value); + get => (string)this.Fields[(int)EventMappingSymbolFields.DialogRef]; + set => this.Set((int)EventMappingSymbolFields.DialogRef, value); } public string ControlRef { - get => (string)this.Fields[(int)EventMappingTupleFields.ControlRef]; - set => this.Set((int)EventMappingTupleFields.ControlRef, value); + get => (string)this.Fields[(int)EventMappingSymbolFields.ControlRef]; + set => this.Set((int)EventMappingSymbolFields.ControlRef, value); } public string Event { - get => (string)this.Fields[(int)EventMappingTupleFields.Event]; - set => this.Set((int)EventMappingTupleFields.Event, value); + get => (string)this.Fields[(int)EventMappingSymbolFields.Event]; + set => this.Set((int)EventMappingSymbolFields.Event, value); } public string Attribute { - get => (string)this.Fields[(int)EventMappingTupleFields.Attribute]; - set => this.Set((int)EventMappingTupleFields.Attribute, value); + get => (string)this.Fields[(int)EventMappingSymbolFields.Attribute]; + set => this.Set((int)EventMappingSymbolFields.Attribute, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ExtensionTuple.cs b/src/WixToolset.Data/Tuples/ExtensionTuple.cs index 8d817079..b8806971 100644 --- a/src/WixToolset.Data/Tuples/ExtensionTuple.cs +++ b/src/WixToolset.Data/Tuples/ExtensionTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Extension = new IntermediateTupleDefinition( - TupleDefinitionType.Extension, + public static readonly IntermediateSymbolDefinition Extension = new IntermediateSymbolDefinition( + SymbolDefinitionType.Extension, new[] { - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Extension), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.ProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.MimeRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionTupleFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.Extension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.MimeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.FeatureRef), IntermediateFieldType.String), }, - typeof(ExtensionTuple)); + typeof(ExtensionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ExtensionTupleFields + public enum ExtensionSymbolFields { Extension, ComponentRef, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples FeatureRef, } - public class ExtensionTuple : IntermediateTuple + public class ExtensionSymbol : IntermediateSymbol { - public ExtensionTuple() : base(TupleDefinitions.Extension, null, null) + public ExtensionSymbol() : base(SymbolDefinitions.Extension, null, null) { } - public ExtensionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Extension, sourceLineNumber, id) + public ExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Extension, sourceLineNumber, id) { } - public IntermediateField this[ExtensionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ExtensionSymbolFields index] => this.Fields[(int)index]; public string Extension { - get => (string)this.Fields[(int)ExtensionTupleFields.Extension]; - set => this.Set((int)ExtensionTupleFields.Extension, value); + get => (string)this.Fields[(int)ExtensionSymbolFields.Extension]; + set => this.Set((int)ExtensionSymbolFields.Extension, value); } public string ComponentRef { - get => (string)this.Fields[(int)ExtensionTupleFields.ComponentRef]; - set => this.Set((int)ExtensionTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ExtensionSymbolFields.ComponentRef]; + set => this.Set((int)ExtensionSymbolFields.ComponentRef, value); } public string ProgIdRef { - get => (string)this.Fields[(int)ExtensionTupleFields.ProgIdRef]; - set => this.Set((int)ExtensionTupleFields.ProgIdRef, value); + get => (string)this.Fields[(int)ExtensionSymbolFields.ProgIdRef]; + set => this.Set((int)ExtensionSymbolFields.ProgIdRef, value); } public string MimeRef { - get => (string)this.Fields[(int)ExtensionTupleFields.MimeRef]; - set => this.Set((int)ExtensionTupleFields.MimeRef, value); + get => (string)this.Fields[(int)ExtensionSymbolFields.MimeRef]; + set => this.Set((int)ExtensionSymbolFields.MimeRef, value); } public string FeatureRef { - get => (string)this.Fields[(int)ExtensionTupleFields.FeatureRef]; - set => this.Set((int)ExtensionTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)ExtensionSymbolFields.FeatureRef]; + set => this.Set((int)ExtensionSymbolFields.FeatureRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs index c3352c13..87888f0b 100644 --- a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs +++ b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ExternalFiles = new IntermediateTupleDefinition( - TupleDefinitionType.ExternalFiles, + public static readonly IntermediateSymbolDefinition ExternalFiles = new IntermediateSymbolDefinition( + SymbolDefinitionType.ExternalFiles, new[] { - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.FilePath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FilePath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Order), IntermediateFieldType.Number), }, - typeof(ExternalFilesTuple)); + typeof(ExternalFilesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ExternalFilesTupleFields + public enum ExternalFilesSymbolFields { Family, FTK, @@ -37,64 +37,64 @@ namespace WixToolset.Data.Tuples Order, } - public class ExternalFilesTuple : IntermediateTuple + public class ExternalFilesSymbol : IntermediateSymbol { - public ExternalFilesTuple() : base(TupleDefinitions.ExternalFiles, null, null) + public ExternalFilesSymbol() : base(SymbolDefinitions.ExternalFiles, null, null) { } - public ExternalFilesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ExternalFiles, sourceLineNumber, id) + public ExternalFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ExternalFiles, sourceLineNumber, id) { } - public IntermediateField this[ExternalFilesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ExternalFilesSymbolFields index] => this.Fields[(int)index]; public string Family { - get => (string)this.Fields[(int)ExternalFilesTupleFields.Family]; - set => this.Set((int)ExternalFilesTupleFields.Family, value); + get => (string)this.Fields[(int)ExternalFilesSymbolFields.Family]; + set => this.Set((int)ExternalFilesSymbolFields.Family, value); } public string FTK { - get => (string)this.Fields[(int)ExternalFilesTupleFields.FTK]; - set => this.Set((int)ExternalFilesTupleFields.FTK, value); + get => (string)this.Fields[(int)ExternalFilesSymbolFields.FTK]; + set => this.Set((int)ExternalFilesSymbolFields.FTK, value); } public string FilePath { - get => (string)this.Fields[(int)ExternalFilesTupleFields.FilePath]; - set => this.Set((int)ExternalFilesTupleFields.FilePath, value); + get => (string)this.Fields[(int)ExternalFilesSymbolFields.FilePath]; + set => this.Set((int)ExternalFilesSymbolFields.FilePath, value); } public string SymbolPaths { - get => (string)this.Fields[(int)ExternalFilesTupleFields.SymbolPaths]; - set => this.Set((int)ExternalFilesTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)ExternalFilesSymbolFields.SymbolPaths]; + set => this.Set((int)ExternalFilesSymbolFields.SymbolPaths, value); } public string IgnoreOffsets { - get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreOffsets]; - set => this.Set((int)ExternalFilesTupleFields.IgnoreOffsets, value); + get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreOffsets]; + set => this.Set((int)ExternalFilesSymbolFields.IgnoreOffsets, value); } public string IgnoreLengths { - get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreLengths]; - set => this.Set((int)ExternalFilesTupleFields.IgnoreLengths, value); + get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreLengths]; + set => this.Set((int)ExternalFilesSymbolFields.IgnoreLengths, value); } public string RetainOffsets { - get => (string)this.Fields[(int)ExternalFilesTupleFields.RetainOffsets]; - set => this.Set((int)ExternalFilesTupleFields.RetainOffsets, value); + get => (string)this.Fields[(int)ExternalFilesSymbolFields.RetainOffsets]; + set => this.Set((int)ExternalFilesSymbolFields.RetainOffsets, value); } public int Order { - get => (int)this.Fields[(int)ExternalFilesTupleFields.Order]; - set => this.Set((int)ExternalFilesTupleFields.Order, value); + get => (int)this.Fields[(int)ExternalFilesSymbolFields.Order]; + set => this.Set((int)ExternalFilesSymbolFields.Order, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs index ea2e1993..84cd5b4b 100644 --- a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs +++ b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition FamilyFileRanges = new IntermediateTupleDefinition( - TupleDefinitionType.FamilyFileRanges, + public static readonly IntermediateSymbolDefinition FamilyFileRanges = new IntermediateSymbolDefinition( + SymbolDefinitionType.FamilyFileRanges, new[] { - new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainLengths), IntermediateFieldType.String), }, - typeof(FamilyFileRangesTuple)); + typeof(FamilyFileRangesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum FamilyFileRangesTupleFields + public enum FamilyFileRangesSymbolFields { Family, FTK, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples RetainLengths, } - public class FamilyFileRangesTuple : IntermediateTuple + public class FamilyFileRangesSymbol : IntermediateSymbol { - public FamilyFileRangesTuple() : base(TupleDefinitions.FamilyFileRanges, null, null) + public FamilyFileRangesSymbol() : base(SymbolDefinitions.FamilyFileRanges, null, null) { } - public FamilyFileRangesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FamilyFileRanges, sourceLineNumber, id) + public FamilyFileRangesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FamilyFileRanges, sourceLineNumber, id) { } - public IntermediateField this[FamilyFileRangesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[FamilyFileRangesSymbolFields index] => this.Fields[(int)index]; public string Family { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.Family]; - set => this.Set((int)FamilyFileRangesTupleFields.Family, value); + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.Family]; + set => this.Set((int)FamilyFileRangesSymbolFields.Family, value); } public string FTK { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.FTK]; - set => this.Set((int)FamilyFileRangesTupleFields.FTK, value); + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.FTK]; + set => this.Set((int)FamilyFileRangesSymbolFields.FTK, value); } public string RetainOffsets { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainOffsets]; - set => this.Set((int)FamilyFileRangesTupleFields.RetainOffsets, value); + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainOffsets]; + set => this.Set((int)FamilyFileRangesSymbolFields.RetainOffsets, value); } public string RetainLengths { - get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainLengths]; - set => this.Set((int)FamilyFileRangesTupleFields.RetainLengths, value); + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainLengths]; + set => this.Set((int)FamilyFileRangesSymbolFields.RetainLengths, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs index 1bda9c4c..af51daed 100644 --- a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs +++ b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition FeatureComponents = new IntermediateTupleDefinition( - TupleDefinitionType.FeatureComponents, + public static readonly IntermediateSymbolDefinition FeatureComponents = new IntermediateSymbolDefinition( + SymbolDefinitionType.FeatureComponents, new[] { - new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(FeatureComponentsTuple)); + typeof(FeatureComponentsSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum FeatureComponentsTupleFields + public enum FeatureComponentsSymbolFields { FeatureRef, ComponentRef, } - public class FeatureComponentsTuple : IntermediateTuple + public class FeatureComponentsSymbol : IntermediateSymbol { - public FeatureComponentsTuple() : base(TupleDefinitions.FeatureComponents, null, null) + public FeatureComponentsSymbol() : base(SymbolDefinitions.FeatureComponents, null, null) { } - public FeatureComponentsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FeatureComponents, sourceLineNumber, id) + public FeatureComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FeatureComponents, sourceLineNumber, id) { } - public IntermediateField this[FeatureComponentsTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[FeatureComponentsSymbolFields index] => this.Fields[(int)index]; public string FeatureRef { - get => (string)this.Fields[(int)FeatureComponentsTupleFields.FeatureRef]; - set => this.Set((int)FeatureComponentsTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)FeatureComponentsSymbolFields.FeatureRef]; + set => this.Set((int)FeatureComponentsSymbolFields.FeatureRef, value); } public string ComponentRef { - get => (string)this.Fields[(int)FeatureComponentsTupleFields.ComponentRef]; - set => this.Set((int)FeatureComponentsTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)FeatureComponentsSymbolFields.ComponentRef]; + set => this.Set((int)FeatureComponentsSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureTuple.cs b/src/WixToolset.Data/Tuples/FeatureTuple.cs index b057d079..67972b63 100644 --- a/src/WixToolset.Data/Tuples/FeatureTuple.cs +++ b/src/WixToolset.Data/Tuples/FeatureTuple.cs @@ -2,32 +2,32 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Feature = new IntermediateTupleDefinition( - TupleDefinitionType.Feature, + public static readonly IntermediateSymbolDefinition Feature = new IntermediateSymbolDefinition( + SymbolDefinitionType.Feature, new[] { - new IntermediateFieldDefinition(nameof(FeatureTupleFields.ParentFeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.Display), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.DisallowAbsent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.DisallowAdvertise), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.InstallDefault), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureTupleFields.TypicalDefault), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.ParentFeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAbsent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAdvertise), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.InstallDefault), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.TypicalDefault), IntermediateFieldType.Number), }, - typeof(FeatureTuple)); + typeof(FeatureSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum FeatureTupleFields + public enum FeatureSymbolFields { ParentFeatureRef, Title, @@ -54,76 +54,76 @@ namespace WixToolset.Data.Tuples Advertise } - public class FeatureTuple : IntermediateTuple + public class FeatureSymbol : IntermediateSymbol { - public FeatureTuple() : base(TupleDefinitions.Feature, null, null) + public FeatureSymbol() : base(SymbolDefinitions.Feature, null, null) { } - public FeatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Feature, sourceLineNumber, id) + public FeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Feature, sourceLineNumber, id) { } - public IntermediateField this[FeatureTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[FeatureSymbolFields index] => this.Fields[(int)index]; public string ParentFeatureRef { - get => (string)this.Fields[(int)FeatureTupleFields.ParentFeatureRef]; - set => this.Set((int)FeatureTupleFields.ParentFeatureRef, value); + get => (string)this.Fields[(int)FeatureSymbolFields.ParentFeatureRef]; + set => this.Set((int)FeatureSymbolFields.ParentFeatureRef, value); } public string Title { - get => (string)this.Fields[(int)FeatureTupleFields.Title]; - set => this.Set((int)FeatureTupleFields.Title, value); + get => (string)this.Fields[(int)FeatureSymbolFields.Title]; + set => this.Set((int)FeatureSymbolFields.Title, value); } public string Description { - get => (string)this.Fields[(int)FeatureTupleFields.Description]; - set => this.Set((int)FeatureTupleFields.Description, value); + get => (string)this.Fields[(int)FeatureSymbolFields.Description]; + set => this.Set((int)FeatureSymbolFields.Description, value); } public int Display { - get => (int)this.Fields[(int)FeatureTupleFields.Display]; - set => this.Set((int)FeatureTupleFields.Display, value); + get => (int)this.Fields[(int)FeatureSymbolFields.Display]; + set => this.Set((int)FeatureSymbolFields.Display, value); } public int Level { - get => (int)this.Fields[(int)FeatureTupleFields.Level]; - set => this.Set((int)FeatureTupleFields.Level, value); + get => (int)this.Fields[(int)FeatureSymbolFields.Level]; + set => this.Set((int)FeatureSymbolFields.Level, value); } public string DirectoryRef { - get => (string)this.Fields[(int)FeatureTupleFields.DirectoryRef]; - set => this.Set((int)FeatureTupleFields.DirectoryRef, value); + get => (string)this.Fields[(int)FeatureSymbolFields.DirectoryRef]; + set => this.Set((int)FeatureSymbolFields.DirectoryRef, value); } public bool DisallowAbsent { - get => this.Fields[(int)FeatureTupleFields.DisallowAbsent].AsBool(); - set => this.Set((int)FeatureTupleFields.DisallowAbsent, value); + get => this.Fields[(int)FeatureSymbolFields.DisallowAbsent].AsBool(); + set => this.Set((int)FeatureSymbolFields.DisallowAbsent, value); } public bool DisallowAdvertise { - get => this.Fields[(int)FeatureTupleFields.DisallowAdvertise].AsBool(); - set => this.Set((int)FeatureTupleFields.DisallowAdvertise, value); + get => this.Fields[(int)FeatureSymbolFields.DisallowAdvertise].AsBool(); + set => this.Set((int)FeatureSymbolFields.DisallowAdvertise, value); } public FeatureInstallDefault InstallDefault { - get => (FeatureInstallDefault)this.Fields[(int)FeatureTupleFields.InstallDefault].AsNumber(); - set => this.Set((int)FeatureTupleFields.InstallDefault, (int)value); + get => (FeatureInstallDefault)this.Fields[(int)FeatureSymbolFields.InstallDefault].AsNumber(); + set => this.Set((int)FeatureSymbolFields.InstallDefault, (int)value); } public FeatureTypicalDefault TypicalDefault { - get => (FeatureTypicalDefault)this.Fields[(int)FeatureTupleFields.TypicalDefault].AsNumber(); - set => this.Set((int)FeatureTupleFields.TypicalDefault, (int)value); + get => (FeatureTypicalDefault)this.Fields[(int)FeatureSymbolFields.TypicalDefault].AsNumber(); + set => this.Set((int)FeatureSymbolFields.TypicalDefault, (int)value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs index fcf77d70..3abf2915 100644 --- a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition FileSFPCatalog = new IntermediateTupleDefinition( - TupleDefinitionType.FileSFPCatalog, + public static readonly IntermediateSymbolDefinition FileSFPCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.FileSFPCatalog, new[] { - new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.SFPCatalogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.SFPCatalogRef), IntermediateFieldType.String), }, - typeof(FileSFPCatalogTuple)); + typeof(FileSFPCatalogSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum FileSFPCatalogTupleFields + public enum FileSFPCatalogSymbolFields { FileRef, SFPCatalogRef, } - public class FileSFPCatalogTuple : IntermediateTuple + public class FileSFPCatalogSymbol : IntermediateSymbol { - public FileSFPCatalogTuple() : base(TupleDefinitions.FileSFPCatalog, null, null) + public FileSFPCatalogSymbol() : base(SymbolDefinitions.FileSFPCatalog, null, null) { } - public FileSFPCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FileSFPCatalog, sourceLineNumber, id) + public FileSFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FileSFPCatalog, sourceLineNumber, id) { } - public IntermediateField this[FileSFPCatalogTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[FileSFPCatalogSymbolFields index] => this.Fields[(int)index]; public string FileRef { - get => (string)this.Fields[(int)FileSFPCatalogTupleFields.FileRef]; - set => this.Set((int)FileSFPCatalogTupleFields.FileRef, value); + get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.FileRef]; + set => this.Set((int)FileSFPCatalogSymbolFields.FileRef, value); } public string SFPCatalogRef { - get => (string)this.Fields[(int)FileSFPCatalogTupleFields.SFPCatalogRef]; - set => this.Set((int)FileSFPCatalogTupleFields.SFPCatalogRef, value); + get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.SFPCatalogRef]; + set => this.Set((int)FileSFPCatalogSymbolFields.SFPCatalogRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs index 95776257..7d1afdb7 100644 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ b/src/WixToolset.Data/Tuples/FileTuple.cs @@ -2,50 +2,50 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition File = new IntermediateTupleDefinition( - TupleDefinitionType.File, + public static readonly IntermediateSymbolDefinition File = new IntermediateSymbolDefinition( + SymbolDefinitionType.File, new[] { - new IntermediateFieldDefinition(nameof(FileTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.FileSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileTupleFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileTupleFields.Source), IntermediateFieldType.Path), - - new IntermediateFieldDefinition(nameof(FileTupleFields.FontTitle), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.SelfRegCost), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileTupleFields.BindPath), IntermediateFieldType.String), - - new IntermediateFieldDefinition(nameof(FileTupleFields.Sequence), IntermediateFieldType.Number), - - new IntermediateFieldDefinition(nameof(FileTupleFields.PatchGroup), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileTupleFields.PatchAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileTupleFields.DeltaPatchHeaderSource), IntermediateFieldType.String), - - new IntermediateFieldDefinition(nameof(FileTupleFields.RetainLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Source), IntermediateFieldType.Path), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.FontTitle), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.SelfRegCost), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.BindPath), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.Sequence), IntermediateFieldType.Number), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchGroup), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DeltaPatchHeaderSource), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.SymbolPaths), IntermediateFieldType.String), }, - typeof(FileTuple)); + typeof(FileSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum FileTupleFields + public enum FileSymbolFields { ComponentRef, Name, @@ -76,7 +76,7 @@ namespace WixToolset.Data.Tuples } [Flags] - public enum FileTupleAttributes : int + public enum FileSymbolAttributes : int { None = 0x0, ReadOnly = 0x1, @@ -110,148 +110,148 @@ namespace WixToolset.Data.Tuples Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError } - public class FileTuple : IntermediateTuple + public class FileSymbol : IntermediateSymbol { - public FileTuple() : base(TupleDefinitions.File, null, null) + public FileSymbol() : base(SymbolDefinitions.File, null, null) { } - public FileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.File, sourceLineNumber, id) + public FileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.File, sourceLineNumber, id) { } - public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[FileSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)FileTupleFields.ComponentRef]; - set => this.Set((int)FileTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)FileSymbolFields.ComponentRef]; + set => this.Set((int)FileSymbolFields.ComponentRef, value); } public string Name { - get => (string)this.Fields[(int)FileTupleFields.Name]; - set => this.Set((int)FileTupleFields.Name, value); + get => (string)this.Fields[(int)FileSymbolFields.Name]; + set => this.Set((int)FileSymbolFields.Name, value); } public string ShortName { - get => (string)this.Fields[(int)FileTupleFields.ShortName]; - set => this.Set((int)FileTupleFields.ShortName, value); + get => (string)this.Fields[(int)FileSymbolFields.ShortName]; + set => this.Set((int)FileSymbolFields.ShortName, value); } public int FileSize { - get => (int)this.Fields[(int)FileTupleFields.FileSize]; - set => this.Set((int)FileTupleFields.FileSize, value); + get => (int)this.Fields[(int)FileSymbolFields.FileSize]; + set => this.Set((int)FileSymbolFields.FileSize, value); } public string Version { - get => (string)this.Fields[(int)FileTupleFields.Version]; - set => this.Set((int)FileTupleFields.Version, value); + get => (string)this.Fields[(int)FileSymbolFields.Version]; + set => this.Set((int)FileSymbolFields.Version, value); } public string Language { - get => (string)this.Fields[(int)FileTupleFields.Language]; - set => this.Set((int)FileTupleFields.Language, value); + get => (string)this.Fields[(int)FileSymbolFields.Language]; + set => this.Set((int)FileSymbolFields.Language, value); } - public FileTupleAttributes Attributes + public FileSymbolAttributes Attributes { - get => (FileTupleAttributes)this.Fields[(int)FileTupleFields.Attributes].AsNumber(); - set => this.Set((int)FileTupleFields.Attributes, (int)value); + get => (FileSymbolAttributes)this.Fields[(int)FileSymbolFields.Attributes].AsNumber(); + set => this.Set((int)FileSymbolFields.Attributes, (int)value); } public string DirectoryRef { - get => (string)this.Fields[(int)FileTupleFields.DirectoryRef]; - set => this.Set((int)FileTupleFields.DirectoryRef, value); + get => (string)this.Fields[(int)FileSymbolFields.DirectoryRef]; + set => this.Set((int)FileSymbolFields.DirectoryRef, value); } public int? DiskId { - get => (int?)this.Fields[(int)FileTupleFields.DiskId]; - set => this.Set((int)FileTupleFields.DiskId, value); + get => (int?)this.Fields[(int)FileSymbolFields.DiskId]; + set => this.Set((int)FileSymbolFields.DiskId, value); } public IntermediateFieldPathValue Source { - get => this.Fields[(int)FileTupleFields.Source].AsPath(); - set => this.Set((int)FileTupleFields.Source, value); + get => this.Fields[(int)FileSymbolFields.Source].AsPath(); + set => this.Set((int)FileSymbolFields.Source, value); } public string FontTitle { - get => (string)this.Fields[(int)FileTupleFields.FontTitle]; - set => this.Set((int)FileTupleFields.FontTitle, value); + get => (string)this.Fields[(int)FileSymbolFields.FontTitle]; + set => this.Set((int)FileSymbolFields.FontTitle, value); } public int? SelfRegCost { - get => (int?)this.Fields[(int)FileTupleFields.SelfRegCost]; - set => this.Set((int)FileTupleFields.SelfRegCost, value); + get => (int?)this.Fields[(int)FileSymbolFields.SelfRegCost]; + set => this.Set((int)FileSymbolFields.SelfRegCost, value); } public string BindPath { - get => (string)this.Fields[(int)FileTupleFields.BindPath]; - set => this.Set((int)FileTupleFields.BindPath, value); + get => (string)this.Fields[(int)FileSymbolFields.BindPath]; + set => this.Set((int)FileSymbolFields.BindPath, value); } public int Sequence { - get => (int)this.Fields[(int)FileTupleFields.Sequence]; - set => this.Set((int)FileTupleFields.Sequence, value); + get => (int)this.Fields[(int)FileSymbolFields.Sequence]; + set => this.Set((int)FileSymbolFields.Sequence, value); } public int? PatchGroup { - get => (int?)this.Fields[(int)FileTupleFields.PatchGroup]; - set => this.Set((int)FileTupleFields.PatchGroup, value); + get => (int?)this.Fields[(int)FileSymbolFields.PatchGroup]; + set => this.Set((int)FileSymbolFields.PatchGroup, value); } public PatchAttributeType? PatchAttributes { - get => (PatchAttributeType?)this.Fields[(int)FileTupleFields.PatchAttributes].AsNullableNumber(); - set => this.Set((int)FileTupleFields.PatchAttributes, (int?)value); + get => (PatchAttributeType?)this.Fields[(int)FileSymbolFields.PatchAttributes].AsNullableNumber(); + set => this.Set((int)FileSymbolFields.PatchAttributes, (int?)value); } public string DeltaPatchHeaderSource { - get => (string)this.Fields[(int)FileTupleFields.DeltaPatchHeaderSource]; - set => this.Set((int)FileTupleFields.DeltaPatchHeaderSource, value); + get => (string)this.Fields[(int)FileSymbolFields.DeltaPatchHeaderSource]; + set => this.Set((int)FileSymbolFields.DeltaPatchHeaderSource, value); } public string RetainLengths { - get => (string)this.Fields[(int)FileTupleFields.RetainLengths]; - set => this.Set((int)FileTupleFields.RetainLengths, value); + get => (string)this.Fields[(int)FileSymbolFields.RetainLengths]; + set => this.Set((int)FileSymbolFields.RetainLengths, value); } public string IgnoreOffsets { - get => (string)this.Fields[(int)FileTupleFields.IgnoreOffsets]; - set => this.Set((int)FileTupleFields.IgnoreOffsets, value); + get => (string)this.Fields[(int)FileSymbolFields.IgnoreOffsets]; + set => this.Set((int)FileSymbolFields.IgnoreOffsets, value); } public string IgnoreLengths { - get => (string)this.Fields[(int)FileTupleFields.IgnoreLengths]; - set => this.Set((int)FileTupleFields.IgnoreLengths, value); + get => (string)this.Fields[(int)FileSymbolFields.IgnoreLengths]; + set => this.Set((int)FileSymbolFields.IgnoreLengths, value); } public string RetainOffsets { - get => (string)this.Fields[(int)FileTupleFields.RetainOffsets]; - set => this.Set((int)FileTupleFields.RetainOffsets, value); + get => (string)this.Fields[(int)FileSymbolFields.RetainOffsets]; + set => this.Set((int)FileSymbolFields.RetainOffsets, value); } public string SymbolPaths { - get => (string)this.Fields[(int)FileTupleFields.SymbolPaths]; - set => this.Set((int)FileTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)FileSymbolFields.SymbolPaths]; + set => this.Set((int)FileSymbolFields.SymbolPaths, value); } } } diff --git a/src/WixToolset.Data/Tuples/IconTuple.cs b/src/WixToolset.Data/Tuples/IconTuple.cs index e9ed93b2..f3c825ec 100644 --- a/src/WixToolset.Data/Tuples/IconTuple.cs +++ b/src/WixToolset.Data/Tuples/IconTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Icon = new IntermediateTupleDefinition( - TupleDefinitionType.Icon, + public static readonly IntermediateSymbolDefinition Icon = new IntermediateSymbolDefinition( + SymbolDefinitionType.Icon, new[] { - new IntermediateFieldDefinition(nameof(IconTupleFields.Data), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(IconSymbolFields.Data), IntermediateFieldType.Path), }, - typeof(IconTuple)); + typeof(IconSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum IconTupleFields + public enum IconSymbolFields { Data, } - public class IconTuple : IntermediateTuple + public class IconSymbol : IntermediateSymbol { - public IconTuple() : base(TupleDefinitions.Icon, null, null) + public IconSymbol() : base(SymbolDefinitions.Icon, null, null) { } - public IconTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Icon, sourceLineNumber, id) + public IconSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Icon, sourceLineNumber, id) { } - public IntermediateField this[IconTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[IconSymbolFields index] => this.Fields[(int)index]; public IntermediateFieldPathValue Data { - get => this.Fields[(int)IconTupleFields.Data].AsPath(); - set => this.Set((int)IconTupleFields.Data, value); + get => this.Fields[(int)IconSymbolFields.Data].AsPath(); + set => this.Set((int)IconSymbolFields.Data, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs index 4538b88c..090628ef 100644 --- a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs +++ b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ImageFamilies = new IntermediateTupleDefinition( - TupleDefinitionType.ImageFamilies, + public static readonly IntermediateSymbolDefinition ImageFamilies = new IntermediateSymbolDefinition( + SymbolDefinitionType.ImageFamilies, new[] { - new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.MediaSrcPropName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.MediaDiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.FileSequenceStart), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaSrcPropName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaDiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.FileSequenceStart), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.VolumeLabel), IntermediateFieldType.String), }, - typeof(ImageFamiliesTuple)); + typeof(ImageFamiliesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ImageFamiliesTupleFields + public enum ImageFamiliesSymbolFields { Family, MediaSrcPropName, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples VolumeLabel, } - public class ImageFamiliesTuple : IntermediateTuple + public class ImageFamiliesSymbol : IntermediateSymbol { - public ImageFamiliesTuple() : base(TupleDefinitions.ImageFamilies, null, null) + public ImageFamiliesSymbol() : base(SymbolDefinitions.ImageFamilies, null, null) { } - public ImageFamiliesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ImageFamilies, sourceLineNumber, id) + public ImageFamiliesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ImageFamilies, sourceLineNumber, id) { } - public IntermediateField this[ImageFamiliesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ImageFamiliesSymbolFields index] => this.Fields[(int)index]; public string Family { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.Family]; - set => this.Set((int)ImageFamiliesTupleFields.Family, value); + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.Family]; + set => this.Set((int)ImageFamiliesSymbolFields.Family, value); } public string MediaSrcPropName { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.MediaSrcPropName]; - set => this.Set((int)ImageFamiliesTupleFields.MediaSrcPropName, value); + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.MediaSrcPropName]; + set => this.Set((int)ImageFamiliesSymbolFields.MediaSrcPropName, value); } public int? MediaDiskId { - get => (int?)this.Fields[(int)ImageFamiliesTupleFields.MediaDiskId]; - set => this.Set((int)ImageFamiliesTupleFields.MediaDiskId, value); + get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.MediaDiskId]; + set => this.Set((int)ImageFamiliesSymbolFields.MediaDiskId, value); } public int? FileSequenceStart { - get => (int?)this.Fields[(int)ImageFamiliesTupleFields.FileSequenceStart]; - set => this.Set((int)ImageFamiliesTupleFields.FileSequenceStart, value); + get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.FileSequenceStart]; + set => this.Set((int)ImageFamiliesSymbolFields.FileSequenceStart, value); } public string DiskPrompt { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.DiskPrompt]; - set => this.Set((int)ImageFamiliesTupleFields.DiskPrompt, value); + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.DiskPrompt]; + set => this.Set((int)ImageFamiliesSymbolFields.DiskPrompt, value); } public string VolumeLabel { - get => (string)this.Fields[(int)ImageFamiliesTupleFields.VolumeLabel]; - set => this.Set((int)ImageFamiliesTupleFields.VolumeLabel, value); + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.VolumeLabel]; + set => this.Set((int)ImageFamiliesSymbolFields.VolumeLabel, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IniFileTuple.cs b/src/WixToolset.Data/Tuples/IniFileTuple.cs index 6aaa98c6..e23f6039 100644 --- a/src/WixToolset.Data/Tuples/IniFileTuple.cs +++ b/src/WixToolset.Data/Tuples/IniFileTuple.cs @@ -2,29 +2,29 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition IniFile = new IntermediateTupleDefinition( - TupleDefinitionType.IniFile, + public static readonly IntermediateSymbolDefinition IniFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.IniFile, new[] { - new IntermediateFieldDefinition(nameof(IniFileTupleFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileTupleFields.DirProperty), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileTupleFields.Section), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileTupleFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(IniFileTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(IniFileTuple)); + typeof(IniFileSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum IniFileTupleFields + public enum IniFileSymbolFields { FileName, DirProperty, @@ -35,58 +35,58 @@ namespace WixToolset.Data.Tuples ComponentRef, } - public class IniFileTuple : IntermediateTuple + public class IniFileSymbol : IntermediateSymbol { - public IniFileTuple() : base(TupleDefinitions.IniFile, null, null) + public IniFileSymbol() : base(SymbolDefinitions.IniFile, null, null) { } - public IniFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IniFile, sourceLineNumber, id) + public IniFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniFile, sourceLineNumber, id) { } - public IntermediateField this[IniFileTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[IniFileSymbolFields index] => this.Fields[(int)index]; public string FileName { - get => (string)this.Fields[(int)IniFileTupleFields.FileName]; - set => this.Set((int)IniFileTupleFields.FileName, value); + get => (string)this.Fields[(int)IniFileSymbolFields.FileName]; + set => this.Set((int)IniFileSymbolFields.FileName, value); } public string DirProperty { - get => (string)this.Fields[(int)IniFileTupleFields.DirProperty]; - set => this.Set((int)IniFileTupleFields.DirProperty, value); + get => (string)this.Fields[(int)IniFileSymbolFields.DirProperty]; + set => this.Set((int)IniFileSymbolFields.DirProperty, value); } public string Section { - get => (string)this.Fields[(int)IniFileTupleFields.Section]; - set => this.Set((int)IniFileTupleFields.Section, value); + get => (string)this.Fields[(int)IniFileSymbolFields.Section]; + set => this.Set((int)IniFileSymbolFields.Section, value); } public string Key { - get => (string)this.Fields[(int)IniFileTupleFields.Key]; - set => this.Set((int)IniFileTupleFields.Key, value); + get => (string)this.Fields[(int)IniFileSymbolFields.Key]; + set => this.Set((int)IniFileSymbolFields.Key, value); } public string Value { - get => (string)this.Fields[(int)IniFileTupleFields.Value]; - set => this.Set((int)IniFileTupleFields.Value, value); + get => (string)this.Fields[(int)IniFileSymbolFields.Value]; + set => this.Set((int)IniFileSymbolFields.Value, value); } public InifFileActionType Action { - get => (InifFileActionType)this.Fields[(int)IniFileTupleFields.Action]?.AsNumber(); - set => this.Set((int)IniFileTupleFields.Action, (int)value); + get => (InifFileActionType)this.Fields[(int)IniFileSymbolFields.Action]?.AsNumber(); + set => this.Set((int)IniFileSymbolFields.Action, (int)value); } public string ComponentRef { - get => (string)this.Fields[(int)IniFileTupleFields.ComponentRef]; - set => this.Set((int)IniFileTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)IniFileSymbolFields.ComponentRef]; + set => this.Set((int)IniFileSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs index 1a52715d..64351681 100644 --- a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition IniLocator = new IntermediateTupleDefinition( - TupleDefinitionType.IniLocator, + public static readonly IntermediateSymbolDefinition IniLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.IniLocator, new[] { - new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Section), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Field), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Field), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Type), IntermediateFieldType.Number), }, - typeof(IniLocatorTuple)); + typeof(IniLocatorSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum IniLocatorTupleFields + public enum IniLocatorSymbolFields { SignatureRef, FileName, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples Type, } - public class IniLocatorTuple : IntermediateTuple + public class IniLocatorSymbol : IntermediateSymbol { - public IniLocatorTuple() : base(TupleDefinitions.IniLocator, null, null) + public IniLocatorSymbol() : base(SymbolDefinitions.IniLocator, null, null) { } - public IniLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IniLocator, sourceLineNumber, id) + public IniLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniLocator, sourceLineNumber, id) { } - public IntermediateField this[IniLocatorTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[IniLocatorSymbolFields index] => this.Fields[(int)index]; public string SignatureRef { - get => (string)this.Fields[(int)IniLocatorTupleFields.SignatureRef]; - set => this.Set((int)IniLocatorTupleFields.SignatureRef, value); + get => (string)this.Fields[(int)IniLocatorSymbolFields.SignatureRef]; + set => this.Set((int)IniLocatorSymbolFields.SignatureRef, value); } public string FileName { - get => (string)this.Fields[(int)IniLocatorTupleFields.FileName]; - set => this.Set((int)IniLocatorTupleFields.FileName, value); + get => (string)this.Fields[(int)IniLocatorSymbolFields.FileName]; + set => this.Set((int)IniLocatorSymbolFields.FileName, value); } public string Section { - get => (string)this.Fields[(int)IniLocatorTupleFields.Section]; - set => this.Set((int)IniLocatorTupleFields.Section, value); + get => (string)this.Fields[(int)IniLocatorSymbolFields.Section]; + set => this.Set((int)IniLocatorSymbolFields.Section, value); } public string Key { - get => (string)this.Fields[(int)IniLocatorTupleFields.Key]; - set => this.Set((int)IniLocatorTupleFields.Key, value); + get => (string)this.Fields[(int)IniLocatorSymbolFields.Key]; + set => this.Set((int)IniLocatorSymbolFields.Key, value); } public int? Field { - get => (int?)this.Fields[(int)IniLocatorTupleFields.Field]; - set => this.Set((int)IniLocatorTupleFields.Field, value); + get => (int?)this.Fields[(int)IniLocatorSymbolFields.Field]; + set => this.Set((int)IniLocatorSymbolFields.Field, value); } public int? Type { - get => (int?)this.Fields[(int)IniLocatorTupleFields.Type]; - set => this.Set((int)IniLocatorTupleFields.Type, value); + get => (int?)this.Fields[(int)IniLocatorSymbolFields.Type]; + set => this.Set((int)IniLocatorSymbolFields.Type, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/InifFileActionType.cs b/src/WixToolset.Data/Tuples/InifFileActionType.cs index 94172f47..8b642323 100644 --- a/src/WixToolset.Data/Tuples/InifFileActionType.cs +++ b/src/WixToolset.Data/Tuples/InifFileActionType.cs @@ -1,6 +1,6 @@ // 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. -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { public enum InifFileActionType { diff --git a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs index afd9891b..681f1030 100644 --- a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition IsolatedComponent = new IntermediateTupleDefinition( - TupleDefinitionType.IsolatedComponent, + public static readonly IntermediateSymbolDefinition IsolatedComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.IsolatedComponent, new[] { - new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.SharedComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.ApplicationComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.SharedComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.ApplicationComponentRef), IntermediateFieldType.String), }, - typeof(IsolatedComponentTuple)); + typeof(IsolatedComponentSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum IsolatedComponentTupleFields + public enum IsolatedComponentSymbolFields { SharedComponentRef, ApplicationComponentRef, } - public class IsolatedComponentTuple : IntermediateTuple + public class IsolatedComponentSymbol : IntermediateSymbol { - public IsolatedComponentTuple() : base(TupleDefinitions.IsolatedComponent, null, null) + public IsolatedComponentSymbol() : base(SymbolDefinitions.IsolatedComponent, null, null) { } - public IsolatedComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IsolatedComponent, sourceLineNumber, id) + public IsolatedComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IsolatedComponent, sourceLineNumber, id) { } - public IntermediateField this[IsolatedComponentTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[IsolatedComponentSymbolFields index] => this.Fields[(int)index]; public string SharedComponentRef { - get => (string)this.Fields[(int)IsolatedComponentTupleFields.SharedComponentRef]; - set => this.Set((int)IsolatedComponentTupleFields.SharedComponentRef, value); + get => (string)this.Fields[(int)IsolatedComponentSymbolFields.SharedComponentRef]; + set => this.Set((int)IsolatedComponentSymbolFields.SharedComponentRef, value); } public string ApplicationComponentRef { - get => (string)this.Fields[(int)IsolatedComponentTupleFields.ApplicationComponentRef]; - set => this.Set((int)IsolatedComponentTupleFields.ApplicationComponentRef, value); + get => (string)this.Fields[(int)IsolatedComponentSymbolFields.ApplicationComponentRef]; + set => this.Set((int)IsolatedComponentSymbolFields.ApplicationComponentRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs index c895ea35..a160f25f 100644 --- a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs +++ b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition LaunchCondition = new IntermediateTupleDefinition( - TupleDefinitionType.LaunchCondition, + public static readonly IntermediateSymbolDefinition LaunchCondition = new IntermediateSymbolDefinition( + SymbolDefinitionType.LaunchCondition, new[] { - new IntermediateFieldDefinition(nameof(LaunchConditionTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LaunchConditionTupleFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Description), IntermediateFieldType.String), }, - typeof(LaunchConditionTuple)); + typeof(LaunchConditionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum LaunchConditionTupleFields + public enum LaunchConditionSymbolFields { Condition, Description, } - public class LaunchConditionTuple : IntermediateTuple + public class LaunchConditionSymbol : IntermediateSymbol { - public LaunchConditionTuple() : base(TupleDefinitions.LaunchCondition, null, null) + public LaunchConditionSymbol() : base(SymbolDefinitions.LaunchCondition, null, null) { } - public LaunchConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.LaunchCondition, sourceLineNumber, id) + public LaunchConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LaunchCondition, sourceLineNumber, id) { } - public IntermediateField this[LaunchConditionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[LaunchConditionSymbolFields index] => this.Fields[(int)index]; public string Condition { - get => (string)this.Fields[(int)LaunchConditionTupleFields.Condition]; - set => this.Set((int)LaunchConditionTupleFields.Condition, value); + get => (string)this.Fields[(int)LaunchConditionSymbolFields.Condition]; + set => this.Set((int)LaunchConditionSymbolFields.Condition, value); } public string Description { - get => (string)this.Fields[(int)LaunchConditionTupleFields.Description]; - set => this.Set((int)LaunchConditionTupleFields.Description, value); + get => (string)this.Fields[(int)LaunchConditionSymbolFields.Description]; + set => this.Set((int)LaunchConditionSymbolFields.Description, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ListBoxTuple.cs b/src/WixToolset.Data/Tuples/ListBoxTuple.cs index c25f1728..174327d1 100644 --- a/src/WixToolset.Data/Tuples/ListBoxTuple.cs +++ b/src/WixToolset.Data/Tuples/ListBoxTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ListBox = new IntermediateTupleDefinition( - TupleDefinitionType.ListBox, + public static readonly IntermediateSymbolDefinition ListBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.ListBox, new[] { - new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Text), IntermediateFieldType.String), }, - typeof(ListBoxTuple)); + typeof(ListBoxSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ListBoxTupleFields + public enum ListBoxSymbolFields { Property, Order, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Text, } - public class ListBoxTuple : IntermediateTuple + public class ListBoxSymbol : IntermediateSymbol { - public ListBoxTuple() : base(TupleDefinitions.ListBox, null, null) + public ListBoxSymbol() : base(SymbolDefinitions.ListBox, null, null) { } - public ListBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ListBox, sourceLineNumber, id) + public ListBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListBox, sourceLineNumber, id) { } - public IntermediateField this[ListBoxTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ListBoxSymbolFields index] => this.Fields[(int)index]; public string Property { - get => (string)this.Fields[(int)ListBoxTupleFields.Property]; - set => this.Set((int)ListBoxTupleFields.Property, value); + get => (string)this.Fields[(int)ListBoxSymbolFields.Property]; + set => this.Set((int)ListBoxSymbolFields.Property, value); } public int Order { - get => (int)this.Fields[(int)ListBoxTupleFields.Order]; - set => this.Set((int)ListBoxTupleFields.Order, value); + get => (int)this.Fields[(int)ListBoxSymbolFields.Order]; + set => this.Set((int)ListBoxSymbolFields.Order, value); } public string Value { - get => (string)this.Fields[(int)ListBoxTupleFields.Value]; - set => this.Set((int)ListBoxTupleFields.Value, value); + get => (string)this.Fields[(int)ListBoxSymbolFields.Value]; + set => this.Set((int)ListBoxSymbolFields.Value, value); } public string Text { - get => (string)this.Fields[(int)ListBoxTupleFields.Text]; - set => this.Set((int)ListBoxTupleFields.Text, value); + get => (string)this.Fields[(int)ListBoxSymbolFields.Text]; + set => this.Set((int)ListBoxSymbolFields.Text, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ListViewTuple.cs b/src/WixToolset.Data/Tuples/ListViewTuple.cs index 80fbed83..09543ab1 100644 --- a/src/WixToolset.Data/Tuples/ListViewTuple.cs +++ b/src/WixToolset.Data/Tuples/ListViewTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ListView = new IntermediateTupleDefinition( - TupleDefinitionType.ListView, + public static readonly IntermediateSymbolDefinition ListView = new IntermediateSymbolDefinition( + SymbolDefinitionType.ListView, new[] { - new IntermediateFieldDefinition(nameof(ListViewTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewTupleFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ListViewTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewTupleFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewTupleFields.BinaryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.BinaryRef), IntermediateFieldType.String), }, - typeof(ListViewTuple)); + typeof(ListViewSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ListViewTupleFields + public enum ListViewSymbolFields { Property, Order, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples BinaryRef, } - public class ListViewTuple : IntermediateTuple + public class ListViewSymbol : IntermediateSymbol { - public ListViewTuple() : base(TupleDefinitions.ListView, null, null) + public ListViewSymbol() : base(SymbolDefinitions.ListView, null, null) { } - public ListViewTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ListView, sourceLineNumber, id) + public ListViewSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListView, sourceLineNumber, id) { } - public IntermediateField this[ListViewTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ListViewSymbolFields index] => this.Fields[(int)index]; public string Property { - get => (string)this.Fields[(int)ListViewTupleFields.Property]; - set => this.Set((int)ListViewTupleFields.Property, value); + get => (string)this.Fields[(int)ListViewSymbolFields.Property]; + set => this.Set((int)ListViewSymbolFields.Property, value); } public int Order { - get => (int)this.Fields[(int)ListViewTupleFields.Order]; - set => this.Set((int)ListViewTupleFields.Order, value); + get => (int)this.Fields[(int)ListViewSymbolFields.Order]; + set => this.Set((int)ListViewSymbolFields.Order, value); } public string Value { - get => (string)this.Fields[(int)ListViewTupleFields.Value]; - set => this.Set((int)ListViewTupleFields.Value, value); + get => (string)this.Fields[(int)ListViewSymbolFields.Value]; + set => this.Set((int)ListViewSymbolFields.Value, value); } public string Text { - get => (string)this.Fields[(int)ListViewTupleFields.Text]; - set => this.Set((int)ListViewTupleFields.Text, value); + get => (string)this.Fields[(int)ListViewSymbolFields.Text]; + set => this.Set((int)ListViewSymbolFields.Text, value); } public string BinaryRef { - get => (string)this.Fields[(int)ListViewTupleFields.BinaryRef]; - set => this.Set((int)ListViewTupleFields.BinaryRef, value); + get => (string)this.Fields[(int)ListViewSymbolFields.BinaryRef]; + set => this.Set((int)ListViewSymbolFields.BinaryRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/LocatorType.cs b/src/WixToolset.Data/Tuples/LocatorType.cs index 18f5ada0..6f136389 100644 --- a/src/WixToolset.Data/Tuples/LocatorType.cs +++ b/src/WixToolset.Data/Tuples/LocatorType.cs @@ -1,6 +1,6 @@ // 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. -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { public enum LocatorType { diff --git a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs index 33c1ad15..12562fd1 100644 --- a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs +++ b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition LockPermissions = new IntermediateTupleDefinition( - TupleDefinitionType.LockPermissions, + public static readonly IntermediateSymbolDefinition LockPermissions = new IntermediateSymbolDefinition( + SymbolDefinitionType.LockPermissions, new[] { - new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.LockObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Domain), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.User), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Permission), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Domain), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.User), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Permission), IntermediateFieldType.Number), }, - typeof(LockPermissionsTuple)); + typeof(LockPermissionsSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum LockPermissionsTupleFields + public enum LockPermissionsSymbolFields { LockObject, Table, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples Permission, } - public class LockPermissionsTuple : IntermediateTuple + public class LockPermissionsSymbol : IntermediateSymbol { - public LockPermissionsTuple() : base(TupleDefinitions.LockPermissions, null, null) + public LockPermissionsSymbol() : base(SymbolDefinitions.LockPermissions, null, null) { } - public LockPermissionsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.LockPermissions, sourceLineNumber, id) + public LockPermissionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LockPermissions, sourceLineNumber, id) { } - public IntermediateField this[LockPermissionsTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[LockPermissionsSymbolFields index] => this.Fields[(int)index]; public string LockObject { - get => (string)this.Fields[(int)LockPermissionsTupleFields.LockObject]; - set => this.Set((int)LockPermissionsTupleFields.LockObject, value); + get => (string)this.Fields[(int)LockPermissionsSymbolFields.LockObject]; + set => this.Set((int)LockPermissionsSymbolFields.LockObject, value); } public string Table { - get => (string)this.Fields[(int)LockPermissionsTupleFields.Table]; - set => this.Set((int)LockPermissionsTupleFields.Table, value); + get => (string)this.Fields[(int)LockPermissionsSymbolFields.Table]; + set => this.Set((int)LockPermissionsSymbolFields.Table, value); } public string Domain { - get => (string)this.Fields[(int)LockPermissionsTupleFields.Domain]; - set => this.Set((int)LockPermissionsTupleFields.Domain, value); + get => (string)this.Fields[(int)LockPermissionsSymbolFields.Domain]; + set => this.Set((int)LockPermissionsSymbolFields.Domain, value); } public string User { - get => (string)this.Fields[(int)LockPermissionsTupleFields.User]; - set => this.Set((int)LockPermissionsTupleFields.User, value); + get => (string)this.Fields[(int)LockPermissionsSymbolFields.User]; + set => this.Set((int)LockPermissionsSymbolFields.User, value); } public int? Permission { - get => (int?)this.Fields[(int)LockPermissionsTupleFields.Permission]; - set => this.Set((int)LockPermissionsTupleFields.Permission, value); + get => (int?)this.Fields[(int)LockPermissionsSymbolFields.Permission]; + set => this.Set((int)LockPermissionsSymbolFields.Permission, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MIMETuple.cs b/src/WixToolset.Data/Tuples/MIMETuple.cs index 19eff883..f66d05b8 100644 --- a/src/WixToolset.Data/Tuples/MIMETuple.cs +++ b/src/WixToolset.Data/Tuples/MIMETuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MIME = new IntermediateTupleDefinition( - TupleDefinitionType.MIME, + public static readonly IntermediateSymbolDefinition MIME = new IntermediateSymbolDefinition( + SymbolDefinitionType.MIME, new[] { - new IntermediateFieldDefinition(nameof(MIMETupleFields.ContentType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MIMETupleFields.ExtensionRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MIMETupleFields.CLSID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMESymbolFields.ContentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMESymbolFields.ExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMESymbolFields.CLSID), IntermediateFieldType.String), }, - typeof(MIMETuple)); + typeof(MIMESymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MIMETupleFields + public enum MIMESymbolFields { ContentType, ExtensionRef, CLSID, } - public class MIMETuple : IntermediateTuple + public class MIMESymbol : IntermediateSymbol { - public MIMETuple() : base(TupleDefinitions.MIME, null, null) + public MIMESymbol() : base(SymbolDefinitions.MIME, null, null) { } - public MIMETuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MIME, sourceLineNumber, id) + public MIMESymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MIME, sourceLineNumber, id) { } - public IntermediateField this[MIMETupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MIMESymbolFields index] => this.Fields[(int)index]; public string ContentType { - get => (string)this.Fields[(int)MIMETupleFields.ContentType]; - set => this.Set((int)MIMETupleFields.ContentType, value); + get => (string)this.Fields[(int)MIMESymbolFields.ContentType]; + set => this.Set((int)MIMESymbolFields.ContentType, value); } public string ExtensionRef { - get => (string)this.Fields[(int)MIMETupleFields.ExtensionRef]; - set => this.Set((int)MIMETupleFields.ExtensionRef, value); + get => (string)this.Fields[(int)MIMESymbolFields.ExtensionRef]; + set => this.Set((int)MIMESymbolFields.ExtensionRef, value); } public string CLSID { - get => (string)this.Fields[(int)MIMETupleFields.CLSID]; - set => this.Set((int)MIMETupleFields.CLSID, value); + get => (string)this.Fields[(int)MIMESymbolFields.CLSID]; + set => this.Set((int)MIMESymbolFields.CLSID, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MediaTuple.cs b/src/WixToolset.Data/Tuples/MediaTuple.cs index a9cbb034..f216cddc 100644 --- a/src/WixToolset.Data/Tuples/MediaTuple.cs +++ b/src/WixToolset.Data/Tuples/MediaTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Media = new IntermediateTupleDefinition( - TupleDefinitionType.Media, + public static readonly IntermediateSymbolDefinition Media = new IntermediateSymbolDefinition( + SymbolDefinitionType.Media, new[] { - new IntermediateFieldDefinition(nameof(MediaTupleFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaTupleFields.LastSequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaTupleFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaTupleFields.Cabinet), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaTupleFields.VolumeLabel), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaTupleFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaTupleFields.CompressionLevel), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaTupleFields.Layout), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.LastSequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Cabinet), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Layout), IntermediateFieldType.String), }, - typeof(MediaTuple)); + typeof(MediaSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MediaTupleFields + public enum MediaSymbolFields { DiskId, LastSequence, @@ -37,64 +37,64 @@ namespace WixToolset.Data.Tuples Layout, } - public class MediaTuple : IntermediateTuple + public class MediaSymbol : IntermediateSymbol { - public MediaTuple() : base(TupleDefinitions.Media, null, null) + public MediaSymbol() : base(SymbolDefinitions.Media, null, null) { } - public MediaTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Media, sourceLineNumber, id) + public MediaSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Media, sourceLineNumber, id) { } - public IntermediateField this[MediaTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MediaSymbolFields index] => this.Fields[(int)index]; public int DiskId { - get => (int)this.Fields[(int)MediaTupleFields.DiskId]; - set => this.Set((int)MediaTupleFields.DiskId, value); + get => (int)this.Fields[(int)MediaSymbolFields.DiskId]; + set => this.Set((int)MediaSymbolFields.DiskId, value); } public int? LastSequence { - get => (int?)this.Fields[(int)MediaTupleFields.LastSequence]; - set => this.Set((int)MediaTupleFields.LastSequence, value); + get => (int?)this.Fields[(int)MediaSymbolFields.LastSequence]; + set => this.Set((int)MediaSymbolFields.LastSequence, value); } public string DiskPrompt { - get => (string)this.Fields[(int)MediaTupleFields.DiskPrompt]; - set => this.Set((int)MediaTupleFields.DiskPrompt, value); + get => (string)this.Fields[(int)MediaSymbolFields.DiskPrompt]; + set => this.Set((int)MediaSymbolFields.DiskPrompt, value); } public string Cabinet { - get => (string)this.Fields[(int)MediaTupleFields.Cabinet]; - set => this.Set((int)MediaTupleFields.Cabinet, value); + get => (string)this.Fields[(int)MediaSymbolFields.Cabinet]; + set => this.Set((int)MediaSymbolFields.Cabinet, value); } public string VolumeLabel { - get => (string)this.Fields[(int)MediaTupleFields.VolumeLabel]; - set => this.Set((int)MediaTupleFields.VolumeLabel, value); + get => (string)this.Fields[(int)MediaSymbolFields.VolumeLabel]; + set => this.Set((int)MediaSymbolFields.VolumeLabel, value); } public string Source { - get => (string)this.Fields[(int)MediaTupleFields.Source]; - set => this.Set((int)MediaTupleFields.Source, value); + get => (string)this.Fields[(int)MediaSymbolFields.Source]; + set => this.Set((int)MediaSymbolFields.Source, value); } public CompressionLevel? CompressionLevel { - get => (CompressionLevel?)this.Fields[(int)MediaTupleFields.CompressionLevel].AsNullableNumber(); - set => this.Set((int)MediaTupleFields.CompressionLevel, (int?)value); + get => (CompressionLevel?)this.Fields[(int)MediaSymbolFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)MediaSymbolFields.CompressionLevel, (int?)value); } public string Layout { - get => (string)this.Fields[(int)MediaTupleFields.Layout]; - set => this.Set((int)MediaTupleFields.Layout, value); + get => (string)this.Fields[(int)MediaSymbolFields.Layout]; + set => this.Set((int)MediaSymbolFields.Layout, value); } } } diff --git a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs index 2b560b50..287819ab 100644 --- a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ModuleComponents = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleComponents, + public static readonly IntermediateSymbolDefinition ModuleComponents = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleComponents, new[] { - new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.Component), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Component), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Language), IntermediateFieldType.Number), }, - typeof(ModuleComponentsTuple)); + typeof(ModuleComponentsSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ModuleComponentsTupleFields + public enum ModuleComponentsSymbolFields { Component, ModuleID, Language, } - public class ModuleComponentsTuple : IntermediateTuple + public class ModuleComponentsSymbol : IntermediateSymbol { - public ModuleComponentsTuple() : base(TupleDefinitions.ModuleComponents, null, null) + public ModuleComponentsSymbol() : base(SymbolDefinitions.ModuleComponents, null, null) { } - public ModuleComponentsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleComponents, sourceLineNumber, id) + public ModuleComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleComponents, sourceLineNumber, id) { } - public IntermediateField this[ModuleComponentsTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ModuleComponentsSymbolFields index] => this.Fields[(int)index]; public string Component { - get => (string)this.Fields[(int)ModuleComponentsTupleFields.Component]; - set => this.Set((int)ModuleComponentsTupleFields.Component, value); + get => (string)this.Fields[(int)ModuleComponentsSymbolFields.Component]; + set => this.Set((int)ModuleComponentsSymbolFields.Component, value); } public string ModuleID { - get => (string)this.Fields[(int)ModuleComponentsTupleFields.ModuleID]; - set => this.Set((int)ModuleComponentsTupleFields.ModuleID, value); + get => (string)this.Fields[(int)ModuleComponentsSymbolFields.ModuleID]; + set => this.Set((int)ModuleComponentsSymbolFields.ModuleID, value); } public int Language { - get => (int)this.Fields[(int)ModuleComponentsTupleFields.Language]; - set => this.Set((int)ModuleComponentsTupleFields.Language, value); + get => (int)this.Fields[(int)ModuleComponentsSymbolFields.Language]; + set => this.Set((int)ModuleComponentsSymbolFields.Language, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs index fd0cf365..8188dc87 100644 --- a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs @@ -2,32 +2,32 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ModuleConfiguration = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleConfiguration, + public static readonly IntermediateSymbolDefinition ModuleConfiguration = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleConfiguration, new[] { - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Format), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.ContextData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.DefaultValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.KeyNoOrphan), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.NonNullable), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.HelpLocation), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.HelpKeyword), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Format), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.ContextData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DefaultValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.KeyNoOrphan), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.NonNullable), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpLocation), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpKeyword), IntermediateFieldType.String), }, - typeof(ModuleConfigurationTuple)); + typeof(ModuleConfigurationSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ModuleConfigurationTupleFields + public enum ModuleConfigurationSymbolFields { Format, Type, @@ -41,76 +41,76 @@ namespace WixToolset.Data.Tuples HelpKeyword, } - public class ModuleConfigurationTuple : IntermediateTuple + public class ModuleConfigurationSymbol : IntermediateSymbol { - public ModuleConfigurationTuple() : base(TupleDefinitions.ModuleConfiguration, null, null) + public ModuleConfigurationSymbol() : base(SymbolDefinitions.ModuleConfiguration, null, null) { } - public ModuleConfigurationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleConfiguration, sourceLineNumber, id) + public ModuleConfigurationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleConfiguration, sourceLineNumber, id) { } - public IntermediateField this[ModuleConfigurationTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ModuleConfigurationSymbolFields index] => this.Fields[(int)index]; public int Format { - get => (int)this.Fields[(int)ModuleConfigurationTupleFields.Format]; - set => this.Set((int)ModuleConfigurationTupleFields.Format, value); + get => (int)this.Fields[(int)ModuleConfigurationSymbolFields.Format]; + set => this.Set((int)ModuleConfigurationSymbolFields.Format, value); } public string Type { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Type]; - set => this.Set((int)ModuleConfigurationTupleFields.Type, value); + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Type]; + set => this.Set((int)ModuleConfigurationSymbolFields.Type, value); } public string ContextData { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.ContextData]; - set => this.Set((int)ModuleConfigurationTupleFields.ContextData, value); + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.ContextData]; + set => this.Set((int)ModuleConfigurationSymbolFields.ContextData, value); } public string DefaultValue { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DefaultValue]; - set => this.Set((int)ModuleConfigurationTupleFields.DefaultValue, value); + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DefaultValue]; + set => this.Set((int)ModuleConfigurationSymbolFields.DefaultValue, value); } public bool KeyNoOrphan { - get => this.Fields[(int)ModuleConfigurationTupleFields.KeyNoOrphan].AsBool(); - set => this.Set((int)ModuleConfigurationTupleFields.KeyNoOrphan, value); + get => this.Fields[(int)ModuleConfigurationSymbolFields.KeyNoOrphan].AsBool(); + set => this.Set((int)ModuleConfigurationSymbolFields.KeyNoOrphan, value); } public bool NonNullable { - get => this.Fields[(int)ModuleConfigurationTupleFields.NonNullable].AsBool(); - set => this.Set((int)ModuleConfigurationTupleFields.NonNullable, value); + get => this.Fields[(int)ModuleConfigurationSymbolFields.NonNullable].AsBool(); + set => this.Set((int)ModuleConfigurationSymbolFields.NonNullable, value); } public string DisplayName { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DisplayName]; - set => this.Set((int)ModuleConfigurationTupleFields.DisplayName, value); + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DisplayName]; + set => this.Set((int)ModuleConfigurationSymbolFields.DisplayName, value); } public string Description { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Description]; - set => this.Set((int)ModuleConfigurationTupleFields.Description, value); + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Description]; + set => this.Set((int)ModuleConfigurationSymbolFields.Description, value); } public string HelpLocation { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpLocation]; - set => this.Set((int)ModuleConfigurationTupleFields.HelpLocation, value); + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpLocation]; + set => this.Set((int)ModuleConfigurationSymbolFields.HelpLocation, value); } public string HelpKeyword { - get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpKeyword]; - set => this.Set((int)ModuleConfigurationTupleFields.HelpKeyword, value); + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpKeyword]; + set => this.Set((int)ModuleConfigurationSymbolFields.HelpKeyword, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs index 8c857d41..80d2d5f6 100644 --- a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ModuleDependency = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleDependency, + public static readonly IntermediateSymbolDefinition ModuleDependency = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleDependency, new[] { - new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.ModuleLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredVersion), IntermediateFieldType.String), }, - typeof(ModuleDependencyTuple)); + typeof(ModuleDependencySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ModuleDependencyTupleFields + public enum ModuleDependencySymbolFields { ModuleID, ModuleLanguage, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples RequiredVersion, } - public class ModuleDependencyTuple : IntermediateTuple + public class ModuleDependencySymbol : IntermediateSymbol { - public ModuleDependencyTuple() : base(TupleDefinitions.ModuleDependency, null, null) + public ModuleDependencySymbol() : base(SymbolDefinitions.ModuleDependency, null, null) { } - public ModuleDependencyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleDependency, sourceLineNumber, id) + public ModuleDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleDependency, sourceLineNumber, id) { } - public IntermediateField this[ModuleDependencyTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ModuleDependencySymbolFields index] => this.Fields[(int)index]; public string ModuleID { - get => (string)this.Fields[(int)ModuleDependencyTupleFields.ModuleID]; - set => this.Set((int)ModuleDependencyTupleFields.ModuleID, value); + get => (string)this.Fields[(int)ModuleDependencySymbolFields.ModuleID]; + set => this.Set((int)ModuleDependencySymbolFields.ModuleID, value); } public int ModuleLanguage { - get => (int)this.Fields[(int)ModuleDependencyTupleFields.ModuleLanguage]; - set => this.Set((int)ModuleDependencyTupleFields.ModuleLanguage, value); + get => (int)this.Fields[(int)ModuleDependencySymbolFields.ModuleLanguage]; + set => this.Set((int)ModuleDependencySymbolFields.ModuleLanguage, value); } public string RequiredID { - get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredID]; - set => this.Set((int)ModuleDependencyTupleFields.RequiredID, value); + get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredID]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredID, value); } public int RequiredLanguage { - get => (int)this.Fields[(int)ModuleDependencyTupleFields.RequiredLanguage]; - set => this.Set((int)ModuleDependencyTupleFields.RequiredLanguage, value); + get => (int)this.Fields[(int)ModuleDependencySymbolFields.RequiredLanguage]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredLanguage, value); } public string RequiredVersion { - get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredVersion]; - set => this.Set((int)ModuleDependencyTupleFields.RequiredVersion, value); + get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredVersion]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredVersion, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs index 98c5ac5e..0c45abfa 100644 --- a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ModuleExclusion = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleExclusion, + public static readonly IntermediateSymbolDefinition ModuleExclusion = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleExclusion, new[] { - new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ModuleLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedMinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedMaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMaxVersion), IntermediateFieldType.String), }, - typeof(ModuleExclusionTuple)); + typeof(ModuleExclusionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ModuleExclusionTupleFields + public enum ModuleExclusionSymbolFields { ModuleID, ModuleLanguage, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples ExcludedMaxVersion, } - public class ModuleExclusionTuple : IntermediateTuple + public class ModuleExclusionSymbol : IntermediateSymbol { - public ModuleExclusionTuple() : base(TupleDefinitions.ModuleExclusion, null, null) + public ModuleExclusionSymbol() : base(SymbolDefinitions.ModuleExclusion, null, null) { } - public ModuleExclusionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleExclusion, sourceLineNumber, id) + public ModuleExclusionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleExclusion, sourceLineNumber, id) { } - public IntermediateField this[ModuleExclusionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ModuleExclusionSymbolFields index] => this.Fields[(int)index]; public string ModuleID { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ModuleID]; - set => this.Set((int)ModuleExclusionTupleFields.ModuleID, value); + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ModuleID]; + set => this.Set((int)ModuleExclusionSymbolFields.ModuleID, value); } public int ModuleLanguage { - get => (int)this.Fields[(int)ModuleExclusionTupleFields.ModuleLanguage]; - set => this.Set((int)ModuleExclusionTupleFields.ModuleLanguage, value); + get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ModuleLanguage]; + set => this.Set((int)ModuleExclusionSymbolFields.ModuleLanguage, value); } public string ExcludedID { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedID]; - set => this.Set((int)ModuleExclusionTupleFields.ExcludedID, value); + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedID]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedID, value); } public int ExcludedLanguage { - get => (int)this.Fields[(int)ModuleExclusionTupleFields.ExcludedLanguage]; - set => this.Set((int)ModuleExclusionTupleFields.ExcludedLanguage, value); + get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedLanguage]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedLanguage, value); } public string ExcludedMinVersion { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMinVersion]; - set => this.Set((int)ModuleExclusionTupleFields.ExcludedMinVersion, value); + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMinVersion]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMinVersion, value); } public string ExcludedMaxVersion { - get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMaxVersion]; - set => this.Set((int)ModuleExclusionTupleFields.ExcludedMaxVersion, value); + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMaxVersion]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMaxVersion, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs index d786b8d9..07302df8 100644 --- a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ModuleIgnoreTable = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleIgnoreTable, + public static readonly IntermediateSymbolDefinition ModuleIgnoreTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleIgnoreTable, new IntermediateFieldDefinition[] { }, - typeof(ModuleIgnoreTableTuple)); + typeof(ModuleIgnoreTableSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ModuleIgnoreTableTupleFields + public enum ModuleIgnoreTableSymbolFields { } - public class ModuleIgnoreTableTuple : IntermediateTuple + public class ModuleIgnoreTableSymbol : IntermediateSymbol { - public ModuleIgnoreTableTuple() : base(TupleDefinitions.ModuleIgnoreTable, null, null) + public ModuleIgnoreTableSymbol() : base(SymbolDefinitions.ModuleIgnoreTable, null, null) { } - public ModuleIgnoreTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleIgnoreTable, sourceLineNumber, id) + public ModuleIgnoreTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleIgnoreTable, sourceLineNumber, id) { } - public IntermediateField this[ModuleIgnoreTableTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ModuleIgnoreTableSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs index 04db5f58..5f6ded09 100644 --- a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ModuleSignature = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleSignature, + public static readonly IntermediateSymbolDefinition ModuleSignature = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleSignature, new[] { - new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Version), IntermediateFieldType.String), }, - typeof(ModuleSignatureTuple)); + typeof(ModuleSignatureSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ModuleSignatureTupleFields + public enum ModuleSignatureSymbolFields { ModuleID, Language, Version, } - public class ModuleSignatureTuple : IntermediateTuple + public class ModuleSignatureSymbol : IntermediateSymbol { - public ModuleSignatureTuple() : base(TupleDefinitions.ModuleSignature, null, null) + public ModuleSignatureSymbol() : base(SymbolDefinitions.ModuleSignature, null, null) { } - public ModuleSignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleSignature, sourceLineNumber, id) + public ModuleSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSignature, sourceLineNumber, id) { } - public IntermediateField this[ModuleSignatureTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ModuleSignatureSymbolFields index] => this.Fields[(int)index]; public string ModuleID { - get => (string)this.Fields[(int)ModuleSignatureTupleFields.ModuleID]; - set => this.Set((int)ModuleSignatureTupleFields.ModuleID, value); + get => (string)this.Fields[(int)ModuleSignatureSymbolFields.ModuleID]; + set => this.Set((int)ModuleSignatureSymbolFields.ModuleID, value); } public int Language { - get => (int)this.Fields[(int)ModuleSignatureTupleFields.Language]; - set => this.Set((int)ModuleSignatureTupleFields.Language, value); + get => (int)this.Fields[(int)ModuleSignatureSymbolFields.Language]; + set => this.Set((int)ModuleSignatureSymbolFields.Language, value); } public string Version { - get => (string)this.Fields[(int)ModuleSignatureTupleFields.Version]; - set => this.Set((int)ModuleSignatureTupleFields.Version, value); + get => (string)this.Fields[(int)ModuleSignatureSymbolFields.Version]; + set => this.Set((int)ModuleSignatureSymbolFields.Version, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs index 76033560..50d615b0 100644 --- a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs +++ b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ModuleSubstitution = new IntermediateTupleDefinition( - TupleDefinitionType.ModuleSubstitution, + public static readonly IntermediateSymbolDefinition ModuleSubstitution = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleSubstitution, new[] { - new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Row), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Column), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Row), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Column), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Value), IntermediateFieldType.String), }, - typeof(ModuleSubstitutionTuple)); + typeof(ModuleSubstitutionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ModuleSubstitutionTupleFields + public enum ModuleSubstitutionSymbolFields { Table, Row, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Value, } - public class ModuleSubstitutionTuple : IntermediateTuple + public class ModuleSubstitutionSymbol : IntermediateSymbol { - public ModuleSubstitutionTuple() : base(TupleDefinitions.ModuleSubstitution, null, null) + public ModuleSubstitutionSymbol() : base(SymbolDefinitions.ModuleSubstitution, null, null) { } - public ModuleSubstitutionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleSubstitution, sourceLineNumber, id) + public ModuleSubstitutionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSubstitution, sourceLineNumber, id) { } - public IntermediateField this[ModuleSubstitutionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ModuleSubstitutionSymbolFields index] => this.Fields[(int)index]; public string Table { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Table]; - set => this.Set((int)ModuleSubstitutionTupleFields.Table, value); + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Table]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Table, value); } public string Row { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Row]; - set => this.Set((int)ModuleSubstitutionTupleFields.Row, value); + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Row]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Row, value); } public string Column { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Column]; - set => this.Set((int)ModuleSubstitutionTupleFields.Column, value); + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Column]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Column, value); } public string Value { - get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Value]; - set => this.Set((int)ModuleSubstitutionTupleFields.Value, value); + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Value]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MoveFileTuple.cs b/src/WixToolset.Data/Tuples/MoveFileTuple.cs index 74fef167..84089965 100644 --- a/src/WixToolset.Data/Tuples/MoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/MoveFileTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MoveFile = new IntermediateTupleDefinition( - TupleDefinitionType.MoveFile, + public static readonly IntermediateSymbolDefinition MoveFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.MoveFile, new[] { - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Delete), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.Delete), IntermediateFieldType.Bool), }, - typeof(MoveFileTuple)); + typeof(MoveFileSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MoveFileTupleFields + public enum MoveFileSymbolFields { ComponentRef, SourceName, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples Delete, } - public class MoveFileTuple : IntermediateTuple + public class MoveFileSymbol : IntermediateSymbol { - public MoveFileTuple() : base(TupleDefinitions.MoveFile, null, null) + public MoveFileSymbol() : base(SymbolDefinitions.MoveFile, null, null) { } - public MoveFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MoveFile, sourceLineNumber, id) + public MoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MoveFile, sourceLineNumber, id) { } - public IntermediateField this[MoveFileTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MoveFileSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)MoveFileTupleFields.ComponentRef]; - set => this.Set((int)MoveFileTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)MoveFileSymbolFields.ComponentRef]; + set => this.Set((int)MoveFileSymbolFields.ComponentRef, value); } public string SourceName { - get => (string)this.Fields[(int)MoveFileTupleFields.SourceName]; - set => this.Set((int)MoveFileTupleFields.SourceName, value); + get => (string)this.Fields[(int)MoveFileSymbolFields.SourceName]; + set => this.Set((int)MoveFileSymbolFields.SourceName, value); } public string DestName { - get => (string)this.Fields[(int)MoveFileTupleFields.DestName]; - set => this.Set((int)MoveFileTupleFields.DestName, value); + get => (string)this.Fields[(int)MoveFileSymbolFields.DestName]; + set => this.Set((int)MoveFileSymbolFields.DestName, value); } public string SourceFolder { - get => (string)this.Fields[(int)MoveFileTupleFields.SourceFolder]; - set => this.Set((int)MoveFileTupleFields.SourceFolder, value); + get => (string)this.Fields[(int)MoveFileSymbolFields.SourceFolder]; + set => this.Set((int)MoveFileSymbolFields.SourceFolder, value); } public string DestFolder { - get => (string)this.Fields[(int)MoveFileTupleFields.DestFolder]; - set => this.Set((int)MoveFileTupleFields.DestFolder, value); + get => (string)this.Fields[(int)MoveFileSymbolFields.DestFolder]; + set => this.Set((int)MoveFileSymbolFields.DestFolder, value); } public bool Delete { - get => (bool)this.Fields[(int)MoveFileTupleFields.Delete]; - set => this.Set((int)MoveFileTupleFields.Delete, value); + get => (bool)this.Fields[(int)MoveFileSymbolFields.Delete]; + set => this.Set((int)MoveFileSymbolFields.Delete, value); } } } diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs index 1f261446..99c9806d 100644 --- a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiAssemblyName = new IntermediateTupleDefinition( - TupleDefinitionType.MsiAssemblyName, + public static readonly IntermediateSymbolDefinition MsiAssemblyName = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiAssemblyName, new[] { - new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Value), IntermediateFieldType.String), }, - typeof(MsiAssemblyNameTuple)); + typeof(MsiAssemblyNameSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiAssemblyNameTupleFields + public enum MsiAssemblyNameSymbolFields { ComponentRef, Name, Value, } - public class MsiAssemblyNameTuple : IntermediateTuple + public class MsiAssemblyNameSymbol : IntermediateSymbol { - public MsiAssemblyNameTuple() : base(TupleDefinitions.MsiAssemblyName, null, null) + public MsiAssemblyNameSymbol() : base(SymbolDefinitions.MsiAssemblyName, null, null) { } - public MsiAssemblyNameTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiAssemblyName, sourceLineNumber, id) + public MsiAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiAssemblyName, sourceLineNumber, id) { } - public IntermediateField this[MsiAssemblyNameTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiAssemblyNameSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.ComponentRef]; - set => this.Set((int)MsiAssemblyNameTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.ComponentRef]; + set => this.Set((int)MsiAssemblyNameSymbolFields.ComponentRef, value); } public string Name { - get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Name]; - set => this.Set((int)MsiAssemblyNameTupleFields.Name, value); + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Name]; + set => this.Set((int)MsiAssemblyNameSymbolFields.Name, value); } public string Value { - get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Value]; - set => this.Set((int)MsiAssemblyNameTupleFields.Value, value); + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Value]; + set => this.Set((int)MsiAssemblyNameSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs index e4c0469b..febd51cc 100644 --- a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiDigitalCertificate = new IntermediateTupleDefinition( - TupleDefinitionType.MsiDigitalCertificate, + public static readonly IntermediateSymbolDefinition MsiDigitalCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiDigitalCertificate, new[] { - new IntermediateFieldDefinition(nameof(MsiDigitalCertificateTupleFields.CertData), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(MsiDigitalCertificateSymbolFields.CertData), IntermediateFieldType.Path), }, - typeof(MsiDigitalCertificateTuple)); + typeof(MsiDigitalCertificateSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiDigitalCertificateTupleFields + public enum MsiDigitalCertificateSymbolFields { CertData, } - public class MsiDigitalCertificateTuple : IntermediateTuple + public class MsiDigitalCertificateSymbol : IntermediateSymbol { - public MsiDigitalCertificateTuple() : base(TupleDefinitions.MsiDigitalCertificate, null, null) + public MsiDigitalCertificateSymbol() : base(SymbolDefinitions.MsiDigitalCertificate, null, null) { } - public MsiDigitalCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiDigitalCertificate, sourceLineNumber, id) + public MsiDigitalCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalCertificate, sourceLineNumber, id) { } - public IntermediateField this[MsiDigitalCertificateTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiDigitalCertificateSymbolFields index] => this.Fields[(int)index]; public string CertData { - get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.CertData]; - set => this.Set((int)MsiDigitalCertificateTupleFields.CertData, value); + get => (string)this.Fields[(int)MsiDigitalCertificateSymbolFields.CertData]; + set => this.Set((int)MsiDigitalCertificateSymbolFields.CertData, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs index eab762b0..560f3590 100644 --- a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiDigitalSignature = new IntermediateTupleDefinition( - TupleDefinitionType.MsiDigitalSignature, + public static readonly IntermediateSymbolDefinition MsiDigitalSignature = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiDigitalSignature, new[] { - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.SignObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.DigitalCertificateRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Hash), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.SignObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Hash), IntermediateFieldType.Path), }, - typeof(MsiDigitalSignatureTuple)); + typeof(MsiDigitalSignatureSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiDigitalSignatureTupleFields + public enum MsiDigitalSignatureSymbolFields { Table, SignObject, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Hash, } - public class MsiDigitalSignatureTuple : IntermediateTuple + public class MsiDigitalSignatureSymbol : IntermediateSymbol { - public MsiDigitalSignatureTuple() : base(TupleDefinitions.MsiDigitalSignature, null, null) + public MsiDigitalSignatureSymbol() : base(SymbolDefinitions.MsiDigitalSignature, null, null) { } - public MsiDigitalSignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiDigitalSignature, sourceLineNumber, id) + public MsiDigitalSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalSignature, sourceLineNumber, id) { } - public IntermediateField this[MsiDigitalSignatureTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiDigitalSignatureSymbolFields index] => this.Fields[(int)index]; public string Table { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Table]; - set => this.Set((int)MsiDigitalSignatureTupleFields.Table, value); + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Table]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.Table, value); } public string SignObject { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.SignObject]; - set => this.Set((int)MsiDigitalSignatureTupleFields.SignObject, value); + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.SignObject]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.SignObject, value); } public string DigitalCertificateRef { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.DigitalCertificateRef]; - set => this.Set((int)MsiDigitalSignatureTupleFields.DigitalCertificateRef, value); + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef, value); } public string Hash { - get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Hash]; - set => this.Set((int)MsiDigitalSignatureTupleFields.Hash, value); + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Hash]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.Hash, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs index d1e49834..eeed1673 100644 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiEmbeddedChainer = new IntermediateTupleDefinition( - TupleDefinitionType.MsiEmbeddedChainer, + public static readonly IntermediateSymbolDefinition MsiEmbeddedChainer = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiEmbeddedChainer, new[] { - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.CommandLine), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.CommandLine), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Type), IntermediateFieldType.Number), }, - typeof(MsiEmbeddedChainerTuple)); + typeof(MsiEmbeddedChainerSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiEmbeddedChainerTupleFields + public enum MsiEmbeddedChainerSymbolFields { Condition, CommandLine, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Type, } - public class MsiEmbeddedChainerTuple : IntermediateTuple + public class MsiEmbeddedChainerSymbol : IntermediateSymbol { - public MsiEmbeddedChainerTuple() : base(TupleDefinitions.MsiEmbeddedChainer, null, null) + public MsiEmbeddedChainerSymbol() : base(SymbolDefinitions.MsiEmbeddedChainer, null, null) { } - public MsiEmbeddedChainerTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) + public MsiEmbeddedChainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) { } - public IntermediateField this[MsiEmbeddedChainerTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiEmbeddedChainerSymbolFields index] => this.Fields[(int)index]; public string Condition { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Condition]; - set => this.Set((int)MsiEmbeddedChainerTupleFields.Condition, value); + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Condition]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Condition, value); } public string CommandLine { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.CommandLine]; - set => this.Set((int)MsiEmbeddedChainerTupleFields.CommandLine, value); + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.CommandLine]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.CommandLine, value); } public string Source { - get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Source]; - set => this.Set((int)MsiEmbeddedChainerTupleFields.Source, value); + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Source]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Source, value); } public int Type { - get => (int)this.Fields[(int)MsiEmbeddedChainerTupleFields.Type]; - set => this.Set((int)MsiEmbeddedChainerTupleFields.Type, value); + get => (int)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Type]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Type, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs index baedf56b..87c9481a 100644 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiEmbeddedUI = new IntermediateTupleDefinition( - TupleDefinitionType.MsiEmbeddedUI, + public static readonly IntermediateSymbolDefinition MsiEmbeddedUI = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiEmbeddedUI, new[] { - new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.EntryPoint), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.SupportsBasicUI), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.MessageFilter), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.Source), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.EntryPoint), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.SupportsBasicUI), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.MessageFilter), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.Source), IntermediateFieldType.Path), }, - typeof(MsiEmbeddedUITuple)); + typeof(MsiEmbeddedUISymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiEmbeddedUITupleFields + public enum MsiEmbeddedUISymbolFields { FileName, EntryPoint, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples Source, } - public class MsiEmbeddedUITuple : IntermediateTuple + public class MsiEmbeddedUISymbol : IntermediateSymbol { - public MsiEmbeddedUITuple() : base(TupleDefinitions.MsiEmbeddedUI, null, null) + public MsiEmbeddedUISymbol() : base(SymbolDefinitions.MsiEmbeddedUI, null, null) { } - public MsiEmbeddedUITuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiEmbeddedUI, sourceLineNumber, id) + public MsiEmbeddedUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedUI, sourceLineNumber, id) { } - public IntermediateField this[MsiEmbeddedUITupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiEmbeddedUISymbolFields index] => this.Fields[(int)index]; public string FileName { - get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.FileName]; - set => this.Set((int)MsiEmbeddedUITupleFields.FileName, value); + get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.FileName]; + set => this.Set((int)MsiEmbeddedUISymbolFields.FileName, value); } public bool EntryPoint { - get => this.Fields[(int)MsiEmbeddedUITupleFields.EntryPoint].AsBool(); - set => this.Set((int)MsiEmbeddedUITupleFields.EntryPoint, value); + get => this.Fields[(int)MsiEmbeddedUISymbolFields.EntryPoint].AsBool(); + set => this.Set((int)MsiEmbeddedUISymbolFields.EntryPoint, value); } public bool SupportsBasicUI { - get => this.Fields[(int)MsiEmbeddedUITupleFields.SupportsBasicUI].AsBool(); - set => this.Set((int)MsiEmbeddedUITupleFields.SupportsBasicUI, value); + get => this.Fields[(int)MsiEmbeddedUISymbolFields.SupportsBasicUI].AsBool(); + set => this.Set((int)MsiEmbeddedUISymbolFields.SupportsBasicUI, value); } public int? MessageFilter { - get => (int?)this.Fields[(int)MsiEmbeddedUITupleFields.MessageFilter]; - set => this.Set((int)MsiEmbeddedUITupleFields.MessageFilter, value); + get => (int?)this.Fields[(int)MsiEmbeddedUISymbolFields.MessageFilter]; + set => this.Set((int)MsiEmbeddedUISymbolFields.MessageFilter, value); } public string Source { - get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.Source]; - set => this.Set((int)MsiEmbeddedUITupleFields.Source, value); + get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.Source]; + set => this.Set((int)MsiEmbeddedUISymbolFields.Source, value); } } } diff --git a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs index 10aa801d..bfec1c12 100644 --- a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiFileHash = new IntermediateTupleDefinition( - TupleDefinitionType.MsiFileHash, + public static readonly IntermediateSymbolDefinition MsiFileHash = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiFileHash, new[] { - new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.Options), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart1), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart2), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart3), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart4), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.Options), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart1), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart2), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart3), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart4), IntermediateFieldType.Number), }, - typeof(MsiFileHashTuple)); + typeof(MsiFileHashSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiFileHashTupleFields + public enum MsiFileHashSymbolFields { Options, HashPart1, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples HashPart4, } - public class MsiFileHashTuple : IntermediateTuple + public class MsiFileHashSymbol : IntermediateSymbol { - public MsiFileHashTuple() : base(TupleDefinitions.MsiFileHash, null, null) + public MsiFileHashSymbol() : base(SymbolDefinitions.MsiFileHash, null, null) { } - public MsiFileHashTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiFileHash, sourceLineNumber, id) + public MsiFileHashSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiFileHash, sourceLineNumber, id) { } - public IntermediateField this[MsiFileHashTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiFileHashSymbolFields index] => this.Fields[(int)index]; public int Options { - get => (int)this.Fields[(int)MsiFileHashTupleFields.Options]; - set => this.Set((int)MsiFileHashTupleFields.Options, value); + get => (int)this.Fields[(int)MsiFileHashSymbolFields.Options]; + set => this.Set((int)MsiFileHashSymbolFields.Options, value); } public int HashPart1 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart1]; - set => this.Set((int)MsiFileHashTupleFields.HashPart1, value); + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart1]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart1, value); } public int HashPart2 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart2]; - set => this.Set((int)MsiFileHashTupleFields.HashPart2, value); + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart2]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart2, value); } public int HashPart3 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart3]; - set => this.Set((int)MsiFileHashTupleFields.HashPart3, value); + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart3]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart3, value); } public int HashPart4 { - get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart4]; - set => this.Set((int)MsiFileHashTupleFields.HashPart4, value); + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart4]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart4, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs index dfc39763..88e7d019 100644 --- a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiLockPermissionsEx = new IntermediateTupleDefinition( - TupleDefinitionType.MsiLockPermissionsEx, + public static readonly IntermediateSymbolDefinition MsiLockPermissionsEx = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiLockPermissionsEx, new[] { - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.LockObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.SDDLText), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.SDDLText), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Condition), IntermediateFieldType.String), }, - typeof(MsiLockPermissionsExTuple)); + typeof(MsiLockPermissionsExSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiLockPermissionsExTupleFields + public enum MsiLockPermissionsExSymbolFields { LockObject, Table, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Condition, } - public class MsiLockPermissionsExTuple : IntermediateTuple + public class MsiLockPermissionsExSymbol : IntermediateSymbol { - public MsiLockPermissionsExTuple() : base(TupleDefinitions.MsiLockPermissionsEx, null, null) + public MsiLockPermissionsExSymbol() : base(SymbolDefinitions.MsiLockPermissionsEx, null, null) { } - public MsiLockPermissionsExTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) + public MsiLockPermissionsExSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) { } - public IntermediateField this[MsiLockPermissionsExTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiLockPermissionsExSymbolFields index] => this.Fields[(int)index]; public string LockObject { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.LockObject]; - set => this.Set((int)MsiLockPermissionsExTupleFields.LockObject, value); + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.LockObject]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.LockObject, value); } public string Table { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Table]; - set => this.Set((int)MsiLockPermissionsExTupleFields.Table, value); + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Table]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.Table, value); } public string SDDLText { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.SDDLText]; - set => this.Set((int)MsiLockPermissionsExTupleFields.SDDLText, value); + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.SDDLText]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.SDDLText, value); } public string Condition { - get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Condition]; - set => this.Set((int)MsiLockPermissionsExTupleFields.Condition, value); + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Condition]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.Condition, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs index ccc7f94e..4a6774b1 100644 --- a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiPackageCertificate = new IntermediateTupleDefinition( - TupleDefinitionType.MsiPackageCertificate, + public static readonly IntermediateSymbolDefinition MsiPackageCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPackageCertificate, new[] { - new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.PackageCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.DigitalCertificateRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.PackageCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), }, - typeof(MsiPackageCertificateTuple)); + typeof(MsiPackageCertificateSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiPackageCertificateTupleFields + public enum MsiPackageCertificateSymbolFields { PackageCertificate, DigitalCertificateRef, } - public class MsiPackageCertificateTuple : IntermediateTuple + public class MsiPackageCertificateSymbol : IntermediateSymbol { - public MsiPackageCertificateTuple() : base(TupleDefinitions.MsiPackageCertificate, null, null) + public MsiPackageCertificateSymbol() : base(SymbolDefinitions.MsiPackageCertificate, null, null) { } - public MsiPackageCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPackageCertificate, sourceLineNumber, id) + public MsiPackageCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPackageCertificate, sourceLineNumber, id) { } - public IntermediateField this[MsiPackageCertificateTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiPackageCertificateSymbolFields index] => this.Fields[(int)index]; public string PackageCertificate { - get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.PackageCertificate]; - set => this.Set((int)MsiPackageCertificateTupleFields.PackageCertificate, value); + get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.PackageCertificate]; + set => this.Set((int)MsiPackageCertificateSymbolFields.PackageCertificate, value); } public string DigitalCertificateRef { - get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.DigitalCertificateRef]; - set => this.Set((int)MsiPackageCertificateTupleFields.DigitalCertificateRef, value); + get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiPackageCertificateSymbolFields.DigitalCertificateRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs index 21cda4df..7d6ce24e 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiPatchCertificate = new IntermediateTupleDefinition( - TupleDefinitionType.MsiPatchCertificate, + public static readonly IntermediateSymbolDefinition MsiPatchCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchCertificate, new[] { - new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.PatchCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.DigitalCertificateRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.PatchCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), }, - typeof(MsiPatchCertificateTuple)); + typeof(MsiPatchCertificateSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiPatchCertificateTupleFields + public enum MsiPatchCertificateSymbolFields { PatchCertificate, DigitalCertificateRef, } - public class MsiPatchCertificateTuple : IntermediateTuple + public class MsiPatchCertificateSymbol : IntermediateSymbol { - public MsiPatchCertificateTuple() : base(TupleDefinitions.MsiPatchCertificate, null, null) + public MsiPatchCertificateSymbol() : base(SymbolDefinitions.MsiPatchCertificate, null, null) { } - public MsiPatchCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchCertificate, sourceLineNumber, id) + public MsiPatchCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchCertificate, sourceLineNumber, id) { } - public IntermediateField this[MsiPatchCertificateTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiPatchCertificateSymbolFields index] => this.Fields[(int)index]; public string PatchCertificate { - get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.PatchCertificate]; - set => this.Set((int)MsiPatchCertificateTupleFields.PatchCertificate, value); + get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.PatchCertificate]; + set => this.Set((int)MsiPatchCertificateSymbolFields.PatchCertificate, value); } public string DigitalCertificateRef { - get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.DigitalCertificateRef]; - set => this.Set((int)MsiPatchCertificateTupleFields.DigitalCertificateRef, value); + get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiPatchCertificateSymbolFields.DigitalCertificateRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs index 3f7a8de2..0c68b164 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiPatchHeaders = new IntermediateTupleDefinition( - TupleDefinitionType.MsiPatchHeaders, + public static readonly IntermediateSymbolDefinition MsiPatchHeaders = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchHeaders, new[] { - new IntermediateFieldDefinition(nameof(MsiPatchHeadersTupleFields.StreamRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchHeadersTupleFields.Header), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.StreamRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.Header), IntermediateFieldType.Path), }, - typeof(MsiPatchHeadersTuple)); + typeof(MsiPatchHeadersSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiPatchHeadersTupleFields + public enum MsiPatchHeadersSymbolFields { StreamRef, Header, } - public class MsiPatchHeadersTuple : IntermediateTuple + public class MsiPatchHeadersSymbol : IntermediateSymbol { - public MsiPatchHeadersTuple() : base(TupleDefinitions.MsiPatchHeaders, null, null) + public MsiPatchHeadersSymbol() : base(SymbolDefinitions.MsiPatchHeaders, null, null) { } - public MsiPatchHeadersTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchHeaders, sourceLineNumber, id) + public MsiPatchHeadersSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchHeaders, sourceLineNumber, id) { } - public IntermediateField this[MsiPatchHeadersTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiPatchHeadersSymbolFields index] => this.Fields[(int)index]; public string StreamRef { - get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.StreamRef]; - set => this.Set((int)MsiPatchHeadersTupleFields.StreamRef, value); + get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.StreamRef]; + set => this.Set((int)MsiPatchHeadersSymbolFields.StreamRef, value); } public string Header { - get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.Header]; - set => this.Set((int)MsiPatchHeadersTupleFields.Header, value); + get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.Header]; + set => this.Set((int)MsiPatchHeadersSymbolFields.Header, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs index 91bdb6fd..682adbca 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiPatchMetadata = new IntermediateTupleDefinition( - TupleDefinitionType.MsiPatchMetadata, + public static readonly IntermediateSymbolDefinition MsiPatchMetadata = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchMetadata, new[] { - new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Company), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Value), IntermediateFieldType.String), }, - typeof(MsiPatchMetadataTuple)); + typeof(MsiPatchMetadataSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiPatchMetadataTupleFields + public enum MsiPatchMetadataSymbolFields { Company, Property, Value, } - public class MsiPatchMetadataTuple : IntermediateTuple + public class MsiPatchMetadataSymbol : IntermediateSymbol { - public MsiPatchMetadataTuple() : base(TupleDefinitions.MsiPatchMetadata, null, null) + public MsiPatchMetadataSymbol() : base(SymbolDefinitions.MsiPatchMetadata, null, null) { } - public MsiPatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchMetadata, sourceLineNumber, id) + public MsiPatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchMetadata, sourceLineNumber, id) { } - public IntermediateField this[MsiPatchMetadataTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiPatchMetadataSymbolFields index] => this.Fields[(int)index]; public string Company { - get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Company]; - set => this.Set((int)MsiPatchMetadataTupleFields.Company, value); + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Company]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Company, value); } public string Property { - get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Property]; - set => this.Set((int)MsiPatchMetadataTupleFields.Property, value); + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Property]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Property, value); } public string Value { - get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Value]; - set => this.Set((int)MsiPatchMetadataTupleFields.Value, value); + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Value]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs index 487dc714..75385ba8 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiPatchOldAssemblyFile = new IntermediateTupleDefinition( - TupleDefinitionType.MsiPatchOldAssemblyFile, + public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchOldAssemblyFile, new[] { - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.AssemblyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.AssemblyRef), IntermediateFieldType.String), }, - typeof(MsiPatchOldAssemblyFileTuple)); + typeof(MsiPatchOldAssemblyFileSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiPatchOldAssemblyFileTupleFields + public enum MsiPatchOldAssemblyFileSymbolFields { FileRef, AssemblyRef, } - public class MsiPatchOldAssemblyFileTuple : IntermediateTuple + public class MsiPatchOldAssemblyFileSymbol : IntermediateSymbol { - public MsiPatchOldAssemblyFileTuple() : base(TupleDefinitions.MsiPatchOldAssemblyFile, null, null) + public MsiPatchOldAssemblyFileSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyFile, null, null) { } - public MsiPatchOldAssemblyFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) + public MsiPatchOldAssemblyFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) { } - public IntermediateField this[MsiPatchOldAssemblyFileTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiPatchOldAssemblyFileSymbolFields index] => this.Fields[(int)index]; public string FileRef { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.FileRef]; - set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.FileRef, value); + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.FileRef]; + set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.FileRef, value); } public string AssemblyRef { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.AssemblyRef]; - set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.AssemblyRef, value); + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef]; + set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs index 9e2b72e5..199f5ff7 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiPatchOldAssemblyName = new IntermediateTupleDefinition( - TupleDefinitionType.MsiPatchOldAssemblyName, + public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyName = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchOldAssemblyName, new[] { - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Assembly), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Assembly), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Value), IntermediateFieldType.String), }, - typeof(MsiPatchOldAssemblyNameTuple)); + typeof(MsiPatchOldAssemblyNameSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiPatchOldAssemblyNameTupleFields + public enum MsiPatchOldAssemblyNameSymbolFields { Assembly, Name, Value, } - public class MsiPatchOldAssemblyNameTuple : IntermediateTuple + public class MsiPatchOldAssemblyNameSymbol : IntermediateSymbol { - public MsiPatchOldAssemblyNameTuple() : base(TupleDefinitions.MsiPatchOldAssemblyName, null, null) + public MsiPatchOldAssemblyNameSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyName, null, null) { } - public MsiPatchOldAssemblyNameTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) + public MsiPatchOldAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) { } - public IntermediateField this[MsiPatchOldAssemblyNameTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiPatchOldAssemblyNameSymbolFields index] => this.Fields[(int)index]; public string Assembly { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Assembly]; - set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Assembly, value); + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Assembly]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Assembly, value); } public string Name { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Name]; - set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Name, value); + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Name]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Name, value); } public string Value { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Value]; - set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Value, value); + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Value]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs index 143e58a0..ac2b0dc4 100644 --- a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiPatchSequence = new IntermediateTupleDefinition( - TupleDefinitionType.MsiPatchSequence, + public static readonly IntermediateSymbolDefinition MsiPatchSequence = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchSequence, new[] { - new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.PatchFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.Sequence), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(MsiPatchSequenceTuple)); + typeof(MsiPatchSequenceSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiPatchSequenceTupleFields + public enum MsiPatchSequenceSymbolFields { PatchFamily, ProductCode, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Attributes, } - public class MsiPatchSequenceTuple : IntermediateTuple + public class MsiPatchSequenceSymbol : IntermediateSymbol { - public MsiPatchSequenceTuple() : base(TupleDefinitions.MsiPatchSequence, null, null) + public MsiPatchSequenceSymbol() : base(SymbolDefinitions.MsiPatchSequence, null, null) { } - public MsiPatchSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchSequence, sourceLineNumber, id) + public MsiPatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchSequence, sourceLineNumber, id) { } - public IntermediateField this[MsiPatchSequenceTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiPatchSequenceSymbolFields index] => this.Fields[(int)index]; public string PatchFamily { - get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.PatchFamily]; - set => this.Set((int)MsiPatchSequenceTupleFields.PatchFamily, value); + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.PatchFamily]; + set => this.Set((int)MsiPatchSequenceSymbolFields.PatchFamily, value); } public string ProductCode { - get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.ProductCode]; - set => this.Set((int)MsiPatchSequenceTupleFields.ProductCode, value); + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.ProductCode]; + set => this.Set((int)MsiPatchSequenceSymbolFields.ProductCode, value); } public string Sequence { - get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.Sequence]; - set => this.Set((int)MsiPatchSequenceTupleFields.Sequence, value); + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.Sequence]; + set => this.Set((int)MsiPatchSequenceSymbolFields.Sequence, value); } public int? Attributes { - get => (int?)this.Fields[(int)MsiPatchSequenceTupleFields.Attributes]; - set => this.Set((int)MsiPatchSequenceTupleFields.Attributes, value); + get => (int?)this.Fields[(int)MsiPatchSequenceSymbolFields.Attributes]; + set => this.Set((int)MsiPatchSequenceSymbolFields.Attributes, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs index faf9069e..92ca4059 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs @@ -2,32 +2,32 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiServiceConfigFailureActions = new IntermediateTupleDefinition( - TupleDefinitionType.MsiServiceConfigFailureActions, + public static readonly IntermediateSymbolDefinition MsiServiceConfigFailureActions = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiServiceConfigFailureActions, new[] { - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.OnReinstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.OnUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.ResetPeriod), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.RebootMessage), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Command), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Actions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.DelayActions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ResetPeriod), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.RebootMessage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Actions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.DelayActions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(MsiServiceConfigFailureActionsTuple)); + typeof(MsiServiceConfigFailureActionsSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiServiceConfigFailureActionsTupleFields + public enum MsiServiceConfigFailureActionsSymbolFields { Name, OnInstall, @@ -41,76 +41,76 @@ namespace WixToolset.Data.Tuples ComponentRef, } - public class MsiServiceConfigFailureActionsTuple : IntermediateTuple + public class MsiServiceConfigFailureActionsSymbol : IntermediateSymbol { - public MsiServiceConfigFailureActionsTuple() : base(TupleDefinitions.MsiServiceConfigFailureActions, null, null) + public MsiServiceConfigFailureActionsSymbol() : base(SymbolDefinitions.MsiServiceConfigFailureActions, null, null) { } - public MsiServiceConfigFailureActionsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) + public MsiServiceConfigFailureActionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) { } - public IntermediateField this[MsiServiceConfigFailureActionsTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiServiceConfigFailureActionsSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Name]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Name, value); + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Name]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Name, value); } public bool OnInstall { - get => this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.OnInstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.OnInstall, value); + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnInstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnInstall, value); } public bool OnReinstall { - get => this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.OnReinstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.OnReinstall, value); + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall, value); } public bool OnUninstall { - get => this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.OnUninstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.OnUninstall, value); + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall, value); } public int? ResetPeriod { - get => (int?)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod, value); + get => (int?)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod, value); } public string RebootMessage { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.RebootMessage]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.RebootMessage, value); + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage, value); } public string Command { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Command]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Command, value); + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Command]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Command, value); } public string Actions { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Actions]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Actions, value); + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Actions]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Actions, value); } public string DelayActions { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.DelayActions]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.DelayActions, value); + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.DelayActions]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.DelayActions, value); } public string ComponentRef { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.ComponentRef]; - set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs index 242098cd..9ad72d1e 100644 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs @@ -2,29 +2,29 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiServiceConfig = new IntermediateTupleDefinition( - TupleDefinitionType.MsiServiceConfig, + public static readonly IntermediateSymbolDefinition MsiServiceConfig = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiServiceConfig, new[] { - new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.OnReinstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.OnUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.ConfigType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ConfigType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(MsiServiceConfigTuple)); + typeof(MsiServiceConfigSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiServiceConfigTupleFields + public enum MsiServiceConfigSymbolFields { Name, OnInstall, @@ -44,58 +44,58 @@ namespace WixToolset.Data.Tuples PreshutdownInfo, } - public class MsiServiceConfigTuple : IntermediateTuple + public class MsiServiceConfigSymbol : IntermediateSymbol { - public MsiServiceConfigTuple() : base(TupleDefinitions.MsiServiceConfig, null, null) + public MsiServiceConfigSymbol() : base(SymbolDefinitions.MsiServiceConfig, null, null) { } - public MsiServiceConfigTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiServiceConfig, sourceLineNumber, id) + public MsiServiceConfigSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfig, sourceLineNumber, id) { } - public IntermediateField this[MsiServiceConfigTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiServiceConfigSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Name]; - set => this.Set((int)MsiServiceConfigTupleFields.Name, value); + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Name]; + set => this.Set((int)MsiServiceConfigSymbolFields.Name, value); } public bool OnInstall { - get => this.Fields[(int)MsiServiceConfigTupleFields.OnInstall].AsBool(); - set => this.Set((int)MsiServiceConfigTupleFields.OnInstall, value); + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnInstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnInstall, value); } public bool OnReinstall { - get => this.Fields[(int)MsiServiceConfigTupleFields.OnReinstall].AsBool(); - set => this.Set((int)MsiServiceConfigTupleFields.OnReinstall, value); + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnReinstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnReinstall, value); } public bool OnUninstall { - get => this.Fields[(int)MsiServiceConfigTupleFields.OnUninstall].AsBool(); - set => this.Set((int)MsiServiceConfigTupleFields.OnUninstall, value); + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnUninstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnUninstall, value); } public MsiServiceConfigType ConfigType { - get => (MsiServiceConfigType)this.Fields[(int)MsiServiceConfigTupleFields.ConfigType].AsNumber(); - set => this.Set((int)MsiServiceConfigTupleFields.ConfigType, (int)value); + get => (MsiServiceConfigType)this.Fields[(int)MsiServiceConfigSymbolFields.ConfigType].AsNumber(); + set => this.Set((int)MsiServiceConfigSymbolFields.ConfigType, (int)value); } public string Argument { - get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Argument]; - set => this.Set((int)MsiServiceConfigTupleFields.Argument, value); + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Argument]; + set => this.Set((int)MsiServiceConfigSymbolFields.Argument, value); } public string ComponentRef { - get => (string)this.Fields[(int)MsiServiceConfigTupleFields.ComponentRef]; - set => this.Set((int)MsiServiceConfigTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs index 290f6f14..5d5a46e5 100644 --- a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition MsiShortcutProperty = new IntermediateTupleDefinition( - TupleDefinitionType.MsiShortcutProperty, + public static readonly IntermediateSymbolDefinition MsiShortcutProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiShortcutProperty, new[] { - new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.ShortcutRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropertyKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropVariantValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.ShortcutRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropertyKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropVariantValue), IntermediateFieldType.String), }, - typeof(MsiShortcutPropertyTuple)); + typeof(MsiShortcutPropertySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum MsiShortcutPropertyTupleFields + public enum MsiShortcutPropertySymbolFields { ShortcutRef, PropertyKey, PropVariantValue, } - public class MsiShortcutPropertyTuple : IntermediateTuple + public class MsiShortcutPropertySymbol : IntermediateSymbol { - public MsiShortcutPropertyTuple() : base(TupleDefinitions.MsiShortcutProperty, null, null) + public MsiShortcutPropertySymbol() : base(SymbolDefinitions.MsiShortcutProperty, null, null) { } - public MsiShortcutPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiShortcutProperty, sourceLineNumber, id) + public MsiShortcutPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiShortcutProperty, sourceLineNumber, id) { } - public IntermediateField this[MsiShortcutPropertyTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[MsiShortcutPropertySymbolFields index] => this.Fields[(int)index]; public string ShortcutRef { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.ShortcutRef]; - set => this.Set((int)MsiShortcutPropertyTupleFields.ShortcutRef, value); + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.ShortcutRef]; + set => this.Set((int)MsiShortcutPropertySymbolFields.ShortcutRef, value); } public string PropertyKey { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropertyKey]; - set => this.Set((int)MsiShortcutPropertyTupleFields.PropertyKey, value); + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropertyKey]; + set => this.Set((int)MsiShortcutPropertySymbolFields.PropertyKey, value); } public string PropVariantValue { - get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropVariantValue]; - set => this.Set((int)MsiShortcutPropertyTupleFields.PropVariantValue, value); + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropVariantValue]; + set => this.Set((int)MsiShortcutPropertySymbolFields.PropVariantValue, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs index 42598df9..45ca6ed8 100644 --- a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ODBCAttribute = new IntermediateTupleDefinition( - TupleDefinitionType.ODBCAttribute, + public static readonly IntermediateSymbolDefinition ODBCAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCAttribute, new[] { - new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.DriverRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Attribute), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.DriverRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Value), IntermediateFieldType.String), }, - typeof(ODBCAttributeTuple)); + typeof(ODBCAttributeSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ODBCAttributeTupleFields + public enum ODBCAttributeSymbolFields { DriverRef, Attribute, Value, } - public class ODBCAttributeTuple : IntermediateTuple + public class ODBCAttributeSymbol : IntermediateSymbol { - public ODBCAttributeTuple() : base(TupleDefinitions.ODBCAttribute, null, null) + public ODBCAttributeSymbol() : base(SymbolDefinitions.ODBCAttribute, null, null) { } - public ODBCAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCAttribute, sourceLineNumber, id) + public ODBCAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCAttribute, sourceLineNumber, id) { } - public IntermediateField this[ODBCAttributeTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ODBCAttributeSymbolFields index] => this.Fields[(int)index]; public string DriverRef { - get => (string)this.Fields[(int)ODBCAttributeTupleFields.DriverRef]; - set => this.Set((int)ODBCAttributeTupleFields.DriverRef, value); + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.DriverRef]; + set => this.Set((int)ODBCAttributeSymbolFields.DriverRef, value); } public string Attribute { - get => (string)this.Fields[(int)ODBCAttributeTupleFields.Attribute]; - set => this.Set((int)ODBCAttributeTupleFields.Attribute, value); + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Attribute]; + set => this.Set((int)ODBCAttributeSymbolFields.Attribute, value); } public string Value { - get => (string)this.Fields[(int)ODBCAttributeTupleFields.Value]; - set => this.Set((int)ODBCAttributeTupleFields.Value, value); + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Value]; + set => this.Set((int)ODBCAttributeSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs index 21a5ca9c..6af140bd 100644 --- a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ODBCDataSource = new IntermediateTupleDefinition( - TupleDefinitionType.ODBCDataSource, + public static readonly IntermediateSymbolDefinition ODBCDataSource = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCDataSource, new[] { - new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DriverDescription), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Registration), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.DriverDescription), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Registration), IntermediateFieldType.Number), }, - typeof(ODBCDataSourceTuple)); + typeof(ODBCDataSourceSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ODBCDataSourceTupleFields + public enum ODBCDataSourceSymbolFields { ComponentRef, Description, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Registration, } - public class ODBCDataSourceTuple : IntermediateTuple + public class ODBCDataSourceSymbol : IntermediateSymbol { - public ODBCDataSourceTuple() : base(TupleDefinitions.ODBCDataSource, null, null) + public ODBCDataSourceSymbol() : base(SymbolDefinitions.ODBCDataSource, null, null) { } - public ODBCDataSourceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCDataSource, sourceLineNumber, id) + public ODBCDataSourceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDataSource, sourceLineNumber, id) { } - public IntermediateField this[ODBCDataSourceTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ODBCDataSourceSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.ComponentRef]; - set => this.Set((int)ODBCDataSourceTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.ComponentRef]; + set => this.Set((int)ODBCDataSourceSymbolFields.ComponentRef, value); } public string Description { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Description]; - set => this.Set((int)ODBCDataSourceTupleFields.Description, value); + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.Description]; + set => this.Set((int)ODBCDataSourceSymbolFields.Description, value); } public string DriverDescription { - get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DriverDescription]; - set => this.Set((int)ODBCDataSourceTupleFields.DriverDescription, value); + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.DriverDescription]; + set => this.Set((int)ODBCDataSourceSymbolFields.DriverDescription, value); } public int Registration { - get => (int)this.Fields[(int)ODBCDataSourceTupleFields.Registration]; - set => this.Set((int)ODBCDataSourceTupleFields.Registration, value); + get => (int)this.Fields[(int)ODBCDataSourceSymbolFields.Registration]; + set => this.Set((int)ODBCDataSourceSymbolFields.Registration, value); } } } diff --git a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs index 79de70e5..b31cc4cb 100644 --- a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ODBCDriver = new IntermediateTupleDefinition( - TupleDefinitionType.ODBCDriver, + public static readonly IntermediateSymbolDefinition ODBCDriver = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCDriver, new[] { - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.SetupFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.SetupFileRef), IntermediateFieldType.String), }, - typeof(ODBCDriverTuple)); + typeof(ODBCDriverSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ODBCDriverTupleFields + public enum ODBCDriverSymbolFields { ComponentRef, Description, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples SetupFileRef, } - public class ODBCDriverTuple : IntermediateTuple + public class ODBCDriverSymbol : IntermediateSymbol { - public ODBCDriverTuple() : base(TupleDefinitions.ODBCDriver, null, null) + public ODBCDriverSymbol() : base(SymbolDefinitions.ODBCDriver, null, null) { } - public ODBCDriverTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCDriver, sourceLineNumber, id) + public ODBCDriverSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDriver, sourceLineNumber, id) { } - public IntermediateField this[ODBCDriverTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ODBCDriverSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)ODBCDriverTupleFields.ComponentRef]; - set => this.Set((int)ODBCDriverTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ODBCDriverSymbolFields.ComponentRef]; + set => this.Set((int)ODBCDriverSymbolFields.ComponentRef, value); } public string Description { - get => (string)this.Fields[(int)ODBCDriverTupleFields.Description]; - set => this.Set((int)ODBCDriverTupleFields.Description, value); + get => (string)this.Fields[(int)ODBCDriverSymbolFields.Description]; + set => this.Set((int)ODBCDriverSymbolFields.Description, value); } public string FileRef { - get => (string)this.Fields[(int)ODBCDriverTupleFields.FileRef]; - set => this.Set((int)ODBCDriverTupleFields.FileRef, value); + get => (string)this.Fields[(int)ODBCDriverSymbolFields.FileRef]; + set => this.Set((int)ODBCDriverSymbolFields.FileRef, value); } public string SetupFileRef { - get => (string)this.Fields[(int)ODBCDriverTupleFields.SetupFileRef]; - set => this.Set((int)ODBCDriverTupleFields.SetupFileRef, value); + get => (string)this.Fields[(int)ODBCDriverSymbolFields.SetupFileRef]; + set => this.Set((int)ODBCDriverSymbolFields.SetupFileRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs index 62fba795..2e25a5f7 100644 --- a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ODBCSourceAttribute = new IntermediateTupleDefinition( - TupleDefinitionType.ODBCSourceAttribute, + public static readonly IntermediateSymbolDefinition ODBCSourceAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCSourceAttribute, new[] { - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.DataSourceRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Attribute), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.DataSourceRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Value), IntermediateFieldType.String), }, - typeof(ODBCSourceAttributeTuple)); + typeof(ODBCSourceAttributeSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ODBCSourceAttributeTupleFields + public enum ODBCSourceAttributeSymbolFields { DataSourceRef, Attribute, Value, } - public class ODBCSourceAttributeTuple : IntermediateTuple + public class ODBCSourceAttributeSymbol : IntermediateSymbol { - public ODBCSourceAttributeTuple() : base(TupleDefinitions.ODBCSourceAttribute, null, null) + public ODBCSourceAttributeSymbol() : base(SymbolDefinitions.ODBCSourceAttribute, null, null) { } - public ODBCSourceAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCSourceAttribute, sourceLineNumber, id) + public ODBCSourceAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCSourceAttribute, sourceLineNumber, id) { } - public IntermediateField this[ODBCSourceAttributeTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ODBCSourceAttributeSymbolFields index] => this.Fields[(int)index]; public string DataSourceRef { - get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.DataSourceRef]; - set => this.Set((int)ODBCSourceAttributeTupleFields.DataSourceRef, value); + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.DataSourceRef]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.DataSourceRef, value); } public string Attribute { - get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Attribute]; - set => this.Set((int)ODBCSourceAttributeTupleFields.Attribute, value); + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Attribute]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.Attribute, value); } public string Value { - get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Value]; - set => this.Set((int)ODBCSourceAttributeTupleFields.Value, value); + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Value]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs index 0662e3f8..c444b834 100644 --- a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs +++ b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ODBCTranslator = new IntermediateTupleDefinition( - TupleDefinitionType.ODBCTranslator, + public static readonly IntermediateSymbolDefinition ODBCTranslator = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCTranslator, new[] { - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.SetupFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.SetupFileRef), IntermediateFieldType.String), }, - typeof(ODBCTranslatorTuple)); + typeof(ODBCTranslatorSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ODBCTranslatorTupleFields + public enum ODBCTranslatorSymbolFields { ComponentRef, Description, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples SetupFileRef, } - public class ODBCTranslatorTuple : IntermediateTuple + public class ODBCTranslatorSymbol : IntermediateSymbol { - public ODBCTranslatorTuple() : base(TupleDefinitions.ODBCTranslator, null, null) + public ODBCTranslatorSymbol() : base(SymbolDefinitions.ODBCTranslator, null, null) { } - public ODBCTranslatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCTranslator, sourceLineNumber, id) + public ODBCTranslatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCTranslator, sourceLineNumber, id) { } - public IntermediateField this[ODBCTranslatorTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ODBCTranslatorSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.ComponentRef]; - set => this.Set((int)ODBCTranslatorTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.ComponentRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.ComponentRef, value); } public string Description { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Description]; - set => this.Set((int)ODBCTranslatorTupleFields.Description, value); + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.Description]; + set => this.Set((int)ODBCTranslatorSymbolFields.Description, value); } public string FileRef { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.FileRef]; - set => this.Set((int)ODBCTranslatorTupleFields.FileRef, value); + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.FileRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.FileRef, value); } public string SetupFileRef { - get => (string)this.Fields[(int)ODBCTranslatorTupleFields.SetupFileRef]; - set => this.Set((int)ODBCTranslatorTupleFields.SetupFileRef, value); + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.SetupFileRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.SetupFileRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs index df6962b3..3f67aef7 100644 --- a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition PatchMetadata = new IntermediateTupleDefinition( - TupleDefinitionType.PatchMetadata, + public static readonly IntermediateSymbolDefinition PatchMetadata = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchMetadata, new[] { - new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Company), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Value), IntermediateFieldType.String), }, - typeof(PatchMetadataTuple)); + typeof(PatchMetadataSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum PatchMetadataTupleFields + public enum PatchMetadataSymbolFields { Company, Property, Value, } - public class PatchMetadataTuple : IntermediateTuple + public class PatchMetadataSymbol : IntermediateSymbol { - public PatchMetadataTuple() : base(TupleDefinitions.PatchMetadata, null, null) + public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null) { } - public PatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchMetadata, sourceLineNumber, id) + public PatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchMetadata, sourceLineNumber, id) { } - public IntermediateField this[PatchMetadataTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[PatchMetadataSymbolFields index] => this.Fields[(int)index]; public string Company { - get => (string)this.Fields[(int)PatchMetadataTupleFields.Company]; - set => this.Set((int)PatchMetadataTupleFields.Company, value); + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Company]; + set => this.Set((int)PatchMetadataSymbolFields.Company, value); } public string Property { - get => (string)this.Fields[(int)PatchMetadataTupleFields.Property]; - set => this.Set((int)PatchMetadataTupleFields.Property, value); + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Property]; + set => this.Set((int)PatchMetadataSymbolFields.Property, value); } public string Value { - get => (string)this.Fields[(int)PatchMetadataTupleFields.Value]; - set => this.Set((int)PatchMetadataTupleFields.Value, value); + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Value]; + set => this.Set((int)PatchMetadataSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs index ee83dc72..0efdfd25 100644 --- a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition PatchPackage = new IntermediateTupleDefinition( - TupleDefinitionType.PatchPackage, + public static readonly IntermediateSymbolDefinition PatchPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchPackage, new[] { - new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.PatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.MediaDiskIdRef), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.PatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.MediaDiskIdRef), IntermediateFieldType.Number), }, - typeof(PatchPackageTuple)); + typeof(PatchPackageSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum PatchPackageTupleFields + public enum PatchPackageSymbolFields { PatchId, MediaDiskIdRef, } - public class PatchPackageTuple : IntermediateTuple + public class PatchPackageSymbol : IntermediateSymbol { - public PatchPackageTuple() : base(TupleDefinitions.PatchPackage, null, null) + public PatchPackageSymbol() : base(SymbolDefinitions.PatchPackage, null, null) { } - public PatchPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchPackage, sourceLineNumber, id) + public PatchPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchPackage, sourceLineNumber, id) { } - public IntermediateField this[PatchPackageTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[PatchPackageSymbolFields index] => this.Fields[(int)index]; public string PatchId { - get => (string)this.Fields[(int)PatchPackageTupleFields.PatchId]; - set => this.Set((int)PatchPackageTupleFields.PatchId, value); + get => (string)this.Fields[(int)PatchPackageSymbolFields.PatchId]; + set => this.Set((int)PatchPackageSymbolFields.PatchId, value); } public int MediaDiskIdRef { - get => (int)this.Fields[(int)PatchPackageTupleFields.MediaDiskIdRef]; - set => this.Set((int)PatchPackageTupleFields.MediaDiskIdRef, value); + get => (int)this.Fields[(int)PatchPackageSymbolFields.MediaDiskIdRef]; + set => this.Set((int)PatchPackageSymbolFields.MediaDiskIdRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs index f7036a05..a4cbca61 100644 --- a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition PatchSequence = new IntermediateTupleDefinition( - TupleDefinitionType.PatchSequence, + public static readonly IntermediateSymbolDefinition PatchSequence = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchSequence, new[] { - new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.PatchFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Sequence), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Supersede), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Supersede), IntermediateFieldType.Number), }, - typeof(PatchSequenceTuple)); + typeof(PatchSequenceSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum PatchSequenceTupleFields + public enum PatchSequenceSymbolFields { PatchFamily, Target, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Supersede, } - public class PatchSequenceTuple : IntermediateTuple + public class PatchSequenceSymbol : IntermediateSymbol { - public PatchSequenceTuple() : base(TupleDefinitions.PatchSequence, null, null) + public PatchSequenceSymbol() : base(SymbolDefinitions.PatchSequence, null, null) { } - public PatchSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchSequence, sourceLineNumber, id) + public PatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchSequence, sourceLineNumber, id) { } - public IntermediateField this[PatchSequenceTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[PatchSequenceSymbolFields index] => this.Fields[(int)index]; public string PatchFamily { - get => (string)this.Fields[(int)PatchSequenceTupleFields.PatchFamily]; - set => this.Set((int)PatchSequenceTupleFields.PatchFamily, value); + get => (string)this.Fields[(int)PatchSequenceSymbolFields.PatchFamily]; + set => this.Set((int)PatchSequenceSymbolFields.PatchFamily, value); } public string Target { - get => (string)this.Fields[(int)PatchSequenceTupleFields.Target]; - set => this.Set((int)PatchSequenceTupleFields.Target, value); + get => (string)this.Fields[(int)PatchSequenceSymbolFields.Target]; + set => this.Set((int)PatchSequenceSymbolFields.Target, value); } public string Sequence { - get => (string)this.Fields[(int)PatchSequenceTupleFields.Sequence]; - set => this.Set((int)PatchSequenceTupleFields.Sequence, value); + get => (string)this.Fields[(int)PatchSequenceSymbolFields.Sequence]; + set => this.Set((int)PatchSequenceSymbolFields.Sequence, value); } public int? Supersede { - get => (int?)this.Fields[(int)PatchSequenceTupleFields.Supersede]; - set => this.Set((int)PatchSequenceTupleFields.Supersede, value); + get => (int?)this.Fields[(int)PatchSequenceSymbolFields.Supersede]; + set => this.Set((int)PatchSequenceSymbolFields.Supersede, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchTuple.cs b/src/WixToolset.Data/Tuples/PatchTuple.cs index 5548a215..31e68d76 100644 --- a/src/WixToolset.Data/Tuples/PatchTuple.cs +++ b/src/WixToolset.Data/Tuples/PatchTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Patch = new IntermediateTupleDefinition( - TupleDefinitionType.Patch, + public static readonly IntermediateSymbolDefinition Patch = new IntermediateSymbolDefinition( + SymbolDefinitionType.Patch, new[] { - new IntermediateFieldDefinition(nameof(PatchTupleFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchTupleFields.PatchSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchTupleFields.Header), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(PatchTupleFields.StreamRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.PatchSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Header), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.StreamRef), IntermediateFieldType.String), }, - typeof(PatchTuple)); + typeof(PatchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum PatchTupleFields + public enum PatchSymbolFields { FileRef, Sequence, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples StreamRef, } - public class PatchTuple : IntermediateTuple + public class PatchSymbol : IntermediateSymbol { - public PatchTuple() : base(TupleDefinitions.Patch, null, null) + public PatchSymbol() : base(SymbolDefinitions.Patch, null, null) { } - public PatchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Patch, sourceLineNumber, id) + public PatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Patch, sourceLineNumber, id) { } - public IntermediateField this[PatchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[PatchSymbolFields index] => this.Fields[(int)index]; public string FileRef { - get => (string)this.Fields[(int)PatchTupleFields.FileRef]; - set => this.Set((int)PatchTupleFields.FileRef, value); + get => (string)this.Fields[(int)PatchSymbolFields.FileRef]; + set => this.Set((int)PatchSymbolFields.FileRef, value); } public int Sequence { - get => (int)this.Fields[(int)PatchTupleFields.Sequence]; - set => this.Set((int)PatchTupleFields.Sequence, value); + get => (int)this.Fields[(int)PatchSymbolFields.Sequence]; + set => this.Set((int)PatchSymbolFields.Sequence, value); } public int PatchSize { - get => (int)this.Fields[(int)PatchTupleFields.PatchSize]; - set => this.Set((int)PatchTupleFields.PatchSize, value); + get => (int)this.Fields[(int)PatchSymbolFields.PatchSize]; + set => this.Set((int)PatchSymbolFields.PatchSize, value); } public int Attributes { - get => (int)this.Fields[(int)PatchTupleFields.Attributes]; - set => this.Set((int)PatchTupleFields.Attributes, value); + get => (int)this.Fields[(int)PatchSymbolFields.Attributes]; + set => this.Set((int)PatchSymbolFields.Attributes, value); } public string Header { - get => (string)this.Fields[(int)PatchTupleFields.Header]; - set => this.Set((int)PatchTupleFields.Header, value); + get => (string)this.Fields[(int)PatchSymbolFields.Header]; + set => this.Set((int)PatchSymbolFields.Header, value); } public string StreamRef { - get => (string)this.Fields[(int)PatchTupleFields.StreamRef]; - set => this.Set((int)PatchTupleFields.StreamRef, value); + get => (string)this.Fields[(int)PatchSymbolFields.StreamRef]; + set => this.Set((int)PatchSymbolFields.StreamRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ProgIdTuple.cs b/src/WixToolset.Data/Tuples/ProgIdTuple.cs index 02f66a90..57ac758f 100644 --- a/src/WixToolset.Data/Tuples/ProgIdTuple.cs +++ b/src/WixToolset.Data/Tuples/ProgIdTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ProgId = new IntermediateTupleDefinition( - TupleDefinitionType.ProgId, + public static readonly IntermediateSymbolDefinition ProgId = new IntermediateSymbolDefinition( + SymbolDefinitionType.ProgId, new[] { - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ProgId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ParentProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ClassRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdTupleFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ProgId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ParentProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ClassRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconIndex), IntermediateFieldType.Number), }, - typeof(ProgIdTuple)); + typeof(ProgIdSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ProgIdTupleFields + public enum ProgIdSymbolFields { ProgId, ParentProgIdRef, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples IconIndex, } - public class ProgIdTuple : IntermediateTuple + public class ProgIdSymbol : IntermediateSymbol { - public ProgIdTuple() : base(TupleDefinitions.ProgId, null, null) + public ProgIdSymbol() : base(SymbolDefinitions.ProgId, null, null) { } - public ProgIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ProgId, sourceLineNumber, id) + public ProgIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProgId, sourceLineNumber, id) { } - public IntermediateField this[ProgIdTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ProgIdSymbolFields index] => this.Fields[(int)index]; public string ProgId { - get => (string)this.Fields[(int)ProgIdTupleFields.ProgId]; - set => this.Set((int)ProgIdTupleFields.ProgId, value); + get => (string)this.Fields[(int)ProgIdSymbolFields.ProgId]; + set => this.Set((int)ProgIdSymbolFields.ProgId, value); } public string ParentProgIdRef { - get => (string)this.Fields[(int)ProgIdTupleFields.ParentProgIdRef]; - set => this.Set((int)ProgIdTupleFields.ParentProgIdRef, value); + get => (string)this.Fields[(int)ProgIdSymbolFields.ParentProgIdRef]; + set => this.Set((int)ProgIdSymbolFields.ParentProgIdRef, value); } public string ClassRef { - get => (string)this.Fields[(int)ProgIdTupleFields.ClassRef]; - set => this.Set((int)ProgIdTupleFields.ClassRef, value); + get => (string)this.Fields[(int)ProgIdSymbolFields.ClassRef]; + set => this.Set((int)ProgIdSymbolFields.ClassRef, value); } public string Description { - get => (string)this.Fields[(int)ProgIdTupleFields.Description]; - set => this.Set((int)ProgIdTupleFields.Description, value); + get => (string)this.Fields[(int)ProgIdSymbolFields.Description]; + set => this.Set((int)ProgIdSymbolFields.Description, value); } public string IconRef { - get => (string)this.Fields[(int)ProgIdTupleFields.IconRef]; - set => this.Set((int)ProgIdTupleFields.IconRef, value); + get => (string)this.Fields[(int)ProgIdSymbolFields.IconRef]; + set => this.Set((int)ProgIdSymbolFields.IconRef, value); } public int? IconIndex { - get => (int?)this.Fields[(int)ProgIdTupleFields.IconIndex]; - set => this.Set((int)ProgIdTupleFields.IconIndex, value); + get => (int?)this.Fields[(int)ProgIdSymbolFields.IconIndex]; + set => this.Set((int)ProgIdSymbolFields.IconIndex, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PropertiesTuple.cs b/src/WixToolset.Data/Tuples/PropertiesTuple.cs index aaccaa81..61059aa6 100644 --- a/src/WixToolset.Data/Tuples/PropertiesTuple.cs +++ b/src/WixToolset.Data/Tuples/PropertiesTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Properties = new IntermediateTupleDefinition( - TupleDefinitionType.Properties, + public static readonly IntermediateSymbolDefinition Properties = new IntermediateSymbolDefinition( + SymbolDefinitionType.Properties, new[] { - new IntermediateFieldDefinition(nameof(PropertiesTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PropertiesTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Value), IntermediateFieldType.String), }, - typeof(PropertiesTuple)); + typeof(PropertiesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum PropertiesTupleFields + public enum PropertiesSymbolFields { Name, Value, } - public class PropertiesTuple : IntermediateTuple + public class PropertiesSymbol : IntermediateSymbol { - public PropertiesTuple() : base(TupleDefinitions.Properties, null, null) + public PropertiesSymbol() : base(SymbolDefinitions.Properties, null, null) { } - public PropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Properties, sourceLineNumber, id) + public PropertiesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Properties, sourceLineNumber, id) { } - public IntermediateField this[PropertiesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[PropertiesSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)PropertiesTupleFields.Name]; - set => this.Set((int)PropertiesTupleFields.Name, value); + get => (string)this.Fields[(int)PropertiesSymbolFields.Name]; + set => this.Set((int)PropertiesSymbolFields.Name, value); } public string Value { - get => (string)this.Fields[(int)PropertiesTupleFields.Value]; - set => this.Set((int)PropertiesTupleFields.Value, value); + get => (string)this.Fields[(int)PropertiesSymbolFields.Value]; + set => this.Set((int)PropertiesSymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PropertyTuple.cs b/src/WixToolset.Data/Tuples/PropertyTuple.cs index e6a5ceae..b93d962a 100644 --- a/src/WixToolset.Data/Tuples/PropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/PropertyTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Property = new IntermediateTupleDefinition( - TupleDefinitionType.Property, + public static readonly IntermediateSymbolDefinition Property = new IntermediateSymbolDefinition( + SymbolDefinitionType.Property, new[] { - new IntermediateFieldDefinition(nameof(PropertyTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PropertySymbolFields.Value), IntermediateFieldType.String), }, - typeof(PropertyTuple)); + typeof(PropertySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum PropertyTupleFields + public enum PropertySymbolFields { Value, } - public class PropertyTuple : IntermediateTuple + public class PropertySymbol : IntermediateSymbol { - public PropertyTuple() : base(TupleDefinitions.Property, null, null) + public PropertySymbol() : base(SymbolDefinitions.Property, null, null) { } - public PropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Property, sourceLineNumber, id) + public PropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Property, sourceLineNumber, id) { } - public IntermediateField this[PropertyTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[PropertySymbolFields index] => this.Fields[(int)index]; public string Value { - get => (string)this.Fields[(int)PropertyTupleFields.Value]; - set => this.Set((int)PropertyTupleFields.Value, value); + get => (string)this.Fields[(int)PropertySymbolFields.Value]; + set => this.Set((int)PropertySymbolFields.Value, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs b/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs index a6337bdf..8d8cb02b 100644 --- a/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs +++ b/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ProvidesDependency = new IntermediateTupleDefinition( - TupleDefinitionType.ProvidesDependency, + public static readonly IntermediateSymbolDefinition ProvidesDependency = new IntermediateSymbolDefinition( + SymbolDefinitionType.ProvidesDependency, new[] { - new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Imported), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Imported), IntermediateFieldType.Bool), }, - typeof(ProvidesDependencyTuple)); + typeof(ProvidesDependencySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ProvidesDependencyTupleFields + public enum ProvidesDependencySymbolFields { PackageRef, Key, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples Imported, } - public class ProvidesDependencyTuple : IntermediateTuple + public class ProvidesDependencySymbol : IntermediateSymbol { - public ProvidesDependencyTuple() : base(TupleDefinitions.ProvidesDependency, null, null) + public ProvidesDependencySymbol() : base(SymbolDefinitions.ProvidesDependency, null, null) { } - public ProvidesDependencyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ProvidesDependency, sourceLineNumber, id) + public ProvidesDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProvidesDependency, sourceLineNumber, id) { } - public IntermediateField this[ProvidesDependencyTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ProvidesDependencySymbolFields index] => this.Fields[(int)index]; public string PackageRef { - get => (string)this.Fields[(int)ProvidesDependencyTupleFields.PackageRef]; - set => this.Set((int)ProvidesDependencyTupleFields.PackageRef, value); + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.PackageRef]; + set => this.Set((int)ProvidesDependencySymbolFields.PackageRef, value); } public string Key { - get => (string)this.Fields[(int)ProvidesDependencyTupleFields.Key]; - set => this.Set((int)ProvidesDependencyTupleFields.Key, value); + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Key]; + set => this.Set((int)ProvidesDependencySymbolFields.Key, value); } public string Version { - get => (string)this.Fields[(int)ProvidesDependencyTupleFields.Version]; - set => this.Set((int)ProvidesDependencyTupleFields.Version, value); + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Version]; + set => this.Set((int)ProvidesDependencySymbolFields.Version, value); } public string DisplayName { - get => (string)this.Fields[(int)ProvidesDependencyTupleFields.DisplayName]; - set => this.Set((int)ProvidesDependencyTupleFields.DisplayName, value); + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.DisplayName]; + set => this.Set((int)ProvidesDependencySymbolFields.DisplayName, value); } public int? Attributes { - get => (int?)this.Fields[(int)ProvidesDependencyTupleFields.Attributes]; - set => this.Set((int)ProvidesDependencyTupleFields.Attributes, value); + get => (int?)this.Fields[(int)ProvidesDependencySymbolFields.Attributes]; + set => this.Set((int)ProvidesDependencySymbolFields.Attributes, value); } public bool Imported { - get => (bool)this.Fields[(int)ProvidesDependencyTupleFields.Imported]; - set => this.Set((int)ProvidesDependencyTupleFields.Imported, value); + get => (bool)this.Fields[(int)ProvidesDependencySymbolFields.Imported]; + set => this.Set((int)ProvidesDependencySymbolFields.Imported, value); } } } diff --git a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs index 502988a3..3fb81801 100644 --- a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition PublishComponent = new IntermediateTupleDefinition( - TupleDefinitionType.PublishComponent, + public static readonly IntermediateSymbolDefinition PublishComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.PublishComponent, new[] { - new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Qualifier), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.AppData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.Qualifier), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.AppData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.FeatureRef), IntermediateFieldType.String), }, - typeof(PublishComponentTuple)); + typeof(PublishComponentSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum PublishComponentTupleFields + public enum PublishComponentSymbolFields { ComponentId, Qualifier, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples FeatureRef, } - public class PublishComponentTuple : IntermediateTuple + public class PublishComponentSymbol : IntermediateSymbol { - public PublishComponentTuple() : base(TupleDefinitions.PublishComponent, null, null) + public PublishComponentSymbol() : base(SymbolDefinitions.PublishComponent, null, null) { } - public PublishComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PublishComponent, sourceLineNumber, id) + public PublishComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PublishComponent, sourceLineNumber, id) { } - public IntermediateField this[PublishComponentTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[PublishComponentSymbolFields index] => this.Fields[(int)index]; public string ComponentId { - get => (string)this.Fields[(int)PublishComponentTupleFields.ComponentId]; - set => this.Set((int)PublishComponentTupleFields.ComponentId, value); + get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentId]; + set => this.Set((int)PublishComponentSymbolFields.ComponentId, value); } public string Qualifier { - get => (string)this.Fields[(int)PublishComponentTupleFields.Qualifier]; - set => this.Set((int)PublishComponentTupleFields.Qualifier, value); + get => (string)this.Fields[(int)PublishComponentSymbolFields.Qualifier]; + set => this.Set((int)PublishComponentSymbolFields.Qualifier, value); } public string ComponentRef { - get => (string)this.Fields[(int)PublishComponentTupleFields.ComponentRef]; - set => this.Set((int)PublishComponentTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentRef]; + set => this.Set((int)PublishComponentSymbolFields.ComponentRef, value); } public string AppData { - get => (string)this.Fields[(int)PublishComponentTupleFields.AppData]; - set => this.Set((int)PublishComponentTupleFields.AppData, value); + get => (string)this.Fields[(int)PublishComponentSymbolFields.AppData]; + set => this.Set((int)PublishComponentSymbolFields.AppData, value); } public string FeatureRef { - get => (string)this.Fields[(int)PublishComponentTupleFields.FeatureRef]; - set => this.Set((int)PublishComponentTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)PublishComponentSymbolFields.FeatureRef]; + set => this.Set((int)PublishComponentSymbolFields.FeatureRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs index 2fea402a..6a26e937 100644 --- a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs +++ b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs @@ -2,31 +2,31 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition RadioButton = new IntermediateTupleDefinition( - TupleDefinitionType.RadioButton, + public static readonly IntermediateSymbolDefinition RadioButton = new IntermediateSymbolDefinition( + SymbolDefinitionType.RadioButton, new[] { - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Help), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Help), IntermediateFieldType.String), }, - typeof(RadioButtonTuple)); + typeof(RadioButtonSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum RadioButtonTupleFields + public enum RadioButtonSymbolFields { Property, Order, @@ -39,70 +39,70 @@ namespace WixToolset.Data.Tuples Help, } - public class RadioButtonTuple : IntermediateTuple + public class RadioButtonSymbol : IntermediateSymbol { - public RadioButtonTuple() : base(TupleDefinitions.RadioButton, null, null) + public RadioButtonSymbol() : base(SymbolDefinitions.RadioButton, null, null) { } - public RadioButtonTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RadioButton, sourceLineNumber, id) + public RadioButtonSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RadioButton, sourceLineNumber, id) { } - public IntermediateField this[RadioButtonTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[RadioButtonSymbolFields index] => this.Fields[(int)index]; public string Property { - get => (string)this.Fields[(int)RadioButtonTupleFields.Property]; - set => this.Set((int)RadioButtonTupleFields.Property, value); + get => (string)this.Fields[(int)RadioButtonSymbolFields.Property]; + set => this.Set((int)RadioButtonSymbolFields.Property, value); } public int Order { - get => (int)this.Fields[(int)RadioButtonTupleFields.Order]; - set => this.Set((int)RadioButtonTupleFields.Order, value); + get => (int)this.Fields[(int)RadioButtonSymbolFields.Order]; + set => this.Set((int)RadioButtonSymbolFields.Order, value); } public string Value { - get => (string)this.Fields[(int)RadioButtonTupleFields.Value]; - set => this.Set((int)RadioButtonTupleFields.Value, value); + get => (string)this.Fields[(int)RadioButtonSymbolFields.Value]; + set => this.Set((int)RadioButtonSymbolFields.Value, value); } public int X { - get => (int)this.Fields[(int)RadioButtonTupleFields.X]; - set => this.Set((int)RadioButtonTupleFields.X, value); + get => (int)this.Fields[(int)RadioButtonSymbolFields.X]; + set => this.Set((int)RadioButtonSymbolFields.X, value); } public int Y { - get => (int)this.Fields[(int)RadioButtonTupleFields.Y]; - set => this.Set((int)RadioButtonTupleFields.Y, value); + get => (int)this.Fields[(int)RadioButtonSymbolFields.Y]; + set => this.Set((int)RadioButtonSymbolFields.Y, value); } public int Width { - get => (int)this.Fields[(int)RadioButtonTupleFields.Width]; - set => this.Set((int)RadioButtonTupleFields.Width, value); + get => (int)this.Fields[(int)RadioButtonSymbolFields.Width]; + set => this.Set((int)RadioButtonSymbolFields.Width, value); } public int Height { - get => (int)this.Fields[(int)RadioButtonTupleFields.Height]; - set => this.Set((int)RadioButtonTupleFields.Height, value); + get => (int)this.Fields[(int)RadioButtonSymbolFields.Height]; + set => this.Set((int)RadioButtonSymbolFields.Height, value); } public string Text { - get => (string)this.Fields[(int)RadioButtonTupleFields.Text]; - set => this.Set((int)RadioButtonTupleFields.Text, value); + get => (string)this.Fields[(int)RadioButtonSymbolFields.Text]; + set => this.Set((int)RadioButtonSymbolFields.Text, value); } public string Help { - get => (string)this.Fields[(int)RadioButtonTupleFields.Help]; - set => this.Set((int)RadioButtonTupleFields.Help, value); + get => (string)this.Fields[(int)RadioButtonSymbolFields.Help]; + set => this.Set((int)RadioButtonSymbolFields.Help, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs index 8f358051..bf50dab7 100644 --- a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs +++ b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition RegLocator = new IntermediateTupleDefinition( - TupleDefinitionType.RegLocator, + public static readonly IntermediateSymbolDefinition RegLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.RegLocator, new[] { - new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Win64), IntermediateFieldType.Bool), }, - typeof(RegLocatorTuple)); + typeof(RegLocatorSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum RegLocatorTupleFields + public enum RegLocatorSymbolFields { Root, Key, @@ -38,46 +38,46 @@ namespace WixToolset.Data.Tuples Raw }; - public class RegLocatorTuple : IntermediateTuple + public class RegLocatorSymbol : IntermediateSymbol { - public RegLocatorTuple() : base(TupleDefinitions.RegLocator, null, null) + public RegLocatorSymbol() : base(SymbolDefinitions.RegLocator, null, null) { } - public RegLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RegLocator, sourceLineNumber, id) + public RegLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RegLocator, sourceLineNumber, id) { } - public IntermediateField this[RegLocatorTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[RegLocatorSymbolFields index] => this.Fields[(int)index]; public RegistryRootType Root { - get => (RegistryRootType)this.Fields[(int)RegLocatorTupleFields.Root].AsNumber(); - set => this.Set((int)RegLocatorTupleFields.Root, (int)value); + get => (RegistryRootType)this.Fields[(int)RegLocatorSymbolFields.Root].AsNumber(); + set => this.Set((int)RegLocatorSymbolFields.Root, (int)value); } public string Key { - get => (string)this.Fields[(int)RegLocatorTupleFields.Key]; - set => this.Set((int)RegLocatorTupleFields.Key, value); + get => (string)this.Fields[(int)RegLocatorSymbolFields.Key]; + set => this.Set((int)RegLocatorSymbolFields.Key, value); } public string Name { - get => (string)this.Fields[(int)RegLocatorTupleFields.Name]; - set => this.Set((int)RegLocatorTupleFields.Name, value); + get => (string)this.Fields[(int)RegLocatorSymbolFields.Name]; + set => this.Set((int)RegLocatorSymbolFields.Name, value); } public RegLocatorType Type { - get => (RegLocatorType)this.Fields[(int)RegLocatorTupleFields.Type].AsNumber(); - set => this.Set((int)RegLocatorTupleFields.Type, (int)value); + get => (RegLocatorType)this.Fields[(int)RegLocatorSymbolFields.Type].AsNumber(); + set => this.Set((int)RegLocatorSymbolFields.Type, (int)value); } public bool Win64 { - get => this.Fields[(int)RegLocatorTupleFields.Win64].AsBool(); - set => this.Set((int)RegLocatorTupleFields.Win64, value); + get => this.Fields[(int)RegLocatorSymbolFields.Win64].AsBool(); + set => this.Set((int)RegLocatorSymbolFields.Win64, value); } } } diff --git a/src/WixToolset.Data/Tuples/RegistryRootType.cs b/src/WixToolset.Data/Tuples/RegistryRootType.cs index b037ca63..9f60727c 100644 --- a/src/WixToolset.Data/Tuples/RegistryRootType.cs +++ b/src/WixToolset.Data/Tuples/RegistryRootType.cs @@ -1,6 +1,6 @@ // 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. -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; diff --git a/src/WixToolset.Data/Tuples/RegistryTuple.cs b/src/WixToolset.Data/Tuples/RegistryTuple.cs index 152d1341..371bfe98 100644 --- a/src/WixToolset.Data/Tuples/RegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RegistryTuple.cs @@ -2,29 +2,29 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Registry = new IntermediateTupleDefinition( - TupleDefinitionType.Registry, + public static readonly IntermediateSymbolDefinition Registry = new IntermediateSymbolDefinition( + SymbolDefinitionType.Registry, new[] { - new IntermediateFieldDefinition(nameof(RegistryTupleFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistryTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistryTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistryTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistryTupleFields.ValueType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistryTupleFields.ValueAction), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistryTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueAction), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(RegistryTuple)); + typeof(RegistrySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum RegistryTupleFields + public enum RegistrySymbolFields { Root, Key, @@ -51,58 +51,58 @@ namespace WixToolset.Data.Tuples Prepend, } - public class RegistryTuple : IntermediateTuple + public class RegistrySymbol : IntermediateSymbol { - public RegistryTuple() : base(TupleDefinitions.Registry, null, null) + public RegistrySymbol() : base(SymbolDefinitions.Registry, null, null) { } - public RegistryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Registry, sourceLineNumber, id) + public RegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Registry, sourceLineNumber, id) { } - public IntermediateField this[RegistryTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[RegistrySymbolFields index] => this.Fields[(int)index]; public RegistryRootType Root { - get => (RegistryRootType)this.Fields[(int)RegistryTupleFields.Root].AsNumber(); - set => this.Set((int)RegistryTupleFields.Root, (int)value); + get => (RegistryRootType)this.Fields[(int)RegistrySymbolFields.Root].AsNumber(); + set => this.Set((int)RegistrySymbolFields.Root, (int)value); } public string Key { - get => (string)this.Fields[(int)RegistryTupleFields.Key]; - set => this.Set((int)RegistryTupleFields.Key, value); + get => (string)this.Fields[(int)RegistrySymbolFields.Key]; + set => this.Set((int)RegistrySymbolFields.Key, value); } public string Name { - get => (string)this.Fields[(int)RegistryTupleFields.Name]; - set => this.Set((int)RegistryTupleFields.Name, value); + get => (string)this.Fields[(int)RegistrySymbolFields.Name]; + set => this.Set((int)RegistrySymbolFields.Name, value); } public string Value { - get => this.Fields[(int)RegistryTupleFields.Value].AsString(); - set => this.Set((int)RegistryTupleFields.Value, value); + get => this.Fields[(int)RegistrySymbolFields.Value].AsString(); + set => this.Set((int)RegistrySymbolFields.Value, value); } public RegistryValueType ValueType { - get => (RegistryValueType)this.Fields[(int)RegistryTupleFields.ValueType].AsNumber(); - set => this.Set((int)RegistryTupleFields.ValueType, (int)value); + get => (RegistryValueType)this.Fields[(int)RegistrySymbolFields.ValueType].AsNumber(); + set => this.Set((int)RegistrySymbolFields.ValueType, (int)value); } public RegistryValueActionType ValueAction { - get => (RegistryValueActionType)this.Fields[(int)RegistryTupleFields.ValueAction].AsNumber(); - set => this.Set((int)RegistryTupleFields.ValueAction, (int)value); + get => (RegistryValueActionType)this.Fields[(int)RegistrySymbolFields.ValueAction].AsNumber(); + set => this.Set((int)RegistrySymbolFields.ValueAction, (int)value); } public string ComponentRef { - get => (string)this.Fields[(int)RegistryTupleFields.ComponentRef]; - set => this.Set((int)RegistryTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)RegistrySymbolFields.ComponentRef]; + set => this.Set((int)RegistrySymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs index d0b3268a..a1791e54 100644 --- a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition RemoveFile = new IntermediateTupleDefinition( - TupleDefinitionType.RemoveFile, + public static readonly IntermediateSymbolDefinition RemoveFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.RemoveFile, new[] { - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.DirProperty), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.OnUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnUninstall), IntermediateFieldType.Bool), }, - typeof(RemoveFileTuple)); + typeof(RemoveFileSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum RemoveFileTupleFields + public enum RemoveFileSymbolFields { ComponentRef, FileName, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples OnUninstall, } - public class RemoveFileTuple : IntermediateTuple + public class RemoveFileSymbol : IntermediateSymbol { - public RemoveFileTuple() : base(TupleDefinitions.RemoveFile, null, null) + public RemoveFileSymbol() : base(SymbolDefinitions.RemoveFile, null, null) { } - public RemoveFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveFile, sourceLineNumber, id) + public RemoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveFile, sourceLineNumber, id) { } - public IntermediateField this[RemoveFileTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[RemoveFileSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)RemoveFileTupleFields.ComponentRef]; - set => this.Set((int)RemoveFileTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)RemoveFileSymbolFields.ComponentRef]; + set => this.Set((int)RemoveFileSymbolFields.ComponentRef, value); } public string FileName { - get => (string)this.Fields[(int)RemoveFileTupleFields.FileName]; - set => this.Set((int)RemoveFileTupleFields.FileName, value); + get => (string)this.Fields[(int)RemoveFileSymbolFields.FileName]; + set => this.Set((int)RemoveFileSymbolFields.FileName, value); } public string DirProperty { - get => (string)this.Fields[(int)RemoveFileTupleFields.DirProperty]; - set => this.Set((int)RemoveFileTupleFields.DirProperty, value); + get => (string)this.Fields[(int)RemoveFileSymbolFields.DirProperty]; + set => this.Set((int)RemoveFileSymbolFields.DirProperty, value); } public bool? OnInstall { - get => (bool?)this.Fields[(int)RemoveFileTupleFields.OnInstall]; - set => this.Set((int)RemoveFileTupleFields.OnInstall, value); + get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnInstall]; + set => this.Set((int)RemoveFileSymbolFields.OnInstall, value); } public bool? OnUninstall { - get => (bool?)this.Fields[(int)RemoveFileTupleFields.OnUninstall]; - set => this.Set((int)RemoveFileTupleFields.OnUninstall, value); + get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnUninstall]; + set => this.Set((int)RemoveFileSymbolFields.OnUninstall, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs index f4ec17bf..a797cd33 100644 --- a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs +++ b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition RemoveRegistry = new IntermediateTupleDefinition( - TupleDefinitionType.RemoveRegistry, + public static readonly IntermediateSymbolDefinition RemoveRegistry = new IntermediateSymbolDefinition( + SymbolDefinitionType.RemoveRegistry, new[] { - new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(RemoveRegistryTuple)); + typeof(RemoveRegistrySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum RemoveRegistryTupleFields + public enum RemoveRegistrySymbolFields { Root, Key, @@ -37,46 +37,46 @@ namespace WixToolset.Data.Tuples RemoveOnUninstall }; - public class RemoveRegistryTuple : IntermediateTuple + public class RemoveRegistrySymbol : IntermediateSymbol { - public RemoveRegistryTuple() : base(TupleDefinitions.RemoveRegistry, null, null) + public RemoveRegistrySymbol() : base(SymbolDefinitions.RemoveRegistry, null, null) { } - public RemoveRegistryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveRegistry, sourceLineNumber, id) + public RemoveRegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveRegistry, sourceLineNumber, id) { } - public IntermediateField this[RemoveRegistryTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[RemoveRegistrySymbolFields index] => this.Fields[(int)index]; public RegistryRootType Root { - get => (RegistryRootType)this.Fields[(int)RemoveRegistryTupleFields.Root].AsNumber(); - set => this.Set((int)RemoveRegistryTupleFields.Root, (int)value); + get => (RegistryRootType)this.Fields[(int)RemoveRegistrySymbolFields.Root].AsNumber(); + set => this.Set((int)RemoveRegistrySymbolFields.Root, (int)value); } public string Key { - get => (string)this.Fields[(int)RemoveRegistryTupleFields.Key]; - set => this.Set((int)RemoveRegistryTupleFields.Key, value); + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Key]; + set => this.Set((int)RemoveRegistrySymbolFields.Key, value); } public string Name { - get => (string)this.Fields[(int)RemoveRegistryTupleFields.Name]; - set => this.Set((int)RemoveRegistryTupleFields.Name, value); + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Name]; + set => this.Set((int)RemoveRegistrySymbolFields.Name, value); } public RemoveRegistryActionType Action { - get => (RemoveRegistryActionType)this.Fields[(int)RemoveRegistryTupleFields.Action].AsNumber(); - set => this.Set((int)RemoveRegistryTupleFields.Action, (int)value); + get => (RemoveRegistryActionType)this.Fields[(int)RemoveRegistrySymbolFields.Action].AsNumber(); + set => this.Set((int)RemoveRegistrySymbolFields.Action, (int)value); } public string ComponentRef { - get => (string)this.Fields[(int)RemoveRegistryTupleFields.ComponentRef]; - set => this.Set((int)RemoveRegistryTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.ComponentRef]; + set => this.Set((int)RemoveRegistrySymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs index dbbedb2e..b59dea2f 100644 --- a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs +++ b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ReserveCost = new IntermediateTupleDefinition( - TupleDefinitionType.ReserveCost, + public static readonly IntermediateSymbolDefinition ReserveCost = new IntermediateSymbolDefinition( + SymbolDefinitionType.ReserveCost, new[] { - new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveLocal), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveSource), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveLocal), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveSource), IntermediateFieldType.Number), }, - typeof(ReserveCostTuple)); + typeof(ReserveCostSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ReserveCostTupleFields + public enum ReserveCostSymbolFields { ComponentRef, ReserveFolder, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples ReserveSource, } - public class ReserveCostTuple : IntermediateTuple + public class ReserveCostSymbol : IntermediateSymbol { - public ReserveCostTuple() : base(TupleDefinitions.ReserveCost, null, null) + public ReserveCostSymbol() : base(SymbolDefinitions.ReserveCost, null, null) { } - public ReserveCostTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ReserveCost, sourceLineNumber, id) + public ReserveCostSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ReserveCost, sourceLineNumber, id) { } - public IntermediateField this[ReserveCostTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ReserveCostSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)ReserveCostTupleFields.ComponentRef]; - set => this.Set((int)ReserveCostTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ReserveCostSymbolFields.ComponentRef]; + set => this.Set((int)ReserveCostSymbolFields.ComponentRef, value); } public string ReserveFolder { - get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveFolder]; - set => this.Set((int)ReserveCostTupleFields.ReserveFolder, value); + get => (string)this.Fields[(int)ReserveCostSymbolFields.ReserveFolder]; + set => this.Set((int)ReserveCostSymbolFields.ReserveFolder, value); } public int ReserveLocal { - get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveLocal]; - set => this.Set((int)ReserveCostTupleFields.ReserveLocal, value); + get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveLocal]; + set => this.Set((int)ReserveCostSymbolFields.ReserveLocal, value); } public int ReserveSource { - get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveSource]; - set => this.Set((int)ReserveCostTupleFields.ReserveSource, value); + get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveSource]; + set => this.Set((int)ReserveCostSymbolFields.ReserveSource, value); } } } diff --git a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs index e80b5cf5..0d3f1558 100644 --- a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition SFPCatalog = new IntermediateTupleDefinition( - TupleDefinitionType.SFPCatalog, + public static readonly IntermediateSymbolDefinition SFPCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.SFPCatalog, new[] { - new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.SFPCatalog), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.Catalog), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.Dependency), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.SFPCatalog), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Catalog), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Dependency), IntermediateFieldType.String), }, - typeof(SFPCatalogTuple)); + typeof(SFPCatalogSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum SFPCatalogTupleFields + public enum SFPCatalogSymbolFields { SFPCatalog, Catalog, Dependency, } - public class SFPCatalogTuple : IntermediateTuple + public class SFPCatalogSymbol : IntermediateSymbol { - public SFPCatalogTuple() : base(TupleDefinitions.SFPCatalog, null, null) + public SFPCatalogSymbol() : base(SymbolDefinitions.SFPCatalog, null, null) { } - public SFPCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SFPCatalog, sourceLineNumber, id) + public SFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SFPCatalog, sourceLineNumber, id) { } - public IntermediateField this[SFPCatalogTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[SFPCatalogSymbolFields index] => this.Fields[(int)index]; public string SFPCatalog { - get => (string)this.Fields[(int)SFPCatalogTupleFields.SFPCatalog]; - set => this.Set((int)SFPCatalogTupleFields.SFPCatalog, value); + get => (string)this.Fields[(int)SFPCatalogSymbolFields.SFPCatalog]; + set => this.Set((int)SFPCatalogSymbolFields.SFPCatalog, value); } public string Catalog { - get => (string)this.Fields[(int)SFPCatalogTupleFields.Catalog]; - set => this.Set((int)SFPCatalogTupleFields.Catalog, value); + get => (string)this.Fields[(int)SFPCatalogSymbolFields.Catalog]; + set => this.Set((int)SFPCatalogSymbolFields.Catalog, value); } public string Dependency { - get => (string)this.Fields[(int)SFPCatalogTupleFields.Dependency]; - set => this.Set((int)SFPCatalogTupleFields.Dependency, value); + get => (string)this.Fields[(int)SFPCatalogSymbolFields.Dependency]; + set => this.Set((int)SFPCatalogSymbolFields.Dependency, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs index e34de0df..6e129681 100644 --- a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs @@ -2,32 +2,32 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ServiceControl = new IntermediateTupleDefinition( - TupleDefinitionType.ServiceControl, + public static readonly IntermediateSymbolDefinition ServiceControl = new IntermediateSymbolDefinition( + SymbolDefinitionType.ServiceControl, new[] { - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.InstallRemove), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.UninstallRemove), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.InstallStart), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.UninstallStart), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.InstallStop), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.UninstallStop), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Wait), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallRemove), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallRemove), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStart), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStart), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStop), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStop), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Wait), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(ServiceControlTuple)); + typeof(ServiceControlSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ServiceControlTupleFields + public enum ServiceControlSymbolFields { Name, InstallRemove, @@ -41,76 +41,76 @@ namespace WixToolset.Data.Tuples ComponentRef, } - public class ServiceControlTuple : IntermediateTuple + public class ServiceControlSymbol : IntermediateSymbol { - public ServiceControlTuple() : base(TupleDefinitions.ServiceControl, null, null) + public ServiceControlSymbol() : base(SymbolDefinitions.ServiceControl, null, null) { } - public ServiceControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ServiceControl, sourceLineNumber, id) + public ServiceControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceControl, sourceLineNumber, id) { } - public IntermediateField this[ServiceControlTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ServiceControlSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)ServiceControlTupleFields.Name]; - set => this.Set((int)ServiceControlTupleFields.Name, value); + get => (string)this.Fields[(int)ServiceControlSymbolFields.Name]; + set => this.Set((int)ServiceControlSymbolFields.Name, value); } public bool InstallRemove { - get => this.Fields[(int)ServiceControlTupleFields.InstallRemove].AsBool(); - set => this.Set((int)ServiceControlTupleFields.InstallRemove, value); + get => this.Fields[(int)ServiceControlSymbolFields.InstallRemove].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallRemove, value); } public bool UninstallRemove { - get => this.Fields[(int)ServiceControlTupleFields.UninstallRemove].AsBool(); - set => this.Set((int)ServiceControlTupleFields.UninstallRemove, value); + get => this.Fields[(int)ServiceControlSymbolFields.UninstallRemove].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallRemove, value); } public bool InstallStart { - get => this.Fields[(int)ServiceControlTupleFields.InstallStart].AsBool(); - set => this.Set((int)ServiceControlTupleFields.InstallStart, value); + get => this.Fields[(int)ServiceControlSymbolFields.InstallStart].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallStart, value); } public bool UninstallStart { - get => this.Fields[(int)ServiceControlTupleFields.UninstallStart].AsBool(); - set => this.Set((int)ServiceControlTupleFields.UninstallStart, value); + get => this.Fields[(int)ServiceControlSymbolFields.UninstallStart].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallStart, value); } public bool InstallStop { - get => this.Fields[(int)ServiceControlTupleFields.InstallStop].AsBool(); - set => this.Set((int)ServiceControlTupleFields.InstallStop, value); + get => this.Fields[(int)ServiceControlSymbolFields.InstallStop].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallStop, value); } public bool UninstallStop { - get => this.Fields[(int)ServiceControlTupleFields.UninstallStop].AsBool(); - set => this.Set((int)ServiceControlTupleFields.UninstallStop, value); + get => this.Fields[(int)ServiceControlSymbolFields.UninstallStop].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallStop, value); } public string Arguments { - get => (string)this.Fields[(int)ServiceControlTupleFields.Arguments]; - set => this.Set((int)ServiceControlTupleFields.Arguments, value); + get => (string)this.Fields[(int)ServiceControlSymbolFields.Arguments]; + set => this.Set((int)ServiceControlSymbolFields.Arguments, value); } public bool? Wait { - get => this.Fields[(int)ServiceControlTupleFields.Wait].AsNullableBool(); - set => this.Set((int)ServiceControlTupleFields.Wait, value); + get => this.Fields[(int)ServiceControlSymbolFields.Wait].AsNullableBool(); + set => this.Set((int)ServiceControlSymbolFields.Wait, value); } public string ComponentRef { - get => (string)this.Fields[(int)ServiceControlTupleFields.ComponentRef]; - set => this.Set((int)ServiceControlTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ServiceControlSymbolFields.ComponentRef]; + set => this.Set((int)ServiceControlSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs index 9bf9afd2..f7ec8dbf 100644 --- a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs +++ b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs @@ -2,36 +2,36 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition ServiceInstall = new IntermediateTupleDefinition( - TupleDefinitionType.ServiceInstall, + public static readonly IntermediateSymbolDefinition ServiceInstall = new IntermediateSymbolDefinition( + SymbolDefinitionType.ServiceInstall, new[] { - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ServiceType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.StartType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ErrorControl), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.LoadOrderGroup), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Dependencies), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.StartName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Password), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Interactive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ServiceType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ErrorControl), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.LoadOrderGroup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Dependencies), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Password), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Interactive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Vital), IntermediateFieldType.Bool), }, - typeof(ServiceInstallTuple)); + typeof(ServiceInstallSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ServiceInstallTupleFields + public enum ServiceInstallSymbolFields { Name, DisplayName, @@ -74,100 +74,100 @@ namespace WixToolset.Data.Tuples Critical = 3, } - public class ServiceInstallTuple : IntermediateTuple + public class ServiceInstallSymbol : IntermediateSymbol { - public ServiceInstallTuple() : base(TupleDefinitions.ServiceInstall, null, null) + public ServiceInstallSymbol() : base(SymbolDefinitions.ServiceInstall, null, null) { } - public ServiceInstallTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ServiceInstall, sourceLineNumber, id) + public ServiceInstallSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceInstall, sourceLineNumber, id) { } - public IntermediateField this[ServiceInstallTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ServiceInstallSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Name]; - set => this.Set((int)ServiceInstallTupleFields.Name, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Name]; + set => this.Set((int)ServiceInstallSymbolFields.Name, value); } public string DisplayName { - get => (string)this.Fields[(int)ServiceInstallTupleFields.DisplayName]; - set => this.Set((int)ServiceInstallTupleFields.DisplayName, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.DisplayName]; + set => this.Set((int)ServiceInstallSymbolFields.DisplayName, value); } public ServiceType ServiceType { - get => (ServiceType)this.Fields[(int)ServiceInstallTupleFields.ServiceType].AsNumber(); - set => this.Set((int)ServiceInstallTupleFields.ServiceType, (int)value); + get => (ServiceType)this.Fields[(int)ServiceInstallSymbolFields.ServiceType].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.ServiceType, (int)value); } public ServiceStartType StartType { - get => (ServiceStartType)this.Fields[(int)ServiceInstallTupleFields.StartType].AsNumber(); - set => this.Set((int)ServiceInstallTupleFields.StartType, (int)value); + get => (ServiceStartType)this.Fields[(int)ServiceInstallSymbolFields.StartType].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.StartType, (int)value); } public ServiceErrorControl ErrorControl { - get => (ServiceErrorControl)this.Fields[(int)ServiceInstallTupleFields.ErrorControl].AsNumber(); - set => this.Set((int)ServiceInstallTupleFields.ErrorControl, (int)value); + get => (ServiceErrorControl)this.Fields[(int)ServiceInstallSymbolFields.ErrorControl].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.ErrorControl, (int)value); } public string LoadOrderGroup { - get => (string)this.Fields[(int)ServiceInstallTupleFields.LoadOrderGroup]; - set => this.Set((int)ServiceInstallTupleFields.LoadOrderGroup, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.LoadOrderGroup]; + set => this.Set((int)ServiceInstallSymbolFields.LoadOrderGroup, value); } public string Dependencies { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Dependencies]; - set => this.Set((int)ServiceInstallTupleFields.Dependencies, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Dependencies]; + set => this.Set((int)ServiceInstallSymbolFields.Dependencies, value); } public string StartName { - get => (string)this.Fields[(int)ServiceInstallTupleFields.StartName]; - set => this.Set((int)ServiceInstallTupleFields.StartName, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.StartName]; + set => this.Set((int)ServiceInstallSymbolFields.StartName, value); } public string Password { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Password]; - set => this.Set((int)ServiceInstallTupleFields.Password, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Password]; + set => this.Set((int)ServiceInstallSymbolFields.Password, value); } public string Arguments { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Arguments]; - set => this.Set((int)ServiceInstallTupleFields.Arguments, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Arguments]; + set => this.Set((int)ServiceInstallSymbolFields.Arguments, value); } public string ComponentRef { - get => (string)this.Fields[(int)ServiceInstallTupleFields.ComponentRef]; - set => this.Set((int)ServiceInstallTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.ComponentRef]; + set => this.Set((int)ServiceInstallSymbolFields.ComponentRef, value); } public string Description { - get => (string)this.Fields[(int)ServiceInstallTupleFields.Description]; - set => this.Set((int)ServiceInstallTupleFields.Description, value); + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Description]; + set => this.Set((int)ServiceInstallSymbolFields.Description, value); } public bool Interactive { - get => this.Fields[(int)ServiceInstallTupleFields.Interactive].AsBool(); - set => this.Set((int)ServiceInstallTupleFields.Interactive, value); + get => this.Fields[(int)ServiceInstallSymbolFields.Interactive].AsBool(); + set => this.Set((int)ServiceInstallSymbolFields.Interactive, value); } public bool Vital { - get => this.Fields[(int)ServiceInstallTupleFields.Vital].AsBool(); - set => this.Set((int)ServiceInstallTupleFields.Vital, value); + get => this.Fields[(int)ServiceInstallSymbolFields.Vital].AsBool(); + set => this.Set((int)ServiceInstallSymbolFields.Vital, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ShortcutTuple.cs b/src/WixToolset.Data/Tuples/ShortcutTuple.cs index 66b98287..f32fe4af 100644 --- a/src/WixToolset.Data/Tuples/ShortcutTuple.cs +++ b/src/WixToolset.Data/Tuples/ShortcutTuple.cs @@ -2,38 +2,38 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Shortcut = new IntermediateTupleDefinition( - TupleDefinitionType.Shortcut, + public static readonly IntermediateSymbolDefinition Shortcut = new IntermediateSymbolDefinition( + SymbolDefinitionType.Shortcut, new[] { - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Hotkey), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.IconIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Show), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.WkDir), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DisplayResourceDLL), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DisplayResourceId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DescriptionResourceDLL), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DescriptionResourceId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Hotkey), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Show), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.WkDir), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceId), IntermediateFieldType.Number), }, - typeof(ShortcutTuple)); + typeof(ShortcutSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum ShortcutTupleFields + public enum ShortcutSymbolFields { DirectoryRef, Name, @@ -60,112 +60,112 @@ namespace WixToolset.Data.Tuples Minimized = 7 } - public class ShortcutTuple : IntermediateTuple + public class ShortcutSymbol : IntermediateSymbol { - public ShortcutTuple() : base(TupleDefinitions.Shortcut, null, null) + public ShortcutSymbol() : base(SymbolDefinitions.Shortcut, null, null) { } - public ShortcutTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Shortcut, sourceLineNumber, id) + public ShortcutSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Shortcut, sourceLineNumber, id) { } - public IntermediateField this[ShortcutTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[ShortcutSymbolFields index] => this.Fields[(int)index]; public string DirectoryRef { - get => (string)this.Fields[(int)ShortcutTupleFields.DirectoryRef]; - set => this.Set((int)ShortcutTupleFields.DirectoryRef, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.DirectoryRef]; + set => this.Set((int)ShortcutSymbolFields.DirectoryRef, value); } public string Name { - get => (string)this.Fields[(int)ShortcutTupleFields.Name]; - set => this.Set((int)ShortcutTupleFields.Name, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.Name]; + set => this.Set((int)ShortcutSymbolFields.Name, value); } public string ShortName { - get => (string)this.Fields[(int)ShortcutTupleFields.ShortName]; - set => this.Set((int)ShortcutTupleFields.ShortName, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.ShortName]; + set => this.Set((int)ShortcutSymbolFields.ShortName, value); } public string ComponentRef { - get => (string)this.Fields[(int)ShortcutTupleFields.ComponentRef]; - set => this.Set((int)ShortcutTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.ComponentRef]; + set => this.Set((int)ShortcutSymbolFields.ComponentRef, value); } public string Target { - get => (string)this.Fields[(int)ShortcutTupleFields.Target]; - set => this.Set((int)ShortcutTupleFields.Target, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.Target]; + set => this.Set((int)ShortcutSymbolFields.Target, value); } public string Arguments { - get => (string)this.Fields[(int)ShortcutTupleFields.Arguments]; - set => this.Set((int)ShortcutTupleFields.Arguments, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.Arguments]; + set => this.Set((int)ShortcutSymbolFields.Arguments, value); } public string Description { - get => (string)this.Fields[(int)ShortcutTupleFields.Description]; - set => this.Set((int)ShortcutTupleFields.Description, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.Description]; + set => this.Set((int)ShortcutSymbolFields.Description, value); } public int? Hotkey { - get => this.Fields[(int)ShortcutTupleFields.Hotkey].AsNullableNumber(); - set => this.Set((int)ShortcutTupleFields.Hotkey, value); + get => this.Fields[(int)ShortcutSymbolFields.Hotkey].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.Hotkey, value); } public string IconRef { - get => (string)this.Fields[(int)ShortcutTupleFields.IconRef]; - set => this.Set((int)ShortcutTupleFields.IconRef, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.IconRef]; + set => this.Set((int)ShortcutSymbolFields.IconRef, value); } public int? IconIndex { - get => this.Fields[(int)ShortcutTupleFields.IconIndex].AsNullableNumber(); - set => this.Set((int)ShortcutTupleFields.IconIndex, value); + get => this.Fields[(int)ShortcutSymbolFields.IconIndex].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.IconIndex, value); } public ShortcutShowType? Show { - get => (ShortcutShowType?)this.Fields[(int)ShortcutTupleFields.Show].AsNullableNumber(); - set => this.Set((int)ShortcutTupleFields.Show, (int?)value); + get => (ShortcutShowType?)this.Fields[(int)ShortcutSymbolFields.Show].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.Show, (int?)value); } public string WorkingDirectory { - get => (string)this.Fields[(int)ShortcutTupleFields.WkDir]; - set => this.Set((int)ShortcutTupleFields.WkDir, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.WkDir]; + set => this.Set((int)ShortcutSymbolFields.WkDir, value); } public string DisplayResourceDll { - get => (string)this.Fields[(int)ShortcutTupleFields.DisplayResourceDLL]; - set => this.Set((int)ShortcutTupleFields.DisplayResourceDLL, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.DisplayResourceDLL]; + set => this.Set((int)ShortcutSymbolFields.DisplayResourceDLL, value); } public int? DisplayResourceId { - get => this.Fields[(int)ShortcutTupleFields.DisplayResourceId].AsNullableNumber(); - set => this.Set((int)ShortcutTupleFields.DisplayResourceId, value); + get => this.Fields[(int)ShortcutSymbolFields.DisplayResourceId].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.DisplayResourceId, value); } public string DescriptionResourceDll { - get => (string)this.Fields[(int)ShortcutTupleFields.DescriptionResourceDLL]; - set => this.Set((int)ShortcutTupleFields.DescriptionResourceDLL, value); + get => (string)this.Fields[(int)ShortcutSymbolFields.DescriptionResourceDLL]; + set => this.Set((int)ShortcutSymbolFields.DescriptionResourceDLL, value); } public int? DescriptionResourceId { - get => this.Fields[(int)ShortcutTupleFields.DescriptionResourceId].AsNullableNumber(); - set => this.Set((int)ShortcutTupleFields.DescriptionResourceId, value); + get => this.Fields[(int)ShortcutSymbolFields.DescriptionResourceId].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.DescriptionResourceId, value); } } } diff --git a/src/WixToolset.Data/Tuples/SignatureTuple.cs b/src/WixToolset.Data/Tuples/SignatureTuple.cs index ed559f64..fc2ce088 100644 --- a/src/WixToolset.Data/Tuples/SignatureTuple.cs +++ b/src/WixToolset.Data/Tuples/SignatureTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Signature = new IntermediateTupleDefinition( - TupleDefinitionType.Signature, + public static readonly IntermediateSymbolDefinition Signature = new IntermediateSymbolDefinition( + SymbolDefinitionType.Signature, new[] { - new IntermediateFieldDefinition(nameof(SignatureTupleFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureTupleFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.Languages), IntermediateFieldType.String), }, - typeof(SignatureTuple)); + typeof(SignatureSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum SignatureTupleFields + public enum SignatureSymbolFields { FileName, MinVersion, @@ -37,64 +37,64 @@ namespace WixToolset.Data.Tuples Languages, } - public class SignatureTuple : IntermediateTuple + public class SignatureSymbol : IntermediateSymbol { - public SignatureTuple() : base(TupleDefinitions.Signature, null, null) + public SignatureSymbol() : base(SymbolDefinitions.Signature, null, null) { } - public SignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Signature, sourceLineNumber, id) + public SignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Signature, sourceLineNumber, id) { } - public IntermediateField this[SignatureTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[SignatureSymbolFields index] => this.Fields[(int)index]; public string FileName { - get => (string)this.Fields[(int)SignatureTupleFields.FileName]; - set => this.Set((int)SignatureTupleFields.FileName, value); + get => (string)this.Fields[(int)SignatureSymbolFields.FileName]; + set => this.Set((int)SignatureSymbolFields.FileName, value); } public string MinVersion { - get => (string)this.Fields[(int)SignatureTupleFields.MinVersion]; - set => this.Set((int)SignatureTupleFields.MinVersion, value); + get => (string)this.Fields[(int)SignatureSymbolFields.MinVersion]; + set => this.Set((int)SignatureSymbolFields.MinVersion, value); } public string MaxVersion { - get => (string)this.Fields[(int)SignatureTupleFields.MaxVersion]; - set => this.Set((int)SignatureTupleFields.MaxVersion, value); + get => (string)this.Fields[(int)SignatureSymbolFields.MaxVersion]; + set => this.Set((int)SignatureSymbolFields.MaxVersion, value); } public int? MinSize { - get => (int?)this.Fields[(int)SignatureTupleFields.MinSize]; - set => this.Set((int)SignatureTupleFields.MinSize, value); + get => (int?)this.Fields[(int)SignatureSymbolFields.MinSize]; + set => this.Set((int)SignatureSymbolFields.MinSize, value); } public int? MaxSize { - get => (int?)this.Fields[(int)SignatureTupleFields.MaxSize]; - set => this.Set((int)SignatureTupleFields.MaxSize, value); + get => (int?)this.Fields[(int)SignatureSymbolFields.MaxSize]; + set => this.Set((int)SignatureSymbolFields.MaxSize, value); } public int? MinDate { - get => (int?)this.Fields[(int)SignatureTupleFields.MinDate]; - set => this.Set((int)SignatureTupleFields.MinDate, value); + get => (int?)this.Fields[(int)SignatureSymbolFields.MinDate]; + set => this.Set((int)SignatureSymbolFields.MinDate, value); } public int? MaxDate { - get => (int?)this.Fields[(int)SignatureTupleFields.MaxDate]; - set => this.Set((int)SignatureTupleFields.MaxDate, value); + get => (int?)this.Fields[(int)SignatureSymbolFields.MaxDate]; + set => this.Set((int)SignatureSymbolFields.MaxDate, value); } public string Languages { - get => (string)this.Fields[(int)SignatureTupleFields.Languages]; - set => this.Set((int)SignatureTupleFields.Languages, value); + get => (string)this.Fields[(int)SignatureSymbolFields.Languages]; + set => this.Set((int)SignatureSymbolFields.Languages, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs index d395d115..b3b233fe 100644 --- a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs +++ b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs @@ -2,24 +2,24 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition SummaryInformation = new IntermediateTupleDefinition( - TupleDefinitionType.SummaryInformation, + public static readonly IntermediateSymbolDefinition SummaryInformation = new IntermediateSymbolDefinition( + SymbolDefinitionType.SummaryInformation, new[] { - new IntermediateFieldDefinition(nameof(SummaryInformationTupleFields.PropertyId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SummaryInformationTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.PropertyId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.Value), IntermediateFieldType.String), }, - typeof(SummaryInformationTuple)); + typeof(SummaryInformationSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum SummaryInformationTupleFields + public enum SummaryInformationSymbolFields { PropertyId, Value, @@ -75,28 +75,28 @@ namespace WixToolset.Data.Tuples Version31 = 5, } - public class SummaryInformationTuple : IntermediateTuple + public class SummaryInformationSymbol : IntermediateSymbol { - public SummaryInformationTuple() : base(TupleDefinitions.SummaryInformation, null, null) + public SummaryInformationSymbol() : base(SymbolDefinitions.SummaryInformation, null, null) { } - public SummaryInformationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SummaryInformation, sourceLineNumber, id) + public SummaryInformationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SummaryInformation, sourceLineNumber, id) { } - public IntermediateField this[SummaryInformationTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[SummaryInformationSymbolFields index] => this.Fields[(int)index]; public SummaryInformationType PropertyId { - get => (SummaryInformationType)this.Fields[(int)SummaryInformationTupleFields.PropertyId].AsNumber(); - set => this.Set((int)SummaryInformationTupleFields.PropertyId, (int)value); + get => (SummaryInformationType)this.Fields[(int)SummaryInformationSymbolFields.PropertyId].AsNumber(); + set => this.Set((int)SummaryInformationSymbolFields.PropertyId, (int)value); } public string Value { - get => (string)this.Fields[(int)SummaryInformationTupleFields.Value]; - set => this.Set((int)SummaryInformationTupleFields.Value, value); + get => (string)this.Fields[(int)SummaryInformationSymbolFields.Value]; + set => this.Set((int)SummaryInformationSymbolFields.Value, value); } } } diff --git a/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs b/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs index 4b40d4f2..66fdc30c 100644 --- a/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs +++ b/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition TargetFilesOptionalData = new IntermediateTupleDefinition( - TupleDefinitionType.TargetFilesOptionalData, + public static readonly IntermediateSymbolDefinition TargetFilesOptionalData = new IntermediateSymbolDefinition( + SymbolDefinitionType.TargetFilesOptionalData, new[] { - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataTupleFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.RetainOffsets), IntermediateFieldType.String), }, - typeof(TargetFilesOptionalDataTuple)); + typeof(TargetFilesOptionalDataSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum TargetFilesOptionalDataTupleFields + public enum TargetFilesOptionalDataSymbolFields { Target, FTK, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples RetainOffsets, } - public class TargetFilesOptionalDataTuple : IntermediateTuple + public class TargetFilesOptionalDataSymbol : IntermediateSymbol { - public TargetFilesOptionalDataTuple() : base(TupleDefinitions.TargetFilesOptionalData, null, null) + public TargetFilesOptionalDataSymbol() : base(SymbolDefinitions.TargetFilesOptionalData, null, null) { } - public TargetFilesOptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetFilesOptionalData, sourceLineNumber, id) + public TargetFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetFilesOptionalData, sourceLineNumber, id) { } - public IntermediateField this[TargetFilesOptionalDataTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[TargetFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; public string Target { - get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.Target]; - set => this.Set((int)TargetFilesOptionalDataTupleFields.Target, value); + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.Target]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.Target, value); } public string FTK { - get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.FTK]; - set => this.Set((int)TargetFilesOptionalDataTupleFields.FTK, value); + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.FTK]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.FTK, value); } public string SymbolPaths { - get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.SymbolPaths]; - set => this.Set((int)TargetFilesOptionalDataTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.SymbolPaths]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.SymbolPaths, value); } public string IgnoreOffsets { - get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.IgnoreOffsets]; - set => this.Set((int)TargetFilesOptionalDataTupleFields.IgnoreOffsets, value); + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets, value); } public string IgnoreLengths { - get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.IgnoreLengths]; - set => this.Set((int)TargetFilesOptionalDataTupleFields.IgnoreLengths, value); + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreLengths]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreLengths, value); } public string RetainOffsets { - get => (string)this.Fields[(int)TargetFilesOptionalDataTupleFields.RetainOffsets]; - set => this.Set((int)TargetFilesOptionalDataTupleFields.RetainOffsets, value); + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.RetainOffsets]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.RetainOffsets, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs index 21920208..4748b1f3 100644 --- a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs +++ b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs @@ -2,29 +2,29 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition TargetImages = new IntermediateTupleDefinition( - TupleDefinitionType.TargetImages, + public static readonly IntermediateSymbolDefinition TargetImages = new IntermediateSymbolDefinition( + SymbolDefinitionType.TargetImages, new[] { - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.MsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.ProductValidateFlags), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.IgnoreMissingSrcFiles), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.ProductValidateFlags), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.IgnoreMissingSrcFiles), IntermediateFieldType.Bool), }, - typeof(TargetImagesTuple)); + typeof(TargetImagesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum TargetImagesTupleFields + public enum TargetImagesSymbolFields { Target, MsiPath, @@ -35,58 +35,58 @@ namespace WixToolset.Data.Tuples IgnoreMissingSrcFiles, } - public class TargetImagesTuple : IntermediateTuple + public class TargetImagesSymbol : IntermediateSymbol { - public TargetImagesTuple() : base(TupleDefinitions.TargetImages, null, null) + public TargetImagesSymbol() : base(SymbolDefinitions.TargetImages, null, null) { } - public TargetImagesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetImages, sourceLineNumber, id) + public TargetImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetImages, sourceLineNumber, id) { } - public IntermediateField this[TargetImagesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[TargetImagesSymbolFields index] => this.Fields[(int)index]; public string Target { - get => (string)this.Fields[(int)TargetImagesTupleFields.Target]; - set => this.Set((int)TargetImagesTupleFields.Target, value); + get => (string)this.Fields[(int)TargetImagesSymbolFields.Target]; + set => this.Set((int)TargetImagesSymbolFields.Target, value); } public string MsiPath { - get => (string)this.Fields[(int)TargetImagesTupleFields.MsiPath]; - set => this.Set((int)TargetImagesTupleFields.MsiPath, value); + get => (string)this.Fields[(int)TargetImagesSymbolFields.MsiPath]; + set => this.Set((int)TargetImagesSymbolFields.MsiPath, value); } public string SymbolPaths { - get => (string)this.Fields[(int)TargetImagesTupleFields.SymbolPaths]; - set => this.Set((int)TargetImagesTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)TargetImagesSymbolFields.SymbolPaths]; + set => this.Set((int)TargetImagesSymbolFields.SymbolPaths, value); } public string Upgraded { - get => (string)this.Fields[(int)TargetImagesTupleFields.Upgraded]; - set => this.Set((int)TargetImagesTupleFields.Upgraded, value); + get => (string)this.Fields[(int)TargetImagesSymbolFields.Upgraded]; + set => this.Set((int)TargetImagesSymbolFields.Upgraded, value); } public int Order { - get => (int)this.Fields[(int)TargetImagesTupleFields.Order]; - set => this.Set((int)TargetImagesTupleFields.Order, value); + get => (int)this.Fields[(int)TargetImagesSymbolFields.Order]; + set => this.Set((int)TargetImagesSymbolFields.Order, value); } public string ProductValidateFlags { - get => (string)this.Fields[(int)TargetImagesTupleFields.ProductValidateFlags]; - set => this.Set((int)TargetImagesTupleFields.ProductValidateFlags, value); + get => (string)this.Fields[(int)TargetImagesSymbolFields.ProductValidateFlags]; + set => this.Set((int)TargetImagesSymbolFields.ProductValidateFlags, value); } public bool IgnoreMissingSrcFiles { - get => (bool)this.Fields[(int)TargetImagesTupleFields.IgnoreMissingSrcFiles]; - set => this.Set((int)TargetImagesTupleFields.IgnoreMissingSrcFiles, value); + get => (bool)this.Fields[(int)TargetImagesSymbolFields.IgnoreMissingSrcFiles]; + set => this.Set((int)TargetImagesSymbolFields.IgnoreMissingSrcFiles, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TextStyleTuple.cs b/src/WixToolset.Data/Tuples/TextStyleTuple.cs index 3614808e..b07615bb 100644 --- a/src/WixToolset.Data/Tuples/TextStyleTuple.cs +++ b/src/WixToolset.Data/Tuples/TextStyleTuple.cs @@ -2,31 +2,31 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition TextStyle = new IntermediateTupleDefinition( - TupleDefinitionType.TextStyle, + public static readonly IntermediateSymbolDefinition TextStyle = new IntermediateSymbolDefinition( + SymbolDefinitionType.TextStyle, new[] { - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.FaceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Size), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Red), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Green), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Blue), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Bold), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Italic), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Strike), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Underline), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.FaceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Red), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Green), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Blue), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Bold), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Italic), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Strike), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Underline), IntermediateFieldType.Bool), }, - typeof(TextStyleTuple)); + typeof(TextStyleSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum TextStyleTupleFields + public enum TextStyleSymbolFields { FaceName, Size, @@ -39,70 +39,70 @@ namespace WixToolset.Data.Tuples Underline, } - public class TextStyleTuple : IntermediateTuple + public class TextStyleSymbol : IntermediateSymbol { - public TextStyleTuple() : base(TupleDefinitions.TextStyle, null, null) + public TextStyleSymbol() : base(SymbolDefinitions.TextStyle, null, null) { } - public TextStyleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TextStyle, sourceLineNumber, id) + public TextStyleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TextStyle, sourceLineNumber, id) { } - public IntermediateField this[TextStyleTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[TextStyleSymbolFields index] => this.Fields[(int)index]; public string FaceName { - get => (string)this.Fields[(int)TextStyleTupleFields.FaceName]; - set => this.Set((int)TextStyleTupleFields.FaceName, value); + get => (string)this.Fields[(int)TextStyleSymbolFields.FaceName]; + set => this.Set((int)TextStyleSymbolFields.FaceName, value); } public int Size { - get => (int)this.Fields[(int)TextStyleTupleFields.Size]; - set => this.Set((int)TextStyleTupleFields.Size, value); + get => (int)this.Fields[(int)TextStyleSymbolFields.Size]; + set => this.Set((int)TextStyleSymbolFields.Size, value); } public int? Red { - get => (int?)this.Fields[(int)TextStyleTupleFields.Red]; - set => this.Set((int)TextStyleTupleFields.Red, value); + get => (int?)this.Fields[(int)TextStyleSymbolFields.Red]; + set => this.Set((int)TextStyleSymbolFields.Red, value); } public int? Green { - get => (int?)this.Fields[(int)TextStyleTupleFields.Green]; - set => this.Set((int)TextStyleTupleFields.Green, value); + get => (int?)this.Fields[(int)TextStyleSymbolFields.Green]; + set => this.Set((int)TextStyleSymbolFields.Green, value); } public int? Blue { - get => (int?)this.Fields[(int)TextStyleTupleFields.Blue]; - set => this.Set((int)TextStyleTupleFields.Blue, value); + get => (int?)this.Fields[(int)TextStyleSymbolFields.Blue]; + set => this.Set((int)TextStyleSymbolFields.Blue, value); } public bool Bold { - get => (bool)this.Fields[(int)TextStyleTupleFields.Bold]; - set => this.Set((int)TextStyleTupleFields.Bold, value); + get => (bool)this.Fields[(int)TextStyleSymbolFields.Bold]; + set => this.Set((int)TextStyleSymbolFields.Bold, value); } public bool Italic { - get => (bool)this.Fields[(int)TextStyleTupleFields.Italic]; - set => this.Set((int)TextStyleTupleFields.Italic, value); + get => (bool)this.Fields[(int)TextStyleSymbolFields.Italic]; + set => this.Set((int)TextStyleSymbolFields.Italic, value); } public bool Strike { - get => (bool)this.Fields[(int)TextStyleTupleFields.Strike]; - set => this.Set((int)TextStyleTupleFields.Strike, value); + get => (bool)this.Fields[(int)TextStyleSymbolFields.Strike]; + set => this.Set((int)TextStyleSymbolFields.Strike, value); } public bool Underline { - get => (bool)this.Fields[(int)TextStyleTupleFields.Underline]; - set => this.Set((int)TextStyleTupleFields.Underline, value); + get => (bool)this.Fields[(int)TextStyleSymbolFields.Underline]; + set => this.Set((int)TextStyleSymbolFields.Underline, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TransformsFlags.cs b/src/WixToolset.Data/Tuples/TransformsFlags.cs index d3a6187c..90f22cb4 100644 --- a/src/WixToolset.Data/Tuples/TransformsFlags.cs +++ b/src/WixToolset.Data/Tuples/TransformsFlags.cs @@ -1,6 +1,6 @@ // 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. -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index 10776b67..ea90ef7b 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -4,7 +4,7 @@ namespace WixToolset.Data { using System; - public enum TupleDefinitionType + public enum SymbolDefinitionType { SummaryInformation, ActionText, @@ -185,13 +185,13 @@ namespace WixToolset.Data MustBeFromAnExtension, } - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { public static readonly Version Version = new Version("4.0.0"); - public static IntermediateTupleDefinition ByName(string name) + public static IntermediateSymbolDefinition ByName(string name) { - if (!Enum.TryParse(name, out TupleDefinitionType type) || type == TupleDefinitionType.MustBeFromAnExtension) + if (!Enum.TryParse(name, out SymbolDefinitionType type) || type == SymbolDefinitionType.MustBeFromAnExtension) { return null; } @@ -199,534 +199,534 @@ namespace WixToolset.Data return ByType(type); } - public static IntermediateTupleDefinition ByType(TupleDefinitionType type) + public static IntermediateSymbolDefinition ByType(SymbolDefinitionType type) { switch (type) { - case TupleDefinitionType.SummaryInformation: - return TupleDefinitions.SummaryInformation; + case SymbolDefinitionType.SummaryInformation: + return SymbolDefinitions.SummaryInformation; - case TupleDefinitionType.ActionText: - return TupleDefinitions.ActionText; + case SymbolDefinitionType.ActionText: + return SymbolDefinitions.ActionText; - case TupleDefinitionType.AppId: - return TupleDefinitions.AppId; + case SymbolDefinitionType.AppId: + return SymbolDefinitions.AppId; - case TupleDefinitionType.AppSearch: - return TupleDefinitions.AppSearch; + case SymbolDefinitionType.AppSearch: + return SymbolDefinitions.AppSearch; - case TupleDefinitionType.BBControl: - return TupleDefinitions.BBControl; + case SymbolDefinitionType.BBControl: + return SymbolDefinitions.BBControl; - case TupleDefinitionType.Billboard: - return TupleDefinitions.Billboard; + case SymbolDefinitionType.Billboard: + return SymbolDefinitions.Billboard; - case TupleDefinitionType.Binary: - return TupleDefinitions.Binary; + case SymbolDefinitionType.Binary: + return SymbolDefinitions.Binary; - case TupleDefinitionType.CCPSearch: - return TupleDefinitions.CCPSearch; + case SymbolDefinitionType.CCPSearch: + return SymbolDefinitions.CCPSearch; - case TupleDefinitionType.CheckBox: - return TupleDefinitions.CheckBox; + case SymbolDefinitionType.CheckBox: + return SymbolDefinitions.CheckBox; - case TupleDefinitionType.Class: - return TupleDefinitions.Class; + case SymbolDefinitionType.Class: + return SymbolDefinitions.Class; - case TupleDefinitionType.ComboBox: - return TupleDefinitions.ComboBox; + case SymbolDefinitionType.ComboBox: + return SymbolDefinitions.ComboBox; - case TupleDefinitionType.CompLocator: - return TupleDefinitions.CompLocator; + case SymbolDefinitionType.CompLocator: + return SymbolDefinitions.CompLocator; - case TupleDefinitionType.Complus: - return TupleDefinitions.Complus; + case SymbolDefinitionType.Complus: + return SymbolDefinitions.Complus; - case TupleDefinitionType.Component: - return TupleDefinitions.Component; + case SymbolDefinitionType.Component: + return SymbolDefinitions.Component; - case TupleDefinitionType.Condition: - return TupleDefinitions.Condition; + case SymbolDefinitionType.Condition: + return SymbolDefinitions.Condition; - case TupleDefinitionType.Control: - return TupleDefinitions.Control; + case SymbolDefinitionType.Control: + return SymbolDefinitions.Control; - case TupleDefinitionType.ControlCondition: - return TupleDefinitions.ControlCondition; + case SymbolDefinitionType.ControlCondition: + return SymbolDefinitions.ControlCondition; - case TupleDefinitionType.ControlEvent: - return TupleDefinitions.ControlEvent; + case SymbolDefinitionType.ControlEvent: + return SymbolDefinitions.ControlEvent; - case TupleDefinitionType.CreateFolder: - return TupleDefinitions.CreateFolder; + case SymbolDefinitionType.CreateFolder: + return SymbolDefinitions.CreateFolder; - case TupleDefinitionType.CustomAction: - return TupleDefinitions.CustomAction; + case SymbolDefinitionType.CustomAction: + return SymbolDefinitions.CustomAction; - case TupleDefinitionType.Dialog: - return TupleDefinitions.Dialog; + case SymbolDefinitionType.Dialog: + return SymbolDefinitions.Dialog; - case TupleDefinitionType.Directory: - return TupleDefinitions.Directory; + case SymbolDefinitionType.Directory: + return SymbolDefinitions.Directory; - case TupleDefinitionType.DrLocator: - return TupleDefinitions.DrLocator; + case SymbolDefinitionType.DrLocator: + return SymbolDefinitions.DrLocator; - case TupleDefinitionType.DuplicateFile: - return TupleDefinitions.DuplicateFile; + case SymbolDefinitionType.DuplicateFile: + return SymbolDefinitions.DuplicateFile; - case TupleDefinitionType.Environment: - return TupleDefinitions.Environment; + case SymbolDefinitionType.Environment: + return SymbolDefinitions.Environment; - case TupleDefinitionType.Error: - return TupleDefinitions.Error; + case SymbolDefinitionType.Error: + return SymbolDefinitions.Error; - case TupleDefinitionType.EventMapping: - return TupleDefinitions.EventMapping; + case SymbolDefinitionType.EventMapping: + return SymbolDefinitions.EventMapping; - case TupleDefinitionType.Extension: - return TupleDefinitions.Extension; + case SymbolDefinitionType.Extension: + return SymbolDefinitions.Extension; - case TupleDefinitionType.ExternalFiles: - return TupleDefinitions.ExternalFiles; + case SymbolDefinitionType.ExternalFiles: + return SymbolDefinitions.ExternalFiles; - case TupleDefinitionType.FamilyFileRanges: - return TupleDefinitions.FamilyFileRanges; + case SymbolDefinitionType.FamilyFileRanges: + return SymbolDefinitions.FamilyFileRanges; - case TupleDefinitionType.Feature: - return TupleDefinitions.Feature; + case SymbolDefinitionType.Feature: + return SymbolDefinitions.Feature; - case TupleDefinitionType.FeatureComponents: - return TupleDefinitions.FeatureComponents; + case SymbolDefinitionType.FeatureComponents: + return SymbolDefinitions.FeatureComponents; - case TupleDefinitionType.File: - return TupleDefinitions.File; + case SymbolDefinitionType.File: + return SymbolDefinitions.File; - case TupleDefinitionType.FileSFPCatalog: - return TupleDefinitions.FileSFPCatalog; + case SymbolDefinitionType.FileSFPCatalog: + return SymbolDefinitions.FileSFPCatalog; - case TupleDefinitionType.Icon: - return TupleDefinitions.Icon; + case SymbolDefinitionType.Icon: + return SymbolDefinitions.Icon; - case TupleDefinitionType.ImageFamilies: - return TupleDefinitions.ImageFamilies; + case SymbolDefinitionType.ImageFamilies: + return SymbolDefinitions.ImageFamilies; - case TupleDefinitionType.IniFile: - return TupleDefinitions.IniFile; + case SymbolDefinitionType.IniFile: + return SymbolDefinitions.IniFile; - case TupleDefinitionType.IniLocator: - return TupleDefinitions.IniLocator; + case SymbolDefinitionType.IniLocator: + return SymbolDefinitions.IniLocator; - case TupleDefinitionType.IsolatedComponent: - return TupleDefinitions.IsolatedComponent; + case SymbolDefinitionType.IsolatedComponent: + return SymbolDefinitions.IsolatedComponent; - case TupleDefinitionType.LaunchCondition: - return TupleDefinitions.LaunchCondition; + case SymbolDefinitionType.LaunchCondition: + return SymbolDefinitions.LaunchCondition; - case TupleDefinitionType.ListBox: - return TupleDefinitions.ListBox; + case SymbolDefinitionType.ListBox: + return SymbolDefinitions.ListBox; - case TupleDefinitionType.ListView: - return TupleDefinitions.ListView; + case SymbolDefinitionType.ListView: + return SymbolDefinitions.ListView; - case TupleDefinitionType.LockPermissions: - return TupleDefinitions.LockPermissions; + case SymbolDefinitionType.LockPermissions: + return SymbolDefinitions.LockPermissions; - case TupleDefinitionType.Media: - return TupleDefinitions.Media; + case SymbolDefinitionType.Media: + return SymbolDefinitions.Media; - case TupleDefinitionType.MIME: - return TupleDefinitions.MIME; + case SymbolDefinitionType.MIME: + return SymbolDefinitions.MIME; - case TupleDefinitionType.ModuleComponents: - return TupleDefinitions.ModuleComponents; + case SymbolDefinitionType.ModuleComponents: + return SymbolDefinitions.ModuleComponents; - case TupleDefinitionType.ModuleConfiguration: - return TupleDefinitions.ModuleConfiguration; + case SymbolDefinitionType.ModuleConfiguration: + return SymbolDefinitions.ModuleConfiguration; - case TupleDefinitionType.ModuleDependency: - return TupleDefinitions.ModuleDependency; + case SymbolDefinitionType.ModuleDependency: + return SymbolDefinitions.ModuleDependency; - case TupleDefinitionType.ModuleExclusion: - return TupleDefinitions.ModuleExclusion; + case SymbolDefinitionType.ModuleExclusion: + return SymbolDefinitions.ModuleExclusion; - case TupleDefinitionType.ModuleIgnoreTable: - return TupleDefinitions.ModuleIgnoreTable; + case SymbolDefinitionType.ModuleIgnoreTable: + return SymbolDefinitions.ModuleIgnoreTable; - case TupleDefinitionType.ModuleSignature: - return TupleDefinitions.ModuleSignature; + case SymbolDefinitionType.ModuleSignature: + return SymbolDefinitions.ModuleSignature; - case TupleDefinitionType.ModuleSubstitution: - return TupleDefinitions.ModuleSubstitution; + case SymbolDefinitionType.ModuleSubstitution: + return SymbolDefinitions.ModuleSubstitution; - case TupleDefinitionType.MoveFile: - return TupleDefinitions.MoveFile; + case SymbolDefinitionType.MoveFile: + return SymbolDefinitions.MoveFile; - case TupleDefinitionType.Assembly: - return TupleDefinitions.Assembly; + case SymbolDefinitionType.Assembly: + return SymbolDefinitions.Assembly; - case TupleDefinitionType.MsiAssemblyName: - return TupleDefinitions.MsiAssemblyName; + case SymbolDefinitionType.MsiAssemblyName: + return SymbolDefinitions.MsiAssemblyName; - case TupleDefinitionType.MsiDigitalCertificate: - return TupleDefinitions.MsiDigitalCertificate; + case SymbolDefinitionType.MsiDigitalCertificate: + return SymbolDefinitions.MsiDigitalCertificate; - case TupleDefinitionType.MsiDigitalSignature: - return TupleDefinitions.MsiDigitalSignature; + case SymbolDefinitionType.MsiDigitalSignature: + return SymbolDefinitions.MsiDigitalSignature; - case TupleDefinitionType.MsiEmbeddedChainer: - return TupleDefinitions.MsiEmbeddedChainer; + case SymbolDefinitionType.MsiEmbeddedChainer: + return SymbolDefinitions.MsiEmbeddedChainer; - case TupleDefinitionType.MsiEmbeddedUI: - return TupleDefinitions.MsiEmbeddedUI; + case SymbolDefinitionType.MsiEmbeddedUI: + return SymbolDefinitions.MsiEmbeddedUI; - case TupleDefinitionType.MsiFileHash: - return TupleDefinitions.MsiFileHash; + case SymbolDefinitionType.MsiFileHash: + return SymbolDefinitions.MsiFileHash; - case TupleDefinitionType.MsiLockPermissionsEx: - return TupleDefinitions.MsiLockPermissionsEx; + case SymbolDefinitionType.MsiLockPermissionsEx: + return SymbolDefinitions.MsiLockPermissionsEx; - case TupleDefinitionType.MsiPackageCertificate: - return TupleDefinitions.MsiPackageCertificate; + case SymbolDefinitionType.MsiPackageCertificate: + return SymbolDefinitions.MsiPackageCertificate; - case TupleDefinitionType.MsiPatchCertificate: - return TupleDefinitions.MsiPatchCertificate; + case SymbolDefinitionType.MsiPatchCertificate: + return SymbolDefinitions.MsiPatchCertificate; - case TupleDefinitionType.MsiPatchHeaders: - return TupleDefinitions.MsiPatchHeaders; + case SymbolDefinitionType.MsiPatchHeaders: + return SymbolDefinitions.MsiPatchHeaders; - case TupleDefinitionType.MsiPatchMetadata: - return TupleDefinitions.MsiPatchMetadata; + case SymbolDefinitionType.MsiPatchMetadata: + return SymbolDefinitions.MsiPatchMetadata; - case TupleDefinitionType.MsiPatchOldAssemblyFile: - return TupleDefinitions.MsiPatchOldAssemblyFile; + case SymbolDefinitionType.MsiPatchOldAssemblyFile: + return SymbolDefinitions.MsiPatchOldAssemblyFile; - case TupleDefinitionType.MsiPatchOldAssemblyName: - return TupleDefinitions.MsiPatchOldAssemblyName; + case SymbolDefinitionType.MsiPatchOldAssemblyName: + return SymbolDefinitions.MsiPatchOldAssemblyName; - case TupleDefinitionType.MsiPatchSequence: - return TupleDefinitions.MsiPatchSequence; + case SymbolDefinitionType.MsiPatchSequence: + return SymbolDefinitions.MsiPatchSequence; - case TupleDefinitionType.MsiServiceConfig: - return TupleDefinitions.MsiServiceConfig; + case SymbolDefinitionType.MsiServiceConfig: + return SymbolDefinitions.MsiServiceConfig; - case TupleDefinitionType.MsiServiceConfigFailureActions: - return TupleDefinitions.MsiServiceConfigFailureActions; + case SymbolDefinitionType.MsiServiceConfigFailureActions: + return SymbolDefinitions.MsiServiceConfigFailureActions; - case TupleDefinitionType.MsiShortcutProperty: - return TupleDefinitions.MsiShortcutProperty; + case SymbolDefinitionType.MsiShortcutProperty: + return SymbolDefinitions.MsiShortcutProperty; - case TupleDefinitionType.ODBCAttribute: - return TupleDefinitions.ODBCAttribute; + case SymbolDefinitionType.ODBCAttribute: + return SymbolDefinitions.ODBCAttribute; - case TupleDefinitionType.ODBCDataSource: - return TupleDefinitions.ODBCDataSource; + case SymbolDefinitionType.ODBCDataSource: + return SymbolDefinitions.ODBCDataSource; - case TupleDefinitionType.ODBCDriver: - return TupleDefinitions.ODBCDriver; + case SymbolDefinitionType.ODBCDriver: + return SymbolDefinitions.ODBCDriver; - case TupleDefinitionType.ODBCSourceAttribute: - return TupleDefinitions.ODBCSourceAttribute; + case SymbolDefinitionType.ODBCSourceAttribute: + return SymbolDefinitions.ODBCSourceAttribute; - case TupleDefinitionType.ODBCTranslator: - return TupleDefinitions.ODBCTranslator; + case SymbolDefinitionType.ODBCTranslator: + return SymbolDefinitions.ODBCTranslator; - case TupleDefinitionType.Patch: - return TupleDefinitions.Patch; + case SymbolDefinitionType.Patch: + return SymbolDefinitions.Patch; - case TupleDefinitionType.PatchMetadata: - return TupleDefinitions.PatchMetadata; + case SymbolDefinitionType.PatchMetadata: + return SymbolDefinitions.PatchMetadata; - case TupleDefinitionType.PatchPackage: - return TupleDefinitions.PatchPackage; + case SymbolDefinitionType.PatchPackage: + return SymbolDefinitions.PatchPackage; - case TupleDefinitionType.PatchSequence: - return TupleDefinitions.PatchSequence; + case SymbolDefinitionType.PatchSequence: + return SymbolDefinitions.PatchSequence; - case TupleDefinitionType.ProgId: - return TupleDefinitions.ProgId; + case SymbolDefinitionType.ProgId: + return SymbolDefinitions.ProgId; - case TupleDefinitionType.Properties: - return TupleDefinitions.Properties; + case SymbolDefinitionType.Properties: + return SymbolDefinitions.Properties; - case TupleDefinitionType.Property: - return TupleDefinitions.Property; + case SymbolDefinitionType.Property: + return SymbolDefinitions.Property; - case TupleDefinitionType.PublishComponent: - return TupleDefinitions.PublishComponent; + case SymbolDefinitionType.PublishComponent: + return SymbolDefinitions.PublishComponent; - case TupleDefinitionType.ProvidesDependency: - return TupleDefinitions.ProvidesDependency; + case SymbolDefinitionType.ProvidesDependency: + return SymbolDefinitions.ProvidesDependency; - case TupleDefinitionType.RadioButton: - return TupleDefinitions.RadioButton; + case SymbolDefinitionType.RadioButton: + return SymbolDefinitions.RadioButton; - case TupleDefinitionType.Registry: - return TupleDefinitions.Registry; + case SymbolDefinitionType.Registry: + return SymbolDefinitions.Registry; - case TupleDefinitionType.RegLocator: - return TupleDefinitions.RegLocator; + case SymbolDefinitionType.RegLocator: + return SymbolDefinitions.RegLocator; - case TupleDefinitionType.RemoveFile: - return TupleDefinitions.RemoveFile; + case SymbolDefinitionType.RemoveFile: + return SymbolDefinitions.RemoveFile; - case TupleDefinitionType.RemoveRegistry: - return TupleDefinitions.RemoveRegistry; + case SymbolDefinitionType.RemoveRegistry: + return SymbolDefinitions.RemoveRegistry; - case TupleDefinitionType.ReserveCost: - return TupleDefinitions.ReserveCost; + case SymbolDefinitionType.ReserveCost: + return SymbolDefinitions.ReserveCost; - case TupleDefinitionType.ServiceControl: - return TupleDefinitions.ServiceControl; + case SymbolDefinitionType.ServiceControl: + return SymbolDefinitions.ServiceControl; - case TupleDefinitionType.ServiceInstall: - return TupleDefinitions.ServiceInstall; + case SymbolDefinitionType.ServiceInstall: + return SymbolDefinitions.ServiceInstall; - case TupleDefinitionType.SFPCatalog: - return TupleDefinitions.SFPCatalog; + case SymbolDefinitionType.SFPCatalog: + return SymbolDefinitions.SFPCatalog; - case TupleDefinitionType.Shortcut: - return TupleDefinitions.Shortcut; + case SymbolDefinitionType.Shortcut: + return SymbolDefinitions.Shortcut; - case TupleDefinitionType.Signature: - return TupleDefinitions.Signature; + case SymbolDefinitionType.Signature: + return SymbolDefinitions.Signature; - case TupleDefinitionType.TargetFilesOptionalData: - return TupleDefinitions.TargetFilesOptionalData; + case SymbolDefinitionType.TargetFilesOptionalData: + return SymbolDefinitions.TargetFilesOptionalData; - case TupleDefinitionType.TargetImages: - return TupleDefinitions.TargetImages; + case SymbolDefinitionType.TargetImages: + return SymbolDefinitions.TargetImages; - case TupleDefinitionType.TextStyle: - return TupleDefinitions.TextStyle; + case SymbolDefinitionType.TextStyle: + return SymbolDefinitions.TextStyle; - case TupleDefinitionType.TypeLib: - return TupleDefinitions.TypeLib; + case SymbolDefinitionType.TypeLib: + return SymbolDefinitions.TypeLib; - case TupleDefinitionType.UIText: - return TupleDefinitions.UIText; + case SymbolDefinitionType.UIText: + return SymbolDefinitions.UIText; - case TupleDefinitionType.Upgrade: - return TupleDefinitions.Upgrade; + case SymbolDefinitionType.Upgrade: + return SymbolDefinitions.Upgrade; - case TupleDefinitionType.UpgradedFilesOptionalData: - return TupleDefinitions.UpgradedFilesOptionalData; + case SymbolDefinitionType.UpgradedFilesOptionalData: + return SymbolDefinitions.UpgradedFilesOptionalData; - case TupleDefinitionType.UpgradedFilesToIgnore: - return TupleDefinitions.UpgradedFilesToIgnore; + case SymbolDefinitionType.UpgradedFilesToIgnore: + return SymbolDefinitions.UpgradedFilesToIgnore; - case TupleDefinitionType.UpgradedImages: - return TupleDefinitions.UpgradedImages; + case SymbolDefinitionType.UpgradedImages: + return SymbolDefinitions.UpgradedImages; - case TupleDefinitionType.Verb: - return TupleDefinitions.Verb; + case SymbolDefinitionType.Verb: + return SymbolDefinitions.Verb; - case TupleDefinitionType.WixAction: - return TupleDefinitions.WixAction; + case SymbolDefinitionType.WixAction: + return SymbolDefinitions.WixAction; - case TupleDefinitionType.WixApprovedExeForElevation: - return TupleDefinitions.WixApprovedExeForElevation; + case SymbolDefinitionType.WixApprovedExeForElevation: + return SymbolDefinitions.WixApprovedExeForElevation; - case TupleDefinitionType.WixBindUpdatedFiles: - return TupleDefinitions.WixBindUpdatedFiles; + case SymbolDefinitionType.WixBindUpdatedFiles: + return SymbolDefinitions.WixBindUpdatedFiles; - case TupleDefinitionType.WixBootstrapperApplication: - return TupleDefinitions.WixBootstrapperApplication; + case SymbolDefinitionType.WixBootstrapperApplication: + return SymbolDefinitions.WixBootstrapperApplication; - case TupleDefinitionType.WixBuildInfo: - return TupleDefinitions.WixBuildInfo; + case SymbolDefinitionType.WixBuildInfo: + return SymbolDefinitions.WixBuildInfo; - case TupleDefinitionType.WixBundle: - return TupleDefinitions.WixBundle; + case SymbolDefinitionType.WixBundle: + return SymbolDefinitions.WixBundle; - case TupleDefinitionType.WixBundleCatalog: - return TupleDefinitions.WixBundleCatalog; + case SymbolDefinitionType.WixBundleCatalog: + return SymbolDefinitions.WixBundleCatalog; - case TupleDefinitionType.WixBundleContainer: - return TupleDefinitions.WixBundleContainer; + case SymbolDefinitionType.WixBundleContainer: + return SymbolDefinitions.WixBundleContainer; - case TupleDefinitionType.WixBundleCustomData: - return TupleDefinitions.WixBundleCustomData; + case SymbolDefinitionType.WixBundleCustomData: + return SymbolDefinitions.WixBundleCustomData; - case TupleDefinitionType.WixBundleCustomDataAttribute: - return TupleDefinitions.WixBundleCustomDataAttribute; + case SymbolDefinitionType.WixBundleCustomDataAttribute: + return SymbolDefinitions.WixBundleCustomDataAttribute; - case TupleDefinitionType.WixBundleCustomDataCell: - return TupleDefinitions.WixBundleCustomDataCell; + case SymbolDefinitionType.WixBundleCustomDataCell: + return SymbolDefinitions.WixBundleCustomDataCell; - case TupleDefinitionType.WixBundleExtension: - return TupleDefinitions.WixBundleExtension; + case SymbolDefinitionType.WixBundleExtension: + return SymbolDefinitions.WixBundleExtension; - case TupleDefinitionType.WixBundleExePackage: - return TupleDefinitions.WixBundleExePackage; + case SymbolDefinitionType.WixBundleExePackage: + return SymbolDefinitions.WixBundleExePackage; - case TupleDefinitionType.WixBundleMsiFeature: - return TupleDefinitions.WixBundleMsiFeature; + case SymbolDefinitionType.WixBundleMsiFeature: + return SymbolDefinitions.WixBundleMsiFeature; - case TupleDefinitionType.WixBundleMsiPackage: - return TupleDefinitions.WixBundleMsiPackage; + case SymbolDefinitionType.WixBundleMsiPackage: + return SymbolDefinitions.WixBundleMsiPackage; - case TupleDefinitionType.WixBundleMsiProperty: - return TupleDefinitions.WixBundleMsiProperty; + case SymbolDefinitionType.WixBundleMsiProperty: + return SymbolDefinitions.WixBundleMsiProperty; - case TupleDefinitionType.WixBundleMspPackage: - return TupleDefinitions.WixBundleMspPackage; + case SymbolDefinitionType.WixBundleMspPackage: + return SymbolDefinitions.WixBundleMspPackage; - case TupleDefinitionType.WixBundleMsuPackage: - return TupleDefinitions.WixBundleMsuPackage; + case SymbolDefinitionType.WixBundleMsuPackage: + return SymbolDefinitions.WixBundleMsuPackage; - case TupleDefinitionType.WixBundlePackage: - return TupleDefinitions.WixBundlePackage; + case SymbolDefinitionType.WixBundlePackage: + return SymbolDefinitions.WixBundlePackage; - case TupleDefinitionType.WixBundlePackageCommandLine: - return TupleDefinitions.WixBundlePackageCommandLine; + case SymbolDefinitionType.WixBundlePackageCommandLine: + return SymbolDefinitions.WixBundlePackageCommandLine; - case TupleDefinitionType.WixBundlePackageExitCode: - return TupleDefinitions.WixBundlePackageExitCode; + case SymbolDefinitionType.WixBundlePackageExitCode: + return SymbolDefinitions.WixBundlePackageExitCode; - case TupleDefinitionType.WixBundlePackageGroup: - return TupleDefinitions.WixBundlePackageGroup; + case SymbolDefinitionType.WixBundlePackageGroup: + return SymbolDefinitions.WixBundlePackageGroup; - case TupleDefinitionType.WixBundlePatchTargetCode: - return TupleDefinitions.WixBundlePatchTargetCode; + case SymbolDefinitionType.WixBundlePatchTargetCode: + return SymbolDefinitions.WixBundlePatchTargetCode; - case TupleDefinitionType.WixBundlePayload: - return TupleDefinitions.WixBundlePayload; + case SymbolDefinitionType.WixBundlePayload: + return SymbolDefinitions.WixBundlePayload; - case TupleDefinitionType.WixBundlePayloadGroup: - return TupleDefinitions.WixBundlePayloadGroup; + case SymbolDefinitionType.WixBundlePayloadGroup: + return SymbolDefinitions.WixBundlePayloadGroup; - case TupleDefinitionType.WixBundleRelatedPackage: - return TupleDefinitions.WixBundleRelatedPackage; + case SymbolDefinitionType.WixBundleRelatedPackage: + return SymbolDefinitions.WixBundleRelatedPackage; - case TupleDefinitionType.WixBundleRollbackBoundary: - return TupleDefinitions.WixBundleRollbackBoundary; + case SymbolDefinitionType.WixBundleRollbackBoundary: + return SymbolDefinitions.WixBundleRollbackBoundary; - case TupleDefinitionType.WixBundleSlipstreamMsp: - return TupleDefinitions.WixBundleSlipstreamMsp; + case SymbolDefinitionType.WixBundleSlipstreamMsp: + return SymbolDefinitions.WixBundleSlipstreamMsp; - case TupleDefinitionType.WixBundleUpdate: - return TupleDefinitions.WixBundleUpdate; + case SymbolDefinitionType.WixBundleUpdate: + return SymbolDefinitions.WixBundleUpdate; - case TupleDefinitionType.WixBundleVariable: - return TupleDefinitions.WixBundleVariable; + case SymbolDefinitionType.WixBundleVariable: + return SymbolDefinitions.WixBundleVariable; - case TupleDefinitionType.WixChain: - return TupleDefinitions.WixChain; + case SymbolDefinitionType.WixChain: + return SymbolDefinitions.WixChain; - case TupleDefinitionType.WixChainItem: - return TupleDefinitions.WixChainItem; + case SymbolDefinitionType.WixChainItem: + return SymbolDefinitions.WixChainItem; - case TupleDefinitionType.WixComplexReference: - return TupleDefinitions.WixComplexReference; + case SymbolDefinitionType.WixComplexReference: + return SymbolDefinitions.WixComplexReference; - case TupleDefinitionType.WixComponentGroup: - return TupleDefinitions.WixComponentGroup; + case SymbolDefinitionType.WixComponentGroup: + return SymbolDefinitions.WixComponentGroup; - case TupleDefinitionType.WixComponentSearch: - return TupleDefinitions.WixComponentSearch; + case SymbolDefinitionType.WixComponentSearch: + return SymbolDefinitions.WixComponentSearch; - case TupleDefinitionType.WixCustomTable: - return TupleDefinitions.WixCustomTable; + case SymbolDefinitionType.WixCustomTable: + return SymbolDefinitions.WixCustomTable; - case TupleDefinitionType.WixCustomTableCell: - return TupleDefinitions.WixCustomTableCell; + case SymbolDefinitionType.WixCustomTableCell: + return SymbolDefinitions.WixCustomTableCell; - case TupleDefinitionType.WixCustomTableColumn: - return TupleDefinitions.WixCustomTableColumn; + case SymbolDefinitionType.WixCustomTableColumn: + return SymbolDefinitions.WixCustomTableColumn; - case TupleDefinitionType.WixDeltaPatchFile: - return TupleDefinitions.WixDeltaPatchFile; + case SymbolDefinitionType.WixDeltaPatchFile: + return SymbolDefinitions.WixDeltaPatchFile; - case TupleDefinitionType.WixDeltaPatchSymbolPaths: - return TupleDefinitions.WixDeltaPatchSymbolPaths; + case SymbolDefinitionType.WixDeltaPatchSymbolPaths: + return SymbolDefinitions.WixDeltaPatchSymbolPaths; - case TupleDefinitionType.WixEnsureTable: - return TupleDefinitions.WixEnsureTable; + case SymbolDefinitionType.WixEnsureTable: + return SymbolDefinitions.WixEnsureTable; - case TupleDefinitionType.WixFeatureGroup: - return TupleDefinitions.WixFeatureGroup; + case SymbolDefinitionType.WixFeatureGroup: + return SymbolDefinitions.WixFeatureGroup; - case TupleDefinitionType.WixFeatureModules: - return TupleDefinitions.WixFeatureModules; + case SymbolDefinitionType.WixFeatureModules: + return SymbolDefinitions.WixFeatureModules; - case TupleDefinitionType.WixFileSearch: - return TupleDefinitions.WixFileSearch; + case SymbolDefinitionType.WixFileSearch: + return SymbolDefinitions.WixFileSearch; - case TupleDefinitionType.WixFragment: - return TupleDefinitions.WixFragment; + case SymbolDefinitionType.WixFragment: + return SymbolDefinitions.WixFragment; - case TupleDefinitionType.WixGroup: - return TupleDefinitions.WixGroup; + case SymbolDefinitionType.WixGroup: + return SymbolDefinitions.WixGroup; - case TupleDefinitionType.WixInstanceComponent: - return TupleDefinitions.WixInstanceComponent; + case SymbolDefinitionType.WixInstanceComponent: + return SymbolDefinitions.WixInstanceComponent; - case TupleDefinitionType.WixInstanceTransforms: - return TupleDefinitions.WixInstanceTransforms; + case SymbolDefinitionType.WixInstanceTransforms: + return SymbolDefinitions.WixInstanceTransforms; - case TupleDefinitionType.WixMediaTemplate: - return TupleDefinitions.WixMediaTemplate; + case SymbolDefinitionType.WixMediaTemplate: + return SymbolDefinitions.WixMediaTemplate; - case TupleDefinitionType.WixMerge: - return TupleDefinitions.WixMerge; + case SymbolDefinitionType.WixMerge: + return SymbolDefinitions.WixMerge; - case TupleDefinitionType.WixOrdering: - return TupleDefinitions.WixOrdering; + case SymbolDefinitionType.WixOrdering: + return SymbolDefinitions.WixOrdering; - case TupleDefinitionType.WixPatchBaseline: - return TupleDefinitions.WixPatchBaseline; + case SymbolDefinitionType.WixPatchBaseline: + return SymbolDefinitions.WixPatchBaseline; - case TupleDefinitionType.WixPatchFamilyGroup: - return TupleDefinitions.WixPatchFamilyGroup; + case SymbolDefinitionType.WixPatchFamilyGroup: + return SymbolDefinitions.WixPatchFamilyGroup; - case TupleDefinitionType.WixPatchId: - return TupleDefinitions.WixPatchId; + case SymbolDefinitionType.WixPatchId: + return SymbolDefinitions.WixPatchId; - case TupleDefinitionType.WixPatchRef: - return TupleDefinitions.WixPatchRef; + case SymbolDefinitionType.WixPatchRef: + return SymbolDefinitions.WixPatchRef; - case TupleDefinitionType.WixPatchTarget: - return TupleDefinitions.WixPatchTarget; + case SymbolDefinitionType.WixPatchTarget: + return SymbolDefinitions.WixPatchTarget; - case TupleDefinitionType.WixProductSearch: - return TupleDefinitions.WixProductSearch; + case SymbolDefinitionType.WixProductSearch: + return SymbolDefinitions.WixProductSearch; - case TupleDefinitionType.WixProperty: - return TupleDefinitions.WixProperty; + case SymbolDefinitionType.WixProperty: + return SymbolDefinitions.WixProperty; - case TupleDefinitionType.WixRegistrySearch: - return TupleDefinitions.WixRegistrySearch; + case SymbolDefinitionType.WixRegistrySearch: + return SymbolDefinitions.WixRegistrySearch; - case TupleDefinitionType.WixRelatedBundle: - return TupleDefinitions.WixRelatedBundle; + case SymbolDefinitionType.WixRelatedBundle: + return SymbolDefinitions.WixRelatedBundle; - case TupleDefinitionType.WixSearch: - return TupleDefinitions.WixSearch; + case SymbolDefinitionType.WixSearch: + return SymbolDefinitions.WixSearch; - case TupleDefinitionType.WixSearchRelation: - return TupleDefinitions.WixSearchRelation; + case SymbolDefinitionType.WixSearchRelation: + return SymbolDefinitions.WixSearchRelation; - case TupleDefinitionType.WixSetVariable: - return TupleDefinitions.WixSetVariable; + case SymbolDefinitionType.WixSetVariable: + return SymbolDefinitions.WixSetVariable; - case TupleDefinitionType.WixSimpleReference: - return TupleDefinitions.WixSimpleReference; + case SymbolDefinitionType.WixSimpleReference: + return SymbolDefinitions.WixSimpleReference; - case TupleDefinitionType.WixSuppressAction: - return TupleDefinitions.WixSuppressAction; + case SymbolDefinitionType.WixSuppressAction: + return SymbolDefinitions.WixSuppressAction; - case TupleDefinitionType.WixSuppressModularization: - return TupleDefinitions.WixSuppressModularization; + case SymbolDefinitionType.WixSuppressModularization: + return SymbolDefinitions.WixSuppressModularization; - case TupleDefinitionType.WixUI: - return TupleDefinitions.WixUI; + case SymbolDefinitionType.WixUI: + return SymbolDefinitions.WixUI; - case TupleDefinitionType.WixUpdateRegistration: - return TupleDefinitions.WixUpdateRegistration; + case SymbolDefinitionType.WixUpdateRegistration: + return SymbolDefinitions.WixUpdateRegistration; - case TupleDefinitionType.WixVariable: - return TupleDefinitions.WixVariable; + case SymbolDefinitionType.WixVariable: + return SymbolDefinitions.WixVariable; default: throw new ArgumentOutOfRangeException(nameof(type)); diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs index 071fe593..736ee292 100644 --- a/src/WixToolset.Data/Tuples/TypeLibTuple.cs +++ b/src/WixToolset.Data/Tuples/TypeLibTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition TypeLib = new IntermediateTupleDefinition( - TupleDefinitionType.TypeLib, + public static readonly IntermediateSymbolDefinition TypeLib = new IntermediateSymbolDefinition( + SymbolDefinitionType.TypeLib, new[] { - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.LibId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Version), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Cost), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.LibId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Version), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Cost), IntermediateFieldType.Number), }, - typeof(TypeLibTuple)); + typeof(TypeLibSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum TypeLibTupleFields + public enum TypeLibSymbolFields { LibId, Language, @@ -37,64 +37,64 @@ namespace WixToolset.Data.Tuples Cost, } - public class TypeLibTuple : IntermediateTuple + public class TypeLibSymbol : IntermediateSymbol { - public TypeLibTuple() : base(TupleDefinitions.TypeLib, null, null) + public TypeLibSymbol() : base(SymbolDefinitions.TypeLib, null, null) { } - public TypeLibTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TypeLib, sourceLineNumber, id) + public TypeLibSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TypeLib, sourceLineNumber, id) { } - public IntermediateField this[TypeLibTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[TypeLibSymbolFields index] => this.Fields[(int)index]; public string LibId { - get => (string)this.Fields[(int)TypeLibTupleFields.LibId]; - set => this.Set((int)TypeLibTupleFields.LibId, value); + get => (string)this.Fields[(int)TypeLibSymbolFields.LibId]; + set => this.Set((int)TypeLibSymbolFields.LibId, value); } public int Language { - get => (int)this.Fields[(int)TypeLibTupleFields.Language]; - set => this.Set((int)TypeLibTupleFields.Language, value); + get => (int)this.Fields[(int)TypeLibSymbolFields.Language]; + set => this.Set((int)TypeLibSymbolFields.Language, value); } public string ComponentRef { - get => (string)this.Fields[(int)TypeLibTupleFields.ComponentRef]; - set => this.Set((int)TypeLibTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)TypeLibSymbolFields.ComponentRef]; + set => this.Set((int)TypeLibSymbolFields.ComponentRef, value); } public int? Version { - get => (int?)this.Fields[(int)TypeLibTupleFields.Version]; - set => this.Set((int)TypeLibTupleFields.Version, value); + get => (int?)this.Fields[(int)TypeLibSymbolFields.Version]; + set => this.Set((int)TypeLibSymbolFields.Version, value); } public string Description { - get => (string)this.Fields[(int)TypeLibTupleFields.Description]; - set => this.Set((int)TypeLibTupleFields.Description, value); + get => (string)this.Fields[(int)TypeLibSymbolFields.Description]; + set => this.Set((int)TypeLibSymbolFields.Description, value); } public string DirectoryRef { - get => (string)this.Fields[(int)TypeLibTupleFields.DirectoryRef]; - set => this.Set((int)TypeLibTupleFields.DirectoryRef, value); + get => (string)this.Fields[(int)TypeLibSymbolFields.DirectoryRef]; + set => this.Set((int)TypeLibSymbolFields.DirectoryRef, value); } public string FeatureRef { - get => (string)this.Fields[(int)TypeLibTupleFields.FeatureRef]; - set => this.Set((int)TypeLibTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)TypeLibSymbolFields.FeatureRef]; + set => this.Set((int)TypeLibSymbolFields.FeatureRef, value); } public int? Cost { - get => (int?)this.Fields[(int)TypeLibTupleFields.Cost]; - set => this.Set((int)TypeLibTupleFields.Cost, value); + get => (int?)this.Fields[(int)TypeLibSymbolFields.Cost]; + set => this.Set((int)TypeLibSymbolFields.Cost, value); } } } diff --git a/src/WixToolset.Data/Tuples/UITextTuple.cs b/src/WixToolset.Data/Tuples/UITextTuple.cs index fee04597..39b99398 100644 --- a/src/WixToolset.Data/Tuples/UITextTuple.cs +++ b/src/WixToolset.Data/Tuples/UITextTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition UIText = new IntermediateTupleDefinition( - TupleDefinitionType.UIText, + public static readonly IntermediateSymbolDefinition UIText = new IntermediateSymbolDefinition( + SymbolDefinitionType.UIText, new[] { - new IntermediateFieldDefinition(nameof(UITextTupleFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UITextSymbolFields.Text), IntermediateFieldType.String), }, - typeof(UITextTuple)); + typeof(UITextSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum UITextTupleFields + public enum UITextSymbolFields { Text, } - public class UITextTuple : IntermediateTuple + public class UITextSymbol : IntermediateSymbol { - public UITextTuple() : base(TupleDefinitions.UIText, null, null) + public UITextSymbol() : base(SymbolDefinitions.UIText, null, null) { } - public UITextTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UIText, sourceLineNumber, id) + public UITextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UIText, sourceLineNumber, id) { } - public IntermediateField this[UITextTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[UITextSymbolFields index] => this.Fields[(int)index]; public string Text { - get => (string)this.Fields[(int)UITextTupleFields.Text]; - set => this.Set((int)UITextTupleFields.Text, value); + get => (string)this.Fields[(int)UITextSymbolFields.Text]; + set => this.Set((int)UITextSymbolFields.Text, value); } } } diff --git a/src/WixToolset.Data/Tuples/UpgradeTuple.cs b/src/WixToolset.Data/Tuples/UpgradeTuple.cs index 03e5edd2..d8deee73 100644 --- a/src/WixToolset.Data/Tuples/UpgradeTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradeTuple.cs @@ -2,34 +2,34 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Upgrade = new IntermediateTupleDefinition( - TupleDefinitionType.Upgrade, + public static readonly IntermediateSymbolDefinition Upgrade = new IntermediateSymbolDefinition( + SymbolDefinitionType.Upgrade, new[] { - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMin), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMax), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.ExcludeLanguages), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.IgnoreRemoveFailures), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.MigrateFeatures), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.OnlyDetect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMaxInclusive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMinInclusive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Remove), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeTupleFields.ActionProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMin), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMax), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ExcludeLanguages), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.IgnoreRemoveFailures), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.MigrateFeatures), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.OnlyDetect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMaxInclusive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMinInclusive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Remove), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ActionProperty), IntermediateFieldType.String), }, - typeof(UpgradeTuple)); + typeof(UpgradeSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum UpgradeTupleFields + public enum UpgradeSymbolFields { UpgradeCode, VersionMin, @@ -45,88 +45,88 @@ namespace WixToolset.Data.Tuples ActionProperty, } - public class UpgradeTuple : IntermediateTuple + public class UpgradeSymbol : IntermediateSymbol { - public UpgradeTuple() : base(TupleDefinitions.Upgrade, null, null) + public UpgradeSymbol() : base(SymbolDefinitions.Upgrade, null, null) { } - public UpgradeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Upgrade, sourceLineNumber, id) + public UpgradeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Upgrade, sourceLineNumber, id) { } - public IntermediateField this[UpgradeTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[UpgradeSymbolFields index] => this.Fields[(int)index]; public string UpgradeCode { - get => (string)this.Fields[(int)UpgradeTupleFields.UpgradeCode]; - set => this.Set((int)UpgradeTupleFields.UpgradeCode, value); + get => (string)this.Fields[(int)UpgradeSymbolFields.UpgradeCode]; + set => this.Set((int)UpgradeSymbolFields.UpgradeCode, value); } public string VersionMin { - get => (string)this.Fields[(int)UpgradeTupleFields.VersionMin]; - set => this.Set((int)UpgradeTupleFields.VersionMin, value); + get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMin]; + set => this.Set((int)UpgradeSymbolFields.VersionMin, value); } public string VersionMax { - get => (string)this.Fields[(int)UpgradeTupleFields.VersionMax]; - set => this.Set((int)UpgradeTupleFields.VersionMax, value); + get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMax]; + set => this.Set((int)UpgradeSymbolFields.VersionMax, value); } public string Language { - get => (string)this.Fields[(int)UpgradeTupleFields.Language]; - set => this.Set((int)UpgradeTupleFields.Language, value); + get => (string)this.Fields[(int)UpgradeSymbolFields.Language]; + set => this.Set((int)UpgradeSymbolFields.Language, value); } public bool ExcludeLanguages { - get => this.Fields[(int)UpgradeTupleFields.ExcludeLanguages].AsBool(); - set => this.Set((int)UpgradeTupleFields.ExcludeLanguages, value); + get => this.Fields[(int)UpgradeSymbolFields.ExcludeLanguages].AsBool(); + set => this.Set((int)UpgradeSymbolFields.ExcludeLanguages, value); } public bool IgnoreRemoveFailures { - get => this.Fields[(int)UpgradeTupleFields.IgnoreRemoveFailures].AsBool(); - set => this.Set((int)UpgradeTupleFields.IgnoreRemoveFailures, value); + get => this.Fields[(int)UpgradeSymbolFields.IgnoreRemoveFailures].AsBool(); + set => this.Set((int)UpgradeSymbolFields.IgnoreRemoveFailures, value); } public bool MigrateFeatures { - get => this.Fields[(int)UpgradeTupleFields.MigrateFeatures].AsBool(); - set => this.Set((int)UpgradeTupleFields.MigrateFeatures, value); + get => this.Fields[(int)UpgradeSymbolFields.MigrateFeatures].AsBool(); + set => this.Set((int)UpgradeSymbolFields.MigrateFeatures, value); } public bool OnlyDetect { - get => this.Fields[(int)UpgradeTupleFields.OnlyDetect].AsBool(); - set => this.Set((int)UpgradeTupleFields.OnlyDetect, value); + get => this.Fields[(int)UpgradeSymbolFields.OnlyDetect].AsBool(); + set => this.Set((int)UpgradeSymbolFields.OnlyDetect, value); } public bool VersionMaxInclusive { - get => this.Fields[(int)UpgradeTupleFields.VersionMaxInclusive].AsBool(); - set => this.Set((int)UpgradeTupleFields.VersionMaxInclusive, value); + get => this.Fields[(int)UpgradeSymbolFields.VersionMaxInclusive].AsBool(); + set => this.Set((int)UpgradeSymbolFields.VersionMaxInclusive, value); } public bool VersionMinInclusive { - get => this.Fields[(int)UpgradeTupleFields.VersionMinInclusive].AsBool(); - set => this.Set((int)UpgradeTupleFields.VersionMinInclusive, value); + get => this.Fields[(int)UpgradeSymbolFields.VersionMinInclusive].AsBool(); + set => this.Set((int)UpgradeSymbolFields.VersionMinInclusive, value); } public string Remove { - get => (string)this.Fields[(int)UpgradeTupleFields.Remove]; - set => this.Set((int)UpgradeTupleFields.Remove, value); + get => (string)this.Fields[(int)UpgradeSymbolFields.Remove]; + set => this.Set((int)UpgradeSymbolFields.Remove, value); } public string ActionProperty { - get => (string)this.Fields[(int)UpgradeTupleFields.ActionProperty]; - set => this.Set((int)UpgradeTupleFields.ActionProperty, value); + get => (string)this.Fields[(int)UpgradeSymbolFields.ActionProperty]; + set => this.Set((int)UpgradeSymbolFields.ActionProperty, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs index 1b4769b3..9e669ec3 100644 --- a/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition UpgradedFilesOptionalData = new IntermediateTupleDefinition( - TupleDefinitionType.UpgradedFilesOptionalData, + public static readonly IntermediateSymbolDefinition UpgradedFilesOptionalData = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedFilesOptionalData, new[] { - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataTupleFields.IncludeWholeFile), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile), IntermediateFieldType.Bool), }, - typeof(UpgradedFilesOptionalDataTuple)); + typeof(UpgradedFilesOptionalDataSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum UpgradedFilesOptionalDataTupleFields + public enum UpgradedFilesOptionalDataSymbolFields { Upgraded, FTK, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples IncludeWholeFile, } - public class UpgradedFilesOptionalDataTuple : IntermediateTuple + public class UpgradedFilesOptionalDataSymbol : IntermediateSymbol { - public UpgradedFilesOptionalDataTuple() : base(TupleDefinitions.UpgradedFilesOptionalData, null, null) + public UpgradedFilesOptionalDataSymbol() : base(SymbolDefinitions.UpgradedFilesOptionalData, null, null) { } - public UpgradedFilesOptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFilesOptionalData, sourceLineNumber, id) + public UpgradedFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesOptionalData, sourceLineNumber, id) { } - public IntermediateField this[UpgradedFilesOptionalDataTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[UpgradedFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; public string Upgraded { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.Upgraded]; - set => this.Set((int)UpgradedFilesOptionalDataTupleFields.Upgraded, value); + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.Upgraded]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.Upgraded, value); } public string FTK { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.FTK]; - set => this.Set((int)UpgradedFilesOptionalDataTupleFields.FTK, value); + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.FTK]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.FTK, value); } public string SymbolPaths { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.SymbolPaths]; - set => this.Set((int)UpgradedFilesOptionalDataTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths, value); } public bool? AllowIgnoreOnPatchError { - get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError]; - set => this.Set((int)UpgradedFilesOptionalDataTupleFields.AllowIgnoreOnPatchError, value); + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError, value); } public bool? IncludeWholeFile { - get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataTupleFields.IncludeWholeFile]; - set => this.Set((int)UpgradedFilesOptionalDataTupleFields.IncludeWholeFile, value); + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile, value); } } } diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs index 95617c6f..e21af6a2 100644 --- a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition UpgradedFilesToIgnore = new IntermediateTupleDefinition( - TupleDefinitionType.UpgradedFilesToIgnore, + public static readonly IntermediateSymbolDefinition UpgradedFilesToIgnore = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedFilesToIgnore, new[] { - new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreTupleFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreTupleFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.FTK), IntermediateFieldType.String), }, - typeof(UpgradedFilesToIgnoreTuple)); + typeof(UpgradedFilesToIgnoreSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum UpgradedFilesToIgnoreTupleFields + public enum UpgradedFilesToIgnoreSymbolFields { Upgraded, FTK, } - public class UpgradedFilesToIgnoreTuple : IntermediateTuple + public class UpgradedFilesToIgnoreSymbol : IntermediateSymbol { - public UpgradedFilesToIgnoreTuple() : base(TupleDefinitions.UpgradedFilesToIgnore, null, null) + public UpgradedFilesToIgnoreSymbol() : base(SymbolDefinitions.UpgradedFilesToIgnore, null, null) { } - public UpgradedFilesToIgnoreTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) + public UpgradedFilesToIgnoreSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) { } - public IntermediateField this[UpgradedFilesToIgnoreTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[UpgradedFilesToIgnoreSymbolFields index] => this.Fields[(int)index]; public string Upgraded { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.Upgraded]; - set => this.Set((int)UpgradedFilesToIgnoreTupleFields.Upgraded, value); + get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.Upgraded]; + set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.Upgraded, value); } public string FTK { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.FTK]; - set => this.Set((int)UpgradedFilesToIgnoreTupleFields.FTK, value); + get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.FTK]; + set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.FTK, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs index 856c27e2..28eae08a 100644 --- a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs +++ b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition UpgradedImages = new IntermediateTupleDefinition( - TupleDefinitionType.UpgradedImages, + public static readonly IntermediateSymbolDefinition UpgradedImages = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedImages, new[] { - new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.MsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.PatchMsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.PatchMsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Family), IntermediateFieldType.String), }, - typeof(UpgradedImagesTuple)); + typeof(UpgradedImagesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum UpgradedImagesTupleFields + public enum UpgradedImagesSymbolFields { Upgraded, MsiPath, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples Family, } - public class UpgradedImagesTuple : IntermediateTuple + public class UpgradedImagesSymbol : IntermediateSymbol { - public UpgradedImagesTuple() : base(TupleDefinitions.UpgradedImages, null, null) + public UpgradedImagesSymbol() : base(SymbolDefinitions.UpgradedImages, null, null) { } - public UpgradedImagesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedImages, sourceLineNumber, id) + public UpgradedImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedImages, sourceLineNumber, id) { } - public IntermediateField this[UpgradedImagesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[UpgradedImagesSymbolFields index] => this.Fields[(int)index]; public string Upgraded { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.Upgraded]; - set => this.Set((int)UpgradedImagesTupleFields.Upgraded, value); + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Upgraded]; + set => this.Set((int)UpgradedImagesSymbolFields.Upgraded, value); } public string MsiPath { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.MsiPath]; - set => this.Set((int)UpgradedImagesTupleFields.MsiPath, value); + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.MsiPath]; + set => this.Set((int)UpgradedImagesSymbolFields.MsiPath, value); } public string PatchMsiPath { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.PatchMsiPath]; - set => this.Set((int)UpgradedImagesTupleFields.PatchMsiPath, value); + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.PatchMsiPath]; + set => this.Set((int)UpgradedImagesSymbolFields.PatchMsiPath, value); } public string SymbolPaths { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.SymbolPaths]; - set => this.Set((int)UpgradedImagesTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.SymbolPaths]; + set => this.Set((int)UpgradedImagesSymbolFields.SymbolPaths, value); } public string Family { - get => (string)this.Fields[(int)UpgradedImagesTupleFields.Family]; - set => this.Set((int)UpgradedImagesTupleFields.Family, value); + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Family]; + set => this.Set((int)UpgradedImagesSymbolFields.Family, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/VerbTuple.cs b/src/WixToolset.Data/Tuples/VerbTuple.cs index 7a257a3e..95f045d6 100644 --- a/src/WixToolset.Data/Tuples/VerbTuple.cs +++ b/src/WixToolset.Data/Tuples/VerbTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition Verb = new IntermediateTupleDefinition( - TupleDefinitionType.Verb, + public static readonly IntermediateSymbolDefinition Verb = new IntermediateSymbolDefinition( + SymbolDefinitionType.Verb, new[] { - new IntermediateFieldDefinition(nameof(VerbTupleFields.ExtensionRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbTupleFields.Verb), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(VerbTupleFields.Command), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbTupleFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.ExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Verb), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Argument), IntermediateFieldType.String), }, - typeof(VerbTuple)); + typeof(VerbSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum VerbTupleFields + public enum VerbSymbolFields { ExtensionRef, Verb, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples Argument, } - public class VerbTuple : IntermediateTuple + public class VerbSymbol : IntermediateSymbol { - public VerbTuple() : base(TupleDefinitions.Verb, null, null) + public VerbSymbol() : base(SymbolDefinitions.Verb, null, null) { } - public VerbTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Verb, sourceLineNumber, id) + public VerbSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Verb, sourceLineNumber, id) { } - public IntermediateField this[VerbTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[VerbSymbolFields index] => this.Fields[(int)index]; public string ExtensionRef { - get => (string)this.Fields[(int)VerbTupleFields.ExtensionRef]; - set => this.Set((int)VerbTupleFields.ExtensionRef, value); + get => (string)this.Fields[(int)VerbSymbolFields.ExtensionRef]; + set => this.Set((int)VerbSymbolFields.ExtensionRef, value); } public string Verb { - get => (string)this.Fields[(int)VerbTupleFields.Verb]; - set => this.Set((int)VerbTupleFields.Verb, value); + get => (string)this.Fields[(int)VerbSymbolFields.Verb]; + set => this.Set((int)VerbSymbolFields.Verb, value); } public int? Sequence { - get => (int?)this.Fields[(int)VerbTupleFields.Sequence]; - set => this.Set((int)VerbTupleFields.Sequence, value); + get => (int?)this.Fields[(int)VerbSymbolFields.Sequence]; + set => this.Set((int)VerbSymbolFields.Sequence, value); } public string Command { - get => (string)this.Fields[(int)VerbTupleFields.Command]; - set => this.Set((int)VerbTupleFields.Command, value); + get => (string)this.Fields[(int)VerbSymbolFields.Command]; + set => this.Set((int)VerbSymbolFields.Command, value); } public string Argument { - get => (string)this.Fields[(int)VerbTupleFields.Argument]; - set => this.Set((int)VerbTupleFields.Argument, value); + get => (string)this.Fields[(int)VerbSymbolFields.Argument]; + set => this.Set((int)VerbSymbolFields.Argument, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixActionTuple.cs b/src/WixToolset.Data/Tuples/WixActionTuple.cs index 28a10698..a055d68f 100644 --- a/src/WixToolset.Data/Tuples/WixActionTuple.cs +++ b/src/WixToolset.Data/Tuples/WixActionTuple.cs @@ -2,29 +2,29 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixAction = new IntermediateTupleDefinition( - TupleDefinitionType.WixAction, + public static readonly IntermediateSymbolDefinition WixAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixAction, new[] { - new IntermediateFieldDefinition(nameof(WixActionTupleFields.SequenceTable), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixActionTupleFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionTupleFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixActionTupleFields.Before), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionTupleFields.After), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionTupleFields.Overridable), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.SequenceTable), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Before), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.After), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Overridable), IntermediateFieldType.Bool), }, - typeof(WixActionTuple)); + typeof(WixActionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixActionTupleFields + public enum WixActionSymbolFields { SequenceTable, Action, @@ -44,58 +44,58 @@ namespace WixToolset.Data.Tuples InstallExecuteSequence } - public class WixActionTuple : IntermediateTuple + public class WixActionSymbol : IntermediateSymbol { - public WixActionTuple() : base(TupleDefinitions.WixAction, null, null) + public WixActionSymbol() : base(SymbolDefinitions.WixAction, null, null) { } - public WixActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixAction, sourceLineNumber, id) + public WixActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixAction, sourceLineNumber, id) { } - public IntermediateField this[WixActionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixActionSymbolFields index] => this.Fields[(int)index]; public SequenceTable SequenceTable { - get => (SequenceTable)this.Fields[(int)WixActionTupleFields.SequenceTable].AsNumber(); - set => this.Set((int)WixActionTupleFields.SequenceTable, (int)value); + get => (SequenceTable)this.Fields[(int)WixActionSymbolFields.SequenceTable].AsNumber(); + set => this.Set((int)WixActionSymbolFields.SequenceTable, (int)value); } public string Action { - get => (string)this.Fields[(int)WixActionTupleFields.Action]; - set => this.Set((int)WixActionTupleFields.Action, value); + get => (string)this.Fields[(int)WixActionSymbolFields.Action]; + set => this.Set((int)WixActionSymbolFields.Action, value); } public string Condition { - get => (string)this.Fields[(int)WixActionTupleFields.Condition]; - set => this.Set((int)WixActionTupleFields.Condition, value); + get => (string)this.Fields[(int)WixActionSymbolFields.Condition]; + set => this.Set((int)WixActionSymbolFields.Condition, value); } public int? Sequence { - get => (int?)this.Fields[(int)WixActionTupleFields.Sequence]; - set => this.Set((int)WixActionTupleFields.Sequence, value); + get => (int?)this.Fields[(int)WixActionSymbolFields.Sequence]; + set => this.Set((int)WixActionSymbolFields.Sequence, value); } public string Before { - get => (string)this.Fields[(int)WixActionTupleFields.Before]; - set => this.Set((int)WixActionTupleFields.Before, value); + get => (string)this.Fields[(int)WixActionSymbolFields.Before]; + set => this.Set((int)WixActionSymbolFields.Before, value); } public string After { - get => (string)this.Fields[(int)WixActionTupleFields.After]; - set => this.Set((int)WixActionTupleFields.After, value); + get => (string)this.Fields[(int)WixActionSymbolFields.After]; + set => this.Set((int)WixActionSymbolFields.After, value); } public bool Overridable { - get => this.Fields[(int)WixActionTupleFields.Overridable].AsBool(); - set => this.Set((int)WixActionTupleFields.Overridable, value); + get => this.Fields[(int)WixActionSymbolFields.Overridable].AsBool(); + set => this.Set((int)WixActionSymbolFields.Overridable, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs index 07fe838b..04c6e712 100644 --- a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixApprovedExeForElevation = new IntermediateTupleDefinition( - TupleDefinitionType.WixApprovedExeForElevation, + public static readonly IntermediateSymbolDefinition WixApprovedExeForElevation = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixApprovedExeForElevation, new[] { - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.ValueName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.ValueName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixApprovedExeForElevationTuple)); + typeof(WixApprovedExeForElevationSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixApprovedExeForElevationTupleFields + public enum WixApprovedExeForElevationSymbolFields { Key, ValueName, @@ -36,34 +36,34 @@ namespace WixToolset.Data.Tuples Win64 = 0x1, } - public class WixApprovedExeForElevationTuple : IntermediateTuple + public class WixApprovedExeForElevationSymbol : IntermediateSymbol { - public WixApprovedExeForElevationTuple() : base(TupleDefinitions.WixApprovedExeForElevation, null, null) + public WixApprovedExeForElevationSymbol() : base(SymbolDefinitions.WixApprovedExeForElevation, null, null) { } - public WixApprovedExeForElevationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) + public WixApprovedExeForElevationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) { } - public IntermediateField this[WixApprovedExeForElevationTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixApprovedExeForElevationSymbolFields index] => this.Fields[(int)index]; public string Key { - get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Key]; - set => this.Set((int)WixApprovedExeForElevationTupleFields.Key, value); + get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Key]; + set => this.Set((int)WixApprovedExeForElevationSymbolFields.Key, value); } public string ValueName { - get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.ValueName]; - set => this.Set((int)WixApprovedExeForElevationTupleFields.ValueName, value); + get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.ValueName]; + set => this.Set((int)WixApprovedExeForElevationSymbolFields.ValueName, value); } public WixApprovedExeForElevationAttributes Attributes { - get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, (int)value); + get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixApprovedExeForElevationSymbolFields.Attributes, (int)value); } public bool Win64 => (this.Attributes & WixApprovedExeForElevationAttributes.Win64) == WixApprovedExeForElevationAttributes.Win64; diff --git a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs index aca47b6c..03bdb69b 100644 --- a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBindUpdatedFiles = new IntermediateTupleDefinition( - TupleDefinitionType.WixBindUpdatedFiles, + public static readonly IntermediateSymbolDefinition WixBindUpdatedFiles = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBindUpdatedFiles, new[] { - new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesTupleFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesSymbolFields.FileRef), IntermediateFieldType.String), }, - typeof(WixBindUpdatedFilesTuple)); + typeof(WixBindUpdatedFilesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBindUpdatedFilesTupleFields + public enum WixBindUpdatedFilesSymbolFields { FileRef, } - public class WixBindUpdatedFilesTuple : IntermediateTuple + public class WixBindUpdatedFilesSymbol : IntermediateSymbol { - public WixBindUpdatedFilesTuple() : base(TupleDefinitions.WixBindUpdatedFiles, null, null) + public WixBindUpdatedFilesSymbol() : base(SymbolDefinitions.WixBindUpdatedFiles, null, null) { } - public WixBindUpdatedFilesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) + public WixBindUpdatedFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) { } - public IntermediateField this[WixBindUpdatedFilesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBindUpdatedFilesSymbolFields index] => this.Fields[(int)index]; public string FileRef { - get => (string)this.Fields[(int)WixBindUpdatedFilesTupleFields.FileRef]; - set => this.Set((int)WixBindUpdatedFilesTupleFields.FileRef, value); + get => (string)this.Fields[(int)WixBindUpdatedFilesSymbolFields.FileRef]; + set => this.Set((int)WixBindUpdatedFilesSymbolFields.FileRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs index 84a74b17..3d7876fd 100644 --- a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBootstrapperApplication = new IntermediateTupleDefinition( - TupleDefinitionType.WixBootstrapperApplication, + public static readonly IntermediateSymbolDefinition WixBootstrapperApplication = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBootstrapperApplication, new IntermediateFieldDefinition[] { }, - typeof(WixBootstrapperApplicationTuple)); + typeof(WixBootstrapperApplicationSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBootstrapperApplicationTupleFields + public enum WixBootstrapperApplicationSymbolFields { } - public class WixBootstrapperApplicationTuple : IntermediateTuple + public class WixBootstrapperApplicationSymbol : IntermediateSymbol { - public WixBootstrapperApplicationTuple() : base(TupleDefinitions.WixBootstrapperApplication, null, null) + public WixBootstrapperApplicationSymbol() : base(SymbolDefinitions.WixBootstrapperApplication, null, null) { } - public WixBootstrapperApplicationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBootstrapperApplication, sourceLineNumber, id) + public WixBootstrapperApplicationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplication, sourceLineNumber, id) { } - public IntermediateField this[WixBootstrapperApplicationTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBootstrapperApplicationSymbolFields index] => this.Fields[(int)index]; } } diff --git a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs index 9abb999b..66e04d4b 100644 --- a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBuildInfo = new IntermediateTupleDefinition( - TupleDefinitionType.WixBuildInfo, + public static readonly IntermediateSymbolDefinition WixBuildInfo = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBuildInfo, new[] { - new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixOutputFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixProjectFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixPdbFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixOutputFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixProjectFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixPdbFile), IntermediateFieldType.String), }, - typeof(WixBuildInfoTuple)); + typeof(WixBuildInfoSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBuildInfoTupleFields + public enum WixBuildInfoSymbolFields { WixVersion, WixOutputFile, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples WixPdbFile, } - public class WixBuildInfoTuple : IntermediateTuple + public class WixBuildInfoSymbol : IntermediateSymbol { - public WixBuildInfoTuple() : base(TupleDefinitions.WixBuildInfo, null, null) + public WixBuildInfoSymbol() : base(SymbolDefinitions.WixBuildInfo, null, null) { } - public WixBuildInfoTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBuildInfo, sourceLineNumber, id) + public WixBuildInfoSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBuildInfo, sourceLineNumber, id) { } - public IntermediateField this[WixBuildInfoTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBuildInfoSymbolFields index] => this.Fields[(int)index]; public string WixVersion { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixVersion]; - set => this.Set((int)WixBuildInfoTupleFields.WixVersion, value); + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixVersion]; + set => this.Set((int)WixBuildInfoSymbolFields.WixVersion, value); } public string WixOutputFile { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixOutputFile]; - set => this.Set((int)WixBuildInfoTupleFields.WixOutputFile, value); + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixOutputFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixOutputFile, value); } public string WixProjectFile { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixProjectFile]; - set => this.Set((int)WixBuildInfoTupleFields.WixProjectFile, value); + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixProjectFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixProjectFile, value); } public string WixPdbFile { - get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixPdbFile]; - set => this.Set((int)WixBuildInfoTupleFields.WixPdbFile, value); + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixPdbFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixPdbFile, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs index 51c1306e..48415228 100644 --- a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleCatalog = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleCatalog, + public static readonly IntermediateSymbolDefinition WixBundleCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCatalog, new[] { - new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.PayloadRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCatalogSymbolFields.PayloadRef), IntermediateFieldType.String), }, - typeof(WixBundleCatalogTuple)); + typeof(WixBundleCatalogSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleCatalogTupleFields + public enum WixBundleCatalogSymbolFields { PayloadRef, } - public class WixBundleCatalogTuple : IntermediateTuple + public class WixBundleCatalogSymbol : IntermediateSymbol { - public WixBundleCatalogTuple() : base(TupleDefinitions.WixBundleCatalog, null, null) + public WixBundleCatalogSymbol() : base(SymbolDefinitions.WixBundleCatalog, null, null) { } - public WixBundleCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCatalog, sourceLineNumber, id) + public WixBundleCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCatalog, sourceLineNumber, id) { } - public IntermediateField this[WixBundleCatalogTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleCatalogSymbolFields index] => this.Fields[(int)index]; public string PayloadRef { - get => (string)this.Fields[(int)WixBundleCatalogTupleFields.PayloadRef]; - set => this.Set((int)WixBundleCatalogTupleFields.PayloadRef, value); + get => (string)this.Fields[(int)WixBundleCatalogSymbolFields.PayloadRef]; + set => this.Set((int)WixBundleCatalogSymbolFields.PayloadRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs index a0f64611..80beda0a 100644 --- a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs @@ -2,31 +2,31 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleContainer = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleContainer, + public static readonly IntermediateSymbolDefinition WixBundleContainer = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleContainer, new[] { - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Size), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Hash), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.AttachedContainerIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WorkingPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Size), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.AttachedContainerIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.WorkingPath), IntermediateFieldType.String), }, - typeof(WixBundleContainerTuple)); + typeof(WixBundleContainerSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundleContainerTupleFields + public enum WixBundleContainerSymbolFields { Name, Type, @@ -46,58 +46,58 @@ namespace WixToolset.Data.Tuples Detached, } - public class WixBundleContainerTuple : IntermediateTuple + public class WixBundleContainerSymbol : IntermediateSymbol { - public WixBundleContainerTuple() : base(TupleDefinitions.WixBundleContainer, null, null) + public WixBundleContainerSymbol() : base(SymbolDefinitions.WixBundleContainer, null, null) { } - public WixBundleContainerTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleContainer, sourceLineNumber, id) + public WixBundleContainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleContainer, sourceLineNumber, id) { } - public IntermediateField this[WixBundleContainerTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleContainerSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.Name]; - set => this.Set((int)WixBundleContainerTupleFields.Name, value); + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Name]; + set => this.Set((int)WixBundleContainerSymbolFields.Name, value); } public ContainerType Type { - get => (ContainerType)this.Fields[(int)WixBundleContainerTupleFields.Type].AsNumber(); - set => this.Set((int)WixBundleContainerTupleFields.Type, (int)value); + get => (ContainerType)this.Fields[(int)WixBundleContainerSymbolFields.Type].AsNumber(); + set => this.Set((int)WixBundleContainerSymbolFields.Type, (int)value); } public string DownloadUrl { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.DownloadUrl]; - set => this.Set((int)WixBundleContainerTupleFields.DownloadUrl, value); + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.DownloadUrl]; + set => this.Set((int)WixBundleContainerSymbolFields.DownloadUrl, value); } public long? Size { - get => (long?)this.Fields[(int)WixBundleContainerTupleFields.Size]; - set => this.Set((int)WixBundleContainerTupleFields.Size, value); + get => (long?)this.Fields[(int)WixBundleContainerSymbolFields.Size]; + set => this.Set((int)WixBundleContainerSymbolFields.Size, value); } public string Hash { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.Hash]; - set => this.Set((int)WixBundleContainerTupleFields.Hash, value); + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Hash]; + set => this.Set((int)WixBundleContainerSymbolFields.Hash, value); } public int? AttachedContainerIndex { - get => (int?)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]; - set => this.Set((int)WixBundleContainerTupleFields.AttachedContainerIndex, value); + get => (int?)this.Fields[(int)WixBundleContainerSymbolFields.AttachedContainerIndex]; + set => this.Set((int)WixBundleContainerSymbolFields.AttachedContainerIndex, value); } public string WorkingPath { - get => (string)this.Fields[(int)WixBundleContainerTupleFields.WorkingPath]; - set => this.Set((int)WixBundleContainerTupleFields.WorkingPath, value); + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.WorkingPath]; + set => this.Set((int)WixBundleContainerSymbolFields.WorkingPath, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs index 9c27c9f4..c0a657ee 100644 --- a/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleCustomDataAttribute = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleCustomDataAttribute, + public static readonly IntermediateSymbolDefinition WixBundleCustomDataAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomDataAttribute, new[] { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeTupleFields.CustomDataRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeTupleFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.Name), IntermediateFieldType.String), }, - typeof(WixBundleCustomDataAttributeTuple)); + typeof(WixBundleCustomDataAttributeSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleCustomDataAttributeTupleFields + public enum WixBundleCustomDataAttributeSymbolFields { CustomDataRef, Name, } - public class WixBundleCustomDataAttributeTuple : IntermediateTuple + public class WixBundleCustomDataAttributeSymbol : IntermediateSymbol { - public WixBundleCustomDataAttributeTuple() : base(TupleDefinitions.WixBundleCustomDataAttribute, null, null) + public WixBundleCustomDataAttributeSymbol() : base(SymbolDefinitions.WixBundleCustomDataAttribute, null, null) { } - public WixBundleCustomDataAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) + public WixBundleCustomDataAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) { } - public IntermediateField this[WixBundleCustomDataAttributeTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleCustomDataAttributeSymbolFields index] => this.Fields[(int)index]; public string CustomDataRef { - get => (string)this.Fields[(int)WixBundleCustomDataAttributeTupleFields.CustomDataRef]; - set => this.Set((int)WixBundleCustomDataAttributeTupleFields.CustomDataRef, value); + get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef, value); } public string Name { - get => (string)this.Fields[(int)WixBundleCustomDataAttributeTupleFields.Name]; - set => this.Set((int)WixBundleCustomDataAttributeTupleFields.Name, value); + get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.Name]; + set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.Name, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs index d488d6d0..0488969a 100644 --- a/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleCustomDataCell = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleCustomDataCell, + public static readonly IntermediateSymbolDefinition WixBundleCustomDataCell = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomDataCell, new[] { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.CustomDataRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.AttributeRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.ElementId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.AttributeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.ElementId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.Value), IntermediateFieldType.String), }, - typeof(WixBundleCustomDataCellTuple)); + typeof(WixBundleCustomDataCellSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleCustomDataCellTupleFields + public enum WixBundleCustomDataCellSymbolFields { CustomDataRef, AttributeRef, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Value, } - public class WixBundleCustomDataCellTuple : IntermediateTuple + public class WixBundleCustomDataCellSymbol : IntermediateSymbol { - public WixBundleCustomDataCellTuple() : base(TupleDefinitions.WixBundleCustomDataCell, null, null) + public WixBundleCustomDataCellSymbol() : base(SymbolDefinitions.WixBundleCustomDataCell, null, null) { } - public WixBundleCustomDataCellTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) + public WixBundleCustomDataCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) { } - public IntermediateField this[WixBundleCustomDataCellTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleCustomDataCellSymbolFields index] => this.Fields[(int)index]; public string CustomDataRef { - get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.CustomDataRef]; - set => this.Set((int)WixBundleCustomDataCellTupleFields.CustomDataRef, value); + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.CustomDataRef, value); } public string AttributeRef { - get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.AttributeRef]; - set => this.Set((int)WixBundleCustomDataCellTupleFields.AttributeRef, value); + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.AttributeRef]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.AttributeRef, value); } public string ElementId { - get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.ElementId]; - set => this.Set((int)WixBundleCustomDataCellTupleFields.ElementId, value); + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.ElementId]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.ElementId, value); } public string Value { - get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.Value]; - set => this.Set((int)WixBundleCustomDataCellTupleFields.Value, value); + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.Value]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.Value, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs index d0878deb..0490f9f7 100644 --- a/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs @@ -2,25 +2,25 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleCustomData = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleCustomData, + public static readonly IntermediateSymbolDefinition WixBundleCustomData = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomData, new[] { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.AttributeNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.BundleExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.AttributeNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.BundleExtensionRef), IntermediateFieldType.String), }, - typeof(WixBundleCustomDataTuple)); + typeof(WixBundleCustomDataSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleCustomDataTupleFields + public enum WixBundleCustomDataSymbolFields { AttributeNames, Type, @@ -34,36 +34,36 @@ namespace WixToolset.Data.Tuples BundleExtension, } - public class WixBundleCustomDataTuple : IntermediateTuple + public class WixBundleCustomDataSymbol : IntermediateSymbol { public const char AttributeNamesSeparator = '\x85'; - public WixBundleCustomDataTuple() : base(TupleDefinitions.WixBundleCustomData, null, null) + public WixBundleCustomDataSymbol() : base(SymbolDefinitions.WixBundleCustomData, null, null) { } - public WixBundleCustomDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomData, sourceLineNumber, id) + public WixBundleCustomDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomData, sourceLineNumber, id) { } - public IntermediateField this[WixBundleCustomDataTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleCustomDataSymbolFields index] => this.Fields[(int)index]; public string AttributeNames { - get => (string)this.Fields[(int)WixBundleCustomDataTupleFields.AttributeNames]; - set => this.Set((int)WixBundleCustomDataTupleFields.AttributeNames, value); + get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.AttributeNames]; + set => this.Set((int)WixBundleCustomDataSymbolFields.AttributeNames, value); } public WixBundleCustomDataType Type { - get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataTupleFields.Type].AsNumber(); - set => this.Set((int)WixBundleCustomDataTupleFields.Type, (int)value); + get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataSymbolFields.Type].AsNumber(); + set => this.Set((int)WixBundleCustomDataSymbolFields.Type, (int)value); } public string BundleExtensionRef { - get => (string)this.Fields[(int)WixBundleCustomDataTupleFields.BundleExtensionRef]; - set => this.Set((int)WixBundleCustomDataTupleFields.BundleExtensionRef, value); + get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.BundleExtensionRef]; + set => this.Set((int)WixBundleCustomDataSymbolFields.BundleExtensionRef, value); } public string[] AttributeNamesSeparated => this.AttributeNames.Split(AttributeNamesSeparator); diff --git a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs index e87de26d..8a8cff1b 100644 --- a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleExePackage = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleExePackage, + public static readonly IntermediateSymbolDefinition WixBundleExePackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExePackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.DetectCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.InstallCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.RepairCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.UninstallCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.ExeProtocol), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.InstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.UninstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.ExeProtocol), IntermediateFieldType.String), }, - typeof(WixBundleExePackageTuple)); + typeof(WixBundleExePackageSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundleExePackageTupleFields + public enum WixBundleExePackageSymbolFields { Attributes, DetectCondition, @@ -41,52 +41,52 @@ namespace WixToolset.Data.Tuples None = 0, } - public class WixBundleExePackageTuple : IntermediateTuple + public class WixBundleExePackageSymbol : IntermediateSymbol { - public WixBundleExePackageTuple() : base(TupleDefinitions.WixBundleExePackage, null, null) + public WixBundleExePackageSymbol() : base(SymbolDefinitions.WixBundleExePackage, null, null) { } - public WixBundleExePackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleExePackage, sourceLineNumber, id) + public WixBundleExePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackage, sourceLineNumber, id) { } - public IntermediateField this[WixBundleExePackageTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleExePackageSymbolFields index] => this.Fields[(int)index]; public WixBundleExePackageAttributes Attributes { - get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageTupleFields.Attributes]; - set => this.Set((int)WixBundleExePackageTupleFields.Attributes, (int)value); + get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleExePackageSymbolFields.Attributes, (int)value); } public string DetectCondition { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.DetectCondition]; - set => this.Set((int)WixBundleExePackageTupleFields.DetectCondition, value); + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.DetectCondition]; + set => this.Set((int)WixBundleExePackageSymbolFields.DetectCondition, value); } public string InstallCommand { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.InstallCommand]; - set => this.Set((int)WixBundleExePackageTupleFields.InstallCommand, value); + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.InstallCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.InstallCommand, value); } public string RepairCommand { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.RepairCommand]; - set => this.Set((int)WixBundleExePackageTupleFields.RepairCommand, value); + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.RepairCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.RepairCommand, value); } public string UninstallCommand { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.UninstallCommand]; - set => this.Set((int)WixBundleExePackageTupleFields.UninstallCommand, value); + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.UninstallCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.UninstallCommand, value); } public string ExeProtocol { - get => (string)this.Fields[(int)WixBundleExePackageTupleFields.ExeProtocol]; - set => this.Set((int)WixBundleExePackageTupleFields.ExeProtocol, value); + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.ExeProtocol]; + set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); } public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); diff --git a/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs index 7df56963..8e6bea58 100644 --- a/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleExtension = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleExtension, + public static readonly IntermediateSymbolDefinition WixBundleExtension = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExtension, new[] { - new IntermediateFieldDefinition(nameof(WixBundleExtensionTupleFields.PayloadRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExtensionSymbolFields.PayloadRef), IntermediateFieldType.String), }, - typeof(WixBundleExtensionTuple)); + typeof(WixBundleExtensionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleExtensionTupleFields + public enum WixBundleExtensionSymbolFields { PayloadRef, } - public class WixBundleExtensionTuple : IntermediateTuple + public class WixBundleExtensionSymbol : IntermediateSymbol { - public WixBundleExtensionTuple() : base(TupleDefinitions.WixBundleExtension, null, null) + public WixBundleExtensionSymbol() : base(SymbolDefinitions.WixBundleExtension, null, null) { } - public WixBundleExtensionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleExtension, sourceLineNumber, id) + public WixBundleExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExtension, sourceLineNumber, id) { } - public IntermediateField this[WixBundleExtensionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleExtensionSymbolFields index] => this.Fields[(int)index]; public string PayloadRef { - get => (string)this.Fields[(int)WixBundleExtensionTupleFields.PayloadRef]; - set => this.Set((int)WixBundleExtensionTupleFields.PayloadRef, value); + get => (string)this.Fields[(int)WixBundleExtensionSymbolFields.PayloadRef]; + set => this.Set((int)WixBundleExtensionSymbolFields.PayloadRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs index dab42529..f81da5b8 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs @@ -2,32 +2,32 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleMsiFeature = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleMsiFeature, + public static readonly IntermediateSymbolDefinition WixBundleMsiFeature = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiFeature, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Display), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Directory), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Size), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Directory), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixBundleMsiFeatureTuple)); + typeof(WixBundleMsiFeatureSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleMsiFeatureTupleFields + public enum WixBundleMsiFeatureSymbolFields { PackageRef, Name, @@ -41,76 +41,76 @@ namespace WixToolset.Data.Tuples Attributes, } - public class WixBundleMsiFeatureTuple : IntermediateTuple + public class WixBundleMsiFeatureSymbol : IntermediateSymbol { - public WixBundleMsiFeatureTuple() : base(TupleDefinitions.WixBundleMsiFeature, null, null) + public WixBundleMsiFeatureSymbol() : base(SymbolDefinitions.WixBundleMsiFeature, null, null) { } - public WixBundleMsiFeatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiFeature, sourceLineNumber, id) + public WixBundleMsiFeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiFeature, sourceLineNumber, id) { } - public IntermediateField this[WixBundleMsiFeatureTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleMsiFeatureSymbolFields index] => this.Fields[(int)index]; public string PackageRef { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.PackageRef]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.PackageRef, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.PackageRef]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.PackageRef, value); } public string Name { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Name]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Name, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Name]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Name, value); } public long Size { - get => (long)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Size, value); + get => (long)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Size]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Size, value); } public string Parent { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Parent]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Parent, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Parent]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Parent, value); } public string Title { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Title]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Title, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Title]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Title, value); } public string Description { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Description]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Description, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Description]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Description, value); } public int Display { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Display]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Display, value); + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Display]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Display, value); } public int Level { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Level]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Level, value); + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Level]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Level, value); } public string Directory { - get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Directory]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Directory, value); + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Directory]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Directory, value); } public int Attributes { - get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Attributes]; - set => this.Set((int)WixBundleMsiFeatureTupleFields.Attributes, value); + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Attributes]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Attributes, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs index 163b56ae..21735f64 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs @@ -2,31 +2,31 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleMsiPackage = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleMsiPackage, + public static readonly IntermediateSymbolDefinition WixBundleMsiPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Manufacturer), IntermediateFieldType.String), }, - typeof(WixBundleMsiPackageTuple)); + typeof(WixBundleMsiPackageSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundleMsiPackageTupleFields + public enum WixBundleMsiPackageSymbolFields { Attributes, ProductCode, @@ -44,58 +44,58 @@ namespace WixToolset.Data.Tuples ForcePerMachine = 0x2, } - public class WixBundleMsiPackageTuple : IntermediateTuple + public class WixBundleMsiPackageSymbol : IntermediateSymbol { - public WixBundleMsiPackageTuple() : base(TupleDefinitions.WixBundleMsiPackage, null, null) + public WixBundleMsiPackageSymbol() : base(SymbolDefinitions.WixBundleMsiPackage, null, null) { } - public WixBundleMsiPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiPackage, sourceLineNumber, id) + public WixBundleMsiPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackage, sourceLineNumber, id) { } - public IntermediateField this[WixBundleMsiPackageTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleMsiPackageSymbolFields index] => this.Fields[(int)index]; public WixBundleMsiPackageAttributes Attributes { - get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageTupleFields.Attributes]; - set => this.Set((int)WixBundleMsiPackageTupleFields.Attributes, (int)value); + get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.Attributes, (int)value); } public string ProductCode { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductCode]; - set => this.Set((int)WixBundleMsiPackageTupleFields.ProductCode, value); + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductCode]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductCode, value); } public string UpgradeCode { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.UpgradeCode]; - set => this.Set((int)WixBundleMsiPackageTupleFields.UpgradeCode, value); + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.UpgradeCode]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.UpgradeCode, value); } public string ProductVersion { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductVersion]; - set => this.Set((int)WixBundleMsiPackageTupleFields.ProductVersion, value); + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductVersion]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductVersion, value); } public int ProductLanguage { - get => (int)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductLanguage]; - set => this.Set((int)WixBundleMsiPackageTupleFields.ProductLanguage, value); + get => (int)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductLanguage]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductLanguage, value); } public string ProductName { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductName]; - set => this.Set((int)WixBundleMsiPackageTupleFields.ProductName, value); + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductName]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductName, value); } public string Manufacturer { - get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.Manufacturer]; - set => this.Set((int)WixBundleMsiPackageTupleFields.Manufacturer, value); + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.Manufacturer, value); } public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs index 80500f17..0d87f87d 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleMsiProperty = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleMsiProperty, + public static readonly IntermediateSymbolDefinition WixBundleMsiProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiProperty, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Condition), IntermediateFieldType.String), }, - typeof(WixBundleMsiPropertyTuple)); + typeof(WixBundleMsiPropertySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleMsiPropertyTupleFields + public enum WixBundleMsiPropertySymbolFields { PackageRef, Name, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Condition, } - public class WixBundleMsiPropertyTuple : IntermediateTuple + public class WixBundleMsiPropertySymbol : IntermediateSymbol { - public WixBundleMsiPropertyTuple() : base(TupleDefinitions.WixBundleMsiProperty, null, null) + public WixBundleMsiPropertySymbol() : base(SymbolDefinitions.WixBundleMsiProperty, null, null) { } - public WixBundleMsiPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiProperty, sourceLineNumber, id) + public WixBundleMsiPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiProperty, sourceLineNumber, id) { } - public IntermediateField this[WixBundleMsiPropertyTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleMsiPropertySymbolFields index] => this.Fields[(int)index]; public string PackageRef { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.PackageRef]; - set => this.Set((int)WixBundleMsiPropertyTupleFields.PackageRef, value); + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.PackageRef]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.PackageRef, value); } public string Name { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Name]; - set => this.Set((int)WixBundleMsiPropertyTupleFields.Name, value); + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Name]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Name, value); } public string Value { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Value]; - set => this.Set((int)WixBundleMsiPropertyTupleFields.Value, value); + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Value]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Value, value); } public string Condition { - get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Condition]; - set => this.Set((int)WixBundleMsiPropertyTupleFields.Condition, value); + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Condition]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Condition, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs index 7e94ff25..3784c2ff 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleMspPackage = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleMspPackage, + public static readonly IntermediateSymbolDefinition WixBundleMspPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMspPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchXml), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchXml), IntermediateFieldType.String), }, - typeof(WixBundleMspPackageTuple)); + typeof(WixBundleMspPackageSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundleMspPackageTupleFields + public enum WixBundleMspPackageSymbolFields { Attributes, PatchCode, @@ -38,40 +38,40 @@ namespace WixToolset.Data.Tuples TargetUnspecified = 0x4, } - public class WixBundleMspPackageTuple : IntermediateTuple + public class WixBundleMspPackageSymbol : IntermediateSymbol { - public WixBundleMspPackageTuple() : base(TupleDefinitions.WixBundleMspPackage, null, null) + public WixBundleMspPackageSymbol() : base(SymbolDefinitions.WixBundleMspPackage, null, null) { } - public WixBundleMspPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMspPackage, sourceLineNumber, id) + public WixBundleMspPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackage, sourceLineNumber, id) { } - public IntermediateField this[WixBundleMspPackageTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleMspPackageSymbolFields index] => this.Fields[(int)index]; public WixBundleMspPackageAttributes Attributes { - get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageTupleFields.Attributes]; - set => this.Set((int)WixBundleMspPackageTupleFields.Attributes, (int)value); + get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleMspPackageSymbolFields.Attributes, (int)value); } public string PatchCode { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchCode]; - set => this.Set((int)WixBundleMspPackageTupleFields.PatchCode, value); + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchCode]; + set => this.Set((int)WixBundleMspPackageSymbolFields.PatchCode, value); } public string Manufacturer { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.Manufacturer]; - set => this.Set((int)WixBundleMspPackageTupleFields.Manufacturer, value); + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleMspPackageSymbolFields.Manufacturer, value); } public string PatchXml { - get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchXml]; - set => this.Set((int)WixBundleMspPackageTupleFields.PatchXml, value); + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchXml]; + set => this.Set((int)WixBundleMspPackageSymbolFields.PatchXml, value); } public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; diff --git a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs index 5d5a4672..e52a9b2d 100644 --- a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleMsuPackage = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleMsuPackage, + public static readonly IntermediateSymbolDefinition WixBundleMsuPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsuPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.DetectCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.MsuKB), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.MsuKB), IntermediateFieldType.String), }, - typeof(WixBundleMsuPackageTuple)); + typeof(WixBundleMsuPackageSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleMsuPackageTupleFields + public enum WixBundleMsuPackageSymbolFields { DetectCondition, MsuKB, } - public class WixBundleMsuPackageTuple : IntermediateTuple + public class WixBundleMsuPackageSymbol : IntermediateSymbol { - public WixBundleMsuPackageTuple() : base(TupleDefinitions.WixBundleMsuPackage, null, null) + public WixBundleMsuPackageSymbol() : base(SymbolDefinitions.WixBundleMsuPackage, null, null) { } - public WixBundleMsuPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsuPackage, sourceLineNumber, id) + public WixBundleMsuPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackage, sourceLineNumber, id) { } - public IntermediateField this[WixBundleMsuPackageTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleMsuPackageSymbolFields index] => this.Fields[(int)index]; public string DetectCondition { - get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.DetectCondition]; - set => this.Set((int)WixBundleMsuPackageTupleFields.DetectCondition, value); + get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.DetectCondition]; + set => this.Set((int)WixBundleMsuPackageSymbolFields.DetectCondition, value); } public string MsuKB { - get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.MsuKB]; - set => this.Set((int)WixBundleMsuPackageTupleFields.MsuKB, value); + get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.MsuKB]; + set => this.Set((int)WixBundleMsuPackageSymbolFields.MsuKB, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs index 42bad1f0..7ef254a6 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundlePackageCommandLine = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundlePackageCommandLine, + public static readonly IntermediateSymbolDefinition WixBundlePackageCommandLine = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageCommandLine, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.WixBundlePackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.InstallArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.UninstallArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.RepairArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.InstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.UninstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.RepairArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.Condition), IntermediateFieldType.String), }, - typeof(WixBundlePackageCommandLineTuple)); + typeof(WixBundlePackageCommandLineSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundlePackageCommandLineTupleFields + public enum WixBundlePackageCommandLineSymbolFields { WixBundlePackageRef, InstallArgument, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples Condition, } - public class WixBundlePackageCommandLineTuple : IntermediateTuple + public class WixBundlePackageCommandLineSymbol : IntermediateSymbol { - public WixBundlePackageCommandLineTuple() : base(TupleDefinitions.WixBundlePackageCommandLine, null, null) + public WixBundlePackageCommandLineSymbol() : base(SymbolDefinitions.WixBundlePackageCommandLine, null, null) { } - public WixBundlePackageCommandLineTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) + public WixBundlePackageCommandLineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) { } - public IntermediateField this[WixBundlePackageCommandLineTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundlePackageCommandLineSymbolFields index] => this.Fields[(int)index]; public string WixBundlePackageRef { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.WixBundlePackageRef]; - set => this.Set((int)WixBundlePackageCommandLineTupleFields.WixBundlePackageRef, value); + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef, value); } public string InstallArgument { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.InstallArgument]; - set => this.Set((int)WixBundlePackageCommandLineTupleFields.InstallArgument, value); + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.InstallArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.InstallArgument, value); } public string UninstallArgument { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.UninstallArgument]; - set => this.Set((int)WixBundlePackageCommandLineTupleFields.UninstallArgument, value); + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.UninstallArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.UninstallArgument, value); } public string RepairArgument { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.RepairArgument]; - set => this.Set((int)WixBundlePackageCommandLineTupleFields.RepairArgument, value); + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.RepairArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.RepairArgument, value); } public string Condition { - get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.Condition]; - set => this.Set((int)WixBundlePackageCommandLineTupleFields.Condition, value); + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.Condition]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.Condition, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs index c585011d..d77d9d58 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundlePackageExitCode = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundlePackageExitCode, + public static readonly IntermediateSymbolDefinition WixBundlePackageExitCode = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageExitCode, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.ChainPackageId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Code), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Behavior), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.ChainPackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Code), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Behavior), IntermediateFieldType.String), }, - typeof(WixBundlePackageExitCodeTuple)); + typeof(WixBundlePackageExitCodeSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundlePackageExitCodeTupleFields + public enum WixBundlePackageExitCodeSymbolFields { ChainPackageId, Code, @@ -38,34 +38,34 @@ namespace WixToolset.Data.Tuples ForceReboot, } - public class WixBundlePackageExitCodeTuple : IntermediateTuple + public class WixBundlePackageExitCodeSymbol : IntermediateSymbol { - public WixBundlePackageExitCodeTuple() : base(TupleDefinitions.WixBundlePackageExitCode, null, null) + public WixBundlePackageExitCodeSymbol() : base(SymbolDefinitions.WixBundlePackageExitCode, null, null) { } - public WixBundlePackageExitCodeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) + public WixBundlePackageExitCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) { } - public IntermediateField this[WixBundlePackageExitCodeTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundlePackageExitCodeSymbolFields index] => this.Fields[(int)index]; public string ChainPackageId { - get => (string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.ChainPackageId]; - set => this.Set((int)WixBundlePackageExitCodeTupleFields.ChainPackageId, value); + get => (string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.ChainPackageId]; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.ChainPackageId, value); } public int? Code { - get => (int?)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]; - set => this.Set((int)WixBundlePackageExitCodeTupleFields.Code, value); + get => (int?)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Code]; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Code, value); } public ExitCodeBehaviorType Behavior { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Behavior], true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; - set => this.Set((int)WixBundlePackageExitCodeTupleFields.Behavior, value.ToString()); + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Behavior], true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Behavior, value.ToString()); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs index ababd00e..a5e1943b 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundlePackageGroup = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundlePackageGroup, + public static readonly IntermediateSymbolDefinition WixBundlePackageGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageGroup, new IntermediateFieldDefinition[] { }, - typeof(WixBundlePackageGroupTuple)); + typeof(WixBundlePackageGroupSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundlePackageGroupTupleFields + public enum WixBundlePackageGroupSymbolFields { } - public class WixBundlePackageGroupTuple : IntermediateTuple + public class WixBundlePackageGroupSymbol : IntermediateSymbol { - public WixBundlePackageGroupTuple() : base(TupleDefinitions.WixBundlePackageGroup, null, null) + public WixBundlePackageGroupSymbol() : base(SymbolDefinitions.WixBundlePackageGroup, null, null) { } - public WixBundlePackageGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageGroup, sourceLineNumber, id) + public WixBundlePackageGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageGroup, sourceLineNumber, id) { } - public IntermediateField this[WixBundlePackageGroupTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundlePackageGroupSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs index 6d248062..8f073900 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundlePackage = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundlePackage, + public static readonly IntermediateSymbolDefinition WixBundlePackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PayloadRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Cache), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.CacheId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Vital), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PerMachine), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Size), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallSize), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PayloadRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Cache), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.CacheId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PerMachine), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackLogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Win64), IntermediateFieldType.Bool), }, - typeof(WixBundlePackageTuple)); + typeof(WixBundlePackageSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundlePackageTupleFields + public enum WixBundlePackageSymbolFields { Type, PayloadRef, @@ -81,130 +81,130 @@ namespace WixToolset.Data.Tuples Win64 = 0x8, } - public class WixBundlePackageTuple : IntermediateTuple + public class WixBundlePackageSymbol : IntermediateSymbol { - public WixBundlePackageTuple() : base(TupleDefinitions.WixBundlePackage, null, null) + public WixBundlePackageSymbol() : base(SymbolDefinitions.WixBundlePackage, null, null) { } - public WixBundlePackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackage, sourceLineNumber, id) + public WixBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackage, sourceLineNumber, id) { } - public IntermediateField this[WixBundlePackageTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundlePackageSymbolFields index] => this.Fields[(int)index]; public WixBundlePackageType Type { - get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageTupleFields.Type], true); - set => this.Set((int)WixBundlePackageTupleFields.Type, value.ToString()); + get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageSymbolFields.Type], true); + set => this.Set((int)WixBundlePackageSymbolFields.Type, value.ToString()); } public string PayloadRef { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.PayloadRef]; - set => this.Set((int)WixBundlePackageTupleFields.PayloadRef, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.PayloadRef]; + set => this.Set((int)WixBundlePackageSymbolFields.PayloadRef, value); } public WixBundlePackageAttributes Attributes { - get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageTupleFields.Attributes]; - set => this.Set((int)WixBundlePackageTupleFields.Attributes, (int)value); + get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageSymbolFields.Attributes]; + set => this.Set((int)WixBundlePackageSymbolFields.Attributes, (int)value); } public string InstallCondition { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.InstallCondition]; - set => this.Set((int)WixBundlePackageTupleFields.InstallCondition, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.InstallCondition]; + set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value); } public YesNoAlwaysType Cache { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; - set => this.Set((int)WixBundlePackageTupleFields.Cache, value.ToString().ToLowerInvariant()); + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; + set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant()); } public string CacheId { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.CacheId]; - set => this.Set((int)WixBundlePackageTupleFields.CacheId, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.CacheId]; + set => this.Set((int)WixBundlePackageSymbolFields.CacheId, value); } public bool? Vital { - get => (bool?)this.Fields[(int)WixBundlePackageTupleFields.Vital]; - set => this.Set((int)WixBundlePackageTupleFields.Vital, value); + get => (bool?)this.Fields[(int)WixBundlePackageSymbolFields.Vital]; + set => this.Set((int)WixBundlePackageSymbolFields.Vital, value); } public YesNoDefaultType PerMachine { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; - set => this.Set((int)WixBundlePackageTupleFields.PerMachine, value.ToString().ToLowerInvariant()); + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; + set => this.Set((int)WixBundlePackageSymbolFields.PerMachine, value.ToString().ToLowerInvariant()); } public string LogPathVariable { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.LogPathVariable]; - set => this.Set((int)WixBundlePackageTupleFields.LogPathVariable, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.LogPathVariable]; + set => this.Set((int)WixBundlePackageSymbolFields.LogPathVariable, value); } public string RollbackLogPathVariable { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackLogPathVariable]; - set => this.Set((int)WixBundlePackageTupleFields.RollbackLogPathVariable, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackLogPathVariable]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackLogPathVariable, value); } public int Size { - get => (int)this.Fields[(int)WixBundlePackageTupleFields.Size]; - set => this.Set((int)WixBundlePackageTupleFields.Size, value); + get => (int)this.Fields[(int)WixBundlePackageSymbolFields.Size]; + set => this.Set((int)WixBundlePackageSymbolFields.Size, value); } public long? InstallSize { - get => (long?)this.Fields[(int)WixBundlePackageTupleFields.InstallSize]; - set => this.Set((int)WixBundlePackageTupleFields.InstallSize, value); + get => (long?)this.Fields[(int)WixBundlePackageSymbolFields.InstallSize]; + set => this.Set((int)WixBundlePackageSymbolFields.InstallSize, value); } public string Version { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.Version]; - set => this.Set((int)WixBundlePackageTupleFields.Version, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Version]; + set => this.Set((int)WixBundlePackageSymbolFields.Version, value); } public int? Language { - get => (int?)this.Fields[(int)WixBundlePackageTupleFields.Language]; - set => this.Set((int)WixBundlePackageTupleFields.Language, value); + get => (int?)this.Fields[(int)WixBundlePackageSymbolFields.Language]; + set => this.Set((int)WixBundlePackageSymbolFields.Language, value); } public string DisplayName { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.DisplayName]; - set => this.Set((int)WixBundlePackageTupleFields.DisplayName, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.DisplayName]; + set => this.Set((int)WixBundlePackageSymbolFields.DisplayName, value); } public string Description { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.Description]; - set => this.Set((int)WixBundlePackageTupleFields.Description, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Description]; + set => this.Set((int)WixBundlePackageSymbolFields.Description, value); } public string RollbackBoundaryRef { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryRef]; - set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryRef, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryRef]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryRef, value); } public string RollbackBoundaryBackwardRef { - get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryBackwardRef]; - set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackwardRef, value); + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef, value); } public bool Win64 { - get => (bool)this.Fields[(int)WixBundlePackageTupleFields.Win64]; - set => this.Set((int)WixBundlePackageTupleFields.Win64, value); + get => (bool)this.Fields[(int)WixBundlePackageSymbolFields.Win64]; + set => this.Set((int)WixBundlePackageSymbolFields.Win64, value); } public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent; diff --git a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs index 56ca144f..b1aa9c77 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundlePatchTargetCode = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundlePatchTargetCode, + public static readonly IntermediateSymbolDefinition WixBundlePatchTargetCode = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePatchTargetCode, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.TargetCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.TargetCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixBundlePatchTargetCodeTuple)); + typeof(WixBundlePatchTargetCodeSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundlePatchTargetCodeTupleFields + public enum WixBundlePatchTargetCodeSymbolFields { PackageRef, TargetCode, @@ -45,34 +45,34 @@ namespace WixToolset.Data.Tuples TargetsUpgradeCode = 2, } - public class WixBundlePatchTargetCodeTuple : IntermediateTuple + public class WixBundlePatchTargetCodeSymbol : IntermediateSymbol { - public WixBundlePatchTargetCodeTuple() : base(TupleDefinitions.WixBundlePatchTargetCode, null, null) + public WixBundlePatchTargetCodeSymbol() : base(SymbolDefinitions.WixBundlePatchTargetCode, null, null) { } - public WixBundlePatchTargetCodeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) + public WixBundlePatchTargetCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) { } - public IntermediateField this[WixBundlePatchTargetCodeTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundlePatchTargetCodeSymbolFields index] => this.Fields[(int)index]; public string PackageRef { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageRef]; - set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageRef, value); + get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.PackageRef]; + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.PackageRef, value); } public string TargetCode { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.TargetCode]; - set => this.Set((int)WixBundlePatchTargetCodeTupleFields.TargetCode, value); + get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.TargetCode]; + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.TargetCode, value); } public WixBundlePatchTargetCodeAttributes Attributes { - get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, (int)value); + get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.Attributes, (int)value); } public bool TargetsProductCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsProductCode) == WixBundlePatchTargetCodeAttributes.TargetsProductCode; diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs index 9c177a47..c53f6e73 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundlePayloadGroup = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundlePayloadGroup, + public static readonly IntermediateSymbolDefinition WixBundlePayloadGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePayloadGroup, new IntermediateFieldDefinition[] { }, - typeof(WixBundlePayloadGroupTuple)); + typeof(WixBundlePayloadGroupSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundlePayloadGroupTupleFields + public enum WixBundlePayloadGroupSymbolFields { } - public class WixBundlePayloadGroupTuple : IntermediateTuple + public class WixBundlePayloadGroupSymbol : IntermediateSymbol { - public WixBundlePayloadGroupTuple() : base(TupleDefinitions.WixBundlePayloadGroup, null, null) + public WixBundlePayloadGroupSymbol() : base(SymbolDefinitions.WixBundlePayloadGroup, null, null) { } - public WixBundlePayloadGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) + public WixBundlePayloadGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) { } - public IntermediateField this[WixBundlePayloadGroupTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundlePayloadGroupSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs index 6e3b1d70..94a02af8 100644 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs @@ -2,45 +2,45 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundlePayload = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundlePayload, + public static readonly IntermediateSymbolDefinition WixBundlePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePayload, new[] { - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.SourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Compressed), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.UnresolvedSourceFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EnableSignatureValidation), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.FileSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Hash), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.PublicKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Thumbprint), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.CatalogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContainerRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContentFile), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EmbeddedId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Packaging), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ParentPackagePayloadRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.UnresolvedSourceFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EnableSignatureValidation), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PublicKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Thumbprint), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.CatalogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EmbeddedId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.LayoutOnly), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Packaging), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ParentPackagePayloadRef), IntermediateFieldType.String), }, - typeof(WixBundlePayloadTuple)); + typeof(WixBundlePayloadSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundlePayloadTupleFields + public enum WixBundlePayloadSymbolFields { Name, SourceFile, @@ -65,142 +65,142 @@ namespace WixToolset.Data.Tuples ParentPackagePayloadRef, } - public class WixBundlePayloadTuple : IntermediateTuple + public class WixBundlePayloadSymbol : IntermediateSymbol { - public WixBundlePayloadTuple() : base(TupleDefinitions.WixBundlePayload, null, null) + public WixBundlePayloadSymbol() : base(SymbolDefinitions.WixBundlePayload, null, null) { } - public WixBundlePayloadTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePayload, sourceLineNumber, id) + public WixBundlePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayload, sourceLineNumber, id) { } - public IntermediateField this[WixBundlePayloadTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundlePayloadSymbolFields index] => this.Fields[(int)index]; public string Name { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Name]; - set => this.Set((int)WixBundlePayloadTupleFields.Name, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Name]; + set => this.Set((int)WixBundlePayloadSymbolFields.Name, value); } public IntermediateFieldPathValue SourceFile { - get => this.Fields[(int)WixBundlePayloadTupleFields.SourceFile].AsPath(); - set => this.Set((int)WixBundlePayloadTupleFields.SourceFile, value); + get => this.Fields[(int)WixBundlePayloadSymbolFields.SourceFile].AsPath(); + set => this.Set((int)WixBundlePayloadSymbolFields.SourceFile, value); } public string DownloadUrl { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DownloadUrl]; - set => this.Set((int)WixBundlePayloadTupleFields.DownloadUrl, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DownloadUrl]; + set => this.Set((int)WixBundlePayloadSymbolFields.DownloadUrl, value); } public bool? Compressed { - get => (bool?)this.Fields[(int)WixBundlePayloadTupleFields.Compressed]; - set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value); + get => (bool?)this.Fields[(int)WixBundlePayloadSymbolFields.Compressed]; + set => this.Set((int)WixBundlePayloadSymbolFields.Compressed, value); } public string UnresolvedSourceFile { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.UnresolvedSourceFile]; - set => this.Set((int)WixBundlePayloadTupleFields.UnresolvedSourceFile, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.UnresolvedSourceFile]; + set => this.Set((int)WixBundlePayloadSymbolFields.UnresolvedSourceFile, value); } public string DisplayName { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DisplayName]; - set => this.Set((int)WixBundlePayloadTupleFields.DisplayName, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DisplayName]; + set => this.Set((int)WixBundlePayloadSymbolFields.DisplayName, value); } public string Description { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Description]; - set => this.Set((int)WixBundlePayloadTupleFields.Description, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Description]; + set => this.Set((int)WixBundlePayloadSymbolFields.Description, value); } public bool EnableSignatureValidation { - get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.EnableSignatureValidation]; - set => this.Set((int)WixBundlePayloadTupleFields.EnableSignatureValidation, value); + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.EnableSignatureValidation]; + set => this.Set((int)WixBundlePayloadSymbolFields.EnableSignatureValidation, value); } public int? FileSize { - get => (int?)this.Fields[(int)WixBundlePayloadTupleFields.FileSize]; - set => this.Set((int)WixBundlePayloadTupleFields.FileSize, value); + get => (int?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; + set => this.Set((int)WixBundlePayloadSymbolFields.FileSize, value); } public string Version { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Version]; - set => this.Set((int)WixBundlePayloadTupleFields.Version, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Version]; + set => this.Set((int)WixBundlePayloadSymbolFields.Version, value); } public string Hash { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Hash]; - set => this.Set((int)WixBundlePayloadTupleFields.Hash, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Hash]; + set => this.Set((int)WixBundlePayloadSymbolFields.Hash, value); } public string PublicKey { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PublicKey]; - set => this.Set((int)WixBundlePayloadTupleFields.PublicKey, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PublicKey]; + set => this.Set((int)WixBundlePayloadSymbolFields.PublicKey, value); } public string Thumbprint { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Thumbprint]; - set => this.Set((int)WixBundlePayloadTupleFields.Thumbprint, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Thumbprint]; + set => this.Set((int)WixBundlePayloadSymbolFields.Thumbprint, value); } public string CatalogRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.CatalogRef]; - set => this.Set((int)WixBundlePayloadTupleFields.CatalogRef, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.CatalogRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.CatalogRef, value); } public string ContainerRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ContainerRef]; - set => this.Set((int)WixBundlePayloadTupleFields.ContainerRef, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ContainerRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.ContainerRef, value); } public string PackageRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PackageRef]; - set => this.Set((int)WixBundlePayloadTupleFields.PackageRef, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PackageRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.PackageRef, value); } public bool ContentFile { - get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.ContentFile]; - set => this.Set((int)WixBundlePayloadTupleFields.ContentFile, value); + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.ContentFile]; + set => this.Set((int)WixBundlePayloadSymbolFields.ContentFile, value); } public string EmbeddedId { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.EmbeddedId]; - set => this.Set((int)WixBundlePayloadTupleFields.EmbeddedId, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.EmbeddedId]; + set => this.Set((int)WixBundlePayloadSymbolFields.EmbeddedId, value); } public bool LayoutOnly { - get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly]; - set => this.Set((int)WixBundlePayloadTupleFields.LayoutOnly, value); + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.LayoutOnly]; + set => this.Set((int)WixBundlePayloadSymbolFields.LayoutOnly, value); } public PackagingType? Packaging { - get => (PackagingType?)this.Fields[(int)WixBundlePayloadTupleFields.Packaging].AsNumber(); - set => this.Set((int)WixBundlePayloadTupleFields.Packaging, (int?)value); + get => (PackagingType?)this.Fields[(int)WixBundlePayloadSymbolFields.Packaging].AsNumber(); + set => this.Set((int)WixBundlePayloadSymbolFields.Packaging, (int?)value); } public string ParentPackagePayloadRef { - get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ParentPackagePayloadRef]; - set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayloadRef, value); + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs index 0d5cb0fe..7bd67b7f 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleRelatedPackage = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleRelatedPackage, + public static readonly IntermediateSymbolDefinition WixBundleRelatedPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleRelatedPackage, new[] { - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.RelatedId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Languages), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.RelatedId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixBundleRelatedPackageTuple)); + typeof(WixBundleRelatedPackageSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundleRelatedPackageTupleFields + public enum WixBundleRelatedPackageSymbolFields { PackageRef, RelatedId, @@ -45,52 +45,52 @@ namespace WixToolset.Data.Tuples LangInclusive = 0x8, } - public class WixBundleRelatedPackageTuple : IntermediateTuple + public class WixBundleRelatedPackageSymbol : IntermediateSymbol { - public WixBundleRelatedPackageTuple() : base(TupleDefinitions.WixBundleRelatedPackage, null, null) + public WixBundleRelatedPackageSymbol() : base(SymbolDefinitions.WixBundleRelatedPackage, null, null) { } - public WixBundleRelatedPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) + public WixBundleRelatedPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) { } - public IntermediateField this[WixBundleRelatedPackageTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleRelatedPackageSymbolFields index] => this.Fields[(int)index]; public string PackageRef { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.PackageRef]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.PackageRef, value); + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.PackageRef]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.PackageRef, value); } public string RelatedId { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.RelatedId]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.RelatedId, value); + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.RelatedId]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.RelatedId, value); } public string MinVersion { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinVersion]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.MinVersion, value); + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MinVersion]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.MinVersion, value); } public string MaxVersion { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxVersion]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxVersion, value); + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MaxVersion]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.MaxVersion, value); } public string Languages { - get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Languages]; - set => this.Set((int)WixBundleRelatedPackageTupleFields.Languages, value); + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Languages]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.Languages, value); } public WixBundleRelatedPackageAttributes Attributes { - get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixBundleRelatedPackageTupleFields.Attributes, (int)value); + get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleRelatedPackageSymbolFields.Attributes, (int)value); } public bool MinInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MinInclusive) == WixBundleRelatedPackageAttributes.MinInclusive; diff --git a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs index 648787f9..e54e898e 100644 --- a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleRollbackBoundary = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleRollbackBoundary, + public static readonly IntermediateSymbolDefinition WixBundleRollbackBoundary = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleRollbackBoundary, new[] { - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Vital), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Transaction), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Vital), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Transaction), IntermediateFieldType.Number), }, - typeof(WixBundleRollbackBoundaryTuple)); + typeof(WixBundleRollbackBoundarySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleRollbackBoundaryTupleFields + public enum WixBundleRollbackBoundarySymbolFields { Vital, Transaction, } - public class WixBundleRollbackBoundaryTuple : IntermediateTuple + public class WixBundleRollbackBoundarySymbol : IntermediateSymbol { - public WixBundleRollbackBoundaryTuple() : base(TupleDefinitions.WixBundleRollbackBoundary, null, null) + public WixBundleRollbackBoundarySymbol() : base(SymbolDefinitions.WixBundleRollbackBoundary, null, null) { } - public WixBundleRollbackBoundaryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) + public WixBundleRollbackBoundarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) { } - public IntermediateField this[WixBundleRollbackBoundaryTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleRollbackBoundarySymbolFields index] => this.Fields[(int)index]; public bool? Vital { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Vital]; - set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Vital, value); + get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Vital]; + set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Vital, value); } public bool? Transaction { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Transaction]; - set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Transaction, value); + get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Transaction]; + set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Transaction, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs index bfe8c6e1..d8e9db3f 100644 --- a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleSlipstreamMsp = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleSlipstreamMsp, + public static readonly IntermediateSymbolDefinition WixBundleSlipstreamMsp = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleSlipstreamMsp, new[] { - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.TargetPackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.MspPackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.TargetPackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.MspPackageRef), IntermediateFieldType.String), }, - typeof(WixBundleSlipstreamMspTuple)); + typeof(WixBundleSlipstreamMspSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleSlipstreamMspTupleFields + public enum WixBundleSlipstreamMspSymbolFields { TargetPackageRef, MspPackageRef, } - public class WixBundleSlipstreamMspTuple : IntermediateTuple + public class WixBundleSlipstreamMspSymbol : IntermediateSymbol { - public WixBundleSlipstreamMspTuple() : base(TupleDefinitions.WixBundleSlipstreamMsp, null, null) + public WixBundleSlipstreamMspSymbol() : base(SymbolDefinitions.WixBundleSlipstreamMsp, null, null) { } - public WixBundleSlipstreamMspTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) + public WixBundleSlipstreamMspSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) { } - public IntermediateField this[WixBundleSlipstreamMspTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleSlipstreamMspSymbolFields index] => this.Fields[(int)index]; public string TargetPackageRef { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.TargetPackageRef]; - set => this.Set((int)WixBundleSlipstreamMspTupleFields.TargetPackageRef, value); + get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef, value); } public string MspPackageRef { - get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.MspPackageRef]; - set => this.Set((int)WixBundleSlipstreamMspTupleFields.MspPackageRef, value); + get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.MspPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspSymbolFields.MspPackageRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs index 01318d0c..8cad5c36 100644 --- a/src/WixToolset.Data/Tuples/WixBundleTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleTuple.cs @@ -2,46 +2,46 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundle = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundle, + public static readonly IntermediateSymbolDefinition WixBundle = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundle, new[] { - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Copyright), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.AboutUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpTelephone), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpdateUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Compressed), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPrefix), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogExtension), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.IconSourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.SplashScreenSourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Tag), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Platform), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ParentName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.BundleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Copyright), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.AboutUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpTelephone), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpdateUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPrefix), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogExtension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.IconSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.SplashScreenSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Tag), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Platform), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ParentName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.BundleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ProviderKey), IntermediateFieldType.String), }, - typeof(WixBundleTuple)); + typeof(WixBundleSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixBundleTupleFields + public enum WixBundleSymbolFields { UpgradeCode, Version, @@ -77,148 +77,148 @@ namespace WixToolset.Data.Tuples PerMachine = 0x8, } - public class WixBundleTuple : IntermediateTuple + public class WixBundleSymbol : IntermediateSymbol { - public WixBundleTuple() : base(TupleDefinitions.WixBundle, null, null) + public WixBundleSymbol() : base(SymbolDefinitions.WixBundle, null, null) { } - public WixBundleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundle, sourceLineNumber, id) + public WixBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundle, sourceLineNumber, id) { } - public IntermediateField this[WixBundleTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleSymbolFields index] => this.Fields[(int)index]; public string UpgradeCode { - get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode]; - set => this.Set((int)WixBundleTupleFields.UpgradeCode, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.UpgradeCode]; + set => this.Set((int)WixBundleSymbolFields.UpgradeCode, value); } public string Version { - get => (string)this.Fields[(int)WixBundleTupleFields.Version]; - set => this.Set((int)WixBundleTupleFields.Version, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.Version]; + set => this.Set((int)WixBundleSymbolFields.Version, value); } public string Copyright { - get => (string)this.Fields[(int)WixBundleTupleFields.Copyright]; - set => this.Set((int)WixBundleTupleFields.Copyright, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.Copyright]; + set => this.Set((int)WixBundleSymbolFields.Copyright, value); } public string Name { - get => (string)this.Fields[(int)WixBundleTupleFields.Name]; - set => this.Set((int)WixBundleTupleFields.Name, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.Name]; + set => this.Set((int)WixBundleSymbolFields.Name, value); } public string Manufacturer { - get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer]; - set => this.Set((int)WixBundleTupleFields.Manufacturer, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleSymbolFields.Manufacturer, value); } public WixBundleAttributes Attributes { - get => (WixBundleAttributes)this.Fields[(int)WixBundleTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixBundleTupleFields.Attributes, (int)value); + get => (WixBundleAttributes)this.Fields[(int)WixBundleSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleSymbolFields.Attributes, (int)value); } public string AboutUrl { - get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl]; - set => this.Set((int)WixBundleTupleFields.AboutUrl, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.AboutUrl]; + set => this.Set((int)WixBundleSymbolFields.AboutUrl, value); } public string HelpTelephone { - get => (string)this.Fields[(int)WixBundleTupleFields.HelpTelephone]; - set => this.Set((int)WixBundleTupleFields.HelpTelephone, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.HelpTelephone]; + set => this.Set((int)WixBundleSymbolFields.HelpTelephone, value); } public string HelpUrl { - get => (string)this.Fields[(int)WixBundleTupleFields.HelpUrl]; - set => this.Set((int)WixBundleTupleFields.HelpUrl, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.HelpUrl]; + set => this.Set((int)WixBundleSymbolFields.HelpUrl, value); } public string UpdateUrl { - get => (string)this.Fields[(int)WixBundleTupleFields.UpdateUrl]; - set => this.Set((int)WixBundleTupleFields.UpdateUrl, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.UpdateUrl]; + set => this.Set((int)WixBundleSymbolFields.UpdateUrl, value); } public bool? Compressed { - get => (bool?)this.Fields[(int)WixBundleTupleFields.Compressed]; - set => this.Set((int)WixBundleTupleFields.Compressed, value); + get => (bool?)this.Fields[(int)WixBundleSymbolFields.Compressed]; + set => this.Set((int)WixBundleSymbolFields.Compressed, value); } public string LogPathVariable { - get => (string)this.Fields[(int)WixBundleTupleFields.LogPathVariable]; - set => this.Set((int)WixBundleTupleFields.LogPathVariable, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.LogPathVariable]; + set => this.Set((int)WixBundleSymbolFields.LogPathVariable, value); } public string LogPrefix { - get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefix]; - set => this.Set((int)WixBundleTupleFields.LogPrefix, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.LogPrefix]; + set => this.Set((int)WixBundleSymbolFields.LogPrefix, value); } public string LogExtension { - get => (string)this.Fields[(int)WixBundleTupleFields.LogExtension]; - set => this.Set((int)WixBundleTupleFields.LogExtension, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.LogExtension]; + set => this.Set((int)WixBundleSymbolFields.LogExtension, value); } public string IconSourceFile { - get => (string)this.Fields[(int)WixBundleTupleFields.IconSourceFile]; - set => this.Set((int)WixBundleTupleFields.IconSourceFile, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.IconSourceFile]; + set => this.Set((int)WixBundleSymbolFields.IconSourceFile, value); } public string SplashScreenSourceFile { - get => (string)this.Fields[(int)WixBundleTupleFields.SplashScreenSourceFile]; - set => this.Set((int)WixBundleTupleFields.SplashScreenSourceFile, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.SplashScreenSourceFile]; + set => this.Set((int)WixBundleSymbolFields.SplashScreenSourceFile, value); } public string Condition { - get => (string)this.Fields[(int)WixBundleTupleFields.Condition]; - set => this.Set((int)WixBundleTupleFields.Condition, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.Condition]; + set => this.Set((int)WixBundleSymbolFields.Condition, value); } public string Tag { - get => (string)this.Fields[(int)WixBundleTupleFields.Tag]; - set => this.Set((int)WixBundleTupleFields.Tag, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.Tag]; + set => this.Set((int)WixBundleSymbolFields.Tag, value); } public Platform Platform { - get => (Platform)this.Fields[(int)WixBundleTupleFields.Platform].AsNumber(); - set => this.Set((int)WixBundleTupleFields.Platform, (int)value); + get => (Platform)this.Fields[(int)WixBundleSymbolFields.Platform].AsNumber(); + set => this.Set((int)WixBundleSymbolFields.Platform, (int)value); } public string ParentName { - get => (string)this.Fields[(int)WixBundleTupleFields.ParentName]; - set => this.Set((int)WixBundleTupleFields.ParentName, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.ParentName]; + set => this.Set((int)WixBundleSymbolFields.ParentName, value); } public string BundleId { - get => (string)this.Fields[(int)WixBundleTupleFields.BundleId]; - set => this.Set((int)WixBundleTupleFields.BundleId, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.BundleId]; + set => this.Set((int)WixBundleSymbolFields.BundleId, value); } public string ProviderKey { - get => (string)this.Fields[(int)WixBundleTupleFields.ProviderKey]; - set => this.Set((int)WixBundleTupleFields.ProviderKey, value); + get => (string)this.Fields[(int)WixBundleSymbolFields.ProviderKey]; + set => this.Set((int)WixBundleSymbolFields.ProviderKey, value); } public PackagingType DefaultPackagingType => (this.Compressed.HasValue && !this.Compressed.Value) ? PackagingType.External : PackagingType.Embedded; diff --git a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs index 08ca5d6e..d27bbc32 100644 --- a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleUpdate = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleUpdate, + public static readonly IntermediateSymbolDefinition WixBundleUpdate = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleUpdate, new[] { - new IntermediateFieldDefinition(nameof(WixBundleUpdateTupleFields.Location), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleUpdateTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Location), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixBundleUpdateTuple)); + typeof(WixBundleUpdateSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleUpdateTupleFields + public enum WixBundleUpdateSymbolFields { Location, Attributes, } - public class WixBundleUpdateTuple : IntermediateTuple + public class WixBundleUpdateSymbol : IntermediateSymbol { - public WixBundleUpdateTuple() : base(TupleDefinitions.WixBundleUpdate, null, null) + public WixBundleUpdateSymbol() : base(SymbolDefinitions.WixBundleUpdate, null, null) { } - public WixBundleUpdateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleUpdate, sourceLineNumber, id) + public WixBundleUpdateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleUpdate, sourceLineNumber, id) { } - public IntermediateField this[WixBundleUpdateTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleUpdateSymbolFields index] => this.Fields[(int)index]; public string Location { - get => (string)this.Fields[(int)WixBundleUpdateTupleFields.Location]; - set => this.Set((int)WixBundleUpdateTupleFields.Location, value); + get => (string)this.Fields[(int)WixBundleUpdateSymbolFields.Location]; + set => this.Set((int)WixBundleUpdateSymbolFields.Location, value); } public int Attributes { - get => (int)this.Fields[(int)WixBundleUpdateTupleFields.Attributes]; - set => this.Set((int)WixBundleUpdateTupleFields.Attributes, value); + get => (int)this.Fields[(int)WixBundleUpdateSymbolFields.Attributes]; + set => this.Set((int)WixBundleUpdateSymbolFields.Attributes, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs index d7d74657..85cf2798 100644 --- a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixBundleVariable = new IntermediateTupleDefinition( - TupleDefinitionType.WixBundleVariable, + public static readonly IntermediateSymbolDefinition WixBundleVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleVariable, new[] { - new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Persisted), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Persisted), IntermediateFieldType.Bool), }, - typeof(WixBundleVariableTuple)); + typeof(WixBundleVariableSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixBundleVariableTupleFields + public enum WixBundleVariableSymbolFields { Value, Type, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Persisted, } - public class WixBundleVariableTuple : IntermediateTuple + public class WixBundleVariableSymbol : IntermediateSymbol { - public WixBundleVariableTuple() : base(TupleDefinitions.WixBundleVariable, null, null) + public WixBundleVariableSymbol() : base(SymbolDefinitions.WixBundleVariable, null, null) { } - public WixBundleVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleVariable, sourceLineNumber, id) + public WixBundleVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleVariable, sourceLineNumber, id) { } - public IntermediateField this[WixBundleVariableTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixBundleVariableSymbolFields index] => this.Fields[(int)index]; public string Value { - get => (string)this.Fields[(int)WixBundleVariableTupleFields.Value]; - set => this.Set((int)WixBundleVariableTupleFields.Value, value); + get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Value]; + set => this.Set((int)WixBundleVariableSymbolFields.Value, value); } public string Type { - get => (string)this.Fields[(int)WixBundleVariableTupleFields.Type]; - set => this.Set((int)WixBundleVariableTupleFields.Type, value); + get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Type]; + set => this.Set((int)WixBundleVariableSymbolFields.Type, value); } public bool Hidden { - get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Hidden]; - set => this.Set((int)WixBundleVariableTupleFields.Hidden, value); + get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Hidden]; + set => this.Set((int)WixBundleVariableSymbolFields.Hidden, value); } public bool Persisted { - get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Persisted]; - set => this.Set((int)WixBundleVariableTupleFields.Persisted, value); + get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Persisted]; + set => this.Set((int)WixBundleVariableSymbolFields.Persisted, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs index 6c0633e0..c657678c 100644 --- a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs +++ b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixChainItem = new IntermediateTupleDefinition( - TupleDefinitionType.WixChainItem, + public static readonly IntermediateSymbolDefinition WixChainItem = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixChainItem, new IntermediateFieldDefinition[] { }, - typeof(WixChainItemTuple)); + typeof(WixChainItemSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixChainItemTupleFields + public enum WixChainItemSymbolFields { } - public class WixChainItemTuple : IntermediateTuple + public class WixChainItemSymbol : IntermediateSymbol { - public WixChainItemTuple() : base(TupleDefinitions.WixChainItem, null, null) + public WixChainItemSymbol() : base(SymbolDefinitions.WixChainItem, null, null) { } - public WixChainItemTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixChainItem, sourceLineNumber, id) + public WixChainItemSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChainItem, sourceLineNumber, id) { } - public IntermediateField this[WixChainItemTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixChainItemSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixChainTuple.cs b/src/WixToolset.Data/Tuples/WixChainTuple.cs index 9343ead1..8ec5fc63 100644 --- a/src/WixToolset.Data/Tuples/WixChainTuple.cs +++ b/src/WixToolset.Data/Tuples/WixChainTuple.cs @@ -2,25 +2,25 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixChain = new IntermediateTupleDefinition( - TupleDefinitionType.WixChain, + public static readonly IntermediateSymbolDefinition WixChain = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixChain, new[] { - new IntermediateFieldDefinition(nameof(WixChainTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixChainSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixChainTuple)); + typeof(WixChainSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixChainTupleFields + public enum WixChainSymbolFields { Attributes, } @@ -34,22 +34,22 @@ namespace WixToolset.Data.Tuples ParallelCache = 0x4, } - public class WixChainTuple : IntermediateTuple + public class WixChainSymbol : IntermediateSymbol { - public WixChainTuple() : base(TupleDefinitions.WixChain, null, null) + public WixChainSymbol() : base(SymbolDefinitions.WixChain, null, null) { } - public WixChainTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixChain, sourceLineNumber, id) + public WixChainSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChain, sourceLineNumber, id) { } - public IntermediateField this[WixChainTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixChainSymbolFields index] => this.Fields[(int)index]; public WixChainAttributes Attributes { - get => (WixChainAttributes)(int)this.Fields[(int)WixChainTupleFields.Attributes]; - set => this.Set((int)WixChainTupleFields.Attributes, (int)value); + get => (WixChainAttributes)(int)this.Fields[(int)WixChainSymbolFields.Attributes]; + set => this.Set((int)WixChainSymbolFields.Attributes, (int)value); } public bool DisableRollback => (this.Attributes & WixChainAttributes.DisableRollback) == WixChainAttributes.DisableRollback; diff --git a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs index 3d573f7a..89365605 100644 --- a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixComplexReference = new IntermediateTupleDefinition( - TupleDefinitionType.WixComplexReference, + public static readonly IntermediateSymbolDefinition WixComplexReference = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComplexReference, new[] { - new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ParentAttributes), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ParentLanguage), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Child), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ChildAttributes), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Attributes), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentLanguage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Child), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ChildAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Attributes), IntermediateFieldType.Bool), }, - typeof(WixComplexReferenceTuple)); + typeof(WixComplexReferenceSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixComplexReferenceTupleFields + public enum WixComplexReferenceSymbolFields { Parent, ParentAttributes, @@ -35,52 +35,52 @@ namespace WixToolset.Data.Tuples Attributes, } - public class WixComplexReferenceTuple : IntermediateTuple + public class WixComplexReferenceSymbol : IntermediateSymbol { - public WixComplexReferenceTuple() : base(TupleDefinitions.WixComplexReference, null, null) + public WixComplexReferenceSymbol() : base(SymbolDefinitions.WixComplexReference, null, null) { } - public WixComplexReferenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComplexReference, sourceLineNumber, id) + public WixComplexReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComplexReference, sourceLineNumber, id) { } - public IntermediateField this[WixComplexReferenceTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixComplexReferenceSymbolFields index] => this.Fields[(int)index]; public string Parent { - get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Parent]; - set => this.Set((int)WixComplexReferenceTupleFields.Parent, value); + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Parent]; + set => this.Set((int)WixComplexReferenceSymbolFields.Parent, value); } public ComplexReferenceParentType ParentType { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentAttributes], true); - set => this.Set((int)WixComplexReferenceTupleFields.ParentAttributes, value.ToString()); + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentAttributes], true); + set => this.Set((int)WixComplexReferenceSymbolFields.ParentAttributes, value.ToString()); } public string ParentLanguage { - get => (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentLanguage]; - set => this.Set((int)WixComplexReferenceTupleFields.ParentLanguage, value); + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentLanguage]; + set => this.Set((int)WixComplexReferenceSymbolFields.ParentLanguage, value); } public string Child { - get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Child]; - set => this.Set((int)WixComplexReferenceTupleFields.Child, value); + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Child]; + set => this.Set((int)WixComplexReferenceSymbolFields.Child, value); } public ComplexReferenceChildType ChildType { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ChildAttributes], true); - set => this.Set((int)WixComplexReferenceTupleFields.ChildAttributes, value.ToString()); + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ChildAttributes], true); + set => this.Set((int)WixComplexReferenceSymbolFields.ChildAttributes, value.ToString()); } public bool IsPrimary { - get => (bool)this.Fields[(int)WixComplexReferenceTupleFields.Attributes]; - set => this.Set((int)WixComplexReferenceTupleFields.Attributes, value); + get => (bool)this.Fields[(int)WixComplexReferenceSymbolFields.Attributes]; + set => this.Set((int)WixComplexReferenceSymbolFields.Attributes, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs index 1209790f..4dd5a3b5 100644 --- a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixComponentGroup = new IntermediateTupleDefinition( - TupleDefinitionType.WixComponentGroup, + public static readonly IntermediateSymbolDefinition WixComponentGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComponentGroup, new[] { - new IntermediateFieldDefinition(nameof(WixComponentGroupTupleFields.WixComponentGroup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentGroupSymbolFields.WixComponentGroup), IntermediateFieldType.String), }, - typeof(WixComponentGroupTuple)); + typeof(WixComponentGroupSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixComponentGroupTupleFields + public enum WixComponentGroupSymbolFields { WixComponentGroup, } - public class WixComponentGroupTuple : IntermediateTuple + public class WixComponentGroupSymbol : IntermediateSymbol { - public WixComponentGroupTuple() : base(TupleDefinitions.WixComponentGroup, null, null) + public WixComponentGroupSymbol() : base(SymbolDefinitions.WixComponentGroup, null, null) { } - public WixComponentGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComponentGroup, sourceLineNumber, id) + public WixComponentGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentGroup, sourceLineNumber, id) { } - public IntermediateField this[WixComponentGroupTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixComponentGroupSymbolFields index] => this.Fields[(int)index]; public string WixComponentGroup { - get => (string)this.Fields[(int)WixComponentGroupTupleFields.WixComponentGroup]; - set => this.Set((int)WixComponentGroupTupleFields.WixComponentGroup, value); + get => (string)this.Fields[(int)WixComponentGroupSymbolFields.WixComponentGroup]; + set => this.Set((int)WixComponentGroupSymbolFields.WixComponentGroup, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs index de6f47b9..63f7179f 100644 --- a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixComponentSearch = new IntermediateTupleDefinition( - TupleDefinitionType.WixComponentSearch, + public static readonly IntermediateSymbolDefinition WixComponentSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComponentSearch, new[] { - new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Guid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixComponentSearchTuple)); + typeof(WixComponentSearchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixComponentSearchTupleFields + public enum WixComponentSearchSymbolFields { Guid, ProductCode, @@ -37,34 +37,34 @@ namespace WixToolset.Data.Tuples WantDirectory = 0x4, } - public class WixComponentSearchTuple : IntermediateTuple + public class WixComponentSearchSymbol : IntermediateSymbol { - public WixComponentSearchTuple() : base(TupleDefinitions.WixComponentSearch, null, null) + public WixComponentSearchSymbol() : base(SymbolDefinitions.WixComponentSearch, null, null) { } - public WixComponentSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComponentSearch, sourceLineNumber, id) + public WixComponentSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentSearch, sourceLineNumber, id) { } - public IntermediateField this[WixComponentSearchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixComponentSearchSymbolFields index] => this.Fields[(int)index]; public string Guid { - get => (string)this.Fields[(int)WixComponentSearchTupleFields.Guid]; - set => this.Set((int)WixComponentSearchTupleFields.Guid, value); + get => (string)this.Fields[(int)WixComponentSearchSymbolFields.Guid]; + set => this.Set((int)WixComponentSearchSymbolFields.Guid, value); } public string ProductCode { - get => (string)this.Fields[(int)WixComponentSearchTupleFields.ProductCode]; - set => this.Set((int)WixComponentSearchTupleFields.ProductCode, value); + get => (string)this.Fields[(int)WixComponentSearchSymbolFields.ProductCode]; + set => this.Set((int)WixComponentSearchSymbolFields.ProductCode, value); } public WixComponentSearchAttributes Attributes { - get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixComponentSearchTupleFields.Attributes, (int)value); + get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixComponentSearchSymbolFields.Attributes, (int)value); } } } diff --git a/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs index 18be675e..b45cda43 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixCustomTableCell = new IntermediateTupleDefinition( - TupleDefinitionType.WixCustomTableCell, + public static readonly IntermediateSymbolDefinition WixCustomTableCell = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTableCell, new[] { - new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.TableRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.ColumnRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.RowId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellTupleFields.Data), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.ColumnRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.RowId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.Data), IntermediateFieldType.String), }, - typeof(WixCustomTableCellTuple)); + typeof(WixCustomTableCellSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixCustomTableCellTupleFields + public enum WixCustomTableCellSymbolFields { TableRef, ColumnRef, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Data, } - public class WixCustomTableCellTuple : IntermediateTuple + public class WixCustomTableCellSymbol : IntermediateSymbol { - public WixCustomTableCellTuple() : base(TupleDefinitions.WixCustomTableCell, null, null) + public WixCustomTableCellSymbol() : base(SymbolDefinitions.WixCustomTableCell, null, null) { } - public WixCustomTableCellTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTableCell, sourceLineNumber, id) + public WixCustomTableCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableCell, sourceLineNumber, id) { } - public IntermediateField this[WixCustomTableCellTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixCustomTableCellSymbolFields index] => this.Fields[(int)index]; public string TableRef { - get => (string)this.Fields[(int)WixCustomTableCellTupleFields.TableRef]; - set => this.Set((int)WixCustomTableCellTupleFields.TableRef, value); + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.TableRef]; + set => this.Set((int)WixCustomTableCellSymbolFields.TableRef, value); } public string ColumnRef { - get => (string)this.Fields[(int)WixCustomTableCellTupleFields.ColumnRef]; - set => this.Set((int)WixCustomTableCellTupleFields.ColumnRef, value); + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.ColumnRef]; + set => this.Set((int)WixCustomTableCellSymbolFields.ColumnRef, value); } public string RowId { - get => (string)this.Fields[(int)WixCustomTableCellTupleFields.RowId]; - set => this.Set((int)WixCustomTableCellTupleFields.RowId, value); + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.RowId]; + set => this.Set((int)WixCustomTableCellSymbolFields.RowId, value); } public string Data { - get => (string)this.Fields[(int)WixCustomTableCellTupleFields.Data]; - set => this.Set((int)WixCustomTableCellTupleFields.Data, value); + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.Data]; + set => this.Set((int)WixCustomTableCellSymbolFields.Data, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs index 8f3cf571..9ae2a904 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs @@ -2,37 +2,37 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixCustomTableColumn = new IntermediateTupleDefinition( - TupleDefinitionType.WixCustomTableColumn, + public static readonly IntermediateSymbolDefinition WixCustomTableColumn = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTableColumn, new[] { - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.TableRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.MinValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.MaxValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.KeyTable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.KeyColumn), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Category), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Set), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Modularize), IntermediateFieldType.Number) + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MinValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MaxValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyColumn), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Category), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Set), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Modularize), IntermediateFieldType.Number) }, - typeof(WixCustomTableColumnTuple)); + typeof(WixCustomTableColumnSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixCustomTableColumnTupleFields + public enum WixCustomTableColumnSymbolFields { TableRef, Name, @@ -50,7 +50,7 @@ namespace WixToolset.Data.Tuples } [Flags] - public enum WixCustomTableColumnTupleAttributes + public enum WixCustomTableColumnSymbolAttributes { None = 0x0, PrimaryKey = 0x1, @@ -102,102 +102,102 @@ namespace WixToolset.Data.Tuples SemicolonDelimited, } - public class WixCustomTableColumnTuple : IntermediateTuple + public class WixCustomTableColumnSymbol : IntermediateSymbol { - public WixCustomTableColumnTuple() : base(TupleDefinitions.WixCustomTableColumn, null, null) + public WixCustomTableColumnSymbol() : base(SymbolDefinitions.WixCustomTableColumn, null, null) { } - public WixCustomTableColumnTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTableColumn, sourceLineNumber, id) + public WixCustomTableColumnSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableColumn, sourceLineNumber, id) { } - public IntermediateField this[WixCustomTableColumnTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixCustomTableColumnSymbolFields index] => this.Fields[(int)index]; public string TableRef { - get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.TableRef]; - set => this.Set((int)WixCustomTableColumnTupleFields.TableRef, value); + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.TableRef]; + set => this.Set((int)WixCustomTableColumnSymbolFields.TableRef, value); } public string Name { - get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Name]; - set => this.Set((int)WixCustomTableColumnTupleFields.Name, value); + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Name]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Name, value); } public IntermediateFieldType Type { - get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnTupleFields.Type].AsNumber(); - set => this.Set((int)WixCustomTableColumnTupleFields.Type, (int)value); + get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnSymbolFields.Type].AsNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Type, (int)value); } - public WixCustomTableColumnTupleAttributes Attributes + public WixCustomTableColumnSymbolAttributes Attributes { - get => (WixCustomTableColumnTupleAttributes)this.Fields[(int)WixCustomTableColumnTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixCustomTableColumnTupleFields.Attributes, (int)value); + get => (WixCustomTableColumnSymbolAttributes)this.Fields[(int)WixCustomTableColumnSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Attributes, (int)value); } public int Width { - get => (int)this.Fields[(int)WixCustomTableColumnTupleFields.Width]; - set => this.Set((int)WixCustomTableColumnTupleFields.Width, value); + get => (int)this.Fields[(int)WixCustomTableColumnSymbolFields.Width]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Width, value); } public long? MinValue { - get => (long?)this.Fields[(int)WixCustomTableColumnTupleFields.MinValue]; - set => this.Set((int)WixCustomTableColumnTupleFields.MinValue, value); + get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MinValue]; + set => this.Set((int)WixCustomTableColumnSymbolFields.MinValue, value); } public long? MaxValue { - get => (long?)this.Fields[(int)WixCustomTableColumnTupleFields.MaxValue]; - set => this.Set((int)WixCustomTableColumnTupleFields.MaxValue, value); + get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MaxValue]; + set => this.Set((int)WixCustomTableColumnSymbolFields.MaxValue, value); } public string KeyTable { - get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.KeyTable]; - set => this.Set((int)WixCustomTableColumnTupleFields.KeyTable, value); + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyTable]; + set => this.Set((int)WixCustomTableColumnSymbolFields.KeyTable, value); } public int? KeyColumn { - get => (int?)this.Fields[(int)WixCustomTableColumnTupleFields.KeyColumn]; - set => this.Set((int)WixCustomTableColumnTupleFields.KeyColumn, value); + get => (int?)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyColumn]; + set => this.Set((int)WixCustomTableColumnSymbolFields.KeyColumn, value); } public WixCustomTableColumnCategoryType? Category { - get => (WixCustomTableColumnCategoryType?)this.Fields[(int)WixCustomTableColumnTupleFields.Category].AsNullableNumber(); - set => this.Set((int)WixCustomTableColumnTupleFields.Category, (int?)value); + get => (WixCustomTableColumnCategoryType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Category].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Category, (int?)value); } public string Set { - get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Set]; - set => this.Set((int)WixCustomTableColumnTupleFields.Set, value); + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Set]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Set, value); } public string Description { - get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Description]; - set => this.Set((int)WixCustomTableColumnTupleFields.Description, value); + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Description]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Description, value); } public WixCustomTableColumnModularizeType? Modularize { - get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnTupleFields.Modularize].AsNullableNumber(); - set => this.Set((int)WixCustomTableColumnTupleFields.Modularize, (int?)value); + get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Modularize].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Modularize, (int?)value); } - public bool PrimaryKey => (this.Attributes & WixCustomTableColumnTupleAttributes.PrimaryKey) == WixCustomTableColumnTupleAttributes.PrimaryKey; + public bool PrimaryKey => (this.Attributes & WixCustomTableColumnSymbolAttributes.PrimaryKey) == WixCustomTableColumnSymbolAttributes.PrimaryKey; - public bool Localizable => (this.Attributes & WixCustomTableColumnTupleAttributes.Localizable) == WixCustomTableColumnTupleAttributes.Localizable; + public bool Localizable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Localizable) == WixCustomTableColumnSymbolAttributes.Localizable; - public bool Nullable => (this.Attributes & WixCustomTableColumnTupleAttributes.Nullable) == WixCustomTableColumnTupleAttributes.Nullable; + public bool Nullable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Nullable) == WixCustomTableColumnSymbolAttributes.Nullable; - public bool Unreal => (this.Attributes & WixCustomTableColumnTupleAttributes.Unreal) == WixCustomTableColumnTupleAttributes.Unreal; + public bool Unreal => (this.Attributes & WixCustomTableColumnSymbolAttributes.Unreal) == WixCustomTableColumnSymbolAttributes.Unreal; } } diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index b0d12a63..af731443 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -2,53 +2,53 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixCustomTable = new IntermediateTupleDefinition( - TupleDefinitionType.WixCustomTable, + public static readonly IntermediateSymbolDefinition WixCustomTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTable, new[] { - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.ColumnNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.Unreal), IntermediateFieldType.Bool), }, - typeof(WixCustomTableTuple)); + typeof(WixCustomTableSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixCustomTableTupleFields + public enum WixCustomTableSymbolFields { ColumnNames, Unreal, } - public class WixCustomTableTuple : IntermediateTuple + public class WixCustomTableSymbol : IntermediateSymbol { public const char ColumnNamesSeparator = '\x85'; - public WixCustomTableTuple() : base(TupleDefinitions.WixCustomTable, null, null) + public WixCustomTableSymbol() : base(SymbolDefinitions.WixCustomTable, null, null) { } - public WixCustomTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTable, sourceLineNumber, id) + public WixCustomTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTable, sourceLineNumber, id) { } - public IntermediateField this[WixCustomTableTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixCustomTableSymbolFields index] => this.Fields[(int)index]; public string ColumnNames { - get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnNames]; - set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); + get => (string)this.Fields[(int)WixCustomTableSymbolFields.ColumnNames]; + set => this.Set((int)WixCustomTableSymbolFields.ColumnNames, value); } public bool Unreal { - get => (bool)this.Fields[(int)WixCustomTableTupleFields.Unreal]; - set => this.Set((int)WixCustomTableTupleFields.Unreal, value); + get => (bool)this.Fields[(int)WixCustomTableSymbolFields.Unreal]; + set => this.Set((int)WixCustomTableSymbolFields.Unreal, value); } public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs index 4f90bb7c..77203b03 100644 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixDeltaPatchFile = new IntermediateTupleDefinition( - TupleDefinitionType.WixDeltaPatchFile, + public static readonly IntermediateSymbolDefinition WixDeltaPatchFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDeltaPatchFile, new[] { - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.SymbolPaths), IntermediateFieldType.String), }, - typeof(WixDeltaPatchFileTuple)); + typeof(WixDeltaPatchFileSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixDeltaPatchFileTupleFields + public enum WixDeltaPatchFileSymbolFields { FileRef, RetainLengths, @@ -33,52 +33,52 @@ namespace WixToolset.Data.Tuples SymbolPaths, } - public class WixDeltaPatchFileTuple : IntermediateTuple + public class WixDeltaPatchFileSymbol : IntermediateSymbol { - public WixDeltaPatchFileTuple() : base(TupleDefinitions.WixDeltaPatchFile, null, null) + public WixDeltaPatchFileSymbol() : base(SymbolDefinitions.WixDeltaPatchFile, null, null) { } - public WixDeltaPatchFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchFile, sourceLineNumber, id) + public WixDeltaPatchFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchFile, sourceLineNumber, id) { } - public IntermediateField this[WixDeltaPatchFileTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixDeltaPatchFileSymbolFields index] => this.Fields[(int)index]; public string FileRef { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.FileRef]; - set => this.Set((int)WixDeltaPatchFileTupleFields.FileRef, value); + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.FileRef]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.FileRef, value); } public string RetainLengths { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]; - set => this.Set((int)WixDeltaPatchFileTupleFields.RetainLengths, value); + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainLengths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainLengths, value); } public string IgnoreOffsets { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreOffsets]; - set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreOffsets, value); + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreOffsets]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreOffsets, value); } public string IgnoreLengths { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreLengths]; - set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreLengths, value); + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreLengths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreLengths, value); } public string RetainOffsets { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainOffsets]; - set => this.Set((int)WixDeltaPatchFileTupleFields.RetainOffsets, value); + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainOffsets]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainOffsets, value); } public string SymbolPaths { - get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.SymbolPaths]; - set => this.Set((int)WixDeltaPatchFileTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.SymbolPaths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.SymbolPaths, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs index 29acf111..6e50d07f 100644 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs @@ -4,25 +4,25 @@ using System; namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixDeltaPatchSymbolPaths = new IntermediateTupleDefinition( - TupleDefinitionType.WixDeltaPatchSymbolPaths, + public static readonly IntermediateSymbolDefinition WixDeltaPatchSymbolPaths = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDeltaPatchSymbolPaths, new[] { - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths), IntermediateFieldType.String), }, - typeof(WixDeltaPatchSymbolPathsTuple)); + typeof(WixDeltaPatchSymbolPathsSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixDeltaPatchSymbolPathsTupleFields + public enum WixDeltaPatchSymbolPathsSymbolFields { SymbolType, SymbolId, @@ -42,34 +42,34 @@ namespace WixToolset.Data.Tuples Product }; - public class WixDeltaPatchSymbolPathsTuple : IntermediateTuple + public class WixDeltaPatchSymbolPathsSymbol : IntermediateSymbol { - public WixDeltaPatchSymbolPathsTuple() : base(TupleDefinitions.WixDeltaPatchSymbolPaths, null, null) + public WixDeltaPatchSymbolPathsSymbol() : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, null, null) { } - public WixDeltaPatchSymbolPathsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) + public WixDeltaPatchSymbolPathsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) { } - public IntermediateField this[WixDeltaPatchSymbolPathsTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixDeltaPatchSymbolPathsSymbolFields index] => this.Fields[(int)index]; public SymbolPathType SymbolType { - get => (SymbolPathType)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolType].AsNumber(); - set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolType, (int)value); + get => (SymbolPathType)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType].AsNumber(); + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType, (int)value); } public string SymbolId { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolId]; - set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolId, value); + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId]; + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId, value); } public string SymbolPaths { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths]; - set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths, value); + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths]; + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs b/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs index 1953594e..3ede1097 100644 --- a/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs +++ b/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixDependencyProvider = new IntermediateTupleDefinition( - TupleDefinitionType.WixDependencyProvider.ToString(), + public static readonly IntermediateSymbolDefinition WixDependencyProvider = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDependencyProvider.ToString(), new[] { - new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.ProviderKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixDependencyProviderTuple)); + typeof(WixDependencyProviderSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; using WixToolset.Data; - public enum WixDependencyProviderTupleFields + public enum WixDependencyProviderSymbolFields { ComponentRef, ProviderKey, @@ -40,46 +40,46 @@ namespace WixToolset.Data.Tuples ProvidesAttributesBundle = 0x10000 } - public class WixDependencyProviderTuple : IntermediateTuple + public class WixDependencyProviderSymbol : IntermediateSymbol { - public WixDependencyProviderTuple() : base(TupleDefinitions.WixDependencyProvider, null, null) + public WixDependencyProviderSymbol() : base(SymbolDefinitions.WixDependencyProvider, null, null) { } - public WixDependencyProviderTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDependencyProvider, sourceLineNumber, id) + public WixDependencyProviderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyProvider, sourceLineNumber, id) { } - public IntermediateField this[WixDependencyProviderTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => this.Fields[(int)WixDependencyProviderTupleFields.ComponentRef].AsString(); - set => this.Set((int)WixDependencyProviderTupleFields.ComponentRef, value); + get => this.Fields[(int)WixDependencyProviderSymbolFields.ComponentRef].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.ComponentRef, value); } public string ProviderKey { - get => this.Fields[(int)WixDependencyProviderTupleFields.ProviderKey].AsString(); - set => this.Set((int)WixDependencyProviderTupleFields.ProviderKey, value); + get => this.Fields[(int)WixDependencyProviderSymbolFields.ProviderKey].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.ProviderKey, value); } public string Version { - get => this.Fields[(int)WixDependencyProviderTupleFields.Version].AsString(); - set => this.Set((int)WixDependencyProviderTupleFields.Version, value); + get => this.Fields[(int)WixDependencyProviderSymbolFields.Version].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.Version, value); } public string DisplayName { - get => this.Fields[(int)WixDependencyProviderTupleFields.DisplayName].AsString(); - set => this.Set((int)WixDependencyProviderTupleFields.DisplayName, value); + get => this.Fields[(int)WixDependencyProviderSymbolFields.DisplayName].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.DisplayName, value); } public WixDependencyProviderAttributes Attributes { - get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderTupleFields.Attributes]; - set => this.Set((int)WixDependencyProviderTupleFields.Attributes, (int)value); + get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderSymbolFields.Attributes]; + set => this.Set((int)WixDependencyProviderSymbolFields.Attributes, (int)value); } public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle; diff --git a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs index cd47c0fd..d13063b7 100644 --- a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixEnsureTable = new IntermediateTupleDefinition( - TupleDefinitionType.WixEnsureTable, + public static readonly IntermediateSymbolDefinition WixEnsureTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixEnsureTable, new[] { - new IntermediateFieldDefinition(nameof(WixEnsureTableTupleFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixEnsureTableSymbolFields.Table), IntermediateFieldType.String), }, - typeof(WixEnsureTableTuple)); + typeof(WixEnsureTableSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixEnsureTableTupleFields + public enum WixEnsureTableSymbolFields { Table, } - public class WixEnsureTableTuple : IntermediateTuple + public class WixEnsureTableSymbol : IntermediateSymbol { - public WixEnsureTableTuple() : base(TupleDefinitions.WixEnsureTable, null, null) + public WixEnsureTableSymbol() : base(SymbolDefinitions.WixEnsureTable, null, null) { } - public WixEnsureTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixEnsureTable, sourceLineNumber, id) + public WixEnsureTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixEnsureTable, sourceLineNumber, id) { } - public IntermediateField this[WixEnsureTableTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixEnsureTableSymbolFields index] => this.Fields[(int)index]; public string Table { - get => (string)this.Fields[(int)WixEnsureTableTupleFields.Table]; - set => this.Set((int)WixEnsureTableTupleFields.Table, value); + get => (string)this.Fields[(int)WixEnsureTableSymbolFields.Table]; + set => this.Set((int)WixEnsureTableSymbolFields.Table, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs index 481bb193..ac002bb6 100644 --- a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixFeatureGroup = new IntermediateTupleDefinition( - TupleDefinitionType.WixFeatureGroup, + public static readonly IntermediateSymbolDefinition WixFeatureGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFeatureGroup, new IntermediateFieldDefinition[] { }, - typeof(WixFeatureGroupTuple)); + typeof(WixFeatureGroupSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixFeatureGroupTupleFields + public enum WixFeatureGroupSymbolFields { } - public class WixFeatureGroupTuple : IntermediateTuple + public class WixFeatureGroupSymbol : IntermediateSymbol { - public WixFeatureGroupTuple() : base(TupleDefinitions.WixFeatureGroup, null, null) + public WixFeatureGroupSymbol() : base(SymbolDefinitions.WixFeatureGroup, null, null) { } - public WixFeatureGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFeatureGroup, sourceLineNumber, id) + public WixFeatureGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureGroup, sourceLineNumber, id) { } - public IntermediateField this[WixFeatureGroupTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixFeatureGroupSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs index cce7d190..b8b3d4b9 100644 --- a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixFeatureModules = new IntermediateTupleDefinition( - TupleDefinitionType.WixFeatureModules, + public static readonly IntermediateSymbolDefinition WixFeatureModules = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFeatureModules, new[] { - new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.WixMergeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.WixMergeRef), IntermediateFieldType.String), }, - typeof(WixFeatureModulesTuple)); + typeof(WixFeatureModulesSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixFeatureModulesTupleFields + public enum WixFeatureModulesSymbolFields { FeatureRef, WixMergeRef, } - public class WixFeatureModulesTuple : IntermediateTuple + public class WixFeatureModulesSymbol : IntermediateSymbol { - public WixFeatureModulesTuple() : base(TupleDefinitions.WixFeatureModules, null, null) + public WixFeatureModulesSymbol() : base(SymbolDefinitions.WixFeatureModules, null, null) { } - public WixFeatureModulesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFeatureModules, sourceLineNumber, id) + public WixFeatureModulesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureModules, sourceLineNumber, id) { } - public IntermediateField this[WixFeatureModulesTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixFeatureModulesSymbolFields index] => this.Fields[(int)index]; public string FeatureRef { - get => (string)this.Fields[(int)WixFeatureModulesTupleFields.FeatureRef]; - set => this.Set((int)WixFeatureModulesTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.FeatureRef]; + set => this.Set((int)WixFeatureModulesSymbolFields.FeatureRef, value); } public string WixMergeRef { - get => (string)this.Fields[(int)WixFeatureModulesTupleFields.WixMergeRef]; - set => this.Set((int)WixFeatureModulesTupleFields.WixMergeRef, value); + get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.WixMergeRef]; + set => this.Set((int)WixFeatureModulesSymbolFields.WixMergeRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs index 033aca21..027605c7 100644 --- a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs @@ -2,33 +2,33 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixFileSearch = new IntermediateTupleDefinition( - TupleDefinitionType.WixFileSearch, + public static readonly IntermediateSymbolDefinition WixFileSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFileSearch, new[] { - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Path), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Languages), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixFileSearchTuple)); + typeof(WixFileSearchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixFileSearchTupleFields + public enum WixFileSearchSymbolFields { Path, MinVersion, @@ -56,70 +56,70 @@ namespace WixToolset.Data.Tuples IsDirectory = 0x200, } - public class WixFileSearchTuple : IntermediateTuple + public class WixFileSearchSymbol : IntermediateSymbol { - public WixFileSearchTuple() : base(TupleDefinitions.WixFileSearch, null, null) + public WixFileSearchSymbol() : base(SymbolDefinitions.WixFileSearch, null, null) { } - public WixFileSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFileSearch, sourceLineNumber, id) + public WixFileSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFileSearch, sourceLineNumber, id) { } - public IntermediateField this[WixFileSearchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixFileSearchSymbolFields index] => this.Fields[(int)index]; public string Path { - get => (string)this.Fields[(int)WixFileSearchTupleFields.Path]; - set => this.Set((int)WixFileSearchTupleFields.Path, value); + get => (string)this.Fields[(int)WixFileSearchSymbolFields.Path]; + set => this.Set((int)WixFileSearchSymbolFields.Path, value); } public string MinVersion { - get => (string)this.Fields[(int)WixFileSearchTupleFields.MinVersion]; - set => this.Set((int)WixFileSearchTupleFields.MinVersion, value); + get => (string)this.Fields[(int)WixFileSearchSymbolFields.MinVersion]; + set => this.Set((int)WixFileSearchSymbolFields.MinVersion, value); } public string MaxVersion { - get => (string)this.Fields[(int)WixFileSearchTupleFields.MaxVersion]; - set => this.Set((int)WixFileSearchTupleFields.MaxVersion, value); + get => (string)this.Fields[(int)WixFileSearchSymbolFields.MaxVersion]; + set => this.Set((int)WixFileSearchSymbolFields.MaxVersion, value); } public int? MinSize { - get => (int?)this.Fields[(int)WixFileSearchTupleFields.MinSize]; - set => this.Set((int)WixFileSearchTupleFields.MinSize, value); + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinSize]; + set => this.Set((int)WixFileSearchSymbolFields.MinSize, value); } public int? MaxSize { - get => (int?)this.Fields[(int)WixFileSearchTupleFields.MaxSize]; - set => this.Set((int)WixFileSearchTupleFields.MaxSize, value); + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxSize]; + set => this.Set((int)WixFileSearchSymbolFields.MaxSize, value); } public int? MinDate { - get => (int?)this.Fields[(int)WixFileSearchTupleFields.MinDate]; - set => this.Set((int)WixFileSearchTupleFields.MinDate, value); + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinDate]; + set => this.Set((int)WixFileSearchSymbolFields.MinDate, value); } public int? MaxDate { - get => (int?)this.Fields[(int)WixFileSearchTupleFields.MaxDate]; - set => this.Set((int)WixFileSearchTupleFields.MaxDate, value); + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxDate]; + set => this.Set((int)WixFileSearchSymbolFields.MaxDate, value); } public string Languages { - get => (string)this.Fields[(int)WixFileSearchTupleFields.Languages]; - set => this.Set((int)WixFileSearchTupleFields.Languages, value); + get => (string)this.Fields[(int)WixFileSearchSymbolFields.Languages]; + set => this.Set((int)WixFileSearchSymbolFields.Languages, value); } public WixFileSearchAttributes Attributes { - get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixFileSearchTupleFields.Attributes, (int)value); + get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixFileSearchSymbolFields.Attributes, (int)value); } } } diff --git a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs index cda7534d..9c31b79c 100644 --- a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs +++ b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixFragment = new IntermediateTupleDefinition( - TupleDefinitionType.WixFragment, + public static readonly IntermediateSymbolDefinition WixFragment = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFragment, new IntermediateFieldDefinition[] { }, - typeof(WixFragmentTuple)); + typeof(WixFragmentSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixFragmentTupleFields + public enum WixFragmentSymbolFields { } - public class WixFragmentTuple : IntermediateTuple + public class WixFragmentSymbol : IntermediateSymbol { - public WixFragmentTuple() : base(TupleDefinitions.WixFragment, null, null) + public WixFragmentSymbol() : base(SymbolDefinitions.WixFragment, null, null) { } - public WixFragmentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFragment, sourceLineNumber, id) + public WixFragmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFragment, sourceLineNumber, id) { } - public IntermediateField this[WixFragmentTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixFragmentSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixGroupTuple.cs b/src/WixToolset.Data/Tuples/WixGroupTuple.cs index f6487d55..b9720890 100644 --- a/src/WixToolset.Data/Tuples/WixGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixGroupTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixGroup = new IntermediateTupleDefinition( - TupleDefinitionType.WixGroup, + public static readonly IntermediateSymbolDefinition WixGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixGroup, new[] { - new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ParentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ParentType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ChildId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ChildType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildType), IntermediateFieldType.String), }, - typeof(WixGroupTuple)); + typeof(WixGroupSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixGroupTupleFields + public enum WixGroupSymbolFields { ParentId, ParentType, @@ -31,40 +31,40 @@ namespace WixToolset.Data.Tuples ChildType, } - public class WixGroupTuple : IntermediateTuple + public class WixGroupSymbol : IntermediateSymbol { - public WixGroupTuple() : base(TupleDefinitions.WixGroup, null, null) + public WixGroupSymbol() : base(SymbolDefinitions.WixGroup, null, null) { } - public WixGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixGroup, sourceLineNumber, id) + public WixGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixGroup, sourceLineNumber, id) { } - public IntermediateField this[WixGroupTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixGroupSymbolFields index] => this.Fields[(int)index]; public string ParentId { - get => (string)this.Fields[(int)WixGroupTupleFields.ParentId]; - set => this.Set((int)WixGroupTupleFields.ParentId, value); + get => (string)this.Fields[(int)WixGroupSymbolFields.ParentId]; + set => this.Set((int)WixGroupSymbolFields.ParentId, value); } public ComplexReferenceParentType ParentType { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupTupleFields.ParentType], true); - set => this.Set((int)WixGroupTupleFields.ParentType, value.ToString()); + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupSymbolFields.ParentType], true); + set => this.Set((int)WixGroupSymbolFields.ParentType, value.ToString()); } public string ChildId { - get => (string)this.Fields[(int)WixGroupTupleFields.ChildId]; - set => this.Set((int)WixGroupTupleFields.ChildId, value); + get => (string)this.Fields[(int)WixGroupSymbolFields.ChildId]; + set => this.Set((int)WixGroupSymbolFields.ChildId, value); } public ComplexReferenceChildType ChildType { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupTupleFields.ChildType], true); - set => this.Set((int)WixGroupTupleFields.ChildType, value.ToString()); + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupSymbolFields.ChildType], true); + set => this.Set((int)WixGroupSymbolFields.ChildType, value.ToString()); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs index c7530abf..c9e4470c 100644 --- a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs +++ b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixInstanceComponent = new IntermediateTupleDefinition( - TupleDefinitionType.WixInstanceComponent, + public static readonly IntermediateSymbolDefinition WixInstanceComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixInstanceComponent, new[] { - new IntermediateFieldDefinition(nameof(WixInstanceComponentTupleFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceComponentSymbolFields.ComponentRef), IntermediateFieldType.String), }, - typeof(WixInstanceComponentTuple)); + typeof(WixInstanceComponentSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixInstanceComponentTupleFields + public enum WixInstanceComponentSymbolFields { ComponentRef, } - public class WixInstanceComponentTuple : IntermediateTuple + public class WixInstanceComponentSymbol : IntermediateSymbol { - public WixInstanceComponentTuple() : base(TupleDefinitions.WixInstanceComponent, null, null) + public WixInstanceComponentSymbol() : base(SymbolDefinitions.WixInstanceComponent, null, null) { } - public WixInstanceComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixInstanceComponent, sourceLineNumber, id) + public WixInstanceComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceComponent, sourceLineNumber, id) { } - public IntermediateField this[WixInstanceComponentTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixInstanceComponentSymbolFields index] => this.Fields[(int)index]; public string ComponentRef { - get => (string)this.Fields[(int)WixInstanceComponentTupleFields.ComponentRef]; - set => this.Set((int)WixInstanceComponentTupleFields.ComponentRef, value); + get => (string)this.Fields[(int)WixInstanceComponentSymbolFields.ComponentRef]; + set => this.Set((int)WixInstanceComponentSymbolFields.ComponentRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs index efcaa7b9..3a58cb31 100644 --- a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs +++ b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixInstanceTransforms = new IntermediateTupleDefinition( - TupleDefinitionType.WixInstanceTransforms, + public static readonly IntermediateSymbolDefinition WixInstanceTransforms = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixInstanceTransforms, new[] { - new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.PropertyId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.PropertyId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.UpgradeCode), IntermediateFieldType.String), }, - typeof(WixInstanceTransformsTuple)); + typeof(WixInstanceTransformsSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixInstanceTransformsTupleFields + public enum WixInstanceTransformsSymbolFields { PropertyId, ProductCode, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples UpgradeCode, } - public class WixInstanceTransformsTuple : IntermediateTuple + public class WixInstanceTransformsSymbol : IntermediateSymbol { - public WixInstanceTransformsTuple() : base(TupleDefinitions.WixInstanceTransforms, null, null) + public WixInstanceTransformsSymbol() : base(SymbolDefinitions.WixInstanceTransforms, null, null) { } - public WixInstanceTransformsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixInstanceTransforms, sourceLineNumber, id) + public WixInstanceTransformsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceTransforms, sourceLineNumber, id) { } - public IntermediateField this[WixInstanceTransformsTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixInstanceTransformsSymbolFields index] => this.Fields[(int)index]; public string PropertyId { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.PropertyId]; - set => this.Set((int)WixInstanceTransformsTupleFields.PropertyId, value); + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.PropertyId]; + set => this.Set((int)WixInstanceTransformsSymbolFields.PropertyId, value); } public string ProductCode { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductCode]; - set => this.Set((int)WixInstanceTransformsTupleFields.ProductCode, value); + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductCode]; + set => this.Set((int)WixInstanceTransformsSymbolFields.ProductCode, value); } public string ProductName { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductName]; - set => this.Set((int)WixInstanceTransformsTupleFields.ProductName, value); + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductName]; + set => this.Set((int)WixInstanceTransformsSymbolFields.ProductName, value); } public string UpgradeCode { - get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.UpgradeCode]; - set => this.Set((int)WixInstanceTransformsTupleFields.UpgradeCode, value); + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.UpgradeCode]; + set => this.Set((int)WixInstanceTransformsSymbolFields.UpgradeCode, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs index c0cc13ac..28695b3e 100644 --- a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs @@ -2,30 +2,30 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixMediaTemplate = new IntermediateTupleDefinition( - TupleDefinitionType.WixMediaTemplate, + public static readonly IntermediateSymbolDefinition WixMediaTemplate = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixMediaTemplate, new[] { - new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CabinetTemplate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CompressionLevel), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.VolumeLabel), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CabinetTemplate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), }, - typeof(WixMediaTemplateTuple)); + typeof(WixMediaTemplateSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixMediaTemplateTupleFields + public enum WixMediaTemplateSymbolFields { CabinetTemplate, CompressionLevel, @@ -35,52 +35,52 @@ namespace WixToolset.Data.Tuples MaximumCabinetSizeForLargeFileSplitting, } - public class WixMediaTemplateTuple : IntermediateTuple + public class WixMediaTemplateSymbol : IntermediateSymbol { - public WixMediaTemplateTuple() : base(TupleDefinitions.WixMediaTemplate, null, null) + public WixMediaTemplateSymbol() : base(SymbolDefinitions.WixMediaTemplate, null, null) { } - public WixMediaTemplateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMediaTemplate, sourceLineNumber, id) + public WixMediaTemplateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMediaTemplate, sourceLineNumber, id) { } - public IntermediateField this[WixMediaTemplateTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixMediaTemplateSymbolFields index] => this.Fields[(int)index]; public string CabinetTemplate { - get => (string)this.Fields[(int)WixMediaTemplateTupleFields.CabinetTemplate]; - set => this.Set((int)WixMediaTemplateTupleFields.CabinetTemplate, value); + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.CabinetTemplate]; + set => this.Set((int)WixMediaTemplateSymbolFields.CabinetTemplate, value); } public CompressionLevel? CompressionLevel { - get => (CompressionLevel?)this.Fields[(int)WixMediaTemplateTupleFields.CompressionLevel].AsNullableNumber(); - set => this.Set((int)WixMediaTemplateTupleFields.CompressionLevel, (int?)value); + get => (CompressionLevel?)this.Fields[(int)WixMediaTemplateSymbolFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)WixMediaTemplateSymbolFields.CompressionLevel, (int?)value); } public string DiskPrompt { - get => (string)this.Fields[(int)WixMediaTemplateTupleFields.DiskPrompt]; - set => this.Set((int)WixMediaTemplateTupleFields.DiskPrompt, value); + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.DiskPrompt]; + set => this.Set((int)WixMediaTemplateSymbolFields.DiskPrompt, value); } public string VolumeLabel { - get => (string)this.Fields[(int)WixMediaTemplateTupleFields.VolumeLabel]; - set => this.Set((int)WixMediaTemplateTupleFields.VolumeLabel, value); + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.VolumeLabel]; + set => this.Set((int)WixMediaTemplateSymbolFields.VolumeLabel, value); } public int? MaximumUncompressedMediaSize { - get => (int?)this.Fields[(int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize]; - set => this.Set((int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize, value); + get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize]; + set => this.Set((int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize, value); } public int? MaximumCabinetSizeForLargeFileSplitting { - get => (int?)this.Fields[(int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting]; - set => this.Set((int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting, value); + get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting]; + set => this.Set((int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs index daa0649f..d066fa8e 100644 --- a/src/WixToolset.Data/Tuples/WixMergeTuple.cs +++ b/src/WixToolset.Data/Tuples/WixMergeTuple.cs @@ -2,29 +2,29 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixMerge = new IntermediateTupleDefinition( - TupleDefinitionType.WixMerge, + public static readonly IntermediateSymbolDefinition WixMerge = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixMerge, new[] { - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.SourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FileAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.ConfigurationData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FileAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.ConfigurationData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FeatureRef), IntermediateFieldType.String), }, - typeof(WixMergeTuple)); + typeof(WixMergeSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixMergeTupleFields + public enum WixMergeSymbolFields { Language, DirectoryRef, @@ -35,58 +35,58 @@ namespace WixToolset.Data.Tuples FeatureRef, } - public class WixMergeTuple : IntermediateTuple + public class WixMergeSymbol : IntermediateSymbol { - public WixMergeTuple() : base(TupleDefinitions.WixMerge, null, null) + public WixMergeSymbol() : base(SymbolDefinitions.WixMerge, null, null) { } - public WixMergeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMerge, sourceLineNumber, id) + public WixMergeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMerge, sourceLineNumber, id) { } - public IntermediateField this[WixMergeTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixMergeSymbolFields index] => this.Fields[(int)index]; public int Language { - get => (int)this.Fields[(int)WixMergeTupleFields.Language]; - set => this.Set((int)WixMergeTupleFields.Language, value); + get => (int)this.Fields[(int)WixMergeSymbolFields.Language]; + set => this.Set((int)WixMergeSymbolFields.Language, value); } public string DirectoryRef { - get => (string)this.Fields[(int)WixMergeTupleFields.DirectoryRef]; - set => this.Set((int)WixMergeTupleFields.DirectoryRef, value); + get => (string)this.Fields[(int)WixMergeSymbolFields.DirectoryRef]; + set => this.Set((int)WixMergeSymbolFields.DirectoryRef, value); } public string SourceFile { - get => (string)this.Fields[(int)WixMergeTupleFields.SourceFile]; - set => this.Set((int)WixMergeTupleFields.SourceFile, value); + get => (string)this.Fields[(int)WixMergeSymbolFields.SourceFile]; + set => this.Set((int)WixMergeSymbolFields.SourceFile, value); } public int DiskId { - get => (int)this.Fields[(int)WixMergeTupleFields.DiskId]; - set => this.Set((int)WixMergeTupleFields.DiskId, value); + get => (int)this.Fields[(int)WixMergeSymbolFields.DiskId]; + set => this.Set((int)WixMergeSymbolFields.DiskId, value); } - public FileTupleAttributes FileAttributes + public FileSymbolAttributes FileAttributes { - get => (FileTupleAttributes)this.Fields[(int)WixMergeTupleFields.FileAttributes].AsNumber(); - set => this.Set((int)WixMergeTupleFields.FileAttributes, (int)value); + get => (FileSymbolAttributes)this.Fields[(int)WixMergeSymbolFields.FileAttributes].AsNumber(); + set => this.Set((int)WixMergeSymbolFields.FileAttributes, (int)value); } public string ConfigurationData { - get => (string)this.Fields[(int)WixMergeTupleFields.ConfigurationData]; - set => this.Set((int)WixMergeTupleFields.ConfigurationData, value); + get => (string)this.Fields[(int)WixMergeSymbolFields.ConfigurationData]; + set => this.Set((int)WixMergeSymbolFields.ConfigurationData, value); } public string FeatureRef { - get => (string)this.Fields[(int)WixMergeTupleFields.FeatureRef]; - set => this.Set((int)WixMergeTupleFields.FeatureRef, value); + get => (string)this.Fields[(int)WixMergeSymbolFields.FeatureRef]; + set => this.Set((int)WixMergeSymbolFields.FeatureRef, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs index 8d9df513..5e6dc980 100644 --- a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs +++ b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixOrdering = new IntermediateTupleDefinition( - TupleDefinitionType.WixOrdering, + public static readonly IntermediateSymbolDefinition WixOrdering = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixOrdering, new[] { - new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnIdRef), IntermediateFieldType.String), }, - typeof(WixOrderingTuple)); + typeof(WixOrderingSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixOrderingTupleFields + public enum WixOrderingSymbolFields { ItemType, ItemIdRef, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples DependsOnIdRef, } - public class WixOrderingTuple : IntermediateTuple + public class WixOrderingSymbol : IntermediateSymbol { - public WixOrderingTuple() : base(TupleDefinitions.WixOrdering, null, null) + public WixOrderingSymbol() : base(SymbolDefinitions.WixOrdering, null, null) { } - public WixOrderingTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixOrdering, sourceLineNumber, id) + public WixOrderingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixOrdering, sourceLineNumber, id) { } - public IntermediateField this[WixOrderingTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixOrderingSymbolFields index] => this.Fields[(int)index]; public ComplexReferenceChildType ItemType { - get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingTupleFields.ItemType].AsNumber(); - set => this.Set((int)WixOrderingTupleFields.ItemType, (int)value); + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.ItemType].AsNumber(); + set => this.Set((int)WixOrderingSymbolFields.ItemType, (int)value); } public string ItemIdRef { - get => (string)this.Fields[(int)WixOrderingTupleFields.ItemIdRef]; - set => this.Set((int)WixOrderingTupleFields.ItemIdRef, value); + get => (string)this.Fields[(int)WixOrderingSymbolFields.ItemIdRef]; + set => this.Set((int)WixOrderingSymbolFields.ItemIdRef, value); } public ComplexReferenceChildType DependsOnType { - get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingTupleFields.DependsOnType].AsNumber(); - set => this.Set((int)WixOrderingTupleFields.DependsOnType, (int)value); + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.DependsOnType].AsNumber(); + set => this.Set((int)WixOrderingSymbolFields.DependsOnType, (int)value); } public string DependsOnIdRef { - get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnIdRef]; - set => this.Set((int)WixOrderingTupleFields.DependsOnIdRef, value); + get => (string)this.Fields[(int)WixOrderingSymbolFields.DependsOnIdRef]; + set => this.Set((int)WixOrderingSymbolFields.DependsOnIdRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs index 7358e66e..d7295424 100644 --- a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixPatchBaseline = new IntermediateTupleDefinition( - TupleDefinitionType.WixPatchBaseline, + public static readonly IntermediateSymbolDefinition WixPatchBaseline = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchBaseline, new[] { - new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.ValidationFlags), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.BaselineFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.UpdateFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.TransformFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.ValidationFlags), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.BaselineFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.UpdateFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.TransformFile), IntermediateFieldType.Path), }, - typeof(WixPatchBaselineTuple)); + typeof(WixPatchBaselineSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixPatchBaselineTupleFields + public enum WixPatchBaselineSymbolFields { DiskId, ValidationFlags, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples TransformFile, } - public class WixPatchBaselineTuple : IntermediateTuple + public class WixPatchBaselineSymbol : IntermediateSymbol { - public WixPatchBaselineTuple() : base(TupleDefinitions.WixPatchBaseline, null, null) + public WixPatchBaselineSymbol() : base(SymbolDefinitions.WixPatchBaseline, null, null) { } - public WixPatchBaselineTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchBaseline, sourceLineNumber, id) + public WixPatchBaselineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchBaseline, sourceLineNumber, id) { } - public IntermediateField this[WixPatchBaselineTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixPatchBaselineSymbolFields index] => this.Fields[(int)index]; public int DiskId { - get => (int)this.Fields[(int)WixPatchBaselineTupleFields.DiskId]; - set => this.Set((int)WixPatchBaselineTupleFields.DiskId, value); + get => (int)this.Fields[(int)WixPatchBaselineSymbolFields.DiskId]; + set => this.Set((int)WixPatchBaselineSymbolFields.DiskId, value); } public TransformFlags ValidationFlags { - get => (TransformFlags)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags].AsNumber(); - set => this.Set((int)WixPatchBaselineTupleFields.ValidationFlags, (int)value); + get => (TransformFlags)this.Fields[(int)WixPatchBaselineSymbolFields.ValidationFlags].AsNumber(); + set => this.Set((int)WixPatchBaselineSymbolFields.ValidationFlags, (int)value); } public IntermediateFieldPathValue BaselineFile { - get => this.Fields[(int)WixPatchBaselineTupleFields.BaselineFile].AsPath(); - set => this.Set((int)WixPatchBaselineTupleFields.BaselineFile, value); + get => this.Fields[(int)WixPatchBaselineSymbolFields.BaselineFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.BaselineFile, value); } public IntermediateFieldPathValue UpdateFile { - get => this.Fields[(int)WixPatchBaselineTupleFields.UpdateFile].AsPath(); - set => this.Set((int)WixPatchBaselineTupleFields.UpdateFile, value); + get => this.Fields[(int)WixPatchBaselineSymbolFields.UpdateFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.UpdateFile, value); } public IntermediateFieldPathValue TransformFile { - get => this.Fields[(int)WixPatchBaselineTupleFields.TransformFile].AsPath(); - set => this.Set((int)WixPatchBaselineTupleFields.TransformFile, value); + get => this.Fields[(int)WixPatchBaselineSymbolFields.TransformFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.TransformFile, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs index d6df55bd..3ab34f1f 100644 --- a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixPatchFamilyGroup = new IntermediateTupleDefinition( - TupleDefinitionType.WixPatchFamilyGroup, + public static readonly IntermediateSymbolDefinition WixPatchFamilyGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchFamilyGroup, new[] { - new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup), IntermediateFieldType.String), }, - typeof(WixPatchFamilyGroupTuple)); + typeof(WixPatchFamilyGroupSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixPatchFamilyGroupTupleFields + public enum WixPatchFamilyGroupSymbolFields { WixPatchFamilyGroup, } - public class WixPatchFamilyGroupTuple : IntermediateTuple + public class WixPatchFamilyGroupSymbol : IntermediateSymbol { - public WixPatchFamilyGroupTuple() : base(TupleDefinitions.WixPatchFamilyGroup, null, null) + public WixPatchFamilyGroupSymbol() : base(SymbolDefinitions.WixPatchFamilyGroup, null, null) { } - public WixPatchFamilyGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) + public WixPatchFamilyGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) { } - public IntermediateField this[WixPatchFamilyGroupTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixPatchFamilyGroupSymbolFields index] => this.Fields[(int)index]; public string WixPatchFamilyGroup { - get => (string)this.Fields[(int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup]; - set => this.Set((int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup, value); + get => (string)this.Fields[(int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup]; + set => this.Set((int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs index 6e6fb2ae..c4f4324d 100644 --- a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixPatchId = new IntermediateTupleDefinition( - TupleDefinitionType.WixPatchId, + public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchId, new[] { - new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ClientPatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ClientPatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), }, - typeof(WixPatchIdTuple)); + typeof(WixPatchIdSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixPatchIdTupleFields + public enum WixPatchIdSymbolFields { ClientPatchId, OptimizePatchSizeForLargeFiles, ApiPatchingSymbolFlags, } - public class WixPatchIdTuple : IntermediateTuple + public class WixPatchIdSymbol : IntermediateSymbol { - public WixPatchIdTuple() : base(TupleDefinitions.WixPatchId, null, null) + public WixPatchIdSymbol() : base(SymbolDefinitions.WixPatchId, null, null) { } - public WixPatchIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchId, sourceLineNumber, id) + public WixPatchIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id) { } - public IntermediateField this[WixPatchIdTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixPatchIdSymbolFields index] => this.Fields[(int)index]; public string ClientPatchId { - get => (string)this.Fields[(int)WixPatchIdTupleFields.ClientPatchId]; - set => this.Set((int)WixPatchIdTupleFields.ClientPatchId, value); + get => (string)this.Fields[(int)WixPatchIdSymbolFields.ClientPatchId]; + set => this.Set((int)WixPatchIdSymbolFields.ClientPatchId, value); } public bool? OptimizePatchSizeForLargeFiles { - get => (bool?)this.Fields[(int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles]; - set => this.Set((int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles, value); + get => (bool?)this.Fields[(int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles]; + set => this.Set((int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles, value); } public int? ApiPatchingSymbolFlags { - get => (int?)this.Fields[(int)WixPatchIdTupleFields.ApiPatchingSymbolFlags]; - set => this.Set((int)WixPatchIdTupleFields.ApiPatchingSymbolFlags, value); + get => (int?)this.Fields[(int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags]; + set => this.Set((int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs index fa357566..66257d84 100644 --- a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixPatchRef = new IntermediateTupleDefinition( - TupleDefinitionType.WixPatchRef, + public static readonly IntermediateSymbolDefinition WixPatchRef = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchRef, new[] { - new IntermediateFieldDefinition(nameof(WixPatchRefTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPatchRefTupleFields.PrimaryKeys), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.PrimaryKeys), IntermediateFieldType.String), }, - typeof(WixPatchRefTuple)); + typeof(WixPatchRefSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixPatchRefTupleFields + public enum WixPatchRefSymbolFields { Table, PrimaryKeys, } - public class WixPatchRefTuple : IntermediateTuple + public class WixPatchRefSymbol : IntermediateSymbol { - public WixPatchRefTuple() : base(TupleDefinitions.WixPatchRef, null, null) + public WixPatchRefSymbol() : base(SymbolDefinitions.WixPatchRef, null, null) { } - public WixPatchRefTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchRef, sourceLineNumber, id) + public WixPatchRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchRef, sourceLineNumber, id) { } - public IntermediateField this[WixPatchRefTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixPatchRefSymbolFields index] => this.Fields[(int)index]; public string Table { - get => (string)this.Fields[(int)WixPatchRefTupleFields.Table]; - set => this.Set((int)WixPatchRefTupleFields.Table, value); + get => (string)this.Fields[(int)WixPatchRefSymbolFields.Table]; + set => this.Set((int)WixPatchRefSymbolFields.Table, value); } public string PrimaryKeys { - get => (string)this.Fields[(int)WixPatchRefTupleFields.PrimaryKeys]; - set => this.Set((int)WixPatchRefTupleFields.PrimaryKeys, value); + get => (string)this.Fields[(int)WixPatchRefSymbolFields.PrimaryKeys]; + set => this.Set((int)WixPatchRefSymbolFields.PrimaryKeys, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs index c0d7a095..e8c01c26 100644 --- a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs @@ -2,43 +2,43 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixPatchTarget = new IntermediateTupleDefinition( - TupleDefinitionType.WixPatchTarget, + public static readonly IntermediateSymbolDefinition WixPatchTarget = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchTarget, new[] { - new IntermediateFieldDefinition(nameof(WixPatchTargetTupleFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchTargetSymbolFields.ProductCode), IntermediateFieldType.String), }, - typeof(WixPatchTargetTuple)); + typeof(WixPatchTargetSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixPatchTargetTupleFields + public enum WixPatchTargetSymbolFields { ProductCode, } - public class WixPatchTargetTuple : IntermediateTuple + public class WixPatchTargetSymbol : IntermediateSymbol { - public WixPatchTargetTuple() : base(TupleDefinitions.WixPatchTarget, null, null) + public WixPatchTargetSymbol() : base(SymbolDefinitions.WixPatchTarget, null, null) { } - public WixPatchTargetTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchTarget, sourceLineNumber, id) + public WixPatchTargetSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchTarget, sourceLineNumber, id) { } - public IntermediateField this[WixPatchTargetTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixPatchTargetSymbolFields index] => this.Fields[(int)index]; public string ProductCode { - get => (string)this.Fields[(int)WixPatchTargetTupleFields.ProductCode]; - set => this.Set((int)WixPatchTargetTupleFields.ProductCode, value); + get => (string)this.Fields[(int)WixPatchTargetSymbolFields.ProductCode]; + set => this.Set((int)WixPatchTargetSymbolFields.ProductCode, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs index 22e96365..f8a17b64 100644 --- a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixProductSearch = new IntermediateTupleDefinition( - TupleDefinitionType.WixProductSearch, + public static readonly IntermediateSymbolDefinition WixProductSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProductSearch, new[] { - new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Guid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixProductSearchTuple)); + typeof(WixProductSearchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixProductSearchTupleFields + public enum WixProductSearchSymbolFields { Guid, Attributes, @@ -37,28 +37,28 @@ namespace WixToolset.Data.Tuples UpgradeCode = 0x10, } - public class WixProductSearchTuple : IntermediateTuple + public class WixProductSearchSymbol : IntermediateSymbol { - public WixProductSearchTuple() : base(TupleDefinitions.WixProductSearch, null, null) + public WixProductSearchSymbol() : base(SymbolDefinitions.WixProductSearch, null, null) { } - public WixProductSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixProductSearch, sourceLineNumber, id) + public WixProductSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductSearch, sourceLineNumber, id) { } - public IntermediateField this[WixProductSearchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixProductSearchSymbolFields index] => this.Fields[(int)index]; public string Guid { - get => (string)this.Fields[(int)WixProductSearchTupleFields.Guid]; - set => this.Set((int)WixProductSearchTupleFields.Guid, value); + get => (string)this.Fields[(int)WixProductSearchSymbolFields.Guid]; + set => this.Set((int)WixProductSearchSymbolFields.Guid, value); } public WixProductSearchAttributes Attributes { - get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixProductSearchTupleFields.Attributes, (int)value); + get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixProductSearchSymbolFields.Attributes, (int)value); } } } diff --git a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs index abadd947..17cf59ce 100644 --- a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs +++ b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs @@ -2,26 +2,26 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixProperty = new IntermediateTupleDefinition( - TupleDefinitionType.WixProperty, + public static readonly IntermediateSymbolDefinition WixProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProperty, new[] { - new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.PropertyRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Admin), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Secure), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.PropertyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Admin), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Secure), IntermediateFieldType.Bool), }, - typeof(WixPropertyTuple)); + typeof(WixPropertySymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixPropertyTupleFields + public enum WixPropertySymbolFields { PropertyRef, Admin, @@ -29,40 +29,40 @@ namespace WixToolset.Data.Tuples Secure, } - public class WixPropertyTuple : IntermediateTuple + public class WixPropertySymbol : IntermediateSymbol { - public WixPropertyTuple() : base(TupleDefinitions.WixProperty, null, null) + public WixPropertySymbol() : base(SymbolDefinitions.WixProperty, null, null) { } - public WixPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixProperty, sourceLineNumber, id) + public WixPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProperty, sourceLineNumber, id) { } - public IntermediateField this[WixPropertyTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixPropertySymbolFields index] => this.Fields[(int)index]; public string PropertyRef { - get => (string)this.Fields[(int)WixPropertyTupleFields.PropertyRef]; - set => this.Set((int)WixPropertyTupleFields.PropertyRef, value); + get => (string)this.Fields[(int)WixPropertySymbolFields.PropertyRef]; + set => this.Set((int)WixPropertySymbolFields.PropertyRef, value); } public bool Admin { - get => (bool)this.Fields[(int)WixPropertyTupleFields.Admin]; - set => this.Set((int)WixPropertyTupleFields.Admin, value); + get => (bool)this.Fields[(int)WixPropertySymbolFields.Admin]; + set => this.Set((int)WixPropertySymbolFields.Admin, value); } public bool Hidden { - get => (bool)this.Fields[(int)WixPropertyTupleFields.Hidden]; - set => this.Set((int)WixPropertyTupleFields.Hidden, value); + get => (bool)this.Fields[(int)WixPropertySymbolFields.Hidden]; + set => this.Set((int)WixPropertySymbolFields.Hidden, value); } public bool Secure { - get => (bool)this.Fields[(int)WixPropertyTupleFields.Secure]; - set => this.Set((int)WixPropertyTupleFields.Secure, value); + get => (bool)this.Fields[(int)WixPropertySymbolFields.Secure]; + set => this.Set((int)WixPropertySymbolFields.Secure, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs index 6bf43a00..dffa8410 100644 --- a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs @@ -2,28 +2,28 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixRegistrySearch = new IntermediateTupleDefinition( - TupleDefinitionType.WixRegistrySearch, + public static readonly IntermediateSymbolDefinition WixRegistrySearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixRegistrySearch, new[] { - new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixRegistrySearchTuple)); + typeof(WixRegistrySearchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixRegistrySearchTupleFields + public enum WixRegistrySearchSymbolFields { Root, Key, @@ -42,40 +42,40 @@ namespace WixToolset.Data.Tuples Win64 = 0x20, } - public class WixRegistrySearchTuple : IntermediateTuple + public class WixRegistrySearchSymbol : IntermediateSymbol { - public WixRegistrySearchTuple() : base(TupleDefinitions.WixRegistrySearch, null, null) + public WixRegistrySearchSymbol() : base(SymbolDefinitions.WixRegistrySearch, null, null) { } - public WixRegistrySearchTuple(SourceLineNumber sourceLineNumber , Identifier id = null) : base(TupleDefinitions.WixRegistrySearch, sourceLineNumber, id) + public WixRegistrySearchSymbol(SourceLineNumber sourceLineNumber , Identifier id = null) : base(SymbolDefinitions.WixRegistrySearch, sourceLineNumber, id) { } - public IntermediateField this[WixRegistrySearchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixRegistrySearchSymbolFields index] => this.Fields[(int)index]; public RegistryRootType Root { - get => (RegistryRootType)this.Fields[(int)WixRegistrySearchTupleFields.Root].AsNumber(); - set => this.Set((int)WixRegistrySearchTupleFields.Root, (int)value); + get => (RegistryRootType)this.Fields[(int)WixRegistrySearchSymbolFields.Root].AsNumber(); + set => this.Set((int)WixRegistrySearchSymbolFields.Root, (int)value); } public string Key { - get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Key]; - set => this.Set((int)WixRegistrySearchTupleFields.Key, value); + get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Key]; + set => this.Set((int)WixRegistrySearchSymbolFields.Key, value); } public string Value { - get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Value]; - set => this.Set((int)WixRegistrySearchTupleFields.Value, value); + get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Value]; + set => this.Set((int)WixRegistrySearchSymbolFields.Value, value); } public WixRegistrySearchAttributes Attributes { - get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchTupleFields.Attributes].AsNumber(); - set => this.Set((int)WixRegistrySearchTupleFields.Attributes, (int)value); + get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixRegistrySearchSymbolFields.Attributes, (int)value); } } } diff --git a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs index a7a2cf92..dc544e29 100644 --- a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs +++ b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs @@ -2,24 +2,24 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixRelatedBundle = new IntermediateTupleDefinition( - TupleDefinitionType.WixRelatedBundle, + public static readonly IntermediateSymbolDefinition WixRelatedBundle = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixRelatedBundle, new[] { - new IntermediateFieldDefinition(nameof(WixRelatedBundleTupleFields.BundleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRelatedBundleTupleFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.BundleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.Action), IntermediateFieldType.Number), }, - typeof(WixRelatedBundleTuple)); + typeof(WixRelatedBundleSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixRelatedBundleTupleFields + public enum WixRelatedBundleSymbolFields { BundleId, Action, @@ -33,28 +33,28 @@ namespace WixToolset.Data.Tuples Patch } - public class WixRelatedBundleTuple : IntermediateTuple + public class WixRelatedBundleSymbol : IntermediateSymbol { - public WixRelatedBundleTuple() : base(TupleDefinitions.WixRelatedBundle, null, null) + public WixRelatedBundleSymbol() : base(SymbolDefinitions.WixRelatedBundle, null, null) { } - public WixRelatedBundleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixRelatedBundle, sourceLineNumber, id) + public WixRelatedBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixRelatedBundle, sourceLineNumber, id) { } - public IntermediateField this[WixRelatedBundleTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixRelatedBundleSymbolFields index] => this.Fields[(int)index]; public string BundleId { - get => (string)this.Fields[(int)WixRelatedBundleTupleFields.BundleId]; - set => this.Set((int)WixRelatedBundleTupleFields.BundleId, value); + get => (string)this.Fields[(int)WixRelatedBundleSymbolFields.BundleId]; + set => this.Set((int)WixRelatedBundleSymbolFields.BundleId, value); } public RelatedBundleActionType Action { - get => (RelatedBundleActionType)this.Fields[(int)WixRelatedBundleTupleFields.Action].AsNumber(); - set => this.Set((int)WixRelatedBundleTupleFields.Action, (int)value); + get => (RelatedBundleActionType)this.Fields[(int)WixRelatedBundleSymbolFields.Action].AsNumber(); + set => this.Set((int)WixRelatedBundleSymbolFields.Action, (int)value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs index 559a41fa..6b47833a 100644 --- a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixSearchRelation = new IntermediateTupleDefinition( - TupleDefinitionType.WixSearchRelation, + public static readonly IntermediateSymbolDefinition WixSearchRelation = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSearchRelation, new[] { - new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.ParentSearchRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.ParentSearchRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.Attributes), IntermediateFieldType.Number), }, - typeof(WixSearchRelationTuple)); + typeof(WixSearchRelationSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixSearchRelationTupleFields + public enum WixSearchRelationSymbolFields { ParentSearchRef, Attributes, } - public class WixSearchRelationTuple : IntermediateTuple + public class WixSearchRelationSymbol : IntermediateSymbol { - public WixSearchRelationTuple() : base(TupleDefinitions.WixSearchRelation, null, null) + public WixSearchRelationSymbol() : base(SymbolDefinitions.WixSearchRelation, null, null) { } - public WixSearchRelationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSearchRelation, sourceLineNumber, id) + public WixSearchRelationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearchRelation, sourceLineNumber, id) { } - public IntermediateField this[WixSearchRelationTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixSearchRelationSymbolFields index] => this.Fields[(int)index]; public string ParentSearchRef { - get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentSearchRef]; - set => this.Set((int)WixSearchRelationTupleFields.ParentSearchRef, value); + get => (string)this.Fields[(int)WixSearchRelationSymbolFields.ParentSearchRef]; + set => this.Set((int)WixSearchRelationSymbolFields.ParentSearchRef, value); } public int Attributes { - get => (int)this.Fields[(int)WixSearchRelationTupleFields.Attributes]; - set => this.Set((int)WixSearchRelationTupleFields.Attributes, value); + get => (int)this.Fields[(int)WixSearchRelationSymbolFields.Attributes]; + set => this.Set((int)WixSearchRelationSymbolFields.Attributes, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSearchTuple.cs b/src/WixToolset.Data/Tuples/WixSearchTuple.cs index 6f58f62e..2d6a927c 100644 --- a/src/WixToolset.Data/Tuples/WixSearchTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSearchTuple.cs @@ -2,59 +2,59 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixSearch = new IntermediateTupleDefinition( - TupleDefinitionType.WixSearch, + public static readonly IntermediateSymbolDefinition WixSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSearch, new[] { - new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Variable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchTupleFields.BundleExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Variable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.BundleExtensionRef), IntermediateFieldType.String), }, - typeof(WixSearchTuple)); + typeof(WixSearchSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixSearchTupleFields + public enum WixSearchSymbolFields { Variable, Condition, BundleExtensionRef, } - public class WixSearchTuple : IntermediateTuple + public class WixSearchSymbol : IntermediateSymbol { - public WixSearchTuple() : base(TupleDefinitions.WixSearch, null, null) + public WixSearchSymbol() : base(SymbolDefinitions.WixSearch, null, null) { } - public WixSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSearch, sourceLineNumber, id) + public WixSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearch, sourceLineNumber, id) { } - public IntermediateField this[WixSearchTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixSearchSymbolFields index] => this.Fields[(int)index]; public string Variable { - get => (string)this.Fields[(int)WixSearchTupleFields.Variable]; - set => this.Set((int)WixSearchTupleFields.Variable, value); + get => (string)this.Fields[(int)WixSearchSymbolFields.Variable]; + set => this.Set((int)WixSearchSymbolFields.Variable, value); } public string Condition { - get => (string)this.Fields[(int)WixSearchTupleFields.Condition]; - set => this.Set((int)WixSearchTupleFields.Condition, value); + get => (string)this.Fields[(int)WixSearchSymbolFields.Condition]; + set => this.Set((int)WixSearchSymbolFields.Condition, value); } public string BundleExtensionRef { - get => (string)this.Fields[(int)WixSearchTupleFields.BundleExtensionRef]; - set => this.Set((int)WixSearchTupleFields.BundleExtensionRef, value); + get => (string)this.Fields[(int)WixSearchSymbolFields.BundleExtensionRef]; + set => this.Set((int)WixSearchSymbolFields.BundleExtensionRef, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs b/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs index 6c1e9908..503c328b 100644 --- a/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixSetVariable = new IntermediateTupleDefinition( - TupleDefinitionType.WixSetVariable, + public static readonly IntermediateSymbolDefinition WixSetVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSetVariable, new[] { - new IntermediateFieldDefinition(nameof(WixSetVariableTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSetVariableTupleFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Type), IntermediateFieldType.String), }, - typeof(WixSetVariableTuple)); + typeof(WixSetVariableSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixSetVariableTupleFields + public enum WixSetVariableSymbolFields { Value, Type, } - public class WixSetVariableTuple : IntermediateTuple + public class WixSetVariableSymbol : IntermediateSymbol { - public WixSetVariableTuple() : base(TupleDefinitions.WixSetVariable, null, null) + public WixSetVariableSymbol() : base(SymbolDefinitions.WixSetVariable, null, null) { } - public WixSetVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSetVariable, sourceLineNumber, id) + public WixSetVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSetVariable, sourceLineNumber, id) { } - public IntermediateField this[WixSetVariableTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixSetVariableSymbolFields index] => this.Fields[(int)index]; public string Value { - get => (string)this.Fields[(int)WixSetVariableTupleFields.Value]; - set => this.Set((int)WixSetVariableTupleFields.Value, value); + get => (string)this.Fields[(int)WixSetVariableSymbolFields.Value]; + set => this.Set((int)WixSetVariableSymbolFields.Value, value); } public string Type { - get => (string)this.Fields[(int)WixSetVariableTupleFields.Type]; - set => this.Set((int)WixSetVariableTupleFields.Type, value); + get => (string)this.Fields[(int)WixSetVariableSymbolFields.Type]; + set => this.Set((int)WixSetVariableSymbolFields.Type, value); } } } diff --git a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs index abc53b3a..1091b715 100644 --- a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs @@ -2,55 +2,55 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixSimpleReference = new IntermediateTupleDefinition( - TupleDefinitionType.WixSimpleReference, + public static readonly IntermediateSymbolDefinition WixSimpleReference = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSimpleReference, new[] { - new IntermediateFieldDefinition(nameof(WixSimpleReferenceTupleFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSimpleReferenceTupleFields.PrimaryKeys), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.PrimaryKeys), IntermediateFieldType.String), }, - typeof(WixSimpleReferenceTuple)); + typeof(WixSimpleReferenceSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; using System.Diagnostics; - public enum WixSimpleReferenceTupleFields + public enum WixSimpleReferenceSymbolFields { Table, PrimaryKeys, } [DebuggerDisplay("{SymbolicName}")] - public class WixSimpleReferenceTuple : IntermediateTuple + public class WixSimpleReferenceSymbol : IntermediateSymbol { - public WixSimpleReferenceTuple() : base(TupleDefinitions.WixSimpleReference, null, null) + public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) { } - public WixSimpleReferenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSimpleReference, sourceLineNumber, id) + public WixSimpleReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSimpleReference, sourceLineNumber, id) { } - public IntermediateField this[WixSimpleReferenceTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixSimpleReferenceSymbolFields index] => this.Fields[(int)index]; public string Table { - get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.Table]; - set => this.Set((int)WixSimpleReferenceTupleFields.Table, value); + get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.Table]; + set => this.Set((int)WixSimpleReferenceSymbolFields.Table, value); } public string PrimaryKeys { - get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.PrimaryKeys]; - set => this.Set((int)WixSimpleReferenceTupleFields.PrimaryKeys, value); + get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.PrimaryKeys]; + set => this.Set((int)WixSimpleReferenceSymbolFields.PrimaryKeys, value); } /// diff --git a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs index 70bda370..f99246f0 100644 --- a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs @@ -2,53 +2,53 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixSuppressAction = new IntermediateTupleDefinition( - TupleDefinitionType.WixSuppressAction, + public static readonly IntermediateSymbolDefinition WixSuppressAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSuppressAction, new[] { - new IntermediateFieldDefinition(nameof(WixSuppressActionTupleFields.SequenceTable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSuppressActionTupleFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.SequenceTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.Action), IntermediateFieldType.String), }, - typeof(WixSuppressActionTuple)); + typeof(WixSuppressActionSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { using System; - public enum WixSuppressActionTupleFields + public enum WixSuppressActionSymbolFields { SequenceTable, Action, } - public class WixSuppressActionTuple : IntermediateTuple + public class WixSuppressActionSymbol : IntermediateSymbol { - public WixSuppressActionTuple() : base(TupleDefinitions.WixSuppressAction, null, null) + public WixSuppressActionSymbol() : base(SymbolDefinitions.WixSuppressAction, null, null) { } - public WixSuppressActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSuppressAction, sourceLineNumber, id) + public WixSuppressActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressAction, sourceLineNumber, id) { } - public IntermediateField this[WixSuppressActionTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixSuppressActionSymbolFields index] => this.Fields[(int)index]; public SequenceTable SequenceTable { - get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionTupleFields.SequenceTable]); - set => this.Set((int)WixSuppressActionTupleFields.SequenceTable, value.ToString()); + get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionSymbolFields.SequenceTable]); + set => this.Set((int)WixSuppressActionSymbolFields.SequenceTable, value.ToString()); } public string Action { - get => (string)this.Fields[(int)WixSuppressActionTupleFields.Action]; - set => this.Set((int)WixSuppressActionTupleFields.Action, value); + get => (string)this.Fields[(int)WixSuppressActionSymbolFields.Action]; + set => this.Set((int)WixSuppressActionSymbolFields.Action, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs index 9c6c8468..1bdffd5e 100644 --- a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixSuppressModularization = new IntermediateTupleDefinition( - TupleDefinitionType.WixSuppressModularization, + public static readonly IntermediateSymbolDefinition WixSuppressModularization = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSuppressModularization, new IntermediateFieldDefinition[] { }, - typeof(WixSuppressModularizationTuple)); + typeof(WixSuppressModularizationSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixSuppressModularizationTupleFields + public enum WixSuppressModularizationSymbolFields { } - public class WixSuppressModularizationTuple : IntermediateTuple + public class WixSuppressModularizationSymbol : IntermediateSymbol { - public WixSuppressModularizationTuple() : base(TupleDefinitions.WixSuppressModularization, null, null) + public WixSuppressModularizationSymbol() : base(SymbolDefinitions.WixSuppressModularization, null, null) { } - public WixSuppressModularizationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSuppressModularization, sourceLineNumber, id) + public WixSuppressModularizationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressModularization, sourceLineNumber, id) { } - public IntermediateField this[WixSuppressModularizationTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixSuppressModularizationSymbolFields index] => this.Fields[(int)index]; } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixUITuple.cs b/src/WixToolset.Data/Tuples/WixUITuple.cs index 23312096..f1254952 100644 --- a/src/WixToolset.Data/Tuples/WixUITuple.cs +++ b/src/WixToolset.Data/Tuples/WixUITuple.cs @@ -2,35 +2,35 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixUI = new IntermediateTupleDefinition( - TupleDefinitionType.WixUI, + public static readonly IntermediateSymbolDefinition WixUI = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixUI, new IntermediateFieldDefinition[] { }, - typeof(WixUITuple)); + typeof(WixUISymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixUITupleFields + public enum WixUISymbolFields { } - public class WixUITuple : IntermediateTuple + public class WixUISymbol : IntermediateSymbol { - public WixUITuple() : base(TupleDefinitions.WixUI, null, null) + public WixUISymbol() : base(SymbolDefinitions.WixUI, null, null) { } - public WixUITuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixUI, sourceLineNumber, id) + public WixUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUI, sourceLineNumber, id) { } - public IntermediateField this[WixUITupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixUISymbolFields index] => this.Fields[(int)index]; } } diff --git a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs index 93a59cce..1320dfd5 100644 --- a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs +++ b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs @@ -2,27 +2,27 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixUpdateRegistration = new IntermediateTupleDefinition( - TupleDefinitionType.WixUpdateRegistration, + public static readonly IntermediateSymbolDefinition WixUpdateRegistration = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixUpdateRegistration, new[] { - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Department), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.ProductFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Classification), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Department), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.ProductFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Classification), IntermediateFieldType.String), }, - typeof(WixUpdateRegistrationTuple)); + typeof(WixUpdateRegistrationSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixUpdateRegistrationTupleFields + public enum WixUpdateRegistrationSymbolFields { Manufacturer, Department, @@ -31,46 +31,46 @@ namespace WixToolset.Data.Tuples Classification, } - public class WixUpdateRegistrationTuple : IntermediateTuple + public class WixUpdateRegistrationSymbol : IntermediateSymbol { - public WixUpdateRegistrationTuple() : base(TupleDefinitions.WixUpdateRegistration, null, null) + public WixUpdateRegistrationSymbol() : base(SymbolDefinitions.WixUpdateRegistration, null, null) { } - public WixUpdateRegistrationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixUpdateRegistration, sourceLineNumber, id) + public WixUpdateRegistrationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUpdateRegistration, sourceLineNumber, id) { } - public IntermediateField this[WixUpdateRegistrationTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixUpdateRegistrationSymbolFields index] => this.Fields[(int)index]; public string Manufacturer { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Manufacturer]; - set => this.Set((int)WixUpdateRegistrationTupleFields.Manufacturer, value); + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Manufacturer]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Manufacturer, value); } public string Department { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Department]; - set => this.Set((int)WixUpdateRegistrationTupleFields.Department, value); + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Department]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Department, value); } public string ProductFamily { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.ProductFamily]; - set => this.Set((int)WixUpdateRegistrationTupleFields.ProductFamily, value); + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.ProductFamily]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.ProductFamily, value); } public string Name { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Name]; - set => this.Set((int)WixUpdateRegistrationTupleFields.Name, value); + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Name]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Name, value); } public string Classification { - get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Classification]; - set => this.Set((int)WixUpdateRegistrationTupleFields.Classification, value); + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Classification]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Classification, value); } } } \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixVariableTuple.cs b/src/WixToolset.Data/Tuples/WixVariableTuple.cs index 08508d08..0a56dcbf 100644 --- a/src/WixToolset.Data/Tuples/WixVariableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixVariableTuple.cs @@ -2,51 +2,51 @@ namespace WixToolset.Data { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; - public static partial class TupleDefinitions + public static partial class SymbolDefinitions { - public static readonly IntermediateTupleDefinition WixVariable = new IntermediateTupleDefinition( - TupleDefinitionType.WixVariable, + public static readonly IntermediateSymbolDefinition WixVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixVariable, new[] { - new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Overridable), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Overridable), IntermediateFieldType.Bool), }, - typeof(WixVariableTuple)); + typeof(WixVariableSymbol)); } } -namespace WixToolset.Data.Tuples +namespace WixToolset.Data.Symbols { - public enum WixVariableTupleFields + public enum WixVariableSymbolFields { Value, Overridable, } - public class WixVariableTuple : IntermediateTuple + public class WixVariableSymbol : IntermediateSymbol { - public WixVariableTuple() : base(TupleDefinitions.WixVariable, null, null) + public WixVariableSymbol() : base(SymbolDefinitions.WixVariable, null, null) { } - public WixVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixVariable, sourceLineNumber, id) + public WixVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixVariable, sourceLineNumber, id) { } - public IntermediateField this[WixVariableTupleFields index] => this.Fields[(int)index]; + public IntermediateField this[WixVariableSymbolFields index] => this.Fields[(int)index]; public string Value { - get => (string)this.Fields[(int)WixVariableTupleFields.Value]; - set => this.Set((int)WixVariableTupleFields.Value, value); + get => (string)this.Fields[(int)WixVariableSymbolFields.Value]; + set => this.Set((int)WixVariableSymbolFields.Value, value); } public bool Overridable { - get => (bool)this.Fields[(int)WixVariableTupleFields.Overridable]; - set => this.Set((int)WixVariableTupleFields.Overridable, value); + get => (bool)this.Fields[(int)WixVariableSymbolFields.Overridable]; + set => this.Set((int)WixVariableSymbolFields.Overridable, value); } } } diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index b31f5aaf..258b61f7 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -567,10 +567,10 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.TooManyProgIds, "Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output.", clsId, progId, otherClsId); } - public static Message TupleNotTranslatedToOutput(IntermediateTuple tuple) + public static Message SymbolNotTranslatedToOutput(IntermediateSymbol symbol) { - var tupleString = $"TupleName: '{tuple.Definition.Name}', Id: '{tuple.Id?.Id}'"; - return Message(tuple.SourceLineNumbers, Ids.TupleNotTranslatedToOutput, "The binder doesn't know how to place the following tuple into the output: {0}", tupleString); + var symbolString = $"SymbolName: '{symbol.Definition.Name}', Id: '{symbol.Id?.Id}'"; + return Message(symbol.SourceLineNumbers, Ids.SymbolNotTranslatedToOutput, "The binder doesn't know how to place the following symbol into the output: {0}", symbolString); } public static Message UnableToFindFileFromCabOrImage(SourceLineNumber sourceLineNumbers, string existingFileSpec, string srcFileSpec) @@ -779,7 +779,7 @@ namespace WixToolset.Data BackslashTerminateInlineDirectorySyntax = 1147, VersionTruncated = 1148, ServiceConfigFamilyNotSupported = 1149, - TupleNotTranslatedToOutput = 1150, + SymbolNotTranslatedToOutput = 1150, } } } diff --git a/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs b/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs index 099d722a..9131a374 100644 --- a/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs +++ b/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs @@ -2,7 +2,7 @@ namespace WixToolset.Data.WindowsInstaller { - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; /// /// Enhancements to the SequenceTable enum. diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 214544ca..504c89ce 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -22,15 +22,15 @@ namespace WixToolset.Data.WindowsInstaller /// Creates a table definition. /// /// Name of table to create. - /// Optional tuple definition for this table. + /// Optional symbol definition for this table. /// Column definitions for the table. /// Flag if table is unreal. - /// Whether the primary key is the id of the tuple definition associated with this table. - public TableDefinition(string name, IntermediateTupleDefinition tupleDefinition, IEnumerable columns, bool unreal = false, bool tupleIdIsPrimaryKey = false, Type strongRowType = null) + /// Whether the primary key is the id of the symbol definition associated with this table. + public TableDefinition(string name, IntermediateSymbolDefinition symbolDefinition, IEnumerable columns, bool unreal = false, bool symbolIdIsPrimaryKey = false, Type strongRowType = null) { this.Name = name; - this.TupleDefinition = tupleDefinition; - this.TupleIdIsPrimaryKey = tupleIdIsPrimaryKey; + this.SymbolDefinition = symbolDefinition; + this.SymbolIdIsPrimaryKey = symbolIdIsPrimaryKey; this.Unreal = unreal; this.Columns = columns?.ToArray(); this.StrongRowType = strongRowType ?? typeof(Row); @@ -51,10 +51,10 @@ namespace WixToolset.Data.WindowsInstaller public string Name { get; } /// - /// Gets the tuple definition associated with this table. + /// Gets the symbol definition associated with this table. /// - /// The tuple definition. - public IntermediateTupleDefinition TupleDefinition { get; } + /// The symbol definition. + public IntermediateSymbolDefinition SymbolDefinition { get; } /// /// Gets if the table is unreal. @@ -69,10 +69,10 @@ namespace WixToolset.Data.WindowsInstaller public ColumnDefinition[] Columns { get; } /// - /// Gets if the primary key is the id of the tuple definition associated with this table. + /// Gets if the primary key is the id of the symbol definition associated with this table. /// /// Flag if table is unreal. - public bool TupleIdIsPrimaryKey { get; } + public bool SymbolIdIsPrimaryKey { get; } private Type StrongRowType { get; } @@ -162,9 +162,9 @@ namespace WixToolset.Data.WindowsInstaller { var empty = reader.IsEmptyElement; string name = null; - IntermediateTupleDefinition tupleDefinition = null; + IntermediateSymbolDefinition symbolDefinition = null; var unreal = false; - var tupleIdIsPrimaryKey = false; + var symbolIdIsPrimaryKey = false; Type strongRowType = null; while (reader.MoveToNextAttribute()) @@ -187,8 +187,8 @@ namespace WixToolset.Data.WindowsInstaller if (tableDefinitions.TryGet(name, out var tableDefinition)) { - tupleDefinition = tableDefinition.TupleDefinition; - tupleIdIsPrimaryKey = tableDefinition.TupleIdIsPrimaryKey; + symbolDefinition = tableDefinition.SymbolDefinition; + symbolIdIsPrimaryKey = tableDefinition.SymbolIdIsPrimaryKey; strongRowType = tableDefinition.StrongRowType; } @@ -237,7 +237,7 @@ namespace WixToolset.Data.WindowsInstaller } } - return new TableDefinition(name, tupleDefinition, columns.ToArray(), unreal, tupleIdIsPrimaryKey, strongRowType); + return new TableDefinition(name, symbolDefinition, columns.ToArray(), unreal, symbolIdIsPrimaryKey, strongRowType); } /// diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 73b30ef2..c3cde117 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -5,11 +5,11 @@ namespace WixToolset.Data.WindowsInstaller using System; using System.Collections.Generic; using System.Linq; - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; public static class WindowsInstallerStandard { - private static readonly Dictionary standardActionsById; + private static readonly Dictionary standardActionsById; private static readonly HashSet standardActionNames; private static readonly HashSet standardDirectories = new HashSet @@ -45,8 +45,8 @@ namespace WixToolset.Data.WindowsInstaller }; /// - /// References: - /// Title: Property Reference [Windows Installer]: + /// References: + /// Title: Property Reference [Windows Installer]: /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp /// private static readonly HashSet standardProperties = new HashSet @@ -243,156 +243,156 @@ namespace WixToolset.Data.WindowsInstaller { var standardActions = new[] { - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, }; standardActionNames = new HashSet(standardActions.Select(a => a.Action)); @@ -409,7 +409,7 @@ namespace WixToolset.Data.WindowsInstaller /// /// Standard actions. /// - public static IEnumerable StandardActions() => standardActionsById.Values; + public static IEnumerable StandardActions() => standardActionsById.Values; /// /// Find out if a directory is a standard directory. @@ -428,11 +428,11 @@ namespace WixToolset.Data.WindowsInstaller /// /// Try to get standard action by id. /// - public static bool TryGetStandardAction(string id, out WixActionTuple standardAction) => standardActionsById.TryGetValue(id, out standardAction); + public static bool TryGetStandardAction(string id, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(id, out standardAction); /// /// Try to get standard action by sequence and action name. /// - public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionTuple standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); + public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); } } diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index 2f219b53..86450c22 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -8,14 +8,14 @@ namespace WixToolset.Data.WindowsInstaller { public static readonly TableDefinition ActionText = new TableDefinition( "ActionText", - TupleDefinitions.ActionText, + SymbolDefinitions.ActionText, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to be described.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description displayed in progress dialog and log when action is executing."), new ColumnDefinition("Template", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Optional localized format template used to format action data records for display during action execution.", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition AdminExecuteSequence = new TableDefinition( @@ -27,19 +27,19 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Condition = new TableDefinition( "Condition", - TupleDefinitions.Condition, + SymbolDefinitions.Condition, new[] { new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Reference to a Feature entry in Feature table."), new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "New selection Level to set in Feature table if Condition evaluates to TRUE."), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Expression evaluated to determine if Level in the Feature table is to change.", forceLocalizable: true), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition AdminUISequence = new TableDefinition( @@ -51,7 +51,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition AdvtExecuteSequence = new TableDefinition( @@ -63,7 +63,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition AdvtUISequence = new TableDefinition( @@ -75,12 +75,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition AppId = new TableDefinition( "AppId", - TupleDefinitions.AppId, + SymbolDefinitions.AppId, new[] { new ColumnDefinition("AppId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), @@ -91,35 +91,35 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ActivateAtStorage", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), new ColumnDefinition("RunAsInteractiveUser", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition AppSearch = new TableDefinition( "AppSearch", - TupleDefinitions.AppSearch, + SymbolDefinitions.AppSearch, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The property associated with a Signature", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Property = new TableDefinition( "Property", - TupleDefinitions.Property, + SymbolDefinitions.Property, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of property, uppercase if settable by launcher or loader.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "String value for property. Never null or empty."), }, strongRowType: typeof(PropertyRow), - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition BBControl = new TableDefinition( "BBControl", - TupleDefinitions.BBControl, + SymbolDefinitions.BBControl, new[] { new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Billboard", keyColumn: 1, description: "External key to the Billboard table, name of the billboard.", modularizeType: ColumnModularizeType.Column), @@ -133,12 +133,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Text", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A string used to set the initial text contained within a control (if appropriate)."), }, strongRowType: typeof(BBControlRow), - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Billboard = new TableDefinition( "Billboard", - TupleDefinitions.Billboard, + SymbolDefinitions.Billboard, new[] { new ColumnDefinition("Billboard", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the billboard.", modularizeType: ColumnModularizeType.Column), @@ -146,12 +146,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of an action. The billboard is displayed during the progress messages received from this action."), new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "A positive integer. If there is more than one billboard corresponding to an action they will be shown in the order defined by this column."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Feature = new TableDefinition( "Feature", - TupleDefinitions.Feature, + SymbolDefinitions.Feature, new[] { new ColumnDefinition("Feature", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular feature record."), @@ -163,18 +163,18 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.UpperCase, keyTable: "Directory", keyColumn: 1, description: "The name of the Directory that can be configured by the UI. A non-null value will enable the browse button.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54", description: "Feature attributes"), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Binary = new TableDefinition( "Binary", - TupleDefinitions.Binary, + SymbolDefinitions.Binary, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique key identifying the binary data.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "The unformatted binary data."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition BindImage = new TableDefinition( @@ -185,12 +185,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The index into the File table. This must be an executable file.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Paths, description: "A list of ; delimited paths that represent the paths to be searched for the import DLLS. The list is usually a list of properties each enclosed within square brackets [] .", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition File = new TableDefinition( "File", - TupleDefinitions.File, + SymbolDefinitions.File, new[] { new ColumnDefinition("File", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored.", modularizeType: ColumnModularizeType.Column), @@ -205,33 +205,33 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Path to source of file.", unreal: true), }, strongRowType: typeof(FileRow), - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition CCPSearch = new TableDefinition( "CCPSearch", - TupleDefinitions.CCPSearch, + SymbolDefinitions.CCPSearch, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition CheckBox = new TableDefinition( "CheckBox", - TupleDefinitions.CheckBox, + SymbolDefinitions.CheckBox, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to the item.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value string associated with the item.", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Class = new TableDefinition( "Class", - TupleDefinitions.Class, + SymbolDefinitions.Class, new[] { new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The CLSID of an OLE factory."), @@ -248,12 +248,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, maxValue: 32767, description: "Class registration attributes."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Component = new TableDefinition( "Component", - TupleDefinitions.Component, + SymbolDefinitions.Component, new[] { new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular component record.", modularizeType: ColumnModularizeType.Column), @@ -264,23 +264,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("KeyPath", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File;Registry;ODBCDataSource", keyColumn: 1, description: "Either the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.", modularizeType: ColumnModularizeType.Column), }, strongRowType: typeof(ComponentRow), - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Icon = new TableDefinition( "Icon", - TupleDefinitions.Icon, + SymbolDefinitions.Icon, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. Name of the icon file.", modularizeType: ColumnModularizeType.Icon), new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ProgId = new TableDefinition( "ProgId", - TupleDefinitions.ProgId, + SymbolDefinitions.ProgId, new[] { new ColumnDefinition("ProgId", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The Program Identifier. Primary key."), @@ -290,12 +290,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this ProgId. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ComboBox = new TableDefinition( "ComboBox", - TupleDefinitions.ComboBox, + SymbolDefinitions.ComboBox, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same combobox.", modularizeType: ColumnModularizeType.Column), @@ -303,47 +303,47 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition CompLocator = new TableDefinition( "CompLocator", - TupleDefinitions.CompLocator, + SymbolDefinitions.CompLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "A boolean value that determines if the registry value is a filename or a directory location."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Complus = new TableDefinition( "Complus", - TupleDefinitions.Complus, + SymbolDefinitions.Complus, new[] { new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the ComPlus component.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("ExpType", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "ComPlus component attributes."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Directory = new TableDefinition( "Directory", - TupleDefinitions.Directory, + SymbolDefinitions.Directory, new[] { new ColumnDefinition("Directory", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Directory_Parent", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Reference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("DefaultDir", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.DefaultDir, description: "The default sub-path under parent's path."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Control = new TableDefinition( "Control", - TupleDefinitions.Control, + SymbolDefinitions.Control, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "External key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -360,12 +360,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional. "), }, strongRowType: typeof(ControlRow), - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Dialog = new TableDefinition( "Dialog", - TupleDefinitions.Dialog, + SymbolDefinitions.Dialog, new[] { new ColumnDefinition("Dialog", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -379,12 +379,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Control_Default", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the default control. Hitting return is equivalent to pushing this button."), new ColumnDefinition("Control_Cancel", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ControlCondition = new TableDefinition( "ControlCondition", - TupleDefinitions.ControlCondition, + SymbolDefinitions.ControlCondition, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -392,12 +392,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Default;Disable;Enable;Hide;Show", description: "The desired action to be taken on the specified control."), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions the action should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ControlEvent = new TableDefinition( "ControlEvent", - TupleDefinitions.ControlEvent, + SymbolDefinitions.ControlEvent, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), @@ -407,23 +407,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions an event should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "An integer used to order several events tied to the same control. Can be left blank."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition CreateFolder = new TableDefinition( "CreateFolder", - TupleDefinitions.CreateFolder, + SymbolDefinitions.CreateFolder, new[] { new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Primary key, could be foreign key into the Directory table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition CustomAction = new TableDefinition( "CustomAction", - TupleDefinitions.CustomAction, + SymbolDefinitions.CustomAction, new[] { new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, name of action, normally appears in sequence table unless private use.", modularizeType: ColumnModularizeType.Column), @@ -432,12 +432,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Target", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Excecution parameter, depends on the type of custom action", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), new ColumnDefinition("ExtendedType", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A numeric custom action type that extends code type or option flags of the Type column."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition DrLocator = new TableDefinition( "DrLocator", - TupleDefinitions.DrLocator, + SymbolDefinitions.DrLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), @@ -445,12 +445,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.AnyPath, description: "The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Depth", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition DuplicateFile = new TableDefinition( "DuplicateFile", - TupleDefinitions.DuplicateFile, + SymbolDefinitions.DuplicateFile, new[] { new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), @@ -459,12 +459,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Filename to be given to the duplicate file."), new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to a destination folder.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Environment = new TableDefinition( "Environment", - TupleDefinitions.Environment, + SymbolDefinitions.Environment, new[] { new ColumnDefinition("Environment", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for the environmental variable setting", modularizeType: ColumnModularizeType.Column), @@ -472,23 +472,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to set in the environmental settings.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the environmental value.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Error = new TableDefinition( "Error", - TupleDefinitions.Error, + SymbolDefinitions.Error, new[] { new ColumnDefinition("Error", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer error number, obtained from header file IError(...) macros."), new ColumnDefinition("Message", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Error formatting template, obtained from user ed. or localizers.", modularizeType: ColumnModularizeType.Property, useCData: true), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition EventMapping = new TableDefinition( "EventMapping", - TupleDefinitions.EventMapping, + SymbolDefinitions.EventMapping, new[] { new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the Dialog.", modularizeType: ColumnModularizeType.Column), @@ -496,12 +496,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "An identifier that specifies the type of the event that the control subscribes to."), new ColumnDefinition("Attribute", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The name of the control attribute, that is set when this event is received."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Extension = new TableDefinition( "Extension", - TupleDefinitions.Extension, + SymbolDefinitions.Extension, new[] { new ColumnDefinition("Extension", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The extension associated with the table row."), @@ -510,53 +510,53 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MIME_", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "MIME", keyColumn: 1, description: "Optional Context identifier, typically \"type/format\" associated with the extension"), new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MIME = new TableDefinition( "MIME", - TupleDefinitions.MIME, + SymbolDefinitions.MIME, new[] { new ColumnDefinition("ContentType", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key. Context identifier, typically \"type/format\"."), new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "Optional associated extension (without dot)"), new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "Optional associated CLSID."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition FeatureComponents = new TableDefinition( "FeatureComponents", - TupleDefinitions.FeatureComponents, + SymbolDefinitions.FeatureComponents, new[] { new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition FileSFPCatalog = new TableDefinition( "FileSFPCatalog", - TupleDefinitions.FileSFPCatalog, + SymbolDefinitions.FileSFPCatalog, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "File associated with the catalog", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("SFPCatalog_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, keyTable: "SFPCatalog", keyColumn: 1, description: "Catalog associated with the file"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition SFPCatalog = new TableDefinition( "SFPCatalog", - TupleDefinitions.SFPCatalog, + SymbolDefinitions.SFPCatalog, new[] { new ColumnDefinition("SFPCatalog", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, description: "File name for the catalog."), new ColumnDefinition("Catalog", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "SFP Catalog"), new ColumnDefinition("Dependency", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Parent catalog - only used by SFP", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Font = new TableDefinition( @@ -567,12 +567,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing font file.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("FontTitle", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Font name."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition IniFile = new TableDefinition( "IniFile", - TupleDefinitions.IniFile, + SymbolDefinitions.IniFile, new[] { new ColumnDefinition("IniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -584,12 +584,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;3", description: "The type of modification to be made, one of iifEnum"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the .INI value.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition IniLocator = new TableDefinition( "IniLocator", - TupleDefinitions.IniLocator, + SymbolDefinitions.IniLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), @@ -599,7 +599,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Field", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The field in the .INI line. If Field is null or 0 the entire line is read."), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2, description: "An integer value that determines if the .INI value read is a filename or a directory location or to be used as is w/o interpretation."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition InstallExecuteSequence = new TableDefinition( @@ -611,7 +611,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition InstallUISequence = new TableDefinition( @@ -623,34 +623,34 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition IsolatedComponent = new TableDefinition( "IsolatedComponent", - TupleDefinitions.IsolatedComponent, + SymbolDefinitions.IsolatedComponent, new[] { new ColumnDefinition("Component_Shared", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item to be isolated", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Component_Application", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item for application", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition LaunchCondition = new TableDefinition( "LaunchCondition", - TupleDefinitions.LaunchCondition, + SymbolDefinitions.LaunchCondition, new[] { new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "Expression which must evaluate to TRUE in order for install to commence.", forceLocalizable: true), new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Localizable text to display when condition fails and install must abort."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ListBox = new TableDefinition( "ListBox", - TupleDefinitions.ListBox, + SymbolDefinitions.ListBox, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listbox.", modularizeType: ColumnModularizeType.Column), @@ -658,12 +658,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ListView = new TableDefinition( "ListView", - TupleDefinitions.ListView, + SymbolDefinitions.ListView, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listview.", modularizeType: ColumnModularizeType.Column), @@ -672,12 +672,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Binary_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Binary", keyColumn: 1, description: "The name of the icon to be displayed with the icon. The binary information is looked up from the Binary Table.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition LockPermissions = new TableDefinition( "LockPermissions", - TupleDefinitions.LockPermissions, + SymbolDefinitions.LockPermissions, new[] { new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry or File table", modularizeType: ColumnModularizeType.Column), @@ -686,12 +686,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("User", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "User for permissions to be set. (usually a property)", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Permission", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Permission Access mask. Full Control = 268435456 (GENERIC_ALL = 0x10000000)"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiLockPermissionsEx = new TableDefinition( "MsiLockPermissionsEx", - TupleDefinitions.MsiLockPermissionsEx, + SymbolDefinitions.MsiLockPermissionsEx, new[] { new ColumnDefinition("MsiLockPermissionsEx", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), @@ -700,12 +700,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SDDLText", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.FormattedSDDLText, description: "String to indicate permissions to be applied to the LockObject", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Expression which must evaluate to TRUE in order for this set of permissions to be applied", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Media = new TableDefinition( "Media", - TupleDefinitions.Media, + SymbolDefinitions.Media, new[] { new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Primary key, integer to determine sort order for table."), @@ -716,12 +716,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Property, description: "The property defining the location of the cabinet file."), }, strongRowType: typeof(MediaRow), - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MoveFile = new TableDefinition( "MoveFile", - TupleDefinitions.MoveFile, + SymbolDefinitions.MoveFile, new[] { new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular MoveFile record", modularizeType: ColumnModularizeType.Column), @@ -732,12 +732,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Integer value specifying the MoveFile operating mode, one of imfoEnum"), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiAssembly = new TableDefinition( "MsiAssembly", - TupleDefinitions.Assembly, + SymbolDefinitions.Assembly, new[] { new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), @@ -746,35 +746,35 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_Application", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table, denoting the application context for private assemblies. Null for global assemblies.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Assembly attributes"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiAssemblyName = new TableDefinition( "MsiAssemblyName", - TupleDefinitions.MsiAssemblyName, + SymbolDefinitions.MsiAssemblyName, new[] { new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name."), new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiDigitalCertificate = new TableDefinition( "MsiDigitalCertificate", - TupleDefinitions.MsiDigitalCertificate, + SymbolDefinitions.MsiDigitalCertificate, new[] { new ColumnDefinition("DigitalCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row"), new ColumnDefinition("CertData", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "A certificate context blob for a signer certificate"), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiDigitalSignature = new TableDefinition( "MsiDigitalSignature", - TupleDefinitions.MsiDigitalSignature, + SymbolDefinitions.MsiDigitalSignature, new[] { new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Media", description: "Reference to another table name (only Media table is supported)"), @@ -782,12 +782,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate"), new ColumnDefinition("Hash", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "The encoded hash blob from the digital signature"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiEmbeddedChainer = new TableDefinition( "MsiEmbeddedChainer", - TupleDefinitions.MsiEmbeddedChainer, + SymbolDefinitions.MsiEmbeddedChainer, new[] { new ColumnDefinition("MsiEmbeddedChainer", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), @@ -796,12 +796,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.CustomSource, description: "The location of the executable file for the user-defined function.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;18;50", description: "The functions listed in the MsiEmbeddedChainer table are described using the following custom action numeric types."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiEmbeddedUI = new TableDefinition( "MsiEmbeddedUI", - TupleDefinitions.MsiEmbeddedUI, + SymbolDefinitions.MsiEmbeddedUI, new[] { new ColumnDefinition("MsiEmbeddedUI", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), @@ -810,12 +810,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MessageFilter", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies the types of messages that are sent to the user interface DLL."), new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "This column contains binary information."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiFileHash = new TableDefinition( "MsiFileHash", - TupleDefinitions.MsiFileHash, + SymbolDefinitions.MsiFileHash, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing file with this hash", modularizeType: ColumnModularizeType.Column), @@ -825,92 +825,92 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("HashPart3", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), new ColumnDefinition("HashPart4", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiPackageCertificate = new TableDefinition( "MsiPackageCertificate", - TupleDefinitions.MsiPackageCertificate, + SymbolDefinitions.MsiPackageCertificate, new[] { new ColumnDefinition("PackageCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchCertificate = new TableDefinition( "MsiPatchCertificate", - TupleDefinitions.MsiPatchCertificate, + SymbolDefinitions.MsiPatchCertificate, new[] { new ColumnDefinition("PatchCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchHeaders = new TableDefinition( "MsiPatchHeaders", - TupleDefinitions.MsiPatchHeaders, + SymbolDefinitions.MsiPatchHeaders, new[] { new ColumnDefinition("StreamRef", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition PatchMetadata = new TableDefinition( "PatchMetadata", - TupleDefinitions.PatchMetadata, + SymbolDefinitions.PatchMetadata, new[] { new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "Primary key. The name of the company."), new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the property."), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Non-null, non-empty value of the metadata property."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchMetadata = new TableDefinition( "MsiPatchMetadata", - TupleDefinitions.MsiPatchMetadata, + SymbolDefinitions.MsiPatchMetadata, new[] { new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Unknown), new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchOldAssemblyFile = new TableDefinition( "MsiPatchOldAssemblyFile", - TupleDefinitions.MsiPatchOldAssemblyFile, + SymbolDefinitions.MsiPatchOldAssemblyFile, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table. Patch-only table.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Assembly_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiPatchOldAssemblyName", keyColumn: 1, description: "Foreign key into MsiPatchOldAssemblyName table.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchOldAssemblyName = new TableDefinition( "MsiPatchOldAssemblyName", - TupleDefinitions.MsiPatchOldAssemblyName, + SymbolDefinitions.MsiPatchOldAssemblyName, new[] { new ColumnDefinition("Assembly", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name. This represents the old name for the assembly."), new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name. This represents the old name for the assembly."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition PatchSequence = new TableDefinition( "PatchSequence", - TupleDefinitions.PatchSequence, + SymbolDefinitions.PatchSequence, new[] { new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the family for the patch."), @@ -918,12 +918,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Sequence information in version (x.x.x.x) format."), new ColumnDefinition("Supersede", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Indicates that this patch supersedes earlier patches."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition MsiPatchSequence = new TableDefinition( "MsiPatchSequence", - TupleDefinitions.MsiPatchSequence, + SymbolDefinitions.MsiPatchSequence, new[] { new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), @@ -931,24 +931,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ODBCAttribute = new TableDefinition( "ODBCAttribute", - TupleDefinitions.ODBCAttribute, + SymbolDefinitions.ODBCAttribute, new[] { new ColumnDefinition("Driver_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDriver", keyColumn: 1, description: "Reference to ODBC driver in ODBCDriver table", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attribute", ColumnType.String, 40, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC driver attribute"), new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC driver attribute"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ODBCDriver = new TableDefinition( "ODBCDriver", - TupleDefinitions.ODBCDriver, + SymbolDefinitions.ODBCDriver, new[] { new ColumnDefinition("Driver", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for driver", modularizeType: ColumnModularizeType.Column), @@ -957,12 +957,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key driver file", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key driver setup DLL", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ODBCDataSource = new TableDefinition( "ODBCDataSource", - TupleDefinitions.ODBCDataSource, + SymbolDefinitions.ODBCDataSource, new[] { new ColumnDefinition("DataSource", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for data source", modularizeType: ColumnModularizeType.Column), @@ -971,24 +971,24 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DriverDescription", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Reference to driver description, may be existing driver"), new ColumnDefinition("Registration", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Registration option: 0=machine, 1=user, others t.b.d."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ODBCSourceAttribute = new TableDefinition( "ODBCSourceAttribute", - TupleDefinitions.ODBCSourceAttribute, + SymbolDefinitions.ODBCSourceAttribute, new[] { new ColumnDefinition("DataSource_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDataSource", keyColumn: 1, description: "Reference to ODBC data source in ODBCDataSource table", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Attribute", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC data source attribute"), new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC data source attribute"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ODBCTranslator = new TableDefinition( "ODBCTranslator", - TupleDefinitions.ODBCTranslator, + SymbolDefinitions.ODBCTranslator, new[] { new ColumnDefinition("Translator", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for translator", modularizeType: ColumnModularizeType.Column), @@ -997,12 +997,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key translator file", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key translator setup DLL", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Patch = new TableDefinition( "Patch", - TupleDefinitions.Patch, + SymbolDefinitions.Patch, new[] { new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, foreign key to File table, must match identifier in cabinet.", modularizeType: ColumnModularizeType.Column), @@ -1012,23 +1012,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), new ColumnDefinition("StreamRef_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Identifier. Foreign key to the StreamRef column of the MsiPatchHeaders table."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition PatchPackage = new TableDefinition( "PatchPackage", - TupleDefinitions.PatchPackage, + SymbolDefinitions.PatchPackage, new[] { new ColumnDefinition("PatchId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A unique string GUID representing this patch."), new ColumnDefinition("Media_", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Foreign key to DiskId column of Media table. Indicates the disk containing the patch package."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition PublishComponent = new TableDefinition( "PublishComponent", - TupleDefinitions.PublishComponent, + SymbolDefinitions.PublishComponent, new[] { new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A string GUID that represents the component id that will be requested by the alien product."), @@ -1037,12 +1037,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("AppData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "This is localisable Application specific data that can be associated with a Qualified Component."), new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into the Feature table."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition RadioButton = new TableDefinition( "RadioButton", - TupleDefinitions.RadioButton, + SymbolDefinitions.RadioButton, new[] { new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this radio button. All the buttons tied to the same property become part of the same group.", modularizeType: ColumnModularizeType.Column), @@ -1055,12 +1055,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible title to be assigned to the radio button."), new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Registry = new TableDefinition( "Registry", - TupleDefinitions.Registry, + SymbolDefinitions.Registry, new[] { new ColumnDefinition("Registry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1070,12 +1070,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the registry value.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition RegLocator = new TableDefinition( "RegLocator", - TupleDefinitions.RegLocator, + SymbolDefinitions.RegLocator, new[] { new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key.", modularizeType: ColumnModularizeType.Column), @@ -1084,12 +1084,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 18, description: "An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition RemoveFile = new TableDefinition( "RemoveFile", - TupleDefinitions.RemoveFile, + SymbolDefinitions.RemoveFile, new[] { new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), @@ -1098,7 +1098,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("InstallMode", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "1;2;3", description: "Installation option, one of iimEnum."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition RemoveIniFile = new TableDefinition( @@ -1115,12 +1115,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;4", description: "The type of modification to be made, one of iifEnum."), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the .INI value.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition RemoveRegistry = new TableDefinition( "RemoveRegistry", - TupleDefinitions.RemoveRegistry, + SymbolDefinitions.RemoveRegistry, new[] { new ColumnDefinition("RemoveRegistry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1129,12 +1129,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the registry value.", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ReserveCost = new TableDefinition( "ReserveCost", - TupleDefinitions.ReserveCost, + SymbolDefinitions.ReserveCost, new[] { new ColumnDefinition("ReserveKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular ReserveCost record", modularizeType: ColumnModularizeType.Column), @@ -1143,7 +1143,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ReserveLocal", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed locally."), new ColumnDefinition("ReserveSource", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed to run from the source location."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition SelfReg = new TableDefinition( @@ -1154,12 +1154,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the module that needs to be registered.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Cost", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The cost of registering the module."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ServiceControl = new TableDefinition( "ServiceControl", - TupleDefinitions.ServiceControl, + SymbolDefinitions.ServiceControl, new[] { new ColumnDefinition("ServiceControl", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1169,12 +1169,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Wait", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Boolean for whether to wait for the service to fully start"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ServiceInstall = new TableDefinition( "ServiceInstall", - TupleDefinitions.ServiceInstall, + SymbolDefinitions.ServiceInstall, new[] { new ColumnDefinition("ServiceInstall", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1191,12 +1191,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of service.", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiServiceConfig = new TableDefinition( "MsiServiceConfig", - TupleDefinitions.MsiServiceConfig, + SymbolDefinitions.MsiServiceConfig, new[] { new ColumnDefinition("MsiServiceConfig", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1206,12 +1206,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Argument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Argument(s) for service configuration. Value depends on the content of the ConfigType field"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of the service", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiServiceConfigFailureActions = new TableDefinition( "MsiServiceConfigFailureActions", - TupleDefinitions.MsiServiceConfigFailureActions, + SymbolDefinitions.MsiServiceConfigFailureActions, new[] { new ColumnDefinition("MsiServiceConfigFailureActions", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), @@ -1224,12 +1224,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DelayActions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of delays (time in milli-seconds), separated by [~] delmiters, to wait before taking the corresponding Action. Terminate with [~][~]"), new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of failure actions for the service", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Shortcut = new TableDefinition( "Shortcut", - TupleDefinitions.Shortcut, + SymbolDefinitions.Shortcut, new[] { new ColumnDefinition("Shortcut", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), @@ -1249,12 +1249,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DescriptionResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("DescriptionResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The description name index for the shortcut. This must be a non-negative number."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition MsiShortcutProperty = new TableDefinition( "MsiShortcutProperty", - TupleDefinitions.MsiShortcutProperty, + SymbolDefinitions.MsiShortcutProperty, new[] { new ColumnDefinition("MsiShortcutProperty", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), @@ -1262,12 +1262,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("PropertyKey", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Canonical string representation of the Property Key being set", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("PropVariantValue", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "String representation of the value in the property", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Signature = new TableDefinition( "Signature", - TupleDefinitions.Signature, + SymbolDefinitions.Signature, new[] { new ColumnDefinition("Signature", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature represents a unique file signature.", modularizeType: ColumnModularizeType.Column), @@ -1280,12 +1280,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("MaxDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum creation date of the file."), new ColumnDefinition("Languages", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Language, description: "The languages supported by the file."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition TextStyle = new TableDefinition( "TextStyle", - TupleDefinitions.TextStyle, + SymbolDefinitions.TextStyle, new[] { new ColumnDefinition("TextStyle", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the style. The primary key of this table. This name is embedded in the texts to indicate a style change."), @@ -1294,12 +1294,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Color", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "A long integer indicating the color of the string in the RGB format (Red, Green, Blue each 0-255, RGB = R + 256*G + 256^2*B)."), new ColumnDefinition("StyleBits", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 15, description: "A combination of style bits."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition TypeLib = new TableDefinition( "TypeLib", - TupleDefinitions.TypeLib, + SymbolDefinitions.TypeLib, new[] { new ColumnDefinition("LibID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The GUID that represents the library."), @@ -1311,23 +1311,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the type library to be operational."), new ColumnDefinition("Cost", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The cost associated with the registration of the typelib. This column is currently optional."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition UIText = new TableDefinition( "UIText", - TupleDefinitions.UIText, + SymbolDefinitions.UIText, new[] { new ColumnDefinition("Key", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique key that identifies the particular string."), new ColumnDefinition("Text", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The localized version of the string."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition Upgrade = new TableDefinition( "Upgrade", - TupleDefinitions.Upgrade, + SymbolDefinitions.Upgrade, new[] { new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The UpgradeCode GUID belonging to the products in this set."), @@ -1339,12 +1339,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ActionProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.UpperCase, description: "The property to set when a product in this set is found."), }, strongRowType: typeof(UpgradeRow), - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Verb = new TableDefinition( "Verb", - TupleDefinitions.Verb, + SymbolDefinitions.Verb, new[] { new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "The extension associated with the table row."), @@ -1353,7 +1353,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command text.", modularizeType: ColumnModularizeType.Property), new ColumnDefinition("Argument", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Optional value for the command arguments.", modularizeType: ColumnModularizeType.Property), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleAdminExecuteSequence = new TableDefinition( @@ -1367,7 +1367,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleAdminUISequence = new TableDefinition( @@ -1381,7 +1381,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleAdvtExecuteSequence = new TableDefinition( @@ -1395,7 +1395,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleAdvtUISequence = new TableDefinition( @@ -1409,36 +1409,36 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleComponents = new TableDefinition( "ModuleComponents", - TupleDefinitions.ModuleComponents, + SymbolDefinitions.ModuleComponents, new[] { new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Component contained in the module.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module containing the component.", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Default language ID for module (may be changed by transform).", forceLocalizable: true), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleSignature = new TableDefinition( "ModuleSignature", - TupleDefinitions.ModuleSignature, + SymbolDefinitions.ModuleSignature, new[] { new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Module identifier (String.GUID).", modularizeType: ColumnModularizeType.Column), new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Default decimal language of module.", forceLocalizable: true), new ColumnDefinition("Version", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Version, description: "Version of the module."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleConfiguration = new TableDefinition( "ModuleConfiguration", - TupleDefinitions.ModuleConfiguration, + SymbolDefinitions.ModuleConfiguration, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for this row."), @@ -1452,12 +1452,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("HelpLocation", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Filename or namespace of the context-sensitive help for this item."), new ColumnDefinition("HelpKeyword", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Keyword index into the HelpLocation for this item."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleDependency = new TableDefinition( "ModuleDependency", - TupleDefinitions.ModuleDependency, + SymbolDefinitions.ModuleDependency, new[] { new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module requiring the dependency.", modularizeType: ColumnModularizeType.Column), @@ -1466,12 +1466,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("RequiredLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "LanguageID of the required module.", forceLocalizable: true), new ColumnDefinition("RequiredVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Version of the required version."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleExclusion = new TableDefinition( "ModuleExclusion", - TupleDefinitions.ModuleExclusion, + SymbolDefinitions.ModuleExclusion, new[] { new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "String.GUID of module with exclusion requirement.", modularizeType: ColumnModularizeType.Column), @@ -1481,17 +1481,17 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ExcludedMinVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Minimum version of excluded module."), new ColumnDefinition("ExcludedMaxVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Maximum version of excluded module."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ModuleIgnoreTable = new TableDefinition( "ModuleIgnoreTable", - TupleDefinitions.ModuleIgnoreTable, + SymbolDefinitions.ModuleIgnoreTable, new[] { new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table name to ignore during merge operation."), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleInstallExecuteSequence = new TableDefinition( @@ -1505,7 +1505,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleInstallUISequence = new TableDefinition( @@ -1519,12 +1519,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), }, - tupleIdIsPrimaryKey: true + symbolIdIsPrimaryKey: true ); public static readonly TableDefinition ModuleSubstitution = new TableDefinition( "ModuleSubstitution", - TupleDefinitions.ModuleSubstitution, + SymbolDefinitions.ModuleSubstitution, new[] { new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table containing the data to be modified."), @@ -1532,23 +1532,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Column", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Column containing the data to be modified."), new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Template for modification data."), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Properties = new TableDefinition( "Properties", - TupleDefinitions.Properties, + SymbolDefinitions.Properties, new[] { new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key, non-localized token"), new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Value of the property"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ImageFamilies = new TableDefinition( "ImageFamilies", - TupleDefinitions.ImageFamilies, + SymbolDefinitions.ImageFamilies, new[] { new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), @@ -1558,12 +1558,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("DiskPrompt", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, forceLocalizable: true), new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition UpgradedImages = new TableDefinition( "UpgradedImages", - TupleDefinitions.UpgradedImages, + SymbolDefinitions.UpgradedImages, new[] { new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), @@ -1572,23 +1572,23 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family to which this image belongs"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition UpgradedFilesToIgnore = new TableDefinition( "UpgradedFilesToIgnore", - TupleDefinitions.UpgradedFilesToIgnore, + SymbolDefinitions.UpgradedFilesToIgnore, new[] { new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition UpgradedFilesOptionalData = new TableDefinition( "UpgradedFiles_OptionalData", - TupleDefinitions.UpgradedFilesOptionalData, + SymbolDefinitions.UpgradedFilesOptionalData, new[] { new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), @@ -1597,12 +1597,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("AllowIgnoreOnPatchError", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), new ColumnDefinition("IncludeWholeFile", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition TargetImages = new TableDefinition( "TargetImages", - TupleDefinitions.TargetImages, + SymbolDefinitions.TargetImages, new[] { new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text), @@ -1613,12 +1613,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("ProductValidateFlags", ColumnType.String, 16, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("IgnoreMissingSrcFiles", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition TargetFilesOptionalData = new TableDefinition( "TargetFiles_OptionalData", - TupleDefinitions.TargetFilesOptionalData, + SymbolDefinitions.TargetFilesOptionalData, new[] { new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "TargetImages", keyColumn: 1, description: "Foreign key, Target image"), @@ -1628,12 +1628,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition FamilyFileRanges = new TableDefinition( "FamilyFileRanges", - TupleDefinitions.FamilyFileRanges, + SymbolDefinitions.FamilyFileRanges, new[] { new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), @@ -1641,12 +1641,12 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("RetainOffsets", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), new ColumnDefinition("RetainLengths", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition ExternalFiles = new TableDefinition( "ExternalFiles", - TupleDefinitions.ExternalFiles, + SymbolDefinitions.ExternalFiles, new[] { new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), @@ -1658,7 +1658,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Streams = new TableDefinition( @@ -1670,18 +1670,18 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), }, unreal: true, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition SummaryInformation = new TableDefinition( "_SummaryInformation", - TupleDefinitions.SummaryInformation, + SymbolDefinitions.SummaryInformation, new[] { new ColumnDefinition("PropertyId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition TransformView = new TableDefinition( @@ -1696,7 +1696,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Current", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), }, unreal: true, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition Validation = new TableDefinition( @@ -1715,7 +1715,7 @@ namespace WixToolset.Data.WindowsInstaller new ColumnDefinition("Set", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Set of values that are permitted"), new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of column"), }, - tupleIdIsPrimaryKey: false + symbolIdIsPrimaryKey: false ); public static readonly TableDefinition[] All = new[] diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 198b2571..7b318cf8 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -7,7 +7,7 @@ namespace WixToolsetTest.Data using System.Linq; using WixToolset.Data; using WixToolset.Data.Bind; - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; using WixToolset.Data.WindowsInstaller.Rows; using Xunit; @@ -22,7 +22,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", @@ -45,12 +45,12 @@ namespace WixToolsetTest.Data Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); - var tuple = (ComponentTuple)loaded.Sections.Single().Tuples.Single(); + var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); - Assert.Equal("TestComponent", tuple.Id.Id); - Assert.Equal(AccessModifier.Public, tuple.Id.Access); - Assert.Equal("TestFolder", tuple.DirectoryRef); - Assert.Equal(ComponentLocation.Either, tuple.Location); + Assert.Equal("TestComponent", symbol.Id.Id); + Assert.Equal(AccessModifier.Public, symbol.Id.Access); + Assert.Equal("TestFolder", symbol.DirectoryRef); + Assert.Equal(ComponentLocation.Either, symbol.Location); } finally { @@ -64,7 +64,7 @@ namespace WixToolsetTest.Data var sln = new SourceLineNumber("test.wxs", 1); var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", @@ -84,14 +84,14 @@ namespace WixToolsetTest.Data using (var wixout = WixOutput.Read(uri, stream)) { var loaded = Intermediate.Load(wixout); - var tuple = (ComponentTuple)loaded.Sections.Single().Tuples.Single(); + var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); - Assert.Equal("TestComponent", tuple.Id.Id); - Assert.Equal(AccessModifier.Public, tuple.Id.Access); + Assert.Equal("TestComponent", symbol.Id.Id); + Assert.Equal(AccessModifier.Public, symbol.Id.Access); wixout.Reopen(writable: true); - section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "NewComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "NewComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), }); @@ -99,13 +99,13 @@ namespace WixToolsetTest.Data intermediate.Save(wixout); loaded = Intermediate.Load(wixout); - var newTuple = loaded.Sections.Single().Tuples.Where(t => t.Id.Id == "NewComponent"); - Assert.Single(newTuple); + var newSymbol = loaded.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); + Assert.Single(newSymbol); } var loadedAfterDispose = Intermediate.Load(path); - var newTupleStillThere = loadedAfterDispose.Sections.Single().Tuples.Where(t => t.Id.Id == "NewComponent"); - Assert.Single(newTupleStillThere); + var newSymbolStillThere = loadedAfterDispose.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); + Assert.Single(newSymbolStillThere); } finally @@ -128,14 +128,14 @@ namespace WixToolsetTest.Data new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), }; - var tupleDef = new IntermediateTupleDefinition("CustomDef2", fieldDefs, null); + var symbolDef = new IntermediateSymbolDefinition("CustomDef2", fieldDefs, null); - var tuple = tupleDef.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT")); - tuple.Set(0, "foo"); - tuple.Set(1, 2); - tuple.Set(2, true); + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT")); + symbol.Set(0, "foo"); + symbol.Set(1, 2); + symbol.Set(2, true); - section.Tuples.Add(tuple); + section.Symbols.Add(symbol); var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); @@ -146,11 +146,11 @@ namespace WixToolsetTest.Data var loaded = Intermediate.Load(path); var loadedSection = loaded.Sections.Single(); - var loadedTuple = loadedSection.Tuples.Single(); + var loadedSymbol = loadedSection.Symbols.Single(); - Assert.Equal("foo", loadedTuple.AsString(0)); - Assert.Equal(2, loadedTuple[1].AsNumber()); - Assert.True(loadedTuple[2].AsBool()); + Assert.Equal("foo", loadedSymbol.AsString(0)); + Assert.Equal(2, loadedSymbol[1].AsNumber()); + Assert.True(loadedSymbol[2].AsBool()); } finally { @@ -171,15 +171,15 @@ namespace WixToolsetTest.Data new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), }; - var tupleDef = new IntermediateTupleDefinition("CustomDef", fieldDefs, null); + var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); - var tuple = tupleDef.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT")); - tuple.Set(0, "foo"); - tuple.Set(1, 2); - tuple.Set(2, true); + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT")); + symbol.Set(0, "foo"); + symbol.Set(1, 2); + symbol.Set(2, true); var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Tuples.Add(tuple); + section.Symbols.Add(symbol); var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); @@ -192,16 +192,16 @@ namespace WixToolsetTest.Data new IntermediateFieldDefinition("D", IntermediateFieldType.String), }; - var tupleDef2 = new IntermediateTupleDefinition("CustomDef2", 1, fieldDefs2, null); + var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); - var tuple2 = tupleDef2.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT2")); - tuple2.Set(0, "bar"); - tuple2.Set(1, 3); - tuple2.Set(2, false); - tuple2.Set(3, "baz"); + var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT2")); + symbol2.Set(0, "bar"); + symbol2.Set(1, 3); + symbol2.Set(2, false); + symbol2.Set(3, "baz"); var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); - section2.Tuples.Add(tuple2); + section2.Symbols.Add(symbol2); var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); @@ -218,17 +218,17 @@ namespace WixToolsetTest.Data var loaded1 = loaded.First(); var loaded2 = loaded.Skip(1).Single(); - var loadedTuple1 = loaded1.Sections.Single().Tuples.Single(); - var loadedTuple2 = loaded2.Sections.Single().Tuples.Single(); + var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); + var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); - Assert.Equal("foo", loadedTuple1.AsString(0)); - Assert.Equal(2, loadedTuple1[1].AsNumber()); - Assert.True(loadedTuple1[2].AsBool()); + Assert.Equal("foo", loadedSymbol1.AsString(0)); + Assert.Equal(2, loadedSymbol1[1].AsNumber()); + Assert.True(loadedSymbol1[2].AsBool()); - Assert.Equal("bar", loadedTuple2.AsString(0)); - Assert.Equal(3, loadedTuple2[1].AsNumber()); - Assert.False(loadedTuple2[2].AsBool()); - Assert.Equal("baz", loadedTuple2.AsString(3)); + Assert.Equal("bar", loadedSymbol2.AsString(0)); + Assert.Equal(3, loadedSymbol2[1].AsNumber()); + Assert.False(loadedSymbol2[2].AsBool()); + Assert.Equal("baz", loadedSymbol2.AsString(3)); } finally { @@ -250,19 +250,19 @@ namespace WixToolsetTest.Data new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), }; - var tupleDef = new IntermediateTupleDefinition("CustomDef", fieldDefs, null); + var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); - tupleDef.AddTag("customDef"); + symbolDef.AddTag("customDef"); - var tuple = tupleDef.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT")); - tuple.Set(0, "foo"); - tuple.Set(1, 2); - tuple.Set(2, true); + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT")); + symbol.Set(0, "foo"); + symbol.Set(1, 2); + symbol.Set(2, true); - tuple.AddTag("tuple1tag"); + symbol.AddTag("symbol1tag"); var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Tuples.Add(tuple); + section.Symbols.Add(symbol); var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); @@ -275,22 +275,22 @@ namespace WixToolsetTest.Data new IntermediateFieldDefinition("D", IntermediateFieldType.String), }; - var tupleDef2 = new IntermediateTupleDefinition("CustomDef2", 1, fieldDefs2, null); + var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); - tupleDef2.AddTag("customDef2"); - tupleDef2.AddTag("customDef2 tag2"); + symbolDef2.AddTag("customDef2"); + symbolDef2.AddTag("customDef2 tag2"); - var tuple2 = tupleDef2.CreateTuple(sln, new Identifier(AccessModifier.Public, "customT2")); - tuple2.Set(0, "bar"); - tuple2.Set(1, 3); - tuple2.Set(2, false); - tuple2.Set(3, "baz"); + var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT2")); + symbol2.Set(0, "bar"); + symbol2.Set(1, 3); + symbol2.Set(2, false); + symbol2.Set(3, "baz"); - tuple2.AddTag("tuple2tag1"); - tuple2.AddTag("tuple2tag2"); + symbol2.AddTag("symbol2tag1"); + symbol2.AddTag("symbol2tag2"); var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); - section2.Tuples.Add(tuple2); + section2.Symbols.Add(symbol2); var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); @@ -307,23 +307,23 @@ namespace WixToolsetTest.Data var loaded1 = loaded.First(); var loaded2 = loaded.Skip(1).Single(); - var loadedTuple1 = loaded1.Sections.Single().Tuples.Single(); - var loadedTuple2 = loaded2.Sections.Single().Tuples.Single(); - - Assert.True(loadedTuple1.Definition.HasTag("customDef")); - Assert.Equal("foo", loadedTuple1.AsString(0)); - Assert.Equal(2, loadedTuple1[1].AsNumber()); - Assert.True(loadedTuple1[2].AsBool()); - Assert.True(loadedTuple1.HasTag("tuple1tag")); - - Assert.True(loadedTuple2.Definition.HasTag("customDef2")); - Assert.True(loadedTuple2.Definition.HasTag("customDef2 tag2")); - Assert.Equal("bar", loadedTuple2.AsString(0)); - Assert.Equal(3, loadedTuple2[1].AsNumber()); - Assert.False(loadedTuple2[2].AsBool()); - Assert.Equal("baz", loadedTuple2.AsString(3)); - Assert.True(loadedTuple2.HasTag("tuple2tag1")); - Assert.True(loadedTuple2.HasTag("tuple2tag2")); + var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); + var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); + + Assert.True(loadedSymbol1.Definition.HasTag("customDef")); + Assert.Equal("foo", loadedSymbol1.AsString(0)); + Assert.Equal(2, loadedSymbol1[1].AsNumber()); + Assert.True(loadedSymbol1[2].AsBool()); + Assert.True(loadedSymbol1.HasTag("symbol1tag")); + + Assert.True(loadedSymbol2.Definition.HasTag("customDef2")); + Assert.True(loadedSymbol2.Definition.HasTag("customDef2 tag2")); + Assert.Equal("bar", loadedSymbol2.AsString(0)); + Assert.Equal(3, loadedSymbol2[1].AsNumber()); + Assert.False(loadedSymbol2[2].AsBool()); + Assert.Equal("baz", loadedSymbol2.AsString(3)); + Assert.True(loadedSymbol2.HasTag("symbol2tag1")); + Assert.True(loadedSymbol2.HasTag("symbol2tag2")); } finally { @@ -356,7 +356,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Tuples.Add(new ComponentTuple(sln, new Identifier(AccessModifier.Public, "TestComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", diff --git a/src/test/WixToolsetTest.Data/TagFixture.cs b/src/test/WixToolsetTest.Data/TagFixture.cs index 4c0426a0..5527c978 100644 --- a/src/test/WixToolsetTest.Data/TagFixture.cs +++ b/src/test/WixToolsetTest.Data/TagFixture.cs @@ -10,92 +10,92 @@ namespace WixToolsetTest.Data [Fact] public void CanAddSingleTag() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test")); - Assert.True(tuple.HasTag("test")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test")); + Assert.True(symbol.HasTag("test")); } [Fact] public void CanAddDuplicateTag() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test")); - Assert.False(tuple.AddTag("test")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test")); + Assert.False(symbol.AddTag("test")); } [Fact] public void CanAddRemoveSingleTag() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test")); - Assert.True(tuple.RemoveTag("test")); - Assert.False(tuple.HasTag("test")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test")); + Assert.True(symbol.RemoveTag("test")); + Assert.False(symbol.HasTag("test")); } [Fact] public void CanAddMultipleTags() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test1")); - Assert.True(tuple.AddTag("test2")); - Assert.True(tuple.HasTag("test1")); - Assert.True(tuple.HasTag("test2")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.HasTag("test1")); + Assert.True(symbol.HasTag("test2")); } [Fact] public void CanAddRemoveMultipleTags() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test1")); - Assert.True(tuple.AddTag("test2")); - Assert.True(tuple.RemoveTag("test2")); - Assert.False(tuple.HasTag("test2")); - Assert.True(tuple.RemoveTag("test1")); - Assert.False(tuple.HasTag("test1")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.RemoveTag("test2")); + Assert.False(symbol.HasTag("test2")); + Assert.True(symbol.RemoveTag("test1")); + Assert.False(symbol.HasTag("test1")); } [Fact] public void CanAddRemoveMissingTags() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test1")); - Assert.True(tuple.AddTag("test2")); - Assert.False(tuple.RemoveTag("test3")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.False(symbol.RemoveTag("test3")); } [Fact] public void CanAdd2AndRemoveAllTags() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test1")); - Assert.True(tuple.AddTag("test2")); - Assert.True(tuple.RemoveTag("test1")); - Assert.True(tuple.RemoveTag("test2")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.RemoveTag("test1")); + Assert.True(symbol.RemoveTag("test2")); } [Fact] public void CanAdd3AndRemoveAllTags() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test1")); - Assert.True(tuple.AddTag("test2")); - Assert.True(tuple.AddTag("test3")); - Assert.True(tuple.RemoveTag("test1")); - Assert.True(tuple.RemoveTag("test3")); - Assert.True(tuple.RemoveTag("test2")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.AddTag("test3")); + Assert.True(symbol.RemoveTag("test1")); + Assert.True(symbol.RemoveTag("test3")); + Assert.True(symbol.RemoveTag("test2")); } [Fact] public void CanAdd3AndRemoveMissingTags() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.True(tuple.AddTag("test1")); - Assert.True(tuple.AddTag("test2")); - Assert.True(tuple.AddTag("test3")); - Assert.False(tuple.RemoveTag("test4")); - Assert.True(tuple.RemoveTag("test1")); - Assert.True(tuple.RemoveTag("test3")); - Assert.True(tuple.RemoveTag("test2")); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.AddTag("test3")); + Assert.False(symbol.RemoveTag("test4")); + Assert.True(symbol.RemoveTag("test1")); + Assert.True(symbol.RemoveTag("test3")); + Assert.True(symbol.RemoveTag("test2")); } } } diff --git a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs index 9854ba9f..cde4a675 100644 --- a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs +++ b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs @@ -3,59 +3,59 @@ namespace WixToolsetTest.Data { using WixToolset.Data; - using WixToolset.Data.Tuples; + using WixToolset.Data.Symbols; using Xunit; - public class TupleDefinitionFixture + public class SymbolDefinitionFixture { [Fact] - public void CanCreateFileTuple() + public void CanCreateFileSymbol() { - var tuple = TupleDefinitions.File.CreateTuple(); - Assert.IsType(tuple); - Assert.Same(TupleDefinitions.File, tuple.Definition); + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.IsType(symbol); + Assert.Same(SymbolDefinitions.File, symbol.Definition); } [Fact] - public void CanCreateFileTupleByName() + public void CanCreateFileSymbolByName() { - var tuple = TupleDefinitions.ByName("File").CreateTuple(); - Assert.IsType(tuple); - Assert.Same(TupleDefinitions.File, tuple.Definition); + var symbol = SymbolDefinitions.ByName("File").CreateSymbol(); + Assert.IsType(symbol); + Assert.Same(SymbolDefinitions.File, symbol.Definition); } //[Fact] - //public void CanCreateFileTupleByType() + //public void CanCreateFileSymbolByType() //{ - // var tuple = TupleDefinitions.CreateTuple(); - // Assert.Same(TupleDefinitions.File, tuple.Definition); + // var symbol = SymbolDefinitions.CreateSymbol(); + // Assert.Same(SymbolDefinitions.File, symbol.Definition); //} [Fact] - public void CanSetComponentFieldInFileTupleByCasting() + public void CanSetComponentFieldInFileSymbolByCasting() { - var fileTuple = (FileTuple)TupleDefinitions.File.CreateTuple(); - fileTuple.ComponentRef = "Foo"; - Assert.Equal("Foo", fileTuple.ComponentRef); + var fileSymbol = (FileSymbol)SymbolDefinitions.File.CreateSymbol(); + fileSymbol.ComponentRef = "Foo"; + Assert.Equal("Foo", fileSymbol.ComponentRef); } [Fact] public void CanCheckNameofField() { - var fileTuple = new FileTuple(); - Assert.Equal("ComponentRef", fileTuple.Definition.FieldDefinitions[0].Name); - Assert.Null(fileTuple.Fields[0]); - fileTuple.ComponentRef = "Foo"; - Assert.Equal("ComponentRef", fileTuple.Fields[0].Name); - Assert.Same(fileTuple.Definition.FieldDefinitions[0].Name, fileTuple.Fields[0].Name); + var fileSymbol = new FileSymbol(); + Assert.Equal("ComponentRef", fileSymbol.Definition.FieldDefinitions[0].Name); + Assert.Null(fileSymbol.Fields[0]); + fileSymbol.ComponentRef = "Foo"; + Assert.Equal("ComponentRef", fileSymbol.Fields[0].Name); + Assert.Same(fileSymbol.Definition.FieldDefinitions[0].Name, fileSymbol.Fields[0].Name); } [Fact] - public void CanSetComponentFieldInFileTupleByNew() + public void CanSetComponentFieldInFileSymbolByNew() { - var fileTuple = new FileTuple(); - fileTuple.ComponentRef = "Foo"; - Assert.Equal("Foo", fileTuple.ComponentRef); + var fileSymbol = new FileSymbol(); + fileSymbol.ComponentRef = "Foo"; + Assert.Equal("Foo", fileSymbol.ComponentRef); } [Fact] @@ -63,10 +63,10 @@ namespace WixToolsetTest.Data { using (new IntermediateFieldContext("bar")) { - var fileTuple = new FileTuple(); - fileTuple.ComponentRef = "Foo"; + var fileSymbol = new FileSymbol(); + fileSymbol.ComponentRef = "Foo"; - var field = fileTuple[FileTupleFields.ComponentRef]; + var field = fileSymbol[FileSymbolFields.ComponentRef]; Assert.Equal("Foo", field.AsString()); Assert.Equal("bar", field.Context); } @@ -75,21 +75,21 @@ namespace WixToolsetTest.Data [Fact] public void CanSetInNestedContext() { - var fileTuple = new FileTuple(); + var fileSymbol = new FileSymbol(); using (new IntermediateFieldContext("bar")) { - fileTuple.ComponentRef = "Foo"; + fileSymbol.ComponentRef = "Foo"; - var field = fileTuple[FileTupleFields.ComponentRef]; + var field = fileSymbol[FileSymbolFields.ComponentRef]; Assert.Equal("Foo", field.AsString()); Assert.Equal("bar", field.Context); using (new IntermediateFieldContext("baz")) { - fileTuple.ComponentRef = "Foo2"; + fileSymbol.ComponentRef = "Foo2"; - field = fileTuple[FileTupleFields.ComponentRef]; + field = fileSymbol[FileSymbolFields.ComponentRef]; Assert.Equal("Foo2", field.AsString()); Assert.Equal("baz", field.Context); @@ -97,9 +97,9 @@ namespace WixToolsetTest.Data Assert.Equal("bar", field.PreviousValue.Context); } - fileTuple.ComponentRef = "Foo3"; + fileSymbol.ComponentRef = "Foo3"; - field = fileTuple[FileTupleFields.ComponentRef]; + field = fileSymbol[FileSymbolFields.ComponentRef]; Assert.Equal("Foo3", field.AsString()); Assert.Equal("bar", field.Context); @@ -110,26 +110,26 @@ namespace WixToolsetTest.Data Assert.Equal("bar", field.PreviousValue.PreviousValue.Context); } - fileTuple.ComponentRef = "Foo4"; + fileSymbol.ComponentRef = "Foo4"; - var fieldOutside = fileTuple[FileTupleFields.ComponentRef]; + var fieldOutside = fileSymbol[FileSymbolFields.ComponentRef]; Assert.Equal("Foo4", fieldOutside.AsString()); Assert.Null(fieldOutside.Context); } //[Fact] - //public void CanSetComponentFieldInFileTuple() + //public void CanSetComponentFieldInFileSymbol() //{ - // var fileTuple = TupleDefinitions.File.CreateTuple(); - // fileTuple.Component_ = "Foo"; - // Assert.Equal("Foo", fileTuple.Component_); + // var fileSymbol = SymbolDefinitions.File.CreateSymbol(); + // fileSymbol.Component_ = "Foo"; + // Assert.Equal("Foo", fileSymbol.Component_); //} //[Fact] - //public void CanThrowOnMismatchTupleType() + //public void CanThrowOnMismatchSymbolType() //{ - // var e = Assert.Throws(() => TupleDefinitions.File.CreateTuple()); - // Assert.Equal("Requested wrong type WixToolset.Data.Tuples.ComponentTuple, actual type WixToolset.Data.Tuples.FileTuple", e.Message); + // var e = Assert.Throws(() => SymbolDefinitions.File.CreateSymbol()); + // Assert.Equal("Requested wrong type WixToolset.Data.Symbols.ComponentSymbol, actual type WixToolset.Data.Symbols.FileSymbol", e.Message); //} } } -- cgit v1.2.3-55-g6feb From d87492c97b5ac6eec1c86c4cc8b2b45e9f8ad165 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 24 Jun 2020 14:41:52 -0700 Subject: The Great Tuple to Symbol File Rename (tm) --- src/WixToolset.Data/Symbols/ActionTextSymbol.cs | 60 + src/WixToolset.Data/Symbols/AppIdSymbol.cs | 92 + src/WixToolset.Data/Symbols/AppSearchSymbol.cs | 52 + src/WixToolset.Data/Symbols/AssemblySymbol.cs | 96 + src/WixToolset.Data/Symbols/BBControlSymbol.cs | 180 + src/WixToolset.Data/Symbols/BillboardSymbol.cs | 60 + src/WixToolset.Data/Symbols/BinarySymbol.cs | 44 + src/WixToolset.Data/Symbols/CCPSearchSymbol.cs | 36 + src/WixToolset.Data/Symbols/CheckBoxSymbol.cs | 52 + src/WixToolset.Data/Symbols/ClassSymbol.cs | 140 + src/WixToolset.Data/Symbols/ComboBoxSymbol.cs | 68 + src/WixToolset.Data/Symbols/CompLocatorSymbol.cs | 60 + src/WixToolset.Data/Symbols/ComplusSymbol.cs | 52 + src/WixToolset.Data/Symbols/ComponentSymbol.cs | 155 + src/WixToolset.Data/Symbols/ConditionSymbol.cs | 60 + .../Symbols/ControlConditionSymbol.cs | 68 + src/WixToolset.Data/Symbols/ControlEventSymbol.cs | 84 + src/WixToolset.Data/Symbols/ControlSymbol.cs | 303 ++ src/WixToolset.Data/Symbols/CreateFolderSymbol.cs | 52 + src/WixToolset.Data/Symbols/CustomActionSymbol.cs | 168 + src/WixToolset.Data/Symbols/DialogSymbol.cs | 188 + src/WixToolset.Data/Symbols/DirectorySymbol.cs | 84 + src/WixToolset.Data/Symbols/DrLocatorSymbol.cs | 68 + src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs | 68 + src/WixToolset.Data/Symbols/EnvironmentSymbol.cs | 114 + src/WixToolset.Data/Symbols/ErrorSymbol.cs | 44 + src/WixToolset.Data/Symbols/EventMappingSymbol.cs | 68 + src/WixToolset.Data/Symbols/ExtensionSymbol.cs | 76 + src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs | 100 + .../Symbols/FamilyFileRangesSymbol.cs | 68 + .../Symbols/FeatureComponentsSymbol.cs | 52 + src/WixToolset.Data/Symbols/FeatureSymbol.cs | 129 + .../Symbols/FileSFPCatalogSymbol.cs | 52 + src/WixToolset.Data/Symbols/FileSymbol.cs | 257 ++ src/WixToolset.Data/Symbols/IconSymbol.cs | 44 + src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs | 84 + src/WixToolset.Data/Symbols/IniFileSymbol.cs | 92 + src/WixToolset.Data/Symbols/IniLocatorSymbol.cs | 84 + .../Symbols/InifFileActionSymbol.cs | 13 + .../Symbols/IsolatedComponentSymbol.cs | 52 + .../Symbols/LaunchConditionSymbol.cs | 52 + src/WixToolset.Data/Symbols/ListBoxSymbol.cs | 68 + src/WixToolset.Data/Symbols/ListViewSymbol.cs | 76 + src/WixToolset.Data/Symbols/LocatorSymbol.cs | 12 + .../Symbols/LockPermissionsSymbol.cs | 76 + src/WixToolset.Data/Symbols/MIMESymbol.cs | 60 + src/WixToolset.Data/Symbols/MediaSymbol.cs | 100 + .../Symbols/ModuleComponentsSymbol.cs | 60 + .../Symbols/ModuleConfigurationSymbol.cs | 116 + .../Symbols/ModuleDependencySymbol.cs | 76 + .../Symbols/ModuleExclusionSymbol.cs | 84 + .../Symbols/ModuleIgnoreTableSymbol.cs | 36 + .../Symbols/ModuleSignatureSymbol.cs | 60 + .../Symbols/ModuleSubstitutionSymbol.cs | 68 + src/WixToolset.Data/Symbols/MoveFileSymbol.cs | 84 + .../Symbols/MsiAssemblyNameSymbol.cs | 60 + .../Symbols/MsiDigitalCertificateSymbol.cs | 44 + .../Symbols/MsiDigitalSignatureSymbol.cs | 68 + .../Symbols/MsiEmbeddedChainerSymbol.cs | 68 + src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs | 76 + src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs | 76 + .../Symbols/MsiLockPermissionsExSymbol.cs | 68 + .../Symbols/MsiPackageCertificateSymbol.cs | 52 + .../Symbols/MsiPatchCertificateSymbol.cs | 52 + .../Symbols/MsiPatchHeadersSymbol.cs | 52 + .../Symbols/MsiPatchMetadataSymbol.cs | 60 + .../Symbols/MsiPatchOldAssemblyFileSymbol.cs | 52 + .../Symbols/MsiPatchOldAssemblyNameSymbol.cs | 60 + .../Symbols/MsiPatchSequenceSymbol.cs | 68 + .../MsiServiceConfigFailureActionsSymbol.cs | 116 + .../Symbols/MsiServiceConfigSymbol.cs | 101 + .../Symbols/MsiShortcutPropertySymbol.cs | 60 + src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs | 60 + .../Symbols/ODBCDataSourceSymbol.cs | 68 + src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs | 68 + .../Symbols/ODBCSourceAttributeSymbol.cs | 60 + .../Symbols/ODBCTranslatorSymbol.cs | 68 + src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs | 60 + src/WixToolset.Data/Symbols/PatchPackageSymbol.cs | 52 + src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs | 68 + src/WixToolset.Data/Symbols/PatchSymbol.cs | 84 + src/WixToolset.Data/Symbols/ProgIdSymbol.cs | 84 + src/WixToolset.Data/Symbols/PropertiesSymbol.cs | 52 + src/WixToolset.Data/Symbols/PropertySymbol.cs | 44 + .../Symbols/ProvidesDependencySymbol.cs | 84 + .../Symbols/PublishComponentSymbol.cs | 76 + src/WixToolset.Data/Symbols/RadioButtonSymbol.cs | 108 + src/WixToolset.Data/Symbols/RegLocatorSymbol.cs | 83 + src/WixToolset.Data/Symbols/RegistryRootType.cs | 21 + src/WixToolset.Data/Symbols/RegistrySymbol.cs | 108 + src/WixToolset.Data/Symbols/RemoveFileSymbol.cs | 76 + .../Symbols/RemoveRegistrySymbol.cs | 82 + src/WixToolset.Data/Symbols/ReserveCostSymbol.cs | 68 + src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs | 60 + .../Symbols/ServiceControlSymbol.cs | 116 + .../Symbols/ServiceInstallSymbol.cs | 173 + src/WixToolset.Data/Symbols/ShortcutSymbol.cs | 171 + src/WixToolset.Data/Symbols/SignatureSymbol.cs | 100 + .../Symbols/SummaryInformationSymbol.cs | 102 + src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 736 ++++ .../Symbols/TargetFilesOptionalDataSymbol.cs | 84 + src/WixToolset.Data/Symbols/TargetImagesSymbol.cs | 92 + src/WixToolset.Data/Symbols/TextStyleSymbol.cs | 108 + src/WixToolset.Data/Symbols/TransformsFlags.cs | 79 + src/WixToolset.Data/Symbols/TypeLibSymbol.cs | 100 + src/WixToolset.Data/Symbols/UITextSymbol.cs | 44 + src/WixToolset.Data/Symbols/UpgradeSymbol.cs | 132 + .../Symbols/UpgradedFilesOptionalDataSymbol.cs | 76 + .../Symbols/UpgradedFilesToIgnoreSymbol.cs | 52 + .../Symbols/UpgradedImagesSymbol.cs | 76 + src/WixToolset.Data/Symbols/VerbSymbol.cs | 76 + src/WixToolset.Data/Symbols/WixActionSymbol.cs | 101 + .../Symbols/WixApprovedExeForElevationSymbol.cs | 71 + .../Symbols/WixBindUpdatedFilesSymbol.cs | 44 + .../Symbols/WixBootstrapperApplicationSymbol.cs | 36 + src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs | 68 + .../Symbols/WixBundleCatalogSymbol.cs | 44 + .../Symbols/WixBundleContainerSymbol.cs | 103 + .../Symbols/WixBundleCustomDataAttributeSymbol.cs | 52 + .../Symbols/WixBundleCustomDataCellSymbol.cs | 68 + .../Symbols/WixBundleCustomDataSymbol.cs | 71 + .../Symbols/WixBundleExePackageSymbol.cs | 94 + .../Symbols/WixBundleExtensionSymbol.cs | 44 + .../Symbols/WixBundleMsiFeatureSymbol.cs | 116 + .../Symbols/WixBundleMsiPackageSymbol.cs | 105 + .../Symbols/WixBundleMsiPropertySymbol.cs | 68 + .../Symbols/WixBundleMspPackageSymbol.cs | 81 + .../Symbols/WixBundleMsuPackageSymbol.cs | 52 + .../Symbols/WixBundlePackageCommandLineSymbol.cs | 76 + .../Symbols/WixBundlePackageExitCodeSymbol.cs | 71 + .../Symbols/WixBundlePackageGroupSymbol.cs | 36 + .../Symbols/WixBundlePackageSymbol.cs | 212 ++ .../Symbols/WixBundlePatchTargetCodeSymbol.cs | 82 + .../Symbols/WixBundlePayloadGroupSymbol.cs | 36 + .../Symbols/WixBundlePayloadSymbol.cs | 206 ++ .../Symbols/WixBundleRelatedPackageSymbol.cs | 104 + .../Symbols/WixBundleRollbackBoundarySymbol.cs | 52 + .../Symbols/WixBundleSlipstreamMspSymbol.cs | 52 + src/WixToolset.Data/Symbols/WixBundleSymbol.cs | 234 ++ .../Symbols/WixBundleUpdateSymbol.cs | 52 + .../Symbols/WixBundleVariableSymbol.cs | 68 + src/WixToolset.Data/Symbols/WixChainItemSymbol.cs | 36 + src/WixToolset.Data/Symbols/WixChainSymbol.cs | 61 + .../Symbols/WixComplexReferenceSymbol.cs | 86 + .../Symbols/WixComponentGroupSymbol.cs | 44 + .../Symbols/WixComponentSearchSymbol.cs | 70 + .../Symbols/WixCustomTableCellSymbol.cs | 68 + .../Symbols/WixCustomTableColumnSymbol.cs | 203 ++ .../Symbols/WixCustomTableSymbol.cs | 56 + .../Symbols/WixDeltaPatchFileSymbol.cs | 84 + .../Symbols/WixDeltaPatchSymbolPathsSymbol.cs | 75 + .../Symbols/WixDependencyProviderSymbol.cs | 87 + .../Symbols/WixEnsureTableSymbol.cs | 44 + .../Symbols/WixFeatureGroupSymbol.cs | 36 + .../Symbols/WixFeatureModulesSymbol.cs | 52 + src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs | 125 + src/WixToolset.Data/Symbols/WixFragmentSymbol.cs | 36 + src/WixToolset.Data/Symbols/WixGroupSymbol.cs | 70 + .../Symbols/WixInstanceComponentSymbol.cs | 44 + .../Symbols/WixInstanceTransformsSymbol.cs | 68 + .../Symbols/WixMediaTemplateSymbol.cs | 86 + src/WixToolset.Data/Symbols/WixMergeSymbol.cs | 92 + src/WixToolset.Data/Symbols/WixOrderingSymbol.cs | 68 + .../Symbols/WixPatchBaselineSymbol.cs | 76 + .../Symbols/WixPatchFamilyGroupSymbol.cs | 44 + src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs | 60 + src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs | 52 + .../Symbols/WixPatchTargetSymbol.cs | 44 + .../Symbols/WixProductSearchSymbol.cs | 64 + src/WixToolset.Data/Symbols/WixPropertySymbol.cs | 68 + .../Symbols/WixRegistrySearchSymbol.cs | 81 + .../Symbols/WixRelatedBundleSymbol.cs | 60 + .../Symbols/WixSearchRelationSymbol.cs | 52 + src/WixToolset.Data/Symbols/WixSearchSymbol.cs | 60 + .../Symbols/WixSetVariableSymbol.cs | 52 + .../Symbols/WixSimpleReferenceSymbol.cs | 62 + .../Symbols/WixSuppressActionSymbol.cs | 54 + .../Symbols/WixSuppressModularizationSymbol.cs | 36 + src/WixToolset.Data/Symbols/WixUISymbol.cs | 36 + .../Symbols/WixUpdateRegistrationSymbol.cs | 76 + src/WixToolset.Data/Symbols/WixVariableSymbol.cs | 52 + src/WixToolset.Data/Tuples/ActionTextTuple.cs | 60 - src/WixToolset.Data/Tuples/AppIdTuple.cs | 92 - src/WixToolset.Data/Tuples/AppSearchTuple.cs | 52 - src/WixToolset.Data/Tuples/AssemblyTuple.cs | 96 - src/WixToolset.Data/Tuples/BBControlTuple.cs | 180 - src/WixToolset.Data/Tuples/BillboardTuple.cs | 60 - src/WixToolset.Data/Tuples/BinaryTuple.cs | 44 - src/WixToolset.Data/Tuples/CCPSearchTuple.cs | 36 - src/WixToolset.Data/Tuples/CheckBoxTuple.cs | 52 - src/WixToolset.Data/Tuples/ClassTuple.cs | 140 - src/WixToolset.Data/Tuples/ComboBoxTuple.cs | 68 - src/WixToolset.Data/Tuples/CompLocatorTuple.cs | 60 - src/WixToolset.Data/Tuples/ComplusTuple.cs | 52 - src/WixToolset.Data/Tuples/ComponentTuple.cs | 155 - src/WixToolset.Data/Tuples/ConditionTuple.cs | 60 - .../Tuples/ControlConditionTuple.cs | 68 - src/WixToolset.Data/Tuples/ControlEventTuple.cs | 84 - src/WixToolset.Data/Tuples/ControlTuple.cs | 303 -- src/WixToolset.Data/Tuples/CreateFolderTuple.cs | 52 - src/WixToolset.Data/Tuples/CustomActionTuple.cs | 168 - src/WixToolset.Data/Tuples/DialogTuple.cs | 188 - src/WixToolset.Data/Tuples/DirectoryTuple.cs | 84 - src/WixToolset.Data/Tuples/DrLocatorTuple.cs | 68 - src/WixToolset.Data/Tuples/DuplicateFileTuple.cs | 68 - src/WixToolset.Data/Tuples/EnvironmentTuple.cs | 114 - src/WixToolset.Data/Tuples/ErrorTuple.cs | 44 - src/WixToolset.Data/Tuples/EventMappingTuple.cs | 68 - src/WixToolset.Data/Tuples/ExtensionTuple.cs | 76 - src/WixToolset.Data/Tuples/ExternalFilesTuple.cs | 100 - .../Tuples/FamilyFileRangesTuple.cs | 68 - .../Tuples/FeatureComponentsTuple.cs | 52 - src/WixToolset.Data/Tuples/FeatureTuple.cs | 129 - src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs | 52 - src/WixToolset.Data/Tuples/FileTuple.cs | 257 -- src/WixToolset.Data/Tuples/IconTuple.cs | 44 - src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs | 84 - src/WixToolset.Data/Tuples/IniFileTuple.cs | 92 - src/WixToolset.Data/Tuples/IniLocatorTuple.cs | 84 - src/WixToolset.Data/Tuples/InifFileActionType.cs | 13 - .../Tuples/IsolatedComponentTuple.cs | 52 - src/WixToolset.Data/Tuples/LaunchConditionTuple.cs | 52 - src/WixToolset.Data/Tuples/ListBoxTuple.cs | 68 - src/WixToolset.Data/Tuples/ListViewTuple.cs | 76 - src/WixToolset.Data/Tuples/LocatorType.cs | 12 - src/WixToolset.Data/Tuples/LockPermissionsTuple.cs | 76 - src/WixToolset.Data/Tuples/MIMETuple.cs | 60 - src/WixToolset.Data/Tuples/MediaTuple.cs | 100 - .../Tuples/ModuleComponentsTuple.cs | 60 - .../Tuples/ModuleConfigurationTuple.cs | 116 - .../Tuples/ModuleDependencyTuple.cs | 76 - src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs | 84 - .../Tuples/ModuleIgnoreTableTuple.cs | 36 - src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs | 60 - .../Tuples/ModuleSubstitutionTuple.cs | 68 - src/WixToolset.Data/Tuples/MoveFileTuple.cs | 84 - src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs | 60 - .../Tuples/MsiDigitalCertificateTuple.cs | 44 - .../Tuples/MsiDigitalSignatureTuple.cs | 68 - .../Tuples/MsiEmbeddedChainerTuple.cs | 68 - src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs | 76 - src/WixToolset.Data/Tuples/MsiFileHashTuple.cs | 76 - .../Tuples/MsiLockPermissionsExTuple.cs | 68 - .../Tuples/MsiPackageCertificateTuple.cs | 52 - .../Tuples/MsiPatchCertificateTuple.cs | 52 - src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs | 52 - .../Tuples/MsiPatchMetadataTuple.cs | 60 - .../Tuples/MsiPatchOldAssemblyFileTuple.cs | 52 - .../Tuples/MsiPatchOldAssemblyNameTuple.cs | 60 - .../Tuples/MsiPatchSequenceTuple.cs | 68 - .../Tuples/MsiServiceConfigFailureActionsTuple.cs | 116 - .../Tuples/MsiServiceConfigTuple.cs | 101 - .../Tuples/MsiShortcutPropertyTuple.cs | 60 - src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs | 60 - src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs | 68 - src/WixToolset.Data/Tuples/ODBCDriverTuple.cs | 68 - .../Tuples/ODBCSourceAttributeTuple.cs | 60 - src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs | 68 - src/WixToolset.Data/Tuples/PatchMetadataTuple.cs | 60 - src/WixToolset.Data/Tuples/PatchPackageTuple.cs | 52 - src/WixToolset.Data/Tuples/PatchSequenceTuple.cs | 68 - src/WixToolset.Data/Tuples/PatchTuple.cs | 84 - src/WixToolset.Data/Tuples/ProgIdTuple.cs | 84 - src/WixToolset.Data/Tuples/PropertiesTuple.cs | 52 - src/WixToolset.Data/Tuples/PropertyTuple.cs | 44 - .../Tuples/ProvidesDependencyTuple.cs | 84 - .../Tuples/PublishComponentTuple.cs | 76 - src/WixToolset.Data/Tuples/RadioButtonTuple.cs | 108 - src/WixToolset.Data/Tuples/RegLocatorTuple.cs | 83 - src/WixToolset.Data/Tuples/RegistryRootType.cs | 21 - src/WixToolset.Data/Tuples/RegistryTuple.cs | 108 - src/WixToolset.Data/Tuples/RemoveFileTuple.cs | 76 - src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | 82 - src/WixToolset.Data/Tuples/ReserveCostTuple.cs | 68 - src/WixToolset.Data/Tuples/SFPCatalogTuple.cs | 60 - src/WixToolset.Data/Tuples/ServiceControlTuple.cs | 116 - src/WixToolset.Data/Tuples/ServiceInstallTuple.cs | 173 - src/WixToolset.Data/Tuples/ShortcutTuple.cs | 171 - src/WixToolset.Data/Tuples/SignatureTuple.cs | 100 - .../Tuples/SummaryInformationTuple.cs | 102 - .../Tuples/TargetFilesOptionalDataTuple.cs | 84 - src/WixToolset.Data/Tuples/TargetImagesTuple.cs | 92 - src/WixToolset.Data/Tuples/TextStyleTuple.cs | 108 - src/WixToolset.Data/Tuples/TransformsFlags.cs | 79 - src/WixToolset.Data/Tuples/TupleDefinitions.cs | 736 ---- src/WixToolset.Data/Tuples/TypeLibTuple.cs | 100 - src/WixToolset.Data/Tuples/UITextTuple.cs | 44 - src/WixToolset.Data/Tuples/UpgradeTuple.cs | 132 - .../Tuples/UpgradedFilesOptionalDataTuple.cs | 76 - .../Tuples/UpgradedFilesToIgnoreTuple.cs | 52 - src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs | 76 - src/WixToolset.Data/Tuples/VerbTuple.cs | 76 - src/WixToolset.Data/Tuples/WixActionTuple.cs | 101 - .../Tuples/WixApprovedExeForElevationTuple.cs | 71 - .../Tuples/WixBindUpdatedFilesTuple.cs | 44 - .../Tuples/WixBootstrapperApplicationTuple.cs | 36 - src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs | 68 - .../Tuples/WixBundleCatalogTuple.cs | 44 - .../Tuples/WixBundleContainerTuple.cs | 103 - .../Tuples/WixBundleCustomDataAttributeTuple.cs | 52 - .../Tuples/WixBundleCustomDataCellTuple.cs | 68 - .../Tuples/WixBundleCustomDataTuple.cs | 71 - .../Tuples/WixBundleExePackageTuple.cs | 94 - .../Tuples/WixBundleExtensionTuple.cs | 44 - .../Tuples/WixBundleMsiFeatureTuple.cs | 116 - .../Tuples/WixBundleMsiPackageTuple.cs | 105 - .../Tuples/WixBundleMsiPropertyTuple.cs | 68 - .../Tuples/WixBundleMspPackageTuple.cs | 81 - .../Tuples/WixBundleMsuPackageTuple.cs | 52 - .../Tuples/WixBundlePackageCommandLineTuple.cs | 76 - .../Tuples/WixBundlePackageExitCodeTuple.cs | 71 - .../Tuples/WixBundlePackageGroupTuple.cs | 36 - .../Tuples/WixBundlePackageTuple.cs | 212 -- .../Tuples/WixBundlePatchTargetCodeTuple.cs | 82 - .../Tuples/WixBundlePayloadGroupTuple.cs | 36 - .../Tuples/WixBundlePayloadTuple.cs | 206 -- .../Tuples/WixBundleRelatedPackageTuple.cs | 104 - .../Tuples/WixBundleRollbackBoundaryTuple.cs | 52 - .../Tuples/WixBundleSlipstreamMspTuple.cs | 52 - src/WixToolset.Data/Tuples/WixBundleTuple.cs | 234 -- src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs | 52 - .../Tuples/WixBundleVariableTuple.cs | 68 - src/WixToolset.Data/Tuples/WixChainItemTuple.cs | 36 - src/WixToolset.Data/Tuples/WixChainTuple.cs | 61 - .../Tuples/WixComplexReferenceTuple.cs | 86 - .../Tuples/WixComponentGroupTuple.cs | 44 - .../Tuples/WixComponentSearchTuple.cs | 70 - .../Tuples/WixCustomTableCellTuple.cs | 68 - .../Tuples/WixCustomTableColumnTuple.cs | 203 -- src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 56 - .../Tuples/WixDeltaPatchFileTuple.cs | 84 - .../Tuples/WixDeltaPatchSymbolPathsTuple.cs | 75 - .../Tuples/WixDependencyProviderTuple.cs | 87 - src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs | 44 - src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs | 36 - .../Tuples/WixFeatureModulesTuple.cs | 52 - src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | 125 - src/WixToolset.Data/Tuples/WixFragmentTuple.cs | 36 - src/WixToolset.Data/Tuples/WixGroupTuple.cs | 70 - .../Tuples/WixInstanceComponentTuple.cs | 44 - .../Tuples/WixInstanceTransformsTuple.cs | 68 - .../Tuples/WixMediaTemplateTuple.cs | 86 - src/WixToolset.Data/Tuples/WixMergeTuple.cs | 92 - src/WixToolset.Data/Tuples/WixOrderingTuple.cs | 68 - .../Tuples/WixPatchBaselineTuple.cs | 76 - .../Tuples/WixPatchFamilyGroupTuple.cs | 44 - src/WixToolset.Data/Tuples/WixPatchIdTuple.cs | 60 - src/WixToolset.Data/Tuples/WixPatchRefTuple.cs | 52 - src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs | 44 - .../Tuples/WixProductSearchTuple.cs | 64 - src/WixToolset.Data/Tuples/WixPropertyTuple.cs | 68 - .../Tuples/WixRegistrySearchTuple.cs | 81 - .../Tuples/WixRelatedBundleTuple.cs | 60 - .../Tuples/WixSearchRelationTuple.cs | 52 - src/WixToolset.Data/Tuples/WixSearchTuple.cs | 60 - src/WixToolset.Data/Tuples/WixSetVariableTuple.cs | 52 - .../Tuples/WixSimpleReferenceTuple.cs | 62 - .../Tuples/WixSuppressActionTuple.cs | 54 - .../Tuples/WixSuppressModularizationTuple.cs | 36 - src/WixToolset.Data/Tuples/WixUITuple.cs | 36 - .../Tuples/WixUpdateRegistrationTuple.cs | 76 - src/WixToolset.Data/Tuples/WixVariableTuple.cs | 52 - src/WixToolset.Data/Tuples/tuples_new.json | 3604 -------------------- 363 files changed, 14750 insertions(+), 18354 deletions(-) create mode 100644 src/WixToolset.Data/Symbols/ActionTextSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/AppIdSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/AppSearchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/AssemblySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/BBControlSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/BillboardSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/BinarySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/CCPSearchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/CheckBoxSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ClassSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ComboBoxSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/CompLocatorSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ComplusSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ComponentSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ConditionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ControlConditionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ControlEventSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ControlSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/CreateFolderSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/CustomActionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/DialogSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/DirectorySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/DrLocatorSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/EnvironmentSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ErrorSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/EventMappingSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ExtensionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/FeatureSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/FileSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/IconSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/IniFileSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/IniLocatorSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/InifFileActionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ListBoxSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ListViewSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/LocatorSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MIMESymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MediaSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MoveFileSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/PatchPackageSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/PatchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ProgIdSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/PropertiesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/PropertySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/PublishComponentSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/RadioButtonSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/RegLocatorSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/RegistryRootType.cs create mode 100644 src/WixToolset.Data/Symbols/RegistrySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/RemoveFileSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ReserveCostSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ServiceControlSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/ShortcutSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/SignatureSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/SymbolDefinitions.cs create mode 100644 src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/TargetImagesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/TextStyleSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/TransformsFlags.cs create mode 100644 src/WixToolset.Data/Symbols/TypeLibSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/UITextSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/UpgradeSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/VerbSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixActionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixChainItemSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixChainSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixFragmentSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixGroupSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixMergeSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixOrderingSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPropertySymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixSearchSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixUISymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixVariableSymbol.cs delete mode 100644 src/WixToolset.Data/Tuples/ActionTextTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/AppIdTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/AppSearchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/AssemblyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/BBControlTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/BillboardTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/BinaryTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/CCPSearchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/CheckBoxTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ClassTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ComboBoxTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/CompLocatorTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ComplusTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ComponentTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ConditionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ControlConditionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ControlEventTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ControlTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/CreateFolderTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/CustomActionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/DialogTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/DirectoryTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/DrLocatorTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/DuplicateFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/EnvironmentTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ErrorTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/EventMappingTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ExtensionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ExternalFilesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/FeatureTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/FileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/IconTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/IniFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/IniLocatorTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/InifFileActionType.cs delete mode 100644 src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/LaunchConditionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ListBoxTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ListViewTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/LocatorType.cs delete mode 100644 src/WixToolset.Data/Tuples/LockPermissionsTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MIMETuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MediaTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MoveFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiFileHashTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ODBCDriverTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/PatchMetadataTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/PatchPackageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/PatchSequenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/PatchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ProgIdTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/PropertiesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/PropertyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/PublishComponentTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/RadioButtonTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/RegLocatorTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/RegistryRootType.cs delete mode 100644 src/WixToolset.Data/Tuples/RegistryTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/RemoveFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ReserveCostTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/SFPCatalogTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ServiceControlTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ServiceInstallTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/ShortcutTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/SignatureTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/SummaryInformationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/TargetImagesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/TextStyleTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/TransformsFlags.cs delete mode 100644 src/WixToolset.Data/Tuples/TupleDefinitions.cs delete mode 100644 src/WixToolset.Data/Tuples/TypeLibTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/UITextTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/UpgradeTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/VerbTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixActionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixChainItemTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixChainTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixCustomTableTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixFileSearchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixFragmentTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixGroupTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixMergeTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixOrderingTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPatchIdTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPatchRefTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixProductSearchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixPropertyTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixSearchTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixSetVariableTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixUITuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/WixVariableTuple.cs delete mode 100644 src/WixToolset.Data/Tuples/tuples_new.json (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/ActionTextSymbol.cs b/src/WixToolset.Data/Symbols/ActionTextSymbol.cs new file mode 100644 index 00000000..80662060 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ActionTextSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ActionText = new IntermediateSymbolDefinition( + SymbolDefinitionType.ActionText, + new[] + { + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Template), IntermediateFieldType.String), + }, + typeof(ActionTextSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ActionTextSymbolFields + { + Action, + Description, + Template, + } + + public class ActionTextSymbol : IntermediateSymbol + { + public ActionTextSymbol() : base(SymbolDefinitions.ActionText, null, null) + { + } + + public ActionTextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ActionText, sourceLineNumber, id) + { + } + + public IntermediateField this[ActionTextSymbolFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ActionTextSymbolFields.Action]; + set => this.Set((int)ActionTextSymbolFields.Action, value); + } + + public string Description + { + get => (string)this.Fields[(int)ActionTextSymbolFields.Description]; + set => this.Set((int)ActionTextSymbolFields.Description, value); + } + + public string Template + { + get => (string)this.Fields[(int)ActionTextSymbolFields.Template]; + set => this.Set((int)ActionTextSymbolFields.Template, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/AppIdSymbol.cs b/src/WixToolset.Data/Symbols/AppIdSymbol.cs new file mode 100644 index 00000000..3eafa26f --- /dev/null +++ b/src/WixToolset.Data/Symbols/AppIdSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition AppId = new IntermediateSymbolDefinition( + SymbolDefinitionType.AppId, + new[] + { + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.AppId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RemoteServerName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.LocalService), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ServiceParameters), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.DllSurrogate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ActivateAtStorage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RunAsInteractiveUser), IntermediateFieldType.Number), + }, + typeof(AppIdSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum AppIdSymbolFields + { + AppId, + RemoteServerName, + LocalService, + ServiceParameters, + DllSurrogate, + ActivateAtStorage, + RunAsInteractiveUser, + } + + public class AppIdSymbol : IntermediateSymbol + { + public AppIdSymbol() : base(SymbolDefinitions.AppId, null, null) + { + } + + public AppIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppId, sourceLineNumber, id) + { + } + + public IntermediateField this[AppIdSymbolFields index] => this.Fields[(int)index]; + + public string AppId + { + get => (string)this.Fields[(int)AppIdSymbolFields.AppId]; + set => this.Set((int)AppIdSymbolFields.AppId, value); + } + + public string RemoteServerName + { + get => (string)this.Fields[(int)AppIdSymbolFields.RemoteServerName]; + set => this.Set((int)AppIdSymbolFields.RemoteServerName, value); + } + + public string LocalService + { + get => (string)this.Fields[(int)AppIdSymbolFields.LocalService]; + set => this.Set((int)AppIdSymbolFields.LocalService, value); + } + + public string ServiceParameters + { + get => (string)this.Fields[(int)AppIdSymbolFields.ServiceParameters]; + set => this.Set((int)AppIdSymbolFields.ServiceParameters, value); + } + + public string DllSurrogate + { + get => (string)this.Fields[(int)AppIdSymbolFields.DllSurrogate]; + set => this.Set((int)AppIdSymbolFields.DllSurrogate, value); + } + + public bool? ActivateAtStorage + { + get => (bool?)this.Fields[(int)AppIdSymbolFields.ActivateAtStorage]; + set => this.Set((int)AppIdSymbolFields.ActivateAtStorage, value); + } + + public bool? RunAsInteractiveUser + { + get => (bool?)this.Fields[(int)AppIdSymbolFields.RunAsInteractiveUser]; + set => this.Set((int)AppIdSymbolFields.RunAsInteractiveUser, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/AppSearchSymbol.cs b/src/WixToolset.Data/Symbols/AppSearchSymbol.cs new file mode 100644 index 00000000..2bd3d6ba --- /dev/null +++ b/src/WixToolset.Data/Symbols/AppSearchSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition AppSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.AppSearch, + new[] + { + new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.PropertyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.SignatureRef), IntermediateFieldType.String), + }, + typeof(AppSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum AppSearchSymbolFields + { + PropertyRef, + SignatureRef, + } + + public class AppSearchSymbol : IntermediateSymbol + { + public AppSearchSymbol() : base(SymbolDefinitions.AppSearch, null, null) + { + } + + public AppSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[AppSearchSymbolFields index] => this.Fields[(int)index]; + + public string PropertyRef + { + get => (string)this.Fields[(int)AppSearchSymbolFields.PropertyRef]; + set => this.Set((int)AppSearchSymbolFields.PropertyRef, value); + } + + public string SignatureRef + { + get => (string)this.Fields[(int)AppSearchSymbolFields.SignatureRef]; + set => this.Set((int)AppSearchSymbolFields.SignatureRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/AssemblySymbol.cs b/src/WixToolset.Data/Symbols/AssemblySymbol.cs new file mode 100644 index 00000000..192ca4eb --- /dev/null +++ b/src/WixToolset.Data/Symbols/AssemblySymbol.cs @@ -0,0 +1,96 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Assembly = new IntermediateSymbolDefinition( + SymbolDefinitionType.Assembly, + new[] + { + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ManifestFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ApplicationFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ProcessorArchitecture), IntermediateFieldType.String), + }, + typeof(AssemblySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum AssemblySymbolFields + { + ComponentRef, + FeatureRef, + ManifestFileRef, + ApplicationFileRef, + Type, + ProcessorArchitecture, + } + + public enum AssemblyType + { + /// File is not an assembly. + NotAnAssembly, + + /// File is a Common Language Runtime Assembly. + DotNetAssembly, + + /// File is Win32 SxS assembly. + Win32Assembly, + } + + public class AssemblySymbol : IntermediateSymbol + { + public AssemblySymbol() : base(SymbolDefinitions.Assembly, null, null) + { + } + + public AssemblySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Assembly, sourceLineNumber, id) + { + } + + public IntermediateField this[AssemblySymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.ComponentRef]; + set => this.Set((int)AssemblySymbolFields.ComponentRef, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.FeatureRef]; + set => this.Set((int)AssemblySymbolFields.FeatureRef, value); + } + + public string ManifestFileRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.ManifestFileRef]; + set => this.Set((int)AssemblySymbolFields.ManifestFileRef, value); + } + + public string ApplicationFileRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.ApplicationFileRef]; + set => this.Set((int)AssemblySymbolFields.ApplicationFileRef, value); + } + + public AssemblyType Type + { + get => (AssemblyType)this.Fields[(int)AssemblySymbolFields.Type].AsNumber(); + set => this.Set((int)AssemblySymbolFields.Type, (int)value); + } + + public string ProcessorArchitecture + { + get => (string)this.Fields[(int)AssemblySymbolFields.ProcessorArchitecture]; + set => this.Set((int)AssemblySymbolFields.ProcessorArchitecture, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/BBControlSymbol.cs b/src/WixToolset.Data/Symbols/BBControlSymbol.cs new file mode 100644 index 00000000..277d1d85 --- /dev/null +++ b/src/WixToolset.Data/Symbols/BBControlSymbol.cs @@ -0,0 +1,180 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition BBControl = new IntermediateSymbolDefinition( + SymbolDefinitionType.BBControl, + new[] + { + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BillboardRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BBControl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Enabled), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Indirect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Integer), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Sunken), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.SourceFile), IntermediateFieldType.Path), + }, + typeof(BBControlSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum BBControlSymbolFields + { + BillboardRef, + BBControl, + Type, + X, + Y, + Width, + Height, + Attributes, + Enabled, + Indirect, + Integer, + LeftScroll, + RightAligned, + RightToLeft, + Sunken, + Visible, + Text, + SourceFile + } + + public class BBControlSymbol : IntermediateSymbol + { + public BBControlSymbol() : base(SymbolDefinitions.BBControl, null, null) + { + } + + public BBControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.BBControl, sourceLineNumber, id) + { + } + + public IntermediateField this[BBControlSymbolFields index] => this.Fields[(int)index]; + + public string BillboardRef + { + get => (string)this.Fields[(int)BBControlSymbolFields.BillboardRef]; + set => this.Set((int)BBControlSymbolFields.BillboardRef, value); + } + + public string BBControl + { + get => (string)this.Fields[(int)BBControlSymbolFields.BBControl]; + set => this.Set((int)BBControlSymbolFields.BBControl, value); + } + + public string Type + { + get => (string)this.Fields[(int)BBControlSymbolFields.Type]; + set => this.Set((int)BBControlSymbolFields.Type, value); + } + + public int X + { + get => (int)this.Fields[(int)BBControlSymbolFields.X]; + set => this.Set((int)BBControlSymbolFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)BBControlSymbolFields.Y]; + set => this.Set((int)BBControlSymbolFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)BBControlSymbolFields.Width].AsNumber(); + set => this.Set((int)BBControlSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)BBControlSymbolFields.Height]; + set => this.Set((int)BBControlSymbolFields.Height, value); + } + + public int Attributes + { + get => this.Fields[(int)BBControlSymbolFields.Attributes].AsNumber(); + set => this.Set((int)BBControlSymbolFields.Attributes, value); + } + + public bool Enabled + { + get => this.Fields[(int)BBControlSymbolFields.Enabled].AsBool(); + set => this.Set((int)BBControlSymbolFields.Enabled, value); + } + + public bool Indirect + { + get => this.Fields[(int)BBControlSymbolFields.Indirect].AsBool(); + set => this.Set((int)BBControlSymbolFields.Indirect, value); + } + + public bool Integer + { + get => this.Fields[(int)BBControlSymbolFields.Integer].AsBool(); + set => this.Set((int)BBControlSymbolFields.Integer, value); + } + + public bool LeftScroll + { + get => this.Fields[(int)BBControlSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)BBControlSymbolFields.LeftScroll, value); + } + + public bool RightAligned + { + get => this.Fields[(int)BBControlSymbolFields.RightAligned].AsBool(); + set => this.Set((int)BBControlSymbolFields.RightAligned, value); + } + + public bool RightToLeft + { + get => this.Fields[(int)BBControlSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)BBControlSymbolFields.RightToLeft, value); + } + + public bool Sunken + { + get => this.Fields[(int)BBControlSymbolFields.Sunken].AsBool(); + set => this.Set((int)BBControlSymbolFields.Sunken, value); + } + + public bool Visible + { + get => this.Fields[(int)BBControlSymbolFields.Visible].AsBool(); + set => this.Set((int)BBControlSymbolFields.Visible, value); + } + + public string Text + { + get => (string)this.Fields[(int)BBControlSymbolFields.Text]; + set => this.Set((int)BBControlSymbolFields.Text, value); + } + + public IntermediateFieldPathValue SourceFile + { + get => this.Fields[(int)BBControlSymbolFields.SourceFile].AsPath(); + set => this.Set((int)BBControlSymbolFields.SourceFile, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/BillboardSymbol.cs b/src/WixToolset.Data/Symbols/BillboardSymbol.cs new file mode 100644 index 00000000..77f60bcb --- /dev/null +++ b/src/WixToolset.Data/Symbols/BillboardSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Billboard = new IntermediateSymbolDefinition( + SymbolDefinitionType.Billboard, + new[] + { + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Ordering), IntermediateFieldType.Number), + }, + typeof(BillboardSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum BillboardSymbolFields + { + FeatureRef, + Action, + Ordering, + } + + public class BillboardSymbol : IntermediateSymbol + { + public BillboardSymbol() : base(SymbolDefinitions.Billboard, null, null) + { + } + + public BillboardSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Billboard, sourceLineNumber, id) + { + } + + public IntermediateField this[BillboardSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)BillboardSymbolFields.FeatureRef]; + set => this.Set((int)BillboardSymbolFields.FeatureRef, value); + } + + public string Action + { + get => (string)this.Fields[(int)BillboardSymbolFields.Action]; + set => this.Set((int)BillboardSymbolFields.Action, value); + } + + public int? Ordering + { + get => (int?)this.Fields[(int)BillboardSymbolFields.Ordering]; + set => this.Set((int)BillboardSymbolFields.Ordering, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/BinarySymbol.cs b/src/WixToolset.Data/Symbols/BinarySymbol.cs new file mode 100644 index 00000000..ec26b01a --- /dev/null +++ b/src/WixToolset.Data/Symbols/BinarySymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Binary = new IntermediateSymbolDefinition( + SymbolDefinitionType.Binary, + new[] + { + new IntermediateFieldDefinition(nameof(BinarySymbolFields.Data), IntermediateFieldType.Path), + }, + typeof(BinarySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum BinarySymbolFields + { + Data, + } + + public class BinarySymbol : IntermediateSymbol + { + public BinarySymbol() : base(SymbolDefinitions.Binary, null, null) + { + } + + public BinarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Binary, sourceLineNumber, id) + { + } + + public IntermediateField this[BinarySymbolFields index] => this.Fields[(int)index]; + + public IntermediateFieldPathValue Data + { + get => this.Fields[(int)BinarySymbolFields.Data].AsPath(); + set => this.Set((int)BinarySymbolFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CCPSearchSymbol.cs b/src/WixToolset.Data/Symbols/CCPSearchSymbol.cs new file mode 100644 index 00000000..6f6227fd --- /dev/null +++ b/src/WixToolset.Data/Symbols/CCPSearchSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CCPSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.CCPSearch, + new IntermediateFieldDefinition[] + { + }, + typeof(CCPSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CCPSearchSymbolFields + { + } + + public class CCPSearchSymbol : IntermediateSymbol + { + public CCPSearchSymbol() : base(SymbolDefinitions.CCPSearch, null, null) + { + } + + public CCPSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CCPSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[CCPSearchSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CheckBoxSymbol.cs b/src/WixToolset.Data/Symbols/CheckBoxSymbol.cs new file mode 100644 index 00000000..cd6355c4 --- /dev/null +++ b/src/WixToolset.Data/Symbols/CheckBoxSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CheckBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.CheckBox, + new[] + { + new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(CheckBoxSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CheckBoxSymbolFields + { + Property, + Value, + } + + public class CheckBoxSymbol : IntermediateSymbol + { + public CheckBoxSymbol() : base(SymbolDefinitions.CheckBox, null, null) + { + } + + public CheckBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CheckBox, sourceLineNumber, id) + { + } + + public IntermediateField this[CheckBoxSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)CheckBoxSymbolFields.Property]; + set => this.Set((int)CheckBoxSymbolFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)CheckBoxSymbolFields.Value]; + set => this.Set((int)CheckBoxSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ClassSymbol.cs b/src/WixToolset.Data/Symbols/ClassSymbol.cs new file mode 100644 index 00000000..833867b1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ClassSymbol.cs @@ -0,0 +1,140 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Class = new IntermediateSymbolDefinition( + SymbolDefinitionType.Class, + new[] + { + new IntermediateFieldDefinition(nameof(ClassSymbolFields.CLSID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Context), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefaultProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.AppIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.FileTypeMask), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefInprocHandler), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.RelativePath), IntermediateFieldType.Bool), + }, + typeof(ClassSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ClassSymbolFields + { + CLSID, + Context, + ComponentRef, + DefaultProgIdRef, + Description, + AppIdRef, + FileTypeMask, + IconRef, + IconIndex, + DefInprocHandler, + Argument, + FeatureRef, + RelativePath, + } + + public class ClassSymbol : IntermediateSymbol + { + public ClassSymbol() : base(SymbolDefinitions.Class, null, null) + { + } + + public ClassSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Class, sourceLineNumber, id) + { + } + + public IntermediateField this[ClassSymbolFields index] => this.Fields[(int)index]; + + public string CLSID + { + get => (string)this.Fields[(int)ClassSymbolFields.CLSID]; + set => this.Set((int)ClassSymbolFields.CLSID, value); + } + + public string Context + { + get => (string)this.Fields[(int)ClassSymbolFields.Context]; + set => this.Set((int)ClassSymbolFields.Context, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ClassSymbolFields.ComponentRef]; + set => this.Set((int)ClassSymbolFields.ComponentRef, value); + } + + public string DefaultProgIdRef + { + get => (string)this.Fields[(int)ClassSymbolFields.DefaultProgIdRef]; + set => this.Set((int)ClassSymbolFields.DefaultProgIdRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ClassSymbolFields.Description]; + set => this.Set((int)ClassSymbolFields.Description, value); + } + + public string AppIdRef + { + get => (string)this.Fields[(int)ClassSymbolFields.AppIdRef]; + set => this.Set((int)ClassSymbolFields.AppIdRef, value); + } + + public string FileTypeMask + { + get => (string)this.Fields[(int)ClassSymbolFields.FileTypeMask]; + set => this.Set((int)ClassSymbolFields.FileTypeMask, value); + } + + public string IconRef + { + get => (string)this.Fields[(int)ClassSymbolFields.IconRef]; + set => this.Set((int)ClassSymbolFields.IconRef, value); + } + + public int? IconIndex + { + get => (int?)this.Fields[(int)ClassSymbolFields.IconIndex]; + set => this.Set((int)ClassSymbolFields.IconIndex, value); + } + + public string DefInprocHandler + { + get => (string)this.Fields[(int)ClassSymbolFields.DefInprocHandler]; + set => this.Set((int)ClassSymbolFields.DefInprocHandler, value); + } + + public string Argument + { + get => (string)this.Fields[(int)ClassSymbolFields.Argument]; + set => this.Set((int)ClassSymbolFields.Argument, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)ClassSymbolFields.FeatureRef]; + set => this.Set((int)ClassSymbolFields.FeatureRef, value); + } + + public bool RelativePath + { + get => this.Fields[(int)ClassSymbolFields.RelativePath].AsBool(); + set => this.Set((int)ClassSymbolFields.RelativePath, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ComboBoxSymbol.cs b/src/WixToolset.Data/Symbols/ComboBoxSymbol.cs new file mode 100644 index 00000000..c7d8d986 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ComboBoxSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ComboBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.ComboBox, + new[] + { + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Text), IntermediateFieldType.String), + }, + typeof(ComboBoxSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ComboBoxSymbolFields + { + Property, + Order, + Value, + Text, + } + + public class ComboBoxSymbol : IntermediateSymbol + { + public ComboBoxSymbol() : base(SymbolDefinitions.ComboBox, null, null) + { + } + + public ComboBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ComboBox, sourceLineNumber, id) + { + } + + public IntermediateField this[ComboBoxSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ComboBoxSymbolFields.Property]; + set => this.Set((int)ComboBoxSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ComboBoxSymbolFields.Order]; + set => this.Set((int)ComboBoxSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ComboBoxSymbolFields.Value]; + set => this.Set((int)ComboBoxSymbolFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ComboBoxSymbolFields.Text]; + set => this.Set((int)ComboBoxSymbolFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CompLocatorSymbol.cs b/src/WixToolset.Data/Symbols/CompLocatorSymbol.cs new file mode 100644 index 00000000..9004859c --- /dev/null +++ b/src/WixToolset.Data/Symbols/CompLocatorSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CompLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.CompLocator, + new[] + { + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.Type), IntermediateFieldType.Number), + }, + typeof(CompLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CompLocatorSymbolFields + { + SignatureRef, + ComponentId, + Type, + } + + public class CompLocatorSymbol : IntermediateSymbol + { + public CompLocatorSymbol() : base(SymbolDefinitions.CompLocator, null, null) + { + } + + public CompLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CompLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[CompLocatorSymbolFields index] => this.Fields[(int)index]; + + public string SignatureRef + { + get => (string)this.Fields[(int)CompLocatorSymbolFields.SignatureRef]; + set => this.Set((int)CompLocatorSymbolFields.SignatureRef, value); + } + + public string ComponentId + { + get => (string)this.Fields[(int)CompLocatorSymbolFields.ComponentId]; + set => this.Set((int)CompLocatorSymbolFields.ComponentId, value); + } + + public LocatorType Type + { + get => (LocatorType)this.Fields[(int)CompLocatorSymbolFields.Type].AsNumber(); + set => this.Set((int)CompLocatorSymbolFields.Type, (int)value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ComplusSymbol.cs b/src/WixToolset.Data/Symbols/ComplusSymbol.cs new file mode 100644 index 00000000..fa16af86 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ComplusSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Complus = new IntermediateSymbolDefinition( + SymbolDefinitionType.Complus, + new[] + { + new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ExpType), IntermediateFieldType.Number), + }, + typeof(ComplusSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ComplusSymbolFields + { + ComponentRef, + ExpType, + } + + public class ComplusSymbol : IntermediateSymbol + { + public ComplusSymbol() : base(SymbolDefinitions.Complus, null, null) + { + } + + public ComplusSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Complus, sourceLineNumber, id) + { + } + + public IntermediateField this[ComplusSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ComplusSymbolFields.ComponentRef]; + set => this.Set((int)ComplusSymbolFields.ComponentRef, value); + } + + public int? ExpType + { + get => (int?)this.Fields[(int)ComplusSymbolFields.ExpType]; + set => this.Set((int)ComplusSymbolFields.ExpType, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ComponentSymbol.cs b/src/WixToolset.Data/Symbols/ComponentSymbol.cs new file mode 100644 index 00000000..13d398b1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ComponentSymbol.cs @@ -0,0 +1,155 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Component = new IntermediateSymbolDefinition( + SymbolDefinitionType.Component, + new[] + { + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Location), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DisableRegistryReflection), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.NeverOverwrite), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Permanent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.SharedDllRefCount), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Shared), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Transitive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.UninstallWhenSuperseded), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPathType), IntermediateFieldType.Number), + }, + typeof(ComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ComponentSymbolFields + { + ComponentId, + DirectoryRef, + Location, + DisableRegistryReflection, + NeverOverwrite, + Permanent, + SharedDllRefCount, + Shared, + Transitive, + UninstallWhenSuperseded, + Win64, + Condition, + KeyPath, + KeyPathType, + } + + public enum ComponentLocation + { + LocalOnly, + SourceOnly, + Either + } + + public class ComponentSymbol : IntermediateSymbol + { + public ComponentSymbol() : base(SymbolDefinitions.Component, null, null) + { + } + + public ComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Component, sourceLineNumber, id) + { + } + + public IntermediateField this[ComponentSymbolFields index] => this.Fields[(int)index]; + + public string ComponentId + { + get => (string)this.Fields[(int)ComponentSymbolFields.ComponentId]; + set => this.Set((int)ComponentSymbolFields.ComponentId, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)ComponentSymbolFields.DirectoryRef]; + set => this.Set((int)ComponentSymbolFields.DirectoryRef, value); + } + + public ComponentLocation Location + { + get => (ComponentLocation)this.Fields[(int)ComponentSymbolFields.Location].AsNumber(); + set => this.Set((int)ComponentSymbolFields.Location, (int)value); + } + + public bool DisableRegistryReflection + { + get => this.Fields[(int)ComponentSymbolFields.DisableRegistryReflection].AsBool(); + set => this.Set((int)ComponentSymbolFields.DisableRegistryReflection, value); + } + + public bool NeverOverwrite + { + get => this.Fields[(int)ComponentSymbolFields.NeverOverwrite].AsBool(); + set => this.Set((int)ComponentSymbolFields.NeverOverwrite, value); + } + + public bool Permanent + { + get => this.Fields[(int)ComponentSymbolFields.Permanent].AsBool(); + set => this.Set((int)ComponentSymbolFields.Permanent, value); + } + + public bool SharedDllRefCount + { + get => this.Fields[(int)ComponentSymbolFields.SharedDllRefCount].AsBool(); + set => this.Set((int)ComponentSymbolFields.SharedDllRefCount, value); + } + + public bool Shared + { + get => this.Fields[(int)ComponentSymbolFields.Shared].AsBool(); + set => this.Set((int)ComponentSymbolFields.Shared, value); + } + + public bool Transitive + { + get => this.Fields[(int)ComponentSymbolFields.Transitive].AsBool(); + set => this.Set((int)ComponentSymbolFields.Transitive, value); + } + + public bool UninstallWhenSuperseded + { + get => this.Fields[(int)ComponentSymbolFields.UninstallWhenSuperseded].AsBool(); + set => this.Set((int)ComponentSymbolFields.UninstallWhenSuperseded, value); + } + + public bool Win64 + { + get => this.Fields[(int)ComponentSymbolFields.Win64].AsBool(); + set => this.Set((int)ComponentSymbolFields.Win64, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ComponentSymbolFields.Condition]; + set => this.Set((int)ComponentSymbolFields.Condition, value); + } + + public string KeyPath + { + get => (string)this.Fields[(int)ComponentSymbolFields.KeyPath]; + set => this.Set((int)ComponentSymbolFields.KeyPath, value); + } + + public ComponentKeyPathType KeyPathType + { + get => (ComponentKeyPathType)this.Fields[(int)ComponentSymbolFields.KeyPathType].AsNumber(); + set => this.Set((int)ComponentSymbolFields.KeyPathType, (int)value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ConditionSymbol.cs b/src/WixToolset.Data/Symbols/ConditionSymbol.cs new file mode 100644 index 00000000..3a94ebb1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ConditionSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Condition = new IntermediateSymbolDefinition( + SymbolDefinitionType.Condition, + new[] + { + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(ConditionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ConditionSymbolFields + { + FeatureRef, + Level, + Condition, + } + + public class ConditionSymbol : IntermediateSymbol + { + public ConditionSymbol() : base(SymbolDefinitions.Condition, null, null) + { + } + + public ConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Condition, sourceLineNumber, id) + { + } + + public IntermediateField this[ConditionSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)ConditionSymbolFields.FeatureRef]; + set => this.Set((int)ConditionSymbolFields.FeatureRef, value); + } + + public int Level + { + get => (int)this.Fields[(int)ConditionSymbolFields.Level]; + set => this.Set((int)ConditionSymbolFields.Level, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ConditionSymbolFields.Condition]; + set => this.Set((int)ConditionSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ControlConditionSymbol.cs b/src/WixToolset.Data/Symbols/ControlConditionSymbol.cs new file mode 100644 index 00000000..cc5f2d74 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ControlConditionSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ControlCondition = new IntermediateSymbolDefinition( + SymbolDefinitionType.ControlCondition, + new[] + { + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(ControlConditionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ControlConditionSymbolFields + { + DialogRef, + ControlRef, + Action, + Condition, + } + + public class ControlConditionSymbol : IntermediateSymbol + { + public ControlConditionSymbol() : base(SymbolDefinitions.ControlCondition, null, null) + { + } + + public ControlConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlCondition, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlConditionSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.DialogRef]; + set => this.Set((int)ControlConditionSymbolFields.DialogRef, value); + } + + public string ControlRef + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.ControlRef]; + set => this.Set((int)ControlConditionSymbolFields.ControlRef, value); + } + + public string Action + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.Action]; + set => this.Set((int)ControlConditionSymbolFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.Condition]; + set => this.Set((int)ControlConditionSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ControlEventSymbol.cs b/src/WixToolset.Data/Symbols/ControlEventSymbol.cs new file mode 100644 index 00000000..3cf6da53 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ControlEventSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ControlEvent = new IntermediateSymbolDefinition( + SymbolDefinitionType.ControlEvent, + new[] + { + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Ordering), IntermediateFieldType.Number), + }, + typeof(ControlEventSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ControlEventSymbolFields + { + DialogRef, + ControlRef, + Event, + Argument, + Condition, + Ordering, + } + + public class ControlEventSymbol : IntermediateSymbol + { + public ControlEventSymbol() : base(SymbolDefinitions.ControlEvent, null, null) + { + } + + public ControlEventSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlEvent, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlEventSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)ControlEventSymbolFields.DialogRef]; + set => this.Set((int)ControlEventSymbolFields.DialogRef, value); + } + + public string ControlRef + { + get => (string)this.Fields[(int)ControlEventSymbolFields.ControlRef]; + set => this.Set((int)ControlEventSymbolFields.ControlRef, value); + } + + public string Event + { + get => (string)this.Fields[(int)ControlEventSymbolFields.Event]; + set => this.Set((int)ControlEventSymbolFields.Event, value); + } + + public string Argument + { + get => (string)this.Fields[(int)ControlEventSymbolFields.Argument]; + set => this.Set((int)ControlEventSymbolFields.Argument, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ControlEventSymbolFields.Condition]; + set => this.Set((int)ControlEventSymbolFields.Condition, value); + } + + public int? Ordering + { + get => (int?)this.Fields[(int)ControlEventSymbolFields.Ordering]; + set => this.Set((int)ControlEventSymbolFields.Ordering, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ControlSymbol.cs b/src/WixToolset.Data/Symbols/ControlSymbol.cs new file mode 100644 index 00000000..732566d5 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ControlSymbol.cs @@ -0,0 +1,303 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Control = new IntermediateSymbolDefinition( + SymbolDefinitionType.Control, + new[] + { + new IntermediateFieldDefinition(nameof(ControlSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Control), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Enabled), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Indirect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Integer), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Sunken), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.NextControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Help), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.SourceFile), IntermediateFieldType.Path), + }, + typeof(ControlSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ControlSymbolFields + { + DialogRef, + Control, + Type, + X, + Y, + Width, + Height, + Attributes, + Enabled, + Indirect, + Integer, + LeftScroll, + RightAligned, + RightToLeft, + Sunken, + Visible, + Property, + Text, + NextControlRef, + Help, + TrackDiskSpace, + SourceFile, + } + + public class ControlSymbol : IntermediateSymbol + { + public ControlSymbol() : base(SymbolDefinitions.Control, null, null) + { + } + + public ControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Control, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)ControlSymbolFields.DialogRef]; + set => this.Set((int)ControlSymbolFields.DialogRef, value); + } + + public string Control + { + get => (string)this.Fields[(int)ControlSymbolFields.Control]; + set => this.Set((int)ControlSymbolFields.Control, value); + } + + public string Type + { + get => (string)this.Fields[(int)ControlSymbolFields.Type]; + set => this.Set((int)ControlSymbolFields.Type, value); + } + + public int X + { + get => (int)this.Fields[(int)ControlSymbolFields.X]; + set => this.Set((int)ControlSymbolFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)ControlSymbolFields.Y]; + set => this.Set((int)ControlSymbolFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)ControlSymbolFields.Width]; + set => this.Set((int)ControlSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)ControlSymbolFields.Height]; + set => this.Set((int)ControlSymbolFields.Height, value); + } + + public int? Attributes + { + get => (int?)this.Fields[(int)ControlSymbolFields.Attributes]; + set => this.Set((int)ControlSymbolFields.Attributes, value); + } + + public bool Enabled + { + get => this.Fields[(int)ControlSymbolFields.Enabled].AsBool(); + set => this.Set((int)ControlSymbolFields.Enabled, value); + } + + public bool Indirect + { + get => this.Fields[(int)ControlSymbolFields.Indirect].AsBool(); + set => this.Set((int)ControlSymbolFields.Indirect, value); + } + + public bool Integer + { + get => this.Fields[(int)ControlSymbolFields.Integer].AsBool(); + set => this.Set((int)ControlSymbolFields.Integer, value); + } + /* + /// PictureButton control + public bool Bitmap + { + get => this.Fields[(int)ControlSymbolFields.Bitmap].AsBool(); + set => this.Set((int)ControlSymbolFields.Bitmap, value); + } + + /// RadioButton control + public bool Border + { + get => this.Fields[(int)ControlSymbolFields.Border].AsBool(); + set => this.Set((int)ControlSymbolFields.Border, value); + } + + /// ListBox and ComboBox control + public bool ComboList + { + get => this.Fields[(int)ControlSymbolFields.ComboList].AsBool(); + set => this.Set((int)ControlSymbolFields.ComboList, value); + } + + /// PushButton control + public bool ElevationShield + { + get => this.Fields[(int)ControlSymbolFields.ElevationShield].AsBool(); + set => this.Set((int)ControlSymbolFields.ElevationShield, value); + } + + /// PictureButton control + public bool FixedSize + { + get => this.Fields[(int)ControlSymbolFields.FixedSize].AsBool(); + set => this.Set((int)ControlSymbolFields.FixedSize, value); + } + + /// PictureButton control + public bool Icon + { + get => this.Fields[(int)ControlSymbolFields.Icon].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon, value); + } + + /// PictureButton control + public bool Icon16 + { + get => this.Fields[(int)ControlSymbolFields.Icon16].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon16, value); + } + + /// PictureButton control + public bool Icon32 + { + get => this.Fields[(int)ControlSymbolFields.Icon32].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon32, value); + } + + /// PictureButton control + public bool Icon48 + { + get => this.Fields[(int)ControlSymbolFields.Icon48].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon48, value); + } + */ + public bool LeftScroll + { + get => this.Fields[(int)ControlSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)ControlSymbolFields.LeftScroll, value); + } + /* + /// PictureButton control + public bool PushLike + { + get => this.Fields[(int)ControlSymbolFields.PushLike].AsBool(); + set => this.Set((int)ControlSymbolFields.PushLike, value); + } + + /// Edit control + public bool Mulitline + { + get => this.Fields[(int)ControlSymbolFields.Mulitline].AsBool(); + set => this.Set((int)ControlSymbolFields.Mulitline, value); + } + */ + public bool RightAligned + { + get => this.Fields[(int)ControlSymbolFields.RightAligned].AsBool(); + set => this.Set((int)ControlSymbolFields.RightAligned, value); + } + + public bool RightToLeft + { + get => this.Fields[(int)ControlSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)ControlSymbolFields.RightToLeft, value); + } + /* + /// VolumeCostList control + public bool ShowRollbackCost + { + get => this.Fields[(int)ControlSymbolFields.ShowRollbackCost].AsBool(); + set => this.Set((int)ControlSymbolFields.ShowRollbackCost, value); + } + + /// ListBox and ComboBox control + public bool Sorted + { + get => this.Fields[(int)ControlSymbolFields.Sorted].AsBool(); + set => this.Set((int)ControlSymbolFields.Sorted, value); + } + */ + public bool Sunken + { + get => this.Fields[(int)ControlSymbolFields.Sunken].AsBool(); + set => this.Set((int)ControlSymbolFields.Sunken, value); + } + + public bool Visible + { + get => this.Fields[(int)ControlSymbolFields.Visible].AsBool(); + set => this.Set((int)ControlSymbolFields.Visible, value); + } + + public string Property + { + get => (string)this.Fields[(int)ControlSymbolFields.Property]; + set => this.Set((int)ControlSymbolFields.Property, value); + } + + public string Text + { + get => (string)this.Fields[(int)ControlSymbolFields.Text]; + set => this.Set((int)ControlSymbolFields.Text, value); + } + + public string NextControlRef + { + get => (string)this.Fields[(int)ControlSymbolFields.NextControlRef]; + set => this.Set((int)ControlSymbolFields.NextControlRef, value); + } + + public string Help + { + get => (string)this.Fields[(int)ControlSymbolFields.Help]; + set => this.Set((int)ControlSymbolFields.Help, value); + } + + public bool TrackDiskSpace + { + get => this.Fields[(int)ControlSymbolFields.TrackDiskSpace].AsBool(); + set => this.Set((int)ControlSymbolFields.TrackDiskSpace, value); + } + + public IntermediateFieldPathValue SourceFile + { + get => this.Fields[(int)ControlSymbolFields.SourceFile].AsPath(); + set => this.Set((int)ControlSymbolFields.SourceFile, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CreateFolderSymbol.cs b/src/WixToolset.Data/Symbols/CreateFolderSymbol.cs new file mode 100644 index 00000000..2b282266 --- /dev/null +++ b/src/WixToolset.Data/Symbols/CreateFolderSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CreateFolder = new IntermediateSymbolDefinition( + SymbolDefinitionType.CreateFolder, + new[] + { + new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(CreateFolderSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CreateFolderSymbolFields + { + DirectoryRef, + ComponentRef, + } + + public class CreateFolderSymbol : IntermediateSymbol + { + public CreateFolderSymbol() : base(SymbolDefinitions.CreateFolder, null, null) + { + } + + public CreateFolderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CreateFolder, sourceLineNumber, id) + { + } + + public IntermediateField this[CreateFolderSymbolFields index] => this.Fields[(int)index]; + + public string DirectoryRef + { + get => (string)this.Fields[(int)CreateFolderSymbolFields.DirectoryRef]; + set => this.Set((int)CreateFolderSymbolFields.DirectoryRef, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)CreateFolderSymbolFields.ComponentRef]; + set => this.Set((int)CreateFolderSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CustomActionSymbol.cs b/src/WixToolset.Data/Symbols/CustomActionSymbol.cs new file mode 100644 index 00000000..1180dab4 --- /dev/null +++ b/src/WixToolset.Data/Symbols/CustomActionSymbol.cs @@ -0,0 +1,168 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CustomAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.CustomAction, + new[] + { + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ExecutionType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.SourceType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TargetType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Async), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.IgnoreResult), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Impersonate), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.PatchUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TSAware), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ScriptFile), IntermediateFieldType.Path), + }, + typeof(CustomActionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CustomActionSymbolFields + { + ExecutionType, + Source, + SourceType, + Target, + TargetType, + Async, + Hidden, + IgnoreResult, + Impersonate, + PatchUninstall, + TSAware, + Win64, + ScriptFile + } + + public enum CustomActionExecutionType + { + Immediate, + FirstSequence = 256, + OncePerProcess = 512, + ClientRepeat = 768, + Deferred = 1024, + Rollback = 1280, + Commit = 1536, + } + + public enum CustomActionSourceType + { + Binary, + File = 0x10, + Directory = 0x20, + Property = 0x30, + } + + public enum CustomActionTargetType + { + Dll = 1, + Exe = 2, + TextData = 3, + JScript = 5, + VBScript = 6, + } + + public class CustomActionSymbol : IntermediateSymbol + { + public CustomActionSymbol() : base(SymbolDefinitions.CustomAction, null, null) + { + } + + public CustomActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CustomAction, sourceLineNumber, id) + { + } + + public IntermediateField this[CustomActionSymbolFields index] => this.Fields[(int)index]; + + public CustomActionExecutionType ExecutionType + { + get => (CustomActionExecutionType)this.Fields[(int)CustomActionSymbolFields.ExecutionType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.ExecutionType, (int)value); + } + + public string Source + { + get => (string)this.Fields[(int)CustomActionSymbolFields.Source]; + set => this.Set((int)CustomActionSymbolFields.Source, value); + } + + public CustomActionSourceType SourceType + { + get => (CustomActionSourceType)this.Fields[(int)CustomActionSymbolFields.SourceType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.SourceType, (int)value); + } + + public string Target + { + get => (string)this.Fields[(int)CustomActionSymbolFields.Target]; + set => this.Set((int)CustomActionSymbolFields.Target, value); + } + + public CustomActionTargetType TargetType + { + get => (CustomActionTargetType)this.Fields[(int)CustomActionSymbolFields.TargetType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.TargetType, (int)value); + } + + public bool Async + { + get => this.Fields[(int)CustomActionSymbolFields.Async].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Async, value); + } + + public bool Hidden + { + get => this.Fields[(int)CustomActionSymbolFields.Hidden].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Hidden, value); + } + + public bool IgnoreResult + { + get => this.Fields[(int)CustomActionSymbolFields.IgnoreResult].AsBool(); + set => this.Set((int)CustomActionSymbolFields.IgnoreResult, value); + } + + public bool Impersonate + { + get => this.Fields[(int)CustomActionSymbolFields.Impersonate].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Impersonate, value); + } + + public bool PatchUninstall + { + get => this.Fields[(int)CustomActionSymbolFields.PatchUninstall].AsBool(); + set => this.Set((int)CustomActionSymbolFields.PatchUninstall, value); + } + + public bool TSAware + { + get => this.Fields[(int)CustomActionSymbolFields.TSAware].AsBool(); + set => this.Set((int)CustomActionSymbolFields.TSAware, value); + } + + public bool Win64 + { + get => this.Fields[(int)CustomActionSymbolFields.Win64].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Win64, value); + } + + public IntermediateFieldPathValue ScriptFile + { + get => this.Fields[(int)CustomActionSymbolFields.ScriptFile].AsPath(); + set => this.Set((int)CustomActionSymbolFields.ScriptFile, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/DialogSymbol.cs b/src/WixToolset.Data/Symbols/DialogSymbol.cs new file mode 100644 index 00000000..ee030405 --- /dev/null +++ b/src/WixToolset.Data/Symbols/DialogSymbol.cs @@ -0,0 +1,188 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Dialog = new IntermediateSymbolDefinition( + SymbolDefinitionType.Dialog, + new[] + { + new IntermediateFieldDefinition(nameof(DialogSymbolFields.HCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.VCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.CustomPalette), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.ErrorDialog), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Modal), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.KeepModeless), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Minimize), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.SystemModal), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.FirstControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.DefaultControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.CancelControlRef), IntermediateFieldType.String), + }, + typeof(DialogSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DialogSymbolFields + { + HCentering, + VCentering, + Width, + Height, + CustomPalette, + ErrorDialog, + Visible, + Modal, + KeepModeless, + LeftScroll, + Minimize, + RightAligned, + RightToLeft, + SystemModal, + TrackDiskSpace, + Title, + FirstControlRef, + DefaultControlRef, + CancelControlRef, + } + + public class DialogSymbol : IntermediateSymbol + { + public DialogSymbol() : base(SymbolDefinitions.Dialog, null, null) + { + } + + public DialogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Dialog, sourceLineNumber, id) + { + } + + public IntermediateField this[DialogSymbolFields index] => this.Fields[(int)index]; + + public int HCentering + { + get => (int)this.Fields[(int)DialogSymbolFields.HCentering]; + set => this.Set((int)DialogSymbolFields.HCentering, value); + } + + public int VCentering + { + get => (int)this.Fields[(int)DialogSymbolFields.VCentering]; + set => this.Set((int)DialogSymbolFields.VCentering, value); + } + + public int Width + { + get => (int)this.Fields[(int)DialogSymbolFields.Width]; + set => this.Set((int)DialogSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)DialogSymbolFields.Height]; + set => this.Set((int)DialogSymbolFields.Height, value); + } + + public bool CustomPalette + { + get => this.Fields[(int)DialogSymbolFields.CustomPalette].AsBool(); + set => this.Set((int)DialogSymbolFields.CustomPalette, value); + } + + public bool ErrorDialog + { + get => this.Fields[(int)DialogSymbolFields.ErrorDialog].AsBool(); + set => this.Set((int)DialogSymbolFields.ErrorDialog, value); + } + + public bool Visible + { + get => this.Fields[(int)DialogSymbolFields.Visible].AsBool(); + set => this.Set((int)DialogSymbolFields.Visible, value); + } + + public bool Modal + { + get => this.Fields[(int)DialogSymbolFields.Modal].AsBool(); + set => this.Set((int)DialogSymbolFields.Modal, value); + } + + public bool KeepModeless + { + get => this.Fields[(int)DialogSymbolFields.KeepModeless].AsBool(); + set => this.Set((int)DialogSymbolFields.KeepModeless, value); + } + + public bool LeftScroll + { + get => this.Fields[(int)DialogSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)DialogSymbolFields.LeftScroll, value); + } + + public bool Minimize + { + get => this.Fields[(int)DialogSymbolFields.Minimize].AsBool(); + set => this.Set((int)DialogSymbolFields.Minimize, value); + } + + public bool RightAligned + { + get => this.Fields[(int)DialogSymbolFields.RightAligned].AsBool(); + set => this.Set((int)DialogSymbolFields.RightAligned, value); + } + + public bool RightToLeft + { + get => this.Fields[(int)DialogSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)DialogSymbolFields.RightToLeft, value); + } + + public bool TrackDiskSpace + { + get => this.Fields[(int)DialogSymbolFields.TrackDiskSpace].AsBool(); + set => this.Set((int)DialogSymbolFields.TrackDiskSpace, value); + } + + public bool SystemModal + { + get => this.Fields[(int)DialogSymbolFields.SystemModal].AsBool(); + set => this.Set((int)DialogSymbolFields.SystemModal, value); + } + + public string Title + { + get => (string)this.Fields[(int)DialogSymbolFields.Title]; + set => this.Set((int)DialogSymbolFields.Title, value); + } + + public string FirstControlRef + { + get => (string)this.Fields[(int)DialogSymbolFields.FirstControlRef]; + set => this.Set((int)DialogSymbolFields.FirstControlRef, value); + } + + public string DefaultControlRef + { + get => (string)this.Fields[(int)DialogSymbolFields.DefaultControlRef]; + set => this.Set((int)DialogSymbolFields.DefaultControlRef, value); + } + + public string CancelControlRef + { + get => (string)this.Fields[(int)DialogSymbolFields.CancelControlRef]; + set => this.Set((int)DialogSymbolFields.CancelControlRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/DirectorySymbol.cs b/src/WixToolset.Data/Symbols/DirectorySymbol.cs new file mode 100644 index 00000000..209f5ca1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/DirectorySymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Directory = new IntermediateSymbolDefinition( + SymbolDefinitionType.Directory, + new[] + { + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ParentDirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), + }, + typeof(DirectorySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DirectorySymbolFields + { + ParentDirectoryRef, + Name, + ShortName, + SourceName, + SourceShortName, + ComponentGuidGenerationSeed, + } + + public class DirectorySymbol : IntermediateSymbol + { + public DirectorySymbol() : base(SymbolDefinitions.Directory, null, null) + { + } + + public DirectorySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Directory, sourceLineNumber, id) + { + } + + public IntermediateField this[DirectorySymbolFields index] => this.Fields[(int)index]; + + public string ParentDirectoryRef + { + get => (string)this.Fields[(int)DirectorySymbolFields.ParentDirectoryRef]; + set => this.Set((int)DirectorySymbolFields.ParentDirectoryRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)DirectorySymbolFields.Name]; + set => this.Set((int)DirectorySymbolFields.Name, value); + } + + public string ShortName + { + get => (string)this.Fields[(int)DirectorySymbolFields.ShortName]; + set => this.Set((int)DirectorySymbolFields.ShortName, value); + } + + public string SourceName + { + get => (string)this.Fields[(int)DirectorySymbolFields.SourceName]; + set => this.Set((int)DirectorySymbolFields.SourceName, value); + } + + public string SourceShortName + { + get => (string)this.Fields[(int)DirectorySymbolFields.SourceShortName]; + set => this.Set((int)DirectorySymbolFields.SourceShortName, value); + } + + public string ComponentGuidGenerationSeed + { + get => (string)this.Fields[(int)DirectorySymbolFields.ComponentGuidGenerationSeed]; + set => this.Set((int)DirectorySymbolFields.ComponentGuidGenerationSeed, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/DrLocatorSymbol.cs b/src/WixToolset.Data/Symbols/DrLocatorSymbol.cs new file mode 100644 index 00000000..e403c61c --- /dev/null +++ b/src/WixToolset.Data/Symbols/DrLocatorSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition DrLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.DrLocator, + new[] + { + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Depth), IntermediateFieldType.Number), + }, + typeof(DrLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DrLocatorSymbolFields + { + SignatureRef, + Parent, + Path, + Depth, + } + + public class DrLocatorSymbol : IntermediateSymbol + { + public DrLocatorSymbol() : base(SymbolDefinitions.DrLocator, null, null) + { + } + + public DrLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DrLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[DrLocatorSymbolFields index] => this.Fields[(int)index]; + + public string SignatureRef + { + get => (string)this.Fields[(int)DrLocatorSymbolFields.SignatureRef]; + set => this.Set((int)DrLocatorSymbolFields.SignatureRef, value); + } + + public string Parent + { + get => (string)this.Fields[(int)DrLocatorSymbolFields.Parent]; + set => this.Set((int)DrLocatorSymbolFields.Parent, value); + } + + public string Path + { + get => (string)this.Fields[(int)DrLocatorSymbolFields.Path]; + set => this.Set((int)DrLocatorSymbolFields.Path, value); + } + + public int? Depth + { + get => (int?)this.Fields[(int)DrLocatorSymbolFields.Depth]; + set => this.Set((int)DrLocatorSymbolFields.Depth, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs b/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs new file mode 100644 index 00000000..1344ced4 --- /dev/null +++ b/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition DuplicateFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.DuplicateFile, + new[] + { + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationFolder), IntermediateFieldType.String), + }, + typeof(DuplicateFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DuplicateFileSymbolFields + { + ComponentRef, + FileRef, + DestinationName, + DestinationFolder, + } + + public class DuplicateFileSymbol : IntermediateSymbol + { + public DuplicateFileSymbol() : base(SymbolDefinitions.DuplicateFile, null, null) + { + } + + public DuplicateFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DuplicateFile, sourceLineNumber, id) + { + } + + public IntermediateField this[DuplicateFileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.ComponentRef]; + set => this.Set((int)DuplicateFileSymbolFields.ComponentRef, value); + } + + public string FileRef + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.FileRef]; + set => this.Set((int)DuplicateFileSymbolFields.FileRef, value); + } + + public string DestinationName + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationName]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationName, value); + } + + public string DestinationFolder + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationFolder]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationFolder, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/EnvironmentSymbol.cs b/src/WixToolset.Data/Symbols/EnvironmentSymbol.cs new file mode 100644 index 00000000..3fe12d4b --- /dev/null +++ b/src/WixToolset.Data/Symbols/EnvironmentSymbol.cs @@ -0,0 +1,114 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Environment = new IntermediateSymbolDefinition( + SymbolDefinitionType.Environment, + new[] + { + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Separator), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Part), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Permanent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.System), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(EnvironmentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum EnvironmentSymbolFields + { + Name, + Value, + Separator, + Action, + Part, + Permanent, + System, + ComponentRef, + } + + public enum EnvironmentActionType + { + Set, + Create, + Remove + } + + public enum EnvironmentPartType + { + All, + First, + Last + } + + public class EnvironmentSymbol : IntermediateSymbol + { + public EnvironmentSymbol() : base(SymbolDefinitions.Environment, null, null) + { + } + + public EnvironmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Environment, sourceLineNumber, id) + { + } + + public IntermediateField this[EnvironmentSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.Name]; + set => this.Set((int)EnvironmentSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.Value]; + set => this.Set((int)EnvironmentSymbolFields.Value, value); + } + + public string Separator + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.Separator]; + set => this.Set((int)EnvironmentSymbolFields.Separator, value); + } + + public EnvironmentActionType? Action + { + get => (EnvironmentActionType?)this.Fields[(int)EnvironmentSymbolFields.Action].AsNullableNumber(); + set => this.Set((int)EnvironmentSymbolFields.Action, (int?)value); + } + + public EnvironmentPartType? Part + { + get => (EnvironmentPartType?)this.Fields[(int)EnvironmentSymbolFields.Part].AsNullableNumber(); + set => this.Set((int)EnvironmentSymbolFields.Part, (int?)value); + } + + public bool Permanent + { + get => this.Fields[(int)EnvironmentSymbolFields.Permanent].AsBool(); + set => this.Set((int)EnvironmentSymbolFields.Permanent, value); + } + + public bool System + { + get => this.Fields[(int)EnvironmentSymbolFields.System].AsBool(); + set => this.Set((int)EnvironmentSymbolFields.System, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.ComponentRef]; + set => this.Set((int)EnvironmentSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ErrorSymbol.cs b/src/WixToolset.Data/Symbols/ErrorSymbol.cs new file mode 100644 index 00000000..d2994598 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ErrorSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Error = new IntermediateSymbolDefinition( + SymbolDefinitionType.Error, + new[] + { + new IntermediateFieldDefinition(nameof(ErrorSymbolFields.Message), IntermediateFieldType.String), + }, + typeof(ErrorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ErrorSymbolFields + { + Message, + } + + public class ErrorSymbol : IntermediateSymbol + { + public ErrorSymbol() : base(SymbolDefinitions.Error, null, null) + { + } + + public ErrorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Error, sourceLineNumber, id) + { + } + + public IntermediateField this[ErrorSymbolFields index] => this.Fields[(int)index]; + + public string Message + { + get => (string)this.Fields[(int)ErrorSymbolFields.Message]; + set => this.Set((int)ErrorSymbolFields.Message, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/EventMappingSymbol.cs b/src/WixToolset.Data/Symbols/EventMappingSymbol.cs new file mode 100644 index 00000000..fec7be3b --- /dev/null +++ b/src/WixToolset.Data/Symbols/EventMappingSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition EventMapping = new IntermediateSymbolDefinition( + SymbolDefinitionType.EventMapping, + new[] + { + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Attribute), IntermediateFieldType.String), + }, + typeof(EventMappingSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum EventMappingSymbolFields + { + DialogRef, + ControlRef, + Event, + Attribute, + } + + public class EventMappingSymbol : IntermediateSymbol + { + public EventMappingSymbol() : base(SymbolDefinitions.EventMapping, null, null) + { + } + + public EventMappingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.EventMapping, sourceLineNumber, id) + { + } + + public IntermediateField this[EventMappingSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)EventMappingSymbolFields.DialogRef]; + set => this.Set((int)EventMappingSymbolFields.DialogRef, value); + } + + public string ControlRef + { + get => (string)this.Fields[(int)EventMappingSymbolFields.ControlRef]; + set => this.Set((int)EventMappingSymbolFields.ControlRef, value); + } + + public string Event + { + get => (string)this.Fields[(int)EventMappingSymbolFields.Event]; + set => this.Set((int)EventMappingSymbolFields.Event, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)EventMappingSymbolFields.Attribute]; + set => this.Set((int)EventMappingSymbolFields.Attribute, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ExtensionSymbol.cs b/src/WixToolset.Data/Symbols/ExtensionSymbol.cs new file mode 100644 index 00000000..b8806971 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ExtensionSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Extension = new IntermediateSymbolDefinition( + SymbolDefinitionType.Extension, + new[] + { + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.Extension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.MimeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.FeatureRef), IntermediateFieldType.String), + }, + typeof(ExtensionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ExtensionSymbolFields + { + Extension, + ComponentRef, + ProgIdRef, + MimeRef, + FeatureRef, + } + + public class ExtensionSymbol : IntermediateSymbol + { + public ExtensionSymbol() : base(SymbolDefinitions.Extension, null, null) + { + } + + public ExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Extension, sourceLineNumber, id) + { + } + + public IntermediateField this[ExtensionSymbolFields index] => this.Fields[(int)index]; + + public string Extension + { + get => (string)this.Fields[(int)ExtensionSymbolFields.Extension]; + set => this.Set((int)ExtensionSymbolFields.Extension, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.ComponentRef]; + set => this.Set((int)ExtensionSymbolFields.ComponentRef, value); + } + + public string ProgIdRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.ProgIdRef]; + set => this.Set((int)ExtensionSymbolFields.ProgIdRef, value); + } + + public string MimeRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.MimeRef]; + set => this.Set((int)ExtensionSymbolFields.MimeRef, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.FeatureRef]; + set => this.Set((int)ExtensionSymbolFields.FeatureRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs b/src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs new file mode 100644 index 00000000..87888f0b --- /dev/null +++ b/src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ExternalFiles = new IntermediateSymbolDefinition( + SymbolDefinitionType.ExternalFiles, + new[] + { + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FilePath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Order), IntermediateFieldType.Number), + }, + typeof(ExternalFilesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ExternalFilesSymbolFields + { + Family, + FTK, + FilePath, + SymbolPaths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + Order, + } + + public class ExternalFilesSymbol : IntermediateSymbol + { + public ExternalFilesSymbol() : base(SymbolDefinitions.ExternalFiles, null, null) + { + } + + public ExternalFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ExternalFiles, sourceLineNumber, id) + { + } + + public IntermediateField this[ExternalFilesSymbolFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.Family]; + set => this.Set((int)ExternalFilesSymbolFields.Family, value); + } + + public string FTK + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.FTK]; + set => this.Set((int)ExternalFilesSymbolFields.FTK, value); + } + + public string FilePath + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.FilePath]; + set => this.Set((int)ExternalFilesSymbolFields.FilePath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.SymbolPaths]; + set => this.Set((int)ExternalFilesSymbolFields.SymbolPaths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreOffsets]; + set => this.Set((int)ExternalFilesSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreLengths]; + set => this.Set((int)ExternalFilesSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.RetainOffsets]; + set => this.Set((int)ExternalFilesSymbolFields.RetainOffsets, value); + } + + public int Order + { + get => (int)this.Fields[(int)ExternalFilesSymbolFields.Order]; + set => this.Set((int)ExternalFilesSymbolFields.Order, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs b/src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs new file mode 100644 index 00000000..84cd5b4b --- /dev/null +++ b/src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition FamilyFileRanges = new IntermediateSymbolDefinition( + SymbolDefinitionType.FamilyFileRanges, + new[] + { + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainLengths), IntermediateFieldType.String), + }, + typeof(FamilyFileRangesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FamilyFileRangesSymbolFields + { + Family, + FTK, + RetainOffsets, + RetainLengths, + } + + public class FamilyFileRangesSymbol : IntermediateSymbol + { + public FamilyFileRangesSymbol() : base(SymbolDefinitions.FamilyFileRanges, null, null) + { + } + + public FamilyFileRangesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FamilyFileRanges, sourceLineNumber, id) + { + } + + public IntermediateField this[FamilyFileRangesSymbolFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.Family]; + set => this.Set((int)FamilyFileRangesSymbolFields.Family, value); + } + + public string FTK + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.FTK]; + set => this.Set((int)FamilyFileRangesSymbolFields.FTK, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainOffsets]; + set => this.Set((int)FamilyFileRangesSymbolFields.RetainOffsets, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainLengths]; + set => this.Set((int)FamilyFileRangesSymbolFields.RetainLengths, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs b/src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs new file mode 100644 index 00000000..af51daed --- /dev/null +++ b/src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition FeatureComponents = new IntermediateSymbolDefinition( + SymbolDefinitionType.FeatureComponents, + new[] + { + new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(FeatureComponentsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FeatureComponentsSymbolFields + { + FeatureRef, + ComponentRef, + } + + public class FeatureComponentsSymbol : IntermediateSymbol + { + public FeatureComponentsSymbol() : base(SymbolDefinitions.FeatureComponents, null, null) + { + } + + public FeatureComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FeatureComponents, sourceLineNumber, id) + { + } + + public IntermediateField this[FeatureComponentsSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)FeatureComponentsSymbolFields.FeatureRef]; + set => this.Set((int)FeatureComponentsSymbolFields.FeatureRef, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)FeatureComponentsSymbolFields.ComponentRef]; + set => this.Set((int)FeatureComponentsSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FeatureSymbol.cs b/src/WixToolset.Data/Symbols/FeatureSymbol.cs new file mode 100644 index 00000000..67972b63 --- /dev/null +++ b/src/WixToolset.Data/Symbols/FeatureSymbol.cs @@ -0,0 +1,129 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Feature = new IntermediateSymbolDefinition( + SymbolDefinitionType.Feature, + new[] + { + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.ParentFeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAbsent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAdvertise), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.InstallDefault), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.TypicalDefault), IntermediateFieldType.Number), + }, + typeof(FeatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FeatureSymbolFields + { + ParentFeatureRef, + Title, + Description, + Display, + Level, + DirectoryRef, + DisallowAbsent, + DisallowAdvertise, + InstallDefault, + TypicalDefault, + } + + public enum FeatureInstallDefault + { + Local, + Source, + FollowParent, + } + + public enum FeatureTypicalDefault + { + Install, + Advertise + } + + public class FeatureSymbol : IntermediateSymbol + { + public FeatureSymbol() : base(SymbolDefinitions.Feature, null, null) + { + } + + public FeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Feature, sourceLineNumber, id) + { + } + + public IntermediateField this[FeatureSymbolFields index] => this.Fields[(int)index]; + + public string ParentFeatureRef + { + get => (string)this.Fields[(int)FeatureSymbolFields.ParentFeatureRef]; + set => this.Set((int)FeatureSymbolFields.ParentFeatureRef, value); + } + + public string Title + { + get => (string)this.Fields[(int)FeatureSymbolFields.Title]; + set => this.Set((int)FeatureSymbolFields.Title, value); + } + + public string Description + { + get => (string)this.Fields[(int)FeatureSymbolFields.Description]; + set => this.Set((int)FeatureSymbolFields.Description, value); + } + + public int Display + { + get => (int)this.Fields[(int)FeatureSymbolFields.Display]; + set => this.Set((int)FeatureSymbolFields.Display, value); + } + + public int Level + { + get => (int)this.Fields[(int)FeatureSymbolFields.Level]; + set => this.Set((int)FeatureSymbolFields.Level, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)FeatureSymbolFields.DirectoryRef]; + set => this.Set((int)FeatureSymbolFields.DirectoryRef, value); + } + + public bool DisallowAbsent + { + get => this.Fields[(int)FeatureSymbolFields.DisallowAbsent].AsBool(); + set => this.Set((int)FeatureSymbolFields.DisallowAbsent, value); + } + + public bool DisallowAdvertise + { + get => this.Fields[(int)FeatureSymbolFields.DisallowAdvertise].AsBool(); + set => this.Set((int)FeatureSymbolFields.DisallowAdvertise, value); + } + + public FeatureInstallDefault InstallDefault + { + get => (FeatureInstallDefault)this.Fields[(int)FeatureSymbolFields.InstallDefault].AsNumber(); + set => this.Set((int)FeatureSymbolFields.InstallDefault, (int)value); + } + + public FeatureTypicalDefault TypicalDefault + { + get => (FeatureTypicalDefault)this.Fields[(int)FeatureSymbolFields.TypicalDefault].AsNumber(); + set => this.Set((int)FeatureSymbolFields.TypicalDefault, (int)value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs b/src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs new file mode 100644 index 00000000..3abf2915 --- /dev/null +++ b/src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition FileSFPCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.FileSFPCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.SFPCatalogRef), IntermediateFieldType.String), + }, + typeof(FileSFPCatalogSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FileSFPCatalogSymbolFields + { + FileRef, + SFPCatalogRef, + } + + public class FileSFPCatalogSymbol : IntermediateSymbol + { + public FileSFPCatalogSymbol() : base(SymbolDefinitions.FileSFPCatalog, null, null) + { + } + + public FileSFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FileSFPCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[FileSFPCatalogSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.FileRef]; + set => this.Set((int)FileSFPCatalogSymbolFields.FileRef, value); + } + + public string SFPCatalogRef + { + get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.SFPCatalogRef]; + set => this.Set((int)FileSFPCatalogSymbolFields.SFPCatalogRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FileSymbol.cs b/src/WixToolset.Data/Symbols/FileSymbol.cs new file mode 100644 index 00000000..7d1afdb7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/FileSymbol.cs @@ -0,0 +1,257 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition File = new IntermediateSymbolDefinition( + SymbolDefinitionType.File, + new[] + { + new IntermediateFieldDefinition(nameof(FileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Source), IntermediateFieldType.Path), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.FontTitle), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.SelfRegCost), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.BindPath), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.Sequence), IntermediateFieldType.Number), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchGroup), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DeltaPatchHeaderSource), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(FileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum FileSymbolFields + { + ComponentRef, + Name, + ShortName, + FileSize, + Version, + Language, + Attributes, + DirectoryRef, + DiskId, + Source, + + FontTitle, + SelfRegCost, + BindPath, + + Sequence, + + PatchGroup, + PatchAttributes, + DeltaPatchHeaderSource, + + RetainLengths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + SymbolPaths, + } + + [Flags] + public enum FileSymbolAttributes : int + { + None = 0x0, + ReadOnly = 0x1, + Hidden = 0x2, + System = 0x4, + Vital = 0x8, + Compressed = 0x10, + Uncompressed = 0x20, + Checksum = 0x40, + GeneratedShortFileName = 0x80, + } + + /// + /// PatchAttribute values + /// + [Flags] + public enum PatchAttributeType + { + None = 0, + + /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. + Ignore = 1, + + /// Set if the entire file should be installed rather than creating a binary patch. + IncludeWholeFile = 2, + + /// Set to indicate that the patch is non-vital. + AllowIgnoreOnError = 4, + + /// Allowed bits. + Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError + } + + public class FileSymbol : IntermediateSymbol + { + public FileSymbol() : base(SymbolDefinitions.File, null, null) + { + } + + public FileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.File, sourceLineNumber, id) + { + } + + public IntermediateField this[FileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)FileSymbolFields.ComponentRef]; + set => this.Set((int)FileSymbolFields.ComponentRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)FileSymbolFields.Name]; + set => this.Set((int)FileSymbolFields.Name, value); + } + + public string ShortName + { + get => (string)this.Fields[(int)FileSymbolFields.ShortName]; + set => this.Set((int)FileSymbolFields.ShortName, value); + } + + public int FileSize + { + get => (int)this.Fields[(int)FileSymbolFields.FileSize]; + set => this.Set((int)FileSymbolFields.FileSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)FileSymbolFields.Version]; + set => this.Set((int)FileSymbolFields.Version, value); + } + + public string Language + { + get => (string)this.Fields[(int)FileSymbolFields.Language]; + set => this.Set((int)FileSymbolFields.Language, value); + } + + public FileSymbolAttributes Attributes + { + get => (FileSymbolAttributes)this.Fields[(int)FileSymbolFields.Attributes].AsNumber(); + set => this.Set((int)FileSymbolFields.Attributes, (int)value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)FileSymbolFields.DirectoryRef]; + set => this.Set((int)FileSymbolFields.DirectoryRef, value); + } + + public int? DiskId + { + get => (int?)this.Fields[(int)FileSymbolFields.DiskId]; + set => this.Set((int)FileSymbolFields.DiskId, value); + } + + public IntermediateFieldPathValue Source + { + get => this.Fields[(int)FileSymbolFields.Source].AsPath(); + set => this.Set((int)FileSymbolFields.Source, value); + } + + public string FontTitle + { + get => (string)this.Fields[(int)FileSymbolFields.FontTitle]; + set => this.Set((int)FileSymbolFields.FontTitle, value); + } + + public int? SelfRegCost + { + get => (int?)this.Fields[(int)FileSymbolFields.SelfRegCost]; + set => this.Set((int)FileSymbolFields.SelfRegCost, value); + } + + public string BindPath + { + get => (string)this.Fields[(int)FileSymbolFields.BindPath]; + set => this.Set((int)FileSymbolFields.BindPath, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)FileSymbolFields.Sequence]; + set => this.Set((int)FileSymbolFields.Sequence, value); + } + + public int? PatchGroup + { + get => (int?)this.Fields[(int)FileSymbolFields.PatchGroup]; + set => this.Set((int)FileSymbolFields.PatchGroup, value); + } + + public PatchAttributeType? PatchAttributes + { + get => (PatchAttributeType?)this.Fields[(int)FileSymbolFields.PatchAttributes].AsNullableNumber(); + set => this.Set((int)FileSymbolFields.PatchAttributes, (int?)value); + } + + public string DeltaPatchHeaderSource + { + get => (string)this.Fields[(int)FileSymbolFields.DeltaPatchHeaderSource]; + set => this.Set((int)FileSymbolFields.DeltaPatchHeaderSource, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)FileSymbolFields.RetainLengths]; + set => this.Set((int)FileSymbolFields.RetainLengths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)FileSymbolFields.IgnoreOffsets]; + set => this.Set((int)FileSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)FileSymbolFields.IgnoreLengths]; + set => this.Set((int)FileSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)FileSymbolFields.RetainOffsets]; + set => this.Set((int)FileSymbolFields.RetainOffsets, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)FileSymbolFields.SymbolPaths]; + set => this.Set((int)FileSymbolFields.SymbolPaths, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/IconSymbol.cs b/src/WixToolset.Data/Symbols/IconSymbol.cs new file mode 100644 index 00000000..f3c825ec --- /dev/null +++ b/src/WixToolset.Data/Symbols/IconSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Icon = new IntermediateSymbolDefinition( + SymbolDefinitionType.Icon, + new[] + { + new IntermediateFieldDefinition(nameof(IconSymbolFields.Data), IntermediateFieldType.Path), + }, + typeof(IconSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IconSymbolFields + { + Data, + } + + public class IconSymbol : IntermediateSymbol + { + public IconSymbol() : base(SymbolDefinitions.Icon, null, null) + { + } + + public IconSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Icon, sourceLineNumber, id) + { + } + + public IntermediateField this[IconSymbolFields index] => this.Fields[(int)index]; + + public IntermediateFieldPathValue Data + { + get => this.Fields[(int)IconSymbolFields.Data].AsPath(); + set => this.Set((int)IconSymbolFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs b/src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs new file mode 100644 index 00000000..090628ef --- /dev/null +++ b/src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ImageFamilies = new IntermediateSymbolDefinition( + SymbolDefinitionType.ImageFamilies, + new[] + { + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaSrcPropName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaDiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.FileSequenceStart), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.VolumeLabel), IntermediateFieldType.String), + }, + typeof(ImageFamiliesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ImageFamiliesSymbolFields + { + Family, + MediaSrcPropName, + MediaDiskId, + FileSequenceStart, + DiskPrompt, + VolumeLabel, + } + + public class ImageFamiliesSymbol : IntermediateSymbol + { + public ImageFamiliesSymbol() : base(SymbolDefinitions.ImageFamilies, null, null) + { + } + + public ImageFamiliesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ImageFamilies, sourceLineNumber, id) + { + } + + public IntermediateField this[ImageFamiliesSymbolFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.Family]; + set => this.Set((int)ImageFamiliesSymbolFields.Family, value); + } + + public string MediaSrcPropName + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.MediaSrcPropName]; + set => this.Set((int)ImageFamiliesSymbolFields.MediaSrcPropName, value); + } + + public int? MediaDiskId + { + get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.MediaDiskId]; + set => this.Set((int)ImageFamiliesSymbolFields.MediaDiskId, value); + } + + public int? FileSequenceStart + { + get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.FileSequenceStart]; + set => this.Set((int)ImageFamiliesSymbolFields.FileSequenceStart, value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.DiskPrompt]; + set => this.Set((int)ImageFamiliesSymbolFields.DiskPrompt, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.VolumeLabel]; + set => this.Set((int)ImageFamiliesSymbolFields.VolumeLabel, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/IniFileSymbol.cs b/src/WixToolset.Data/Symbols/IniFileSymbol.cs new file mode 100644 index 00000000..e23f6039 --- /dev/null +++ b/src/WixToolset.Data/Symbols/IniFileSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition IniFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.IniFile, + new[] + { + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(IniFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IniFileSymbolFields + { + FileName, + DirProperty, + Section, + Key, + Value, + Action, + ComponentRef, + } + + public class IniFileSymbol : IntermediateSymbol + { + public IniFileSymbol() : base(SymbolDefinitions.IniFile, null, null) + { + } + + public IniFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniFile, sourceLineNumber, id) + { + } + + public IntermediateField this[IniFileSymbolFields index] => this.Fields[(int)index]; + + public string FileName + { + get => (string)this.Fields[(int)IniFileSymbolFields.FileName]; + set => this.Set((int)IniFileSymbolFields.FileName, value); + } + + public string DirProperty + { + get => (string)this.Fields[(int)IniFileSymbolFields.DirProperty]; + set => this.Set((int)IniFileSymbolFields.DirProperty, value); + } + + public string Section + { + get => (string)this.Fields[(int)IniFileSymbolFields.Section]; + set => this.Set((int)IniFileSymbolFields.Section, value); + } + + public string Key + { + get => (string)this.Fields[(int)IniFileSymbolFields.Key]; + set => this.Set((int)IniFileSymbolFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)IniFileSymbolFields.Value]; + set => this.Set((int)IniFileSymbolFields.Value, value); + } + + public InifFileActionType Action + { + get => (InifFileActionType)this.Fields[(int)IniFileSymbolFields.Action]?.AsNumber(); + set => this.Set((int)IniFileSymbolFields.Action, (int)value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)IniFileSymbolFields.ComponentRef]; + set => this.Set((int)IniFileSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs b/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs new file mode 100644 index 00000000..64351681 --- /dev/null +++ b/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition IniLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.IniLocator, + new[] + { + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Field), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Type), IntermediateFieldType.Number), + }, + typeof(IniLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IniLocatorSymbolFields + { + SignatureRef, + FileName, + Section, + Key, + Field, + Type, + } + + public class IniLocatorSymbol : IntermediateSymbol + { + public IniLocatorSymbol() : base(SymbolDefinitions.IniLocator, null, null) + { + } + + public IniLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[IniLocatorSymbolFields index] => this.Fields[(int)index]; + + public string SignatureRef + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.SignatureRef]; + set => this.Set((int)IniLocatorSymbolFields.SignatureRef, value); + } + + public string FileName + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.FileName]; + set => this.Set((int)IniLocatorSymbolFields.FileName, value); + } + + public string Section + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.Section]; + set => this.Set((int)IniLocatorSymbolFields.Section, value); + } + + public string Key + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.Key]; + set => this.Set((int)IniLocatorSymbolFields.Key, value); + } + + public int? Field + { + get => (int?)this.Fields[(int)IniLocatorSymbolFields.Field]; + set => this.Set((int)IniLocatorSymbolFields.Field, value); + } + + public int? Type + { + get => (int?)this.Fields[(int)IniLocatorSymbolFields.Type]; + set => this.Set((int)IniLocatorSymbolFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs b/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs new file mode 100644 index 00000000..8b642323 --- /dev/null +++ b/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs @@ -0,0 +1,13 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + public enum InifFileActionType + { + AddLine, + AddTag, + CreateLine, + RemoveLine, + RemoveTag, + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs b/src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs new file mode 100644 index 00000000..681f1030 --- /dev/null +++ b/src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition IsolatedComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.IsolatedComponent, + new[] + { + new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.SharedComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.ApplicationComponentRef), IntermediateFieldType.String), + }, + typeof(IsolatedComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IsolatedComponentSymbolFields + { + SharedComponentRef, + ApplicationComponentRef, + } + + public class IsolatedComponentSymbol : IntermediateSymbol + { + public IsolatedComponentSymbol() : base(SymbolDefinitions.IsolatedComponent, null, null) + { + } + + public IsolatedComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IsolatedComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[IsolatedComponentSymbolFields index] => this.Fields[(int)index]; + + public string SharedComponentRef + { + get => (string)this.Fields[(int)IsolatedComponentSymbolFields.SharedComponentRef]; + set => this.Set((int)IsolatedComponentSymbolFields.SharedComponentRef, value); + } + + public string ApplicationComponentRef + { + get => (string)this.Fields[(int)IsolatedComponentSymbolFields.ApplicationComponentRef]; + set => this.Set((int)IsolatedComponentSymbolFields.ApplicationComponentRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs b/src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs new file mode 100644 index 00000000..a160f25f --- /dev/null +++ b/src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition LaunchCondition = new IntermediateSymbolDefinition( + SymbolDefinitionType.LaunchCondition, + new[] + { + new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Description), IntermediateFieldType.String), + }, + typeof(LaunchConditionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum LaunchConditionSymbolFields + { + Condition, + Description, + } + + public class LaunchConditionSymbol : IntermediateSymbol + { + public LaunchConditionSymbol() : base(SymbolDefinitions.LaunchCondition, null, null) + { + } + + public LaunchConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LaunchCondition, sourceLineNumber, id) + { + } + + public IntermediateField this[LaunchConditionSymbolFields index] => this.Fields[(int)index]; + + public string Condition + { + get => (string)this.Fields[(int)LaunchConditionSymbolFields.Condition]; + set => this.Set((int)LaunchConditionSymbolFields.Condition, value); + } + + public string Description + { + get => (string)this.Fields[(int)LaunchConditionSymbolFields.Description]; + set => this.Set((int)LaunchConditionSymbolFields.Description, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ListBoxSymbol.cs b/src/WixToolset.Data/Symbols/ListBoxSymbol.cs new file mode 100644 index 00000000..174327d1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ListBoxSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ListBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.ListBox, + new[] + { + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Text), IntermediateFieldType.String), + }, + typeof(ListBoxSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ListBoxSymbolFields + { + Property, + Order, + Value, + Text, + } + + public class ListBoxSymbol : IntermediateSymbol + { + public ListBoxSymbol() : base(SymbolDefinitions.ListBox, null, null) + { + } + + public ListBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListBox, sourceLineNumber, id) + { + } + + public IntermediateField this[ListBoxSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ListBoxSymbolFields.Property]; + set => this.Set((int)ListBoxSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ListBoxSymbolFields.Order]; + set => this.Set((int)ListBoxSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ListBoxSymbolFields.Value]; + set => this.Set((int)ListBoxSymbolFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ListBoxSymbolFields.Text]; + set => this.Set((int)ListBoxSymbolFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ListViewSymbol.cs b/src/WixToolset.Data/Symbols/ListViewSymbol.cs new file mode 100644 index 00000000..09543ab1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ListViewSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ListView = new IntermediateSymbolDefinition( + SymbolDefinitionType.ListView, + new[] + { + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.BinaryRef), IntermediateFieldType.String), + }, + typeof(ListViewSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ListViewSymbolFields + { + Property, + Order, + Value, + Text, + BinaryRef, + } + + public class ListViewSymbol : IntermediateSymbol + { + public ListViewSymbol() : base(SymbolDefinitions.ListView, null, null) + { + } + + public ListViewSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListView, sourceLineNumber, id) + { + } + + public IntermediateField this[ListViewSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ListViewSymbolFields.Property]; + set => this.Set((int)ListViewSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ListViewSymbolFields.Order]; + set => this.Set((int)ListViewSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ListViewSymbolFields.Value]; + set => this.Set((int)ListViewSymbolFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ListViewSymbolFields.Text]; + set => this.Set((int)ListViewSymbolFields.Text, value); + } + + public string BinaryRef + { + get => (string)this.Fields[(int)ListViewSymbolFields.BinaryRef]; + set => this.Set((int)ListViewSymbolFields.BinaryRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/LocatorSymbol.cs b/src/WixToolset.Data/Symbols/LocatorSymbol.cs new file mode 100644 index 00000000..6f136389 --- /dev/null +++ b/src/WixToolset.Data/Symbols/LocatorSymbol.cs @@ -0,0 +1,12 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + public enum LocatorType + { + Directory, + Filename, + RawValue, + x64 = 16, + } +} diff --git a/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs b/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs new file mode 100644 index 00000000..12562fd1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition LockPermissions = new IntermediateSymbolDefinition( + SymbolDefinitionType.LockPermissions, + new[] + { + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Domain), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.User), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Permission), IntermediateFieldType.Number), + }, + typeof(LockPermissionsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum LockPermissionsSymbolFields + { + LockObject, + Table, + Domain, + User, + Permission, + } + + public class LockPermissionsSymbol : IntermediateSymbol + { + public LockPermissionsSymbol() : base(SymbolDefinitions.LockPermissions, null, null) + { + } + + public LockPermissionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LockPermissions, sourceLineNumber, id) + { + } + + public IntermediateField this[LockPermissionsSymbolFields index] => this.Fields[(int)index]; + + public string LockObject + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.LockObject]; + set => this.Set((int)LockPermissionsSymbolFields.LockObject, value); + } + + public string Table + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.Table]; + set => this.Set((int)LockPermissionsSymbolFields.Table, value); + } + + public string Domain + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.Domain]; + set => this.Set((int)LockPermissionsSymbolFields.Domain, value); + } + + public string User + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.User]; + set => this.Set((int)LockPermissionsSymbolFields.User, value); + } + + public int? Permission + { + get => (int?)this.Fields[(int)LockPermissionsSymbolFields.Permission]; + set => this.Set((int)LockPermissionsSymbolFields.Permission, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MIMESymbol.cs b/src/WixToolset.Data/Symbols/MIMESymbol.cs new file mode 100644 index 00000000..f66d05b8 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MIMESymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MIME = new IntermediateSymbolDefinition( + SymbolDefinitionType.MIME, + new[] + { + new IntermediateFieldDefinition(nameof(MIMESymbolFields.ContentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMESymbolFields.ExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMESymbolFields.CLSID), IntermediateFieldType.String), + }, + typeof(MIMESymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MIMESymbolFields + { + ContentType, + ExtensionRef, + CLSID, + } + + public class MIMESymbol : IntermediateSymbol + { + public MIMESymbol() : base(SymbolDefinitions.MIME, null, null) + { + } + + public MIMESymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MIME, sourceLineNumber, id) + { + } + + public IntermediateField this[MIMESymbolFields index] => this.Fields[(int)index]; + + public string ContentType + { + get => (string)this.Fields[(int)MIMESymbolFields.ContentType]; + set => this.Set((int)MIMESymbolFields.ContentType, value); + } + + public string ExtensionRef + { + get => (string)this.Fields[(int)MIMESymbolFields.ExtensionRef]; + set => this.Set((int)MIMESymbolFields.ExtensionRef, value); + } + + public string CLSID + { + get => (string)this.Fields[(int)MIMESymbolFields.CLSID]; + set => this.Set((int)MIMESymbolFields.CLSID, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MediaSymbol.cs b/src/WixToolset.Data/Symbols/MediaSymbol.cs new file mode 100644 index 00000000..f216cddc --- /dev/null +++ b/src/WixToolset.Data/Symbols/MediaSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Media = new IntermediateSymbolDefinition( + SymbolDefinitionType.Media, + new[] + { + new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.LastSequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Cabinet), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Layout), IntermediateFieldType.String), + }, + typeof(MediaSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MediaSymbolFields + { + DiskId, + LastSequence, + DiskPrompt, + Cabinet, + VolumeLabel, + Source, + CompressionLevel, + Layout, + } + + public class MediaSymbol : IntermediateSymbol + { + public MediaSymbol() : base(SymbolDefinitions.Media, null, null) + { + } + + public MediaSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Media, sourceLineNumber, id) + { + } + + public IntermediateField this[MediaSymbolFields index] => this.Fields[(int)index]; + + public int DiskId + { + get => (int)this.Fields[(int)MediaSymbolFields.DiskId]; + set => this.Set((int)MediaSymbolFields.DiskId, value); + } + + public int? LastSequence + { + get => (int?)this.Fields[(int)MediaSymbolFields.LastSequence]; + set => this.Set((int)MediaSymbolFields.LastSequence, value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)MediaSymbolFields.DiskPrompt]; + set => this.Set((int)MediaSymbolFields.DiskPrompt, value); + } + + public string Cabinet + { + get => (string)this.Fields[(int)MediaSymbolFields.Cabinet]; + set => this.Set((int)MediaSymbolFields.Cabinet, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)MediaSymbolFields.VolumeLabel]; + set => this.Set((int)MediaSymbolFields.VolumeLabel, value); + } + + public string Source + { + get => (string)this.Fields[(int)MediaSymbolFields.Source]; + set => this.Set((int)MediaSymbolFields.Source, value); + } + + public CompressionLevel? CompressionLevel + { + get => (CompressionLevel?)this.Fields[(int)MediaSymbolFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)MediaSymbolFields.CompressionLevel, (int?)value); + } + + public string Layout + { + get => (string)this.Fields[(int)MediaSymbolFields.Layout]; + set => this.Set((int)MediaSymbolFields.Layout, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs b/src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs new file mode 100644 index 00000000..287819ab --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleComponents = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleComponents, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Component), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Language), IntermediateFieldType.Number), + }, + typeof(ModuleComponentsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleComponentsSymbolFields + { + Component, + ModuleID, + Language, + } + + public class ModuleComponentsSymbol : IntermediateSymbol + { + public ModuleComponentsSymbol() : base(SymbolDefinitions.ModuleComponents, null, null) + { + } + + public ModuleComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleComponents, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleComponentsSymbolFields index] => this.Fields[(int)index]; + + public string Component + { + get => (string)this.Fields[(int)ModuleComponentsSymbolFields.Component]; + set => this.Set((int)ModuleComponentsSymbolFields.Component, value); + } + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleComponentsSymbolFields.ModuleID]; + set => this.Set((int)ModuleComponentsSymbolFields.ModuleID, value); + } + + public int Language + { + get => (int)this.Fields[(int)ModuleComponentsSymbolFields.Language]; + set => this.Set((int)ModuleComponentsSymbolFields.Language, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs b/src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs new file mode 100644 index 00000000..8188dc87 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleConfiguration = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleConfiguration, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Format), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.ContextData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DefaultValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.KeyNoOrphan), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.NonNullable), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpLocation), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpKeyword), IntermediateFieldType.String), + }, + typeof(ModuleConfigurationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleConfigurationSymbolFields + { + Format, + Type, + ContextData, + DefaultValue, + KeyNoOrphan, + NonNullable, + DisplayName, + Description, + HelpLocation, + HelpKeyword, + } + + public class ModuleConfigurationSymbol : IntermediateSymbol + { + public ModuleConfigurationSymbol() : base(SymbolDefinitions.ModuleConfiguration, null, null) + { + } + + public ModuleConfigurationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleConfiguration, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleConfigurationSymbolFields index] => this.Fields[(int)index]; + + public int Format + { + get => (int)this.Fields[(int)ModuleConfigurationSymbolFields.Format]; + set => this.Set((int)ModuleConfigurationSymbolFields.Format, value); + } + + public string Type + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Type]; + set => this.Set((int)ModuleConfigurationSymbolFields.Type, value); + } + + public string ContextData + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.ContextData]; + set => this.Set((int)ModuleConfigurationSymbolFields.ContextData, value); + } + + public string DefaultValue + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DefaultValue]; + set => this.Set((int)ModuleConfigurationSymbolFields.DefaultValue, value); + } + + public bool KeyNoOrphan + { + get => this.Fields[(int)ModuleConfigurationSymbolFields.KeyNoOrphan].AsBool(); + set => this.Set((int)ModuleConfigurationSymbolFields.KeyNoOrphan, value); + } + + public bool NonNullable + { + get => this.Fields[(int)ModuleConfigurationSymbolFields.NonNullable].AsBool(); + set => this.Set((int)ModuleConfigurationSymbolFields.NonNullable, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DisplayName]; + set => this.Set((int)ModuleConfigurationSymbolFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Description]; + set => this.Set((int)ModuleConfigurationSymbolFields.Description, value); + } + + public string HelpLocation + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpLocation]; + set => this.Set((int)ModuleConfigurationSymbolFields.HelpLocation, value); + } + + public string HelpKeyword + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpKeyword]; + set => this.Set((int)ModuleConfigurationSymbolFields.HelpKeyword, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs b/src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs new file mode 100644 index 00000000..80d2d5f6 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleDependency = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleDependency, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredVersion), IntermediateFieldType.String), + }, + typeof(ModuleDependencySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleDependencySymbolFields + { + ModuleID, + ModuleLanguage, + RequiredID, + RequiredLanguage, + RequiredVersion, + } + + public class ModuleDependencySymbol : IntermediateSymbol + { + public ModuleDependencySymbol() : base(SymbolDefinitions.ModuleDependency, null, null) + { + } + + public ModuleDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleDependency, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleDependencySymbolFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleDependencySymbolFields.ModuleID]; + set => this.Set((int)ModuleDependencySymbolFields.ModuleID, value); + } + + public int ModuleLanguage + { + get => (int)this.Fields[(int)ModuleDependencySymbolFields.ModuleLanguage]; + set => this.Set((int)ModuleDependencySymbolFields.ModuleLanguage, value); + } + + public string RequiredID + { + get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredID]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredID, value); + } + + public int RequiredLanguage + { + get => (int)this.Fields[(int)ModuleDependencySymbolFields.RequiredLanguage]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredLanguage, value); + } + + public string RequiredVersion + { + get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredVersion]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredVersion, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs b/src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs new file mode 100644 index 00000000..0c45abfa --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleExclusion = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleExclusion, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMaxVersion), IntermediateFieldType.String), + }, + typeof(ModuleExclusionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleExclusionSymbolFields + { + ModuleID, + ModuleLanguage, + ExcludedID, + ExcludedLanguage, + ExcludedMinVersion, + ExcludedMaxVersion, + } + + public class ModuleExclusionSymbol : IntermediateSymbol + { + public ModuleExclusionSymbol() : base(SymbolDefinitions.ModuleExclusion, null, null) + { + } + + public ModuleExclusionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleExclusion, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleExclusionSymbolFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ModuleID]; + set => this.Set((int)ModuleExclusionSymbolFields.ModuleID, value); + } + + public int ModuleLanguage + { + get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ModuleLanguage]; + set => this.Set((int)ModuleExclusionSymbolFields.ModuleLanguage, value); + } + + public string ExcludedID + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedID]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedID, value); + } + + public int ExcludedLanguage + { + get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedLanguage]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedLanguage, value); + } + + public string ExcludedMinVersion + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMinVersion]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMinVersion, value); + } + + public string ExcludedMaxVersion + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMaxVersion]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMaxVersion, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs b/src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs new file mode 100644 index 00000000..07302df8 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleIgnoreTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleIgnoreTable, + new IntermediateFieldDefinition[] + { + }, + typeof(ModuleIgnoreTableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleIgnoreTableSymbolFields + { + } + + public class ModuleIgnoreTableSymbol : IntermediateSymbol + { + public ModuleIgnoreTableSymbol() : base(SymbolDefinitions.ModuleIgnoreTable, null, null) + { + } + + public ModuleIgnoreTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleIgnoreTable, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleIgnoreTableSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs b/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs new file mode 100644 index 00000000..5f6ded09 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleSignature = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleSignature, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Version), IntermediateFieldType.String), + }, + typeof(ModuleSignatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleSignatureSymbolFields + { + ModuleID, + Language, + Version, + } + + public class ModuleSignatureSymbol : IntermediateSymbol + { + public ModuleSignatureSymbol() : base(SymbolDefinitions.ModuleSignature, null, null) + { + } + + public ModuleSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSignature, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleSignatureSymbolFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleSignatureSymbolFields.ModuleID]; + set => this.Set((int)ModuleSignatureSymbolFields.ModuleID, value); + } + + public int Language + { + get => (int)this.Fields[(int)ModuleSignatureSymbolFields.Language]; + set => this.Set((int)ModuleSignatureSymbolFields.Language, value); + } + + public string Version + { + get => (string)this.Fields[(int)ModuleSignatureSymbolFields.Version]; + set => this.Set((int)ModuleSignatureSymbolFields.Version, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs b/src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs new file mode 100644 index 00000000..50d615b0 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleSubstitution = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleSubstitution, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Row), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Column), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(ModuleSubstitutionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleSubstitutionSymbolFields + { + Table, + Row, + Column, + Value, + } + + public class ModuleSubstitutionSymbol : IntermediateSymbol + { + public ModuleSubstitutionSymbol() : base(SymbolDefinitions.ModuleSubstitution, null, null) + { + } + + public ModuleSubstitutionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSubstitution, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleSubstitutionSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Table]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Table, value); + } + + public string Row + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Row]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Row, value); + } + + public string Column + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Column]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Column, value); + } + + public string Value + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Value]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MoveFileSymbol.cs b/src/WixToolset.Data/Symbols/MoveFileSymbol.cs new file mode 100644 index 00000000..84089965 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MoveFileSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MoveFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.MoveFile, + new[] + { + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.Delete), IntermediateFieldType.Bool), + }, + typeof(MoveFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MoveFileSymbolFields + { + ComponentRef, + SourceName, + DestName, + SourceFolder, + DestFolder, + Delete, + } + + public class MoveFileSymbol : IntermediateSymbol + { + public MoveFileSymbol() : base(SymbolDefinitions.MoveFile, null, null) + { + } + + public MoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MoveFile, sourceLineNumber, id) + { + } + + public IntermediateField this[MoveFileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)MoveFileSymbolFields.ComponentRef]; + set => this.Set((int)MoveFileSymbolFields.ComponentRef, value); + } + + public string SourceName + { + get => (string)this.Fields[(int)MoveFileSymbolFields.SourceName]; + set => this.Set((int)MoveFileSymbolFields.SourceName, value); + } + + public string DestName + { + get => (string)this.Fields[(int)MoveFileSymbolFields.DestName]; + set => this.Set((int)MoveFileSymbolFields.DestName, value); + } + + public string SourceFolder + { + get => (string)this.Fields[(int)MoveFileSymbolFields.SourceFolder]; + set => this.Set((int)MoveFileSymbolFields.SourceFolder, value); + } + + public string DestFolder + { + get => (string)this.Fields[(int)MoveFileSymbolFields.DestFolder]; + set => this.Set((int)MoveFileSymbolFields.DestFolder, value); + } + + public bool Delete + { + get => (bool)this.Fields[(int)MoveFileSymbolFields.Delete]; + set => this.Set((int)MoveFileSymbolFields.Delete, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs b/src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs new file mode 100644 index 00000000..99c9806d --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiAssemblyName = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiAssemblyName, + new[] + { + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(MsiAssemblyNameSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiAssemblyNameSymbolFields + { + ComponentRef, + Name, + Value, + } + + public class MsiAssemblyNameSymbol : IntermediateSymbol + { + public MsiAssemblyNameSymbol() : base(SymbolDefinitions.MsiAssemblyName, null, null) + { + } + + public MsiAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiAssemblyName, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiAssemblyNameSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.ComponentRef]; + set => this.Set((int)MsiAssemblyNameSymbolFields.ComponentRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Name]; + set => this.Set((int)MsiAssemblyNameSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Value]; + set => this.Set((int)MsiAssemblyNameSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs b/src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs new file mode 100644 index 00000000..febd51cc --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiDigitalCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiDigitalCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiDigitalCertificateSymbolFields.CertData), IntermediateFieldType.Path), + }, + typeof(MsiDigitalCertificateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiDigitalCertificateSymbolFields + { + CertData, + } + + public class MsiDigitalCertificateSymbol : IntermediateSymbol + { + public MsiDigitalCertificateSymbol() : base(SymbolDefinitions.MsiDigitalCertificate, null, null) + { + } + + public MsiDigitalCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiDigitalCertificateSymbolFields index] => this.Fields[(int)index]; + + public string CertData + { + get => (string)this.Fields[(int)MsiDigitalCertificateSymbolFields.CertData]; + set => this.Set((int)MsiDigitalCertificateSymbolFields.CertData, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs b/src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs new file mode 100644 index 00000000..560f3590 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiDigitalSignature = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiDigitalSignature, + new[] + { + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.SignObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Hash), IntermediateFieldType.Path), + }, + typeof(MsiDigitalSignatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiDigitalSignatureSymbolFields + { + Table, + SignObject, + DigitalCertificateRef, + Hash, + } + + public class MsiDigitalSignatureSymbol : IntermediateSymbol + { + public MsiDigitalSignatureSymbol() : base(SymbolDefinitions.MsiDigitalSignature, null, null) + { + } + + public MsiDigitalSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalSignature, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiDigitalSignatureSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Table]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.Table, value); + } + + public string SignObject + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.SignObject]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.SignObject, value); + } + + public string DigitalCertificateRef + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef, value); + } + + public string Hash + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Hash]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.Hash, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs b/src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs new file mode 100644 index 00000000..eeed1673 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiEmbeddedChainer = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiEmbeddedChainer, + new[] + { + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.CommandLine), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Type), IntermediateFieldType.Number), + }, + typeof(MsiEmbeddedChainerSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiEmbeddedChainerSymbolFields + { + Condition, + CommandLine, + Source, + Type, + } + + public class MsiEmbeddedChainerSymbol : IntermediateSymbol + { + public MsiEmbeddedChainerSymbol() : base(SymbolDefinitions.MsiEmbeddedChainer, null, null) + { + } + + public MsiEmbeddedChainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiEmbeddedChainerSymbolFields index] => this.Fields[(int)index]; + + public string Condition + { + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Condition]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Condition, value); + } + + public string CommandLine + { + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.CommandLine]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.CommandLine, value); + } + + public string Source + { + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Source]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Source, value); + } + + public int Type + { + get => (int)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Type]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs b/src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs new file mode 100644 index 00000000..87c9481a --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiEmbeddedUI = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiEmbeddedUI, + new[] + { + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.EntryPoint), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.SupportsBasicUI), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.MessageFilter), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.Source), IntermediateFieldType.Path), + }, + typeof(MsiEmbeddedUISymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiEmbeddedUISymbolFields + { + FileName, + EntryPoint, + SupportsBasicUI, + MessageFilter, + Source, + } + + public class MsiEmbeddedUISymbol : IntermediateSymbol + { + public MsiEmbeddedUISymbol() : base(SymbolDefinitions.MsiEmbeddedUI, null, null) + { + } + + public MsiEmbeddedUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedUI, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiEmbeddedUISymbolFields index] => this.Fields[(int)index]; + + public string FileName + { + get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.FileName]; + set => this.Set((int)MsiEmbeddedUISymbolFields.FileName, value); + } + + public bool EntryPoint + { + get => this.Fields[(int)MsiEmbeddedUISymbolFields.EntryPoint].AsBool(); + set => this.Set((int)MsiEmbeddedUISymbolFields.EntryPoint, value); + } + + public bool SupportsBasicUI + { + get => this.Fields[(int)MsiEmbeddedUISymbolFields.SupportsBasicUI].AsBool(); + set => this.Set((int)MsiEmbeddedUISymbolFields.SupportsBasicUI, value); + } + + public int? MessageFilter + { + get => (int?)this.Fields[(int)MsiEmbeddedUISymbolFields.MessageFilter]; + set => this.Set((int)MsiEmbeddedUISymbolFields.MessageFilter, value); + } + + public string Source + { + get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.Source]; + set => this.Set((int)MsiEmbeddedUISymbolFields.Source, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs b/src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs new file mode 100644 index 00000000..bfec1c12 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiFileHash = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiFileHash, + new[] + { + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.Options), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart1), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart2), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart3), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart4), IntermediateFieldType.Number), + }, + typeof(MsiFileHashSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiFileHashSymbolFields + { + Options, + HashPart1, + HashPart2, + HashPart3, + HashPart4, + } + + public class MsiFileHashSymbol : IntermediateSymbol + { + public MsiFileHashSymbol() : base(SymbolDefinitions.MsiFileHash, null, null) + { + } + + public MsiFileHashSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiFileHash, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiFileHashSymbolFields index] => this.Fields[(int)index]; + + public int Options + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.Options]; + set => this.Set((int)MsiFileHashSymbolFields.Options, value); + } + + public int HashPart1 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart1]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart1, value); + } + + public int HashPart2 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart2]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart2, value); + } + + public int HashPart3 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart3]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart3, value); + } + + public int HashPart4 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart4]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart4, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs b/src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs new file mode 100644 index 00000000..88e7d019 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiLockPermissionsEx = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiLockPermissionsEx, + new[] + { + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.SDDLText), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(MsiLockPermissionsExSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiLockPermissionsExSymbolFields + { + LockObject, + Table, + SDDLText, + Condition, + } + + public class MsiLockPermissionsExSymbol : IntermediateSymbol + { + public MsiLockPermissionsExSymbol() : base(SymbolDefinitions.MsiLockPermissionsEx, null, null) + { + } + + public MsiLockPermissionsExSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiLockPermissionsExSymbolFields index] => this.Fields[(int)index]; + + public string LockObject + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.LockObject]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.LockObject, value); + } + + public string Table + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Table]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.Table, value); + } + + public string SDDLText + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.SDDLText]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.SDDLText, value); + } + + public string Condition + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Condition]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs b/src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs new file mode 100644 index 00000000..4a6774b1 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPackageCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPackageCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.PackageCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), + }, + typeof(MsiPackageCertificateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPackageCertificateSymbolFields + { + PackageCertificate, + DigitalCertificateRef, + } + + public class MsiPackageCertificateSymbol : IntermediateSymbol + { + public MsiPackageCertificateSymbol() : base(SymbolDefinitions.MsiPackageCertificate, null, null) + { + } + + public MsiPackageCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPackageCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPackageCertificateSymbolFields index] => this.Fields[(int)index]; + + public string PackageCertificate + { + get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.PackageCertificate]; + set => this.Set((int)MsiPackageCertificateSymbolFields.PackageCertificate, value); + } + + public string DigitalCertificateRef + { + get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiPackageCertificateSymbolFields.DigitalCertificateRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs new file mode 100644 index 00000000..7d6ce24e --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.PatchCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), + }, + typeof(MsiPatchCertificateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchCertificateSymbolFields + { + PatchCertificate, + DigitalCertificateRef, + } + + public class MsiPatchCertificateSymbol : IntermediateSymbol + { + public MsiPatchCertificateSymbol() : base(SymbolDefinitions.MsiPatchCertificate, null, null) + { + } + + public MsiPatchCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchCertificateSymbolFields index] => this.Fields[(int)index]; + + public string PatchCertificate + { + get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.PatchCertificate]; + set => this.Set((int)MsiPatchCertificateSymbolFields.PatchCertificate, value); + } + + public string DigitalCertificateRef + { + get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiPatchCertificateSymbolFields.DigitalCertificateRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs new file mode 100644 index 00000000..0c68b164 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchHeaders = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchHeaders, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.StreamRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.Header), IntermediateFieldType.Path), + }, + typeof(MsiPatchHeadersSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchHeadersSymbolFields + { + StreamRef, + Header, + } + + public class MsiPatchHeadersSymbol : IntermediateSymbol + { + public MsiPatchHeadersSymbol() : base(SymbolDefinitions.MsiPatchHeaders, null, null) + { + } + + public MsiPatchHeadersSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchHeaders, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchHeadersSymbolFields index] => this.Fields[(int)index]; + + public string StreamRef + { + get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.StreamRef]; + set => this.Set((int)MsiPatchHeadersSymbolFields.StreamRef, value); + } + + public string Header + { + get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.Header]; + set => this.Set((int)MsiPatchHeadersSymbolFields.Header, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs new file mode 100644 index 00000000..682adbca --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchMetadata = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchMetadata, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(MsiPatchMetadataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchMetadataSymbolFields + { + Company, + Property, + Value, + } + + public class MsiPatchMetadataSymbol : IntermediateSymbol + { + public MsiPatchMetadataSymbol() : base(SymbolDefinitions.MsiPatchMetadata, null, null) + { + } + + public MsiPatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchMetadata, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchMetadataSymbolFields index] => this.Fields[(int)index]; + + public string Company + { + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Company]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Company, value); + } + + public string Property + { + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Property]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Value]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs new file mode 100644 index 00000000..75385ba8 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchOldAssemblyFile, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.AssemblyRef), IntermediateFieldType.String), + }, + typeof(MsiPatchOldAssemblyFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchOldAssemblyFileSymbolFields + { + FileRef, + AssemblyRef, + } + + public class MsiPatchOldAssemblyFileSymbol : IntermediateSymbol + { + public MsiPatchOldAssemblyFileSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyFile, null, null) + { + } + + public MsiPatchOldAssemblyFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchOldAssemblyFileSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.FileRef]; + set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.FileRef, value); + } + + public string AssemblyRef + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef]; + set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs new file mode 100644 index 00000000..199f5ff7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyName = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchOldAssemblyName, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Assembly), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(MsiPatchOldAssemblyNameSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchOldAssemblyNameSymbolFields + { + Assembly, + Name, + Value, + } + + public class MsiPatchOldAssemblyNameSymbol : IntermediateSymbol + { + public MsiPatchOldAssemblyNameSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyName, null, null) + { + } + + public MsiPatchOldAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchOldAssemblyNameSymbolFields index] => this.Fields[(int)index]; + + public string Assembly + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Assembly]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Assembly, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Name]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Value]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs new file mode 100644 index 00000000..ac2b0dc4 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchSequence = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchSequence, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(MsiPatchSequenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchSequenceSymbolFields + { + PatchFamily, + ProductCode, + Sequence, + Attributes, + } + + public class MsiPatchSequenceSymbol : IntermediateSymbol + { + public MsiPatchSequenceSymbol() : base(SymbolDefinitions.MsiPatchSequence, null, null) + { + } + + public MsiPatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchSequenceSymbolFields index] => this.Fields[(int)index]; + + public string PatchFamily + { + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.PatchFamily]; + set => this.Set((int)MsiPatchSequenceSymbolFields.PatchFamily, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.ProductCode]; + set => this.Set((int)MsiPatchSequenceSymbolFields.ProductCode, value); + } + + public string Sequence + { + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.Sequence]; + set => this.Set((int)MsiPatchSequenceSymbolFields.Sequence, value); + } + + public int? Attributes + { + get => (int?)this.Fields[(int)MsiPatchSequenceSymbolFields.Attributes]; + set => this.Set((int)MsiPatchSequenceSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs b/src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs new file mode 100644 index 00000000..92ca4059 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiServiceConfigFailureActions = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiServiceConfigFailureActions, + new[] + { + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ResetPeriod), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.RebootMessage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Actions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.DelayActions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(MsiServiceConfigFailureActionsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiServiceConfigFailureActionsSymbolFields + { + Name, + OnInstall, + OnReinstall, + OnUninstall, + ResetPeriod, + RebootMessage, + Command, + Actions, + DelayActions, + ComponentRef, + } + + public class MsiServiceConfigFailureActionsSymbol : IntermediateSymbol + { + public MsiServiceConfigFailureActionsSymbol() : base(SymbolDefinitions.MsiServiceConfigFailureActions, null, null) + { + } + + public MsiServiceConfigFailureActionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiServiceConfigFailureActionsSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Name]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Name, value); + } + + public bool OnInstall + { + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnInstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnInstall, value); + } + + public bool OnReinstall + { + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall, value); + } + + public bool OnUninstall + { + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall, value); + } + + public int? ResetPeriod + { + get => (int?)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod, value); + } + + public string RebootMessage + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage, value); + } + + public string Command + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Command]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Command, value); + } + + public string Actions + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Actions]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Actions, value); + } + + public string DelayActions + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.DelayActions]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.DelayActions, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs b/src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs new file mode 100644 index 00000000..9ad72d1e --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs @@ -0,0 +1,101 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiServiceConfig = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiServiceConfig, + new[] + { + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ConfigType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(MsiServiceConfigSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiServiceConfigSymbolFields + { + Name, + OnInstall, + OnReinstall, + OnUninstall, + ConfigType, + Argument, + ComponentRef, + } + + public enum MsiServiceConfigType + { + DelayedAutoStart = 3, + FailureActionsFlag, + ServiceSidInfo, + RequiredPrivilegesInfo, + PreshutdownInfo, + } + + public class MsiServiceConfigSymbol : IntermediateSymbol + { + public MsiServiceConfigSymbol() : base(SymbolDefinitions.MsiServiceConfig, null, null) + { + } + + public MsiServiceConfigSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfig, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiServiceConfigSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Name]; + set => this.Set((int)MsiServiceConfigSymbolFields.Name, value); + } + + public bool OnInstall + { + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnInstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnInstall, value); + } + + public bool OnReinstall + { + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnReinstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnReinstall, value); + } + + public bool OnUninstall + { + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnUninstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnUninstall, value); + } + + public MsiServiceConfigType ConfigType + { + get => (MsiServiceConfigType)this.Fields[(int)MsiServiceConfigSymbolFields.ConfigType].AsNumber(); + set => this.Set((int)MsiServiceConfigSymbolFields.ConfigType, (int)value); + } + + public string Argument + { + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Argument]; + set => this.Set((int)MsiServiceConfigSymbolFields.Argument, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs b/src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs new file mode 100644 index 00000000..5d5a46e5 --- /dev/null +++ b/src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiShortcutProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiShortcutProperty, + new[] + { + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.ShortcutRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropertyKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropVariantValue), IntermediateFieldType.String), + }, + typeof(MsiShortcutPropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiShortcutPropertySymbolFields + { + ShortcutRef, + PropertyKey, + PropVariantValue, + } + + public class MsiShortcutPropertySymbol : IntermediateSymbol + { + public MsiShortcutPropertySymbol() : base(SymbolDefinitions.MsiShortcutProperty, null, null) + { + } + + public MsiShortcutPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiShortcutProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiShortcutPropertySymbolFields index] => this.Fields[(int)index]; + + public string ShortcutRef + { + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.ShortcutRef]; + set => this.Set((int)MsiShortcutPropertySymbolFields.ShortcutRef, value); + } + + public string PropertyKey + { + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropertyKey]; + set => this.Set((int)MsiShortcutPropertySymbolFields.PropertyKey, value); + } + + public string PropVariantValue + { + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropVariantValue]; + set => this.Set((int)MsiShortcutPropertySymbolFields.PropVariantValue, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs b/src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs new file mode 100644 index 00000000..45ca6ed8 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.DriverRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(ODBCAttributeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCAttributeSymbolFields + { + DriverRef, + Attribute, + Value, + } + + public class ODBCAttributeSymbol : IntermediateSymbol + { + public ODBCAttributeSymbol() : base(SymbolDefinitions.ODBCAttribute, null, null) + { + } + + public ODBCAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCAttributeSymbolFields index] => this.Fields[(int)index]; + + public string DriverRef + { + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.DriverRef]; + set => this.Set((int)ODBCAttributeSymbolFields.DriverRef, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Attribute]; + set => this.Set((int)ODBCAttributeSymbolFields.Attribute, value); + } + + public string Value + { + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Value]; + set => this.Set((int)ODBCAttributeSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs b/src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs new file mode 100644 index 00000000..6af140bd --- /dev/null +++ b/src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCDataSource = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCDataSource, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.DriverDescription), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Registration), IntermediateFieldType.Number), + }, + typeof(ODBCDataSourceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCDataSourceSymbolFields + { + ComponentRef, + Description, + DriverDescription, + Registration, + } + + public class ODBCDataSourceSymbol : IntermediateSymbol + { + public ODBCDataSourceSymbol() : base(SymbolDefinitions.ODBCDataSource, null, null) + { + } + + public ODBCDataSourceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDataSource, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCDataSourceSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.ComponentRef]; + set => this.Set((int)ODBCDataSourceSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.Description]; + set => this.Set((int)ODBCDataSourceSymbolFields.Description, value); + } + + public string DriverDescription + { + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.DriverDescription]; + set => this.Set((int)ODBCDataSourceSymbolFields.DriverDescription, value); + } + + public int Registration + { + get => (int)this.Fields[(int)ODBCDataSourceSymbolFields.Registration]; + set => this.Set((int)ODBCDataSourceSymbolFields.Registration, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs b/src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs new file mode 100644 index 00000000..b31cc4cb --- /dev/null +++ b/src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCDriver = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCDriver, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.SetupFileRef), IntermediateFieldType.String), + }, + typeof(ODBCDriverSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCDriverSymbolFields + { + ComponentRef, + Description, + FileRef, + SetupFileRef, + } + + public class ODBCDriverSymbol : IntermediateSymbol + { + public ODBCDriverSymbol() : base(SymbolDefinitions.ODBCDriver, null, null) + { + } + + public ODBCDriverSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDriver, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCDriverSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.ComponentRef]; + set => this.Set((int)ODBCDriverSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.Description]; + set => this.Set((int)ODBCDriverSymbolFields.Description, value); + } + + public string FileRef + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.FileRef]; + set => this.Set((int)ODBCDriverSymbolFields.FileRef, value); + } + + public string SetupFileRef + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.SetupFileRef]; + set => this.Set((int)ODBCDriverSymbolFields.SetupFileRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs b/src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs new file mode 100644 index 00000000..2e25a5f7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCSourceAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCSourceAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.DataSourceRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(ODBCSourceAttributeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCSourceAttributeSymbolFields + { + DataSourceRef, + Attribute, + Value, + } + + public class ODBCSourceAttributeSymbol : IntermediateSymbol + { + public ODBCSourceAttributeSymbol() : base(SymbolDefinitions.ODBCSourceAttribute, null, null) + { + } + + public ODBCSourceAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCSourceAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCSourceAttributeSymbolFields index] => this.Fields[(int)index]; + + public string DataSourceRef + { + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.DataSourceRef]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.DataSourceRef, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Attribute]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.Attribute, value); + } + + public string Value + { + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Value]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs b/src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs new file mode 100644 index 00000000..c444b834 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCTranslator = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCTranslator, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.SetupFileRef), IntermediateFieldType.String), + }, + typeof(ODBCTranslatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCTranslatorSymbolFields + { + ComponentRef, + Description, + FileRef, + SetupFileRef, + } + + public class ODBCTranslatorSymbol : IntermediateSymbol + { + public ODBCTranslatorSymbol() : base(SymbolDefinitions.ODBCTranslator, null, null) + { + } + + public ODBCTranslatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCTranslator, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCTranslatorSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.ComponentRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.Description]; + set => this.Set((int)ODBCTranslatorSymbolFields.Description, value); + } + + public string FileRef + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.FileRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.FileRef, value); + } + + public string SetupFileRef + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.SetupFileRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.SetupFileRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs b/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs new file mode 100644 index 00000000..3f67aef7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PatchMetadata = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchMetadata, + new[] + { + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(PatchMetadataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PatchMetadataSymbolFields + { + Company, + Property, + Value, + } + + public class PatchMetadataSymbol : IntermediateSymbol + { + public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null) + { + } + + public PatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchMetadata, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchMetadataSymbolFields index] => this.Fields[(int)index]; + + public string Company + { + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Company]; + set => this.Set((int)PatchMetadataSymbolFields.Company, value); + } + + public string Property + { + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Property]; + set => this.Set((int)PatchMetadataSymbolFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Value]; + set => this.Set((int)PatchMetadataSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PatchPackageSymbol.cs b/src/WixToolset.Data/Symbols/PatchPackageSymbol.cs new file mode 100644 index 00000000..0efdfd25 --- /dev/null +++ b/src/WixToolset.Data/Symbols/PatchPackageSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PatchPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchPackage, + new[] + { + new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.PatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.MediaDiskIdRef), IntermediateFieldType.Number), + }, + typeof(PatchPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PatchPackageSymbolFields + { + PatchId, + MediaDiskIdRef, + } + + public class PatchPackageSymbol : IntermediateSymbol + { + public PatchPackageSymbol() : base(SymbolDefinitions.PatchPackage, null, null) + { + } + + public PatchPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchPackageSymbolFields index] => this.Fields[(int)index]; + + public string PatchId + { + get => (string)this.Fields[(int)PatchPackageSymbolFields.PatchId]; + set => this.Set((int)PatchPackageSymbolFields.PatchId, value); + } + + public int MediaDiskIdRef + { + get => (int)this.Fields[(int)PatchPackageSymbolFields.MediaDiskIdRef]; + set => this.Set((int)PatchPackageSymbolFields.MediaDiskIdRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs b/src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs new file mode 100644 index 00000000..a4cbca61 --- /dev/null +++ b/src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PatchSequence = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchSequence, + new[] + { + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Supersede), IntermediateFieldType.Number), + }, + typeof(PatchSequenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PatchSequenceSymbolFields + { + PatchFamily, + Target, + Sequence, + Supersede, + } + + public class PatchSequenceSymbol : IntermediateSymbol + { + public PatchSequenceSymbol() : base(SymbolDefinitions.PatchSequence, null, null) + { + } + + public PatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchSequenceSymbolFields index] => this.Fields[(int)index]; + + public string PatchFamily + { + get => (string)this.Fields[(int)PatchSequenceSymbolFields.PatchFamily]; + set => this.Set((int)PatchSequenceSymbolFields.PatchFamily, value); + } + + public string Target + { + get => (string)this.Fields[(int)PatchSequenceSymbolFields.Target]; + set => this.Set((int)PatchSequenceSymbolFields.Target, value); + } + + public string Sequence + { + get => (string)this.Fields[(int)PatchSequenceSymbolFields.Sequence]; + set => this.Set((int)PatchSequenceSymbolFields.Sequence, value); + } + + public int? Supersede + { + get => (int?)this.Fields[(int)PatchSequenceSymbolFields.Supersede]; + set => this.Set((int)PatchSequenceSymbolFields.Supersede, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PatchSymbol.cs b/src/WixToolset.Data/Symbols/PatchSymbol.cs new file mode 100644 index 00000000..31e68d76 --- /dev/null +++ b/src/WixToolset.Data/Symbols/PatchSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Patch = new IntermediateSymbolDefinition( + SymbolDefinitionType.Patch, + new[] + { + new IntermediateFieldDefinition(nameof(PatchSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.PatchSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Header), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.StreamRef), IntermediateFieldType.String), + }, + typeof(PatchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PatchSymbolFields + { + FileRef, + Sequence, + PatchSize, + Attributes, + Header, + StreamRef, + } + + public class PatchSymbol : IntermediateSymbol + { + public PatchSymbol() : base(SymbolDefinitions.Patch, null, null) + { + } + + public PatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Patch, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)PatchSymbolFields.FileRef]; + set => this.Set((int)PatchSymbolFields.FileRef, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)PatchSymbolFields.Sequence]; + set => this.Set((int)PatchSymbolFields.Sequence, value); + } + + public int PatchSize + { + get => (int)this.Fields[(int)PatchSymbolFields.PatchSize]; + set => this.Set((int)PatchSymbolFields.PatchSize, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)PatchSymbolFields.Attributes]; + set => this.Set((int)PatchSymbolFields.Attributes, value); + } + + public string Header + { + get => (string)this.Fields[(int)PatchSymbolFields.Header]; + set => this.Set((int)PatchSymbolFields.Header, value); + } + + public string StreamRef + { + get => (string)this.Fields[(int)PatchSymbolFields.StreamRef]; + set => this.Set((int)PatchSymbolFields.StreamRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ProgIdSymbol.cs b/src/WixToolset.Data/Symbols/ProgIdSymbol.cs new file mode 100644 index 00000000..57ac758f --- /dev/null +++ b/src/WixToolset.Data/Symbols/ProgIdSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ProgId = new IntermediateSymbolDefinition( + SymbolDefinitionType.ProgId, + new[] + { + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ProgId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ParentProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ClassRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconIndex), IntermediateFieldType.Number), + }, + typeof(ProgIdSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ProgIdSymbolFields + { + ProgId, + ParentProgIdRef, + ClassRef, + Description, + IconRef, + IconIndex, + } + + public class ProgIdSymbol : IntermediateSymbol + { + public ProgIdSymbol() : base(SymbolDefinitions.ProgId, null, null) + { + } + + public ProgIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProgId, sourceLineNumber, id) + { + } + + public IntermediateField this[ProgIdSymbolFields index] => this.Fields[(int)index]; + + public string ProgId + { + get => (string)this.Fields[(int)ProgIdSymbolFields.ProgId]; + set => this.Set((int)ProgIdSymbolFields.ProgId, value); + } + + public string ParentProgIdRef + { + get => (string)this.Fields[(int)ProgIdSymbolFields.ParentProgIdRef]; + set => this.Set((int)ProgIdSymbolFields.ParentProgIdRef, value); + } + + public string ClassRef + { + get => (string)this.Fields[(int)ProgIdSymbolFields.ClassRef]; + set => this.Set((int)ProgIdSymbolFields.ClassRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ProgIdSymbolFields.Description]; + set => this.Set((int)ProgIdSymbolFields.Description, value); + } + + public string IconRef + { + get => (string)this.Fields[(int)ProgIdSymbolFields.IconRef]; + set => this.Set((int)ProgIdSymbolFields.IconRef, value); + } + + public int? IconIndex + { + get => (int?)this.Fields[(int)ProgIdSymbolFields.IconIndex]; + set => this.Set((int)ProgIdSymbolFields.IconIndex, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PropertiesSymbol.cs b/src/WixToolset.Data/Symbols/PropertiesSymbol.cs new file mode 100644 index 00000000..61059aa6 --- /dev/null +++ b/src/WixToolset.Data/Symbols/PropertiesSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Properties = new IntermediateSymbolDefinition( + SymbolDefinitionType.Properties, + new[] + { + new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(PropertiesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PropertiesSymbolFields + { + Name, + Value, + } + + public class PropertiesSymbol : IntermediateSymbol + { + public PropertiesSymbol() : base(SymbolDefinitions.Properties, null, null) + { + } + + public PropertiesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Properties, sourceLineNumber, id) + { + } + + public IntermediateField this[PropertiesSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)PropertiesSymbolFields.Name]; + set => this.Set((int)PropertiesSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)PropertiesSymbolFields.Value]; + set => this.Set((int)PropertiesSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PropertySymbol.cs b/src/WixToolset.Data/Symbols/PropertySymbol.cs new file mode 100644 index 00000000..b93d962a --- /dev/null +++ b/src/WixToolset.Data/Symbols/PropertySymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Property = new IntermediateSymbolDefinition( + SymbolDefinitionType.Property, + new[] + { + new IntermediateFieldDefinition(nameof(PropertySymbolFields.Value), IntermediateFieldType.String), + }, + typeof(PropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PropertySymbolFields + { + Value, + } + + public class PropertySymbol : IntermediateSymbol + { + public PropertySymbol() : base(SymbolDefinitions.Property, null, null) + { + } + + public PropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Property, sourceLineNumber, id) + { + } + + public IntermediateField this[PropertySymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)PropertySymbolFields.Value]; + set => this.Set((int)PropertySymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs b/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs new file mode 100644 index 00000000..8d8cb02b --- /dev/null +++ b/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ProvidesDependency = new IntermediateSymbolDefinition( + SymbolDefinitionType.ProvidesDependency, + new[] + { + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Imported), IntermediateFieldType.Bool), + }, + typeof(ProvidesDependencySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ProvidesDependencySymbolFields + { + PackageRef, + Key, + Version, + DisplayName, + Attributes, + Imported, + } + + public class ProvidesDependencySymbol : IntermediateSymbol + { + public ProvidesDependencySymbol() : base(SymbolDefinitions.ProvidesDependency, null, null) + { + } + + public ProvidesDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProvidesDependency, sourceLineNumber, id) + { + } + + public IntermediateField this[ProvidesDependencySymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.PackageRef]; + set => this.Set((int)ProvidesDependencySymbolFields.PackageRef, value); + } + + public string Key + { + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Key]; + set => this.Set((int)ProvidesDependencySymbolFields.Key, value); + } + + public string Version + { + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Version]; + set => this.Set((int)ProvidesDependencySymbolFields.Version, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ProvidesDependencySymbolFields.DisplayName]; + set => this.Set((int)ProvidesDependencySymbolFields.DisplayName, value); + } + + public int? Attributes + { + get => (int?)this.Fields[(int)ProvidesDependencySymbolFields.Attributes]; + set => this.Set((int)ProvidesDependencySymbolFields.Attributes, value); + } + + public bool Imported + { + get => (bool)this.Fields[(int)ProvidesDependencySymbolFields.Imported]; + set => this.Set((int)ProvidesDependencySymbolFields.Imported, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/PublishComponentSymbol.cs b/src/WixToolset.Data/Symbols/PublishComponentSymbol.cs new file mode 100644 index 00000000..3fb81801 --- /dev/null +++ b/src/WixToolset.Data/Symbols/PublishComponentSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PublishComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.PublishComponent, + new[] + { + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.Qualifier), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.AppData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.FeatureRef), IntermediateFieldType.String), + }, + typeof(PublishComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PublishComponentSymbolFields + { + ComponentId, + Qualifier, + ComponentRef, + AppData, + FeatureRef, + } + + public class PublishComponentSymbol : IntermediateSymbol + { + public PublishComponentSymbol() : base(SymbolDefinitions.PublishComponent, null, null) + { + } + + public PublishComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PublishComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[PublishComponentSymbolFields index] => this.Fields[(int)index]; + + public string ComponentId + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentId]; + set => this.Set((int)PublishComponentSymbolFields.ComponentId, value); + } + + public string Qualifier + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.Qualifier]; + set => this.Set((int)PublishComponentSymbolFields.Qualifier, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentRef]; + set => this.Set((int)PublishComponentSymbolFields.ComponentRef, value); + } + + public string AppData + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.AppData]; + set => this.Set((int)PublishComponentSymbolFields.AppData, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.FeatureRef]; + set => this.Set((int)PublishComponentSymbolFields.FeatureRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RadioButtonSymbol.cs b/src/WixToolset.Data/Symbols/RadioButtonSymbol.cs new file mode 100644 index 00000000..6a26e937 --- /dev/null +++ b/src/WixToolset.Data/Symbols/RadioButtonSymbol.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RadioButton = new IntermediateSymbolDefinition( + SymbolDefinitionType.RadioButton, + new[] + { + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Help), IntermediateFieldType.String), + }, + typeof(RadioButtonSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RadioButtonSymbolFields + { + Property, + Order, + Value, + X, + Y, + Width, + Height, + Text, + Help, + } + + public class RadioButtonSymbol : IntermediateSymbol + { + public RadioButtonSymbol() : base(SymbolDefinitions.RadioButton, null, null) + { + } + + public RadioButtonSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RadioButton, sourceLineNumber, id) + { + } + + public IntermediateField this[RadioButtonSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Property]; + set => this.Set((int)RadioButtonSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Order]; + set => this.Set((int)RadioButtonSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Value]; + set => this.Set((int)RadioButtonSymbolFields.Value, value); + } + + public int X + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.X]; + set => this.Set((int)RadioButtonSymbolFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Y]; + set => this.Set((int)RadioButtonSymbolFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Width]; + set => this.Set((int)RadioButtonSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Height]; + set => this.Set((int)RadioButtonSymbolFields.Height, value); + } + + public string Text + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Text]; + set => this.Set((int)RadioButtonSymbolFields.Text, value); + } + + public string Help + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Help]; + set => this.Set((int)RadioButtonSymbolFields.Help, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RegLocatorSymbol.cs b/src/WixToolset.Data/Symbols/RegLocatorSymbol.cs new file mode 100644 index 00000000..bf50dab7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/RegLocatorSymbol.cs @@ -0,0 +1,83 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RegLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.RegLocator, + new[] + { + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Win64), IntermediateFieldType.Bool), + }, + typeof(RegLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RegLocatorSymbolFields + { + Root, + Key, + Name, + Type, + Win64, + } + + public enum RegLocatorType + { + Directory, + FileName, + Raw + }; + + public class RegLocatorSymbol : IntermediateSymbol + { + public RegLocatorSymbol() : base(SymbolDefinitions.RegLocator, null, null) + { + } + + public RegLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RegLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[RegLocatorSymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)RegLocatorSymbolFields.Root].AsNumber(); + set => this.Set((int)RegLocatorSymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)RegLocatorSymbolFields.Key]; + set => this.Set((int)RegLocatorSymbolFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RegLocatorSymbolFields.Name]; + set => this.Set((int)RegLocatorSymbolFields.Name, value); + } + + public RegLocatorType Type + { + get => (RegLocatorType)this.Fields[(int)RegLocatorSymbolFields.Type].AsNumber(); + set => this.Set((int)RegLocatorSymbolFields.Type, (int)value); + } + + public bool Win64 + { + get => this.Fields[(int)RegLocatorSymbolFields.Win64].AsBool(); + set => this.Set((int)RegLocatorSymbolFields.Win64, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/RegistryRootType.cs b/src/WixToolset.Data/Symbols/RegistryRootType.cs new file mode 100644 index 00000000..9f60727c --- /dev/null +++ b/src/WixToolset.Data/Symbols/RegistryRootType.cs @@ -0,0 +1,21 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + using System; + + /// + /// Registry root mapping. + /// + public enum RegistryRootType + { + Unknown = Int32.MaxValue, + + /// HKLM in a per-machine and HKCU in per-user. + MachineUser = -1, + ClassesRoot = 0, + CurrentUser = 1, + LocalMachine = 2, + Users = 3 + } +} diff --git a/src/WixToolset.Data/Symbols/RegistrySymbol.cs b/src/WixToolset.Data/Symbols/RegistrySymbol.cs new file mode 100644 index 00000000..371bfe98 --- /dev/null +++ b/src/WixToolset.Data/Symbols/RegistrySymbol.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Registry = new IntermediateSymbolDefinition( + SymbolDefinitionType.Registry, + new[] + { + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueAction), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(RegistrySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RegistrySymbolFields + { + Root, + Key, + Name, + Value, + ValueType, + ValueAction, + ComponentRef, + } + + public enum RegistryValueType + { + String, + Binary, + Expandable, + Integer, + MultiString, + } + + public enum RegistryValueActionType + { + Write, + Append, + Prepend, + } + + public class RegistrySymbol : IntermediateSymbol + { + public RegistrySymbol() : base(SymbolDefinitions.Registry, null, null) + { + } + + public RegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Registry, sourceLineNumber, id) + { + } + + public IntermediateField this[RegistrySymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)RegistrySymbolFields.Root].AsNumber(); + set => this.Set((int)RegistrySymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)RegistrySymbolFields.Key]; + set => this.Set((int)RegistrySymbolFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RegistrySymbolFields.Name]; + set => this.Set((int)RegistrySymbolFields.Name, value); + } + + public string Value + { + get => this.Fields[(int)RegistrySymbolFields.Value].AsString(); + set => this.Set((int)RegistrySymbolFields.Value, value); + } + + public RegistryValueType ValueType + { + get => (RegistryValueType)this.Fields[(int)RegistrySymbolFields.ValueType].AsNumber(); + set => this.Set((int)RegistrySymbolFields.ValueType, (int)value); + } + + public RegistryValueActionType ValueAction + { + get => (RegistryValueActionType)this.Fields[(int)RegistrySymbolFields.ValueAction].AsNumber(); + set => this.Set((int)RegistrySymbolFields.ValueAction, (int)value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)RegistrySymbolFields.ComponentRef]; + set => this.Set((int)RegistrySymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs b/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs new file mode 100644 index 00000000..a1791e54 --- /dev/null +++ b/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RemoveFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.RemoveFile, + new[] + { + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnUninstall), IntermediateFieldType.Bool), + }, + typeof(RemoveFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RemoveFileSymbolFields + { + ComponentRef, + FileName, + DirProperty, + OnInstall, + OnUninstall, + } + + public class RemoveFileSymbol : IntermediateSymbol + { + public RemoveFileSymbol() : base(SymbolDefinitions.RemoveFile, null, null) + { + } + + public RemoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveFile, sourceLineNumber, id) + { + } + + public IntermediateField this[RemoveFileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.ComponentRef]; + set => this.Set((int)RemoveFileSymbolFields.ComponentRef, value); + } + + public string FileName + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.FileName]; + set => this.Set((int)RemoveFileSymbolFields.FileName, value); + } + + public string DirProperty + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.DirProperty]; + set => this.Set((int)RemoveFileSymbolFields.DirProperty, value); + } + + public bool? OnInstall + { + get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnInstall]; + set => this.Set((int)RemoveFileSymbolFields.OnInstall, value); + } + + public bool? OnUninstall + { + get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnUninstall]; + set => this.Set((int)RemoveFileSymbolFields.OnUninstall, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs b/src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs new file mode 100644 index 00000000..a797cd33 --- /dev/null +++ b/src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs @@ -0,0 +1,82 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RemoveRegistry = new IntermediateSymbolDefinition( + SymbolDefinitionType.RemoveRegistry, + new[] + { + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(RemoveRegistrySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RemoveRegistrySymbolFields + { + Root, + Key, + Name, + Action, + ComponentRef, + } + + public enum RemoveRegistryActionType + { + RemoveOnInstall, + RemoveOnUninstall + }; + + public class RemoveRegistrySymbol : IntermediateSymbol + { + public RemoveRegistrySymbol() : base(SymbolDefinitions.RemoveRegistry, null, null) + { + } + + public RemoveRegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveRegistry, sourceLineNumber, id) + { + } + + public IntermediateField this[RemoveRegistrySymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)RemoveRegistrySymbolFields.Root].AsNumber(); + set => this.Set((int)RemoveRegistrySymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Key]; + set => this.Set((int)RemoveRegistrySymbolFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Name]; + set => this.Set((int)RemoveRegistrySymbolFields.Name, value); + } + + public RemoveRegistryActionType Action + { + get => (RemoveRegistryActionType)this.Fields[(int)RemoveRegistrySymbolFields.Action].AsNumber(); + set => this.Set((int)RemoveRegistrySymbolFields.Action, (int)value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.ComponentRef]; + set => this.Set((int)RemoveRegistrySymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ReserveCostSymbol.cs b/src/WixToolset.Data/Symbols/ReserveCostSymbol.cs new file mode 100644 index 00000000..b59dea2f --- /dev/null +++ b/src/WixToolset.Data/Symbols/ReserveCostSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ReserveCost = new IntermediateSymbolDefinition( + SymbolDefinitionType.ReserveCost, + new[] + { + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveLocal), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveSource), IntermediateFieldType.Number), + }, + typeof(ReserveCostSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ReserveCostSymbolFields + { + ComponentRef, + ReserveFolder, + ReserveLocal, + ReserveSource, + } + + public class ReserveCostSymbol : IntermediateSymbol + { + public ReserveCostSymbol() : base(SymbolDefinitions.ReserveCost, null, null) + { + } + + public ReserveCostSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ReserveCost, sourceLineNumber, id) + { + } + + public IntermediateField this[ReserveCostSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ReserveCostSymbolFields.ComponentRef]; + set => this.Set((int)ReserveCostSymbolFields.ComponentRef, value); + } + + public string ReserveFolder + { + get => (string)this.Fields[(int)ReserveCostSymbolFields.ReserveFolder]; + set => this.Set((int)ReserveCostSymbolFields.ReserveFolder, value); + } + + public int ReserveLocal + { + get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveLocal]; + set => this.Set((int)ReserveCostSymbolFields.ReserveLocal, value); + } + + public int ReserveSource + { + get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveSource]; + set => this.Set((int)ReserveCostSymbolFields.ReserveSource, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs b/src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs new file mode 100644 index 00000000..0d3f1558 --- /dev/null +++ b/src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition SFPCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.SFPCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.SFPCatalog), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Catalog), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Dependency), IntermediateFieldType.String), + }, + typeof(SFPCatalogSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SFPCatalogSymbolFields + { + SFPCatalog, + Catalog, + Dependency, + } + + public class SFPCatalogSymbol : IntermediateSymbol + { + public SFPCatalogSymbol() : base(SymbolDefinitions.SFPCatalog, null, null) + { + } + + public SFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SFPCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[SFPCatalogSymbolFields index] => this.Fields[(int)index]; + + public string SFPCatalog + { + get => (string)this.Fields[(int)SFPCatalogSymbolFields.SFPCatalog]; + set => this.Set((int)SFPCatalogSymbolFields.SFPCatalog, value); + } + + public string Catalog + { + get => (string)this.Fields[(int)SFPCatalogSymbolFields.Catalog]; + set => this.Set((int)SFPCatalogSymbolFields.Catalog, value); + } + + public string Dependency + { + get => (string)this.Fields[(int)SFPCatalogSymbolFields.Dependency]; + set => this.Set((int)SFPCatalogSymbolFields.Dependency, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ServiceControlSymbol.cs b/src/WixToolset.Data/Symbols/ServiceControlSymbol.cs new file mode 100644 index 00000000..6e129681 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ServiceControlSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ServiceControl = new IntermediateSymbolDefinition( + SymbolDefinitionType.ServiceControl, + new[] + { + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallRemove), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallRemove), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStart), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStart), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStop), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStop), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Wait), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(ServiceControlSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ServiceControlSymbolFields + { + Name, + InstallRemove, + UninstallRemove, + InstallStart, + UninstallStart, + InstallStop, + UninstallStop, + Arguments, + Wait, + ComponentRef, + } + + public class ServiceControlSymbol : IntermediateSymbol + { + public ServiceControlSymbol() : base(SymbolDefinitions.ServiceControl, null, null) + { + } + + public ServiceControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceControl, sourceLineNumber, id) + { + } + + public IntermediateField this[ServiceControlSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)ServiceControlSymbolFields.Name]; + set => this.Set((int)ServiceControlSymbolFields.Name, value); + } + + public bool InstallRemove + { + get => this.Fields[(int)ServiceControlSymbolFields.InstallRemove].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallRemove, value); + } + + public bool UninstallRemove + { + get => this.Fields[(int)ServiceControlSymbolFields.UninstallRemove].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallRemove, value); + } + + public bool InstallStart + { + get => this.Fields[(int)ServiceControlSymbolFields.InstallStart].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallStart, value); + } + + public bool UninstallStart + { + get => this.Fields[(int)ServiceControlSymbolFields.UninstallStart].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallStart, value); + } + + public bool InstallStop + { + get => this.Fields[(int)ServiceControlSymbolFields.InstallStop].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallStop, value); + } + + public bool UninstallStop + { + get => this.Fields[(int)ServiceControlSymbolFields.UninstallStop].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallStop, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ServiceControlSymbolFields.Arguments]; + set => this.Set((int)ServiceControlSymbolFields.Arguments, value); + } + + public bool? Wait + { + get => this.Fields[(int)ServiceControlSymbolFields.Wait].AsNullableBool(); + set => this.Set((int)ServiceControlSymbolFields.Wait, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ServiceControlSymbolFields.ComponentRef]; + set => this.Set((int)ServiceControlSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs b/src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs new file mode 100644 index 00000000..f7ec8dbf --- /dev/null +++ b/src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs @@ -0,0 +1,173 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ServiceInstall = new IntermediateSymbolDefinition( + SymbolDefinitionType.ServiceInstall, + new[] + { + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ServiceType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ErrorControl), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.LoadOrderGroup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Dependencies), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Password), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Interactive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Vital), IntermediateFieldType.Bool), + }, + typeof(ServiceInstallSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ServiceInstallSymbolFields + { + Name, + DisplayName, + ServiceType, + StartType, + ErrorControl, + LoadOrderGroup, + Dependencies, + StartName, + Password, + Arguments, + ComponentRef, + Description, + Interactive, + Vital, + } + + public enum ServiceType + { + KernelDriver, + SystemDriver, + OwnProcess = 0x10, + ShareProcess = 0x20, + InteractiveProcess = 0x100, + } + + public enum ServiceStartType + { + Boot, + System, + Auto, + Demand, + Disabled, + } + + public enum ServiceErrorControl + { + Ignore, + Normal, + Critical = 3, + } + + public class ServiceInstallSymbol : IntermediateSymbol + { + public ServiceInstallSymbol() : base(SymbolDefinitions.ServiceInstall, null, null) + { + } + + public ServiceInstallSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceInstall, sourceLineNumber, id) + { + } + + public IntermediateField this[ServiceInstallSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Name]; + set => this.Set((int)ServiceInstallSymbolFields.Name, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.DisplayName]; + set => this.Set((int)ServiceInstallSymbolFields.DisplayName, value); + } + + public ServiceType ServiceType + { + get => (ServiceType)this.Fields[(int)ServiceInstallSymbolFields.ServiceType].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.ServiceType, (int)value); + } + + public ServiceStartType StartType + { + get => (ServiceStartType)this.Fields[(int)ServiceInstallSymbolFields.StartType].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.StartType, (int)value); + } + + public ServiceErrorControl ErrorControl + { + get => (ServiceErrorControl)this.Fields[(int)ServiceInstallSymbolFields.ErrorControl].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.ErrorControl, (int)value); + } + + public string LoadOrderGroup + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.LoadOrderGroup]; + set => this.Set((int)ServiceInstallSymbolFields.LoadOrderGroup, value); + } + + public string Dependencies + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Dependencies]; + set => this.Set((int)ServiceInstallSymbolFields.Dependencies, value); + } + + public string StartName + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.StartName]; + set => this.Set((int)ServiceInstallSymbolFields.StartName, value); + } + + public string Password + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Password]; + set => this.Set((int)ServiceInstallSymbolFields.Password, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Arguments]; + set => this.Set((int)ServiceInstallSymbolFields.Arguments, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.ComponentRef]; + set => this.Set((int)ServiceInstallSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Description]; + set => this.Set((int)ServiceInstallSymbolFields.Description, value); + } + + public bool Interactive + { + get => this.Fields[(int)ServiceInstallSymbolFields.Interactive].AsBool(); + set => this.Set((int)ServiceInstallSymbolFields.Interactive, value); + } + + public bool Vital + { + get => this.Fields[(int)ServiceInstallSymbolFields.Vital].AsBool(); + set => this.Set((int)ServiceInstallSymbolFields.Vital, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ShortcutSymbol.cs b/src/WixToolset.Data/Symbols/ShortcutSymbol.cs new file mode 100644 index 00000000..f32fe4af --- /dev/null +++ b/src/WixToolset.Data/Symbols/ShortcutSymbol.cs @@ -0,0 +1,171 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Shortcut = new IntermediateSymbolDefinition( + SymbolDefinitionType.Shortcut, + new[] + { + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Hotkey), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Show), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.WkDir), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceId), IntermediateFieldType.Number), + }, + typeof(ShortcutSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ShortcutSymbolFields + { + DirectoryRef, + Name, + ShortName, + ComponentRef, + Target, + Arguments, + Description, + Hotkey, + IconRef, + IconIndex, + Show, + WkDir, + DisplayResourceDLL, + DisplayResourceId, + DescriptionResourceDLL, + DescriptionResourceId, + } + + public enum ShortcutShowType + { + Normal = 1, + Maximized = 3, + Minimized = 7 + } + + public class ShortcutSymbol : IntermediateSymbol + { + public ShortcutSymbol() : base(SymbolDefinitions.Shortcut, null, null) + { + } + + public ShortcutSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Shortcut, sourceLineNumber, id) + { + } + + public IntermediateField this[ShortcutSymbolFields index] => this.Fields[(int)index]; + + public string DirectoryRef + { + get => (string)this.Fields[(int)ShortcutSymbolFields.DirectoryRef]; + set => this.Set((int)ShortcutSymbolFields.DirectoryRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Name]; + set => this.Set((int)ShortcutSymbolFields.Name, value); + } + + public string ShortName + { + get => (string)this.Fields[(int)ShortcutSymbolFields.ShortName]; + set => this.Set((int)ShortcutSymbolFields.ShortName, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ShortcutSymbolFields.ComponentRef]; + set => this.Set((int)ShortcutSymbolFields.ComponentRef, value); + } + + public string Target + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Target]; + set => this.Set((int)ShortcutSymbolFields.Target, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Arguments]; + set => this.Set((int)ShortcutSymbolFields.Arguments, value); + } + + public string Description + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Description]; + set => this.Set((int)ShortcutSymbolFields.Description, value); + } + + public int? Hotkey + { + get => this.Fields[(int)ShortcutSymbolFields.Hotkey].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.Hotkey, value); + } + + public string IconRef + { + get => (string)this.Fields[(int)ShortcutSymbolFields.IconRef]; + set => this.Set((int)ShortcutSymbolFields.IconRef, value); + } + + public int? IconIndex + { + get => this.Fields[(int)ShortcutSymbolFields.IconIndex].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.IconIndex, value); + } + + public ShortcutShowType? Show + { + get => (ShortcutShowType?)this.Fields[(int)ShortcutSymbolFields.Show].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.Show, (int?)value); + } + + public string WorkingDirectory + { + get => (string)this.Fields[(int)ShortcutSymbolFields.WkDir]; + set => this.Set((int)ShortcutSymbolFields.WkDir, value); + } + + public string DisplayResourceDll + { + get => (string)this.Fields[(int)ShortcutSymbolFields.DisplayResourceDLL]; + set => this.Set((int)ShortcutSymbolFields.DisplayResourceDLL, value); + } + + public int? DisplayResourceId + { + get => this.Fields[(int)ShortcutSymbolFields.DisplayResourceId].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.DisplayResourceId, value); + } + + public string DescriptionResourceDll + { + get => (string)this.Fields[(int)ShortcutSymbolFields.DescriptionResourceDLL]; + set => this.Set((int)ShortcutSymbolFields.DescriptionResourceDLL, value); + } + + public int? DescriptionResourceId + { + get => this.Fields[(int)ShortcutSymbolFields.DescriptionResourceId].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.DescriptionResourceId, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/SignatureSymbol.cs b/src/WixToolset.Data/Symbols/SignatureSymbol.cs new file mode 100644 index 00000000..fc2ce088 --- /dev/null +++ b/src/WixToolset.Data/Symbols/SignatureSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Signature = new IntermediateSymbolDefinition( + SymbolDefinitionType.Signature, + new[] + { + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.Languages), IntermediateFieldType.String), + }, + typeof(SignatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SignatureSymbolFields + { + FileName, + MinVersion, + MaxVersion, + MinSize, + MaxSize, + MinDate, + MaxDate, + Languages, + } + + public class SignatureSymbol : IntermediateSymbol + { + public SignatureSymbol() : base(SymbolDefinitions.Signature, null, null) + { + } + + public SignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Signature, sourceLineNumber, id) + { + } + + public IntermediateField this[SignatureSymbolFields index] => this.Fields[(int)index]; + + public string FileName + { + get => (string)this.Fields[(int)SignatureSymbolFields.FileName]; + set => this.Set((int)SignatureSymbolFields.FileName, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)SignatureSymbolFields.MinVersion]; + set => this.Set((int)SignatureSymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)SignatureSymbolFields.MaxVersion]; + set => this.Set((int)SignatureSymbolFields.MaxVersion, value); + } + + public int? MinSize + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MinSize]; + set => this.Set((int)SignatureSymbolFields.MinSize, value); + } + + public int? MaxSize + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MaxSize]; + set => this.Set((int)SignatureSymbolFields.MaxSize, value); + } + + public int? MinDate + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MinDate]; + set => this.Set((int)SignatureSymbolFields.MinDate, value); + } + + public int? MaxDate + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MaxDate]; + set => this.Set((int)SignatureSymbolFields.MaxDate, value); + } + + public string Languages + { + get => (string)this.Fields[(int)SignatureSymbolFields.Languages]; + set => this.Set((int)SignatureSymbolFields.Languages, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs b/src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs new file mode 100644 index 00000000..b3b233fe --- /dev/null +++ b/src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs @@ -0,0 +1,102 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition SummaryInformation = new IntermediateSymbolDefinition( + SymbolDefinitionType.SummaryInformation, + new[] + { + new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.PropertyId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(SummaryInformationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SummaryInformationSymbolFields + { + PropertyId, + Value, + } + + public enum SummaryInformationType + { + Codepage = 1, + Title, + Subject, + PatchPackageName = 3, //used by patches + Author, + Keywords, + Comments, + PlatformAndLanguage, + PatchProductCodes = 7, // used by patches + TransformPlatformAndLanguageOrStorageNames, + TransformNames = 8, // used by patches + PackageCode, + PatchCode = 9, // used by patches + TransformProductCodes = 9, // used by transforms + Reserved11 = 11, // reserved by patches + Created, + LastSaved, + WindowsInstallerVersion, + Reserved14 = 14, // reserved by patches + WordCount, + PatchInstallerRequirement = 15, // used by patches + Reserved16, // reserved by patches + TransformValidationFlags = 16, // used by transforms + CreatingApplication = 18, + Security + } + + /// + /// Summary information values for the PachInstallerRequirement property. + /// + public enum PatchInstallerRequirement + { + /// Any version of the installer will do + Version10 = 1, + + /// At least 1.2 + Version12 = 2, + + /// At least 2.0 + Version20 = 3, + + /// At least 3.0 + Version30 = 4, + + /// At least 3.1 + Version31 = 5, + } + + public class SummaryInformationSymbol : IntermediateSymbol + { + public SummaryInformationSymbol() : base(SymbolDefinitions.SummaryInformation, null, null) + { + } + + public SummaryInformationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SummaryInformation, sourceLineNumber, id) + { + } + + public IntermediateField this[SummaryInformationSymbolFields index] => this.Fields[(int)index]; + + public SummaryInformationType PropertyId + { + get => (SummaryInformationType)this.Fields[(int)SummaryInformationSymbolFields.PropertyId].AsNumber(); + set => this.Set((int)SummaryInformationSymbolFields.PropertyId, (int)value); + } + + public string Value + { + get => (string)this.Fields[(int)SummaryInformationSymbolFields.Value]; + set => this.Set((int)SummaryInformationSymbolFields.Value, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs new file mode 100644 index 00000000..ea90ef7b --- /dev/null +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -0,0 +1,736 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public enum SymbolDefinitionType + { + SummaryInformation, + ActionText, + AppId, + AppSearch, + BBControl, + Billboard, + Binary, + CCPSearch, + CheckBox, + Class, + ComboBox, + CompLocator, + Complus, + Component, + Condition, + Control, + ControlCondition, + ControlEvent, + CreateFolder, + CustomAction, + Dialog, + Directory, + DrLocator, + DuplicateFile, + Environment, + Error, + EventMapping, + Extension, + ExternalFiles, + FamilyFileRanges, + Feature, + FeatureComponents, + File, + FileSFPCatalog, + Icon, + ImageFamilies, + IniFile, + IniLocator, + IsolatedComponent, + LaunchCondition, + ListBox, + ListView, + LockPermissions, + Media, + MIME, + ModuleComponents, + ModuleConfiguration, + ModuleDependency, + ModuleExclusion, + ModuleIgnoreTable, + ModuleSignature, + ModuleSubstitution, + MoveFile, + Assembly, + MsiAssemblyName, + MsiDigitalCertificate, + MsiDigitalSignature, + MsiEmbeddedChainer, + MsiEmbeddedUI, + MsiFileHash, + MsiLockPermissionsEx, + MsiPackageCertificate, + MsiPatchCertificate, + MsiPatchHeaders, + MsiPatchMetadata, + MsiPatchOldAssemblyFile, + MsiPatchOldAssemblyName, + MsiPatchSequence, + MsiServiceConfig, + MsiServiceConfigFailureActions, + MsiShortcutProperty, + ODBCAttribute, + ODBCDataSource, + ODBCDriver, + ODBCSourceAttribute, + ODBCTranslator, + Patch, + PatchMetadata, + PatchPackage, + PatchSequence, + ProgId, + Properties, + Property, + ProvidesDependency, + PublishComponent, + RadioButton, + Registry, + RegLocator, + RemoveFile, + RemoveRegistry, + ReserveCost, + ServiceControl, + ServiceInstall, + SFPCatalog, + Shortcut, + Signature, + TargetFilesOptionalData, + TargetImages, + TextStyle, + TypeLib, + UIText, + Upgrade, + UpgradedFilesOptionalData, + UpgradedFilesToIgnore, + UpgradedImages, + Verb, + WixAction, + WixApprovedExeForElevation, + WixBindUpdatedFiles, + WixBootstrapperApplication, + WixBuildInfo, + WixBundle, + WixBundleCatalog, + WixBundleContainer, + WixBundleCustomData, + WixBundleCustomDataAttribute, + WixBundleCustomDataCell, + WixBundleExePackage, + WixBundleExtension, + WixBundleMsiFeature, + WixBundleMsiPackage, + WixBundleMsiProperty, + WixBundleMspPackage, + WixBundleMsuPackage, + WixBundlePackage, + WixBundlePackageCommandLine, + WixBundlePackageExitCode, + WixBundlePackageGroup, + WixBundlePatchTargetCode, + WixBundlePayload, + WixBundlePayloadGroup, + WixBundleRelatedPackage, + WixBundleRollbackBoundary, + WixBundleSlipstreamMsp, + WixBundleUpdate, + WixBundleVariable, + WixChain, + WixChainItem, + WixComplexReference, + WixComponentGroup, + WixComponentSearch, + WixCustomTable, + WixCustomTableCell, + WixCustomTableColumn, + WixDeltaPatchFile, + WixDeltaPatchSymbolPaths, + WixDependencyProvider, + WixEnsureTable, + WixFeatureGroup, + WixFeatureModules, + WixFileSearch, + WixFragment, + WixGroup, + WixInstanceComponent, + WixInstanceTransforms, + WixMediaTemplate, + WixMerge, + WixOrdering, + WixPatchBaseline, + WixPatchFamilyGroup, + WixPatchId, + WixPatchRef, + WixPatchTarget, + WixProductSearch, + WixProperty, + WixRegistrySearch, + WixRelatedBundle, + WixSearch, + WixSearchRelation, + WixSetVariable, + WixSimpleReference, + WixSuppressAction, + WixSuppressModularization, + WixUI, + WixUpdateRegistration, + WixVariable, + MustBeFromAnExtension, + } + + public static partial class SymbolDefinitions + { + public static readonly Version Version = new Version("4.0.0"); + + public static IntermediateSymbolDefinition ByName(string name) + { + if (!Enum.TryParse(name, out SymbolDefinitionType type) || type == SymbolDefinitionType.MustBeFromAnExtension) + { + return null; + } + + return ByType(type); + } + + public static IntermediateSymbolDefinition ByType(SymbolDefinitionType type) + { + switch (type) + { + case SymbolDefinitionType.SummaryInformation: + return SymbolDefinitions.SummaryInformation; + + case SymbolDefinitionType.ActionText: + return SymbolDefinitions.ActionText; + + case SymbolDefinitionType.AppId: + return SymbolDefinitions.AppId; + + case SymbolDefinitionType.AppSearch: + return SymbolDefinitions.AppSearch; + + case SymbolDefinitionType.BBControl: + return SymbolDefinitions.BBControl; + + case SymbolDefinitionType.Billboard: + return SymbolDefinitions.Billboard; + + case SymbolDefinitionType.Binary: + return SymbolDefinitions.Binary; + + case SymbolDefinitionType.CCPSearch: + return SymbolDefinitions.CCPSearch; + + case SymbolDefinitionType.CheckBox: + return SymbolDefinitions.CheckBox; + + case SymbolDefinitionType.Class: + return SymbolDefinitions.Class; + + case SymbolDefinitionType.ComboBox: + return SymbolDefinitions.ComboBox; + + case SymbolDefinitionType.CompLocator: + return SymbolDefinitions.CompLocator; + + case SymbolDefinitionType.Complus: + return SymbolDefinitions.Complus; + + case SymbolDefinitionType.Component: + return SymbolDefinitions.Component; + + case SymbolDefinitionType.Condition: + return SymbolDefinitions.Condition; + + case SymbolDefinitionType.Control: + return SymbolDefinitions.Control; + + case SymbolDefinitionType.ControlCondition: + return SymbolDefinitions.ControlCondition; + + case SymbolDefinitionType.ControlEvent: + return SymbolDefinitions.ControlEvent; + + case SymbolDefinitionType.CreateFolder: + return SymbolDefinitions.CreateFolder; + + case SymbolDefinitionType.CustomAction: + return SymbolDefinitions.CustomAction; + + case SymbolDefinitionType.Dialog: + return SymbolDefinitions.Dialog; + + case SymbolDefinitionType.Directory: + return SymbolDefinitions.Directory; + + case SymbolDefinitionType.DrLocator: + return SymbolDefinitions.DrLocator; + + case SymbolDefinitionType.DuplicateFile: + return SymbolDefinitions.DuplicateFile; + + case SymbolDefinitionType.Environment: + return SymbolDefinitions.Environment; + + case SymbolDefinitionType.Error: + return SymbolDefinitions.Error; + + case SymbolDefinitionType.EventMapping: + return SymbolDefinitions.EventMapping; + + case SymbolDefinitionType.Extension: + return SymbolDefinitions.Extension; + + case SymbolDefinitionType.ExternalFiles: + return SymbolDefinitions.ExternalFiles; + + case SymbolDefinitionType.FamilyFileRanges: + return SymbolDefinitions.FamilyFileRanges; + + case SymbolDefinitionType.Feature: + return SymbolDefinitions.Feature; + + case SymbolDefinitionType.FeatureComponents: + return SymbolDefinitions.FeatureComponents; + + case SymbolDefinitionType.File: + return SymbolDefinitions.File; + + case SymbolDefinitionType.FileSFPCatalog: + return SymbolDefinitions.FileSFPCatalog; + + case SymbolDefinitionType.Icon: + return SymbolDefinitions.Icon; + + case SymbolDefinitionType.ImageFamilies: + return SymbolDefinitions.ImageFamilies; + + case SymbolDefinitionType.IniFile: + return SymbolDefinitions.IniFile; + + case SymbolDefinitionType.IniLocator: + return SymbolDefinitions.IniLocator; + + case SymbolDefinitionType.IsolatedComponent: + return SymbolDefinitions.IsolatedComponent; + + case SymbolDefinitionType.LaunchCondition: + return SymbolDefinitions.LaunchCondition; + + case SymbolDefinitionType.ListBox: + return SymbolDefinitions.ListBox; + + case SymbolDefinitionType.ListView: + return SymbolDefinitions.ListView; + + case SymbolDefinitionType.LockPermissions: + return SymbolDefinitions.LockPermissions; + + case SymbolDefinitionType.Media: + return SymbolDefinitions.Media; + + case SymbolDefinitionType.MIME: + return SymbolDefinitions.MIME; + + case SymbolDefinitionType.ModuleComponents: + return SymbolDefinitions.ModuleComponents; + + case SymbolDefinitionType.ModuleConfiguration: + return SymbolDefinitions.ModuleConfiguration; + + case SymbolDefinitionType.ModuleDependency: + return SymbolDefinitions.ModuleDependency; + + case SymbolDefinitionType.ModuleExclusion: + return SymbolDefinitions.ModuleExclusion; + + case SymbolDefinitionType.ModuleIgnoreTable: + return SymbolDefinitions.ModuleIgnoreTable; + + case SymbolDefinitionType.ModuleSignature: + return SymbolDefinitions.ModuleSignature; + + case SymbolDefinitionType.ModuleSubstitution: + return SymbolDefinitions.ModuleSubstitution; + + case SymbolDefinitionType.MoveFile: + return SymbolDefinitions.MoveFile; + + case SymbolDefinitionType.Assembly: + return SymbolDefinitions.Assembly; + + case SymbolDefinitionType.MsiAssemblyName: + return SymbolDefinitions.MsiAssemblyName; + + case SymbolDefinitionType.MsiDigitalCertificate: + return SymbolDefinitions.MsiDigitalCertificate; + + case SymbolDefinitionType.MsiDigitalSignature: + return SymbolDefinitions.MsiDigitalSignature; + + case SymbolDefinitionType.MsiEmbeddedChainer: + return SymbolDefinitions.MsiEmbeddedChainer; + + case SymbolDefinitionType.MsiEmbeddedUI: + return SymbolDefinitions.MsiEmbeddedUI; + + case SymbolDefinitionType.MsiFileHash: + return SymbolDefinitions.MsiFileHash; + + case SymbolDefinitionType.MsiLockPermissionsEx: + return SymbolDefinitions.MsiLockPermissionsEx; + + case SymbolDefinitionType.MsiPackageCertificate: + return SymbolDefinitions.MsiPackageCertificate; + + case SymbolDefinitionType.MsiPatchCertificate: + return SymbolDefinitions.MsiPatchCertificate; + + case SymbolDefinitionType.MsiPatchHeaders: + return SymbolDefinitions.MsiPatchHeaders; + + case SymbolDefinitionType.MsiPatchMetadata: + return SymbolDefinitions.MsiPatchMetadata; + + case SymbolDefinitionType.MsiPatchOldAssemblyFile: + return SymbolDefinitions.MsiPatchOldAssemblyFile; + + case SymbolDefinitionType.MsiPatchOldAssemblyName: + return SymbolDefinitions.MsiPatchOldAssemblyName; + + case SymbolDefinitionType.MsiPatchSequence: + return SymbolDefinitions.MsiPatchSequence; + + case SymbolDefinitionType.MsiServiceConfig: + return SymbolDefinitions.MsiServiceConfig; + + case SymbolDefinitionType.MsiServiceConfigFailureActions: + return SymbolDefinitions.MsiServiceConfigFailureActions; + + case SymbolDefinitionType.MsiShortcutProperty: + return SymbolDefinitions.MsiShortcutProperty; + + case SymbolDefinitionType.ODBCAttribute: + return SymbolDefinitions.ODBCAttribute; + + case SymbolDefinitionType.ODBCDataSource: + return SymbolDefinitions.ODBCDataSource; + + case SymbolDefinitionType.ODBCDriver: + return SymbolDefinitions.ODBCDriver; + + case SymbolDefinitionType.ODBCSourceAttribute: + return SymbolDefinitions.ODBCSourceAttribute; + + case SymbolDefinitionType.ODBCTranslator: + return SymbolDefinitions.ODBCTranslator; + + case SymbolDefinitionType.Patch: + return SymbolDefinitions.Patch; + + case SymbolDefinitionType.PatchMetadata: + return SymbolDefinitions.PatchMetadata; + + case SymbolDefinitionType.PatchPackage: + return SymbolDefinitions.PatchPackage; + + case SymbolDefinitionType.PatchSequence: + return SymbolDefinitions.PatchSequence; + + case SymbolDefinitionType.ProgId: + return SymbolDefinitions.ProgId; + + case SymbolDefinitionType.Properties: + return SymbolDefinitions.Properties; + + case SymbolDefinitionType.Property: + return SymbolDefinitions.Property; + + case SymbolDefinitionType.PublishComponent: + return SymbolDefinitions.PublishComponent; + + case SymbolDefinitionType.ProvidesDependency: + return SymbolDefinitions.ProvidesDependency; + + case SymbolDefinitionType.RadioButton: + return SymbolDefinitions.RadioButton; + + case SymbolDefinitionType.Registry: + return SymbolDefinitions.Registry; + + case SymbolDefinitionType.RegLocator: + return SymbolDefinitions.RegLocator; + + case SymbolDefinitionType.RemoveFile: + return SymbolDefinitions.RemoveFile; + + case SymbolDefinitionType.RemoveRegistry: + return SymbolDefinitions.RemoveRegistry; + + case SymbolDefinitionType.ReserveCost: + return SymbolDefinitions.ReserveCost; + + case SymbolDefinitionType.ServiceControl: + return SymbolDefinitions.ServiceControl; + + case SymbolDefinitionType.ServiceInstall: + return SymbolDefinitions.ServiceInstall; + + case SymbolDefinitionType.SFPCatalog: + return SymbolDefinitions.SFPCatalog; + + case SymbolDefinitionType.Shortcut: + return SymbolDefinitions.Shortcut; + + case SymbolDefinitionType.Signature: + return SymbolDefinitions.Signature; + + case SymbolDefinitionType.TargetFilesOptionalData: + return SymbolDefinitions.TargetFilesOptionalData; + + case SymbolDefinitionType.TargetImages: + return SymbolDefinitions.TargetImages; + + case SymbolDefinitionType.TextStyle: + return SymbolDefinitions.TextStyle; + + case SymbolDefinitionType.TypeLib: + return SymbolDefinitions.TypeLib; + + case SymbolDefinitionType.UIText: + return SymbolDefinitions.UIText; + + case SymbolDefinitionType.Upgrade: + return SymbolDefinitions.Upgrade; + + case SymbolDefinitionType.UpgradedFilesOptionalData: + return SymbolDefinitions.UpgradedFilesOptionalData; + + case SymbolDefinitionType.UpgradedFilesToIgnore: + return SymbolDefinitions.UpgradedFilesToIgnore; + + case SymbolDefinitionType.UpgradedImages: + return SymbolDefinitions.UpgradedImages; + + case SymbolDefinitionType.Verb: + return SymbolDefinitions.Verb; + + case SymbolDefinitionType.WixAction: + return SymbolDefinitions.WixAction; + + case SymbolDefinitionType.WixApprovedExeForElevation: + return SymbolDefinitions.WixApprovedExeForElevation; + + case SymbolDefinitionType.WixBindUpdatedFiles: + return SymbolDefinitions.WixBindUpdatedFiles; + + case SymbolDefinitionType.WixBootstrapperApplication: + return SymbolDefinitions.WixBootstrapperApplication; + + case SymbolDefinitionType.WixBuildInfo: + return SymbolDefinitions.WixBuildInfo; + + case SymbolDefinitionType.WixBundle: + return SymbolDefinitions.WixBundle; + + case SymbolDefinitionType.WixBundleCatalog: + return SymbolDefinitions.WixBundleCatalog; + + case SymbolDefinitionType.WixBundleContainer: + return SymbolDefinitions.WixBundleContainer; + + case SymbolDefinitionType.WixBundleCustomData: + return SymbolDefinitions.WixBundleCustomData; + + case SymbolDefinitionType.WixBundleCustomDataAttribute: + return SymbolDefinitions.WixBundleCustomDataAttribute; + + case SymbolDefinitionType.WixBundleCustomDataCell: + return SymbolDefinitions.WixBundleCustomDataCell; + + case SymbolDefinitionType.WixBundleExtension: + return SymbolDefinitions.WixBundleExtension; + + case SymbolDefinitionType.WixBundleExePackage: + return SymbolDefinitions.WixBundleExePackage; + + case SymbolDefinitionType.WixBundleMsiFeature: + return SymbolDefinitions.WixBundleMsiFeature; + + case SymbolDefinitionType.WixBundleMsiPackage: + return SymbolDefinitions.WixBundleMsiPackage; + + case SymbolDefinitionType.WixBundleMsiProperty: + return SymbolDefinitions.WixBundleMsiProperty; + + case SymbolDefinitionType.WixBundleMspPackage: + return SymbolDefinitions.WixBundleMspPackage; + + case SymbolDefinitionType.WixBundleMsuPackage: + return SymbolDefinitions.WixBundleMsuPackage; + + case SymbolDefinitionType.WixBundlePackage: + return SymbolDefinitions.WixBundlePackage; + + case SymbolDefinitionType.WixBundlePackageCommandLine: + return SymbolDefinitions.WixBundlePackageCommandLine; + + case SymbolDefinitionType.WixBundlePackageExitCode: + return SymbolDefinitions.WixBundlePackageExitCode; + + case SymbolDefinitionType.WixBundlePackageGroup: + return SymbolDefinitions.WixBundlePackageGroup; + + case SymbolDefinitionType.WixBundlePatchTargetCode: + return SymbolDefinitions.WixBundlePatchTargetCode; + + case SymbolDefinitionType.WixBundlePayload: + return SymbolDefinitions.WixBundlePayload; + + case SymbolDefinitionType.WixBundlePayloadGroup: + return SymbolDefinitions.WixBundlePayloadGroup; + + case SymbolDefinitionType.WixBundleRelatedPackage: + return SymbolDefinitions.WixBundleRelatedPackage; + + case SymbolDefinitionType.WixBundleRollbackBoundary: + return SymbolDefinitions.WixBundleRollbackBoundary; + + case SymbolDefinitionType.WixBundleSlipstreamMsp: + return SymbolDefinitions.WixBundleSlipstreamMsp; + + case SymbolDefinitionType.WixBundleUpdate: + return SymbolDefinitions.WixBundleUpdate; + + case SymbolDefinitionType.WixBundleVariable: + return SymbolDefinitions.WixBundleVariable; + + case SymbolDefinitionType.WixChain: + return SymbolDefinitions.WixChain; + + case SymbolDefinitionType.WixChainItem: + return SymbolDefinitions.WixChainItem; + + case SymbolDefinitionType.WixComplexReference: + return SymbolDefinitions.WixComplexReference; + + case SymbolDefinitionType.WixComponentGroup: + return SymbolDefinitions.WixComponentGroup; + + case SymbolDefinitionType.WixComponentSearch: + return SymbolDefinitions.WixComponentSearch; + + case SymbolDefinitionType.WixCustomTable: + return SymbolDefinitions.WixCustomTable; + + case SymbolDefinitionType.WixCustomTableCell: + return SymbolDefinitions.WixCustomTableCell; + + case SymbolDefinitionType.WixCustomTableColumn: + return SymbolDefinitions.WixCustomTableColumn; + + case SymbolDefinitionType.WixDeltaPatchFile: + return SymbolDefinitions.WixDeltaPatchFile; + + case SymbolDefinitionType.WixDeltaPatchSymbolPaths: + return SymbolDefinitions.WixDeltaPatchSymbolPaths; + + case SymbolDefinitionType.WixEnsureTable: + return SymbolDefinitions.WixEnsureTable; + + case SymbolDefinitionType.WixFeatureGroup: + return SymbolDefinitions.WixFeatureGroup; + + case SymbolDefinitionType.WixFeatureModules: + return SymbolDefinitions.WixFeatureModules; + + case SymbolDefinitionType.WixFileSearch: + return SymbolDefinitions.WixFileSearch; + + case SymbolDefinitionType.WixFragment: + return SymbolDefinitions.WixFragment; + + case SymbolDefinitionType.WixGroup: + return SymbolDefinitions.WixGroup; + + case SymbolDefinitionType.WixInstanceComponent: + return SymbolDefinitions.WixInstanceComponent; + + case SymbolDefinitionType.WixInstanceTransforms: + return SymbolDefinitions.WixInstanceTransforms; + + case SymbolDefinitionType.WixMediaTemplate: + return SymbolDefinitions.WixMediaTemplate; + + case SymbolDefinitionType.WixMerge: + return SymbolDefinitions.WixMerge; + + case SymbolDefinitionType.WixOrdering: + return SymbolDefinitions.WixOrdering; + + case SymbolDefinitionType.WixPatchBaseline: + return SymbolDefinitions.WixPatchBaseline; + + case SymbolDefinitionType.WixPatchFamilyGroup: + return SymbolDefinitions.WixPatchFamilyGroup; + + case SymbolDefinitionType.WixPatchId: + return SymbolDefinitions.WixPatchId; + + case SymbolDefinitionType.WixPatchRef: + return SymbolDefinitions.WixPatchRef; + + case SymbolDefinitionType.WixPatchTarget: + return SymbolDefinitions.WixPatchTarget; + + case SymbolDefinitionType.WixProductSearch: + return SymbolDefinitions.WixProductSearch; + + case SymbolDefinitionType.WixProperty: + return SymbolDefinitions.WixProperty; + + case SymbolDefinitionType.WixRegistrySearch: + return SymbolDefinitions.WixRegistrySearch; + + case SymbolDefinitionType.WixRelatedBundle: + return SymbolDefinitions.WixRelatedBundle; + + case SymbolDefinitionType.WixSearch: + return SymbolDefinitions.WixSearch; + + case SymbolDefinitionType.WixSearchRelation: + return SymbolDefinitions.WixSearchRelation; + + case SymbolDefinitionType.WixSetVariable: + return SymbolDefinitions.WixSetVariable; + + case SymbolDefinitionType.WixSimpleReference: + return SymbolDefinitions.WixSimpleReference; + + case SymbolDefinitionType.WixSuppressAction: + return SymbolDefinitions.WixSuppressAction; + + case SymbolDefinitionType.WixSuppressModularization: + return SymbolDefinitions.WixSuppressModularization; + + case SymbolDefinitionType.WixUI: + return SymbolDefinitions.WixUI; + + case SymbolDefinitionType.WixUpdateRegistration: + return SymbolDefinitions.WixUpdateRegistration; + + case SymbolDefinitionType.WixVariable: + return SymbolDefinitions.WixVariable; + + default: + throw new ArgumentOutOfRangeException(nameof(type)); + } + } + } +} diff --git a/src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs b/src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs new file mode 100644 index 00000000..66fdc30c --- /dev/null +++ b/src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TargetFilesOptionalData = new IntermediateSymbolDefinition( + SymbolDefinitionType.TargetFilesOptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.RetainOffsets), IntermediateFieldType.String), + }, + typeof(TargetFilesOptionalDataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TargetFilesOptionalDataSymbolFields + { + Target, + FTK, + SymbolPaths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + } + + public class TargetFilesOptionalDataSymbol : IntermediateSymbol + { + public TargetFilesOptionalDataSymbol() : base(SymbolDefinitions.TargetFilesOptionalData, null, null) + { + } + + public TargetFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetFilesOptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[TargetFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; + + public string Target + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.Target]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.Target, value); + } + + public string FTK + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.FTK]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.SymbolPaths]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.SymbolPaths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreLengths]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.RetainOffsets]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.RetainOffsets, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/TargetImagesSymbol.cs b/src/WixToolset.Data/Symbols/TargetImagesSymbol.cs new file mode 100644 index 00000000..4748b1f3 --- /dev/null +++ b/src/WixToolset.Data/Symbols/TargetImagesSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TargetImages = new IntermediateSymbolDefinition( + SymbolDefinitionType.TargetImages, + new[] + { + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.ProductValidateFlags), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.IgnoreMissingSrcFiles), IntermediateFieldType.Bool), + }, + typeof(TargetImagesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TargetImagesSymbolFields + { + Target, + MsiPath, + SymbolPaths, + Upgraded, + Order, + ProductValidateFlags, + IgnoreMissingSrcFiles, + } + + public class TargetImagesSymbol : IntermediateSymbol + { + public TargetImagesSymbol() : base(SymbolDefinitions.TargetImages, null, null) + { + } + + public TargetImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetImages, sourceLineNumber, id) + { + } + + public IntermediateField this[TargetImagesSymbolFields index] => this.Fields[(int)index]; + + public string Target + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.Target]; + set => this.Set((int)TargetImagesSymbolFields.Target, value); + } + + public string MsiPath + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.MsiPath]; + set => this.Set((int)TargetImagesSymbolFields.MsiPath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.SymbolPaths]; + set => this.Set((int)TargetImagesSymbolFields.SymbolPaths, value); + } + + public string Upgraded + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.Upgraded]; + set => this.Set((int)TargetImagesSymbolFields.Upgraded, value); + } + + public int Order + { + get => (int)this.Fields[(int)TargetImagesSymbolFields.Order]; + set => this.Set((int)TargetImagesSymbolFields.Order, value); + } + + public string ProductValidateFlags + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.ProductValidateFlags]; + set => this.Set((int)TargetImagesSymbolFields.ProductValidateFlags, value); + } + + public bool IgnoreMissingSrcFiles + { + get => (bool)this.Fields[(int)TargetImagesSymbolFields.IgnoreMissingSrcFiles]; + set => this.Set((int)TargetImagesSymbolFields.IgnoreMissingSrcFiles, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/TextStyleSymbol.cs b/src/WixToolset.Data/Symbols/TextStyleSymbol.cs new file mode 100644 index 00000000..b07615bb --- /dev/null +++ b/src/WixToolset.Data/Symbols/TextStyleSymbol.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TextStyle = new IntermediateSymbolDefinition( + SymbolDefinitionType.TextStyle, + new[] + { + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.FaceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Red), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Green), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Blue), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Bold), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Italic), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Strike), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Underline), IntermediateFieldType.Bool), + }, + typeof(TextStyleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TextStyleSymbolFields + { + FaceName, + Size, + Red, + Green, + Blue, + Bold, + Italic, + Strike, + Underline, + } + + public class TextStyleSymbol : IntermediateSymbol + { + public TextStyleSymbol() : base(SymbolDefinitions.TextStyle, null, null) + { + } + + public TextStyleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TextStyle, sourceLineNumber, id) + { + } + + public IntermediateField this[TextStyleSymbolFields index] => this.Fields[(int)index]; + + public string FaceName + { + get => (string)this.Fields[(int)TextStyleSymbolFields.FaceName]; + set => this.Set((int)TextStyleSymbolFields.FaceName, value); + } + + public int Size + { + get => (int)this.Fields[(int)TextStyleSymbolFields.Size]; + set => this.Set((int)TextStyleSymbolFields.Size, value); + } + + public int? Red + { + get => (int?)this.Fields[(int)TextStyleSymbolFields.Red]; + set => this.Set((int)TextStyleSymbolFields.Red, value); + } + + public int? Green + { + get => (int?)this.Fields[(int)TextStyleSymbolFields.Green]; + set => this.Set((int)TextStyleSymbolFields.Green, value); + } + + public int? Blue + { + get => (int?)this.Fields[(int)TextStyleSymbolFields.Blue]; + set => this.Set((int)TextStyleSymbolFields.Blue, value); + } + + public bool Bold + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Bold]; + set => this.Set((int)TextStyleSymbolFields.Bold, value); + } + + public bool Italic + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Italic]; + set => this.Set((int)TextStyleSymbolFields.Italic, value); + } + + public bool Strike + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Strike]; + set => this.Set((int)TextStyleSymbolFields.Strike, value); + } + + public bool Underline + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Underline]; + set => this.Set((int)TextStyleSymbolFields.Underline, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/TransformsFlags.cs b/src/WixToolset.Data/Symbols/TransformsFlags.cs new file mode 100644 index 00000000..90f22cb4 --- /dev/null +++ b/src/WixToolset.Data/Symbols/TransformsFlags.cs @@ -0,0 +1,79 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + using System; + + /// + /// Summary information values for the CharCount property in transforms. + /// + [Flags] + public enum TransformFlags + { + /// Ignore error when adding a row that exists. + ErrorAddExistingRow = 0x1, + + /// Ignore error when deleting a row that does not exist. + ErrorDeleteMissingRow = 0x2, + + /// Ignore error when adding a table that exists. + ErrorAddExistingTable = 0x4, + + /// Ignore error when deleting a table that does not exist. + ErrorDeleteMissingTable = 0x8, + + /// Ignore error when updating a row that does not exist. + ErrorUpdateMissingRow = 0x10, + + /// Ignore error when transform and database code pages do not match, and their code pages are neutral. + ErrorChangeCodePage = 0x20, + + /// Default language must match base database. + ValidateLanguage = 0x10000, + + /// Product must match base database. + ValidateProduct = 0x20000, + + /// Check major version only. + ValidateMajorVersion = 0x80000, + + /// Check major and minor versions only. + ValidateMinorVersion = 0x100000, + + /// Check major, minor, and update versions. + ValidateUpdateVersion = 0x200000, + + /// Installed version lt base version. + ValidateNewLessBaseVersion = 0x400000, + + /// Installed version lte base version. + ValidateNewLessEqualBaseVersion = 0x800000, + + /// Installed version eq base version. + ValidateNewEqualBaseVersion = 0x1000000, + + /// Installed version gte base version. + ValidateNewGreaterEqualBaseVersion = 0x2000000, + + /// Installed version gt base version. + ValidateNewGreaterBaseVersion = 0x4000000, + + /// UpgradeCode must match base database. + ValidateUpgradeCode = 0x8000000, + + /// Masks all version checks on ProductVersion. + ProductVersionMask = ValidateMajorVersion | ValidateMinorVersion | ValidateUpdateVersion, + + /// Masks all operations on ProductVersion. + ProductVersionOperatorMask = ValidateNewLessBaseVersion | ValidateNewLessEqualBaseVersion | ValidateNewEqualBaseVersion | ValidateNewGreaterEqualBaseVersion | ValidateNewGreaterBaseVersion, + + /// Default value for instance transforms. + InstanceTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct | ValidateUpdateVersion | ValidateNewGreaterEqualBaseVersion, + + /// Default value for language transforms. + LanguageTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct, + + /// Default value for patch transforms. + PatchTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ValidateProduct | ValidateUpdateVersion | ValidateNewEqualBaseVersion | ValidateUpgradeCode, + } +} diff --git a/src/WixToolset.Data/Symbols/TypeLibSymbol.cs b/src/WixToolset.Data/Symbols/TypeLibSymbol.cs new file mode 100644 index 00000000..736ee292 --- /dev/null +++ b/src/WixToolset.Data/Symbols/TypeLibSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TypeLib = new IntermediateSymbolDefinition( + SymbolDefinitionType.TypeLib, + new[] + { + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.LibId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Version), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Cost), IntermediateFieldType.Number), + }, + typeof(TypeLibSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TypeLibSymbolFields + { + LibId, + Language, + ComponentRef, + Version, + Description, + DirectoryRef, + FeatureRef, + Cost, + } + + public class TypeLibSymbol : IntermediateSymbol + { + public TypeLibSymbol() : base(SymbolDefinitions.TypeLib, null, null) + { + } + + public TypeLibSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TypeLib, sourceLineNumber, id) + { + } + + public IntermediateField this[TypeLibSymbolFields index] => this.Fields[(int)index]; + + public string LibId + { + get => (string)this.Fields[(int)TypeLibSymbolFields.LibId]; + set => this.Set((int)TypeLibSymbolFields.LibId, value); + } + + public int Language + { + get => (int)this.Fields[(int)TypeLibSymbolFields.Language]; + set => this.Set((int)TypeLibSymbolFields.Language, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)TypeLibSymbolFields.ComponentRef]; + set => this.Set((int)TypeLibSymbolFields.ComponentRef, value); + } + + public int? Version + { + get => (int?)this.Fields[(int)TypeLibSymbolFields.Version]; + set => this.Set((int)TypeLibSymbolFields.Version, value); + } + + public string Description + { + get => (string)this.Fields[(int)TypeLibSymbolFields.Description]; + set => this.Set((int)TypeLibSymbolFields.Description, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)TypeLibSymbolFields.DirectoryRef]; + set => this.Set((int)TypeLibSymbolFields.DirectoryRef, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)TypeLibSymbolFields.FeatureRef]; + set => this.Set((int)TypeLibSymbolFields.FeatureRef, value); + } + + public int? Cost + { + get => (int?)this.Fields[(int)TypeLibSymbolFields.Cost]; + set => this.Set((int)TypeLibSymbolFields.Cost, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/UITextSymbol.cs b/src/WixToolset.Data/Symbols/UITextSymbol.cs new file mode 100644 index 00000000..39b99398 --- /dev/null +++ b/src/WixToolset.Data/Symbols/UITextSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UIText = new IntermediateSymbolDefinition( + SymbolDefinitionType.UIText, + new[] + { + new IntermediateFieldDefinition(nameof(UITextSymbolFields.Text), IntermediateFieldType.String), + }, + typeof(UITextSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UITextSymbolFields + { + Text, + } + + public class UITextSymbol : IntermediateSymbol + { + public UITextSymbol() : base(SymbolDefinitions.UIText, null, null) + { + } + + public UITextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UIText, sourceLineNumber, id) + { + } + + public IntermediateField this[UITextSymbolFields index] => this.Fields[(int)index]; + + public string Text + { + get => (string)this.Fields[(int)UITextSymbolFields.Text]; + set => this.Set((int)UITextSymbolFields.Text, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/UpgradeSymbol.cs b/src/WixToolset.Data/Symbols/UpgradeSymbol.cs new file mode 100644 index 00000000..d8deee73 --- /dev/null +++ b/src/WixToolset.Data/Symbols/UpgradeSymbol.cs @@ -0,0 +1,132 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Upgrade = new IntermediateSymbolDefinition( + SymbolDefinitionType.Upgrade, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMin), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMax), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ExcludeLanguages), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.IgnoreRemoveFailures), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.MigrateFeatures), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.OnlyDetect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMaxInclusive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMinInclusive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Remove), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ActionProperty), IntermediateFieldType.String), + }, + typeof(UpgradeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradeSymbolFields + { + UpgradeCode, + VersionMin, + VersionMax, + Language, + ExcludeLanguages, + IgnoreRemoveFailures, + MigrateFeatures, + OnlyDetect, + VersionMaxInclusive, + VersionMinInclusive, + Remove, + ActionProperty, + } + + public class UpgradeSymbol : IntermediateSymbol + { + public UpgradeSymbol() : base(SymbolDefinitions.Upgrade, null, null) + { + } + + public UpgradeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Upgrade, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradeSymbolFields index] => this.Fields[(int)index]; + + public string UpgradeCode + { + get => (string)this.Fields[(int)UpgradeSymbolFields.UpgradeCode]; + set => this.Set((int)UpgradeSymbolFields.UpgradeCode, value); + } + + public string VersionMin + { + get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMin]; + set => this.Set((int)UpgradeSymbolFields.VersionMin, value); + } + + public string VersionMax + { + get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMax]; + set => this.Set((int)UpgradeSymbolFields.VersionMax, value); + } + + public string Language + { + get => (string)this.Fields[(int)UpgradeSymbolFields.Language]; + set => this.Set((int)UpgradeSymbolFields.Language, value); + } + + public bool ExcludeLanguages + { + get => this.Fields[(int)UpgradeSymbolFields.ExcludeLanguages].AsBool(); + set => this.Set((int)UpgradeSymbolFields.ExcludeLanguages, value); + } + + public bool IgnoreRemoveFailures + { + get => this.Fields[(int)UpgradeSymbolFields.IgnoreRemoveFailures].AsBool(); + set => this.Set((int)UpgradeSymbolFields.IgnoreRemoveFailures, value); + } + + public bool MigrateFeatures + { + get => this.Fields[(int)UpgradeSymbolFields.MigrateFeatures].AsBool(); + set => this.Set((int)UpgradeSymbolFields.MigrateFeatures, value); + } + + public bool OnlyDetect + { + get => this.Fields[(int)UpgradeSymbolFields.OnlyDetect].AsBool(); + set => this.Set((int)UpgradeSymbolFields.OnlyDetect, value); + } + + public bool VersionMaxInclusive + { + get => this.Fields[(int)UpgradeSymbolFields.VersionMaxInclusive].AsBool(); + set => this.Set((int)UpgradeSymbolFields.VersionMaxInclusive, value); + } + + public bool VersionMinInclusive + { + get => this.Fields[(int)UpgradeSymbolFields.VersionMinInclusive].AsBool(); + set => this.Set((int)UpgradeSymbolFields.VersionMinInclusive, value); + } + + public string Remove + { + get => (string)this.Fields[(int)UpgradeSymbolFields.Remove]; + set => this.Set((int)UpgradeSymbolFields.Remove, value); + } + + public string ActionProperty + { + get => (string)this.Fields[(int)UpgradeSymbolFields.ActionProperty]; + set => this.Set((int)UpgradeSymbolFields.ActionProperty, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs b/src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs new file mode 100644 index 00000000..9e669ec3 --- /dev/null +++ b/src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UpgradedFilesOptionalData = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedFilesOptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile), IntermediateFieldType.Bool), + }, + typeof(UpgradedFilesOptionalDataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradedFilesOptionalDataSymbolFields + { + Upgraded, + FTK, + SymbolPaths, + AllowIgnoreOnPatchError, + IncludeWholeFile, + } + + public class UpgradedFilesOptionalDataSymbol : IntermediateSymbol + { + public UpgradedFilesOptionalDataSymbol() : base(SymbolDefinitions.UpgradedFilesOptionalData, null, null) + { + } + + public UpgradedFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesOptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.Upgraded]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.Upgraded, value); + } + + public string FTK + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.FTK]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths, value); + } + + public bool? AllowIgnoreOnPatchError + { + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError, value); + } + + public bool? IncludeWholeFile + { + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs b/src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs new file mode 100644 index 00000000..e21af6a2 --- /dev/null +++ b/src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UpgradedFilesToIgnore = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedFilesToIgnore, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.FTK), IntermediateFieldType.String), + }, + typeof(UpgradedFilesToIgnoreSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradedFilesToIgnoreSymbolFields + { + Upgraded, + FTK, + } + + public class UpgradedFilesToIgnoreSymbol : IntermediateSymbol + { + public UpgradedFilesToIgnoreSymbol() : base(SymbolDefinitions.UpgradedFilesToIgnore, null, null) + { + } + + public UpgradedFilesToIgnoreSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedFilesToIgnoreSymbolFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.Upgraded]; + set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.Upgraded, value); + } + + public string FTK + { + get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.FTK]; + set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.FTK, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs b/src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs new file mode 100644 index 00000000..28eae08a --- /dev/null +++ b/src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UpgradedImages = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedImages, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.PatchMsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Family), IntermediateFieldType.String), + }, + typeof(UpgradedImagesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradedImagesSymbolFields + { + Upgraded, + MsiPath, + PatchMsiPath, + SymbolPaths, + Family, + } + + public class UpgradedImagesSymbol : IntermediateSymbol + { + public UpgradedImagesSymbol() : base(SymbolDefinitions.UpgradedImages, null, null) + { + } + + public UpgradedImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedImages, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedImagesSymbolFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Upgraded]; + set => this.Set((int)UpgradedImagesSymbolFields.Upgraded, value); + } + + public string MsiPath + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.MsiPath]; + set => this.Set((int)UpgradedImagesSymbolFields.MsiPath, value); + } + + public string PatchMsiPath + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.PatchMsiPath]; + set => this.Set((int)UpgradedImagesSymbolFields.PatchMsiPath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.SymbolPaths]; + set => this.Set((int)UpgradedImagesSymbolFields.SymbolPaths, value); + } + + public string Family + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Family]; + set => this.Set((int)UpgradedImagesSymbolFields.Family, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/VerbSymbol.cs b/src/WixToolset.Data/Symbols/VerbSymbol.cs new file mode 100644 index 00000000..95f045d6 --- /dev/null +++ b/src/WixToolset.Data/Symbols/VerbSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Verb = new IntermediateSymbolDefinition( + SymbolDefinitionType.Verb, + new[] + { + new IntermediateFieldDefinition(nameof(VerbSymbolFields.ExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Verb), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Argument), IntermediateFieldType.String), + }, + typeof(VerbSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum VerbSymbolFields + { + ExtensionRef, + Verb, + Sequence, + Command, + Argument, + } + + public class VerbSymbol : IntermediateSymbol + { + public VerbSymbol() : base(SymbolDefinitions.Verb, null, null) + { + } + + public VerbSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Verb, sourceLineNumber, id) + { + } + + public IntermediateField this[VerbSymbolFields index] => this.Fields[(int)index]; + + public string ExtensionRef + { + get => (string)this.Fields[(int)VerbSymbolFields.ExtensionRef]; + set => this.Set((int)VerbSymbolFields.ExtensionRef, value); + } + + public string Verb + { + get => (string)this.Fields[(int)VerbSymbolFields.Verb]; + set => this.Set((int)VerbSymbolFields.Verb, value); + } + + public int? Sequence + { + get => (int?)this.Fields[(int)VerbSymbolFields.Sequence]; + set => this.Set((int)VerbSymbolFields.Sequence, value); + } + + public string Command + { + get => (string)this.Fields[(int)VerbSymbolFields.Command]; + set => this.Set((int)VerbSymbolFields.Command, value); + } + + public string Argument + { + get => (string)this.Fields[(int)VerbSymbolFields.Argument]; + set => this.Set((int)VerbSymbolFields.Argument, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixActionSymbol.cs b/src/WixToolset.Data/Symbols/WixActionSymbol.cs new file mode 100644 index 00000000..a055d68f --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixActionSymbol.cs @@ -0,0 +1,101 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixAction, + new[] + { + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.SequenceTable), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Before), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.After), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Overridable), IntermediateFieldType.Bool), + }, + typeof(WixActionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixActionSymbolFields + { + SequenceTable, + Action, + Condition, + Sequence, + Before, + After, + Overridable, + } + + public enum SequenceTable + { + AdminUISequence, + AdminExecuteSequence, + AdvertiseExecuteSequence, + InstallUISequence, + InstallExecuteSequence + } + + public class WixActionSymbol : IntermediateSymbol + { + public WixActionSymbol() : base(SymbolDefinitions.WixAction, null, null) + { + } + + public WixActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixAction, sourceLineNumber, id) + { + } + + public IntermediateField this[WixActionSymbolFields index] => this.Fields[(int)index]; + + public SequenceTable SequenceTable + { + get => (SequenceTable)this.Fields[(int)WixActionSymbolFields.SequenceTable].AsNumber(); + set => this.Set((int)WixActionSymbolFields.SequenceTable, (int)value); + } + + public string Action + { + get => (string)this.Fields[(int)WixActionSymbolFields.Action]; + set => this.Set((int)WixActionSymbolFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixActionSymbolFields.Condition]; + set => this.Set((int)WixActionSymbolFields.Condition, value); + } + + public int? Sequence + { + get => (int?)this.Fields[(int)WixActionSymbolFields.Sequence]; + set => this.Set((int)WixActionSymbolFields.Sequence, value); + } + + public string Before + { + get => (string)this.Fields[(int)WixActionSymbolFields.Before]; + set => this.Set((int)WixActionSymbolFields.Before, value); + } + + public string After + { + get => (string)this.Fields[(int)WixActionSymbolFields.After]; + set => this.Set((int)WixActionSymbolFields.After, value); + } + + public bool Overridable + { + get => this.Fields[(int)WixActionSymbolFields.Overridable].AsBool(); + set => this.Set((int)WixActionSymbolFields.Overridable, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs b/src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs new file mode 100644 index 00000000..04c6e712 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixApprovedExeForElevation = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixApprovedExeForElevation, + new[] + { + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.ValueName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixApprovedExeForElevationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixApprovedExeForElevationSymbolFields + { + Key, + ValueName, + Attributes, + } + + [Flags] + public enum WixApprovedExeForElevationAttributes + { + None = 0x0, + Win64 = 0x1, + } + + public class WixApprovedExeForElevationSymbol : IntermediateSymbol + { + public WixApprovedExeForElevationSymbol() : base(SymbolDefinitions.WixApprovedExeForElevation, null, null) + { + } + + public WixApprovedExeForElevationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) + { + } + + public IntermediateField this[WixApprovedExeForElevationSymbolFields index] => this.Fields[(int)index]; + + public string Key + { + get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Key]; + set => this.Set((int)WixApprovedExeForElevationSymbolFields.Key, value); + } + + public string ValueName + { + get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.ValueName]; + set => this.Set((int)WixApprovedExeForElevationSymbolFields.ValueName, value); + } + + public WixApprovedExeForElevationAttributes Attributes + { + get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixApprovedExeForElevationSymbolFields.Attributes, (int)value); + } + + public bool Win64 => (this.Attributes & WixApprovedExeForElevationAttributes.Win64) == WixApprovedExeForElevationAttributes.Win64; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs b/src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs new file mode 100644 index 00000000..03bdb69b --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBindUpdatedFiles = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBindUpdatedFiles, + new[] + { + new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesSymbolFields.FileRef), IntermediateFieldType.String), + }, + typeof(WixBindUpdatedFilesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBindUpdatedFilesSymbolFields + { + FileRef, + } + + public class WixBindUpdatedFilesSymbol : IntermediateSymbol + { + public WixBindUpdatedFilesSymbol() : base(SymbolDefinitions.WixBindUpdatedFiles, null, null) + { + } + + public WixBindUpdatedFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBindUpdatedFilesSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)WixBindUpdatedFilesSymbolFields.FileRef]; + set => this.Set((int)WixBindUpdatedFilesSymbolFields.FileRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs new file mode 100644 index 00000000..3d7876fd --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBootstrapperApplication = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBootstrapperApplication, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBootstrapperApplicationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBootstrapperApplicationSymbolFields + { + } + + public class WixBootstrapperApplicationSymbol : IntermediateSymbol + { + public WixBootstrapperApplicationSymbol() : base(SymbolDefinitions.WixBootstrapperApplication, null, null) + { + } + + public WixBootstrapperApplicationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplication, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBootstrapperApplicationSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs b/src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs new file mode 100644 index 00000000..66e04d4b --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBuildInfo = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBuildInfo, + new[] + { + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixOutputFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixProjectFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixPdbFile), IntermediateFieldType.String), + }, + typeof(WixBuildInfoSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBuildInfoSymbolFields + { + WixVersion, + WixOutputFile, + WixProjectFile, + WixPdbFile, + } + + public class WixBuildInfoSymbol : IntermediateSymbol + { + public WixBuildInfoSymbol() : base(SymbolDefinitions.WixBuildInfo, null, null) + { + } + + public WixBuildInfoSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBuildInfo, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBuildInfoSymbolFields index] => this.Fields[(int)index]; + + public string WixVersion + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixVersion]; + set => this.Set((int)WixBuildInfoSymbolFields.WixVersion, value); + } + + public string WixOutputFile + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixOutputFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixOutputFile, value); + } + + public string WixProjectFile + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixProjectFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixProjectFile, value); + } + + public string WixPdbFile + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixPdbFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixPdbFile, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs new file mode 100644 index 00000000..48415228 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCatalogSymbolFields.PayloadRef), IntermediateFieldType.String), + }, + typeof(WixBundleCatalogSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleCatalogSymbolFields + { + PayloadRef, + } + + public class WixBundleCatalogSymbol : IntermediateSymbol + { + public WixBundleCatalogSymbol() : base(SymbolDefinitions.WixBundleCatalog, null, null) + { + } + + public WixBundleCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCatalogSymbolFields index] => this.Fields[(int)index]; + + public string PayloadRef + { + get => (string)this.Fields[(int)WixBundleCatalogSymbolFields.PayloadRef]; + set => this.Set((int)WixBundleCatalogSymbolFields.PayloadRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs new file mode 100644 index 00000000..80beda0a --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs @@ -0,0 +1,103 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleContainer = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleContainer, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Size), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.AttachedContainerIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.WorkingPath), IntermediateFieldType.String), + }, + typeof(WixBundleContainerSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleContainerSymbolFields + { + Name, + Type, + DownloadUrl, + Size, + Hash, + AttachedContainerIndex, + WorkingPath, + } + + /// + /// Types of bundle packages. + /// + public enum ContainerType + { + Attached, + Detached, + } + + public class WixBundleContainerSymbol : IntermediateSymbol + { + public WixBundleContainerSymbol() : base(SymbolDefinitions.WixBundleContainer, null, null) + { + } + + public WixBundleContainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleContainer, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleContainerSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Name]; + set => this.Set((int)WixBundleContainerSymbolFields.Name, value); + } + + public ContainerType Type + { + get => (ContainerType)this.Fields[(int)WixBundleContainerSymbolFields.Type].AsNumber(); + set => this.Set((int)WixBundleContainerSymbolFields.Type, (int)value); + } + + public string DownloadUrl + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.DownloadUrl]; + set => this.Set((int)WixBundleContainerSymbolFields.DownloadUrl, value); + } + + public long? Size + { + get => (long?)this.Fields[(int)WixBundleContainerSymbolFields.Size]; + set => this.Set((int)WixBundleContainerSymbolFields.Size, value); + } + + public string Hash + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Hash]; + set => this.Set((int)WixBundleContainerSymbolFields.Hash, value); + } + + public int? AttachedContainerIndex + { + get => (int?)this.Fields[(int)WixBundleContainerSymbolFields.AttachedContainerIndex]; + set => this.Set((int)WixBundleContainerSymbolFields.AttachedContainerIndex, value); + } + + public string WorkingPath + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.WorkingPath]; + set => this.Set((int)WixBundleContainerSymbolFields.WorkingPath, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs new file mode 100644 index 00000000..c0a657ee --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleCustomDataAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomDataAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.Name), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataAttributeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleCustomDataAttributeSymbolFields + { + CustomDataRef, + Name, + } + + public class WixBundleCustomDataAttributeSymbol : IntermediateSymbol + { + public WixBundleCustomDataAttributeSymbol() : base(SymbolDefinitions.WixBundleCustomDataAttribute, null, null) + { + } + + public WixBundleCustomDataAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataAttributeSymbolFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.Name]; + set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.Name, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs new file mode 100644 index 00000000..0488969a --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleCustomDataCell = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomDataCell, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.AttributeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.ElementId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataCellSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleCustomDataCellSymbolFields + { + CustomDataRef, + AttributeRef, + ElementId, + Value, + } + + public class WixBundleCustomDataCellSymbol : IntermediateSymbol + { + public WixBundleCustomDataCellSymbol() : base(SymbolDefinitions.WixBundleCustomDataCell, null, null) + { + } + + public WixBundleCustomDataCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataCellSymbolFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.CustomDataRef, value); + } + + public string AttributeRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.AttributeRef]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.AttributeRef, value); + } + + public string ElementId + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.ElementId]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.ElementId, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.Value]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.Value, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs new file mode 100644 index 00000000..0490f9f7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleCustomData = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomData, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.AttributeNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.BundleExtensionRef), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleCustomDataSymbolFields + { + AttributeNames, + Type, + BundleExtensionRef, + } + + public enum WixBundleCustomDataType + { + Unknown, + BootstrapperApplication, + BundleExtension, + } + + public class WixBundleCustomDataSymbol : IntermediateSymbol + { + public const char AttributeNamesSeparator = '\x85'; + + public WixBundleCustomDataSymbol() : base(SymbolDefinitions.WixBundleCustomData, null, null) + { + } + + public WixBundleCustomDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomData, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataSymbolFields index] => this.Fields[(int)index]; + + public string AttributeNames + { + get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.AttributeNames]; + set => this.Set((int)WixBundleCustomDataSymbolFields.AttributeNames, value); + } + + public WixBundleCustomDataType Type + { + get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataSymbolFields.Type].AsNumber(); + set => this.Set((int)WixBundleCustomDataSymbolFields.Type, (int)value); + } + + public string BundleExtensionRef + { + get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.BundleExtensionRef]; + set => this.Set((int)WixBundleCustomDataSymbolFields.BundleExtensionRef, value); + } + + public string[] AttributeNamesSeparated => this.AttributeNames.Split(AttributeNamesSeparator); + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs new file mode 100644 index 00000000..8a8cff1b --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs @@ -0,0 +1,94 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleExePackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExePackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.InstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.UninstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.ExeProtocol), IntermediateFieldType.String), + }, + typeof(WixBundleExePackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleExePackageSymbolFields + { + Attributes, + DetectCondition, + InstallCommand, + RepairCommand, + UninstallCommand, + ExeProtocol, + } + + [Flags] + public enum WixBundleExePackageAttributes + { + None = 0, + } + + public class WixBundleExePackageSymbol : IntermediateSymbol + { + public WixBundleExePackageSymbol() : base(SymbolDefinitions.WixBundleExePackage, null, null) + { + } + + public WixBundleExePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExePackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundleExePackageAttributes Attributes + { + get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleExePackageSymbolFields.Attributes, (int)value); + } + + public string DetectCondition + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.DetectCondition]; + set => this.Set((int)WixBundleExePackageSymbolFields.DetectCondition, value); + } + + public string InstallCommand + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.InstallCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.InstallCommand, value); + } + + public string RepairCommand + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.RepairCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.RepairCommand, value); + } + + public string UninstallCommand + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.UninstallCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.UninstallCommand, value); + } + + public string ExeProtocol + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.ExeProtocol]; + set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); + } + + public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs new file mode 100644 index 00000000..8e6bea58 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleExtension = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExtension, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleExtensionSymbolFields.PayloadRef), IntermediateFieldType.String), + }, + typeof(WixBundleExtensionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleExtensionSymbolFields + { + PayloadRef, + } + + public class WixBundleExtensionSymbol : IntermediateSymbol + { + public WixBundleExtensionSymbol() : base(SymbolDefinitions.WixBundleExtension, null, null) + { + } + + public WixBundleExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExtension, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExtensionSymbolFields index] => this.Fields[(int)index]; + + public string PayloadRef + { + get => (string)this.Fields[(int)WixBundleExtensionSymbolFields.PayloadRef]; + set => this.Set((int)WixBundleExtensionSymbolFields.PayloadRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs new file mode 100644 index 00000000..f81da5b8 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiFeature = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiFeature, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Size), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Directory), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleMsiFeatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsiFeatureSymbolFields + { + PackageRef, + Name, + Size, + Parent, + Title, + Description, + Display, + Level, + Directory, + Attributes, + } + + public class WixBundleMsiFeatureSymbol : IntermediateSymbol + { + public WixBundleMsiFeatureSymbol() : base(SymbolDefinitions.WixBundleMsiFeature, null, null) + { + } + + public WixBundleMsiFeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiFeature, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiFeatureSymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.PackageRef]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.PackageRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Name]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Name, value); + } + + public long Size + { + get => (long)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Size]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Size, value); + } + + public string Parent + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Parent]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Parent, value); + } + + public string Title + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Title]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Title, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Description]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Description, value); + } + + public int Display + { + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Display]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Display, value); + } + + public int Level + { + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Level]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Level, value); + } + + public string Directory + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Directory]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Directory, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Attributes]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Attributes, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs new file mode 100644 index 00000000..21735f64 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs @@ -0,0 +1,105 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + }, + typeof(WixBundleMsiPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleMsiPackageSymbolFields + { + Attributes, + ProductCode, + UpgradeCode, + ProductVersion, + ProductLanguage, + ProductName, + Manufacturer, + } + + [Flags] + public enum WixBundleMsiPackageAttributes + { + EnableFeatureSelection = 0x4, + ForcePerMachine = 0x2, + } + + public class WixBundleMsiPackageSymbol : IntermediateSymbol + { + public WixBundleMsiPackageSymbol() : base(SymbolDefinitions.WixBundleMsiPackage, null, null) + { + } + + public WixBundleMsiPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundleMsiPackageAttributes Attributes + { + get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.Attributes, (int)value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductCode]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductCode, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.UpgradeCode]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.UpgradeCode, value); + } + + public string ProductVersion + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductVersion]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductVersion, value); + } + + public int ProductLanguage + { + get => (int)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductLanguage]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductLanguage, value); + } + + public string ProductName + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductName]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductName, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.Manufacturer, value); + } + + public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; + + public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs new file mode 100644 index 00000000..0d87f87d --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiProperty, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(WixBundleMsiPropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsiPropertySymbolFields + { + PackageRef, + Name, + Value, + Condition, + } + + public class WixBundleMsiPropertySymbol : IntermediateSymbol + { + public WixBundleMsiPropertySymbol() : base(SymbolDefinitions.WixBundleMsiProperty, null, null) + { + } + + public WixBundleMsiPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPropertySymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.PackageRef]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.PackageRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Name]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Value]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Value, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Condition]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs new file mode 100644 index 00000000..3784c2ff --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs @@ -0,0 +1,81 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMspPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMspPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchXml), IntermediateFieldType.String), + }, + typeof(WixBundleMspPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleMspPackageSymbolFields + { + Attributes, + PatchCode, + Manufacturer, + PatchXml, + } + + [Flags] + public enum WixBundleMspPackageAttributes + { + Slipstream = 0x2, + TargetUnspecified = 0x4, + } + + public class WixBundleMspPackageSymbol : IntermediateSymbol + { + public WixBundleMspPackageSymbol() : base(SymbolDefinitions.WixBundleMspPackage, null, null) + { + } + + public WixBundleMspPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMspPackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundleMspPackageAttributes Attributes + { + get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleMspPackageSymbolFields.Attributes, (int)value); + } + + public string PatchCode + { + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchCode]; + set => this.Set((int)WixBundleMspPackageSymbolFields.PatchCode, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleMspPackageSymbolFields.Manufacturer, value); + } + + public string PatchXml + { + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchXml]; + set => this.Set((int)WixBundleMspPackageSymbolFields.PatchXml, value); + } + + public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; + + public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs new file mode 100644 index 00000000..e52a9b2d --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsuPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsuPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.MsuKB), IntermediateFieldType.String), + }, + typeof(WixBundleMsuPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsuPackageSymbolFields + { + DetectCondition, + MsuKB, + } + + public class WixBundleMsuPackageSymbol : IntermediateSymbol + { + public WixBundleMsuPackageSymbol() : base(SymbolDefinitions.WixBundleMsuPackage, null, null) + { + } + + public WixBundleMsuPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsuPackageSymbolFields index] => this.Fields[(int)index]; + + public string DetectCondition + { + get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.DetectCondition]; + set => this.Set((int)WixBundleMsuPackageSymbolFields.DetectCondition, value); + } + + public string MsuKB + { + get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.MsuKB]; + set => this.Set((int)WixBundleMsuPackageSymbolFields.MsuKB, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs new file mode 100644 index 00000000..7ef254a6 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackageCommandLine = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageCommandLine, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.InstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.UninstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.RepairArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(WixBundlePackageCommandLineSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundlePackageCommandLineSymbolFields + { + WixBundlePackageRef, + InstallArgument, + UninstallArgument, + RepairArgument, + Condition, + } + + public class WixBundlePackageCommandLineSymbol : IntermediateSymbol + { + public WixBundlePackageCommandLineSymbol() : base(SymbolDefinitions.WixBundlePackageCommandLine, null, null) + { + } + + public WixBundlePackageCommandLineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageCommandLineSymbolFields index] => this.Fields[(int)index]; + + public string WixBundlePackageRef + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef, value); + } + + public string InstallArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.InstallArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.InstallArgument, value); + } + + public string UninstallArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.UninstallArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.UninstallArgument, value); + } + + public string RepairArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.RepairArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.RepairArgument, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.Condition]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs new file mode 100644 index 00000000..d77d9d58 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackageExitCode = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageExitCode, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.ChainPackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Code), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Behavior), IntermediateFieldType.String), + }, + typeof(WixBundlePackageExitCodeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePackageExitCodeSymbolFields + { + ChainPackageId, + Code, + Behavior, + } + + public enum ExitCodeBehaviorType + { + NotSet = -1, + Success, + Error, + ScheduleReboot, + ForceReboot, + } + + public class WixBundlePackageExitCodeSymbol : IntermediateSymbol + { + public WixBundlePackageExitCodeSymbol() : base(SymbolDefinitions.WixBundlePackageExitCode, null, null) + { + } + + public WixBundlePackageExitCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageExitCodeSymbolFields index] => this.Fields[(int)index]; + + public string ChainPackageId + { + get => (string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.ChainPackageId]; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.ChainPackageId, value); + } + + public int? Code + { + get => (int?)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Code]; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Code, value); + } + + public ExitCodeBehaviorType Behavior + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Behavior], true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Behavior, value.ToString()); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs new file mode 100644 index 00000000..a5e1943b --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackageGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageGroup, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundlePackageGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundlePackageGroupSymbolFields + { + } + + public class WixBundlePackageGroupSymbol : IntermediateSymbol + { + public WixBundlePackageGroupSymbol() : base(SymbolDefinitions.WixBundlePackageGroup, null, null) + { + } + + public WixBundlePackageGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageGroupSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs new file mode 100644 index 00000000..8f073900 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs @@ -0,0 +1,212 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PayloadRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Cache), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.CacheId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PerMachine), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackLogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Win64), IntermediateFieldType.Bool), + }, + typeof(WixBundlePackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePackageSymbolFields + { + Type, + PayloadRef, + Attributes, + InstallCondition, + Cache, + CacheId, + Vital, + PerMachine, + LogPathVariable, + RollbackLogPathVariable, + Size, + InstallSize, + Version, + Language, + DisplayName, + Description, + RollbackBoundaryRef, + RollbackBoundaryBackwardRef, + Win64, + } + + /// + /// Types of bundle packages. + /// + public enum WixBundlePackageType + { + Exe, + Msi, + Msp, + Msu, + } + + [Flags] + public enum WixBundlePackageAttributes + { + Permanent = 0x1, + Visible = 0x2, + PerMachine = 0x4, + Win64 = 0x8, + } + + public class WixBundlePackageSymbol : IntermediateSymbol + { + public WixBundlePackageSymbol() : base(SymbolDefinitions.WixBundlePackage, null, null) + { + } + + public WixBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundlePackageType Type + { + get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageSymbolFields.Type], true); + set => this.Set((int)WixBundlePackageSymbolFields.Type, value.ToString()); + } + + public string PayloadRef + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.PayloadRef]; + set => this.Set((int)WixBundlePackageSymbolFields.PayloadRef, value); + } + + public WixBundlePackageAttributes Attributes + { + get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageSymbolFields.Attributes]; + set => this.Set((int)WixBundlePackageSymbolFields.Attributes, (int)value); + } + + public string InstallCondition + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.InstallCondition]; + set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value); + } + + public YesNoAlwaysType Cache + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; + set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant()); + } + + public string CacheId + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.CacheId]; + set => this.Set((int)WixBundlePackageSymbolFields.CacheId, value); + } + + public bool? Vital + { + get => (bool?)this.Fields[(int)WixBundlePackageSymbolFields.Vital]; + set => this.Set((int)WixBundlePackageSymbolFields.Vital, value); + } + + public YesNoDefaultType PerMachine + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; + set => this.Set((int)WixBundlePackageSymbolFields.PerMachine, value.ToString().ToLowerInvariant()); + } + + public string LogPathVariable + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.LogPathVariable]; + set => this.Set((int)WixBundlePackageSymbolFields.LogPathVariable, value); + } + + public string RollbackLogPathVariable + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackLogPathVariable]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackLogPathVariable, value); + } + + public int Size + { + get => (int)this.Fields[(int)WixBundlePackageSymbolFields.Size]; + set => this.Set((int)WixBundlePackageSymbolFields.Size, value); + } + + public long? InstallSize + { + get => (long?)this.Fields[(int)WixBundlePackageSymbolFields.InstallSize]; + set => this.Set((int)WixBundlePackageSymbolFields.InstallSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Version]; + set => this.Set((int)WixBundlePackageSymbolFields.Version, value); + } + + public int? Language + { + get => (int?)this.Fields[(int)WixBundlePackageSymbolFields.Language]; + set => this.Set((int)WixBundlePackageSymbolFields.Language, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.DisplayName]; + set => this.Set((int)WixBundlePackageSymbolFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Description]; + set => this.Set((int)WixBundlePackageSymbolFields.Description, value); + } + + public string RollbackBoundaryRef + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryRef]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryRef, value); + } + + public string RollbackBoundaryBackwardRef + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef, value); + } + + public bool Win64 + { + get => (bool)this.Fields[(int)WixBundlePackageSymbolFields.Win64]; + set => this.Set((int)WixBundlePackageSymbolFields.Win64, value); + } + + public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs new file mode 100644 index 00000000..b1aa9c77 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs @@ -0,0 +1,82 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePatchTargetCode = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePatchTargetCode, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.TargetCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundlePatchTargetCodeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePatchTargetCodeSymbolFields + { + PackageRef, + TargetCode, + Attributes, + } + + [Flags] + public enum WixBundlePatchTargetCodeAttributes : int + { + None = 0, + + /// + /// The transform targets a specific ProductCode. + /// + TargetsProductCode = 1, + + /// + /// The transform targets a specific UpgradeCode. + /// + TargetsUpgradeCode = 2, + } + + public class WixBundlePatchTargetCodeSymbol : IntermediateSymbol + { + public WixBundlePatchTargetCodeSymbol() : base(SymbolDefinitions.WixBundlePatchTargetCode, null, null) + { + } + + public WixBundlePatchTargetCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePatchTargetCodeSymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.PackageRef]; + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.PackageRef, value); + } + + public string TargetCode + { + get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.TargetCode]; + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.TargetCode, value); + } + + public WixBundlePatchTargetCodeAttributes Attributes + { + get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.Attributes, (int)value); + } + + public bool TargetsProductCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsProductCode) == WixBundlePatchTargetCodeAttributes.TargetsProductCode; + + public bool TargetsUpgradeCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode) == WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs new file mode 100644 index 00000000..c53f6e73 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePayloadGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePayloadGroup, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundlePayloadGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundlePayloadGroupSymbolFields + { + } + + public class WixBundlePayloadGroupSymbol : IntermediateSymbol + { + public WixBundlePayloadGroupSymbol() : base(SymbolDefinitions.WixBundlePayloadGroup, null, null) + { + } + + public WixBundlePayloadGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePayloadGroupSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs new file mode 100644 index 00000000..94a02af8 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs @@ -0,0 +1,206 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePayload, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.UnresolvedSourceFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EnableSignatureValidation), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PublicKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Thumbprint), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.CatalogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EmbeddedId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.LayoutOnly), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Packaging), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ParentPackagePayloadRef), IntermediateFieldType.String), + }, + typeof(WixBundlePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePayloadSymbolFields + { + Name, + SourceFile, + DownloadUrl, + Compressed, + UnresolvedSourceFile, + DisplayName, + Description, + EnableSignatureValidation, + FileSize, + Version, + Hash, + PublicKey, + Thumbprint, + CatalogRef, + ContainerRef, + PackageRef, + ContentFile, + EmbeddedId, + LayoutOnly, + Packaging, + ParentPackagePayloadRef, + } + + public class WixBundlePayloadSymbol : IntermediateSymbol + { + public WixBundlePayloadSymbol() : base(SymbolDefinitions.WixBundlePayload, null, null) + { + } + + public WixBundlePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePayloadSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Name]; + set => this.Set((int)WixBundlePayloadSymbolFields.Name, value); + } + + public IntermediateFieldPathValue SourceFile + { + get => this.Fields[(int)WixBundlePayloadSymbolFields.SourceFile].AsPath(); + set => this.Set((int)WixBundlePayloadSymbolFields.SourceFile, value); + } + + public string DownloadUrl + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DownloadUrl]; + set => this.Set((int)WixBundlePayloadSymbolFields.DownloadUrl, value); + } + + public bool? Compressed + { + get => (bool?)this.Fields[(int)WixBundlePayloadSymbolFields.Compressed]; + set => this.Set((int)WixBundlePayloadSymbolFields.Compressed, value); + } + + public string UnresolvedSourceFile + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.UnresolvedSourceFile]; + set => this.Set((int)WixBundlePayloadSymbolFields.UnresolvedSourceFile, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DisplayName]; + set => this.Set((int)WixBundlePayloadSymbolFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Description]; + set => this.Set((int)WixBundlePayloadSymbolFields.Description, value); + } + + public bool EnableSignatureValidation + { + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.EnableSignatureValidation]; + set => this.Set((int)WixBundlePayloadSymbolFields.EnableSignatureValidation, value); + } + + public int? FileSize + { + get => (int?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; + set => this.Set((int)WixBundlePayloadSymbolFields.FileSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Version]; + set => this.Set((int)WixBundlePayloadSymbolFields.Version, value); + } + + public string Hash + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Hash]; + set => this.Set((int)WixBundlePayloadSymbolFields.Hash, value); + } + + public string PublicKey + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PublicKey]; + set => this.Set((int)WixBundlePayloadSymbolFields.PublicKey, value); + } + + public string Thumbprint + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Thumbprint]; + set => this.Set((int)WixBundlePayloadSymbolFields.Thumbprint, value); + } + + public string CatalogRef + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.CatalogRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.CatalogRef, value); + } + + public string ContainerRef + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ContainerRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.ContainerRef, value); + } + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PackageRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.PackageRef, value); + } + + public bool ContentFile + { + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.ContentFile]; + set => this.Set((int)WixBundlePayloadSymbolFields.ContentFile, value); + } + + public string EmbeddedId + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.EmbeddedId]; + set => this.Set((int)WixBundlePayloadSymbolFields.EmbeddedId, value); + } + + public bool LayoutOnly + { + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.LayoutOnly]; + set => this.Set((int)WixBundlePayloadSymbolFields.LayoutOnly, value); + } + + public PackagingType? Packaging + { + get => (PackagingType?)this.Fields[(int)WixBundlePayloadSymbolFields.Packaging].AsNumber(); + set => this.Set((int)WixBundlePayloadSymbolFields.Packaging, (int?)value); + } + + public string ParentPackagePayloadRef + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs new file mode 100644 index 00000000..7bd67b7f --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs @@ -0,0 +1,104 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleRelatedPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleRelatedPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.RelatedId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleRelatedPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleRelatedPackageSymbolFields + { + PackageRef, + RelatedId, + MinVersion, + MaxVersion, + Languages, + Attributes, + } + + [Flags] + public enum WixBundleRelatedPackageAttributes + { + None = 0x0, + OnlyDetect = 0x1, + MinInclusive = 0x2, + MaxInclusive = 0x4, + LangInclusive = 0x8, + } + + public class WixBundleRelatedPackageSymbol : IntermediateSymbol + { + public WixBundleRelatedPackageSymbol() : base(SymbolDefinitions.WixBundleRelatedPackage, null, null) + { + } + + public WixBundleRelatedPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleRelatedPackageSymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.PackageRef]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.PackageRef, value); + } + + public string RelatedId + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.RelatedId]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.RelatedId, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MinVersion]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MaxVersion]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.MaxVersion, value); + } + + public string Languages + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Languages]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.Languages, value); + } + + public WixBundleRelatedPackageAttributes Attributes + { + get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleRelatedPackageSymbolFields.Attributes, (int)value); + } + + public bool MinInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MinInclusive) == WixBundleRelatedPackageAttributes.MinInclusive; + + public bool MaxInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MaxInclusive) == WixBundleRelatedPackageAttributes.MaxInclusive; + + public bool OnlyDetect => (this.Attributes & WixBundleRelatedPackageAttributes.OnlyDetect) == WixBundleRelatedPackageAttributes.OnlyDetect; + + public bool LangInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.LangInclusive) == WixBundleRelatedPackageAttributes.LangInclusive; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs b/src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs new file mode 100644 index 00000000..e54e898e --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleRollbackBoundary = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleRollbackBoundary, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Vital), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Transaction), IntermediateFieldType.Number), + }, + typeof(WixBundleRollbackBoundarySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleRollbackBoundarySymbolFields + { + Vital, + Transaction, + } + + public class WixBundleRollbackBoundarySymbol : IntermediateSymbol + { + public WixBundleRollbackBoundarySymbol() : base(SymbolDefinitions.WixBundleRollbackBoundary, null, null) + { + } + + public WixBundleRollbackBoundarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleRollbackBoundarySymbolFields index] => this.Fields[(int)index]; + + public bool? Vital + { + get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Vital]; + set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Vital, value); + } + + public bool? Transaction + { + get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Transaction]; + set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Transaction, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs new file mode 100644 index 00000000..d8e9db3f --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleSlipstreamMsp = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleSlipstreamMsp, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.TargetPackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.MspPackageRef), IntermediateFieldType.String), + }, + typeof(WixBundleSlipstreamMspSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleSlipstreamMspSymbolFields + { + TargetPackageRef, + MspPackageRef, + } + + public class WixBundleSlipstreamMspSymbol : IntermediateSymbol + { + public WixBundleSlipstreamMspSymbol() : base(SymbolDefinitions.WixBundleSlipstreamMsp, null, null) + { + } + + public WixBundleSlipstreamMspSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleSlipstreamMspSymbolFields index] => this.Fields[(int)index]; + + public string TargetPackageRef + { + get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef, value); + } + + public string MspPackageRef + { + get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.MspPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspSymbolFields.MspPackageRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleSymbol.cs new file mode 100644 index 00000000..8cad5c36 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleSymbol.cs @@ -0,0 +1,234 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundle = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundle, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Copyright), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.AboutUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpTelephone), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpdateUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPrefix), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogExtension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.IconSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.SplashScreenSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Tag), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Platform), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ParentName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.BundleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ProviderKey), IntermediateFieldType.String), + }, + typeof(WixBundleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleSymbolFields + { + UpgradeCode, + Version, + Copyright, + Name, + Manufacturer, + Attributes, + AboutUrl, + HelpUrl, + HelpTelephone, + UpdateUrl, + Compressed, + LogPathVariable, + LogPrefix, + LogExtension, + IconSourceFile, + SplashScreenSourceFile, + Condition, + Tag, + Platform, + ParentName, + BundleId, + ProviderKey, + } + + [Flags] + public enum WixBundleAttributes + { + None = 0x0, + DisableModify = 0x1, + DisableRemove = 0x2, + SingleChangeUninstallButton = 0x4, + PerMachine = 0x8, + } + + public class WixBundleSymbol : IntermediateSymbol + { + public WixBundleSymbol() : base(SymbolDefinitions.WixBundle, null, null) + { + } + + public WixBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundle, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleSymbolFields index] => this.Fields[(int)index]; + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundleSymbolFields.UpgradeCode]; + set => this.Set((int)WixBundleSymbolFields.UpgradeCode, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Version]; + set => this.Set((int)WixBundleSymbolFields.Version, value); + } + + public string Copyright + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Copyright]; + set => this.Set((int)WixBundleSymbolFields.Copyright, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Name]; + set => this.Set((int)WixBundleSymbolFields.Name, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleSymbolFields.Manufacturer, value); + } + + public WixBundleAttributes Attributes + { + get => (WixBundleAttributes)this.Fields[(int)WixBundleSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleSymbolFields.Attributes, (int)value); + } + + public string AboutUrl + { + get => (string)this.Fields[(int)WixBundleSymbolFields.AboutUrl]; + set => this.Set((int)WixBundleSymbolFields.AboutUrl, value); + } + + public string HelpTelephone + { + get => (string)this.Fields[(int)WixBundleSymbolFields.HelpTelephone]; + set => this.Set((int)WixBundleSymbolFields.HelpTelephone, value); + } + + public string HelpUrl + { + get => (string)this.Fields[(int)WixBundleSymbolFields.HelpUrl]; + set => this.Set((int)WixBundleSymbolFields.HelpUrl, value); + } + + public string UpdateUrl + { + get => (string)this.Fields[(int)WixBundleSymbolFields.UpdateUrl]; + set => this.Set((int)WixBundleSymbolFields.UpdateUrl, value); + } + + public bool? Compressed + { + get => (bool?)this.Fields[(int)WixBundleSymbolFields.Compressed]; + set => this.Set((int)WixBundleSymbolFields.Compressed, value); + } + + public string LogPathVariable + { + get => (string)this.Fields[(int)WixBundleSymbolFields.LogPathVariable]; + set => this.Set((int)WixBundleSymbolFields.LogPathVariable, value); + } + + public string LogPrefix + { + get => (string)this.Fields[(int)WixBundleSymbolFields.LogPrefix]; + set => this.Set((int)WixBundleSymbolFields.LogPrefix, value); + } + + public string LogExtension + { + get => (string)this.Fields[(int)WixBundleSymbolFields.LogExtension]; + set => this.Set((int)WixBundleSymbolFields.LogExtension, value); + } + + public string IconSourceFile + { + get => (string)this.Fields[(int)WixBundleSymbolFields.IconSourceFile]; + set => this.Set((int)WixBundleSymbolFields.IconSourceFile, value); + } + + public string SplashScreenSourceFile + { + get => (string)this.Fields[(int)WixBundleSymbolFields.SplashScreenSourceFile]; + set => this.Set((int)WixBundleSymbolFields.SplashScreenSourceFile, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Condition]; + set => this.Set((int)WixBundleSymbolFields.Condition, value); + } + + public string Tag + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Tag]; + set => this.Set((int)WixBundleSymbolFields.Tag, value); + } + + public Platform Platform + { + get => (Platform)this.Fields[(int)WixBundleSymbolFields.Platform].AsNumber(); + set => this.Set((int)WixBundleSymbolFields.Platform, (int)value); + } + + public string ParentName + { + get => (string)this.Fields[(int)WixBundleSymbolFields.ParentName]; + set => this.Set((int)WixBundleSymbolFields.ParentName, value); + } + + public string BundleId + { + get => (string)this.Fields[(int)WixBundleSymbolFields.BundleId]; + set => this.Set((int)WixBundleSymbolFields.BundleId, value); + } + + public string ProviderKey + { + get => (string)this.Fields[(int)WixBundleSymbolFields.ProviderKey]; + set => this.Set((int)WixBundleSymbolFields.ProviderKey, value); + } + + public PackagingType DefaultPackagingType => (this.Compressed.HasValue && !this.Compressed.Value) ? PackagingType.External : PackagingType.Embedded; + + public bool DisableModify => (this.Attributes & WixBundleAttributes.DisableModify) == WixBundleAttributes.DisableModify; + + public bool DisableRemove => (this.Attributes & WixBundleAttributes.DisableRemove) == WixBundleAttributes.DisableRemove; + + public bool PerMachine => (this.Attributes & WixBundleAttributes.PerMachine) == WixBundleAttributes.PerMachine; + + public bool SingleChangeUninstallButton => (this.Attributes & WixBundleAttributes.SingleChangeUninstallButton) == WixBundleAttributes.SingleChangeUninstallButton; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs new file mode 100644 index 00000000..d27bbc32 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleUpdate = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleUpdate, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Location), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleUpdateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleUpdateSymbolFields + { + Location, + Attributes, + } + + public class WixBundleUpdateSymbol : IntermediateSymbol + { + public WixBundleUpdateSymbol() : base(SymbolDefinitions.WixBundleUpdate, null, null) + { + } + + public WixBundleUpdateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleUpdate, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleUpdateSymbolFields index] => this.Fields[(int)index]; + + public string Location + { + get => (string)this.Fields[(int)WixBundleUpdateSymbolFields.Location]; + set => this.Set((int)WixBundleUpdateSymbolFields.Location, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixBundleUpdateSymbolFields.Attributes]; + set => this.Set((int)WixBundleUpdateSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs new file mode 100644 index 00000000..85cf2798 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Persisted), IntermediateFieldType.Bool), + }, + typeof(WixBundleVariableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleVariableSymbolFields + { + Value, + Type, + Hidden, + Persisted, + } + + public class WixBundleVariableSymbol : IntermediateSymbol + { + public WixBundleVariableSymbol() : base(SymbolDefinitions.WixBundleVariable, null, null) + { + } + + public WixBundleVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleVariableSymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Value]; + set => this.Set((int)WixBundleVariableSymbolFields.Value, value); + } + + public string Type + { + get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Type]; + set => this.Set((int)WixBundleVariableSymbolFields.Type, value); + } + + public bool Hidden + { + get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Hidden]; + set => this.Set((int)WixBundleVariableSymbolFields.Hidden, value); + } + + public bool Persisted + { + get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Persisted]; + set => this.Set((int)WixBundleVariableSymbolFields.Persisted, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixChainItemSymbol.cs b/src/WixToolset.Data/Symbols/WixChainItemSymbol.cs new file mode 100644 index 00000000..c657678c --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixChainItemSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixChainItem = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixChainItem, + new IntermediateFieldDefinition[] + { + }, + typeof(WixChainItemSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixChainItemSymbolFields + { + } + + public class WixChainItemSymbol : IntermediateSymbol + { + public WixChainItemSymbol() : base(SymbolDefinitions.WixChainItem, null, null) + { + } + + public WixChainItemSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChainItem, sourceLineNumber, id) + { + } + + public IntermediateField this[WixChainItemSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixChainSymbol.cs b/src/WixToolset.Data/Symbols/WixChainSymbol.cs new file mode 100644 index 00000000..8ec5fc63 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixChainSymbol.cs @@ -0,0 +1,61 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixChain = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixChain, + new[] + { + new IntermediateFieldDefinition(nameof(WixChainSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixChainSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixChainSymbolFields + { + Attributes, + } + + [Flags] + public enum WixChainAttributes + { + None = 0x0, + DisableRollback = 0x1, + DisableSystemRestore = 0x2, + ParallelCache = 0x4, + } + + public class WixChainSymbol : IntermediateSymbol + { + public WixChainSymbol() : base(SymbolDefinitions.WixChain, null, null) + { + } + + public WixChainSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChain, sourceLineNumber, id) + { + } + + public IntermediateField this[WixChainSymbolFields index] => this.Fields[(int)index]; + + public WixChainAttributes Attributes + { + get => (WixChainAttributes)(int)this.Fields[(int)WixChainSymbolFields.Attributes]; + set => this.Set((int)WixChainSymbolFields.Attributes, (int)value); + } + + public bool DisableRollback => (this.Attributes & WixChainAttributes.DisableRollback) == WixChainAttributes.DisableRollback; + + public bool DisableSystemRestore => (this.Attributes & WixChainAttributes.DisableSystemRestore) == WixChainAttributes.DisableSystemRestore; + + public bool ParallelCache => (this.Attributes & WixChainAttributes.ParallelCache) == WixChainAttributes.ParallelCache; + } +} diff --git a/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs new file mode 100644 index 00000000..89365605 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs @@ -0,0 +1,86 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixComplexReference = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComplexReference, + new[] + { + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentLanguage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Child), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ChildAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Attributes), IntermediateFieldType.Bool), + }, + typeof(WixComplexReferenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixComplexReferenceSymbolFields + { + Parent, + ParentAttributes, + ParentLanguage, + Child, + ChildAttributes, + Attributes, + } + + public class WixComplexReferenceSymbol : IntermediateSymbol + { + public WixComplexReferenceSymbol() : base(SymbolDefinitions.WixComplexReference, null, null) + { + } + + public WixComplexReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComplexReference, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComplexReferenceSymbolFields index] => this.Fields[(int)index]; + + public string Parent + { + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Parent]; + set => this.Set((int)WixComplexReferenceSymbolFields.Parent, value); + } + + public ComplexReferenceParentType ParentType + { + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentAttributes], true); + set => this.Set((int)WixComplexReferenceSymbolFields.ParentAttributes, value.ToString()); + } + + public string ParentLanguage + { + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentLanguage]; + set => this.Set((int)WixComplexReferenceSymbolFields.ParentLanguage, value); + } + + public string Child + { + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Child]; + set => this.Set((int)WixComplexReferenceSymbolFields.Child, value); + } + + public ComplexReferenceChildType ChildType + { + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ChildAttributes], true); + set => this.Set((int)WixComplexReferenceSymbolFields.ChildAttributes, value.ToString()); + } + + public bool IsPrimary + { + get => (bool)this.Fields[(int)WixComplexReferenceSymbolFields.Attributes]; + set => this.Set((int)WixComplexReferenceSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs new file mode 100644 index 00000000..4dd5a3b5 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixComponentGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComponentGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixComponentGroupSymbolFields.WixComponentGroup), IntermediateFieldType.String), + }, + typeof(WixComponentGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixComponentGroupSymbolFields + { + WixComponentGroup, + } + + public class WixComponentGroupSymbol : IntermediateSymbol + { + public WixComponentGroupSymbol() : base(SymbolDefinitions.WixComponentGroup, null, null) + { + } + + public WixComponentGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComponentGroupSymbolFields index] => this.Fields[(int)index]; + + public string WixComponentGroup + { + get => (string)this.Fields[(int)WixComponentGroupSymbolFields.WixComponentGroup]; + set => this.Set((int)WixComponentGroupSymbolFields.WixComponentGroup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs new file mode 100644 index 00000000..63f7179f --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs @@ -0,0 +1,70 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixComponentSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComponentSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixComponentSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixComponentSearchSymbolFields + { + Guid, + ProductCode, + Attributes, + } + + [Flags] + public enum WixComponentSearchAttributes + { + KeyPath = 0x1, + State = 0x2, + WantDirectory = 0x4, + } + + public class WixComponentSearchSymbol : IntermediateSymbol + { + public WixComponentSearchSymbol() : base(SymbolDefinitions.WixComponentSearch, null, null) + { + } + + public WixComponentSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComponentSearchSymbolFields index] => this.Fields[(int)index]; + + public string Guid + { + get => (string)this.Fields[(int)WixComponentSearchSymbolFields.Guid]; + set => this.Set((int)WixComponentSearchSymbolFields.Guid, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixComponentSearchSymbolFields.ProductCode]; + set => this.Set((int)WixComponentSearchSymbolFields.ProductCode, value); + } + + public WixComponentSearchAttributes Attributes + { + get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixComponentSearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs b/src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs new file mode 100644 index 00000000..b45cda43 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixCustomTableCell = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTableCell, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.ColumnRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.RowId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.Data), IntermediateFieldType.String), + }, + typeof(WixCustomTableCellSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixCustomTableCellSymbolFields + { + TableRef, + ColumnRef, + RowId, + Data, + } + + public class WixCustomTableCellSymbol : IntermediateSymbol + { + public WixCustomTableCellSymbol() : base(SymbolDefinitions.WixCustomTableCell, null, null) + { + } + + public WixCustomTableCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableCell, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableCellSymbolFields index] => this.Fields[(int)index]; + + public string TableRef + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.TableRef]; + set => this.Set((int)WixCustomTableCellSymbolFields.TableRef, value); + } + + public string ColumnRef + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.ColumnRef]; + set => this.Set((int)WixCustomTableCellSymbolFields.ColumnRef, value); + } + + public string RowId + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.RowId]; + set => this.Set((int)WixCustomTableCellSymbolFields.RowId, value); + } + + public string Data + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.Data]; + set => this.Set((int)WixCustomTableCellSymbolFields.Data, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs b/src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs new file mode 100644 index 00000000..9ae2a904 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs @@ -0,0 +1,203 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixCustomTableColumn = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTableColumn, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MinValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MaxValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyColumn), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Category), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Set), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Modularize), IntermediateFieldType.Number) + }, + typeof(WixCustomTableColumnSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixCustomTableColumnSymbolFields + { + TableRef, + Name, + Type, + Attributes, + Width, + MinValue, + MaxValue, + KeyTable, + KeyColumn, + Category, + Set, + Description, + Modularize, + } + + [Flags] + public enum WixCustomTableColumnSymbolAttributes + { + None = 0x0, + PrimaryKey = 0x1, + Localizable = 0x2, + Nullable = 0x4, + Unreal = 0x8, + } + + public enum WixCustomTableColumnCategoryType + { + Text, + UpperCase, + LowerCase, + Integer, + DoubleInteger, + TimeDate, + Identifier, + Property, + Filename, + WildCardFilename, + Path, + Paths, + AnyPath, + DefaultDir, + RegPath, + Formatted, + FormattedSddl, + Template, + Condition, + Guid, + Version, + Language, + Binary, + CustomSource, + Cabinet, + Shortcut, + } + + public enum WixCustomTableColumnModularizeType + { + None, + Column, + CompanionFile, + Condition, + ControlEventArgument, + ControlText, + Icon, + Property, + SemicolonDelimited, + } + + public class WixCustomTableColumnSymbol : IntermediateSymbol + { + public WixCustomTableColumnSymbol() : base(SymbolDefinitions.WixCustomTableColumn, null, null) + { + } + + public WixCustomTableColumnSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableColumn, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableColumnSymbolFields index] => this.Fields[(int)index]; + + public string TableRef + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.TableRef]; + set => this.Set((int)WixCustomTableColumnSymbolFields.TableRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Name]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Name, value); + } + + public IntermediateFieldType Type + { + get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnSymbolFields.Type].AsNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Type, (int)value); + } + + public WixCustomTableColumnSymbolAttributes Attributes + { + get => (WixCustomTableColumnSymbolAttributes)this.Fields[(int)WixCustomTableColumnSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Attributes, (int)value); + } + + public int Width + { + get => (int)this.Fields[(int)WixCustomTableColumnSymbolFields.Width]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Width, value); + } + + public long? MinValue + { + get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MinValue]; + set => this.Set((int)WixCustomTableColumnSymbolFields.MinValue, value); + } + + public long? MaxValue + { + get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MaxValue]; + set => this.Set((int)WixCustomTableColumnSymbolFields.MaxValue, value); + } + + public string KeyTable + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyTable]; + set => this.Set((int)WixCustomTableColumnSymbolFields.KeyTable, value); + } + + public int? KeyColumn + { + get => (int?)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyColumn]; + set => this.Set((int)WixCustomTableColumnSymbolFields.KeyColumn, value); + } + + public WixCustomTableColumnCategoryType? Category + { + get => (WixCustomTableColumnCategoryType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Category].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Category, (int?)value); + } + + public string Set + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Set]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Set, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Description]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Description, value); + } + + public WixCustomTableColumnModularizeType? Modularize + { + get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Modularize].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Modularize, (int?)value); + } + + public bool PrimaryKey => (this.Attributes & WixCustomTableColumnSymbolAttributes.PrimaryKey) == WixCustomTableColumnSymbolAttributes.PrimaryKey; + + public bool Localizable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Localizable) == WixCustomTableColumnSymbolAttributes.Localizable; + + public bool Nullable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Nullable) == WixCustomTableColumnSymbolAttributes.Nullable; + + public bool Unreal => (this.Attributes & WixCustomTableColumnSymbolAttributes.Unreal) == WixCustomTableColumnSymbolAttributes.Unreal; + } +} diff --git a/src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs b/src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs new file mode 100644 index 00000000..af731443 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs @@ -0,0 +1,56 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixCustomTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTable, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.ColumnNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.Unreal), IntermediateFieldType.Bool), + }, + typeof(WixCustomTableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixCustomTableSymbolFields + { + ColumnNames, + Unreal, + } + + public class WixCustomTableSymbol : IntermediateSymbol + { + public const char ColumnNamesSeparator = '\x85'; + + public WixCustomTableSymbol() : base(SymbolDefinitions.WixCustomTable, null, null) + { + } + + public WixCustomTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableSymbolFields index] => this.Fields[(int)index]; + + public string ColumnNames + { + get => (string)this.Fields[(int)WixCustomTableSymbolFields.ColumnNames]; + set => this.Set((int)WixCustomTableSymbolFields.ColumnNames, value); + } + + public bool Unreal + { + get => (bool)this.Fields[(int)WixCustomTableSymbolFields.Unreal]; + set => this.Set((int)WixCustomTableSymbolFields.Unreal, value); + } + + public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); + } +} diff --git a/src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs b/src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs new file mode 100644 index 00000000..77203b03 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDeltaPatchFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDeltaPatchFile, + new[] + { + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(WixDeltaPatchFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixDeltaPatchFileSymbolFields + { + FileRef, + RetainLengths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + SymbolPaths, + } + + public class WixDeltaPatchFileSymbol : IntermediateSymbol + { + public WixDeltaPatchFileSymbol() : base(SymbolDefinitions.WixDeltaPatchFile, null, null) + { + } + + public WixDeltaPatchFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchFile, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDeltaPatchFileSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.FileRef]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.FileRef, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainLengths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainLengths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreOffsets]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreLengths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainOffsets]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainOffsets, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.SymbolPaths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.SymbolPaths, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs b/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs new file mode 100644 index 00000000..6e50d07f --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs @@ -0,0 +1,75 @@ +// 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. + +using System; + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDeltaPatchSymbolPaths = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDeltaPatchSymbolPaths, + new[] + { + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(WixDeltaPatchSymbolPathsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixDeltaPatchSymbolPathsSymbolFields + { + SymbolType, + SymbolId, + SymbolPaths, + } + + /// + /// The types that the WixDeltaPatchSymbolPaths table can hold. + /// + /// The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type. + public enum SymbolPathType + { + File, + Component, + Directory, + Media, + Product + }; + + public class WixDeltaPatchSymbolPathsSymbol : IntermediateSymbol + { + public WixDeltaPatchSymbolPathsSymbol() : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, null, null) + { + } + + public WixDeltaPatchSymbolPathsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDeltaPatchSymbolPathsSymbolFields index] => this.Fields[(int)index]; + + public SymbolPathType SymbolType + { + get => (SymbolPathType)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType].AsNumber(); + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType, (int)value); + } + + public string SymbolId + { + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId]; + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths]; + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs new file mode 100644 index 00000000..3ede1097 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs @@ -0,0 +1,87 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDependencyProvider = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDependencyProvider.ToString(), + new[] + { + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixDependencyProviderSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + using WixToolset.Data; + + public enum WixDependencyProviderSymbolFields + { + ComponentRef, + ProviderKey, + Version, + DisplayName, + Attributes, + } + + [Flags] + public enum WixDependencyProviderAttributes + { + ProvidesAttributesBundle = 0x10000 + } + + public class WixDependencyProviderSymbol : IntermediateSymbol + { + public WixDependencyProviderSymbol() : base(SymbolDefinitions.WixDependencyProvider, null, null) + { + } + + public WixDependencyProviderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyProvider, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.ComponentRef].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.ComponentRef, value); + } + + public string ProviderKey + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.ProviderKey].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.ProviderKey, value); + } + + public string Version + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.Version].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.Version, value); + } + + public string DisplayName + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.DisplayName].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.DisplayName, value); + } + + public WixDependencyProviderAttributes Attributes + { + get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderSymbolFields.Attributes]; + set => this.Set((int)WixDependencyProviderSymbolFields.Attributes, (int)value); + } + + public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle; + } +} diff --git a/src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs b/src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs new file mode 100644 index 00000000..d13063b7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixEnsureTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixEnsureTable, + new[] + { + new IntermediateFieldDefinition(nameof(WixEnsureTableSymbolFields.Table), IntermediateFieldType.String), + }, + typeof(WixEnsureTableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixEnsureTableSymbolFields + { + Table, + } + + public class WixEnsureTableSymbol : IntermediateSymbol + { + public WixEnsureTableSymbol() : base(SymbolDefinitions.WixEnsureTable, null, null) + { + } + + public WixEnsureTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixEnsureTable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixEnsureTableSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixEnsureTableSymbolFields.Table]; + set => this.Set((int)WixEnsureTableSymbolFields.Table, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs new file mode 100644 index 00000000..ac002bb6 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFeatureGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFeatureGroup, + new IntermediateFieldDefinition[] + { + }, + typeof(WixFeatureGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixFeatureGroupSymbolFields + { + } + + public class WixFeatureGroupSymbol : IntermediateSymbol + { + public WixFeatureGroupSymbol() : base(SymbolDefinitions.WixFeatureGroup, null, null) + { + } + + public WixFeatureGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFeatureGroupSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs b/src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs new file mode 100644 index 00000000..b8b3d4b9 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFeatureModules = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFeatureModules, + new[] + { + new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.WixMergeRef), IntermediateFieldType.String), + }, + typeof(WixFeatureModulesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixFeatureModulesSymbolFields + { + FeatureRef, + WixMergeRef, + } + + public class WixFeatureModulesSymbol : IntermediateSymbol + { + public WixFeatureModulesSymbol() : base(SymbolDefinitions.WixFeatureModules, null, null) + { + } + + public WixFeatureModulesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureModules, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFeatureModulesSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.FeatureRef]; + set => this.Set((int)WixFeatureModulesSymbolFields.FeatureRef, value); + } + + public string WixMergeRef + { + get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.WixMergeRef]; + set => this.Set((int)WixFeatureModulesSymbolFields.WixMergeRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs new file mode 100644 index 00000000..027605c7 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs @@ -0,0 +1,125 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFileSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFileSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixFileSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixFileSearchSymbolFields + { + Path, + MinVersion, + MaxVersion, + MinSize, + MaxSize, + MinDate, + MaxDate, + Languages, + Attributes, + } + + [Flags] + public enum WixFileSearchAttributes + { + Default = 0x001, + MinVersionInclusive = 0x002, + MaxVersionInclusive = 0x004, + MinSizeInclusive = 0x008, + MaxSizeInclusive = 0x010, + MinDateInclusive = 0x020, + MaxDateInclusive = 0x040, + WantVersion = 0x080, + WantExists = 0x100, + IsDirectory = 0x200, + } + + public class WixFileSearchSymbol : IntermediateSymbol + { + public WixFileSearchSymbol() : base(SymbolDefinitions.WixFileSearch, null, null) + { + } + + public WixFileSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFileSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFileSearchSymbolFields index] => this.Fields[(int)index]; + + public string Path + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.Path]; + set => this.Set((int)WixFileSearchSymbolFields.Path, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.MinVersion]; + set => this.Set((int)WixFileSearchSymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.MaxVersion]; + set => this.Set((int)WixFileSearchSymbolFields.MaxVersion, value); + } + + public int? MinSize + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinSize]; + set => this.Set((int)WixFileSearchSymbolFields.MinSize, value); + } + + public int? MaxSize + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxSize]; + set => this.Set((int)WixFileSearchSymbolFields.MaxSize, value); + } + + public int? MinDate + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinDate]; + set => this.Set((int)WixFileSearchSymbolFields.MinDate, value); + } + + public int? MaxDate + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxDate]; + set => this.Set((int)WixFileSearchSymbolFields.MaxDate, value); + } + + public string Languages + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.Languages]; + set => this.Set((int)WixFileSearchSymbolFields.Languages, value); + } + + public WixFileSearchAttributes Attributes + { + get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixFileSearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixFragmentSymbol.cs b/src/WixToolset.Data/Symbols/WixFragmentSymbol.cs new file mode 100644 index 00000000..9c31b79c --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixFragmentSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFragment = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFragment, + new IntermediateFieldDefinition[] + { + }, + typeof(WixFragmentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixFragmentSymbolFields + { + } + + public class WixFragmentSymbol : IntermediateSymbol + { + public WixFragmentSymbol() : base(SymbolDefinitions.WixFragment, null, null) + { + } + + public WixFragmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFragment, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFragmentSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixGroupSymbol.cs new file mode 100644 index 00000000..b9720890 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixGroupSymbol.cs @@ -0,0 +1,70 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildType), IntermediateFieldType.String), + }, + typeof(WixGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixGroupSymbolFields + { + ParentId, + ParentType, + ChildId, + ChildType, + } + + public class WixGroupSymbol : IntermediateSymbol + { + public WixGroupSymbol() : base(SymbolDefinitions.WixGroup, null, null) + { + } + + public WixGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixGroupSymbolFields index] => this.Fields[(int)index]; + + public string ParentId + { + get => (string)this.Fields[(int)WixGroupSymbolFields.ParentId]; + set => this.Set((int)WixGroupSymbolFields.ParentId, value); + } + + public ComplexReferenceParentType ParentType + { + get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupSymbolFields.ParentType], true); + set => this.Set((int)WixGroupSymbolFields.ParentType, value.ToString()); + } + + public string ChildId + { + get => (string)this.Fields[(int)WixGroupSymbolFields.ChildId]; + set => this.Set((int)WixGroupSymbolFields.ChildId, value); + } + + public ComplexReferenceChildType ChildType + { + get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupSymbolFields.ChildType], true); + set => this.Set((int)WixGroupSymbolFields.ChildType, value.ToString()); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs b/src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs new file mode 100644 index 00000000..c9e4470c --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixInstanceComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixInstanceComponent, + new[] + { + new IntermediateFieldDefinition(nameof(WixInstanceComponentSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(WixInstanceComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixInstanceComponentSymbolFields + { + ComponentRef, + } + + public class WixInstanceComponentSymbol : IntermediateSymbol + { + public WixInstanceComponentSymbol() : base(SymbolDefinitions.WixInstanceComponent, null, null) + { + } + + public WixInstanceComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[WixInstanceComponentSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)WixInstanceComponentSymbolFields.ComponentRef]; + set => this.Set((int)WixInstanceComponentSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs b/src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs new file mode 100644 index 00000000..3a58cb31 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixInstanceTransforms = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixInstanceTransforms, + new[] + { + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.PropertyId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.UpgradeCode), IntermediateFieldType.String), + }, + typeof(WixInstanceTransformsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixInstanceTransformsSymbolFields + { + PropertyId, + ProductCode, + ProductName, + UpgradeCode, + } + + public class WixInstanceTransformsSymbol : IntermediateSymbol + { + public WixInstanceTransformsSymbol() : base(SymbolDefinitions.WixInstanceTransforms, null, null) + { + } + + public WixInstanceTransformsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceTransforms, sourceLineNumber, id) + { + } + + public IntermediateField this[WixInstanceTransformsSymbolFields index] => this.Fields[(int)index]; + + public string PropertyId + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.PropertyId]; + set => this.Set((int)WixInstanceTransformsSymbolFields.PropertyId, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductCode]; + set => this.Set((int)WixInstanceTransformsSymbolFields.ProductCode, value); + } + + public string ProductName + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductName]; + set => this.Set((int)WixInstanceTransformsSymbolFields.ProductName, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.UpgradeCode]; + set => this.Set((int)WixInstanceTransformsSymbolFields.UpgradeCode, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs b/src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs new file mode 100644 index 00000000..28695b3e --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs @@ -0,0 +1,86 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixMediaTemplate = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixMediaTemplate, + new[] + { + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CabinetTemplate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), + }, + typeof(WixMediaTemplateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixMediaTemplateSymbolFields + { + CabinetTemplate, + CompressionLevel, + DiskPrompt, + VolumeLabel, + MaximumUncompressedMediaSize, + MaximumCabinetSizeForLargeFileSplitting, + } + + public class WixMediaTemplateSymbol : IntermediateSymbol + { + public WixMediaTemplateSymbol() : base(SymbolDefinitions.WixMediaTemplate, null, null) + { + } + + public WixMediaTemplateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMediaTemplate, sourceLineNumber, id) + { + } + + public IntermediateField this[WixMediaTemplateSymbolFields index] => this.Fields[(int)index]; + + public string CabinetTemplate + { + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.CabinetTemplate]; + set => this.Set((int)WixMediaTemplateSymbolFields.CabinetTemplate, value); + } + + public CompressionLevel? CompressionLevel + { + get => (CompressionLevel?)this.Fields[(int)WixMediaTemplateSymbolFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)WixMediaTemplateSymbolFields.CompressionLevel, (int?)value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.DiskPrompt]; + set => this.Set((int)WixMediaTemplateSymbolFields.DiskPrompt, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.VolumeLabel]; + set => this.Set((int)WixMediaTemplateSymbolFields.VolumeLabel, value); + } + + public int? MaximumUncompressedMediaSize + { + get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize]; + set => this.Set((int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize, value); + } + + public int? MaximumCabinetSizeForLargeFileSplitting + { + get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting]; + set => this.Set((int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixMergeSymbol.cs b/src/WixToolset.Data/Symbols/WixMergeSymbol.cs new file mode 100644 index 00000000..d066fa8e --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixMergeSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixMerge = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixMerge, + new[] + { + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FileAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.ConfigurationData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FeatureRef), IntermediateFieldType.String), + }, + typeof(WixMergeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixMergeSymbolFields + { + Language, + DirectoryRef, + SourceFile, + DiskId, + FileAttributes, + ConfigurationData, + FeatureRef, + } + + public class WixMergeSymbol : IntermediateSymbol + { + public WixMergeSymbol() : base(SymbolDefinitions.WixMerge, null, null) + { + } + + public WixMergeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMerge, sourceLineNumber, id) + { + } + + public IntermediateField this[WixMergeSymbolFields index] => this.Fields[(int)index]; + + public int Language + { + get => (int)this.Fields[(int)WixMergeSymbolFields.Language]; + set => this.Set((int)WixMergeSymbolFields.Language, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)WixMergeSymbolFields.DirectoryRef]; + set => this.Set((int)WixMergeSymbolFields.DirectoryRef, value); + } + + public string SourceFile + { + get => (string)this.Fields[(int)WixMergeSymbolFields.SourceFile]; + set => this.Set((int)WixMergeSymbolFields.SourceFile, value); + } + + public int DiskId + { + get => (int)this.Fields[(int)WixMergeSymbolFields.DiskId]; + set => this.Set((int)WixMergeSymbolFields.DiskId, value); + } + + public FileSymbolAttributes FileAttributes + { + get => (FileSymbolAttributes)this.Fields[(int)WixMergeSymbolFields.FileAttributes].AsNumber(); + set => this.Set((int)WixMergeSymbolFields.FileAttributes, (int)value); + } + + public string ConfigurationData + { + get => (string)this.Fields[(int)WixMergeSymbolFields.ConfigurationData]; + set => this.Set((int)WixMergeSymbolFields.ConfigurationData, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)WixMergeSymbolFields.FeatureRef]; + set => this.Set((int)WixMergeSymbolFields.FeatureRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixOrderingSymbol.cs b/src/WixToolset.Data/Symbols/WixOrderingSymbol.cs new file mode 100644 index 00000000..5e6dc980 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixOrderingSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixOrdering = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixOrdering, + new[] + { + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnIdRef), IntermediateFieldType.String), + }, + typeof(WixOrderingSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixOrderingSymbolFields + { + ItemType, + ItemIdRef, + DependsOnType, + DependsOnIdRef, + } + + public class WixOrderingSymbol : IntermediateSymbol + { + public WixOrderingSymbol() : base(SymbolDefinitions.WixOrdering, null, null) + { + } + + public WixOrderingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixOrdering, sourceLineNumber, id) + { + } + + public IntermediateField this[WixOrderingSymbolFields index] => this.Fields[(int)index]; + + public ComplexReferenceChildType ItemType + { + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.ItemType].AsNumber(); + set => this.Set((int)WixOrderingSymbolFields.ItemType, (int)value); + } + + public string ItemIdRef + { + get => (string)this.Fields[(int)WixOrderingSymbolFields.ItemIdRef]; + set => this.Set((int)WixOrderingSymbolFields.ItemIdRef, value); + } + + public ComplexReferenceChildType DependsOnType + { + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.DependsOnType].AsNumber(); + set => this.Set((int)WixOrderingSymbolFields.DependsOnType, (int)value); + } + + public string DependsOnIdRef + { + get => (string)this.Fields[(int)WixOrderingSymbolFields.DependsOnIdRef]; + set => this.Set((int)WixOrderingSymbolFields.DependsOnIdRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs new file mode 100644 index 00000000..d7295424 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchBaseline = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchBaseline, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.ValidationFlags), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.BaselineFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.UpdateFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.TransformFile), IntermediateFieldType.Path), + }, + typeof(WixPatchBaselineSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchBaselineSymbolFields + { + DiskId, + ValidationFlags, + BaselineFile, + UpdateFile, + TransformFile, + } + + public class WixPatchBaselineSymbol : IntermediateSymbol + { + public WixPatchBaselineSymbol() : base(SymbolDefinitions.WixPatchBaseline, null, null) + { + } + + public WixPatchBaselineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchBaseline, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchBaselineSymbolFields index] => this.Fields[(int)index]; + + public int DiskId + { + get => (int)this.Fields[(int)WixPatchBaselineSymbolFields.DiskId]; + set => this.Set((int)WixPatchBaselineSymbolFields.DiskId, value); + } + + public TransformFlags ValidationFlags + { + get => (TransformFlags)this.Fields[(int)WixPatchBaselineSymbolFields.ValidationFlags].AsNumber(); + set => this.Set((int)WixPatchBaselineSymbolFields.ValidationFlags, (int)value); + } + + public IntermediateFieldPathValue BaselineFile + { + get => this.Fields[(int)WixPatchBaselineSymbolFields.BaselineFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.BaselineFile, value); + } + + public IntermediateFieldPathValue UpdateFile + { + get => this.Fields[(int)WixPatchBaselineSymbolFields.UpdateFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.UpdateFile, value); + } + + public IntermediateFieldPathValue TransformFile + { + get => this.Fields[(int)WixPatchBaselineSymbolFields.TransformFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.TransformFile, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs new file mode 100644 index 00000000..3ab34f1f --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchFamilyGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchFamilyGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup), IntermediateFieldType.String), + }, + typeof(WixPatchFamilyGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchFamilyGroupSymbolFields + { + WixPatchFamilyGroup, + } + + public class WixPatchFamilyGroupSymbol : IntermediateSymbol + { + public WixPatchFamilyGroupSymbol() : base(SymbolDefinitions.WixPatchFamilyGroup, null, null) + { + } + + public WixPatchFamilyGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchFamilyGroupSymbolFields index] => this.Fields[(int)index]; + + public string WixPatchFamilyGroup + { + get => (string)this.Fields[(int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup]; + set => this.Set((int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs new file mode 100644 index 00000000..c4f4324d --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchId, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ClientPatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), + }, + typeof(WixPatchIdSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchIdSymbolFields + { + ClientPatchId, + OptimizePatchSizeForLargeFiles, + ApiPatchingSymbolFlags, + } + + public class WixPatchIdSymbol : IntermediateSymbol + { + public WixPatchIdSymbol() : base(SymbolDefinitions.WixPatchId, null, null) + { + } + + public WixPatchIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchIdSymbolFields index] => this.Fields[(int)index]; + + public string ClientPatchId + { + get => (string)this.Fields[(int)WixPatchIdSymbolFields.ClientPatchId]; + set => this.Set((int)WixPatchIdSymbolFields.ClientPatchId, value); + } + + public bool? OptimizePatchSizeForLargeFiles + { + get => (bool?)this.Fields[(int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles]; + set => this.Set((int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles, value); + } + + public int? ApiPatchingSymbolFlags + { + get => (int?)this.Fields[(int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags]; + set => this.Set((int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs new file mode 100644 index 00000000..66257d84 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchRef = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchRef, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.PrimaryKeys), IntermediateFieldType.String), + }, + typeof(WixPatchRefSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchRefSymbolFields + { + Table, + PrimaryKeys, + } + + public class WixPatchRefSymbol : IntermediateSymbol + { + public WixPatchRefSymbol() : base(SymbolDefinitions.WixPatchRef, null, null) + { + } + + public WixPatchRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchRef, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchRefSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixPatchRefSymbolFields.Table]; + set => this.Set((int)WixPatchRefSymbolFields.Table, value); + } + + public string PrimaryKeys + { + get => (string)this.Fields[(int)WixPatchRefSymbolFields.PrimaryKeys]; + set => this.Set((int)WixPatchRefSymbolFields.PrimaryKeys, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs new file mode 100644 index 00000000..e8c01c26 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchTarget = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchTarget, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchTargetSymbolFields.ProductCode), IntermediateFieldType.String), + }, + typeof(WixPatchTargetSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchTargetSymbolFields + { + ProductCode, + } + + public class WixPatchTargetSymbol : IntermediateSymbol + { + public WixPatchTargetSymbol() : base(SymbolDefinitions.WixPatchTarget, null, null) + { + } + + public WixPatchTargetSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchTarget, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchTargetSymbolFields index] => this.Fields[(int)index]; + + public string ProductCode + { + get => (string)this.Fields[(int)WixPatchTargetSymbolFields.ProductCode]; + set => this.Set((int)WixPatchTargetSymbolFields.ProductCode, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs new file mode 100644 index 00000000..f8a17b64 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs @@ -0,0 +1,64 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixProductSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProductSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixProductSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixProductSearchSymbolFields + { + Guid, + Attributes, + } + + [Flags] + public enum WixProductSearchAttributes + { + Version = 0x1, + Language = 0x2, + State = 0x4, + Assignment = 0x8, + UpgradeCode = 0x10, + } + + public class WixProductSearchSymbol : IntermediateSymbol + { + public WixProductSearchSymbol() : base(SymbolDefinitions.WixProductSearch, null, null) + { + } + + public WixProductSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixProductSearchSymbolFields index] => this.Fields[(int)index]; + + public string Guid + { + get => (string)this.Fields[(int)WixProductSearchSymbolFields.Guid]; + set => this.Set((int)WixProductSearchSymbolFields.Guid, value); + } + + public WixProductSearchAttributes Attributes + { + get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixProductSearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixPropertySymbol.cs b/src/WixToolset.Data/Symbols/WixPropertySymbol.cs new file mode 100644 index 00000000..17cf59ce --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPropertySymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProperty, + new[] + { + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.PropertyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Admin), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Secure), IntermediateFieldType.Bool), + }, + typeof(WixPropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPropertySymbolFields + { + PropertyRef, + Admin, + Hidden, + Secure, + } + + public class WixPropertySymbol : IntermediateSymbol + { + public WixPropertySymbol() : base(SymbolDefinitions.WixProperty, null, null) + { + } + + public WixPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPropertySymbolFields index] => this.Fields[(int)index]; + + public string PropertyRef + { + get => (string)this.Fields[(int)WixPropertySymbolFields.PropertyRef]; + set => this.Set((int)WixPropertySymbolFields.PropertyRef, value); + } + + public bool Admin + { + get => (bool)this.Fields[(int)WixPropertySymbolFields.Admin]; + set => this.Set((int)WixPropertySymbolFields.Admin, value); + } + + public bool Hidden + { + get => (bool)this.Fields[(int)WixPropertySymbolFields.Hidden]; + set => this.Set((int)WixPropertySymbolFields.Hidden, value); + } + + public bool Secure + { + get => (bool)this.Fields[(int)WixPropertySymbolFields.Secure]; + set => this.Set((int)WixPropertySymbolFields.Secure, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs b/src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs new file mode 100644 index 00000000..dffa8410 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs @@ -0,0 +1,81 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixRegistrySearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixRegistrySearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixRegistrySearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixRegistrySearchSymbolFields + { + Root, + Key, + Value, + Attributes, + } + + [Flags] + public enum WixRegistrySearchAttributes + { + Raw = 0x01, + Compatible = 0x02, + ExpandEnvironmentVariables = 0x04, + WantValue = 0x08, + WantExists = 0x10, + Win64 = 0x20, + } + + public class WixRegistrySearchSymbol : IntermediateSymbol + { + public WixRegistrySearchSymbol() : base(SymbolDefinitions.WixRegistrySearch, null, null) + { + } + + public WixRegistrySearchSymbol(SourceLineNumber sourceLineNumber , Identifier id = null) : base(SymbolDefinitions.WixRegistrySearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixRegistrySearchSymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)WixRegistrySearchSymbolFields.Root].AsNumber(); + set => this.Set((int)WixRegistrySearchSymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Key]; + set => this.Set((int)WixRegistrySearchSymbolFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Value]; + set => this.Set((int)WixRegistrySearchSymbolFields.Value, value); + } + + public WixRegistrySearchAttributes Attributes + { + get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixRegistrySearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs b/src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs new file mode 100644 index 00000000..dc544e29 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixRelatedBundle = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixRelatedBundle, + new[] + { + new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.BundleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.Action), IntermediateFieldType.Number), + }, + typeof(WixRelatedBundleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixRelatedBundleSymbolFields + { + BundleId, + Action, + } + + public enum RelatedBundleActionType + { + Detect, + Upgrade, + Addon, + Patch + } + + public class WixRelatedBundleSymbol : IntermediateSymbol + { + public WixRelatedBundleSymbol() : base(SymbolDefinitions.WixRelatedBundle, null, null) + { + } + + public WixRelatedBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixRelatedBundle, sourceLineNumber, id) + { + } + + public IntermediateField this[WixRelatedBundleSymbolFields index] => this.Fields[(int)index]; + + public string BundleId + { + get => (string)this.Fields[(int)WixRelatedBundleSymbolFields.BundleId]; + set => this.Set((int)WixRelatedBundleSymbolFields.BundleId, value); + } + + public RelatedBundleActionType Action + { + get => (RelatedBundleActionType)this.Fields[(int)WixRelatedBundleSymbolFields.Action].AsNumber(); + set => this.Set((int)WixRelatedBundleSymbolFields.Action, (int)value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs b/src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs new file mode 100644 index 00000000..6b47833a --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSearchRelation = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSearchRelation, + new[] + { + new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.ParentSearchRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixSearchRelationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixSearchRelationSymbolFields + { + ParentSearchRef, + Attributes, + } + + public class WixSearchRelationSymbol : IntermediateSymbol + { + public WixSearchRelationSymbol() : base(SymbolDefinitions.WixSearchRelation, null, null) + { + } + + public WixSearchRelationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearchRelation, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSearchRelationSymbolFields index] => this.Fields[(int)index]; + + public string ParentSearchRef + { + get => (string)this.Fields[(int)WixSearchRelationSymbolFields.ParentSearchRef]; + set => this.Set((int)WixSearchRelationSymbolFields.ParentSearchRef, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixSearchRelationSymbolFields.Attributes]; + set => this.Set((int)WixSearchRelationSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixSearchSymbol.cs new file mode 100644 index 00000000..2d6a927c --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixSearchSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Variable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.BundleExtensionRef), IntermediateFieldType.String), + }, + typeof(WixSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixSearchSymbolFields + { + Variable, + Condition, + BundleExtensionRef, + } + + public class WixSearchSymbol : IntermediateSymbol + { + public WixSearchSymbol() : base(SymbolDefinitions.WixSearch, null, null) + { + } + + public WixSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSearchSymbolFields index] => this.Fields[(int)index]; + + public string Variable + { + get => (string)this.Fields[(int)WixSearchSymbolFields.Variable]; + set => this.Set((int)WixSearchSymbolFields.Variable, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixSearchSymbolFields.Condition]; + set => this.Set((int)WixSearchSymbolFields.Condition, value); + } + + public string BundleExtensionRef + { + get => (string)this.Fields[(int)WixSearchSymbolFields.BundleExtensionRef]; + set => this.Set((int)WixSearchSymbolFields.BundleExtensionRef, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs new file mode 100644 index 00000000..503c328b --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSetVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSetVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Type), IntermediateFieldType.String), + }, + typeof(WixSetVariableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixSetVariableSymbolFields + { + Value, + Type, + } + + public class WixSetVariableSymbol : IntermediateSymbol + { + public WixSetVariableSymbol() : base(SymbolDefinitions.WixSetVariable, null, null) + { + } + + public WixSetVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSetVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSetVariableSymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)WixSetVariableSymbolFields.Value]; + set => this.Set((int)WixSetVariableSymbolFields.Value, value); + } + + public string Type + { + get => (string)this.Fields[(int)WixSetVariableSymbolFields.Type]; + set => this.Set((int)WixSetVariableSymbolFields.Type, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs new file mode 100644 index 00000000..1091b715 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs @@ -0,0 +1,62 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSimpleReference = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSimpleReference, + new[] + { + new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.PrimaryKeys), IntermediateFieldType.String), + }, + typeof(WixSimpleReferenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + using System.Diagnostics; + + public enum WixSimpleReferenceSymbolFields + { + Table, + PrimaryKeys, + } + + [DebuggerDisplay("{SymbolicName}")] + public class WixSimpleReferenceSymbol : IntermediateSymbol + { + public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) + { + } + + public WixSimpleReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSimpleReference, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSimpleReferenceSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.Table]; + set => this.Set((int)WixSimpleReferenceSymbolFields.Table, value); + } + + public string PrimaryKeys + { + get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.PrimaryKeys]; + set => this.Set((int)WixSimpleReferenceSymbolFields.PrimaryKeys, value); + } + + /// + /// Gets the symbolic name. + /// + /// Symbolic name. + public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs b/src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs new file mode 100644 index 00000000..f99246f0 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs @@ -0,0 +1,54 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSuppressAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSuppressAction, + new[] + { + new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.SequenceTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.Action), IntermediateFieldType.String), + }, + typeof(WixSuppressActionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixSuppressActionSymbolFields + { + SequenceTable, + Action, + } + + public class WixSuppressActionSymbol : IntermediateSymbol + { + public WixSuppressActionSymbol() : base(SymbolDefinitions.WixSuppressAction, null, null) + { + } + + public WixSuppressActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressAction, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSuppressActionSymbolFields index] => this.Fields[(int)index]; + + public SequenceTable SequenceTable + { + get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionSymbolFields.SequenceTable]); + set => this.Set((int)WixSuppressActionSymbolFields.SequenceTable, value.ToString()); + } + + public string Action + { + get => (string)this.Fields[(int)WixSuppressActionSymbolFields.Action]; + set => this.Set((int)WixSuppressActionSymbolFields.Action, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs b/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs new file mode 100644 index 00000000..1bdffd5e --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSuppressModularization = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSuppressModularization, + new IntermediateFieldDefinition[] + { + }, + typeof(WixSuppressModularizationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixSuppressModularizationSymbolFields + { + } + + public class WixSuppressModularizationSymbol : IntermediateSymbol + { + public WixSuppressModularizationSymbol() : base(SymbolDefinitions.WixSuppressModularization, null, null) + { + } + + public WixSuppressModularizationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressModularization, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSuppressModularizationSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixUISymbol.cs b/src/WixToolset.Data/Symbols/WixUISymbol.cs new file mode 100644 index 00000000..f1254952 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixUISymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixUI = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixUI, + new IntermediateFieldDefinition[] + { + }, + typeof(WixUISymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixUISymbolFields + { + } + + public class WixUISymbol : IntermediateSymbol + { + public WixUISymbol() : base(SymbolDefinitions.WixUI, null, null) + { + } + + public WixUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUI, sourceLineNumber, id) + { + } + + public IntermediateField this[WixUISymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs b/src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs new file mode 100644 index 00000000..1320dfd5 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixUpdateRegistration = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixUpdateRegistration, + new[] + { + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Department), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.ProductFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Classification), IntermediateFieldType.String), + }, + typeof(WixUpdateRegistrationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixUpdateRegistrationSymbolFields + { + Manufacturer, + Department, + ProductFamily, + Name, + Classification, + } + + public class WixUpdateRegistrationSymbol : IntermediateSymbol + { + public WixUpdateRegistrationSymbol() : base(SymbolDefinitions.WixUpdateRegistration, null, null) + { + } + + public WixUpdateRegistrationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUpdateRegistration, sourceLineNumber, id) + { + } + + public IntermediateField this[WixUpdateRegistrationSymbolFields index] => this.Fields[(int)index]; + + public string Manufacturer + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Manufacturer]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Manufacturer, value); + } + + public string Department + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Department]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Department, value); + } + + public string ProductFamily + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.ProductFamily]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.ProductFamily, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Name]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Name, value); + } + + public string Classification + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Classification]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Classification, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixVariableSymbol.cs new file mode 100644 index 00000000..0a56dcbf --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixVariableSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Overridable), IntermediateFieldType.Bool), + }, + typeof(WixVariableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixVariableSymbolFields + { + Value, + Overridable, + } + + public class WixVariableSymbol : IntermediateSymbol + { + public WixVariableSymbol() : base(SymbolDefinitions.WixVariable, null, null) + { + } + + public WixVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixVariableSymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)WixVariableSymbolFields.Value]; + set => this.Set((int)WixVariableSymbolFields.Value, value); + } + + public bool Overridable + { + get => (bool)this.Fields[(int)WixVariableSymbolFields.Overridable]; + set => this.Set((int)WixVariableSymbolFields.Overridable, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/ActionTextTuple.cs b/src/WixToolset.Data/Tuples/ActionTextTuple.cs deleted file mode 100644 index 80662060..00000000 --- a/src/WixToolset.Data/Tuples/ActionTextTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ActionText = new IntermediateSymbolDefinition( - SymbolDefinitionType.ActionText, - new[] - { - new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Template), IntermediateFieldType.String), - }, - typeof(ActionTextSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ActionTextSymbolFields - { - Action, - Description, - Template, - } - - public class ActionTextSymbol : IntermediateSymbol - { - public ActionTextSymbol() : base(SymbolDefinitions.ActionText, null, null) - { - } - - public ActionTextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ActionText, sourceLineNumber, id) - { - } - - public IntermediateField this[ActionTextSymbolFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)ActionTextSymbolFields.Action]; - set => this.Set((int)ActionTextSymbolFields.Action, value); - } - - public string Description - { - get => (string)this.Fields[(int)ActionTextSymbolFields.Description]; - set => this.Set((int)ActionTextSymbolFields.Description, value); - } - - public string Template - { - get => (string)this.Fields[(int)ActionTextSymbolFields.Template]; - set => this.Set((int)ActionTextSymbolFields.Template, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AppIdTuple.cs b/src/WixToolset.Data/Tuples/AppIdTuple.cs deleted file mode 100644 index 3eafa26f..00000000 --- a/src/WixToolset.Data/Tuples/AppIdTuple.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition AppId = new IntermediateSymbolDefinition( - SymbolDefinitionType.AppId, - new[] - { - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.AppId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RemoteServerName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.LocalService), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ServiceParameters), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.DllSurrogate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ActivateAtStorage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RunAsInteractiveUser), IntermediateFieldType.Number), - }, - typeof(AppIdSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum AppIdSymbolFields - { - AppId, - RemoteServerName, - LocalService, - ServiceParameters, - DllSurrogate, - ActivateAtStorage, - RunAsInteractiveUser, - } - - public class AppIdSymbol : IntermediateSymbol - { - public AppIdSymbol() : base(SymbolDefinitions.AppId, null, null) - { - } - - public AppIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppId, sourceLineNumber, id) - { - } - - public IntermediateField this[AppIdSymbolFields index] => this.Fields[(int)index]; - - public string AppId - { - get => (string)this.Fields[(int)AppIdSymbolFields.AppId]; - set => this.Set((int)AppIdSymbolFields.AppId, value); - } - - public string RemoteServerName - { - get => (string)this.Fields[(int)AppIdSymbolFields.RemoteServerName]; - set => this.Set((int)AppIdSymbolFields.RemoteServerName, value); - } - - public string LocalService - { - get => (string)this.Fields[(int)AppIdSymbolFields.LocalService]; - set => this.Set((int)AppIdSymbolFields.LocalService, value); - } - - public string ServiceParameters - { - get => (string)this.Fields[(int)AppIdSymbolFields.ServiceParameters]; - set => this.Set((int)AppIdSymbolFields.ServiceParameters, value); - } - - public string DllSurrogate - { - get => (string)this.Fields[(int)AppIdSymbolFields.DllSurrogate]; - set => this.Set((int)AppIdSymbolFields.DllSurrogate, value); - } - - public bool? ActivateAtStorage - { - get => (bool?)this.Fields[(int)AppIdSymbolFields.ActivateAtStorage]; - set => this.Set((int)AppIdSymbolFields.ActivateAtStorage, value); - } - - public bool? RunAsInteractiveUser - { - get => (bool?)this.Fields[(int)AppIdSymbolFields.RunAsInteractiveUser]; - set => this.Set((int)AppIdSymbolFields.RunAsInteractiveUser, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AppSearchTuple.cs b/src/WixToolset.Data/Tuples/AppSearchTuple.cs deleted file mode 100644 index 2bd3d6ba..00000000 --- a/src/WixToolset.Data/Tuples/AppSearchTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition AppSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.AppSearch, - new[] - { - new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.PropertyRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.SignatureRef), IntermediateFieldType.String), - }, - typeof(AppSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum AppSearchSymbolFields - { - PropertyRef, - SignatureRef, - } - - public class AppSearchSymbol : IntermediateSymbol - { - public AppSearchSymbol() : base(SymbolDefinitions.AppSearch, null, null) - { - } - - public AppSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[AppSearchSymbolFields index] => this.Fields[(int)index]; - - public string PropertyRef - { - get => (string)this.Fields[(int)AppSearchSymbolFields.PropertyRef]; - set => this.Set((int)AppSearchSymbolFields.PropertyRef, value); - } - - public string SignatureRef - { - get => (string)this.Fields[(int)AppSearchSymbolFields.SignatureRef]; - set => this.Set((int)AppSearchSymbolFields.SignatureRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/AssemblyTuple.cs b/src/WixToolset.Data/Tuples/AssemblyTuple.cs deleted file mode 100644 index 192ca4eb..00000000 --- a/src/WixToolset.Data/Tuples/AssemblyTuple.cs +++ /dev/null @@ -1,96 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Assembly = new IntermediateSymbolDefinition( - SymbolDefinitionType.Assembly, - new[] - { - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ManifestFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ApplicationFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ProcessorArchitecture), IntermediateFieldType.String), - }, - typeof(AssemblySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum AssemblySymbolFields - { - ComponentRef, - FeatureRef, - ManifestFileRef, - ApplicationFileRef, - Type, - ProcessorArchitecture, - } - - public enum AssemblyType - { - /// File is not an assembly. - NotAnAssembly, - - /// File is a Common Language Runtime Assembly. - DotNetAssembly, - - /// File is Win32 SxS assembly. - Win32Assembly, - } - - public class AssemblySymbol : IntermediateSymbol - { - public AssemblySymbol() : base(SymbolDefinitions.Assembly, null, null) - { - } - - public AssemblySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Assembly, sourceLineNumber, id) - { - } - - public IntermediateField this[AssemblySymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.ComponentRef]; - set => this.Set((int)AssemblySymbolFields.ComponentRef, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.FeatureRef]; - set => this.Set((int)AssemblySymbolFields.FeatureRef, value); - } - - public string ManifestFileRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.ManifestFileRef]; - set => this.Set((int)AssemblySymbolFields.ManifestFileRef, value); - } - - public string ApplicationFileRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.ApplicationFileRef]; - set => this.Set((int)AssemblySymbolFields.ApplicationFileRef, value); - } - - public AssemblyType Type - { - get => (AssemblyType)this.Fields[(int)AssemblySymbolFields.Type].AsNumber(); - set => this.Set((int)AssemblySymbolFields.Type, (int)value); - } - - public string ProcessorArchitecture - { - get => (string)this.Fields[(int)AssemblySymbolFields.ProcessorArchitecture]; - set => this.Set((int)AssemblySymbolFields.ProcessorArchitecture, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/BBControlTuple.cs b/src/WixToolset.Data/Tuples/BBControlTuple.cs deleted file mode 100644 index 277d1d85..00000000 --- a/src/WixToolset.Data/Tuples/BBControlTuple.cs +++ /dev/null @@ -1,180 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition BBControl = new IntermediateSymbolDefinition( - SymbolDefinitionType.BBControl, - new[] - { - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BillboardRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BBControl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Enabled), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Indirect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Integer), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Sunken), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.SourceFile), IntermediateFieldType.Path), - }, - typeof(BBControlSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum BBControlSymbolFields - { - BillboardRef, - BBControl, - Type, - X, - Y, - Width, - Height, - Attributes, - Enabled, - Indirect, - Integer, - LeftScroll, - RightAligned, - RightToLeft, - Sunken, - Visible, - Text, - SourceFile - } - - public class BBControlSymbol : IntermediateSymbol - { - public BBControlSymbol() : base(SymbolDefinitions.BBControl, null, null) - { - } - - public BBControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.BBControl, sourceLineNumber, id) - { - } - - public IntermediateField this[BBControlSymbolFields index] => this.Fields[(int)index]; - - public string BillboardRef - { - get => (string)this.Fields[(int)BBControlSymbolFields.BillboardRef]; - set => this.Set((int)BBControlSymbolFields.BillboardRef, value); - } - - public string BBControl - { - get => (string)this.Fields[(int)BBControlSymbolFields.BBControl]; - set => this.Set((int)BBControlSymbolFields.BBControl, value); - } - - public string Type - { - get => (string)this.Fields[(int)BBControlSymbolFields.Type]; - set => this.Set((int)BBControlSymbolFields.Type, value); - } - - public int X - { - get => (int)this.Fields[(int)BBControlSymbolFields.X]; - set => this.Set((int)BBControlSymbolFields.X, value); - } - - public int Y - { - get => (int)this.Fields[(int)BBControlSymbolFields.Y]; - set => this.Set((int)BBControlSymbolFields.Y, value); - } - - public int Width - { - get => (int)this.Fields[(int)BBControlSymbolFields.Width].AsNumber(); - set => this.Set((int)BBControlSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)BBControlSymbolFields.Height]; - set => this.Set((int)BBControlSymbolFields.Height, value); - } - - public int Attributes - { - get => this.Fields[(int)BBControlSymbolFields.Attributes].AsNumber(); - set => this.Set((int)BBControlSymbolFields.Attributes, value); - } - - public bool Enabled - { - get => this.Fields[(int)BBControlSymbolFields.Enabled].AsBool(); - set => this.Set((int)BBControlSymbolFields.Enabled, value); - } - - public bool Indirect - { - get => this.Fields[(int)BBControlSymbolFields.Indirect].AsBool(); - set => this.Set((int)BBControlSymbolFields.Indirect, value); - } - - public bool Integer - { - get => this.Fields[(int)BBControlSymbolFields.Integer].AsBool(); - set => this.Set((int)BBControlSymbolFields.Integer, value); - } - - public bool LeftScroll - { - get => this.Fields[(int)BBControlSymbolFields.LeftScroll].AsBool(); - set => this.Set((int)BBControlSymbolFields.LeftScroll, value); - } - - public bool RightAligned - { - get => this.Fields[(int)BBControlSymbolFields.RightAligned].AsBool(); - set => this.Set((int)BBControlSymbolFields.RightAligned, value); - } - - public bool RightToLeft - { - get => this.Fields[(int)BBControlSymbolFields.RightToLeft].AsBool(); - set => this.Set((int)BBControlSymbolFields.RightToLeft, value); - } - - public bool Sunken - { - get => this.Fields[(int)BBControlSymbolFields.Sunken].AsBool(); - set => this.Set((int)BBControlSymbolFields.Sunken, value); - } - - public bool Visible - { - get => this.Fields[(int)BBControlSymbolFields.Visible].AsBool(); - set => this.Set((int)BBControlSymbolFields.Visible, value); - } - - public string Text - { - get => (string)this.Fields[(int)BBControlSymbolFields.Text]; - set => this.Set((int)BBControlSymbolFields.Text, value); - } - - public IntermediateFieldPathValue SourceFile - { - get => this.Fields[(int)BBControlSymbolFields.SourceFile].AsPath(); - set => this.Set((int)BBControlSymbolFields.SourceFile, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs deleted file mode 100644 index 77f60bcb..00000000 --- a/src/WixToolset.Data/Tuples/BillboardTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Billboard = new IntermediateSymbolDefinition( - SymbolDefinitionType.Billboard, - new[] - { - new IntermediateFieldDefinition(nameof(BillboardSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Ordering), IntermediateFieldType.Number), - }, - typeof(BillboardSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum BillboardSymbolFields - { - FeatureRef, - Action, - Ordering, - } - - public class BillboardSymbol : IntermediateSymbol - { - public BillboardSymbol() : base(SymbolDefinitions.Billboard, null, null) - { - } - - public BillboardSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Billboard, sourceLineNumber, id) - { - } - - public IntermediateField this[BillboardSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)BillboardSymbolFields.FeatureRef]; - set => this.Set((int)BillboardSymbolFields.FeatureRef, value); - } - - public string Action - { - get => (string)this.Fields[(int)BillboardSymbolFields.Action]; - set => this.Set((int)BillboardSymbolFields.Action, value); - } - - public int? Ordering - { - get => (int?)this.Fields[(int)BillboardSymbolFields.Ordering]; - set => this.Set((int)BillboardSymbolFields.Ordering, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/BinaryTuple.cs b/src/WixToolset.Data/Tuples/BinaryTuple.cs deleted file mode 100644 index ec26b01a..00000000 --- a/src/WixToolset.Data/Tuples/BinaryTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Binary = new IntermediateSymbolDefinition( - SymbolDefinitionType.Binary, - new[] - { - new IntermediateFieldDefinition(nameof(BinarySymbolFields.Data), IntermediateFieldType.Path), - }, - typeof(BinarySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum BinarySymbolFields - { - Data, - } - - public class BinarySymbol : IntermediateSymbol - { - public BinarySymbol() : base(SymbolDefinitions.Binary, null, null) - { - } - - public BinarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Binary, sourceLineNumber, id) - { - } - - public IntermediateField this[BinarySymbolFields index] => this.Fields[(int)index]; - - public IntermediateFieldPathValue Data - { - get => this.Fields[(int)BinarySymbolFields.Data].AsPath(); - set => this.Set((int)BinarySymbolFields.Data, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs deleted file mode 100644 index 6f6227fd..00000000 --- a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CCPSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.CCPSearch, - new IntermediateFieldDefinition[] - { - }, - typeof(CCPSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CCPSearchSymbolFields - { - } - - public class CCPSearchSymbol : IntermediateSymbol - { - public CCPSearchSymbol() : base(SymbolDefinitions.CCPSearch, null, null) - { - } - - public CCPSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CCPSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[CCPSearchSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs deleted file mode 100644 index cd6355c4..00000000 --- a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CheckBox = new IntermediateSymbolDefinition( - SymbolDefinitionType.CheckBox, - new[] - { - new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(CheckBoxSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CheckBoxSymbolFields - { - Property, - Value, - } - - public class CheckBoxSymbol : IntermediateSymbol - { - public CheckBoxSymbol() : base(SymbolDefinitions.CheckBox, null, null) - { - } - - public CheckBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CheckBox, sourceLineNumber, id) - { - } - - public IntermediateField this[CheckBoxSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)CheckBoxSymbolFields.Property]; - set => this.Set((int)CheckBoxSymbolFields.Property, value); - } - - public string Value - { - get => (string)this.Fields[(int)CheckBoxSymbolFields.Value]; - set => this.Set((int)CheckBoxSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ClassTuple.cs b/src/WixToolset.Data/Tuples/ClassTuple.cs deleted file mode 100644 index 833867b1..00000000 --- a/src/WixToolset.Data/Tuples/ClassTuple.cs +++ /dev/null @@ -1,140 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Class = new IntermediateSymbolDefinition( - SymbolDefinitionType.Class, - new[] - { - new IntermediateFieldDefinition(nameof(ClassSymbolFields.CLSID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.Context), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefaultProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.AppIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.FileTypeMask), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefInprocHandler), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.RelativePath), IntermediateFieldType.Bool), - }, - typeof(ClassSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ClassSymbolFields - { - CLSID, - Context, - ComponentRef, - DefaultProgIdRef, - Description, - AppIdRef, - FileTypeMask, - IconRef, - IconIndex, - DefInprocHandler, - Argument, - FeatureRef, - RelativePath, - } - - public class ClassSymbol : IntermediateSymbol - { - public ClassSymbol() : base(SymbolDefinitions.Class, null, null) - { - } - - public ClassSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Class, sourceLineNumber, id) - { - } - - public IntermediateField this[ClassSymbolFields index] => this.Fields[(int)index]; - - public string CLSID - { - get => (string)this.Fields[(int)ClassSymbolFields.CLSID]; - set => this.Set((int)ClassSymbolFields.CLSID, value); - } - - public string Context - { - get => (string)this.Fields[(int)ClassSymbolFields.Context]; - set => this.Set((int)ClassSymbolFields.Context, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ClassSymbolFields.ComponentRef]; - set => this.Set((int)ClassSymbolFields.ComponentRef, value); - } - - public string DefaultProgIdRef - { - get => (string)this.Fields[(int)ClassSymbolFields.DefaultProgIdRef]; - set => this.Set((int)ClassSymbolFields.DefaultProgIdRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ClassSymbolFields.Description]; - set => this.Set((int)ClassSymbolFields.Description, value); - } - - public string AppIdRef - { - get => (string)this.Fields[(int)ClassSymbolFields.AppIdRef]; - set => this.Set((int)ClassSymbolFields.AppIdRef, value); - } - - public string FileTypeMask - { - get => (string)this.Fields[(int)ClassSymbolFields.FileTypeMask]; - set => this.Set((int)ClassSymbolFields.FileTypeMask, value); - } - - public string IconRef - { - get => (string)this.Fields[(int)ClassSymbolFields.IconRef]; - set => this.Set((int)ClassSymbolFields.IconRef, value); - } - - public int? IconIndex - { - get => (int?)this.Fields[(int)ClassSymbolFields.IconIndex]; - set => this.Set((int)ClassSymbolFields.IconIndex, value); - } - - public string DefInprocHandler - { - get => (string)this.Fields[(int)ClassSymbolFields.DefInprocHandler]; - set => this.Set((int)ClassSymbolFields.DefInprocHandler, value); - } - - public string Argument - { - get => (string)this.Fields[(int)ClassSymbolFields.Argument]; - set => this.Set((int)ClassSymbolFields.Argument, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)ClassSymbolFields.FeatureRef]; - set => this.Set((int)ClassSymbolFields.FeatureRef, value); - } - - public bool RelativePath - { - get => this.Fields[(int)ClassSymbolFields.RelativePath].AsBool(); - set => this.Set((int)ClassSymbolFields.RelativePath, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs deleted file mode 100644 index c7d8d986..00000000 --- a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ComboBox = new IntermediateSymbolDefinition( - SymbolDefinitionType.ComboBox, - new[] - { - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Text), IntermediateFieldType.String), - }, - typeof(ComboBoxSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ComboBoxSymbolFields - { - Property, - Order, - Value, - Text, - } - - public class ComboBoxSymbol : IntermediateSymbol - { - public ComboBoxSymbol() : base(SymbolDefinitions.ComboBox, null, null) - { - } - - public ComboBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ComboBox, sourceLineNumber, id) - { - } - - public IntermediateField this[ComboBoxSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)ComboBoxSymbolFields.Property]; - set => this.Set((int)ComboBoxSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)ComboBoxSymbolFields.Order]; - set => this.Set((int)ComboBoxSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)ComboBoxSymbolFields.Value]; - set => this.Set((int)ComboBoxSymbolFields.Value, value); - } - - public string Text - { - get => (string)this.Fields[(int)ComboBoxSymbolFields.Text]; - set => this.Set((int)ComboBoxSymbolFields.Text, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs deleted file mode 100644 index 9004859c..00000000 --- a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CompLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.CompLocator, - new[] - { - new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.Type), IntermediateFieldType.Number), - }, - typeof(CompLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CompLocatorSymbolFields - { - SignatureRef, - ComponentId, - Type, - } - - public class CompLocatorSymbol : IntermediateSymbol - { - public CompLocatorSymbol() : base(SymbolDefinitions.CompLocator, null, null) - { - } - - public CompLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CompLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[CompLocatorSymbolFields index] => this.Fields[(int)index]; - - public string SignatureRef - { - get => (string)this.Fields[(int)CompLocatorSymbolFields.SignatureRef]; - set => this.Set((int)CompLocatorSymbolFields.SignatureRef, value); - } - - public string ComponentId - { - get => (string)this.Fields[(int)CompLocatorSymbolFields.ComponentId]; - set => this.Set((int)CompLocatorSymbolFields.ComponentId, value); - } - - public LocatorType Type - { - get => (LocatorType)this.Fields[(int)CompLocatorSymbolFields.Type].AsNumber(); - set => this.Set((int)CompLocatorSymbolFields.Type, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComplusTuple.cs b/src/WixToolset.Data/Tuples/ComplusTuple.cs deleted file mode 100644 index fa16af86..00000000 --- a/src/WixToolset.Data/Tuples/ComplusTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Complus = new IntermediateSymbolDefinition( - SymbolDefinitionType.Complus, - new[] - { - new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ExpType), IntermediateFieldType.Number), - }, - typeof(ComplusSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ComplusSymbolFields - { - ComponentRef, - ExpType, - } - - public class ComplusSymbol : IntermediateSymbol - { - public ComplusSymbol() : base(SymbolDefinitions.Complus, null, null) - { - } - - public ComplusSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Complus, sourceLineNumber, id) - { - } - - public IntermediateField this[ComplusSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ComplusSymbolFields.ComponentRef]; - set => this.Set((int)ComplusSymbolFields.ComponentRef, value); - } - - public int? ExpType - { - get => (int?)this.Fields[(int)ComplusSymbolFields.ExpType]; - set => this.Set((int)ComplusSymbolFields.ExpType, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs deleted file mode 100644 index 13d398b1..00000000 --- a/src/WixToolset.Data/Tuples/ComponentTuple.cs +++ /dev/null @@ -1,155 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Component = new IntermediateSymbolDefinition( - SymbolDefinitionType.Component, - new[] - { - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Location), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DisableRegistryReflection), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.NeverOverwrite), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Permanent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.SharedDllRefCount), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Shared), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Transitive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.UninstallWhenSuperseded), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Win64), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPathType), IntermediateFieldType.Number), - }, - typeof(ComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ComponentSymbolFields - { - ComponentId, - DirectoryRef, - Location, - DisableRegistryReflection, - NeverOverwrite, - Permanent, - SharedDllRefCount, - Shared, - Transitive, - UninstallWhenSuperseded, - Win64, - Condition, - KeyPath, - KeyPathType, - } - - public enum ComponentLocation - { - LocalOnly, - SourceOnly, - Either - } - - public class ComponentSymbol : IntermediateSymbol - { - public ComponentSymbol() : base(SymbolDefinitions.Component, null, null) - { - } - - public ComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Component, sourceLineNumber, id) - { - } - - public IntermediateField this[ComponentSymbolFields index] => this.Fields[(int)index]; - - public string ComponentId - { - get => (string)this.Fields[(int)ComponentSymbolFields.ComponentId]; - set => this.Set((int)ComponentSymbolFields.ComponentId, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)ComponentSymbolFields.DirectoryRef]; - set => this.Set((int)ComponentSymbolFields.DirectoryRef, value); - } - - public ComponentLocation Location - { - get => (ComponentLocation)this.Fields[(int)ComponentSymbolFields.Location].AsNumber(); - set => this.Set((int)ComponentSymbolFields.Location, (int)value); - } - - public bool DisableRegistryReflection - { - get => this.Fields[(int)ComponentSymbolFields.DisableRegistryReflection].AsBool(); - set => this.Set((int)ComponentSymbolFields.DisableRegistryReflection, value); - } - - public bool NeverOverwrite - { - get => this.Fields[(int)ComponentSymbolFields.NeverOverwrite].AsBool(); - set => this.Set((int)ComponentSymbolFields.NeverOverwrite, value); - } - - public bool Permanent - { - get => this.Fields[(int)ComponentSymbolFields.Permanent].AsBool(); - set => this.Set((int)ComponentSymbolFields.Permanent, value); - } - - public bool SharedDllRefCount - { - get => this.Fields[(int)ComponentSymbolFields.SharedDllRefCount].AsBool(); - set => this.Set((int)ComponentSymbolFields.SharedDllRefCount, value); - } - - public bool Shared - { - get => this.Fields[(int)ComponentSymbolFields.Shared].AsBool(); - set => this.Set((int)ComponentSymbolFields.Shared, value); - } - - public bool Transitive - { - get => this.Fields[(int)ComponentSymbolFields.Transitive].AsBool(); - set => this.Set((int)ComponentSymbolFields.Transitive, value); - } - - public bool UninstallWhenSuperseded - { - get => this.Fields[(int)ComponentSymbolFields.UninstallWhenSuperseded].AsBool(); - set => this.Set((int)ComponentSymbolFields.UninstallWhenSuperseded, value); - } - - public bool Win64 - { - get => this.Fields[(int)ComponentSymbolFields.Win64].AsBool(); - set => this.Set((int)ComponentSymbolFields.Win64, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ComponentSymbolFields.Condition]; - set => this.Set((int)ComponentSymbolFields.Condition, value); - } - - public string KeyPath - { - get => (string)this.Fields[(int)ComponentSymbolFields.KeyPath]; - set => this.Set((int)ComponentSymbolFields.KeyPath, value); - } - - public ComponentKeyPathType KeyPathType - { - get => (ComponentKeyPathType)this.Fields[(int)ComponentSymbolFields.KeyPathType].AsNumber(); - set => this.Set((int)ComponentSymbolFields.KeyPathType, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ConditionTuple.cs b/src/WixToolset.Data/Tuples/ConditionTuple.cs deleted file mode 100644 index 3a94ebb1..00000000 --- a/src/WixToolset.Data/Tuples/ConditionTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Condition = new IntermediateSymbolDefinition( - SymbolDefinitionType.Condition, - new[] - { - new IntermediateFieldDefinition(nameof(ConditionSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(ConditionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ConditionSymbolFields - { - FeatureRef, - Level, - Condition, - } - - public class ConditionSymbol : IntermediateSymbol - { - public ConditionSymbol() : base(SymbolDefinitions.Condition, null, null) - { - } - - public ConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Condition, sourceLineNumber, id) - { - } - - public IntermediateField this[ConditionSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)ConditionSymbolFields.FeatureRef]; - set => this.Set((int)ConditionSymbolFields.FeatureRef, value); - } - - public int Level - { - get => (int)this.Fields[(int)ConditionSymbolFields.Level]; - set => this.Set((int)ConditionSymbolFields.Level, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ConditionSymbolFields.Condition]; - set => this.Set((int)ConditionSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs deleted file mode 100644 index cc5f2d74..00000000 --- a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ControlCondition = new IntermediateSymbolDefinition( - SymbolDefinitionType.ControlCondition, - new[] - { - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(ControlConditionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ControlConditionSymbolFields - { - DialogRef, - ControlRef, - Action, - Condition, - } - - public class ControlConditionSymbol : IntermediateSymbol - { - public ControlConditionSymbol() : base(SymbolDefinitions.ControlCondition, null, null) - { - } - - public ControlConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlCondition, sourceLineNumber, id) - { - } - - public IntermediateField this[ControlConditionSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.DialogRef]; - set => this.Set((int)ControlConditionSymbolFields.DialogRef, value); - } - - public string ControlRef - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.ControlRef]; - set => this.Set((int)ControlConditionSymbolFields.ControlRef, value); - } - - public string Action - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.Action]; - set => this.Set((int)ControlConditionSymbolFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.Condition]; - set => this.Set((int)ControlConditionSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlEventTuple.cs b/src/WixToolset.Data/Tuples/ControlEventTuple.cs deleted file mode 100644 index 3cf6da53..00000000 --- a/src/WixToolset.Data/Tuples/ControlEventTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ControlEvent = new IntermediateSymbolDefinition( - SymbolDefinitionType.ControlEvent, - new[] - { - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Event), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Ordering), IntermediateFieldType.Number), - }, - typeof(ControlEventSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ControlEventSymbolFields - { - DialogRef, - ControlRef, - Event, - Argument, - Condition, - Ordering, - } - - public class ControlEventSymbol : IntermediateSymbol - { - public ControlEventSymbol() : base(SymbolDefinitions.ControlEvent, null, null) - { - } - - public ControlEventSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlEvent, sourceLineNumber, id) - { - } - - public IntermediateField this[ControlEventSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)ControlEventSymbolFields.DialogRef]; - set => this.Set((int)ControlEventSymbolFields.DialogRef, value); - } - - public string ControlRef - { - get => (string)this.Fields[(int)ControlEventSymbolFields.ControlRef]; - set => this.Set((int)ControlEventSymbolFields.ControlRef, value); - } - - public string Event - { - get => (string)this.Fields[(int)ControlEventSymbolFields.Event]; - set => this.Set((int)ControlEventSymbolFields.Event, value); - } - - public string Argument - { - get => (string)this.Fields[(int)ControlEventSymbolFields.Argument]; - set => this.Set((int)ControlEventSymbolFields.Argument, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ControlEventSymbolFields.Condition]; - set => this.Set((int)ControlEventSymbolFields.Condition, value); - } - - public int? Ordering - { - get => (int?)this.Fields[(int)ControlEventSymbolFields.Ordering]; - set => this.Set((int)ControlEventSymbolFields.Ordering, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs deleted file mode 100644 index 732566d5..00000000 --- a/src/WixToolset.Data/Tuples/ControlTuple.cs +++ /dev/null @@ -1,303 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Control = new IntermediateSymbolDefinition( - SymbolDefinitionType.Control, - new[] - { - new IntermediateFieldDefinition(nameof(ControlSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Control), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Enabled), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Indirect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Integer), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Sunken), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.NextControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Help), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.SourceFile), IntermediateFieldType.Path), - }, - typeof(ControlSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ControlSymbolFields - { - DialogRef, - Control, - Type, - X, - Y, - Width, - Height, - Attributes, - Enabled, - Indirect, - Integer, - LeftScroll, - RightAligned, - RightToLeft, - Sunken, - Visible, - Property, - Text, - NextControlRef, - Help, - TrackDiskSpace, - SourceFile, - } - - public class ControlSymbol : IntermediateSymbol - { - public ControlSymbol() : base(SymbolDefinitions.Control, null, null) - { - } - - public ControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Control, sourceLineNumber, id) - { - } - - public IntermediateField this[ControlSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)ControlSymbolFields.DialogRef]; - set => this.Set((int)ControlSymbolFields.DialogRef, value); - } - - public string Control - { - get => (string)this.Fields[(int)ControlSymbolFields.Control]; - set => this.Set((int)ControlSymbolFields.Control, value); - } - - public string Type - { - get => (string)this.Fields[(int)ControlSymbolFields.Type]; - set => this.Set((int)ControlSymbolFields.Type, value); - } - - public int X - { - get => (int)this.Fields[(int)ControlSymbolFields.X]; - set => this.Set((int)ControlSymbolFields.X, value); - } - - public int Y - { - get => (int)this.Fields[(int)ControlSymbolFields.Y]; - set => this.Set((int)ControlSymbolFields.Y, value); - } - - public int Width - { - get => (int)this.Fields[(int)ControlSymbolFields.Width]; - set => this.Set((int)ControlSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)ControlSymbolFields.Height]; - set => this.Set((int)ControlSymbolFields.Height, value); - } - - public int? Attributes - { - get => (int?)this.Fields[(int)ControlSymbolFields.Attributes]; - set => this.Set((int)ControlSymbolFields.Attributes, value); - } - - public bool Enabled - { - get => this.Fields[(int)ControlSymbolFields.Enabled].AsBool(); - set => this.Set((int)ControlSymbolFields.Enabled, value); - } - - public bool Indirect - { - get => this.Fields[(int)ControlSymbolFields.Indirect].AsBool(); - set => this.Set((int)ControlSymbolFields.Indirect, value); - } - - public bool Integer - { - get => this.Fields[(int)ControlSymbolFields.Integer].AsBool(); - set => this.Set((int)ControlSymbolFields.Integer, value); - } - /* - /// PictureButton control - public bool Bitmap - { - get => this.Fields[(int)ControlSymbolFields.Bitmap].AsBool(); - set => this.Set((int)ControlSymbolFields.Bitmap, value); - } - - /// RadioButton control - public bool Border - { - get => this.Fields[(int)ControlSymbolFields.Border].AsBool(); - set => this.Set((int)ControlSymbolFields.Border, value); - } - - /// ListBox and ComboBox control - public bool ComboList - { - get => this.Fields[(int)ControlSymbolFields.ComboList].AsBool(); - set => this.Set((int)ControlSymbolFields.ComboList, value); - } - - /// PushButton control - public bool ElevationShield - { - get => this.Fields[(int)ControlSymbolFields.ElevationShield].AsBool(); - set => this.Set((int)ControlSymbolFields.ElevationShield, value); - } - - /// PictureButton control - public bool FixedSize - { - get => this.Fields[(int)ControlSymbolFields.FixedSize].AsBool(); - set => this.Set((int)ControlSymbolFields.FixedSize, value); - } - - /// PictureButton control - public bool Icon - { - get => this.Fields[(int)ControlSymbolFields.Icon].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon, value); - } - - /// PictureButton control - public bool Icon16 - { - get => this.Fields[(int)ControlSymbolFields.Icon16].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon16, value); - } - - /// PictureButton control - public bool Icon32 - { - get => this.Fields[(int)ControlSymbolFields.Icon32].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon32, value); - } - - /// PictureButton control - public bool Icon48 - { - get => this.Fields[(int)ControlSymbolFields.Icon48].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon48, value); - } - */ - public bool LeftScroll - { - get => this.Fields[(int)ControlSymbolFields.LeftScroll].AsBool(); - set => this.Set((int)ControlSymbolFields.LeftScroll, value); - } - /* - /// PictureButton control - public bool PushLike - { - get => this.Fields[(int)ControlSymbolFields.PushLike].AsBool(); - set => this.Set((int)ControlSymbolFields.PushLike, value); - } - - /// Edit control - public bool Mulitline - { - get => this.Fields[(int)ControlSymbolFields.Mulitline].AsBool(); - set => this.Set((int)ControlSymbolFields.Mulitline, value); - } - */ - public bool RightAligned - { - get => this.Fields[(int)ControlSymbolFields.RightAligned].AsBool(); - set => this.Set((int)ControlSymbolFields.RightAligned, value); - } - - public bool RightToLeft - { - get => this.Fields[(int)ControlSymbolFields.RightToLeft].AsBool(); - set => this.Set((int)ControlSymbolFields.RightToLeft, value); - } - /* - /// VolumeCostList control - public bool ShowRollbackCost - { - get => this.Fields[(int)ControlSymbolFields.ShowRollbackCost].AsBool(); - set => this.Set((int)ControlSymbolFields.ShowRollbackCost, value); - } - - /// ListBox and ComboBox control - public bool Sorted - { - get => this.Fields[(int)ControlSymbolFields.Sorted].AsBool(); - set => this.Set((int)ControlSymbolFields.Sorted, value); - } - */ - public bool Sunken - { - get => this.Fields[(int)ControlSymbolFields.Sunken].AsBool(); - set => this.Set((int)ControlSymbolFields.Sunken, value); - } - - public bool Visible - { - get => this.Fields[(int)ControlSymbolFields.Visible].AsBool(); - set => this.Set((int)ControlSymbolFields.Visible, value); - } - - public string Property - { - get => (string)this.Fields[(int)ControlSymbolFields.Property]; - set => this.Set((int)ControlSymbolFields.Property, value); - } - - public string Text - { - get => (string)this.Fields[(int)ControlSymbolFields.Text]; - set => this.Set((int)ControlSymbolFields.Text, value); - } - - public string NextControlRef - { - get => (string)this.Fields[(int)ControlSymbolFields.NextControlRef]; - set => this.Set((int)ControlSymbolFields.NextControlRef, value); - } - - public string Help - { - get => (string)this.Fields[(int)ControlSymbolFields.Help]; - set => this.Set((int)ControlSymbolFields.Help, value); - } - - public bool TrackDiskSpace - { - get => this.Fields[(int)ControlSymbolFields.TrackDiskSpace].AsBool(); - set => this.Set((int)ControlSymbolFields.TrackDiskSpace, value); - } - - public IntermediateFieldPathValue SourceFile - { - get => this.Fields[(int)ControlSymbolFields.SourceFile].AsPath(); - set => this.Set((int)ControlSymbolFields.SourceFile, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs deleted file mode 100644 index 2b282266..00000000 --- a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CreateFolder = new IntermediateSymbolDefinition( - SymbolDefinitionType.CreateFolder, - new[] - { - new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(CreateFolderSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CreateFolderSymbolFields - { - DirectoryRef, - ComponentRef, - } - - public class CreateFolderSymbol : IntermediateSymbol - { - public CreateFolderSymbol() : base(SymbolDefinitions.CreateFolder, null, null) - { - } - - public CreateFolderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CreateFolder, sourceLineNumber, id) - { - } - - public IntermediateField this[CreateFolderSymbolFields index] => this.Fields[(int)index]; - - public string DirectoryRef - { - get => (string)this.Fields[(int)CreateFolderSymbolFields.DirectoryRef]; - set => this.Set((int)CreateFolderSymbolFields.DirectoryRef, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)CreateFolderSymbolFields.ComponentRef]; - set => this.Set((int)CreateFolderSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/CustomActionTuple.cs b/src/WixToolset.Data/Tuples/CustomActionTuple.cs deleted file mode 100644 index 1180dab4..00000000 --- a/src/WixToolset.Data/Tuples/CustomActionTuple.cs +++ /dev/null @@ -1,168 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CustomAction = new IntermediateSymbolDefinition( - SymbolDefinitionType.CustomAction, - new[] - { - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ExecutionType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.SourceType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TargetType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Async), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.IgnoreResult), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Impersonate), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.PatchUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TSAware), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Win64), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ScriptFile), IntermediateFieldType.Path), - }, - typeof(CustomActionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CustomActionSymbolFields - { - ExecutionType, - Source, - SourceType, - Target, - TargetType, - Async, - Hidden, - IgnoreResult, - Impersonate, - PatchUninstall, - TSAware, - Win64, - ScriptFile - } - - public enum CustomActionExecutionType - { - Immediate, - FirstSequence = 256, - OncePerProcess = 512, - ClientRepeat = 768, - Deferred = 1024, - Rollback = 1280, - Commit = 1536, - } - - public enum CustomActionSourceType - { - Binary, - File = 0x10, - Directory = 0x20, - Property = 0x30, - } - - public enum CustomActionTargetType - { - Dll = 1, - Exe = 2, - TextData = 3, - JScript = 5, - VBScript = 6, - } - - public class CustomActionSymbol : IntermediateSymbol - { - public CustomActionSymbol() : base(SymbolDefinitions.CustomAction, null, null) - { - } - - public CustomActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CustomAction, sourceLineNumber, id) - { - } - - public IntermediateField this[CustomActionSymbolFields index] => this.Fields[(int)index]; - - public CustomActionExecutionType ExecutionType - { - get => (CustomActionExecutionType)this.Fields[(int)CustomActionSymbolFields.ExecutionType].AsNumber(); - set => this.Set((int)CustomActionSymbolFields.ExecutionType, (int)value); - } - - public string Source - { - get => (string)this.Fields[(int)CustomActionSymbolFields.Source]; - set => this.Set((int)CustomActionSymbolFields.Source, value); - } - - public CustomActionSourceType SourceType - { - get => (CustomActionSourceType)this.Fields[(int)CustomActionSymbolFields.SourceType].AsNumber(); - set => this.Set((int)CustomActionSymbolFields.SourceType, (int)value); - } - - public string Target - { - get => (string)this.Fields[(int)CustomActionSymbolFields.Target]; - set => this.Set((int)CustomActionSymbolFields.Target, value); - } - - public CustomActionTargetType TargetType - { - get => (CustomActionTargetType)this.Fields[(int)CustomActionSymbolFields.TargetType].AsNumber(); - set => this.Set((int)CustomActionSymbolFields.TargetType, (int)value); - } - - public bool Async - { - get => this.Fields[(int)CustomActionSymbolFields.Async].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Async, value); - } - - public bool Hidden - { - get => this.Fields[(int)CustomActionSymbolFields.Hidden].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Hidden, value); - } - - public bool IgnoreResult - { - get => this.Fields[(int)CustomActionSymbolFields.IgnoreResult].AsBool(); - set => this.Set((int)CustomActionSymbolFields.IgnoreResult, value); - } - - public bool Impersonate - { - get => this.Fields[(int)CustomActionSymbolFields.Impersonate].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Impersonate, value); - } - - public bool PatchUninstall - { - get => this.Fields[(int)CustomActionSymbolFields.PatchUninstall].AsBool(); - set => this.Set((int)CustomActionSymbolFields.PatchUninstall, value); - } - - public bool TSAware - { - get => this.Fields[(int)CustomActionSymbolFields.TSAware].AsBool(); - set => this.Set((int)CustomActionSymbolFields.TSAware, value); - } - - public bool Win64 - { - get => this.Fields[(int)CustomActionSymbolFields.Win64].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Win64, value); - } - - public IntermediateFieldPathValue ScriptFile - { - get => this.Fields[(int)CustomActionSymbolFields.ScriptFile].AsPath(); - set => this.Set((int)CustomActionSymbolFields.ScriptFile, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/DialogTuple.cs b/src/WixToolset.Data/Tuples/DialogTuple.cs deleted file mode 100644 index ee030405..00000000 --- a/src/WixToolset.Data/Tuples/DialogTuple.cs +++ /dev/null @@ -1,188 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Dialog = new IntermediateSymbolDefinition( - SymbolDefinitionType.Dialog, - new[] - { - new IntermediateFieldDefinition(nameof(DialogSymbolFields.HCentering), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.VCentering), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.CustomPalette), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.ErrorDialog), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Modal), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.KeepModeless), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Minimize), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.SystemModal), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.FirstControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.DefaultControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.CancelControlRef), IntermediateFieldType.String), - }, - typeof(DialogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DialogSymbolFields - { - HCentering, - VCentering, - Width, - Height, - CustomPalette, - ErrorDialog, - Visible, - Modal, - KeepModeless, - LeftScroll, - Minimize, - RightAligned, - RightToLeft, - SystemModal, - TrackDiskSpace, - Title, - FirstControlRef, - DefaultControlRef, - CancelControlRef, - } - - public class DialogSymbol : IntermediateSymbol - { - public DialogSymbol() : base(SymbolDefinitions.Dialog, null, null) - { - } - - public DialogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Dialog, sourceLineNumber, id) - { - } - - public IntermediateField this[DialogSymbolFields index] => this.Fields[(int)index]; - - public int HCentering - { - get => (int)this.Fields[(int)DialogSymbolFields.HCentering]; - set => this.Set((int)DialogSymbolFields.HCentering, value); - } - - public int VCentering - { - get => (int)this.Fields[(int)DialogSymbolFields.VCentering]; - set => this.Set((int)DialogSymbolFields.VCentering, value); - } - - public int Width - { - get => (int)this.Fields[(int)DialogSymbolFields.Width]; - set => this.Set((int)DialogSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)DialogSymbolFields.Height]; - set => this.Set((int)DialogSymbolFields.Height, value); - } - - public bool CustomPalette - { - get => this.Fields[(int)DialogSymbolFields.CustomPalette].AsBool(); - set => this.Set((int)DialogSymbolFields.CustomPalette, value); - } - - public bool ErrorDialog - { - get => this.Fields[(int)DialogSymbolFields.ErrorDialog].AsBool(); - set => this.Set((int)DialogSymbolFields.ErrorDialog, value); - } - - public bool Visible - { - get => this.Fields[(int)DialogSymbolFields.Visible].AsBool(); - set => this.Set((int)DialogSymbolFields.Visible, value); - } - - public bool Modal - { - get => this.Fields[(int)DialogSymbolFields.Modal].AsBool(); - set => this.Set((int)DialogSymbolFields.Modal, value); - } - - public bool KeepModeless - { - get => this.Fields[(int)DialogSymbolFields.KeepModeless].AsBool(); - set => this.Set((int)DialogSymbolFields.KeepModeless, value); - } - - public bool LeftScroll - { - get => this.Fields[(int)DialogSymbolFields.LeftScroll].AsBool(); - set => this.Set((int)DialogSymbolFields.LeftScroll, value); - } - - public bool Minimize - { - get => this.Fields[(int)DialogSymbolFields.Minimize].AsBool(); - set => this.Set((int)DialogSymbolFields.Minimize, value); - } - - public bool RightAligned - { - get => this.Fields[(int)DialogSymbolFields.RightAligned].AsBool(); - set => this.Set((int)DialogSymbolFields.RightAligned, value); - } - - public bool RightToLeft - { - get => this.Fields[(int)DialogSymbolFields.RightToLeft].AsBool(); - set => this.Set((int)DialogSymbolFields.RightToLeft, value); - } - - public bool TrackDiskSpace - { - get => this.Fields[(int)DialogSymbolFields.TrackDiskSpace].AsBool(); - set => this.Set((int)DialogSymbolFields.TrackDiskSpace, value); - } - - public bool SystemModal - { - get => this.Fields[(int)DialogSymbolFields.SystemModal].AsBool(); - set => this.Set((int)DialogSymbolFields.SystemModal, value); - } - - public string Title - { - get => (string)this.Fields[(int)DialogSymbolFields.Title]; - set => this.Set((int)DialogSymbolFields.Title, value); - } - - public string FirstControlRef - { - get => (string)this.Fields[(int)DialogSymbolFields.FirstControlRef]; - set => this.Set((int)DialogSymbolFields.FirstControlRef, value); - } - - public string DefaultControlRef - { - get => (string)this.Fields[(int)DialogSymbolFields.DefaultControlRef]; - set => this.Set((int)DialogSymbolFields.DefaultControlRef, value); - } - - public string CancelControlRef - { - get => (string)this.Fields[(int)DialogSymbolFields.CancelControlRef]; - set => this.Set((int)DialogSymbolFields.CancelControlRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DirectoryTuple.cs b/src/WixToolset.Data/Tuples/DirectoryTuple.cs deleted file mode 100644 index 209f5ca1..00000000 --- a/src/WixToolset.Data/Tuples/DirectoryTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Directory = new IntermediateSymbolDefinition( - SymbolDefinitionType.Directory, - new[] - { - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ParentDirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), - }, - typeof(DirectorySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DirectorySymbolFields - { - ParentDirectoryRef, - Name, - ShortName, - SourceName, - SourceShortName, - ComponentGuidGenerationSeed, - } - - public class DirectorySymbol : IntermediateSymbol - { - public DirectorySymbol() : base(SymbolDefinitions.Directory, null, null) - { - } - - public DirectorySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Directory, sourceLineNumber, id) - { - } - - public IntermediateField this[DirectorySymbolFields index] => this.Fields[(int)index]; - - public string ParentDirectoryRef - { - get => (string)this.Fields[(int)DirectorySymbolFields.ParentDirectoryRef]; - set => this.Set((int)DirectorySymbolFields.ParentDirectoryRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)DirectorySymbolFields.Name]; - set => this.Set((int)DirectorySymbolFields.Name, value); - } - - public string ShortName - { - get => (string)this.Fields[(int)DirectorySymbolFields.ShortName]; - set => this.Set((int)DirectorySymbolFields.ShortName, value); - } - - public string SourceName - { - get => (string)this.Fields[(int)DirectorySymbolFields.SourceName]; - set => this.Set((int)DirectorySymbolFields.SourceName, value); - } - - public string SourceShortName - { - get => (string)this.Fields[(int)DirectorySymbolFields.SourceShortName]; - set => this.Set((int)DirectorySymbolFields.SourceShortName, value); - } - - public string ComponentGuidGenerationSeed - { - get => (string)this.Fields[(int)DirectorySymbolFields.ComponentGuidGenerationSeed]; - set => this.Set((int)DirectorySymbolFields.ComponentGuidGenerationSeed, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs deleted file mode 100644 index e403c61c..00000000 --- a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition DrLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.DrLocator, - new[] - { - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Path), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Depth), IntermediateFieldType.Number), - }, - typeof(DrLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DrLocatorSymbolFields - { - SignatureRef, - Parent, - Path, - Depth, - } - - public class DrLocatorSymbol : IntermediateSymbol - { - public DrLocatorSymbol() : base(SymbolDefinitions.DrLocator, null, null) - { - } - - public DrLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DrLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[DrLocatorSymbolFields index] => this.Fields[(int)index]; - - public string SignatureRef - { - get => (string)this.Fields[(int)DrLocatorSymbolFields.SignatureRef]; - set => this.Set((int)DrLocatorSymbolFields.SignatureRef, value); - } - - public string Parent - { - get => (string)this.Fields[(int)DrLocatorSymbolFields.Parent]; - set => this.Set((int)DrLocatorSymbolFields.Parent, value); - } - - public string Path - { - get => (string)this.Fields[(int)DrLocatorSymbolFields.Path]; - set => this.Set((int)DrLocatorSymbolFields.Path, value); - } - - public int? Depth - { - get => (int?)this.Fields[(int)DrLocatorSymbolFields.Depth]; - set => this.Set((int)DrLocatorSymbolFields.Depth, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs deleted file mode 100644 index 1344ced4..00000000 --- a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition DuplicateFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.DuplicateFile, - new[] - { - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationFolder), IntermediateFieldType.String), - }, - typeof(DuplicateFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DuplicateFileSymbolFields - { - ComponentRef, - FileRef, - DestinationName, - DestinationFolder, - } - - public class DuplicateFileSymbol : IntermediateSymbol - { - public DuplicateFileSymbol() : base(SymbolDefinitions.DuplicateFile, null, null) - { - } - - public DuplicateFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DuplicateFile, sourceLineNumber, id) - { - } - - public IntermediateField this[DuplicateFileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.ComponentRef]; - set => this.Set((int)DuplicateFileSymbolFields.ComponentRef, value); - } - - public string FileRef - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.FileRef]; - set => this.Set((int)DuplicateFileSymbolFields.FileRef, value); - } - - public string DestinationName - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationName]; - set => this.Set((int)DuplicateFileSymbolFields.DestinationName, value); - } - - public string DestinationFolder - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationFolder]; - set => this.Set((int)DuplicateFileSymbolFields.DestinationFolder, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs deleted file mode 100644 index 3fe12d4b..00000000 --- a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs +++ /dev/null @@ -1,114 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Environment = new IntermediateSymbolDefinition( - SymbolDefinitionType.Environment, - new[] - { - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Separator), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Part), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Permanent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.System), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(EnvironmentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum EnvironmentSymbolFields - { - Name, - Value, - Separator, - Action, - Part, - Permanent, - System, - ComponentRef, - } - - public enum EnvironmentActionType - { - Set, - Create, - Remove - } - - public enum EnvironmentPartType - { - All, - First, - Last - } - - public class EnvironmentSymbol : IntermediateSymbol - { - public EnvironmentSymbol() : base(SymbolDefinitions.Environment, null, null) - { - } - - public EnvironmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Environment, sourceLineNumber, id) - { - } - - public IntermediateField this[EnvironmentSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.Name]; - set => this.Set((int)EnvironmentSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.Value]; - set => this.Set((int)EnvironmentSymbolFields.Value, value); - } - - public string Separator - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.Separator]; - set => this.Set((int)EnvironmentSymbolFields.Separator, value); - } - - public EnvironmentActionType? Action - { - get => (EnvironmentActionType?)this.Fields[(int)EnvironmentSymbolFields.Action].AsNullableNumber(); - set => this.Set((int)EnvironmentSymbolFields.Action, (int?)value); - } - - public EnvironmentPartType? Part - { - get => (EnvironmentPartType?)this.Fields[(int)EnvironmentSymbolFields.Part].AsNullableNumber(); - set => this.Set((int)EnvironmentSymbolFields.Part, (int?)value); - } - - public bool Permanent - { - get => this.Fields[(int)EnvironmentSymbolFields.Permanent].AsBool(); - set => this.Set((int)EnvironmentSymbolFields.Permanent, value); - } - - public bool System - { - get => this.Fields[(int)EnvironmentSymbolFields.System].AsBool(); - set => this.Set((int)EnvironmentSymbolFields.System, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.ComponentRef]; - set => this.Set((int)EnvironmentSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ErrorTuple.cs b/src/WixToolset.Data/Tuples/ErrorTuple.cs deleted file mode 100644 index d2994598..00000000 --- a/src/WixToolset.Data/Tuples/ErrorTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Error = new IntermediateSymbolDefinition( - SymbolDefinitionType.Error, - new[] - { - new IntermediateFieldDefinition(nameof(ErrorSymbolFields.Message), IntermediateFieldType.String), - }, - typeof(ErrorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ErrorSymbolFields - { - Message, - } - - public class ErrorSymbol : IntermediateSymbol - { - public ErrorSymbol() : base(SymbolDefinitions.Error, null, null) - { - } - - public ErrorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Error, sourceLineNumber, id) - { - } - - public IntermediateField this[ErrorSymbolFields index] => this.Fields[(int)index]; - - public string Message - { - get => (string)this.Fields[(int)ErrorSymbolFields.Message]; - set => this.Set((int)ErrorSymbolFields.Message, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/EventMappingTuple.cs b/src/WixToolset.Data/Tuples/EventMappingTuple.cs deleted file mode 100644 index fec7be3b..00000000 --- a/src/WixToolset.Data/Tuples/EventMappingTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition EventMapping = new IntermediateSymbolDefinition( - SymbolDefinitionType.EventMapping, - new[] - { - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Event), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Attribute), IntermediateFieldType.String), - }, - typeof(EventMappingSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum EventMappingSymbolFields - { - DialogRef, - ControlRef, - Event, - Attribute, - } - - public class EventMappingSymbol : IntermediateSymbol - { - public EventMappingSymbol() : base(SymbolDefinitions.EventMapping, null, null) - { - } - - public EventMappingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.EventMapping, sourceLineNumber, id) - { - } - - public IntermediateField this[EventMappingSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)EventMappingSymbolFields.DialogRef]; - set => this.Set((int)EventMappingSymbolFields.DialogRef, value); - } - - public string ControlRef - { - get => (string)this.Fields[(int)EventMappingSymbolFields.ControlRef]; - set => this.Set((int)EventMappingSymbolFields.ControlRef, value); - } - - public string Event - { - get => (string)this.Fields[(int)EventMappingSymbolFields.Event]; - set => this.Set((int)EventMappingSymbolFields.Event, value); - } - - public string Attribute - { - get => (string)this.Fields[(int)EventMappingSymbolFields.Attribute]; - set => this.Set((int)EventMappingSymbolFields.Attribute, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ExtensionTuple.cs b/src/WixToolset.Data/Tuples/ExtensionTuple.cs deleted file mode 100644 index b8806971..00000000 --- a/src/WixToolset.Data/Tuples/ExtensionTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Extension = new IntermediateSymbolDefinition( - SymbolDefinitionType.Extension, - new[] - { - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.Extension), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.MimeRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.FeatureRef), IntermediateFieldType.String), - }, - typeof(ExtensionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ExtensionSymbolFields - { - Extension, - ComponentRef, - ProgIdRef, - MimeRef, - FeatureRef, - } - - public class ExtensionSymbol : IntermediateSymbol - { - public ExtensionSymbol() : base(SymbolDefinitions.Extension, null, null) - { - } - - public ExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Extension, sourceLineNumber, id) - { - } - - public IntermediateField this[ExtensionSymbolFields index] => this.Fields[(int)index]; - - public string Extension - { - get => (string)this.Fields[(int)ExtensionSymbolFields.Extension]; - set => this.Set((int)ExtensionSymbolFields.Extension, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.ComponentRef]; - set => this.Set((int)ExtensionSymbolFields.ComponentRef, value); - } - - public string ProgIdRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.ProgIdRef]; - set => this.Set((int)ExtensionSymbolFields.ProgIdRef, value); - } - - public string MimeRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.MimeRef]; - set => this.Set((int)ExtensionSymbolFields.MimeRef, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.FeatureRef]; - set => this.Set((int)ExtensionSymbolFields.FeatureRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs deleted file mode 100644 index 87888f0b..00000000 --- a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ExternalFiles = new IntermediateSymbolDefinition( - SymbolDefinitionType.ExternalFiles, - new[] - { - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FilePath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Order), IntermediateFieldType.Number), - }, - typeof(ExternalFilesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ExternalFilesSymbolFields - { - Family, - FTK, - FilePath, - SymbolPaths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - Order, - } - - public class ExternalFilesSymbol : IntermediateSymbol - { - public ExternalFilesSymbol() : base(SymbolDefinitions.ExternalFiles, null, null) - { - } - - public ExternalFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ExternalFiles, sourceLineNumber, id) - { - } - - public IntermediateField this[ExternalFilesSymbolFields index] => this.Fields[(int)index]; - - public string Family - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.Family]; - set => this.Set((int)ExternalFilesSymbolFields.Family, value); - } - - public string FTK - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.FTK]; - set => this.Set((int)ExternalFilesSymbolFields.FTK, value); - } - - public string FilePath - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.FilePath]; - set => this.Set((int)ExternalFilesSymbolFields.FilePath, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.SymbolPaths]; - set => this.Set((int)ExternalFilesSymbolFields.SymbolPaths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreOffsets]; - set => this.Set((int)ExternalFilesSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreLengths]; - set => this.Set((int)ExternalFilesSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.RetainOffsets]; - set => this.Set((int)ExternalFilesSymbolFields.RetainOffsets, value); - } - - public int Order - { - get => (int)this.Fields[(int)ExternalFilesSymbolFields.Order]; - set => this.Set((int)ExternalFilesSymbolFields.Order, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs deleted file mode 100644 index 84cd5b4b..00000000 --- a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition FamilyFileRanges = new IntermediateSymbolDefinition( - SymbolDefinitionType.FamilyFileRanges, - new[] - { - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainLengths), IntermediateFieldType.String), - }, - typeof(FamilyFileRangesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FamilyFileRangesSymbolFields - { - Family, - FTK, - RetainOffsets, - RetainLengths, - } - - public class FamilyFileRangesSymbol : IntermediateSymbol - { - public FamilyFileRangesSymbol() : base(SymbolDefinitions.FamilyFileRanges, null, null) - { - } - - public FamilyFileRangesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FamilyFileRanges, sourceLineNumber, id) - { - } - - public IntermediateField this[FamilyFileRangesSymbolFields index] => this.Fields[(int)index]; - - public string Family - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.Family]; - set => this.Set((int)FamilyFileRangesSymbolFields.Family, value); - } - - public string FTK - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.FTK]; - set => this.Set((int)FamilyFileRangesSymbolFields.FTK, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainOffsets]; - set => this.Set((int)FamilyFileRangesSymbolFields.RetainOffsets, value); - } - - public string RetainLengths - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainLengths]; - set => this.Set((int)FamilyFileRangesSymbolFields.RetainLengths, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs deleted file mode 100644 index af51daed..00000000 --- a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition FeatureComponents = new IntermediateSymbolDefinition( - SymbolDefinitionType.FeatureComponents, - new[] - { - new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(FeatureComponentsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FeatureComponentsSymbolFields - { - FeatureRef, - ComponentRef, - } - - public class FeatureComponentsSymbol : IntermediateSymbol - { - public FeatureComponentsSymbol() : base(SymbolDefinitions.FeatureComponents, null, null) - { - } - - public FeatureComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FeatureComponents, sourceLineNumber, id) - { - } - - public IntermediateField this[FeatureComponentsSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)FeatureComponentsSymbolFields.FeatureRef]; - set => this.Set((int)FeatureComponentsSymbolFields.FeatureRef, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)FeatureComponentsSymbolFields.ComponentRef]; - set => this.Set((int)FeatureComponentsSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FeatureTuple.cs b/src/WixToolset.Data/Tuples/FeatureTuple.cs deleted file mode 100644 index 67972b63..00000000 --- a/src/WixToolset.Data/Tuples/FeatureTuple.cs +++ /dev/null @@ -1,129 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Feature = new IntermediateSymbolDefinition( - SymbolDefinitionType.Feature, - new[] - { - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.ParentFeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Display), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAbsent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAdvertise), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.InstallDefault), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.TypicalDefault), IntermediateFieldType.Number), - }, - typeof(FeatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FeatureSymbolFields - { - ParentFeatureRef, - Title, - Description, - Display, - Level, - DirectoryRef, - DisallowAbsent, - DisallowAdvertise, - InstallDefault, - TypicalDefault, - } - - public enum FeatureInstallDefault - { - Local, - Source, - FollowParent, - } - - public enum FeatureTypicalDefault - { - Install, - Advertise - } - - public class FeatureSymbol : IntermediateSymbol - { - public FeatureSymbol() : base(SymbolDefinitions.Feature, null, null) - { - } - - public FeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Feature, sourceLineNumber, id) - { - } - - public IntermediateField this[FeatureSymbolFields index] => this.Fields[(int)index]; - - public string ParentFeatureRef - { - get => (string)this.Fields[(int)FeatureSymbolFields.ParentFeatureRef]; - set => this.Set((int)FeatureSymbolFields.ParentFeatureRef, value); - } - - public string Title - { - get => (string)this.Fields[(int)FeatureSymbolFields.Title]; - set => this.Set((int)FeatureSymbolFields.Title, value); - } - - public string Description - { - get => (string)this.Fields[(int)FeatureSymbolFields.Description]; - set => this.Set((int)FeatureSymbolFields.Description, value); - } - - public int Display - { - get => (int)this.Fields[(int)FeatureSymbolFields.Display]; - set => this.Set((int)FeatureSymbolFields.Display, value); - } - - public int Level - { - get => (int)this.Fields[(int)FeatureSymbolFields.Level]; - set => this.Set((int)FeatureSymbolFields.Level, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)FeatureSymbolFields.DirectoryRef]; - set => this.Set((int)FeatureSymbolFields.DirectoryRef, value); - } - - public bool DisallowAbsent - { - get => this.Fields[(int)FeatureSymbolFields.DisallowAbsent].AsBool(); - set => this.Set((int)FeatureSymbolFields.DisallowAbsent, value); - } - - public bool DisallowAdvertise - { - get => this.Fields[(int)FeatureSymbolFields.DisallowAdvertise].AsBool(); - set => this.Set((int)FeatureSymbolFields.DisallowAdvertise, value); - } - - public FeatureInstallDefault InstallDefault - { - get => (FeatureInstallDefault)this.Fields[(int)FeatureSymbolFields.InstallDefault].AsNumber(); - set => this.Set((int)FeatureSymbolFields.InstallDefault, (int)value); - } - - public FeatureTypicalDefault TypicalDefault - { - get => (FeatureTypicalDefault)this.Fields[(int)FeatureSymbolFields.TypicalDefault].AsNumber(); - set => this.Set((int)FeatureSymbolFields.TypicalDefault, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs deleted file mode 100644 index 3abf2915..00000000 --- a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition FileSFPCatalog = new IntermediateSymbolDefinition( - SymbolDefinitionType.FileSFPCatalog, - new[] - { - new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.SFPCatalogRef), IntermediateFieldType.String), - }, - typeof(FileSFPCatalogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FileSFPCatalogSymbolFields - { - FileRef, - SFPCatalogRef, - } - - public class FileSFPCatalogSymbol : IntermediateSymbol - { - public FileSFPCatalogSymbol() : base(SymbolDefinitions.FileSFPCatalog, null, null) - { - } - - public FileSFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FileSFPCatalog, sourceLineNumber, id) - { - } - - public IntermediateField this[FileSFPCatalogSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.FileRef]; - set => this.Set((int)FileSFPCatalogSymbolFields.FileRef, value); - } - - public string SFPCatalogRef - { - get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.SFPCatalogRef]; - set => this.Set((int)FileSFPCatalogSymbolFields.SFPCatalogRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs deleted file mode 100644 index 7d1afdb7..00000000 --- a/src/WixToolset.Data/Tuples/FileTuple.cs +++ /dev/null @@ -1,257 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition File = new IntermediateSymbolDefinition( - SymbolDefinitionType.File, - new[] - { - new IntermediateFieldDefinition(nameof(FileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.FileSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Source), IntermediateFieldType.Path), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.FontTitle), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.SelfRegCost), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.BindPath), IntermediateFieldType.String), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.Sequence), IntermediateFieldType.Number), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchGroup), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.DeltaPatchHeaderSource), IntermediateFieldType.String), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.SymbolPaths), IntermediateFieldType.String), - }, - typeof(FileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum FileSymbolFields - { - ComponentRef, - Name, - ShortName, - FileSize, - Version, - Language, - Attributes, - DirectoryRef, - DiskId, - Source, - - FontTitle, - SelfRegCost, - BindPath, - - Sequence, - - PatchGroup, - PatchAttributes, - DeltaPatchHeaderSource, - - RetainLengths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - SymbolPaths, - } - - [Flags] - public enum FileSymbolAttributes : int - { - None = 0x0, - ReadOnly = 0x1, - Hidden = 0x2, - System = 0x4, - Vital = 0x8, - Compressed = 0x10, - Uncompressed = 0x20, - Checksum = 0x40, - GeneratedShortFileName = 0x80, - } - - /// - /// PatchAttribute values - /// - [Flags] - public enum PatchAttributeType - { - None = 0, - - /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. - Ignore = 1, - - /// Set if the entire file should be installed rather than creating a binary patch. - IncludeWholeFile = 2, - - /// Set to indicate that the patch is non-vital. - AllowIgnoreOnError = 4, - - /// Allowed bits. - Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError - } - - public class FileSymbol : IntermediateSymbol - { - public FileSymbol() : base(SymbolDefinitions.File, null, null) - { - } - - public FileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.File, sourceLineNumber, id) - { - } - - public IntermediateField this[FileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)FileSymbolFields.ComponentRef]; - set => this.Set((int)FileSymbolFields.ComponentRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)FileSymbolFields.Name]; - set => this.Set((int)FileSymbolFields.Name, value); - } - - public string ShortName - { - get => (string)this.Fields[(int)FileSymbolFields.ShortName]; - set => this.Set((int)FileSymbolFields.ShortName, value); - } - - public int FileSize - { - get => (int)this.Fields[(int)FileSymbolFields.FileSize]; - set => this.Set((int)FileSymbolFields.FileSize, value); - } - - public string Version - { - get => (string)this.Fields[(int)FileSymbolFields.Version]; - set => this.Set((int)FileSymbolFields.Version, value); - } - - public string Language - { - get => (string)this.Fields[(int)FileSymbolFields.Language]; - set => this.Set((int)FileSymbolFields.Language, value); - } - - public FileSymbolAttributes Attributes - { - get => (FileSymbolAttributes)this.Fields[(int)FileSymbolFields.Attributes].AsNumber(); - set => this.Set((int)FileSymbolFields.Attributes, (int)value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)FileSymbolFields.DirectoryRef]; - set => this.Set((int)FileSymbolFields.DirectoryRef, value); - } - - public int? DiskId - { - get => (int?)this.Fields[(int)FileSymbolFields.DiskId]; - set => this.Set((int)FileSymbolFields.DiskId, value); - } - - public IntermediateFieldPathValue Source - { - get => this.Fields[(int)FileSymbolFields.Source].AsPath(); - set => this.Set((int)FileSymbolFields.Source, value); - } - - public string FontTitle - { - get => (string)this.Fields[(int)FileSymbolFields.FontTitle]; - set => this.Set((int)FileSymbolFields.FontTitle, value); - } - - public int? SelfRegCost - { - get => (int?)this.Fields[(int)FileSymbolFields.SelfRegCost]; - set => this.Set((int)FileSymbolFields.SelfRegCost, value); - } - - public string BindPath - { - get => (string)this.Fields[(int)FileSymbolFields.BindPath]; - set => this.Set((int)FileSymbolFields.BindPath, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)FileSymbolFields.Sequence]; - set => this.Set((int)FileSymbolFields.Sequence, value); - } - - public int? PatchGroup - { - get => (int?)this.Fields[(int)FileSymbolFields.PatchGroup]; - set => this.Set((int)FileSymbolFields.PatchGroup, value); - } - - public PatchAttributeType? PatchAttributes - { - get => (PatchAttributeType?)this.Fields[(int)FileSymbolFields.PatchAttributes].AsNullableNumber(); - set => this.Set((int)FileSymbolFields.PatchAttributes, (int?)value); - } - - public string DeltaPatchHeaderSource - { - get => (string)this.Fields[(int)FileSymbolFields.DeltaPatchHeaderSource]; - set => this.Set((int)FileSymbolFields.DeltaPatchHeaderSource, value); - } - - public string RetainLengths - { - get => (string)this.Fields[(int)FileSymbolFields.RetainLengths]; - set => this.Set((int)FileSymbolFields.RetainLengths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)FileSymbolFields.IgnoreOffsets]; - set => this.Set((int)FileSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)FileSymbolFields.IgnoreLengths]; - set => this.Set((int)FileSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)FileSymbolFields.RetainOffsets]; - set => this.Set((int)FileSymbolFields.RetainOffsets, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)FileSymbolFields.SymbolPaths]; - set => this.Set((int)FileSymbolFields.SymbolPaths, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/IconTuple.cs b/src/WixToolset.Data/Tuples/IconTuple.cs deleted file mode 100644 index f3c825ec..00000000 --- a/src/WixToolset.Data/Tuples/IconTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Icon = new IntermediateSymbolDefinition( - SymbolDefinitionType.Icon, - new[] - { - new IntermediateFieldDefinition(nameof(IconSymbolFields.Data), IntermediateFieldType.Path), - }, - typeof(IconSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IconSymbolFields - { - Data, - } - - public class IconSymbol : IntermediateSymbol - { - public IconSymbol() : base(SymbolDefinitions.Icon, null, null) - { - } - - public IconSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Icon, sourceLineNumber, id) - { - } - - public IntermediateField this[IconSymbolFields index] => this.Fields[(int)index]; - - public IntermediateFieldPathValue Data - { - get => this.Fields[(int)IconSymbolFields.Data].AsPath(); - set => this.Set((int)IconSymbolFields.Data, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs deleted file mode 100644 index 090628ef..00000000 --- a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ImageFamilies = new IntermediateSymbolDefinition( - SymbolDefinitionType.ImageFamilies, - new[] - { - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaSrcPropName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaDiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.FileSequenceStart), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.VolumeLabel), IntermediateFieldType.String), - }, - typeof(ImageFamiliesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ImageFamiliesSymbolFields - { - Family, - MediaSrcPropName, - MediaDiskId, - FileSequenceStart, - DiskPrompt, - VolumeLabel, - } - - public class ImageFamiliesSymbol : IntermediateSymbol - { - public ImageFamiliesSymbol() : base(SymbolDefinitions.ImageFamilies, null, null) - { - } - - public ImageFamiliesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ImageFamilies, sourceLineNumber, id) - { - } - - public IntermediateField this[ImageFamiliesSymbolFields index] => this.Fields[(int)index]; - - public string Family - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.Family]; - set => this.Set((int)ImageFamiliesSymbolFields.Family, value); - } - - public string MediaSrcPropName - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.MediaSrcPropName]; - set => this.Set((int)ImageFamiliesSymbolFields.MediaSrcPropName, value); - } - - public int? MediaDiskId - { - get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.MediaDiskId]; - set => this.Set((int)ImageFamiliesSymbolFields.MediaDiskId, value); - } - - public int? FileSequenceStart - { - get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.FileSequenceStart]; - set => this.Set((int)ImageFamiliesSymbolFields.FileSequenceStart, value); - } - - public string DiskPrompt - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.DiskPrompt]; - set => this.Set((int)ImageFamiliesSymbolFields.DiskPrompt, value); - } - - public string VolumeLabel - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.VolumeLabel]; - set => this.Set((int)ImageFamiliesSymbolFields.VolumeLabel, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IniFileTuple.cs b/src/WixToolset.Data/Tuples/IniFileTuple.cs deleted file mode 100644 index e23f6039..00000000 --- a/src/WixToolset.Data/Tuples/IniFileTuple.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition IniFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.IniFile, - new[] - { - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.DirProperty), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Section), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(IniFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IniFileSymbolFields - { - FileName, - DirProperty, - Section, - Key, - Value, - Action, - ComponentRef, - } - - public class IniFileSymbol : IntermediateSymbol - { - public IniFileSymbol() : base(SymbolDefinitions.IniFile, null, null) - { - } - - public IniFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniFile, sourceLineNumber, id) - { - } - - public IntermediateField this[IniFileSymbolFields index] => this.Fields[(int)index]; - - public string FileName - { - get => (string)this.Fields[(int)IniFileSymbolFields.FileName]; - set => this.Set((int)IniFileSymbolFields.FileName, value); - } - - public string DirProperty - { - get => (string)this.Fields[(int)IniFileSymbolFields.DirProperty]; - set => this.Set((int)IniFileSymbolFields.DirProperty, value); - } - - public string Section - { - get => (string)this.Fields[(int)IniFileSymbolFields.Section]; - set => this.Set((int)IniFileSymbolFields.Section, value); - } - - public string Key - { - get => (string)this.Fields[(int)IniFileSymbolFields.Key]; - set => this.Set((int)IniFileSymbolFields.Key, value); - } - - public string Value - { - get => (string)this.Fields[(int)IniFileSymbolFields.Value]; - set => this.Set((int)IniFileSymbolFields.Value, value); - } - - public InifFileActionType Action - { - get => (InifFileActionType)this.Fields[(int)IniFileSymbolFields.Action]?.AsNumber(); - set => this.Set((int)IniFileSymbolFields.Action, (int)value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)IniFileSymbolFields.ComponentRef]; - set => this.Set((int)IniFileSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs deleted file mode 100644 index 64351681..00000000 --- a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition IniLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.IniLocator, - new[] - { - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Section), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Field), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Type), IntermediateFieldType.Number), - }, - typeof(IniLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IniLocatorSymbolFields - { - SignatureRef, - FileName, - Section, - Key, - Field, - Type, - } - - public class IniLocatorSymbol : IntermediateSymbol - { - public IniLocatorSymbol() : base(SymbolDefinitions.IniLocator, null, null) - { - } - - public IniLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[IniLocatorSymbolFields index] => this.Fields[(int)index]; - - public string SignatureRef - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.SignatureRef]; - set => this.Set((int)IniLocatorSymbolFields.SignatureRef, value); - } - - public string FileName - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.FileName]; - set => this.Set((int)IniLocatorSymbolFields.FileName, value); - } - - public string Section - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.Section]; - set => this.Set((int)IniLocatorSymbolFields.Section, value); - } - - public string Key - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.Key]; - set => this.Set((int)IniLocatorSymbolFields.Key, value); - } - - public int? Field - { - get => (int?)this.Fields[(int)IniLocatorSymbolFields.Field]; - set => this.Set((int)IniLocatorSymbolFields.Field, value); - } - - public int? Type - { - get => (int?)this.Fields[(int)IniLocatorSymbolFields.Type]; - set => this.Set((int)IniLocatorSymbolFields.Type, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/InifFileActionType.cs b/src/WixToolset.Data/Tuples/InifFileActionType.cs deleted file mode 100644 index 8b642323..00000000 --- a/src/WixToolset.Data/Tuples/InifFileActionType.cs +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - public enum InifFileActionType - { - AddLine, - AddTag, - CreateLine, - RemoveLine, - RemoveTag, - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs deleted file mode 100644 index 681f1030..00000000 --- a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition IsolatedComponent = new IntermediateSymbolDefinition( - SymbolDefinitionType.IsolatedComponent, - new[] - { - new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.SharedComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.ApplicationComponentRef), IntermediateFieldType.String), - }, - typeof(IsolatedComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IsolatedComponentSymbolFields - { - SharedComponentRef, - ApplicationComponentRef, - } - - public class IsolatedComponentSymbol : IntermediateSymbol - { - public IsolatedComponentSymbol() : base(SymbolDefinitions.IsolatedComponent, null, null) - { - } - - public IsolatedComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IsolatedComponent, sourceLineNumber, id) - { - } - - public IntermediateField this[IsolatedComponentSymbolFields index] => this.Fields[(int)index]; - - public string SharedComponentRef - { - get => (string)this.Fields[(int)IsolatedComponentSymbolFields.SharedComponentRef]; - set => this.Set((int)IsolatedComponentSymbolFields.SharedComponentRef, value); - } - - public string ApplicationComponentRef - { - get => (string)this.Fields[(int)IsolatedComponentSymbolFields.ApplicationComponentRef]; - set => this.Set((int)IsolatedComponentSymbolFields.ApplicationComponentRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs deleted file mode 100644 index a160f25f..00000000 --- a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition LaunchCondition = new IntermediateSymbolDefinition( - SymbolDefinitionType.LaunchCondition, - new[] - { - new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Description), IntermediateFieldType.String), - }, - typeof(LaunchConditionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum LaunchConditionSymbolFields - { - Condition, - Description, - } - - public class LaunchConditionSymbol : IntermediateSymbol - { - public LaunchConditionSymbol() : base(SymbolDefinitions.LaunchCondition, null, null) - { - } - - public LaunchConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LaunchCondition, sourceLineNumber, id) - { - } - - public IntermediateField this[LaunchConditionSymbolFields index] => this.Fields[(int)index]; - - public string Condition - { - get => (string)this.Fields[(int)LaunchConditionSymbolFields.Condition]; - set => this.Set((int)LaunchConditionSymbolFields.Condition, value); - } - - public string Description - { - get => (string)this.Fields[(int)LaunchConditionSymbolFields.Description]; - set => this.Set((int)LaunchConditionSymbolFields.Description, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ListBoxTuple.cs b/src/WixToolset.Data/Tuples/ListBoxTuple.cs deleted file mode 100644 index 174327d1..00000000 --- a/src/WixToolset.Data/Tuples/ListBoxTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ListBox = new IntermediateSymbolDefinition( - SymbolDefinitionType.ListBox, - new[] - { - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Text), IntermediateFieldType.String), - }, - typeof(ListBoxSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ListBoxSymbolFields - { - Property, - Order, - Value, - Text, - } - - public class ListBoxSymbol : IntermediateSymbol - { - public ListBoxSymbol() : base(SymbolDefinitions.ListBox, null, null) - { - } - - public ListBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListBox, sourceLineNumber, id) - { - } - - public IntermediateField this[ListBoxSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)ListBoxSymbolFields.Property]; - set => this.Set((int)ListBoxSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)ListBoxSymbolFields.Order]; - set => this.Set((int)ListBoxSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)ListBoxSymbolFields.Value]; - set => this.Set((int)ListBoxSymbolFields.Value, value); - } - - public string Text - { - get => (string)this.Fields[(int)ListBoxSymbolFields.Text]; - set => this.Set((int)ListBoxSymbolFields.Text, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ListViewTuple.cs b/src/WixToolset.Data/Tuples/ListViewTuple.cs deleted file mode 100644 index 09543ab1..00000000 --- a/src/WixToolset.Data/Tuples/ListViewTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ListView = new IntermediateSymbolDefinition( - SymbolDefinitionType.ListView, - new[] - { - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.BinaryRef), IntermediateFieldType.String), - }, - typeof(ListViewSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ListViewSymbolFields - { - Property, - Order, - Value, - Text, - BinaryRef, - } - - public class ListViewSymbol : IntermediateSymbol - { - public ListViewSymbol() : base(SymbolDefinitions.ListView, null, null) - { - } - - public ListViewSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListView, sourceLineNumber, id) - { - } - - public IntermediateField this[ListViewSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)ListViewSymbolFields.Property]; - set => this.Set((int)ListViewSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)ListViewSymbolFields.Order]; - set => this.Set((int)ListViewSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)ListViewSymbolFields.Value]; - set => this.Set((int)ListViewSymbolFields.Value, value); - } - - public string Text - { - get => (string)this.Fields[(int)ListViewSymbolFields.Text]; - set => this.Set((int)ListViewSymbolFields.Text, value); - } - - public string BinaryRef - { - get => (string)this.Fields[(int)ListViewSymbolFields.BinaryRef]; - set => this.Set((int)ListViewSymbolFields.BinaryRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/LocatorType.cs b/src/WixToolset.Data/Tuples/LocatorType.cs deleted file mode 100644 index 6f136389..00000000 --- a/src/WixToolset.Data/Tuples/LocatorType.cs +++ /dev/null @@ -1,12 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - public enum LocatorType - { - Directory, - Filename, - RawValue, - x64 = 16, - } -} diff --git a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs deleted file mode 100644 index 12562fd1..00000000 --- a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition LockPermissions = new IntermediateSymbolDefinition( - SymbolDefinitionType.LockPermissions, - new[] - { - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.LockObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Domain), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.User), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Permission), IntermediateFieldType.Number), - }, - typeof(LockPermissionsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum LockPermissionsSymbolFields - { - LockObject, - Table, - Domain, - User, - Permission, - } - - public class LockPermissionsSymbol : IntermediateSymbol - { - public LockPermissionsSymbol() : base(SymbolDefinitions.LockPermissions, null, null) - { - } - - public LockPermissionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LockPermissions, sourceLineNumber, id) - { - } - - public IntermediateField this[LockPermissionsSymbolFields index] => this.Fields[(int)index]; - - public string LockObject - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.LockObject]; - set => this.Set((int)LockPermissionsSymbolFields.LockObject, value); - } - - public string Table - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.Table]; - set => this.Set((int)LockPermissionsSymbolFields.Table, value); - } - - public string Domain - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.Domain]; - set => this.Set((int)LockPermissionsSymbolFields.Domain, value); - } - - public string User - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.User]; - set => this.Set((int)LockPermissionsSymbolFields.User, value); - } - - public int? Permission - { - get => (int?)this.Fields[(int)LockPermissionsSymbolFields.Permission]; - set => this.Set((int)LockPermissionsSymbolFields.Permission, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MIMETuple.cs b/src/WixToolset.Data/Tuples/MIMETuple.cs deleted file mode 100644 index f66d05b8..00000000 --- a/src/WixToolset.Data/Tuples/MIMETuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MIME = new IntermediateSymbolDefinition( - SymbolDefinitionType.MIME, - new[] - { - new IntermediateFieldDefinition(nameof(MIMESymbolFields.ContentType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MIMESymbolFields.ExtensionRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MIMESymbolFields.CLSID), IntermediateFieldType.String), - }, - typeof(MIMESymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MIMESymbolFields - { - ContentType, - ExtensionRef, - CLSID, - } - - public class MIMESymbol : IntermediateSymbol - { - public MIMESymbol() : base(SymbolDefinitions.MIME, null, null) - { - } - - public MIMESymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MIME, sourceLineNumber, id) - { - } - - public IntermediateField this[MIMESymbolFields index] => this.Fields[(int)index]; - - public string ContentType - { - get => (string)this.Fields[(int)MIMESymbolFields.ContentType]; - set => this.Set((int)MIMESymbolFields.ContentType, value); - } - - public string ExtensionRef - { - get => (string)this.Fields[(int)MIMESymbolFields.ExtensionRef]; - set => this.Set((int)MIMESymbolFields.ExtensionRef, value); - } - - public string CLSID - { - get => (string)this.Fields[(int)MIMESymbolFields.CLSID]; - set => this.Set((int)MIMESymbolFields.CLSID, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MediaTuple.cs b/src/WixToolset.Data/Tuples/MediaTuple.cs deleted file mode 100644 index f216cddc..00000000 --- a/src/WixToolset.Data/Tuples/MediaTuple.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Media = new IntermediateSymbolDefinition( - SymbolDefinitionType.Media, - new[] - { - new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.LastSequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.Cabinet), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.VolumeLabel), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.CompressionLevel), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.Layout), IntermediateFieldType.String), - }, - typeof(MediaSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MediaSymbolFields - { - DiskId, - LastSequence, - DiskPrompt, - Cabinet, - VolumeLabel, - Source, - CompressionLevel, - Layout, - } - - public class MediaSymbol : IntermediateSymbol - { - public MediaSymbol() : base(SymbolDefinitions.Media, null, null) - { - } - - public MediaSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Media, sourceLineNumber, id) - { - } - - public IntermediateField this[MediaSymbolFields index] => this.Fields[(int)index]; - - public int DiskId - { - get => (int)this.Fields[(int)MediaSymbolFields.DiskId]; - set => this.Set((int)MediaSymbolFields.DiskId, value); - } - - public int? LastSequence - { - get => (int?)this.Fields[(int)MediaSymbolFields.LastSequence]; - set => this.Set((int)MediaSymbolFields.LastSequence, value); - } - - public string DiskPrompt - { - get => (string)this.Fields[(int)MediaSymbolFields.DiskPrompt]; - set => this.Set((int)MediaSymbolFields.DiskPrompt, value); - } - - public string Cabinet - { - get => (string)this.Fields[(int)MediaSymbolFields.Cabinet]; - set => this.Set((int)MediaSymbolFields.Cabinet, value); - } - - public string VolumeLabel - { - get => (string)this.Fields[(int)MediaSymbolFields.VolumeLabel]; - set => this.Set((int)MediaSymbolFields.VolumeLabel, value); - } - - public string Source - { - get => (string)this.Fields[(int)MediaSymbolFields.Source]; - set => this.Set((int)MediaSymbolFields.Source, value); - } - - public CompressionLevel? CompressionLevel - { - get => (CompressionLevel?)this.Fields[(int)MediaSymbolFields.CompressionLevel].AsNullableNumber(); - set => this.Set((int)MediaSymbolFields.CompressionLevel, (int?)value); - } - - public string Layout - { - get => (string)this.Fields[(int)MediaSymbolFields.Layout]; - set => this.Set((int)MediaSymbolFields.Layout, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs deleted file mode 100644 index 287819ab..00000000 --- a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleComponents = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleComponents, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Component), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Language), IntermediateFieldType.Number), - }, - typeof(ModuleComponentsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleComponentsSymbolFields - { - Component, - ModuleID, - Language, - } - - public class ModuleComponentsSymbol : IntermediateSymbol - { - public ModuleComponentsSymbol() : base(SymbolDefinitions.ModuleComponents, null, null) - { - } - - public ModuleComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleComponents, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleComponentsSymbolFields index] => this.Fields[(int)index]; - - public string Component - { - get => (string)this.Fields[(int)ModuleComponentsSymbolFields.Component]; - set => this.Set((int)ModuleComponentsSymbolFields.Component, value); - } - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleComponentsSymbolFields.ModuleID]; - set => this.Set((int)ModuleComponentsSymbolFields.ModuleID, value); - } - - public int Language - { - get => (int)this.Fields[(int)ModuleComponentsSymbolFields.Language]; - set => this.Set((int)ModuleComponentsSymbolFields.Language, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs deleted file mode 100644 index 8188dc87..00000000 --- a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleConfiguration = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleConfiguration, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Format), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.ContextData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DefaultValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.KeyNoOrphan), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.NonNullable), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpLocation), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpKeyword), IntermediateFieldType.String), - }, - typeof(ModuleConfigurationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleConfigurationSymbolFields - { - Format, - Type, - ContextData, - DefaultValue, - KeyNoOrphan, - NonNullable, - DisplayName, - Description, - HelpLocation, - HelpKeyword, - } - - public class ModuleConfigurationSymbol : IntermediateSymbol - { - public ModuleConfigurationSymbol() : base(SymbolDefinitions.ModuleConfiguration, null, null) - { - } - - public ModuleConfigurationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleConfiguration, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleConfigurationSymbolFields index] => this.Fields[(int)index]; - - public int Format - { - get => (int)this.Fields[(int)ModuleConfigurationSymbolFields.Format]; - set => this.Set((int)ModuleConfigurationSymbolFields.Format, value); - } - - public string Type - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Type]; - set => this.Set((int)ModuleConfigurationSymbolFields.Type, value); - } - - public string ContextData - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.ContextData]; - set => this.Set((int)ModuleConfigurationSymbolFields.ContextData, value); - } - - public string DefaultValue - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DefaultValue]; - set => this.Set((int)ModuleConfigurationSymbolFields.DefaultValue, value); - } - - public bool KeyNoOrphan - { - get => this.Fields[(int)ModuleConfigurationSymbolFields.KeyNoOrphan].AsBool(); - set => this.Set((int)ModuleConfigurationSymbolFields.KeyNoOrphan, value); - } - - public bool NonNullable - { - get => this.Fields[(int)ModuleConfigurationSymbolFields.NonNullable].AsBool(); - set => this.Set((int)ModuleConfigurationSymbolFields.NonNullable, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DisplayName]; - set => this.Set((int)ModuleConfigurationSymbolFields.DisplayName, value); - } - - public string Description - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Description]; - set => this.Set((int)ModuleConfigurationSymbolFields.Description, value); - } - - public string HelpLocation - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpLocation]; - set => this.Set((int)ModuleConfigurationSymbolFields.HelpLocation, value); - } - - public string HelpKeyword - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpKeyword]; - set => this.Set((int)ModuleConfigurationSymbolFields.HelpKeyword, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs deleted file mode 100644 index 80d2d5f6..00000000 --- a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleDependency = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleDependency, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredVersion), IntermediateFieldType.String), - }, - typeof(ModuleDependencySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleDependencySymbolFields - { - ModuleID, - ModuleLanguage, - RequiredID, - RequiredLanguage, - RequiredVersion, - } - - public class ModuleDependencySymbol : IntermediateSymbol - { - public ModuleDependencySymbol() : base(SymbolDefinitions.ModuleDependency, null, null) - { - } - - public ModuleDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleDependency, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleDependencySymbolFields index] => this.Fields[(int)index]; - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleDependencySymbolFields.ModuleID]; - set => this.Set((int)ModuleDependencySymbolFields.ModuleID, value); - } - - public int ModuleLanguage - { - get => (int)this.Fields[(int)ModuleDependencySymbolFields.ModuleLanguage]; - set => this.Set((int)ModuleDependencySymbolFields.ModuleLanguage, value); - } - - public string RequiredID - { - get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredID]; - set => this.Set((int)ModuleDependencySymbolFields.RequiredID, value); - } - - public int RequiredLanguage - { - get => (int)this.Fields[(int)ModuleDependencySymbolFields.RequiredLanguage]; - set => this.Set((int)ModuleDependencySymbolFields.RequiredLanguage, value); - } - - public string RequiredVersion - { - get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredVersion]; - set => this.Set((int)ModuleDependencySymbolFields.RequiredVersion, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs deleted file mode 100644 index 0c45abfa..00000000 --- a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleExclusion = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleExclusion, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMaxVersion), IntermediateFieldType.String), - }, - typeof(ModuleExclusionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleExclusionSymbolFields - { - ModuleID, - ModuleLanguage, - ExcludedID, - ExcludedLanguage, - ExcludedMinVersion, - ExcludedMaxVersion, - } - - public class ModuleExclusionSymbol : IntermediateSymbol - { - public ModuleExclusionSymbol() : base(SymbolDefinitions.ModuleExclusion, null, null) - { - } - - public ModuleExclusionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleExclusion, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleExclusionSymbolFields index] => this.Fields[(int)index]; - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ModuleID]; - set => this.Set((int)ModuleExclusionSymbolFields.ModuleID, value); - } - - public int ModuleLanguage - { - get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ModuleLanguage]; - set => this.Set((int)ModuleExclusionSymbolFields.ModuleLanguage, value); - } - - public string ExcludedID - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedID]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedID, value); - } - - public int ExcludedLanguage - { - get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedLanguage]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedLanguage, value); - } - - public string ExcludedMinVersion - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMinVersion]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMinVersion, value); - } - - public string ExcludedMaxVersion - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMaxVersion]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMaxVersion, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs deleted file mode 100644 index 07302df8..00000000 --- a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleIgnoreTable = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleIgnoreTable, - new IntermediateFieldDefinition[] - { - }, - typeof(ModuleIgnoreTableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleIgnoreTableSymbolFields - { - } - - public class ModuleIgnoreTableSymbol : IntermediateSymbol - { - public ModuleIgnoreTableSymbol() : base(SymbolDefinitions.ModuleIgnoreTable, null, null) - { - } - - public ModuleIgnoreTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleIgnoreTable, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleIgnoreTableSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs deleted file mode 100644 index 5f6ded09..00000000 --- a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleSignature = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleSignature, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Version), IntermediateFieldType.String), - }, - typeof(ModuleSignatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleSignatureSymbolFields - { - ModuleID, - Language, - Version, - } - - public class ModuleSignatureSymbol : IntermediateSymbol - { - public ModuleSignatureSymbol() : base(SymbolDefinitions.ModuleSignature, null, null) - { - } - - public ModuleSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSignature, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleSignatureSymbolFields index] => this.Fields[(int)index]; - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleSignatureSymbolFields.ModuleID]; - set => this.Set((int)ModuleSignatureSymbolFields.ModuleID, value); - } - - public int Language - { - get => (int)this.Fields[(int)ModuleSignatureSymbolFields.Language]; - set => this.Set((int)ModuleSignatureSymbolFields.Language, value); - } - - public string Version - { - get => (string)this.Fields[(int)ModuleSignatureSymbolFields.Version]; - set => this.Set((int)ModuleSignatureSymbolFields.Version, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs deleted file mode 100644 index 50d615b0..00000000 --- a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleSubstitution = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleSubstitution, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Row), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Column), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(ModuleSubstitutionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleSubstitutionSymbolFields - { - Table, - Row, - Column, - Value, - } - - public class ModuleSubstitutionSymbol : IntermediateSymbol - { - public ModuleSubstitutionSymbol() : base(SymbolDefinitions.ModuleSubstitution, null, null) - { - } - - public ModuleSubstitutionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSubstitution, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleSubstitutionSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Table]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Table, value); - } - - public string Row - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Row]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Row, value); - } - - public string Column - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Column]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Column, value); - } - - public string Value - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Value]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MoveFileTuple.cs b/src/WixToolset.Data/Tuples/MoveFileTuple.cs deleted file mode 100644 index 84089965..00000000 --- a/src/WixToolset.Data/Tuples/MoveFileTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MoveFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.MoveFile, - new[] - { - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.Delete), IntermediateFieldType.Bool), - }, - typeof(MoveFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MoveFileSymbolFields - { - ComponentRef, - SourceName, - DestName, - SourceFolder, - DestFolder, - Delete, - } - - public class MoveFileSymbol : IntermediateSymbol - { - public MoveFileSymbol() : base(SymbolDefinitions.MoveFile, null, null) - { - } - - public MoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MoveFile, sourceLineNumber, id) - { - } - - public IntermediateField this[MoveFileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)MoveFileSymbolFields.ComponentRef]; - set => this.Set((int)MoveFileSymbolFields.ComponentRef, value); - } - - public string SourceName - { - get => (string)this.Fields[(int)MoveFileSymbolFields.SourceName]; - set => this.Set((int)MoveFileSymbolFields.SourceName, value); - } - - public string DestName - { - get => (string)this.Fields[(int)MoveFileSymbolFields.DestName]; - set => this.Set((int)MoveFileSymbolFields.DestName, value); - } - - public string SourceFolder - { - get => (string)this.Fields[(int)MoveFileSymbolFields.SourceFolder]; - set => this.Set((int)MoveFileSymbolFields.SourceFolder, value); - } - - public string DestFolder - { - get => (string)this.Fields[(int)MoveFileSymbolFields.DestFolder]; - set => this.Set((int)MoveFileSymbolFields.DestFolder, value); - } - - public bool Delete - { - get => (bool)this.Fields[(int)MoveFileSymbolFields.Delete]; - set => this.Set((int)MoveFileSymbolFields.Delete, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs deleted file mode 100644 index 99c9806d..00000000 --- a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiAssemblyName = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiAssemblyName, - new[] - { - new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(MsiAssemblyNameSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiAssemblyNameSymbolFields - { - ComponentRef, - Name, - Value, - } - - public class MsiAssemblyNameSymbol : IntermediateSymbol - { - public MsiAssemblyNameSymbol() : base(SymbolDefinitions.MsiAssemblyName, null, null) - { - } - - public MsiAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiAssemblyName, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiAssemblyNameSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.ComponentRef]; - set => this.Set((int)MsiAssemblyNameSymbolFields.ComponentRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Name]; - set => this.Set((int)MsiAssemblyNameSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Value]; - set => this.Set((int)MsiAssemblyNameSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs deleted file mode 100644 index febd51cc..00000000 --- a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiDigitalCertificate = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiDigitalCertificate, - new[] - { - new IntermediateFieldDefinition(nameof(MsiDigitalCertificateSymbolFields.CertData), IntermediateFieldType.Path), - }, - typeof(MsiDigitalCertificateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiDigitalCertificateSymbolFields - { - CertData, - } - - public class MsiDigitalCertificateSymbol : IntermediateSymbol - { - public MsiDigitalCertificateSymbol() : base(SymbolDefinitions.MsiDigitalCertificate, null, null) - { - } - - public MsiDigitalCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalCertificate, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiDigitalCertificateSymbolFields index] => this.Fields[(int)index]; - - public string CertData - { - get => (string)this.Fields[(int)MsiDigitalCertificateSymbolFields.CertData]; - set => this.Set((int)MsiDigitalCertificateSymbolFields.CertData, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs deleted file mode 100644 index 560f3590..00000000 --- a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiDigitalSignature = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiDigitalSignature, - new[] - { - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.SignObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Hash), IntermediateFieldType.Path), - }, - typeof(MsiDigitalSignatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiDigitalSignatureSymbolFields - { - Table, - SignObject, - DigitalCertificateRef, - Hash, - } - - public class MsiDigitalSignatureSymbol : IntermediateSymbol - { - public MsiDigitalSignatureSymbol() : base(SymbolDefinitions.MsiDigitalSignature, null, null) - { - } - - public MsiDigitalSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalSignature, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiDigitalSignatureSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Table]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.Table, value); - } - - public string SignObject - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.SignObject]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.SignObject, value); - } - - public string DigitalCertificateRef - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef, value); - } - - public string Hash - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Hash]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.Hash, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs deleted file mode 100644 index eeed1673..00000000 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiEmbeddedChainer = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiEmbeddedChainer, - new[] - { - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.CommandLine), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Type), IntermediateFieldType.Number), - }, - typeof(MsiEmbeddedChainerSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiEmbeddedChainerSymbolFields - { - Condition, - CommandLine, - Source, - Type, - } - - public class MsiEmbeddedChainerSymbol : IntermediateSymbol - { - public MsiEmbeddedChainerSymbol() : base(SymbolDefinitions.MsiEmbeddedChainer, null, null) - { - } - - public MsiEmbeddedChainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiEmbeddedChainerSymbolFields index] => this.Fields[(int)index]; - - public string Condition - { - get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Condition]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.Condition, value); - } - - public string CommandLine - { - get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.CommandLine]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.CommandLine, value); - } - - public string Source - { - get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Source]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.Source, value); - } - - public int Type - { - get => (int)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Type]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.Type, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs deleted file mode 100644 index 87c9481a..00000000 --- a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiEmbeddedUI = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiEmbeddedUI, - new[] - { - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.EntryPoint), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.SupportsBasicUI), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.MessageFilter), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.Source), IntermediateFieldType.Path), - }, - typeof(MsiEmbeddedUISymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiEmbeddedUISymbolFields - { - FileName, - EntryPoint, - SupportsBasicUI, - MessageFilter, - Source, - } - - public class MsiEmbeddedUISymbol : IntermediateSymbol - { - public MsiEmbeddedUISymbol() : base(SymbolDefinitions.MsiEmbeddedUI, null, null) - { - } - - public MsiEmbeddedUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedUI, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiEmbeddedUISymbolFields index] => this.Fields[(int)index]; - - public string FileName - { - get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.FileName]; - set => this.Set((int)MsiEmbeddedUISymbolFields.FileName, value); - } - - public bool EntryPoint - { - get => this.Fields[(int)MsiEmbeddedUISymbolFields.EntryPoint].AsBool(); - set => this.Set((int)MsiEmbeddedUISymbolFields.EntryPoint, value); - } - - public bool SupportsBasicUI - { - get => this.Fields[(int)MsiEmbeddedUISymbolFields.SupportsBasicUI].AsBool(); - set => this.Set((int)MsiEmbeddedUISymbolFields.SupportsBasicUI, value); - } - - public int? MessageFilter - { - get => (int?)this.Fields[(int)MsiEmbeddedUISymbolFields.MessageFilter]; - set => this.Set((int)MsiEmbeddedUISymbolFields.MessageFilter, value); - } - - public string Source - { - get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.Source]; - set => this.Set((int)MsiEmbeddedUISymbolFields.Source, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs deleted file mode 100644 index bfec1c12..00000000 --- a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiFileHash = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiFileHash, - new[] - { - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.Options), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart1), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart2), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart3), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart4), IntermediateFieldType.Number), - }, - typeof(MsiFileHashSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiFileHashSymbolFields - { - Options, - HashPart1, - HashPart2, - HashPart3, - HashPart4, - } - - public class MsiFileHashSymbol : IntermediateSymbol - { - public MsiFileHashSymbol() : base(SymbolDefinitions.MsiFileHash, null, null) - { - } - - public MsiFileHashSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiFileHash, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiFileHashSymbolFields index] => this.Fields[(int)index]; - - public int Options - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.Options]; - set => this.Set((int)MsiFileHashSymbolFields.Options, value); - } - - public int HashPart1 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart1]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart1, value); - } - - public int HashPart2 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart2]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart2, value); - } - - public int HashPart3 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart3]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart3, value); - } - - public int HashPart4 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart4]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart4, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs deleted file mode 100644 index 88e7d019..00000000 --- a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiLockPermissionsEx = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiLockPermissionsEx, - new[] - { - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.LockObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.SDDLText), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(MsiLockPermissionsExSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiLockPermissionsExSymbolFields - { - LockObject, - Table, - SDDLText, - Condition, - } - - public class MsiLockPermissionsExSymbol : IntermediateSymbol - { - public MsiLockPermissionsExSymbol() : base(SymbolDefinitions.MsiLockPermissionsEx, null, null) - { - } - - public MsiLockPermissionsExSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiLockPermissionsExSymbolFields index] => this.Fields[(int)index]; - - public string LockObject - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.LockObject]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.LockObject, value); - } - - public string Table - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Table]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.Table, value); - } - - public string SDDLText - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.SDDLText]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.SDDLText, value); - } - - public string Condition - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Condition]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs deleted file mode 100644 index 4a6774b1..00000000 --- a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPackageCertificate = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPackageCertificate, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.PackageCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), - }, - typeof(MsiPackageCertificateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPackageCertificateSymbolFields - { - PackageCertificate, - DigitalCertificateRef, - } - - public class MsiPackageCertificateSymbol : IntermediateSymbol - { - public MsiPackageCertificateSymbol() : base(SymbolDefinitions.MsiPackageCertificate, null, null) - { - } - - public MsiPackageCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPackageCertificate, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPackageCertificateSymbolFields index] => this.Fields[(int)index]; - - public string PackageCertificate - { - get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.PackageCertificate]; - set => this.Set((int)MsiPackageCertificateSymbolFields.PackageCertificate, value); - } - - public string DigitalCertificateRef - { - get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.DigitalCertificateRef]; - set => this.Set((int)MsiPackageCertificateSymbolFields.DigitalCertificateRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs deleted file mode 100644 index 7d6ce24e..00000000 --- a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchCertificate = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchCertificate, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.PatchCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), - }, - typeof(MsiPatchCertificateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchCertificateSymbolFields - { - PatchCertificate, - DigitalCertificateRef, - } - - public class MsiPatchCertificateSymbol : IntermediateSymbol - { - public MsiPatchCertificateSymbol() : base(SymbolDefinitions.MsiPatchCertificate, null, null) - { - } - - public MsiPatchCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchCertificate, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchCertificateSymbolFields index] => this.Fields[(int)index]; - - public string PatchCertificate - { - get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.PatchCertificate]; - set => this.Set((int)MsiPatchCertificateSymbolFields.PatchCertificate, value); - } - - public string DigitalCertificateRef - { - get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.DigitalCertificateRef]; - set => this.Set((int)MsiPatchCertificateSymbolFields.DigitalCertificateRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs deleted file mode 100644 index 0c68b164..00000000 --- a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchHeaders = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchHeaders, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.StreamRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.Header), IntermediateFieldType.Path), - }, - typeof(MsiPatchHeadersSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchHeadersSymbolFields - { - StreamRef, - Header, - } - - public class MsiPatchHeadersSymbol : IntermediateSymbol - { - public MsiPatchHeadersSymbol() : base(SymbolDefinitions.MsiPatchHeaders, null, null) - { - } - - public MsiPatchHeadersSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchHeaders, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchHeadersSymbolFields index] => this.Fields[(int)index]; - - public string StreamRef - { - get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.StreamRef]; - set => this.Set((int)MsiPatchHeadersSymbolFields.StreamRef, value); - } - - public string Header - { - get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.Header]; - set => this.Set((int)MsiPatchHeadersSymbolFields.Header, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs deleted file mode 100644 index 682adbca..00000000 --- a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchMetadata = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchMetadata, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Company), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(MsiPatchMetadataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchMetadataSymbolFields - { - Company, - Property, - Value, - } - - public class MsiPatchMetadataSymbol : IntermediateSymbol - { - public MsiPatchMetadataSymbol() : base(SymbolDefinitions.MsiPatchMetadata, null, null) - { - } - - public MsiPatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchMetadata, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchMetadataSymbolFields index] => this.Fields[(int)index]; - - public string Company - { - get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Company]; - set => this.Set((int)MsiPatchMetadataSymbolFields.Company, value); - } - - public string Property - { - get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Property]; - set => this.Set((int)MsiPatchMetadataSymbolFields.Property, value); - } - - public string Value - { - get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Value]; - set => this.Set((int)MsiPatchMetadataSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs deleted file mode 100644 index 75385ba8..00000000 --- a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchOldAssemblyFile, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.AssemblyRef), IntermediateFieldType.String), - }, - typeof(MsiPatchOldAssemblyFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchOldAssemblyFileSymbolFields - { - FileRef, - AssemblyRef, - } - - public class MsiPatchOldAssemblyFileSymbol : IntermediateSymbol - { - public MsiPatchOldAssemblyFileSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyFile, null, null) - { - } - - public MsiPatchOldAssemblyFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchOldAssemblyFileSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.FileRef]; - set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.FileRef, value); - } - - public string AssemblyRef - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef]; - set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs deleted file mode 100644 index 199f5ff7..00000000 --- a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyName = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchOldAssemblyName, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Assembly), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(MsiPatchOldAssemblyNameSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchOldAssemblyNameSymbolFields - { - Assembly, - Name, - Value, - } - - public class MsiPatchOldAssemblyNameSymbol : IntermediateSymbol - { - public MsiPatchOldAssemblyNameSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyName, null, null) - { - } - - public MsiPatchOldAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchOldAssemblyNameSymbolFields index] => this.Fields[(int)index]; - - public string Assembly - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Assembly]; - set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Assembly, value); - } - - public string Name - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Name]; - set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Value]; - set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs deleted file mode 100644 index ac2b0dc4..00000000 --- a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchSequence = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchSequence, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(MsiPatchSequenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchSequenceSymbolFields - { - PatchFamily, - ProductCode, - Sequence, - Attributes, - } - - public class MsiPatchSequenceSymbol : IntermediateSymbol - { - public MsiPatchSequenceSymbol() : base(SymbolDefinitions.MsiPatchSequence, null, null) - { - } - - public MsiPatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchSequenceSymbolFields index] => this.Fields[(int)index]; - - public string PatchFamily - { - get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.PatchFamily]; - set => this.Set((int)MsiPatchSequenceSymbolFields.PatchFamily, value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.ProductCode]; - set => this.Set((int)MsiPatchSequenceSymbolFields.ProductCode, value); - } - - public string Sequence - { - get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.Sequence]; - set => this.Set((int)MsiPatchSequenceSymbolFields.Sequence, value); - } - - public int? Attributes - { - get => (int?)this.Fields[(int)MsiPatchSequenceSymbolFields.Attributes]; - set => this.Set((int)MsiPatchSequenceSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs deleted file mode 100644 index 92ca4059..00000000 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiServiceConfigFailureActions = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiServiceConfigFailureActions, - new[] - { - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ResetPeriod), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.RebootMessage), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Command), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Actions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.DelayActions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(MsiServiceConfigFailureActionsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiServiceConfigFailureActionsSymbolFields - { - Name, - OnInstall, - OnReinstall, - OnUninstall, - ResetPeriod, - RebootMessage, - Command, - Actions, - DelayActions, - ComponentRef, - } - - public class MsiServiceConfigFailureActionsSymbol : IntermediateSymbol - { - public MsiServiceConfigFailureActionsSymbol() : base(SymbolDefinitions.MsiServiceConfigFailureActions, null, null) - { - } - - public MsiServiceConfigFailureActionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiServiceConfigFailureActionsSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Name]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Name, value); - } - - public bool OnInstall - { - get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnInstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnInstall, value); - } - - public bool OnReinstall - { - get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall, value); - } - - public bool OnUninstall - { - get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall, value); - } - - public int? ResetPeriod - { - get => (int?)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod, value); - } - - public string RebootMessage - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage, value); - } - - public string Command - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Command]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Command, value); - } - - public string Actions - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Actions]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Actions, value); - } - - public string DelayActions - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.DelayActions]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.DelayActions, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs deleted file mode 100644 index 9ad72d1e..00000000 --- a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs +++ /dev/null @@ -1,101 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiServiceConfig = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiServiceConfig, - new[] - { - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ConfigType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(MsiServiceConfigSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiServiceConfigSymbolFields - { - Name, - OnInstall, - OnReinstall, - OnUninstall, - ConfigType, - Argument, - ComponentRef, - } - - public enum MsiServiceConfigType - { - DelayedAutoStart = 3, - FailureActionsFlag, - ServiceSidInfo, - RequiredPrivilegesInfo, - PreshutdownInfo, - } - - public class MsiServiceConfigSymbol : IntermediateSymbol - { - public MsiServiceConfigSymbol() : base(SymbolDefinitions.MsiServiceConfig, null, null) - { - } - - public MsiServiceConfigSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfig, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiServiceConfigSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Name]; - set => this.Set((int)MsiServiceConfigSymbolFields.Name, value); - } - - public bool OnInstall - { - get => this.Fields[(int)MsiServiceConfigSymbolFields.OnInstall].AsBool(); - set => this.Set((int)MsiServiceConfigSymbolFields.OnInstall, value); - } - - public bool OnReinstall - { - get => this.Fields[(int)MsiServiceConfigSymbolFields.OnReinstall].AsBool(); - set => this.Set((int)MsiServiceConfigSymbolFields.OnReinstall, value); - } - - public bool OnUninstall - { - get => this.Fields[(int)MsiServiceConfigSymbolFields.OnUninstall].AsBool(); - set => this.Set((int)MsiServiceConfigSymbolFields.OnUninstall, value); - } - - public MsiServiceConfigType ConfigType - { - get => (MsiServiceConfigType)this.Fields[(int)MsiServiceConfigSymbolFields.ConfigType].AsNumber(); - set => this.Set((int)MsiServiceConfigSymbolFields.ConfigType, (int)value); - } - - public string Argument - { - get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Argument]; - set => this.Set((int)MsiServiceConfigSymbolFields.Argument, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.ComponentRef]; - set => this.Set((int)MsiServiceConfigSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs deleted file mode 100644 index 5d5a46e5..00000000 --- a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiShortcutProperty = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiShortcutProperty, - new[] - { - new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.ShortcutRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropertyKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropVariantValue), IntermediateFieldType.String), - }, - typeof(MsiShortcutPropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiShortcutPropertySymbolFields - { - ShortcutRef, - PropertyKey, - PropVariantValue, - } - - public class MsiShortcutPropertySymbol : IntermediateSymbol - { - public MsiShortcutPropertySymbol() : base(SymbolDefinitions.MsiShortcutProperty, null, null) - { - } - - public MsiShortcutPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiShortcutProperty, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiShortcutPropertySymbolFields index] => this.Fields[(int)index]; - - public string ShortcutRef - { - get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.ShortcutRef]; - set => this.Set((int)MsiShortcutPropertySymbolFields.ShortcutRef, value); - } - - public string PropertyKey - { - get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropertyKey]; - set => this.Set((int)MsiShortcutPropertySymbolFields.PropertyKey, value); - } - - public string PropVariantValue - { - get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropVariantValue]; - set => this.Set((int)MsiShortcutPropertySymbolFields.PropVariantValue, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs deleted file mode 100644 index 45ca6ed8..00000000 --- a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCAttribute = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCAttribute, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.DriverRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Attribute), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(ODBCAttributeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCAttributeSymbolFields - { - DriverRef, - Attribute, - Value, - } - - public class ODBCAttributeSymbol : IntermediateSymbol - { - public ODBCAttributeSymbol() : base(SymbolDefinitions.ODBCAttribute, null, null) - { - } - - public ODBCAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCAttribute, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCAttributeSymbolFields index] => this.Fields[(int)index]; - - public string DriverRef - { - get => (string)this.Fields[(int)ODBCAttributeSymbolFields.DriverRef]; - set => this.Set((int)ODBCAttributeSymbolFields.DriverRef, value); - } - - public string Attribute - { - get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Attribute]; - set => this.Set((int)ODBCAttributeSymbolFields.Attribute, value); - } - - public string Value - { - get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Value]; - set => this.Set((int)ODBCAttributeSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs deleted file mode 100644 index 6af140bd..00000000 --- a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCDataSource = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCDataSource, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.DriverDescription), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Registration), IntermediateFieldType.Number), - }, - typeof(ODBCDataSourceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCDataSourceSymbolFields - { - ComponentRef, - Description, - DriverDescription, - Registration, - } - - public class ODBCDataSourceSymbol : IntermediateSymbol - { - public ODBCDataSourceSymbol() : base(SymbolDefinitions.ODBCDataSource, null, null) - { - } - - public ODBCDataSourceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDataSource, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCDataSourceSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.ComponentRef]; - set => this.Set((int)ODBCDataSourceSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.Description]; - set => this.Set((int)ODBCDataSourceSymbolFields.Description, value); - } - - public string DriverDescription - { - get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.DriverDescription]; - set => this.Set((int)ODBCDataSourceSymbolFields.DriverDescription, value); - } - - public int Registration - { - get => (int)this.Fields[(int)ODBCDataSourceSymbolFields.Registration]; - set => this.Set((int)ODBCDataSourceSymbolFields.Registration, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs deleted file mode 100644 index b31cc4cb..00000000 --- a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCDriver = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCDriver, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.SetupFileRef), IntermediateFieldType.String), - }, - typeof(ODBCDriverSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCDriverSymbolFields - { - ComponentRef, - Description, - FileRef, - SetupFileRef, - } - - public class ODBCDriverSymbol : IntermediateSymbol - { - public ODBCDriverSymbol() : base(SymbolDefinitions.ODBCDriver, null, null) - { - } - - public ODBCDriverSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDriver, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCDriverSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.ComponentRef]; - set => this.Set((int)ODBCDriverSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.Description]; - set => this.Set((int)ODBCDriverSymbolFields.Description, value); - } - - public string FileRef - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.FileRef]; - set => this.Set((int)ODBCDriverSymbolFields.FileRef, value); - } - - public string SetupFileRef - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.SetupFileRef]; - set => this.Set((int)ODBCDriverSymbolFields.SetupFileRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs deleted file mode 100644 index 2e25a5f7..00000000 --- a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCSourceAttribute = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCSourceAttribute, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.DataSourceRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Attribute), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(ODBCSourceAttributeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCSourceAttributeSymbolFields - { - DataSourceRef, - Attribute, - Value, - } - - public class ODBCSourceAttributeSymbol : IntermediateSymbol - { - public ODBCSourceAttributeSymbol() : base(SymbolDefinitions.ODBCSourceAttribute, null, null) - { - } - - public ODBCSourceAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCSourceAttribute, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCSourceAttributeSymbolFields index] => this.Fields[(int)index]; - - public string DataSourceRef - { - get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.DataSourceRef]; - set => this.Set((int)ODBCSourceAttributeSymbolFields.DataSourceRef, value); - } - - public string Attribute - { - get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Attribute]; - set => this.Set((int)ODBCSourceAttributeSymbolFields.Attribute, value); - } - - public string Value - { - get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Value]; - set => this.Set((int)ODBCSourceAttributeSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs deleted file mode 100644 index c444b834..00000000 --- a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCTranslator = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCTranslator, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.SetupFileRef), IntermediateFieldType.String), - }, - typeof(ODBCTranslatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCTranslatorSymbolFields - { - ComponentRef, - Description, - FileRef, - SetupFileRef, - } - - public class ODBCTranslatorSymbol : IntermediateSymbol - { - public ODBCTranslatorSymbol() : base(SymbolDefinitions.ODBCTranslator, null, null) - { - } - - public ODBCTranslatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCTranslator, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCTranslatorSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.ComponentRef]; - set => this.Set((int)ODBCTranslatorSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.Description]; - set => this.Set((int)ODBCTranslatorSymbolFields.Description, value); - } - - public string FileRef - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.FileRef]; - set => this.Set((int)ODBCTranslatorSymbolFields.FileRef, value); - } - - public string SetupFileRef - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.SetupFileRef]; - set => this.Set((int)ODBCTranslatorSymbolFields.SetupFileRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs deleted file mode 100644 index 3f67aef7..00000000 --- a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PatchMetadata = new IntermediateSymbolDefinition( - SymbolDefinitionType.PatchMetadata, - new[] - { - new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Company), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(PatchMetadataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PatchMetadataSymbolFields - { - Company, - Property, - Value, - } - - public class PatchMetadataSymbol : IntermediateSymbol - { - public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null) - { - } - - public PatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchMetadata, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchMetadataSymbolFields index] => this.Fields[(int)index]; - - public string Company - { - get => (string)this.Fields[(int)PatchMetadataSymbolFields.Company]; - set => this.Set((int)PatchMetadataSymbolFields.Company, value); - } - - public string Property - { - get => (string)this.Fields[(int)PatchMetadataSymbolFields.Property]; - set => this.Set((int)PatchMetadataSymbolFields.Property, value); - } - - public string Value - { - get => (string)this.Fields[(int)PatchMetadataSymbolFields.Value]; - set => this.Set((int)PatchMetadataSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs deleted file mode 100644 index 0efdfd25..00000000 --- a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PatchPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.PatchPackage, - new[] - { - new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.PatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.MediaDiskIdRef), IntermediateFieldType.Number), - }, - typeof(PatchPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PatchPackageSymbolFields - { - PatchId, - MediaDiskIdRef, - } - - public class PatchPackageSymbol : IntermediateSymbol - { - public PatchPackageSymbol() : base(SymbolDefinitions.PatchPackage, null, null) - { - } - - public PatchPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchPackageSymbolFields index] => this.Fields[(int)index]; - - public string PatchId - { - get => (string)this.Fields[(int)PatchPackageSymbolFields.PatchId]; - set => this.Set((int)PatchPackageSymbolFields.PatchId, value); - } - - public int MediaDiskIdRef - { - get => (int)this.Fields[(int)PatchPackageSymbolFields.MediaDiskIdRef]; - set => this.Set((int)PatchPackageSymbolFields.MediaDiskIdRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs deleted file mode 100644 index a4cbca61..00000000 --- a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PatchSequence = new IntermediateSymbolDefinition( - SymbolDefinitionType.PatchSequence, - new[] - { - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Supersede), IntermediateFieldType.Number), - }, - typeof(PatchSequenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PatchSequenceSymbolFields - { - PatchFamily, - Target, - Sequence, - Supersede, - } - - public class PatchSequenceSymbol : IntermediateSymbol - { - public PatchSequenceSymbol() : base(SymbolDefinitions.PatchSequence, null, null) - { - } - - public PatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchSequenceSymbolFields index] => this.Fields[(int)index]; - - public string PatchFamily - { - get => (string)this.Fields[(int)PatchSequenceSymbolFields.PatchFamily]; - set => this.Set((int)PatchSequenceSymbolFields.PatchFamily, value); - } - - public string Target - { - get => (string)this.Fields[(int)PatchSequenceSymbolFields.Target]; - set => this.Set((int)PatchSequenceSymbolFields.Target, value); - } - - public string Sequence - { - get => (string)this.Fields[(int)PatchSequenceSymbolFields.Sequence]; - set => this.Set((int)PatchSequenceSymbolFields.Sequence, value); - } - - public int? Supersede - { - get => (int?)this.Fields[(int)PatchSequenceSymbolFields.Supersede]; - set => this.Set((int)PatchSequenceSymbolFields.Supersede, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PatchTuple.cs b/src/WixToolset.Data/Tuples/PatchTuple.cs deleted file mode 100644 index 31e68d76..00000000 --- a/src/WixToolset.Data/Tuples/PatchTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Patch = new IntermediateSymbolDefinition( - SymbolDefinitionType.Patch, - new[] - { - new IntermediateFieldDefinition(nameof(PatchSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.PatchSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.Header), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.StreamRef), IntermediateFieldType.String), - }, - typeof(PatchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PatchSymbolFields - { - FileRef, - Sequence, - PatchSize, - Attributes, - Header, - StreamRef, - } - - public class PatchSymbol : IntermediateSymbol - { - public PatchSymbol() : base(SymbolDefinitions.Patch, null, null) - { - } - - public PatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Patch, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)PatchSymbolFields.FileRef]; - set => this.Set((int)PatchSymbolFields.FileRef, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)PatchSymbolFields.Sequence]; - set => this.Set((int)PatchSymbolFields.Sequence, value); - } - - public int PatchSize - { - get => (int)this.Fields[(int)PatchSymbolFields.PatchSize]; - set => this.Set((int)PatchSymbolFields.PatchSize, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)PatchSymbolFields.Attributes]; - set => this.Set((int)PatchSymbolFields.Attributes, value); - } - - public string Header - { - get => (string)this.Fields[(int)PatchSymbolFields.Header]; - set => this.Set((int)PatchSymbolFields.Header, value); - } - - public string StreamRef - { - get => (string)this.Fields[(int)PatchSymbolFields.StreamRef]; - set => this.Set((int)PatchSymbolFields.StreamRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ProgIdTuple.cs b/src/WixToolset.Data/Tuples/ProgIdTuple.cs deleted file mode 100644 index 57ac758f..00000000 --- a/src/WixToolset.Data/Tuples/ProgIdTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ProgId = new IntermediateSymbolDefinition( - SymbolDefinitionType.ProgId, - new[] - { - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ProgId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ParentProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ClassRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconIndex), IntermediateFieldType.Number), - }, - typeof(ProgIdSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ProgIdSymbolFields - { - ProgId, - ParentProgIdRef, - ClassRef, - Description, - IconRef, - IconIndex, - } - - public class ProgIdSymbol : IntermediateSymbol - { - public ProgIdSymbol() : base(SymbolDefinitions.ProgId, null, null) - { - } - - public ProgIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProgId, sourceLineNumber, id) - { - } - - public IntermediateField this[ProgIdSymbolFields index] => this.Fields[(int)index]; - - public string ProgId - { - get => (string)this.Fields[(int)ProgIdSymbolFields.ProgId]; - set => this.Set((int)ProgIdSymbolFields.ProgId, value); - } - - public string ParentProgIdRef - { - get => (string)this.Fields[(int)ProgIdSymbolFields.ParentProgIdRef]; - set => this.Set((int)ProgIdSymbolFields.ParentProgIdRef, value); - } - - public string ClassRef - { - get => (string)this.Fields[(int)ProgIdSymbolFields.ClassRef]; - set => this.Set((int)ProgIdSymbolFields.ClassRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ProgIdSymbolFields.Description]; - set => this.Set((int)ProgIdSymbolFields.Description, value); - } - - public string IconRef - { - get => (string)this.Fields[(int)ProgIdSymbolFields.IconRef]; - set => this.Set((int)ProgIdSymbolFields.IconRef, value); - } - - public int? IconIndex - { - get => (int?)this.Fields[(int)ProgIdSymbolFields.IconIndex]; - set => this.Set((int)ProgIdSymbolFields.IconIndex, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PropertiesTuple.cs b/src/WixToolset.Data/Tuples/PropertiesTuple.cs deleted file mode 100644 index 61059aa6..00000000 --- a/src/WixToolset.Data/Tuples/PropertiesTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Properties = new IntermediateSymbolDefinition( - SymbolDefinitionType.Properties, - new[] - { - new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(PropertiesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PropertiesSymbolFields - { - Name, - Value, - } - - public class PropertiesSymbol : IntermediateSymbol - { - public PropertiesSymbol() : base(SymbolDefinitions.Properties, null, null) - { - } - - public PropertiesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Properties, sourceLineNumber, id) - { - } - - public IntermediateField this[PropertiesSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)PropertiesSymbolFields.Name]; - set => this.Set((int)PropertiesSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)PropertiesSymbolFields.Value]; - set => this.Set((int)PropertiesSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/PropertyTuple.cs b/src/WixToolset.Data/Tuples/PropertyTuple.cs deleted file mode 100644 index b93d962a..00000000 --- a/src/WixToolset.Data/Tuples/PropertyTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Property = new IntermediateSymbolDefinition( - SymbolDefinitionType.Property, - new[] - { - new IntermediateFieldDefinition(nameof(PropertySymbolFields.Value), IntermediateFieldType.String), - }, - typeof(PropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PropertySymbolFields - { - Value, - } - - public class PropertySymbol : IntermediateSymbol - { - public PropertySymbol() : base(SymbolDefinitions.Property, null, null) - { - } - - public PropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Property, sourceLineNumber, id) - { - } - - public IntermediateField this[PropertySymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)PropertySymbolFields.Value]; - set => this.Set((int)PropertySymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs b/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs deleted file mode 100644 index 8d8cb02b..00000000 --- a/src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ProvidesDependency = new IntermediateSymbolDefinition( - SymbolDefinitionType.ProvidesDependency, - new[] - { - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Imported), IntermediateFieldType.Bool), - }, - typeof(ProvidesDependencySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ProvidesDependencySymbolFields - { - PackageRef, - Key, - Version, - DisplayName, - Attributes, - Imported, - } - - public class ProvidesDependencySymbol : IntermediateSymbol - { - public ProvidesDependencySymbol() : base(SymbolDefinitions.ProvidesDependency, null, null) - { - } - - public ProvidesDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProvidesDependency, sourceLineNumber, id) - { - } - - public IntermediateField this[ProvidesDependencySymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.PackageRef]; - set => this.Set((int)ProvidesDependencySymbolFields.PackageRef, value); - } - - public string Key - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Key]; - set => this.Set((int)ProvidesDependencySymbolFields.Key, value); - } - - public string Version - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Version]; - set => this.Set((int)ProvidesDependencySymbolFields.Version, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.DisplayName]; - set => this.Set((int)ProvidesDependencySymbolFields.DisplayName, value); - } - - public int? Attributes - { - get => (int?)this.Fields[(int)ProvidesDependencySymbolFields.Attributes]; - set => this.Set((int)ProvidesDependencySymbolFields.Attributes, value); - } - - public bool Imported - { - get => (bool)this.Fields[(int)ProvidesDependencySymbolFields.Imported]; - set => this.Set((int)ProvidesDependencySymbolFields.Imported, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs deleted file mode 100644 index 3fb81801..00000000 --- a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PublishComponent = new IntermediateSymbolDefinition( - SymbolDefinitionType.PublishComponent, - new[] - { - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.Qualifier), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.AppData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.FeatureRef), IntermediateFieldType.String), - }, - typeof(PublishComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PublishComponentSymbolFields - { - ComponentId, - Qualifier, - ComponentRef, - AppData, - FeatureRef, - } - - public class PublishComponentSymbol : IntermediateSymbol - { - public PublishComponentSymbol() : base(SymbolDefinitions.PublishComponent, null, null) - { - } - - public PublishComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PublishComponent, sourceLineNumber, id) - { - } - - public IntermediateField this[PublishComponentSymbolFields index] => this.Fields[(int)index]; - - public string ComponentId - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentId]; - set => this.Set((int)PublishComponentSymbolFields.ComponentId, value); - } - - public string Qualifier - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.Qualifier]; - set => this.Set((int)PublishComponentSymbolFields.Qualifier, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentRef]; - set => this.Set((int)PublishComponentSymbolFields.ComponentRef, value); - } - - public string AppData - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.AppData]; - set => this.Set((int)PublishComponentSymbolFields.AppData, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.FeatureRef]; - set => this.Set((int)PublishComponentSymbolFields.FeatureRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs deleted file mode 100644 index 6a26e937..00000000 --- a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs +++ /dev/null @@ -1,108 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RadioButton = new IntermediateSymbolDefinition( - SymbolDefinitionType.RadioButton, - new[] - { - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Help), IntermediateFieldType.String), - }, - typeof(RadioButtonSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RadioButtonSymbolFields - { - Property, - Order, - Value, - X, - Y, - Width, - Height, - Text, - Help, - } - - public class RadioButtonSymbol : IntermediateSymbol - { - public RadioButtonSymbol() : base(SymbolDefinitions.RadioButton, null, null) - { - } - - public RadioButtonSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RadioButton, sourceLineNumber, id) - { - } - - public IntermediateField this[RadioButtonSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Property]; - set => this.Set((int)RadioButtonSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Order]; - set => this.Set((int)RadioButtonSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Value]; - set => this.Set((int)RadioButtonSymbolFields.Value, value); - } - - public int X - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.X]; - set => this.Set((int)RadioButtonSymbolFields.X, value); - } - - public int Y - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Y]; - set => this.Set((int)RadioButtonSymbolFields.Y, value); - } - - public int Width - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Width]; - set => this.Set((int)RadioButtonSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Height]; - set => this.Set((int)RadioButtonSymbolFields.Height, value); - } - - public string Text - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Text]; - set => this.Set((int)RadioButtonSymbolFields.Text, value); - } - - public string Help - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Help]; - set => this.Set((int)RadioButtonSymbolFields.Help, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs deleted file mode 100644 index bf50dab7..00000000 --- a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs +++ /dev/null @@ -1,83 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RegLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.RegLocator, - new[] - { - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Win64), IntermediateFieldType.Bool), - }, - typeof(RegLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RegLocatorSymbolFields - { - Root, - Key, - Name, - Type, - Win64, - } - - public enum RegLocatorType - { - Directory, - FileName, - Raw - }; - - public class RegLocatorSymbol : IntermediateSymbol - { - public RegLocatorSymbol() : base(SymbolDefinitions.RegLocator, null, null) - { - } - - public RegLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RegLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[RegLocatorSymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)RegLocatorSymbolFields.Root].AsNumber(); - set => this.Set((int)RegLocatorSymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)RegLocatorSymbolFields.Key]; - set => this.Set((int)RegLocatorSymbolFields.Key, value); - } - - public string Name - { - get => (string)this.Fields[(int)RegLocatorSymbolFields.Name]; - set => this.Set((int)RegLocatorSymbolFields.Name, value); - } - - public RegLocatorType Type - { - get => (RegLocatorType)this.Fields[(int)RegLocatorSymbolFields.Type].AsNumber(); - set => this.Set((int)RegLocatorSymbolFields.Type, (int)value); - } - - public bool Win64 - { - get => this.Fields[(int)RegLocatorSymbolFields.Win64].AsBool(); - set => this.Set((int)RegLocatorSymbolFields.Win64, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/RegistryRootType.cs b/src/WixToolset.Data/Tuples/RegistryRootType.cs deleted file mode 100644 index 9f60727c..00000000 --- a/src/WixToolset.Data/Tuples/RegistryRootType.cs +++ /dev/null @@ -1,21 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - using System; - - /// - /// Registry root mapping. - /// - public enum RegistryRootType - { - Unknown = Int32.MaxValue, - - /// HKLM in a per-machine and HKCU in per-user. - MachineUser = -1, - ClassesRoot = 0, - CurrentUser = 1, - LocalMachine = 2, - Users = 3 - } -} diff --git a/src/WixToolset.Data/Tuples/RegistryTuple.cs b/src/WixToolset.Data/Tuples/RegistryTuple.cs deleted file mode 100644 index 371bfe98..00000000 --- a/src/WixToolset.Data/Tuples/RegistryTuple.cs +++ /dev/null @@ -1,108 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Registry = new IntermediateSymbolDefinition( - SymbolDefinitionType.Registry, - new[] - { - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueAction), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(RegistrySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RegistrySymbolFields - { - Root, - Key, - Name, - Value, - ValueType, - ValueAction, - ComponentRef, - } - - public enum RegistryValueType - { - String, - Binary, - Expandable, - Integer, - MultiString, - } - - public enum RegistryValueActionType - { - Write, - Append, - Prepend, - } - - public class RegistrySymbol : IntermediateSymbol - { - public RegistrySymbol() : base(SymbolDefinitions.Registry, null, null) - { - } - - public RegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Registry, sourceLineNumber, id) - { - } - - public IntermediateField this[RegistrySymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)RegistrySymbolFields.Root].AsNumber(); - set => this.Set((int)RegistrySymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)RegistrySymbolFields.Key]; - set => this.Set((int)RegistrySymbolFields.Key, value); - } - - public string Name - { - get => (string)this.Fields[(int)RegistrySymbolFields.Name]; - set => this.Set((int)RegistrySymbolFields.Name, value); - } - - public string Value - { - get => this.Fields[(int)RegistrySymbolFields.Value].AsString(); - set => this.Set((int)RegistrySymbolFields.Value, value); - } - - public RegistryValueType ValueType - { - get => (RegistryValueType)this.Fields[(int)RegistrySymbolFields.ValueType].AsNumber(); - set => this.Set((int)RegistrySymbolFields.ValueType, (int)value); - } - - public RegistryValueActionType ValueAction - { - get => (RegistryValueActionType)this.Fields[(int)RegistrySymbolFields.ValueAction].AsNumber(); - set => this.Set((int)RegistrySymbolFields.ValueAction, (int)value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)RegistrySymbolFields.ComponentRef]; - set => this.Set((int)RegistrySymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs deleted file mode 100644 index a1791e54..00000000 --- a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RemoveFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.RemoveFile, - new[] - { - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.DirProperty), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnUninstall), IntermediateFieldType.Bool), - }, - typeof(RemoveFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RemoveFileSymbolFields - { - ComponentRef, - FileName, - DirProperty, - OnInstall, - OnUninstall, - } - - public class RemoveFileSymbol : IntermediateSymbol - { - public RemoveFileSymbol() : base(SymbolDefinitions.RemoveFile, null, null) - { - } - - public RemoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveFile, sourceLineNumber, id) - { - } - - public IntermediateField this[RemoveFileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)RemoveFileSymbolFields.ComponentRef]; - set => this.Set((int)RemoveFileSymbolFields.ComponentRef, value); - } - - public string FileName - { - get => (string)this.Fields[(int)RemoveFileSymbolFields.FileName]; - set => this.Set((int)RemoveFileSymbolFields.FileName, value); - } - - public string DirProperty - { - get => (string)this.Fields[(int)RemoveFileSymbolFields.DirProperty]; - set => this.Set((int)RemoveFileSymbolFields.DirProperty, value); - } - - public bool? OnInstall - { - get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnInstall]; - set => this.Set((int)RemoveFileSymbolFields.OnInstall, value); - } - - public bool? OnUninstall - { - get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnUninstall]; - set => this.Set((int)RemoveFileSymbolFields.OnUninstall, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs deleted file mode 100644 index a797cd33..00000000 --- a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs +++ /dev/null @@ -1,82 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RemoveRegistry = new IntermediateSymbolDefinition( - SymbolDefinitionType.RemoveRegistry, - new[] - { - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(RemoveRegistrySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RemoveRegistrySymbolFields - { - Root, - Key, - Name, - Action, - ComponentRef, - } - - public enum RemoveRegistryActionType - { - RemoveOnInstall, - RemoveOnUninstall - }; - - public class RemoveRegistrySymbol : IntermediateSymbol - { - public RemoveRegistrySymbol() : base(SymbolDefinitions.RemoveRegistry, null, null) - { - } - - public RemoveRegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveRegistry, sourceLineNumber, id) - { - } - - public IntermediateField this[RemoveRegistrySymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)RemoveRegistrySymbolFields.Root].AsNumber(); - set => this.Set((int)RemoveRegistrySymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Key]; - set => this.Set((int)RemoveRegistrySymbolFields.Key, value); - } - - public string Name - { - get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Name]; - set => this.Set((int)RemoveRegistrySymbolFields.Name, value); - } - - public RemoveRegistryActionType Action - { - get => (RemoveRegistryActionType)this.Fields[(int)RemoveRegistrySymbolFields.Action].AsNumber(); - set => this.Set((int)RemoveRegistrySymbolFields.Action, (int)value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)RemoveRegistrySymbolFields.ComponentRef]; - set => this.Set((int)RemoveRegistrySymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs deleted file mode 100644 index b59dea2f..00000000 --- a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ReserveCost = new IntermediateSymbolDefinition( - SymbolDefinitionType.ReserveCost, - new[] - { - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveLocal), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveSource), IntermediateFieldType.Number), - }, - typeof(ReserveCostSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ReserveCostSymbolFields - { - ComponentRef, - ReserveFolder, - ReserveLocal, - ReserveSource, - } - - public class ReserveCostSymbol : IntermediateSymbol - { - public ReserveCostSymbol() : base(SymbolDefinitions.ReserveCost, null, null) - { - } - - public ReserveCostSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ReserveCost, sourceLineNumber, id) - { - } - - public IntermediateField this[ReserveCostSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ReserveCostSymbolFields.ComponentRef]; - set => this.Set((int)ReserveCostSymbolFields.ComponentRef, value); - } - - public string ReserveFolder - { - get => (string)this.Fields[(int)ReserveCostSymbolFields.ReserveFolder]; - set => this.Set((int)ReserveCostSymbolFields.ReserveFolder, value); - } - - public int ReserveLocal - { - get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveLocal]; - set => this.Set((int)ReserveCostSymbolFields.ReserveLocal, value); - } - - public int ReserveSource - { - get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveSource]; - set => this.Set((int)ReserveCostSymbolFields.ReserveSource, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs deleted file mode 100644 index 0d3f1558..00000000 --- a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition SFPCatalog = new IntermediateSymbolDefinition( - SymbolDefinitionType.SFPCatalog, - new[] - { - new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.SFPCatalog), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Catalog), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Dependency), IntermediateFieldType.String), - }, - typeof(SFPCatalogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum SFPCatalogSymbolFields - { - SFPCatalog, - Catalog, - Dependency, - } - - public class SFPCatalogSymbol : IntermediateSymbol - { - public SFPCatalogSymbol() : base(SymbolDefinitions.SFPCatalog, null, null) - { - } - - public SFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SFPCatalog, sourceLineNumber, id) - { - } - - public IntermediateField this[SFPCatalogSymbolFields index] => this.Fields[(int)index]; - - public string SFPCatalog - { - get => (string)this.Fields[(int)SFPCatalogSymbolFields.SFPCatalog]; - set => this.Set((int)SFPCatalogSymbolFields.SFPCatalog, value); - } - - public string Catalog - { - get => (string)this.Fields[(int)SFPCatalogSymbolFields.Catalog]; - set => this.Set((int)SFPCatalogSymbolFields.Catalog, value); - } - - public string Dependency - { - get => (string)this.Fields[(int)SFPCatalogSymbolFields.Dependency]; - set => this.Set((int)SFPCatalogSymbolFields.Dependency, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs deleted file mode 100644 index 6e129681..00000000 --- a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ServiceControl = new IntermediateSymbolDefinition( - SymbolDefinitionType.ServiceControl, - new[] - { - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallRemove), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallRemove), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStart), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStart), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStop), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStop), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Wait), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(ServiceControlSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ServiceControlSymbolFields - { - Name, - InstallRemove, - UninstallRemove, - InstallStart, - UninstallStart, - InstallStop, - UninstallStop, - Arguments, - Wait, - ComponentRef, - } - - public class ServiceControlSymbol : IntermediateSymbol - { - public ServiceControlSymbol() : base(SymbolDefinitions.ServiceControl, null, null) - { - } - - public ServiceControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceControl, sourceLineNumber, id) - { - } - - public IntermediateField this[ServiceControlSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)ServiceControlSymbolFields.Name]; - set => this.Set((int)ServiceControlSymbolFields.Name, value); - } - - public bool InstallRemove - { - get => this.Fields[(int)ServiceControlSymbolFields.InstallRemove].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.InstallRemove, value); - } - - public bool UninstallRemove - { - get => this.Fields[(int)ServiceControlSymbolFields.UninstallRemove].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.UninstallRemove, value); - } - - public bool InstallStart - { - get => this.Fields[(int)ServiceControlSymbolFields.InstallStart].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.InstallStart, value); - } - - public bool UninstallStart - { - get => this.Fields[(int)ServiceControlSymbolFields.UninstallStart].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.UninstallStart, value); - } - - public bool InstallStop - { - get => this.Fields[(int)ServiceControlSymbolFields.InstallStop].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.InstallStop, value); - } - - public bool UninstallStop - { - get => this.Fields[(int)ServiceControlSymbolFields.UninstallStop].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.UninstallStop, value); - } - - public string Arguments - { - get => (string)this.Fields[(int)ServiceControlSymbolFields.Arguments]; - set => this.Set((int)ServiceControlSymbolFields.Arguments, value); - } - - public bool? Wait - { - get => this.Fields[(int)ServiceControlSymbolFields.Wait].AsNullableBool(); - set => this.Set((int)ServiceControlSymbolFields.Wait, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ServiceControlSymbolFields.ComponentRef]; - set => this.Set((int)ServiceControlSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs deleted file mode 100644 index f7ec8dbf..00000000 --- a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs +++ /dev/null @@ -1,173 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ServiceInstall = new IntermediateSymbolDefinition( - SymbolDefinitionType.ServiceInstall, - new[] - { - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ServiceType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ErrorControl), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.LoadOrderGroup), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Dependencies), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Password), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Interactive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Vital), IntermediateFieldType.Bool), - }, - typeof(ServiceInstallSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ServiceInstallSymbolFields - { - Name, - DisplayName, - ServiceType, - StartType, - ErrorControl, - LoadOrderGroup, - Dependencies, - StartName, - Password, - Arguments, - ComponentRef, - Description, - Interactive, - Vital, - } - - public enum ServiceType - { - KernelDriver, - SystemDriver, - OwnProcess = 0x10, - ShareProcess = 0x20, - InteractiveProcess = 0x100, - } - - public enum ServiceStartType - { - Boot, - System, - Auto, - Demand, - Disabled, - } - - public enum ServiceErrorControl - { - Ignore, - Normal, - Critical = 3, - } - - public class ServiceInstallSymbol : IntermediateSymbol - { - public ServiceInstallSymbol() : base(SymbolDefinitions.ServiceInstall, null, null) - { - } - - public ServiceInstallSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceInstall, sourceLineNumber, id) - { - } - - public IntermediateField this[ServiceInstallSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Name]; - set => this.Set((int)ServiceInstallSymbolFields.Name, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.DisplayName]; - set => this.Set((int)ServiceInstallSymbolFields.DisplayName, value); - } - - public ServiceType ServiceType - { - get => (ServiceType)this.Fields[(int)ServiceInstallSymbolFields.ServiceType].AsNumber(); - set => this.Set((int)ServiceInstallSymbolFields.ServiceType, (int)value); - } - - public ServiceStartType StartType - { - get => (ServiceStartType)this.Fields[(int)ServiceInstallSymbolFields.StartType].AsNumber(); - set => this.Set((int)ServiceInstallSymbolFields.StartType, (int)value); - } - - public ServiceErrorControl ErrorControl - { - get => (ServiceErrorControl)this.Fields[(int)ServiceInstallSymbolFields.ErrorControl].AsNumber(); - set => this.Set((int)ServiceInstallSymbolFields.ErrorControl, (int)value); - } - - public string LoadOrderGroup - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.LoadOrderGroup]; - set => this.Set((int)ServiceInstallSymbolFields.LoadOrderGroup, value); - } - - public string Dependencies - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Dependencies]; - set => this.Set((int)ServiceInstallSymbolFields.Dependencies, value); - } - - public string StartName - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.StartName]; - set => this.Set((int)ServiceInstallSymbolFields.StartName, value); - } - - public string Password - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Password]; - set => this.Set((int)ServiceInstallSymbolFields.Password, value); - } - - public string Arguments - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Arguments]; - set => this.Set((int)ServiceInstallSymbolFields.Arguments, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.ComponentRef]; - set => this.Set((int)ServiceInstallSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Description]; - set => this.Set((int)ServiceInstallSymbolFields.Description, value); - } - - public bool Interactive - { - get => this.Fields[(int)ServiceInstallSymbolFields.Interactive].AsBool(); - set => this.Set((int)ServiceInstallSymbolFields.Interactive, value); - } - - public bool Vital - { - get => this.Fields[(int)ServiceInstallSymbolFields.Vital].AsBool(); - set => this.Set((int)ServiceInstallSymbolFields.Vital, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/ShortcutTuple.cs b/src/WixToolset.Data/Tuples/ShortcutTuple.cs deleted file mode 100644 index f32fe4af..00000000 --- a/src/WixToolset.Data/Tuples/ShortcutTuple.cs +++ /dev/null @@ -1,171 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Shortcut = new IntermediateSymbolDefinition( - SymbolDefinitionType.Shortcut, - new[] - { - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Hotkey), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Show), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.WkDir), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceDLL), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceDLL), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceId), IntermediateFieldType.Number), - }, - typeof(ShortcutSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ShortcutSymbolFields - { - DirectoryRef, - Name, - ShortName, - ComponentRef, - Target, - Arguments, - Description, - Hotkey, - IconRef, - IconIndex, - Show, - WkDir, - DisplayResourceDLL, - DisplayResourceId, - DescriptionResourceDLL, - DescriptionResourceId, - } - - public enum ShortcutShowType - { - Normal = 1, - Maximized = 3, - Minimized = 7 - } - - public class ShortcutSymbol : IntermediateSymbol - { - public ShortcutSymbol() : base(SymbolDefinitions.Shortcut, null, null) - { - } - - public ShortcutSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Shortcut, sourceLineNumber, id) - { - } - - public IntermediateField this[ShortcutSymbolFields index] => this.Fields[(int)index]; - - public string DirectoryRef - { - get => (string)this.Fields[(int)ShortcutSymbolFields.DirectoryRef]; - set => this.Set((int)ShortcutSymbolFields.DirectoryRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Name]; - set => this.Set((int)ShortcutSymbolFields.Name, value); - } - - public string ShortName - { - get => (string)this.Fields[(int)ShortcutSymbolFields.ShortName]; - set => this.Set((int)ShortcutSymbolFields.ShortName, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ShortcutSymbolFields.ComponentRef]; - set => this.Set((int)ShortcutSymbolFields.ComponentRef, value); - } - - public string Target - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Target]; - set => this.Set((int)ShortcutSymbolFields.Target, value); - } - - public string Arguments - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Arguments]; - set => this.Set((int)ShortcutSymbolFields.Arguments, value); - } - - public string Description - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Description]; - set => this.Set((int)ShortcutSymbolFields.Description, value); - } - - public int? Hotkey - { - get => this.Fields[(int)ShortcutSymbolFields.Hotkey].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.Hotkey, value); - } - - public string IconRef - { - get => (string)this.Fields[(int)ShortcutSymbolFields.IconRef]; - set => this.Set((int)ShortcutSymbolFields.IconRef, value); - } - - public int? IconIndex - { - get => this.Fields[(int)ShortcutSymbolFields.IconIndex].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.IconIndex, value); - } - - public ShortcutShowType? Show - { - get => (ShortcutShowType?)this.Fields[(int)ShortcutSymbolFields.Show].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.Show, (int?)value); - } - - public string WorkingDirectory - { - get => (string)this.Fields[(int)ShortcutSymbolFields.WkDir]; - set => this.Set((int)ShortcutSymbolFields.WkDir, value); - } - - public string DisplayResourceDll - { - get => (string)this.Fields[(int)ShortcutSymbolFields.DisplayResourceDLL]; - set => this.Set((int)ShortcutSymbolFields.DisplayResourceDLL, value); - } - - public int? DisplayResourceId - { - get => this.Fields[(int)ShortcutSymbolFields.DisplayResourceId].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.DisplayResourceId, value); - } - - public string DescriptionResourceDll - { - get => (string)this.Fields[(int)ShortcutSymbolFields.DescriptionResourceDLL]; - set => this.Set((int)ShortcutSymbolFields.DescriptionResourceDLL, value); - } - - public int? DescriptionResourceId - { - get => this.Fields[(int)ShortcutSymbolFields.DescriptionResourceId].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.DescriptionResourceId, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/SignatureTuple.cs b/src/WixToolset.Data/Tuples/SignatureTuple.cs deleted file mode 100644 index fc2ce088..00000000 --- a/src/WixToolset.Data/Tuples/SignatureTuple.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Signature = new IntermediateSymbolDefinition( - SymbolDefinitionType.Signature, - new[] - { - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.Languages), IntermediateFieldType.String), - }, - typeof(SignatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum SignatureSymbolFields - { - FileName, - MinVersion, - MaxVersion, - MinSize, - MaxSize, - MinDate, - MaxDate, - Languages, - } - - public class SignatureSymbol : IntermediateSymbol - { - public SignatureSymbol() : base(SymbolDefinitions.Signature, null, null) - { - } - - public SignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Signature, sourceLineNumber, id) - { - } - - public IntermediateField this[SignatureSymbolFields index] => this.Fields[(int)index]; - - public string FileName - { - get => (string)this.Fields[(int)SignatureSymbolFields.FileName]; - set => this.Set((int)SignatureSymbolFields.FileName, value); - } - - public string MinVersion - { - get => (string)this.Fields[(int)SignatureSymbolFields.MinVersion]; - set => this.Set((int)SignatureSymbolFields.MinVersion, value); - } - - public string MaxVersion - { - get => (string)this.Fields[(int)SignatureSymbolFields.MaxVersion]; - set => this.Set((int)SignatureSymbolFields.MaxVersion, value); - } - - public int? MinSize - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MinSize]; - set => this.Set((int)SignatureSymbolFields.MinSize, value); - } - - public int? MaxSize - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MaxSize]; - set => this.Set((int)SignatureSymbolFields.MaxSize, value); - } - - public int? MinDate - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MinDate]; - set => this.Set((int)SignatureSymbolFields.MinDate, value); - } - - public int? MaxDate - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MaxDate]; - set => this.Set((int)SignatureSymbolFields.MaxDate, value); - } - - public string Languages - { - get => (string)this.Fields[(int)SignatureSymbolFields.Languages]; - set => this.Set((int)SignatureSymbolFields.Languages, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs deleted file mode 100644 index b3b233fe..00000000 --- a/src/WixToolset.Data/Tuples/SummaryInformationTuple.cs +++ /dev/null @@ -1,102 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition SummaryInformation = new IntermediateSymbolDefinition( - SymbolDefinitionType.SummaryInformation, - new[] - { - new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.PropertyId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(SummaryInformationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum SummaryInformationSymbolFields - { - PropertyId, - Value, - } - - public enum SummaryInformationType - { - Codepage = 1, - Title, - Subject, - PatchPackageName = 3, //used by patches - Author, - Keywords, - Comments, - PlatformAndLanguage, - PatchProductCodes = 7, // used by patches - TransformPlatformAndLanguageOrStorageNames, - TransformNames = 8, // used by patches - PackageCode, - PatchCode = 9, // used by patches - TransformProductCodes = 9, // used by transforms - Reserved11 = 11, // reserved by patches - Created, - LastSaved, - WindowsInstallerVersion, - Reserved14 = 14, // reserved by patches - WordCount, - PatchInstallerRequirement = 15, // used by patches - Reserved16, // reserved by patches - TransformValidationFlags = 16, // used by transforms - CreatingApplication = 18, - Security - } - - /// - /// Summary information values for the PachInstallerRequirement property. - /// - public enum PatchInstallerRequirement - { - /// Any version of the installer will do - Version10 = 1, - - /// At least 1.2 - Version12 = 2, - - /// At least 2.0 - Version20 = 3, - - /// At least 3.0 - Version30 = 4, - - /// At least 3.1 - Version31 = 5, - } - - public class SummaryInformationSymbol : IntermediateSymbol - { - public SummaryInformationSymbol() : base(SymbolDefinitions.SummaryInformation, null, null) - { - } - - public SummaryInformationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SummaryInformation, sourceLineNumber, id) - { - } - - public IntermediateField this[SummaryInformationSymbolFields index] => this.Fields[(int)index]; - - public SummaryInformationType PropertyId - { - get => (SummaryInformationType)this.Fields[(int)SummaryInformationSymbolFields.PropertyId].AsNumber(); - set => this.Set((int)SummaryInformationSymbolFields.PropertyId, (int)value); - } - - public string Value - { - get => (string)this.Fields[(int)SummaryInformationSymbolFields.Value]; - set => this.Set((int)SummaryInformationSymbolFields.Value, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs b/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs deleted file mode 100644 index 66fdc30c..00000000 --- a/src/WixToolset.Data/Tuples/TargetFilesOptionalDataTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TargetFilesOptionalData = new IntermediateSymbolDefinition( - SymbolDefinitionType.TargetFilesOptionalData, - new[] - { - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.RetainOffsets), IntermediateFieldType.String), - }, - typeof(TargetFilesOptionalDataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TargetFilesOptionalDataSymbolFields - { - Target, - FTK, - SymbolPaths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - } - - public class TargetFilesOptionalDataSymbol : IntermediateSymbol - { - public TargetFilesOptionalDataSymbol() : base(SymbolDefinitions.TargetFilesOptionalData, null, null) - { - } - - public TargetFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetFilesOptionalData, sourceLineNumber, id) - { - } - - public IntermediateField this[TargetFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; - - public string Target - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.Target]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.Target, value); - } - - public string FTK - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.FTK]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.FTK, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.SymbolPaths]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.SymbolPaths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreLengths]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.RetainOffsets]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.RetainOffsets, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs deleted file mode 100644 index 4748b1f3..00000000 --- a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TargetImages = new IntermediateSymbolDefinition( - SymbolDefinitionType.TargetImages, - new[] - { - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.MsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.ProductValidateFlags), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.IgnoreMissingSrcFiles), IntermediateFieldType.Bool), - }, - typeof(TargetImagesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TargetImagesSymbolFields - { - Target, - MsiPath, - SymbolPaths, - Upgraded, - Order, - ProductValidateFlags, - IgnoreMissingSrcFiles, - } - - public class TargetImagesSymbol : IntermediateSymbol - { - public TargetImagesSymbol() : base(SymbolDefinitions.TargetImages, null, null) - { - } - - public TargetImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetImages, sourceLineNumber, id) - { - } - - public IntermediateField this[TargetImagesSymbolFields index] => this.Fields[(int)index]; - - public string Target - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.Target]; - set => this.Set((int)TargetImagesSymbolFields.Target, value); - } - - public string MsiPath - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.MsiPath]; - set => this.Set((int)TargetImagesSymbolFields.MsiPath, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.SymbolPaths]; - set => this.Set((int)TargetImagesSymbolFields.SymbolPaths, value); - } - - public string Upgraded - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.Upgraded]; - set => this.Set((int)TargetImagesSymbolFields.Upgraded, value); - } - - public int Order - { - get => (int)this.Fields[(int)TargetImagesSymbolFields.Order]; - set => this.Set((int)TargetImagesSymbolFields.Order, value); - } - - public string ProductValidateFlags - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.ProductValidateFlags]; - set => this.Set((int)TargetImagesSymbolFields.ProductValidateFlags, value); - } - - public bool IgnoreMissingSrcFiles - { - get => (bool)this.Fields[(int)TargetImagesSymbolFields.IgnoreMissingSrcFiles]; - set => this.Set((int)TargetImagesSymbolFields.IgnoreMissingSrcFiles, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TextStyleTuple.cs b/src/WixToolset.Data/Tuples/TextStyleTuple.cs deleted file mode 100644 index b07615bb..00000000 --- a/src/WixToolset.Data/Tuples/TextStyleTuple.cs +++ /dev/null @@ -1,108 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TextStyle = new IntermediateSymbolDefinition( - SymbolDefinitionType.TextStyle, - new[] - { - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.FaceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Size), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Red), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Green), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Blue), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Bold), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Italic), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Strike), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Underline), IntermediateFieldType.Bool), - }, - typeof(TextStyleSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TextStyleSymbolFields - { - FaceName, - Size, - Red, - Green, - Blue, - Bold, - Italic, - Strike, - Underline, - } - - public class TextStyleSymbol : IntermediateSymbol - { - public TextStyleSymbol() : base(SymbolDefinitions.TextStyle, null, null) - { - } - - public TextStyleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TextStyle, sourceLineNumber, id) - { - } - - public IntermediateField this[TextStyleSymbolFields index] => this.Fields[(int)index]; - - public string FaceName - { - get => (string)this.Fields[(int)TextStyleSymbolFields.FaceName]; - set => this.Set((int)TextStyleSymbolFields.FaceName, value); - } - - public int Size - { - get => (int)this.Fields[(int)TextStyleSymbolFields.Size]; - set => this.Set((int)TextStyleSymbolFields.Size, value); - } - - public int? Red - { - get => (int?)this.Fields[(int)TextStyleSymbolFields.Red]; - set => this.Set((int)TextStyleSymbolFields.Red, value); - } - - public int? Green - { - get => (int?)this.Fields[(int)TextStyleSymbolFields.Green]; - set => this.Set((int)TextStyleSymbolFields.Green, value); - } - - public int? Blue - { - get => (int?)this.Fields[(int)TextStyleSymbolFields.Blue]; - set => this.Set((int)TextStyleSymbolFields.Blue, value); - } - - public bool Bold - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Bold]; - set => this.Set((int)TextStyleSymbolFields.Bold, value); - } - - public bool Italic - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Italic]; - set => this.Set((int)TextStyleSymbolFields.Italic, value); - } - - public bool Strike - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Strike]; - set => this.Set((int)TextStyleSymbolFields.Strike, value); - } - - public bool Underline - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Underline]; - set => this.Set((int)TextStyleSymbolFields.Underline, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/TransformsFlags.cs b/src/WixToolset.Data/Tuples/TransformsFlags.cs deleted file mode 100644 index 90f22cb4..00000000 --- a/src/WixToolset.Data/Tuples/TransformsFlags.cs +++ /dev/null @@ -1,79 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - using System; - - /// - /// Summary information values for the CharCount property in transforms. - /// - [Flags] - public enum TransformFlags - { - /// Ignore error when adding a row that exists. - ErrorAddExistingRow = 0x1, - - /// Ignore error when deleting a row that does not exist. - ErrorDeleteMissingRow = 0x2, - - /// Ignore error when adding a table that exists. - ErrorAddExistingTable = 0x4, - - /// Ignore error when deleting a table that does not exist. - ErrorDeleteMissingTable = 0x8, - - /// Ignore error when updating a row that does not exist. - ErrorUpdateMissingRow = 0x10, - - /// Ignore error when transform and database code pages do not match, and their code pages are neutral. - ErrorChangeCodePage = 0x20, - - /// Default language must match base database. - ValidateLanguage = 0x10000, - - /// Product must match base database. - ValidateProduct = 0x20000, - - /// Check major version only. - ValidateMajorVersion = 0x80000, - - /// Check major and minor versions only. - ValidateMinorVersion = 0x100000, - - /// Check major, minor, and update versions. - ValidateUpdateVersion = 0x200000, - - /// Installed version lt base version. - ValidateNewLessBaseVersion = 0x400000, - - /// Installed version lte base version. - ValidateNewLessEqualBaseVersion = 0x800000, - - /// Installed version eq base version. - ValidateNewEqualBaseVersion = 0x1000000, - - /// Installed version gte base version. - ValidateNewGreaterEqualBaseVersion = 0x2000000, - - /// Installed version gt base version. - ValidateNewGreaterBaseVersion = 0x4000000, - - /// UpgradeCode must match base database. - ValidateUpgradeCode = 0x8000000, - - /// Masks all version checks on ProductVersion. - ProductVersionMask = ValidateMajorVersion | ValidateMinorVersion | ValidateUpdateVersion, - - /// Masks all operations on ProductVersion. - ProductVersionOperatorMask = ValidateNewLessBaseVersion | ValidateNewLessEqualBaseVersion | ValidateNewEqualBaseVersion | ValidateNewGreaterEqualBaseVersion | ValidateNewGreaterBaseVersion, - - /// Default value for instance transforms. - InstanceTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct | ValidateUpdateVersion | ValidateNewGreaterEqualBaseVersion, - - /// Default value for language transforms. - LanguageTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct, - - /// Default value for patch transforms. - PatchTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ValidateProduct | ValidateUpdateVersion | ValidateNewEqualBaseVersion | ValidateUpgradeCode, - } -} diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs deleted file mode 100644 index ea90ef7b..00000000 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ /dev/null @@ -1,736 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public enum SymbolDefinitionType - { - SummaryInformation, - ActionText, - AppId, - AppSearch, - BBControl, - Billboard, - Binary, - CCPSearch, - CheckBox, - Class, - ComboBox, - CompLocator, - Complus, - Component, - Condition, - Control, - ControlCondition, - ControlEvent, - CreateFolder, - CustomAction, - Dialog, - Directory, - DrLocator, - DuplicateFile, - Environment, - Error, - EventMapping, - Extension, - ExternalFiles, - FamilyFileRanges, - Feature, - FeatureComponents, - File, - FileSFPCatalog, - Icon, - ImageFamilies, - IniFile, - IniLocator, - IsolatedComponent, - LaunchCondition, - ListBox, - ListView, - LockPermissions, - Media, - MIME, - ModuleComponents, - ModuleConfiguration, - ModuleDependency, - ModuleExclusion, - ModuleIgnoreTable, - ModuleSignature, - ModuleSubstitution, - MoveFile, - Assembly, - MsiAssemblyName, - MsiDigitalCertificate, - MsiDigitalSignature, - MsiEmbeddedChainer, - MsiEmbeddedUI, - MsiFileHash, - MsiLockPermissionsEx, - MsiPackageCertificate, - MsiPatchCertificate, - MsiPatchHeaders, - MsiPatchMetadata, - MsiPatchOldAssemblyFile, - MsiPatchOldAssemblyName, - MsiPatchSequence, - MsiServiceConfig, - MsiServiceConfigFailureActions, - MsiShortcutProperty, - ODBCAttribute, - ODBCDataSource, - ODBCDriver, - ODBCSourceAttribute, - ODBCTranslator, - Patch, - PatchMetadata, - PatchPackage, - PatchSequence, - ProgId, - Properties, - Property, - ProvidesDependency, - PublishComponent, - RadioButton, - Registry, - RegLocator, - RemoveFile, - RemoveRegistry, - ReserveCost, - ServiceControl, - ServiceInstall, - SFPCatalog, - Shortcut, - Signature, - TargetFilesOptionalData, - TargetImages, - TextStyle, - TypeLib, - UIText, - Upgrade, - UpgradedFilesOptionalData, - UpgradedFilesToIgnore, - UpgradedImages, - Verb, - WixAction, - WixApprovedExeForElevation, - WixBindUpdatedFiles, - WixBootstrapperApplication, - WixBuildInfo, - WixBundle, - WixBundleCatalog, - WixBundleContainer, - WixBundleCustomData, - WixBundleCustomDataAttribute, - WixBundleCustomDataCell, - WixBundleExePackage, - WixBundleExtension, - WixBundleMsiFeature, - WixBundleMsiPackage, - WixBundleMsiProperty, - WixBundleMspPackage, - WixBundleMsuPackage, - WixBundlePackage, - WixBundlePackageCommandLine, - WixBundlePackageExitCode, - WixBundlePackageGroup, - WixBundlePatchTargetCode, - WixBundlePayload, - WixBundlePayloadGroup, - WixBundleRelatedPackage, - WixBundleRollbackBoundary, - WixBundleSlipstreamMsp, - WixBundleUpdate, - WixBundleVariable, - WixChain, - WixChainItem, - WixComplexReference, - WixComponentGroup, - WixComponentSearch, - WixCustomTable, - WixCustomTableCell, - WixCustomTableColumn, - WixDeltaPatchFile, - WixDeltaPatchSymbolPaths, - WixDependencyProvider, - WixEnsureTable, - WixFeatureGroup, - WixFeatureModules, - WixFileSearch, - WixFragment, - WixGroup, - WixInstanceComponent, - WixInstanceTransforms, - WixMediaTemplate, - WixMerge, - WixOrdering, - WixPatchBaseline, - WixPatchFamilyGroup, - WixPatchId, - WixPatchRef, - WixPatchTarget, - WixProductSearch, - WixProperty, - WixRegistrySearch, - WixRelatedBundle, - WixSearch, - WixSearchRelation, - WixSetVariable, - WixSimpleReference, - WixSuppressAction, - WixSuppressModularization, - WixUI, - WixUpdateRegistration, - WixVariable, - MustBeFromAnExtension, - } - - public static partial class SymbolDefinitions - { - public static readonly Version Version = new Version("4.0.0"); - - public static IntermediateSymbolDefinition ByName(string name) - { - if (!Enum.TryParse(name, out SymbolDefinitionType type) || type == SymbolDefinitionType.MustBeFromAnExtension) - { - return null; - } - - return ByType(type); - } - - public static IntermediateSymbolDefinition ByType(SymbolDefinitionType type) - { - switch (type) - { - case SymbolDefinitionType.SummaryInformation: - return SymbolDefinitions.SummaryInformation; - - case SymbolDefinitionType.ActionText: - return SymbolDefinitions.ActionText; - - case SymbolDefinitionType.AppId: - return SymbolDefinitions.AppId; - - case SymbolDefinitionType.AppSearch: - return SymbolDefinitions.AppSearch; - - case SymbolDefinitionType.BBControl: - return SymbolDefinitions.BBControl; - - case SymbolDefinitionType.Billboard: - return SymbolDefinitions.Billboard; - - case SymbolDefinitionType.Binary: - return SymbolDefinitions.Binary; - - case SymbolDefinitionType.CCPSearch: - return SymbolDefinitions.CCPSearch; - - case SymbolDefinitionType.CheckBox: - return SymbolDefinitions.CheckBox; - - case SymbolDefinitionType.Class: - return SymbolDefinitions.Class; - - case SymbolDefinitionType.ComboBox: - return SymbolDefinitions.ComboBox; - - case SymbolDefinitionType.CompLocator: - return SymbolDefinitions.CompLocator; - - case SymbolDefinitionType.Complus: - return SymbolDefinitions.Complus; - - case SymbolDefinitionType.Component: - return SymbolDefinitions.Component; - - case SymbolDefinitionType.Condition: - return SymbolDefinitions.Condition; - - case SymbolDefinitionType.Control: - return SymbolDefinitions.Control; - - case SymbolDefinitionType.ControlCondition: - return SymbolDefinitions.ControlCondition; - - case SymbolDefinitionType.ControlEvent: - return SymbolDefinitions.ControlEvent; - - case SymbolDefinitionType.CreateFolder: - return SymbolDefinitions.CreateFolder; - - case SymbolDefinitionType.CustomAction: - return SymbolDefinitions.CustomAction; - - case SymbolDefinitionType.Dialog: - return SymbolDefinitions.Dialog; - - case SymbolDefinitionType.Directory: - return SymbolDefinitions.Directory; - - case SymbolDefinitionType.DrLocator: - return SymbolDefinitions.DrLocator; - - case SymbolDefinitionType.DuplicateFile: - return SymbolDefinitions.DuplicateFile; - - case SymbolDefinitionType.Environment: - return SymbolDefinitions.Environment; - - case SymbolDefinitionType.Error: - return SymbolDefinitions.Error; - - case SymbolDefinitionType.EventMapping: - return SymbolDefinitions.EventMapping; - - case SymbolDefinitionType.Extension: - return SymbolDefinitions.Extension; - - case SymbolDefinitionType.ExternalFiles: - return SymbolDefinitions.ExternalFiles; - - case SymbolDefinitionType.FamilyFileRanges: - return SymbolDefinitions.FamilyFileRanges; - - case SymbolDefinitionType.Feature: - return SymbolDefinitions.Feature; - - case SymbolDefinitionType.FeatureComponents: - return SymbolDefinitions.FeatureComponents; - - case SymbolDefinitionType.File: - return SymbolDefinitions.File; - - case SymbolDefinitionType.FileSFPCatalog: - return SymbolDefinitions.FileSFPCatalog; - - case SymbolDefinitionType.Icon: - return SymbolDefinitions.Icon; - - case SymbolDefinitionType.ImageFamilies: - return SymbolDefinitions.ImageFamilies; - - case SymbolDefinitionType.IniFile: - return SymbolDefinitions.IniFile; - - case SymbolDefinitionType.IniLocator: - return SymbolDefinitions.IniLocator; - - case SymbolDefinitionType.IsolatedComponent: - return SymbolDefinitions.IsolatedComponent; - - case SymbolDefinitionType.LaunchCondition: - return SymbolDefinitions.LaunchCondition; - - case SymbolDefinitionType.ListBox: - return SymbolDefinitions.ListBox; - - case SymbolDefinitionType.ListView: - return SymbolDefinitions.ListView; - - case SymbolDefinitionType.LockPermissions: - return SymbolDefinitions.LockPermissions; - - case SymbolDefinitionType.Media: - return SymbolDefinitions.Media; - - case SymbolDefinitionType.MIME: - return SymbolDefinitions.MIME; - - case SymbolDefinitionType.ModuleComponents: - return SymbolDefinitions.ModuleComponents; - - case SymbolDefinitionType.ModuleConfiguration: - return SymbolDefinitions.ModuleConfiguration; - - case SymbolDefinitionType.ModuleDependency: - return SymbolDefinitions.ModuleDependency; - - case SymbolDefinitionType.ModuleExclusion: - return SymbolDefinitions.ModuleExclusion; - - case SymbolDefinitionType.ModuleIgnoreTable: - return SymbolDefinitions.ModuleIgnoreTable; - - case SymbolDefinitionType.ModuleSignature: - return SymbolDefinitions.ModuleSignature; - - case SymbolDefinitionType.ModuleSubstitution: - return SymbolDefinitions.ModuleSubstitution; - - case SymbolDefinitionType.MoveFile: - return SymbolDefinitions.MoveFile; - - case SymbolDefinitionType.Assembly: - return SymbolDefinitions.Assembly; - - case SymbolDefinitionType.MsiAssemblyName: - return SymbolDefinitions.MsiAssemblyName; - - case SymbolDefinitionType.MsiDigitalCertificate: - return SymbolDefinitions.MsiDigitalCertificate; - - case SymbolDefinitionType.MsiDigitalSignature: - return SymbolDefinitions.MsiDigitalSignature; - - case SymbolDefinitionType.MsiEmbeddedChainer: - return SymbolDefinitions.MsiEmbeddedChainer; - - case SymbolDefinitionType.MsiEmbeddedUI: - return SymbolDefinitions.MsiEmbeddedUI; - - case SymbolDefinitionType.MsiFileHash: - return SymbolDefinitions.MsiFileHash; - - case SymbolDefinitionType.MsiLockPermissionsEx: - return SymbolDefinitions.MsiLockPermissionsEx; - - case SymbolDefinitionType.MsiPackageCertificate: - return SymbolDefinitions.MsiPackageCertificate; - - case SymbolDefinitionType.MsiPatchCertificate: - return SymbolDefinitions.MsiPatchCertificate; - - case SymbolDefinitionType.MsiPatchHeaders: - return SymbolDefinitions.MsiPatchHeaders; - - case SymbolDefinitionType.MsiPatchMetadata: - return SymbolDefinitions.MsiPatchMetadata; - - case SymbolDefinitionType.MsiPatchOldAssemblyFile: - return SymbolDefinitions.MsiPatchOldAssemblyFile; - - case SymbolDefinitionType.MsiPatchOldAssemblyName: - return SymbolDefinitions.MsiPatchOldAssemblyName; - - case SymbolDefinitionType.MsiPatchSequence: - return SymbolDefinitions.MsiPatchSequence; - - case SymbolDefinitionType.MsiServiceConfig: - return SymbolDefinitions.MsiServiceConfig; - - case SymbolDefinitionType.MsiServiceConfigFailureActions: - return SymbolDefinitions.MsiServiceConfigFailureActions; - - case SymbolDefinitionType.MsiShortcutProperty: - return SymbolDefinitions.MsiShortcutProperty; - - case SymbolDefinitionType.ODBCAttribute: - return SymbolDefinitions.ODBCAttribute; - - case SymbolDefinitionType.ODBCDataSource: - return SymbolDefinitions.ODBCDataSource; - - case SymbolDefinitionType.ODBCDriver: - return SymbolDefinitions.ODBCDriver; - - case SymbolDefinitionType.ODBCSourceAttribute: - return SymbolDefinitions.ODBCSourceAttribute; - - case SymbolDefinitionType.ODBCTranslator: - return SymbolDefinitions.ODBCTranslator; - - case SymbolDefinitionType.Patch: - return SymbolDefinitions.Patch; - - case SymbolDefinitionType.PatchMetadata: - return SymbolDefinitions.PatchMetadata; - - case SymbolDefinitionType.PatchPackage: - return SymbolDefinitions.PatchPackage; - - case SymbolDefinitionType.PatchSequence: - return SymbolDefinitions.PatchSequence; - - case SymbolDefinitionType.ProgId: - return SymbolDefinitions.ProgId; - - case SymbolDefinitionType.Properties: - return SymbolDefinitions.Properties; - - case SymbolDefinitionType.Property: - return SymbolDefinitions.Property; - - case SymbolDefinitionType.PublishComponent: - return SymbolDefinitions.PublishComponent; - - case SymbolDefinitionType.ProvidesDependency: - return SymbolDefinitions.ProvidesDependency; - - case SymbolDefinitionType.RadioButton: - return SymbolDefinitions.RadioButton; - - case SymbolDefinitionType.Registry: - return SymbolDefinitions.Registry; - - case SymbolDefinitionType.RegLocator: - return SymbolDefinitions.RegLocator; - - case SymbolDefinitionType.RemoveFile: - return SymbolDefinitions.RemoveFile; - - case SymbolDefinitionType.RemoveRegistry: - return SymbolDefinitions.RemoveRegistry; - - case SymbolDefinitionType.ReserveCost: - return SymbolDefinitions.ReserveCost; - - case SymbolDefinitionType.ServiceControl: - return SymbolDefinitions.ServiceControl; - - case SymbolDefinitionType.ServiceInstall: - return SymbolDefinitions.ServiceInstall; - - case SymbolDefinitionType.SFPCatalog: - return SymbolDefinitions.SFPCatalog; - - case SymbolDefinitionType.Shortcut: - return SymbolDefinitions.Shortcut; - - case SymbolDefinitionType.Signature: - return SymbolDefinitions.Signature; - - case SymbolDefinitionType.TargetFilesOptionalData: - return SymbolDefinitions.TargetFilesOptionalData; - - case SymbolDefinitionType.TargetImages: - return SymbolDefinitions.TargetImages; - - case SymbolDefinitionType.TextStyle: - return SymbolDefinitions.TextStyle; - - case SymbolDefinitionType.TypeLib: - return SymbolDefinitions.TypeLib; - - case SymbolDefinitionType.UIText: - return SymbolDefinitions.UIText; - - case SymbolDefinitionType.Upgrade: - return SymbolDefinitions.Upgrade; - - case SymbolDefinitionType.UpgradedFilesOptionalData: - return SymbolDefinitions.UpgradedFilesOptionalData; - - case SymbolDefinitionType.UpgradedFilesToIgnore: - return SymbolDefinitions.UpgradedFilesToIgnore; - - case SymbolDefinitionType.UpgradedImages: - return SymbolDefinitions.UpgradedImages; - - case SymbolDefinitionType.Verb: - return SymbolDefinitions.Verb; - - case SymbolDefinitionType.WixAction: - return SymbolDefinitions.WixAction; - - case SymbolDefinitionType.WixApprovedExeForElevation: - return SymbolDefinitions.WixApprovedExeForElevation; - - case SymbolDefinitionType.WixBindUpdatedFiles: - return SymbolDefinitions.WixBindUpdatedFiles; - - case SymbolDefinitionType.WixBootstrapperApplication: - return SymbolDefinitions.WixBootstrapperApplication; - - case SymbolDefinitionType.WixBuildInfo: - return SymbolDefinitions.WixBuildInfo; - - case SymbolDefinitionType.WixBundle: - return SymbolDefinitions.WixBundle; - - case SymbolDefinitionType.WixBundleCatalog: - return SymbolDefinitions.WixBundleCatalog; - - case SymbolDefinitionType.WixBundleContainer: - return SymbolDefinitions.WixBundleContainer; - - case SymbolDefinitionType.WixBundleCustomData: - return SymbolDefinitions.WixBundleCustomData; - - case SymbolDefinitionType.WixBundleCustomDataAttribute: - return SymbolDefinitions.WixBundleCustomDataAttribute; - - case SymbolDefinitionType.WixBundleCustomDataCell: - return SymbolDefinitions.WixBundleCustomDataCell; - - case SymbolDefinitionType.WixBundleExtension: - return SymbolDefinitions.WixBundleExtension; - - case SymbolDefinitionType.WixBundleExePackage: - return SymbolDefinitions.WixBundleExePackage; - - case SymbolDefinitionType.WixBundleMsiFeature: - return SymbolDefinitions.WixBundleMsiFeature; - - case SymbolDefinitionType.WixBundleMsiPackage: - return SymbolDefinitions.WixBundleMsiPackage; - - case SymbolDefinitionType.WixBundleMsiProperty: - return SymbolDefinitions.WixBundleMsiProperty; - - case SymbolDefinitionType.WixBundleMspPackage: - return SymbolDefinitions.WixBundleMspPackage; - - case SymbolDefinitionType.WixBundleMsuPackage: - return SymbolDefinitions.WixBundleMsuPackage; - - case SymbolDefinitionType.WixBundlePackage: - return SymbolDefinitions.WixBundlePackage; - - case SymbolDefinitionType.WixBundlePackageCommandLine: - return SymbolDefinitions.WixBundlePackageCommandLine; - - case SymbolDefinitionType.WixBundlePackageExitCode: - return SymbolDefinitions.WixBundlePackageExitCode; - - case SymbolDefinitionType.WixBundlePackageGroup: - return SymbolDefinitions.WixBundlePackageGroup; - - case SymbolDefinitionType.WixBundlePatchTargetCode: - return SymbolDefinitions.WixBundlePatchTargetCode; - - case SymbolDefinitionType.WixBundlePayload: - return SymbolDefinitions.WixBundlePayload; - - case SymbolDefinitionType.WixBundlePayloadGroup: - return SymbolDefinitions.WixBundlePayloadGroup; - - case SymbolDefinitionType.WixBundleRelatedPackage: - return SymbolDefinitions.WixBundleRelatedPackage; - - case SymbolDefinitionType.WixBundleRollbackBoundary: - return SymbolDefinitions.WixBundleRollbackBoundary; - - case SymbolDefinitionType.WixBundleSlipstreamMsp: - return SymbolDefinitions.WixBundleSlipstreamMsp; - - case SymbolDefinitionType.WixBundleUpdate: - return SymbolDefinitions.WixBundleUpdate; - - case SymbolDefinitionType.WixBundleVariable: - return SymbolDefinitions.WixBundleVariable; - - case SymbolDefinitionType.WixChain: - return SymbolDefinitions.WixChain; - - case SymbolDefinitionType.WixChainItem: - return SymbolDefinitions.WixChainItem; - - case SymbolDefinitionType.WixComplexReference: - return SymbolDefinitions.WixComplexReference; - - case SymbolDefinitionType.WixComponentGroup: - return SymbolDefinitions.WixComponentGroup; - - case SymbolDefinitionType.WixComponentSearch: - return SymbolDefinitions.WixComponentSearch; - - case SymbolDefinitionType.WixCustomTable: - return SymbolDefinitions.WixCustomTable; - - case SymbolDefinitionType.WixCustomTableCell: - return SymbolDefinitions.WixCustomTableCell; - - case SymbolDefinitionType.WixCustomTableColumn: - return SymbolDefinitions.WixCustomTableColumn; - - case SymbolDefinitionType.WixDeltaPatchFile: - return SymbolDefinitions.WixDeltaPatchFile; - - case SymbolDefinitionType.WixDeltaPatchSymbolPaths: - return SymbolDefinitions.WixDeltaPatchSymbolPaths; - - case SymbolDefinitionType.WixEnsureTable: - return SymbolDefinitions.WixEnsureTable; - - case SymbolDefinitionType.WixFeatureGroup: - return SymbolDefinitions.WixFeatureGroup; - - case SymbolDefinitionType.WixFeatureModules: - return SymbolDefinitions.WixFeatureModules; - - case SymbolDefinitionType.WixFileSearch: - return SymbolDefinitions.WixFileSearch; - - case SymbolDefinitionType.WixFragment: - return SymbolDefinitions.WixFragment; - - case SymbolDefinitionType.WixGroup: - return SymbolDefinitions.WixGroup; - - case SymbolDefinitionType.WixInstanceComponent: - return SymbolDefinitions.WixInstanceComponent; - - case SymbolDefinitionType.WixInstanceTransforms: - return SymbolDefinitions.WixInstanceTransforms; - - case SymbolDefinitionType.WixMediaTemplate: - return SymbolDefinitions.WixMediaTemplate; - - case SymbolDefinitionType.WixMerge: - return SymbolDefinitions.WixMerge; - - case SymbolDefinitionType.WixOrdering: - return SymbolDefinitions.WixOrdering; - - case SymbolDefinitionType.WixPatchBaseline: - return SymbolDefinitions.WixPatchBaseline; - - case SymbolDefinitionType.WixPatchFamilyGroup: - return SymbolDefinitions.WixPatchFamilyGroup; - - case SymbolDefinitionType.WixPatchId: - return SymbolDefinitions.WixPatchId; - - case SymbolDefinitionType.WixPatchRef: - return SymbolDefinitions.WixPatchRef; - - case SymbolDefinitionType.WixPatchTarget: - return SymbolDefinitions.WixPatchTarget; - - case SymbolDefinitionType.WixProductSearch: - return SymbolDefinitions.WixProductSearch; - - case SymbolDefinitionType.WixProperty: - return SymbolDefinitions.WixProperty; - - case SymbolDefinitionType.WixRegistrySearch: - return SymbolDefinitions.WixRegistrySearch; - - case SymbolDefinitionType.WixRelatedBundle: - return SymbolDefinitions.WixRelatedBundle; - - case SymbolDefinitionType.WixSearch: - return SymbolDefinitions.WixSearch; - - case SymbolDefinitionType.WixSearchRelation: - return SymbolDefinitions.WixSearchRelation; - - case SymbolDefinitionType.WixSetVariable: - return SymbolDefinitions.WixSetVariable; - - case SymbolDefinitionType.WixSimpleReference: - return SymbolDefinitions.WixSimpleReference; - - case SymbolDefinitionType.WixSuppressAction: - return SymbolDefinitions.WixSuppressAction; - - case SymbolDefinitionType.WixSuppressModularization: - return SymbolDefinitions.WixSuppressModularization; - - case SymbolDefinitionType.WixUI: - return SymbolDefinitions.WixUI; - - case SymbolDefinitionType.WixUpdateRegistration: - return SymbolDefinitions.WixUpdateRegistration; - - case SymbolDefinitionType.WixVariable: - return SymbolDefinitions.WixVariable; - - default: - throw new ArgumentOutOfRangeException(nameof(type)); - } - } - } -} diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs deleted file mode 100644 index 736ee292..00000000 --- a/src/WixToolset.Data/Tuples/TypeLibTuple.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TypeLib = new IntermediateSymbolDefinition( - SymbolDefinitionType.TypeLib, - new[] - { - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.LibId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Version), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Cost), IntermediateFieldType.Number), - }, - typeof(TypeLibSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TypeLibSymbolFields - { - LibId, - Language, - ComponentRef, - Version, - Description, - DirectoryRef, - FeatureRef, - Cost, - } - - public class TypeLibSymbol : IntermediateSymbol - { - public TypeLibSymbol() : base(SymbolDefinitions.TypeLib, null, null) - { - } - - public TypeLibSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TypeLib, sourceLineNumber, id) - { - } - - public IntermediateField this[TypeLibSymbolFields index] => this.Fields[(int)index]; - - public string LibId - { - get => (string)this.Fields[(int)TypeLibSymbolFields.LibId]; - set => this.Set((int)TypeLibSymbolFields.LibId, value); - } - - public int Language - { - get => (int)this.Fields[(int)TypeLibSymbolFields.Language]; - set => this.Set((int)TypeLibSymbolFields.Language, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)TypeLibSymbolFields.ComponentRef]; - set => this.Set((int)TypeLibSymbolFields.ComponentRef, value); - } - - public int? Version - { - get => (int?)this.Fields[(int)TypeLibSymbolFields.Version]; - set => this.Set((int)TypeLibSymbolFields.Version, value); - } - - public string Description - { - get => (string)this.Fields[(int)TypeLibSymbolFields.Description]; - set => this.Set((int)TypeLibSymbolFields.Description, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)TypeLibSymbolFields.DirectoryRef]; - set => this.Set((int)TypeLibSymbolFields.DirectoryRef, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)TypeLibSymbolFields.FeatureRef]; - set => this.Set((int)TypeLibSymbolFields.FeatureRef, value); - } - - public int? Cost - { - get => (int?)this.Fields[(int)TypeLibSymbolFields.Cost]; - set => this.Set((int)TypeLibSymbolFields.Cost, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/UITextTuple.cs b/src/WixToolset.Data/Tuples/UITextTuple.cs deleted file mode 100644 index 39b99398..00000000 --- a/src/WixToolset.Data/Tuples/UITextTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UIText = new IntermediateSymbolDefinition( - SymbolDefinitionType.UIText, - new[] - { - new IntermediateFieldDefinition(nameof(UITextSymbolFields.Text), IntermediateFieldType.String), - }, - typeof(UITextSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UITextSymbolFields - { - Text, - } - - public class UITextSymbol : IntermediateSymbol - { - public UITextSymbol() : base(SymbolDefinitions.UIText, null, null) - { - } - - public UITextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UIText, sourceLineNumber, id) - { - } - - public IntermediateField this[UITextSymbolFields index] => this.Fields[(int)index]; - - public string Text - { - get => (string)this.Fields[(int)UITextSymbolFields.Text]; - set => this.Set((int)UITextSymbolFields.Text, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/UpgradeTuple.cs b/src/WixToolset.Data/Tuples/UpgradeTuple.cs deleted file mode 100644 index d8deee73..00000000 --- a/src/WixToolset.Data/Tuples/UpgradeTuple.cs +++ /dev/null @@ -1,132 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Upgrade = new IntermediateSymbolDefinition( - SymbolDefinitionType.Upgrade, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMin), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMax), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ExcludeLanguages), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.IgnoreRemoveFailures), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.MigrateFeatures), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.OnlyDetect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMaxInclusive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMinInclusive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Remove), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ActionProperty), IntermediateFieldType.String), - }, - typeof(UpgradeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradeSymbolFields - { - UpgradeCode, - VersionMin, - VersionMax, - Language, - ExcludeLanguages, - IgnoreRemoveFailures, - MigrateFeatures, - OnlyDetect, - VersionMaxInclusive, - VersionMinInclusive, - Remove, - ActionProperty, - } - - public class UpgradeSymbol : IntermediateSymbol - { - public UpgradeSymbol() : base(SymbolDefinitions.Upgrade, null, null) - { - } - - public UpgradeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Upgrade, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradeSymbolFields index] => this.Fields[(int)index]; - - public string UpgradeCode - { - get => (string)this.Fields[(int)UpgradeSymbolFields.UpgradeCode]; - set => this.Set((int)UpgradeSymbolFields.UpgradeCode, value); - } - - public string VersionMin - { - get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMin]; - set => this.Set((int)UpgradeSymbolFields.VersionMin, value); - } - - public string VersionMax - { - get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMax]; - set => this.Set((int)UpgradeSymbolFields.VersionMax, value); - } - - public string Language - { - get => (string)this.Fields[(int)UpgradeSymbolFields.Language]; - set => this.Set((int)UpgradeSymbolFields.Language, value); - } - - public bool ExcludeLanguages - { - get => this.Fields[(int)UpgradeSymbolFields.ExcludeLanguages].AsBool(); - set => this.Set((int)UpgradeSymbolFields.ExcludeLanguages, value); - } - - public bool IgnoreRemoveFailures - { - get => this.Fields[(int)UpgradeSymbolFields.IgnoreRemoveFailures].AsBool(); - set => this.Set((int)UpgradeSymbolFields.IgnoreRemoveFailures, value); - } - - public bool MigrateFeatures - { - get => this.Fields[(int)UpgradeSymbolFields.MigrateFeatures].AsBool(); - set => this.Set((int)UpgradeSymbolFields.MigrateFeatures, value); - } - - public bool OnlyDetect - { - get => this.Fields[(int)UpgradeSymbolFields.OnlyDetect].AsBool(); - set => this.Set((int)UpgradeSymbolFields.OnlyDetect, value); - } - - public bool VersionMaxInclusive - { - get => this.Fields[(int)UpgradeSymbolFields.VersionMaxInclusive].AsBool(); - set => this.Set((int)UpgradeSymbolFields.VersionMaxInclusive, value); - } - - public bool VersionMinInclusive - { - get => this.Fields[(int)UpgradeSymbolFields.VersionMinInclusive].AsBool(); - set => this.Set((int)UpgradeSymbolFields.VersionMinInclusive, value); - } - - public string Remove - { - get => (string)this.Fields[(int)UpgradeSymbolFields.Remove]; - set => this.Set((int)UpgradeSymbolFields.Remove, value); - } - - public string ActionProperty - { - get => (string)this.Fields[(int)UpgradeSymbolFields.ActionProperty]; - set => this.Set((int)UpgradeSymbolFields.ActionProperty, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs deleted file mode 100644 index 9e669ec3..00000000 --- a/src/WixToolset.Data/Tuples/UpgradedFilesOptionalDataTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UpgradedFilesOptionalData = new IntermediateSymbolDefinition( - SymbolDefinitionType.UpgradedFilesOptionalData, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile), IntermediateFieldType.Bool), - }, - typeof(UpgradedFilesOptionalDataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradedFilesOptionalDataSymbolFields - { - Upgraded, - FTK, - SymbolPaths, - AllowIgnoreOnPatchError, - IncludeWholeFile, - } - - public class UpgradedFilesOptionalDataSymbol : IntermediateSymbol - { - public UpgradedFilesOptionalDataSymbol() : base(SymbolDefinitions.UpgradedFilesOptionalData, null, null) - { - } - - public UpgradedFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesOptionalData, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradedFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; - - public string Upgraded - { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.Upgraded]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.Upgraded, value); - } - - public string FTK - { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.FTK]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.FTK, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths, value); - } - - public bool? AllowIgnoreOnPatchError - { - get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError, value); - } - - public bool? IncludeWholeFile - { - get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs deleted file mode 100644 index e21af6a2..00000000 --- a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UpgradedFilesToIgnore = new IntermediateSymbolDefinition( - SymbolDefinitionType.UpgradedFilesToIgnore, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.FTK), IntermediateFieldType.String), - }, - typeof(UpgradedFilesToIgnoreSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradedFilesToIgnoreSymbolFields - { - Upgraded, - FTK, - } - - public class UpgradedFilesToIgnoreSymbol : IntermediateSymbol - { - public UpgradedFilesToIgnoreSymbol() : base(SymbolDefinitions.UpgradedFilesToIgnore, null, null) - { - } - - public UpgradedFilesToIgnoreSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradedFilesToIgnoreSymbolFields index] => this.Fields[(int)index]; - - public string Upgraded - { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.Upgraded]; - set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.Upgraded, value); - } - - public string FTK - { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.FTK]; - set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.FTK, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs deleted file mode 100644 index 28eae08a..00000000 --- a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UpgradedImages = new IntermediateSymbolDefinition( - SymbolDefinitionType.UpgradedImages, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.MsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.PatchMsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Family), IntermediateFieldType.String), - }, - typeof(UpgradedImagesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradedImagesSymbolFields - { - Upgraded, - MsiPath, - PatchMsiPath, - SymbolPaths, - Family, - } - - public class UpgradedImagesSymbol : IntermediateSymbol - { - public UpgradedImagesSymbol() : base(SymbolDefinitions.UpgradedImages, null, null) - { - } - - public UpgradedImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedImages, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradedImagesSymbolFields index] => this.Fields[(int)index]; - - public string Upgraded - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Upgraded]; - set => this.Set((int)UpgradedImagesSymbolFields.Upgraded, value); - } - - public string MsiPath - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.MsiPath]; - set => this.Set((int)UpgradedImagesSymbolFields.MsiPath, value); - } - - public string PatchMsiPath - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.PatchMsiPath]; - set => this.Set((int)UpgradedImagesSymbolFields.PatchMsiPath, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.SymbolPaths]; - set => this.Set((int)UpgradedImagesSymbolFields.SymbolPaths, value); - } - - public string Family - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Family]; - set => this.Set((int)UpgradedImagesSymbolFields.Family, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/VerbTuple.cs b/src/WixToolset.Data/Tuples/VerbTuple.cs deleted file mode 100644 index 95f045d6..00000000 --- a/src/WixToolset.Data/Tuples/VerbTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Verb = new IntermediateSymbolDefinition( - SymbolDefinitionType.Verb, - new[] - { - new IntermediateFieldDefinition(nameof(VerbSymbolFields.ExtensionRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Verb), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Command), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Argument), IntermediateFieldType.String), - }, - typeof(VerbSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum VerbSymbolFields - { - ExtensionRef, - Verb, - Sequence, - Command, - Argument, - } - - public class VerbSymbol : IntermediateSymbol - { - public VerbSymbol() : base(SymbolDefinitions.Verb, null, null) - { - } - - public VerbSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Verb, sourceLineNumber, id) - { - } - - public IntermediateField this[VerbSymbolFields index] => this.Fields[(int)index]; - - public string ExtensionRef - { - get => (string)this.Fields[(int)VerbSymbolFields.ExtensionRef]; - set => this.Set((int)VerbSymbolFields.ExtensionRef, value); - } - - public string Verb - { - get => (string)this.Fields[(int)VerbSymbolFields.Verb]; - set => this.Set((int)VerbSymbolFields.Verb, value); - } - - public int? Sequence - { - get => (int?)this.Fields[(int)VerbSymbolFields.Sequence]; - set => this.Set((int)VerbSymbolFields.Sequence, value); - } - - public string Command - { - get => (string)this.Fields[(int)VerbSymbolFields.Command]; - set => this.Set((int)VerbSymbolFields.Command, value); - } - - public string Argument - { - get => (string)this.Fields[(int)VerbSymbolFields.Argument]; - set => this.Set((int)VerbSymbolFields.Argument, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixActionTuple.cs b/src/WixToolset.Data/Tuples/WixActionTuple.cs deleted file mode 100644 index a055d68f..00000000 --- a/src/WixToolset.Data/Tuples/WixActionTuple.cs +++ /dev/null @@ -1,101 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixAction = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixAction, - new[] - { - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.SequenceTable), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Before), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.After), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Overridable), IntermediateFieldType.Bool), - }, - typeof(WixActionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixActionSymbolFields - { - SequenceTable, - Action, - Condition, - Sequence, - Before, - After, - Overridable, - } - - public enum SequenceTable - { - AdminUISequence, - AdminExecuteSequence, - AdvertiseExecuteSequence, - InstallUISequence, - InstallExecuteSequence - } - - public class WixActionSymbol : IntermediateSymbol - { - public WixActionSymbol() : base(SymbolDefinitions.WixAction, null, null) - { - } - - public WixActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixAction, sourceLineNumber, id) - { - } - - public IntermediateField this[WixActionSymbolFields index] => this.Fields[(int)index]; - - public SequenceTable SequenceTable - { - get => (SequenceTable)this.Fields[(int)WixActionSymbolFields.SequenceTable].AsNumber(); - set => this.Set((int)WixActionSymbolFields.SequenceTable, (int)value); - } - - public string Action - { - get => (string)this.Fields[(int)WixActionSymbolFields.Action]; - set => this.Set((int)WixActionSymbolFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixActionSymbolFields.Condition]; - set => this.Set((int)WixActionSymbolFields.Condition, value); - } - - public int? Sequence - { - get => (int?)this.Fields[(int)WixActionSymbolFields.Sequence]; - set => this.Set((int)WixActionSymbolFields.Sequence, value); - } - - public string Before - { - get => (string)this.Fields[(int)WixActionSymbolFields.Before]; - set => this.Set((int)WixActionSymbolFields.Before, value); - } - - public string After - { - get => (string)this.Fields[(int)WixActionSymbolFields.After]; - set => this.Set((int)WixActionSymbolFields.After, value); - } - - public bool Overridable - { - get => this.Fields[(int)WixActionSymbolFields.Overridable].AsBool(); - set => this.Set((int)WixActionSymbolFields.Overridable, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs deleted file mode 100644 index 04c6e712..00000000 --- a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs +++ /dev/null @@ -1,71 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixApprovedExeForElevation = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixApprovedExeForElevation, - new[] - { - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.ValueName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixApprovedExeForElevationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixApprovedExeForElevationSymbolFields - { - Key, - ValueName, - Attributes, - } - - [Flags] - public enum WixApprovedExeForElevationAttributes - { - None = 0x0, - Win64 = 0x1, - } - - public class WixApprovedExeForElevationSymbol : IntermediateSymbol - { - public WixApprovedExeForElevationSymbol() : base(SymbolDefinitions.WixApprovedExeForElevation, null, null) - { - } - - public WixApprovedExeForElevationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) - { - } - - public IntermediateField this[WixApprovedExeForElevationSymbolFields index] => this.Fields[(int)index]; - - public string Key - { - get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Key]; - set => this.Set((int)WixApprovedExeForElevationSymbolFields.Key, value); - } - - public string ValueName - { - get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.ValueName]; - set => this.Set((int)WixApprovedExeForElevationSymbolFields.ValueName, value); - } - - public WixApprovedExeForElevationAttributes Attributes - { - get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixApprovedExeForElevationSymbolFields.Attributes, (int)value); - } - - public bool Win64 => (this.Attributes & WixApprovedExeForElevationAttributes.Win64) == WixApprovedExeForElevationAttributes.Win64; - } -} diff --git a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs deleted file mode 100644 index 03bdb69b..00000000 --- a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBindUpdatedFiles = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBindUpdatedFiles, - new[] - { - new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesSymbolFields.FileRef), IntermediateFieldType.String), - }, - typeof(WixBindUpdatedFilesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBindUpdatedFilesSymbolFields - { - FileRef, - } - - public class WixBindUpdatedFilesSymbol : IntermediateSymbol - { - public WixBindUpdatedFilesSymbol() : base(SymbolDefinitions.WixBindUpdatedFiles, null, null) - { - } - - public WixBindUpdatedFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBindUpdatedFilesSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)WixBindUpdatedFilesSymbolFields.FileRef]; - set => this.Set((int)WixBindUpdatedFilesSymbolFields.FileRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs deleted file mode 100644 index 3d7876fd..00000000 --- a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBootstrapperApplication = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBootstrapperApplication, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBootstrapperApplicationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBootstrapperApplicationSymbolFields - { - } - - public class WixBootstrapperApplicationSymbol : IntermediateSymbol - { - public WixBootstrapperApplicationSymbol() : base(SymbolDefinitions.WixBootstrapperApplication, null, null) - { - } - - public WixBootstrapperApplicationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplication, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBootstrapperApplicationSymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs deleted file mode 100644 index 66e04d4b..00000000 --- a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBuildInfo = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBuildInfo, - new[] - { - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixOutputFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixProjectFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixPdbFile), IntermediateFieldType.String), - }, - typeof(WixBuildInfoSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBuildInfoSymbolFields - { - WixVersion, - WixOutputFile, - WixProjectFile, - WixPdbFile, - } - - public class WixBuildInfoSymbol : IntermediateSymbol - { - public WixBuildInfoSymbol() : base(SymbolDefinitions.WixBuildInfo, null, null) - { - } - - public WixBuildInfoSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBuildInfo, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBuildInfoSymbolFields index] => this.Fields[(int)index]; - - public string WixVersion - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixVersion]; - set => this.Set((int)WixBuildInfoSymbolFields.WixVersion, value); - } - - public string WixOutputFile - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixOutputFile]; - set => this.Set((int)WixBuildInfoSymbolFields.WixOutputFile, value); - } - - public string WixProjectFile - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixProjectFile]; - set => this.Set((int)WixBuildInfoSymbolFields.WixProjectFile, value); - } - - public string WixPdbFile - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixPdbFile]; - set => this.Set((int)WixBuildInfoSymbolFields.WixPdbFile, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs deleted file mode 100644 index 48415228..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCatalog = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCatalog, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCatalogSymbolFields.PayloadRef), IntermediateFieldType.String), - }, - typeof(WixBundleCatalogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCatalogSymbolFields - { - PayloadRef, - } - - public class WixBundleCatalogSymbol : IntermediateSymbol - { - public WixBundleCatalogSymbol() : base(SymbolDefinitions.WixBundleCatalog, null, null) - { - } - - public WixBundleCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCatalog, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCatalogSymbolFields index] => this.Fields[(int)index]; - - public string PayloadRef - { - get => (string)this.Fields[(int)WixBundleCatalogSymbolFields.PayloadRef]; - set => this.Set((int)WixBundleCatalogSymbolFields.PayloadRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs deleted file mode 100644 index 80beda0a..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs +++ /dev/null @@ -1,103 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleContainer = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleContainer, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Size), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Hash), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.AttachedContainerIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.WorkingPath), IntermediateFieldType.String), - }, - typeof(WixBundleContainerSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleContainerSymbolFields - { - Name, - Type, - DownloadUrl, - Size, - Hash, - AttachedContainerIndex, - WorkingPath, - } - - /// - /// Types of bundle packages. - /// - public enum ContainerType - { - Attached, - Detached, - } - - public class WixBundleContainerSymbol : IntermediateSymbol - { - public WixBundleContainerSymbol() : base(SymbolDefinitions.WixBundleContainer, null, null) - { - } - - public WixBundleContainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleContainer, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleContainerSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Name]; - set => this.Set((int)WixBundleContainerSymbolFields.Name, value); - } - - public ContainerType Type - { - get => (ContainerType)this.Fields[(int)WixBundleContainerSymbolFields.Type].AsNumber(); - set => this.Set((int)WixBundleContainerSymbolFields.Type, (int)value); - } - - public string DownloadUrl - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.DownloadUrl]; - set => this.Set((int)WixBundleContainerSymbolFields.DownloadUrl, value); - } - - public long? Size - { - get => (long?)this.Fields[(int)WixBundleContainerSymbolFields.Size]; - set => this.Set((int)WixBundleContainerSymbolFields.Size, value); - } - - public string Hash - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Hash]; - set => this.Set((int)WixBundleContainerSymbolFields.Hash, value); - } - - public int? AttachedContainerIndex - { - get => (int?)this.Fields[(int)WixBundleContainerSymbolFields.AttachedContainerIndex]; - set => this.Set((int)WixBundleContainerSymbolFields.AttachedContainerIndex, value); - } - - public string WorkingPath - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.WorkingPath]; - set => this.Set((int)WixBundleContainerSymbolFields.WorkingPath, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs deleted file mode 100644 index c0a657ee..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCustomDataAttribute = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCustomDataAttribute, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.CustomDataRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.Name), IntermediateFieldType.String), - }, - typeof(WixBundleCustomDataAttributeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCustomDataAttributeSymbolFields - { - CustomDataRef, - Name, - } - - public class WixBundleCustomDataAttributeSymbol : IntermediateSymbol - { - public WixBundleCustomDataAttributeSymbol() : base(SymbolDefinitions.WixBundleCustomDataAttribute, null, null) - { - } - - public WixBundleCustomDataAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCustomDataAttributeSymbolFields index] => this.Fields[(int)index]; - - public string CustomDataRef - { - get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef]; - set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.Name]; - set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.Name, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs deleted file mode 100644 index 0488969a..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCustomDataCell = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCustomDataCell, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.CustomDataRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.AttributeRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.ElementId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(WixBundleCustomDataCellSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCustomDataCellSymbolFields - { - CustomDataRef, - AttributeRef, - ElementId, - Value, - } - - public class WixBundleCustomDataCellSymbol : IntermediateSymbol - { - public WixBundleCustomDataCellSymbol() : base(SymbolDefinitions.WixBundleCustomDataCell, null, null) - { - } - - public WixBundleCustomDataCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCustomDataCellSymbolFields index] => this.Fields[(int)index]; - - public string CustomDataRef - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.CustomDataRef]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.CustomDataRef, value); - } - - public string AttributeRef - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.AttributeRef]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.AttributeRef, value); - } - - public string ElementId - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.ElementId]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.ElementId, value); - } - - public string Value - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.Value]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.Value, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs deleted file mode 100644 index 0490f9f7..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs +++ /dev/null @@ -1,71 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCustomData = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCustomData, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.AttributeNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.BundleExtensionRef), IntermediateFieldType.String), - }, - typeof(WixBundleCustomDataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCustomDataSymbolFields - { - AttributeNames, - Type, - BundleExtensionRef, - } - - public enum WixBundleCustomDataType - { - Unknown, - BootstrapperApplication, - BundleExtension, - } - - public class WixBundleCustomDataSymbol : IntermediateSymbol - { - public const char AttributeNamesSeparator = '\x85'; - - public WixBundleCustomDataSymbol() : base(SymbolDefinitions.WixBundleCustomData, null, null) - { - } - - public WixBundleCustomDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomData, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCustomDataSymbolFields index] => this.Fields[(int)index]; - - public string AttributeNames - { - get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.AttributeNames]; - set => this.Set((int)WixBundleCustomDataSymbolFields.AttributeNames, value); - } - - public WixBundleCustomDataType Type - { - get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataSymbolFields.Type].AsNumber(); - set => this.Set((int)WixBundleCustomDataSymbolFields.Type, (int)value); - } - - public string BundleExtensionRef - { - get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.BundleExtensionRef]; - set => this.Set((int)WixBundleCustomDataSymbolFields.BundleExtensionRef, value); - } - - public string[] AttributeNamesSeparated => this.AttributeNames.Split(AttributeNamesSeparator); - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs deleted file mode 100644 index 8a8cff1b..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs +++ /dev/null @@ -1,94 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleExePackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleExePackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.DetectCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.InstallCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.UninstallCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.ExeProtocol), IntermediateFieldType.String), - }, - typeof(WixBundleExePackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleExePackageSymbolFields - { - Attributes, - DetectCondition, - InstallCommand, - RepairCommand, - UninstallCommand, - ExeProtocol, - } - - [Flags] - public enum WixBundleExePackageAttributes - { - None = 0, - } - - public class WixBundleExePackageSymbol : IntermediateSymbol - { - public WixBundleExePackageSymbol() : base(SymbolDefinitions.WixBundleExePackage, null, null) - { - } - - public WixBundleExePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleExePackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundleExePackageAttributes Attributes - { - get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageSymbolFields.Attributes]; - set => this.Set((int)WixBundleExePackageSymbolFields.Attributes, (int)value); - } - - public string DetectCondition - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.DetectCondition]; - set => this.Set((int)WixBundleExePackageSymbolFields.DetectCondition, value); - } - - public string InstallCommand - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.InstallCommand]; - set => this.Set((int)WixBundleExePackageSymbolFields.InstallCommand, value); - } - - public string RepairCommand - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.RepairCommand]; - set => this.Set((int)WixBundleExePackageSymbolFields.RepairCommand, value); - } - - public string UninstallCommand - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.UninstallCommand]; - set => this.Set((int)WixBundleExePackageSymbolFields.UninstallCommand, value); - } - - public string ExeProtocol - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.ExeProtocol]; - set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); - } - - public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs deleted file mode 100644 index 8e6bea58..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleExtensionTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleExtension = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleExtension, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleExtensionSymbolFields.PayloadRef), IntermediateFieldType.String), - }, - typeof(WixBundleExtensionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleExtensionSymbolFields - { - PayloadRef, - } - - public class WixBundleExtensionSymbol : IntermediateSymbol - { - public WixBundleExtensionSymbol() : base(SymbolDefinitions.WixBundleExtension, null, null) - { - } - - public WixBundleExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExtension, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleExtensionSymbolFields index] => this.Fields[(int)index]; - - public string PayloadRef - { - get => (string)this.Fields[(int)WixBundleExtensionSymbolFields.PayloadRef]; - set => this.Set((int)WixBundleExtensionSymbolFields.PayloadRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs deleted file mode 100644 index f81da5b8..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsiFeature = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsiFeature, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Size), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Display), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Directory), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundleMsiFeatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsiFeatureSymbolFields - { - PackageRef, - Name, - Size, - Parent, - Title, - Description, - Display, - Level, - Directory, - Attributes, - } - - public class WixBundleMsiFeatureSymbol : IntermediateSymbol - { - public WixBundleMsiFeatureSymbol() : base(SymbolDefinitions.WixBundleMsiFeature, null, null) - { - } - - public WixBundleMsiFeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiFeature, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsiFeatureSymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.PackageRef]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.PackageRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Name]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Name, value); - } - - public long Size - { - get => (long)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Size]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Size, value); - } - - public string Parent - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Parent]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Parent, value); - } - - public string Title - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Title]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Title, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Description]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Description, value); - } - - public int Display - { - get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Display]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Display, value); - } - - public int Level - { - get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Level]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Level, value); - } - - public string Directory - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Directory]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Directory, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Attributes]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Attributes, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs deleted file mode 100644 index 21735f64..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs +++ /dev/null @@ -1,105 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsiPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsiPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Manufacturer), IntermediateFieldType.String), - }, - typeof(WixBundleMsiPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleMsiPackageSymbolFields - { - Attributes, - ProductCode, - UpgradeCode, - ProductVersion, - ProductLanguage, - ProductName, - Manufacturer, - } - - [Flags] - public enum WixBundleMsiPackageAttributes - { - EnableFeatureSelection = 0x4, - ForcePerMachine = 0x2, - } - - public class WixBundleMsiPackageSymbol : IntermediateSymbol - { - public WixBundleMsiPackageSymbol() : base(SymbolDefinitions.WixBundleMsiPackage, null, null) - { - } - - public WixBundleMsiPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsiPackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundleMsiPackageAttributes Attributes - { - get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageSymbolFields.Attributes]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.Attributes, (int)value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductCode]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductCode, value); - } - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.UpgradeCode]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.UpgradeCode, value); - } - - public string ProductVersion - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductVersion]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductVersion, value); - } - - public int ProductLanguage - { - get => (int)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductLanguage]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductLanguage, value); - } - - public string ProductName - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductName]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductName, value); - } - - public string Manufacturer - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.Manufacturer]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.Manufacturer, value); - } - - public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; - - public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs deleted file mode 100644 index 0d87f87d..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsiProperty = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsiProperty, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(WixBundleMsiPropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsiPropertySymbolFields - { - PackageRef, - Name, - Value, - Condition, - } - - public class WixBundleMsiPropertySymbol : IntermediateSymbol - { - public WixBundleMsiPropertySymbol() : base(SymbolDefinitions.WixBundleMsiProperty, null, null) - { - } - - public WixBundleMsiPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiProperty, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsiPropertySymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.PackageRef]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.PackageRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Name]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Value]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.Value, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Condition]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs deleted file mode 100644 index 3784c2ff..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs +++ /dev/null @@ -1,81 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMspPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMspPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchXml), IntermediateFieldType.String), - }, - typeof(WixBundleMspPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleMspPackageSymbolFields - { - Attributes, - PatchCode, - Manufacturer, - PatchXml, - } - - [Flags] - public enum WixBundleMspPackageAttributes - { - Slipstream = 0x2, - TargetUnspecified = 0x4, - } - - public class WixBundleMspPackageSymbol : IntermediateSymbol - { - public WixBundleMspPackageSymbol() : base(SymbolDefinitions.WixBundleMspPackage, null, null) - { - } - - public WixBundleMspPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMspPackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundleMspPackageAttributes Attributes - { - get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageSymbolFields.Attributes]; - set => this.Set((int)WixBundleMspPackageSymbolFields.Attributes, (int)value); - } - - public string PatchCode - { - get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchCode]; - set => this.Set((int)WixBundleMspPackageSymbolFields.PatchCode, value); - } - - public string Manufacturer - { - get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.Manufacturer]; - set => this.Set((int)WixBundleMspPackageSymbolFields.Manufacturer, value); - } - - public string PatchXml - { - get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchXml]; - set => this.Set((int)WixBundleMspPackageSymbolFields.PatchXml, value); - } - - public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; - - public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs deleted file mode 100644 index e52a9b2d..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsuPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsuPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.DetectCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.MsuKB), IntermediateFieldType.String), - }, - typeof(WixBundleMsuPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsuPackageSymbolFields - { - DetectCondition, - MsuKB, - } - - public class WixBundleMsuPackageSymbol : IntermediateSymbol - { - public WixBundleMsuPackageSymbol() : base(SymbolDefinitions.WixBundleMsuPackage, null, null) - { - } - - public WixBundleMsuPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsuPackageSymbolFields index] => this.Fields[(int)index]; - - public string DetectCondition - { - get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.DetectCondition]; - set => this.Set((int)WixBundleMsuPackageSymbolFields.DetectCondition, value); - } - - public string MsuKB - { - get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.MsuKB]; - set => this.Set((int)WixBundleMsuPackageSymbolFields.MsuKB, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs deleted file mode 100644 index 7ef254a6..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackageCommandLine = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackageCommandLine, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.InstallArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.UninstallArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.RepairArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(WixBundlePackageCommandLineSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundlePackageCommandLineSymbolFields - { - WixBundlePackageRef, - InstallArgument, - UninstallArgument, - RepairArgument, - Condition, - } - - public class WixBundlePackageCommandLineSymbol : IntermediateSymbol - { - public WixBundlePackageCommandLineSymbol() : base(SymbolDefinitions.WixBundlePackageCommandLine, null, null) - { - } - - public WixBundlePackageCommandLineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageCommandLineSymbolFields index] => this.Fields[(int)index]; - - public string WixBundlePackageRef - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef, value); - } - - public string InstallArgument - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.InstallArgument]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.InstallArgument, value); - } - - public string UninstallArgument - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.UninstallArgument]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.UninstallArgument, value); - } - - public string RepairArgument - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.RepairArgument]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.RepairArgument, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.Condition]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs deleted file mode 100644 index d77d9d58..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs +++ /dev/null @@ -1,71 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackageExitCode = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackageExitCode, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.ChainPackageId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Code), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Behavior), IntermediateFieldType.String), - }, - typeof(WixBundlePackageExitCodeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePackageExitCodeSymbolFields - { - ChainPackageId, - Code, - Behavior, - } - - public enum ExitCodeBehaviorType - { - NotSet = -1, - Success, - Error, - ScheduleReboot, - ForceReboot, - } - - public class WixBundlePackageExitCodeSymbol : IntermediateSymbol - { - public WixBundlePackageExitCodeSymbol() : base(SymbolDefinitions.WixBundlePackageExitCode, null, null) - { - } - - public WixBundlePackageExitCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageExitCodeSymbolFields index] => this.Fields[(int)index]; - - public string ChainPackageId - { - get => (string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.ChainPackageId]; - set => this.Set((int)WixBundlePackageExitCodeSymbolFields.ChainPackageId, value); - } - - public int? Code - { - get => (int?)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Code]; - set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Code, value); - } - - public ExitCodeBehaviorType Behavior - { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Behavior], true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; - set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Behavior, value.ToString()); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs deleted file mode 100644 index a5e1943b..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackageGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackageGroup, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundlePackageGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundlePackageGroupSymbolFields - { - } - - public class WixBundlePackageGroupSymbol : IntermediateSymbol - { - public WixBundlePackageGroupSymbol() : base(SymbolDefinitions.WixBundlePackageGroup, null, null) - { - } - - public WixBundlePackageGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageGroupSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs deleted file mode 100644 index 8f073900..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs +++ /dev/null @@ -1,212 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PayloadRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Cache), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.CacheId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Vital), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PerMachine), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackLogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Win64), IntermediateFieldType.Bool), - }, - typeof(WixBundlePackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePackageSymbolFields - { - Type, - PayloadRef, - Attributes, - InstallCondition, - Cache, - CacheId, - Vital, - PerMachine, - LogPathVariable, - RollbackLogPathVariable, - Size, - InstallSize, - Version, - Language, - DisplayName, - Description, - RollbackBoundaryRef, - RollbackBoundaryBackwardRef, - Win64, - } - - /// - /// Types of bundle packages. - /// - public enum WixBundlePackageType - { - Exe, - Msi, - Msp, - Msu, - } - - [Flags] - public enum WixBundlePackageAttributes - { - Permanent = 0x1, - Visible = 0x2, - PerMachine = 0x4, - Win64 = 0x8, - } - - public class WixBundlePackageSymbol : IntermediateSymbol - { - public WixBundlePackageSymbol() : base(SymbolDefinitions.WixBundlePackage, null, null) - { - } - - public WixBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundlePackageType Type - { - get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageSymbolFields.Type], true); - set => this.Set((int)WixBundlePackageSymbolFields.Type, value.ToString()); - } - - public string PayloadRef - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.PayloadRef]; - set => this.Set((int)WixBundlePackageSymbolFields.PayloadRef, value); - } - - public WixBundlePackageAttributes Attributes - { - get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageSymbolFields.Attributes]; - set => this.Set((int)WixBundlePackageSymbolFields.Attributes, (int)value); - } - - public string InstallCondition - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.InstallCondition]; - set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value); - } - - public YesNoAlwaysType Cache - { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; - set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant()); - } - - public string CacheId - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.CacheId]; - set => this.Set((int)WixBundlePackageSymbolFields.CacheId, value); - } - - public bool? Vital - { - get => (bool?)this.Fields[(int)WixBundlePackageSymbolFields.Vital]; - set => this.Set((int)WixBundlePackageSymbolFields.Vital, value); - } - - public YesNoDefaultType PerMachine - { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; - set => this.Set((int)WixBundlePackageSymbolFields.PerMachine, value.ToString().ToLowerInvariant()); - } - - public string LogPathVariable - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.LogPathVariable]; - set => this.Set((int)WixBundlePackageSymbolFields.LogPathVariable, value); - } - - public string RollbackLogPathVariable - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackLogPathVariable]; - set => this.Set((int)WixBundlePackageSymbolFields.RollbackLogPathVariable, value); - } - - public int Size - { - get => (int)this.Fields[(int)WixBundlePackageSymbolFields.Size]; - set => this.Set((int)WixBundlePackageSymbolFields.Size, value); - } - - public long? InstallSize - { - get => (long?)this.Fields[(int)WixBundlePackageSymbolFields.InstallSize]; - set => this.Set((int)WixBundlePackageSymbolFields.InstallSize, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Version]; - set => this.Set((int)WixBundlePackageSymbolFields.Version, value); - } - - public int? Language - { - get => (int?)this.Fields[(int)WixBundlePackageSymbolFields.Language]; - set => this.Set((int)WixBundlePackageSymbolFields.Language, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.DisplayName]; - set => this.Set((int)WixBundlePackageSymbolFields.DisplayName, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Description]; - set => this.Set((int)WixBundlePackageSymbolFields.Description, value); - } - - public string RollbackBoundaryRef - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryRef]; - set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryRef, value); - } - - public string RollbackBoundaryBackwardRef - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef]; - set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef, value); - } - - public bool Win64 - { - get => (bool)this.Fields[(int)WixBundlePackageSymbolFields.Win64]; - set => this.Set((int)WixBundlePackageSymbolFields.Win64, value); - } - - public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs deleted file mode 100644 index b1aa9c77..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs +++ /dev/null @@ -1,82 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePatchTargetCode = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePatchTargetCode, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.TargetCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundlePatchTargetCodeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePatchTargetCodeSymbolFields - { - PackageRef, - TargetCode, - Attributes, - } - - [Flags] - public enum WixBundlePatchTargetCodeAttributes : int - { - None = 0, - - /// - /// The transform targets a specific ProductCode. - /// - TargetsProductCode = 1, - - /// - /// The transform targets a specific UpgradeCode. - /// - TargetsUpgradeCode = 2, - } - - public class WixBundlePatchTargetCodeSymbol : IntermediateSymbol - { - public WixBundlePatchTargetCodeSymbol() : base(SymbolDefinitions.WixBundlePatchTargetCode, null, null) - { - } - - public WixBundlePatchTargetCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePatchTargetCodeSymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.PackageRef]; - set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.PackageRef, value); - } - - public string TargetCode - { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.TargetCode]; - set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.TargetCode, value); - } - - public WixBundlePatchTargetCodeAttributes Attributes - { - get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.Attributes, (int)value); - } - - public bool TargetsProductCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsProductCode) == WixBundlePatchTargetCodeAttributes.TargetsProductCode; - - public bool TargetsUpgradeCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode) == WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode; - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs deleted file mode 100644 index c53f6e73..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePayloadGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePayloadGroup, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundlePayloadGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundlePayloadGroupSymbolFields - { - } - - public class WixBundlePayloadGroupSymbol : IntermediateSymbol - { - public WixBundlePayloadGroupSymbol() : base(SymbolDefinitions.WixBundlePayloadGroup, null, null) - { - } - - public WixBundlePayloadGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePayloadGroupSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs deleted file mode 100644 index 94a02af8..00000000 --- a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs +++ /dev/null @@ -1,206 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePayload = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePayload, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.SourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Compressed), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.UnresolvedSourceFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EnableSignatureValidation), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PublicKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Thumbprint), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.CatalogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EmbeddedId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.LayoutOnly), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Packaging), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ParentPackagePayloadRef), IntermediateFieldType.String), - }, - typeof(WixBundlePayloadSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePayloadSymbolFields - { - Name, - SourceFile, - DownloadUrl, - Compressed, - UnresolvedSourceFile, - DisplayName, - Description, - EnableSignatureValidation, - FileSize, - Version, - Hash, - PublicKey, - Thumbprint, - CatalogRef, - ContainerRef, - PackageRef, - ContentFile, - EmbeddedId, - LayoutOnly, - Packaging, - ParentPackagePayloadRef, - } - - public class WixBundlePayloadSymbol : IntermediateSymbol - { - public WixBundlePayloadSymbol() : base(SymbolDefinitions.WixBundlePayload, null, null) - { - } - - public WixBundlePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayload, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePayloadSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Name]; - set => this.Set((int)WixBundlePayloadSymbolFields.Name, value); - } - - public IntermediateFieldPathValue SourceFile - { - get => this.Fields[(int)WixBundlePayloadSymbolFields.SourceFile].AsPath(); - set => this.Set((int)WixBundlePayloadSymbolFields.SourceFile, value); - } - - public string DownloadUrl - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DownloadUrl]; - set => this.Set((int)WixBundlePayloadSymbolFields.DownloadUrl, value); - } - - public bool? Compressed - { - get => (bool?)this.Fields[(int)WixBundlePayloadSymbolFields.Compressed]; - set => this.Set((int)WixBundlePayloadSymbolFields.Compressed, value); - } - - public string UnresolvedSourceFile - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.UnresolvedSourceFile]; - set => this.Set((int)WixBundlePayloadSymbolFields.UnresolvedSourceFile, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DisplayName]; - set => this.Set((int)WixBundlePayloadSymbolFields.DisplayName, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Description]; - set => this.Set((int)WixBundlePayloadSymbolFields.Description, value); - } - - public bool EnableSignatureValidation - { - get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.EnableSignatureValidation]; - set => this.Set((int)WixBundlePayloadSymbolFields.EnableSignatureValidation, value); - } - - public int? FileSize - { - get => (int?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; - set => this.Set((int)WixBundlePayloadSymbolFields.FileSize, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Version]; - set => this.Set((int)WixBundlePayloadSymbolFields.Version, value); - } - - public string Hash - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Hash]; - set => this.Set((int)WixBundlePayloadSymbolFields.Hash, value); - } - - public string PublicKey - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PublicKey]; - set => this.Set((int)WixBundlePayloadSymbolFields.PublicKey, value); - } - - public string Thumbprint - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Thumbprint]; - set => this.Set((int)WixBundlePayloadSymbolFields.Thumbprint, value); - } - - public string CatalogRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.CatalogRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.CatalogRef, value); - } - - public string ContainerRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ContainerRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.ContainerRef, value); - } - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PackageRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.PackageRef, value); - } - - public bool ContentFile - { - get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.ContentFile]; - set => this.Set((int)WixBundlePayloadSymbolFields.ContentFile, value); - } - - public string EmbeddedId - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.EmbeddedId]; - set => this.Set((int)WixBundlePayloadSymbolFields.EmbeddedId, value); - } - - public bool LayoutOnly - { - get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.LayoutOnly]; - set => this.Set((int)WixBundlePayloadSymbolFields.LayoutOnly, value); - } - - public PackagingType? Packaging - { - get => (PackagingType?)this.Fields[(int)WixBundlePayloadSymbolFields.Packaging].AsNumber(); - set => this.Set((int)WixBundlePayloadSymbolFields.Packaging, (int?)value); - } - - public string ParentPackagePayloadRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs deleted file mode 100644 index 7bd67b7f..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs +++ /dev/null @@ -1,104 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleRelatedPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleRelatedPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.RelatedId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Languages), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundleRelatedPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleRelatedPackageSymbolFields - { - PackageRef, - RelatedId, - MinVersion, - MaxVersion, - Languages, - Attributes, - } - - [Flags] - public enum WixBundleRelatedPackageAttributes - { - None = 0x0, - OnlyDetect = 0x1, - MinInclusive = 0x2, - MaxInclusive = 0x4, - LangInclusive = 0x8, - } - - public class WixBundleRelatedPackageSymbol : IntermediateSymbol - { - public WixBundleRelatedPackageSymbol() : base(SymbolDefinitions.WixBundleRelatedPackage, null, null) - { - } - - public WixBundleRelatedPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleRelatedPackageSymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.PackageRef]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.PackageRef, value); - } - - public string RelatedId - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.RelatedId]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.RelatedId, value); - } - - public string MinVersion - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MinVersion]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.MinVersion, value); - } - - public string MaxVersion - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MaxVersion]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.MaxVersion, value); - } - - public string Languages - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Languages]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.Languages, value); - } - - public WixBundleRelatedPackageAttributes Attributes - { - get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixBundleRelatedPackageSymbolFields.Attributes, (int)value); - } - - public bool MinInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MinInclusive) == WixBundleRelatedPackageAttributes.MinInclusive; - - public bool MaxInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MaxInclusive) == WixBundleRelatedPackageAttributes.MaxInclusive; - - public bool OnlyDetect => (this.Attributes & WixBundleRelatedPackageAttributes.OnlyDetect) == WixBundleRelatedPackageAttributes.OnlyDetect; - - public bool LangInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.LangInclusive) == WixBundleRelatedPackageAttributes.LangInclusive; - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs deleted file mode 100644 index e54e898e..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleRollbackBoundary = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleRollbackBoundary, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Vital), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Transaction), IntermediateFieldType.Number), - }, - typeof(WixBundleRollbackBoundarySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleRollbackBoundarySymbolFields - { - Vital, - Transaction, - } - - public class WixBundleRollbackBoundarySymbol : IntermediateSymbol - { - public WixBundleRollbackBoundarySymbol() : base(SymbolDefinitions.WixBundleRollbackBoundary, null, null) - { - } - - public WixBundleRollbackBoundarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleRollbackBoundarySymbolFields index] => this.Fields[(int)index]; - - public bool? Vital - { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Vital]; - set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Vital, value); - } - - public bool? Transaction - { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Transaction]; - set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Transaction, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs deleted file mode 100644 index d8e9db3f..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleSlipstreamMsp = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleSlipstreamMsp, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.TargetPackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.MspPackageRef), IntermediateFieldType.String), - }, - typeof(WixBundleSlipstreamMspSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleSlipstreamMspSymbolFields - { - TargetPackageRef, - MspPackageRef, - } - - public class WixBundleSlipstreamMspSymbol : IntermediateSymbol - { - public WixBundleSlipstreamMspSymbol() : base(SymbolDefinitions.WixBundleSlipstreamMsp, null, null) - { - } - - public WixBundleSlipstreamMspSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleSlipstreamMspSymbolFields index] => this.Fields[(int)index]; - - public string TargetPackageRef - { - get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef]; - set => this.Set((int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef, value); - } - - public string MspPackageRef - { - get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.MspPackageRef]; - set => this.Set((int)WixBundleSlipstreamMspSymbolFields.MspPackageRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs deleted file mode 100644 index 8cad5c36..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleTuple.cs +++ /dev/null @@ -1,234 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundle = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundle, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Copyright), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.AboutUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpTelephone), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpdateUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Compressed), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPrefix), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogExtension), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.IconSourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.SplashScreenSourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Tag), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Platform), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ParentName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.BundleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ProviderKey), IntermediateFieldType.String), - }, - typeof(WixBundleSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleSymbolFields - { - UpgradeCode, - Version, - Copyright, - Name, - Manufacturer, - Attributes, - AboutUrl, - HelpUrl, - HelpTelephone, - UpdateUrl, - Compressed, - LogPathVariable, - LogPrefix, - LogExtension, - IconSourceFile, - SplashScreenSourceFile, - Condition, - Tag, - Platform, - ParentName, - BundleId, - ProviderKey, - } - - [Flags] - public enum WixBundleAttributes - { - None = 0x0, - DisableModify = 0x1, - DisableRemove = 0x2, - SingleChangeUninstallButton = 0x4, - PerMachine = 0x8, - } - - public class WixBundleSymbol : IntermediateSymbol - { - public WixBundleSymbol() : base(SymbolDefinitions.WixBundle, null, null) - { - } - - public WixBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundle, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleSymbolFields index] => this.Fields[(int)index]; - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixBundleSymbolFields.UpgradeCode]; - set => this.Set((int)WixBundleSymbolFields.UpgradeCode, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Version]; - set => this.Set((int)WixBundleSymbolFields.Version, value); - } - - public string Copyright - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Copyright]; - set => this.Set((int)WixBundleSymbolFields.Copyright, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Name]; - set => this.Set((int)WixBundleSymbolFields.Name, value); - } - - public string Manufacturer - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Manufacturer]; - set => this.Set((int)WixBundleSymbolFields.Manufacturer, value); - } - - public WixBundleAttributes Attributes - { - get => (WixBundleAttributes)this.Fields[(int)WixBundleSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixBundleSymbolFields.Attributes, (int)value); - } - - public string AboutUrl - { - get => (string)this.Fields[(int)WixBundleSymbolFields.AboutUrl]; - set => this.Set((int)WixBundleSymbolFields.AboutUrl, value); - } - - public string HelpTelephone - { - get => (string)this.Fields[(int)WixBundleSymbolFields.HelpTelephone]; - set => this.Set((int)WixBundleSymbolFields.HelpTelephone, value); - } - - public string HelpUrl - { - get => (string)this.Fields[(int)WixBundleSymbolFields.HelpUrl]; - set => this.Set((int)WixBundleSymbolFields.HelpUrl, value); - } - - public string UpdateUrl - { - get => (string)this.Fields[(int)WixBundleSymbolFields.UpdateUrl]; - set => this.Set((int)WixBundleSymbolFields.UpdateUrl, value); - } - - public bool? Compressed - { - get => (bool?)this.Fields[(int)WixBundleSymbolFields.Compressed]; - set => this.Set((int)WixBundleSymbolFields.Compressed, value); - } - - public string LogPathVariable - { - get => (string)this.Fields[(int)WixBundleSymbolFields.LogPathVariable]; - set => this.Set((int)WixBundleSymbolFields.LogPathVariable, value); - } - - public string LogPrefix - { - get => (string)this.Fields[(int)WixBundleSymbolFields.LogPrefix]; - set => this.Set((int)WixBundleSymbolFields.LogPrefix, value); - } - - public string LogExtension - { - get => (string)this.Fields[(int)WixBundleSymbolFields.LogExtension]; - set => this.Set((int)WixBundleSymbolFields.LogExtension, value); - } - - public string IconSourceFile - { - get => (string)this.Fields[(int)WixBundleSymbolFields.IconSourceFile]; - set => this.Set((int)WixBundleSymbolFields.IconSourceFile, value); - } - - public string SplashScreenSourceFile - { - get => (string)this.Fields[(int)WixBundleSymbolFields.SplashScreenSourceFile]; - set => this.Set((int)WixBundleSymbolFields.SplashScreenSourceFile, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Condition]; - set => this.Set((int)WixBundleSymbolFields.Condition, value); - } - - public string Tag - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Tag]; - set => this.Set((int)WixBundleSymbolFields.Tag, value); - } - - public Platform Platform - { - get => (Platform)this.Fields[(int)WixBundleSymbolFields.Platform].AsNumber(); - set => this.Set((int)WixBundleSymbolFields.Platform, (int)value); - } - - public string ParentName - { - get => (string)this.Fields[(int)WixBundleSymbolFields.ParentName]; - set => this.Set((int)WixBundleSymbolFields.ParentName, value); - } - - public string BundleId - { - get => (string)this.Fields[(int)WixBundleSymbolFields.BundleId]; - set => this.Set((int)WixBundleSymbolFields.BundleId, value); - } - - public string ProviderKey - { - get => (string)this.Fields[(int)WixBundleSymbolFields.ProviderKey]; - set => this.Set((int)WixBundleSymbolFields.ProviderKey, value); - } - - public PackagingType DefaultPackagingType => (this.Compressed.HasValue && !this.Compressed.Value) ? PackagingType.External : PackagingType.Embedded; - - public bool DisableModify => (this.Attributes & WixBundleAttributes.DisableModify) == WixBundleAttributes.DisableModify; - - public bool DisableRemove => (this.Attributes & WixBundleAttributes.DisableRemove) == WixBundleAttributes.DisableRemove; - - public bool PerMachine => (this.Attributes & WixBundleAttributes.PerMachine) == WixBundleAttributes.PerMachine; - - public bool SingleChangeUninstallButton => (this.Attributes & WixBundleAttributes.SingleChangeUninstallButton) == WixBundleAttributes.SingleChangeUninstallButton; - } -} diff --git a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs deleted file mode 100644 index d27bbc32..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleUpdate = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleUpdate, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Location), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundleUpdateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleUpdateSymbolFields - { - Location, - Attributes, - } - - public class WixBundleUpdateSymbol : IntermediateSymbol - { - public WixBundleUpdateSymbol() : base(SymbolDefinitions.WixBundleUpdate, null, null) - { - } - - public WixBundleUpdateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleUpdate, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleUpdateSymbolFields index] => this.Fields[(int)index]; - - public string Location - { - get => (string)this.Fields[(int)WixBundleUpdateSymbolFields.Location]; - set => this.Set((int)WixBundleUpdateSymbolFields.Location, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)WixBundleUpdateSymbolFields.Attributes]; - set => this.Set((int)WixBundleUpdateSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs deleted file mode 100644 index 85cf2798..00000000 --- a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleVariable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleVariable, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Persisted), IntermediateFieldType.Bool), - }, - typeof(WixBundleVariableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleVariableSymbolFields - { - Value, - Type, - Hidden, - Persisted, - } - - public class WixBundleVariableSymbol : IntermediateSymbol - { - public WixBundleVariableSymbol() : base(SymbolDefinitions.WixBundleVariable, null, null) - { - } - - public WixBundleVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleVariable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleVariableSymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Value]; - set => this.Set((int)WixBundleVariableSymbolFields.Value, value); - } - - public string Type - { - get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Type]; - set => this.Set((int)WixBundleVariableSymbolFields.Type, value); - } - - public bool Hidden - { - get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Hidden]; - set => this.Set((int)WixBundleVariableSymbolFields.Hidden, value); - } - - public bool Persisted - { - get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Persisted]; - set => this.Set((int)WixBundleVariableSymbolFields.Persisted, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs deleted file mode 100644 index c657678c..00000000 --- a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixChainItem = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixChainItem, - new IntermediateFieldDefinition[] - { - }, - typeof(WixChainItemSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixChainItemSymbolFields - { - } - - public class WixChainItemSymbol : IntermediateSymbol - { - public WixChainItemSymbol() : base(SymbolDefinitions.WixChainItem, null, null) - { - } - - public WixChainItemSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChainItem, sourceLineNumber, id) - { - } - - public IntermediateField this[WixChainItemSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixChainTuple.cs b/src/WixToolset.Data/Tuples/WixChainTuple.cs deleted file mode 100644 index 8ec5fc63..00000000 --- a/src/WixToolset.Data/Tuples/WixChainTuple.cs +++ /dev/null @@ -1,61 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixChain = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixChain, - new[] - { - new IntermediateFieldDefinition(nameof(WixChainSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixChainSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixChainSymbolFields - { - Attributes, - } - - [Flags] - public enum WixChainAttributes - { - None = 0x0, - DisableRollback = 0x1, - DisableSystemRestore = 0x2, - ParallelCache = 0x4, - } - - public class WixChainSymbol : IntermediateSymbol - { - public WixChainSymbol() : base(SymbolDefinitions.WixChain, null, null) - { - } - - public WixChainSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChain, sourceLineNumber, id) - { - } - - public IntermediateField this[WixChainSymbolFields index] => this.Fields[(int)index]; - - public WixChainAttributes Attributes - { - get => (WixChainAttributes)(int)this.Fields[(int)WixChainSymbolFields.Attributes]; - set => this.Set((int)WixChainSymbolFields.Attributes, (int)value); - } - - public bool DisableRollback => (this.Attributes & WixChainAttributes.DisableRollback) == WixChainAttributes.DisableRollback; - - public bool DisableSystemRestore => (this.Attributes & WixChainAttributes.DisableSystemRestore) == WixChainAttributes.DisableSystemRestore; - - public bool ParallelCache => (this.Attributes & WixChainAttributes.ParallelCache) == WixChainAttributes.ParallelCache; - } -} diff --git a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs deleted file mode 100644 index 89365605..00000000 --- a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs +++ /dev/null @@ -1,86 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixComplexReference = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixComplexReference, - new[] - { - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentAttributes), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentLanguage), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Child), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ChildAttributes), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Attributes), IntermediateFieldType.Bool), - }, - typeof(WixComplexReferenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixComplexReferenceSymbolFields - { - Parent, - ParentAttributes, - ParentLanguage, - Child, - ChildAttributes, - Attributes, - } - - public class WixComplexReferenceSymbol : IntermediateSymbol - { - public WixComplexReferenceSymbol() : base(SymbolDefinitions.WixComplexReference, null, null) - { - } - - public WixComplexReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComplexReference, sourceLineNumber, id) - { - } - - public IntermediateField this[WixComplexReferenceSymbolFields index] => this.Fields[(int)index]; - - public string Parent - { - get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Parent]; - set => this.Set((int)WixComplexReferenceSymbolFields.Parent, value); - } - - public ComplexReferenceParentType ParentType - { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentAttributes], true); - set => this.Set((int)WixComplexReferenceSymbolFields.ParentAttributes, value.ToString()); - } - - public string ParentLanguage - { - get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentLanguage]; - set => this.Set((int)WixComplexReferenceSymbolFields.ParentLanguage, value); - } - - public string Child - { - get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Child]; - set => this.Set((int)WixComplexReferenceSymbolFields.Child, value); - } - - public ComplexReferenceChildType ChildType - { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ChildAttributes], true); - set => this.Set((int)WixComplexReferenceSymbolFields.ChildAttributes, value.ToString()); - } - - public bool IsPrimary - { - get => (bool)this.Fields[(int)WixComplexReferenceSymbolFields.Attributes]; - set => this.Set((int)WixComplexReferenceSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs deleted file mode 100644 index 4dd5a3b5..00000000 --- a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixComponentGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixComponentGroup, - new[] - { - new IntermediateFieldDefinition(nameof(WixComponentGroupSymbolFields.WixComponentGroup), IntermediateFieldType.String), - }, - typeof(WixComponentGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixComponentGroupSymbolFields - { - WixComponentGroup, - } - - public class WixComponentGroupSymbol : IntermediateSymbol - { - public WixComponentGroupSymbol() : base(SymbolDefinitions.WixComponentGroup, null, null) - { - } - - public WixComponentGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixComponentGroupSymbolFields index] => this.Fields[(int)index]; - - public string WixComponentGroup - { - get => (string)this.Fields[(int)WixComponentGroupSymbolFields.WixComponentGroup]; - set => this.Set((int)WixComponentGroupSymbolFields.WixComponentGroup, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs deleted file mode 100644 index 63f7179f..00000000 --- a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs +++ /dev/null @@ -1,70 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixComponentSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixComponentSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Guid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixComponentSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixComponentSearchSymbolFields - { - Guid, - ProductCode, - Attributes, - } - - [Flags] - public enum WixComponentSearchAttributes - { - KeyPath = 0x1, - State = 0x2, - WantDirectory = 0x4, - } - - public class WixComponentSearchSymbol : IntermediateSymbol - { - public WixComponentSearchSymbol() : base(SymbolDefinitions.WixComponentSearch, null, null) - { - } - - public WixComponentSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixComponentSearchSymbolFields index] => this.Fields[(int)index]; - - public string Guid - { - get => (string)this.Fields[(int)WixComponentSearchSymbolFields.Guid]; - set => this.Set((int)WixComponentSearchSymbolFields.Guid, value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)WixComponentSearchSymbolFields.ProductCode]; - set => this.Set((int)WixComponentSearchSymbolFields.ProductCode, value); - } - - public WixComponentSearchAttributes Attributes - { - get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixComponentSearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs deleted file mode 100644 index b45cda43..00000000 --- a/src/WixToolset.Data/Tuples/WixCustomTableCellTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixCustomTableCell = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixCustomTableCell, - new[] - { - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.TableRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.ColumnRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.RowId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.Data), IntermediateFieldType.String), - }, - typeof(WixCustomTableCellSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixCustomTableCellSymbolFields - { - TableRef, - ColumnRef, - RowId, - Data, - } - - public class WixCustomTableCellSymbol : IntermediateSymbol - { - public WixCustomTableCellSymbol() : base(SymbolDefinitions.WixCustomTableCell, null, null) - { - } - - public WixCustomTableCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableCell, sourceLineNumber, id) - { - } - - public IntermediateField this[WixCustomTableCellSymbolFields index] => this.Fields[(int)index]; - - public string TableRef - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.TableRef]; - set => this.Set((int)WixCustomTableCellSymbolFields.TableRef, value); - } - - public string ColumnRef - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.ColumnRef]; - set => this.Set((int)WixCustomTableCellSymbolFields.ColumnRef, value); - } - - public string RowId - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.RowId]; - set => this.Set((int)WixCustomTableCellSymbolFields.RowId, value); - } - - public string Data - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.Data]; - set => this.Set((int)WixCustomTableCellSymbolFields.Data, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs deleted file mode 100644 index 9ae2a904..00000000 --- a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs +++ /dev/null @@ -1,203 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixCustomTableColumn = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixCustomTableColumn, - new[] - { - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.TableRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MinValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MaxValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyTable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyColumn), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Category), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Set), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Modularize), IntermediateFieldType.Number) - }, - typeof(WixCustomTableColumnSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixCustomTableColumnSymbolFields - { - TableRef, - Name, - Type, - Attributes, - Width, - MinValue, - MaxValue, - KeyTable, - KeyColumn, - Category, - Set, - Description, - Modularize, - } - - [Flags] - public enum WixCustomTableColumnSymbolAttributes - { - None = 0x0, - PrimaryKey = 0x1, - Localizable = 0x2, - Nullable = 0x4, - Unreal = 0x8, - } - - public enum WixCustomTableColumnCategoryType - { - Text, - UpperCase, - LowerCase, - Integer, - DoubleInteger, - TimeDate, - Identifier, - Property, - Filename, - WildCardFilename, - Path, - Paths, - AnyPath, - DefaultDir, - RegPath, - Formatted, - FormattedSddl, - Template, - Condition, - Guid, - Version, - Language, - Binary, - CustomSource, - Cabinet, - Shortcut, - } - - public enum WixCustomTableColumnModularizeType - { - None, - Column, - CompanionFile, - Condition, - ControlEventArgument, - ControlText, - Icon, - Property, - SemicolonDelimited, - } - - public class WixCustomTableColumnSymbol : IntermediateSymbol - { - public WixCustomTableColumnSymbol() : base(SymbolDefinitions.WixCustomTableColumn, null, null) - { - } - - public WixCustomTableColumnSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableColumn, sourceLineNumber, id) - { - } - - public IntermediateField this[WixCustomTableColumnSymbolFields index] => this.Fields[(int)index]; - - public string TableRef - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.TableRef]; - set => this.Set((int)WixCustomTableColumnSymbolFields.TableRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Name]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Name, value); - } - - public IntermediateFieldType Type - { - get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnSymbolFields.Type].AsNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Type, (int)value); - } - - public WixCustomTableColumnSymbolAttributes Attributes - { - get => (WixCustomTableColumnSymbolAttributes)this.Fields[(int)WixCustomTableColumnSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Attributes, (int)value); - } - - public int Width - { - get => (int)this.Fields[(int)WixCustomTableColumnSymbolFields.Width]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Width, value); - } - - public long? MinValue - { - get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MinValue]; - set => this.Set((int)WixCustomTableColumnSymbolFields.MinValue, value); - } - - public long? MaxValue - { - get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MaxValue]; - set => this.Set((int)WixCustomTableColumnSymbolFields.MaxValue, value); - } - - public string KeyTable - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyTable]; - set => this.Set((int)WixCustomTableColumnSymbolFields.KeyTable, value); - } - - public int? KeyColumn - { - get => (int?)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyColumn]; - set => this.Set((int)WixCustomTableColumnSymbolFields.KeyColumn, value); - } - - public WixCustomTableColumnCategoryType? Category - { - get => (WixCustomTableColumnCategoryType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Category].AsNullableNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Category, (int?)value); - } - - public string Set - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Set]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Set, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Description]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Description, value); - } - - public WixCustomTableColumnModularizeType? Modularize - { - get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Modularize].AsNullableNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Modularize, (int?)value); - } - - public bool PrimaryKey => (this.Attributes & WixCustomTableColumnSymbolAttributes.PrimaryKey) == WixCustomTableColumnSymbolAttributes.PrimaryKey; - - public bool Localizable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Localizable) == WixCustomTableColumnSymbolAttributes.Localizable; - - public bool Nullable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Nullable) == WixCustomTableColumnSymbolAttributes.Nullable; - - public bool Unreal => (this.Attributes & WixCustomTableColumnSymbolAttributes.Unreal) == WixCustomTableColumnSymbolAttributes.Unreal; - } -} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs deleted file mode 100644 index af731443..00000000 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ /dev/null @@ -1,56 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixCustomTable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixCustomTable, - new[] - { - new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.ColumnNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.Unreal), IntermediateFieldType.Bool), - }, - typeof(WixCustomTableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixCustomTableSymbolFields - { - ColumnNames, - Unreal, - } - - public class WixCustomTableSymbol : IntermediateSymbol - { - public const char ColumnNamesSeparator = '\x85'; - - public WixCustomTableSymbol() : base(SymbolDefinitions.WixCustomTable, null, null) - { - } - - public WixCustomTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixCustomTableSymbolFields index] => this.Fields[(int)index]; - - public string ColumnNames - { - get => (string)this.Fields[(int)WixCustomTableSymbolFields.ColumnNames]; - set => this.Set((int)WixCustomTableSymbolFields.ColumnNames, value); - } - - public bool Unreal - { - get => (bool)this.Fields[(int)WixCustomTableSymbolFields.Unreal]; - set => this.Set((int)WixCustomTableSymbolFields.Unreal, value); - } - - public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); - } -} diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs deleted file mode 100644 index 77203b03..00000000 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDeltaPatchFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDeltaPatchFile, - new[] - { - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.SymbolPaths), IntermediateFieldType.String), - }, - typeof(WixDeltaPatchFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixDeltaPatchFileSymbolFields - { - FileRef, - RetainLengths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - SymbolPaths, - } - - public class WixDeltaPatchFileSymbol : IntermediateSymbol - { - public WixDeltaPatchFileSymbol() : base(SymbolDefinitions.WixDeltaPatchFile, null, null) - { - } - - public WixDeltaPatchFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchFile, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDeltaPatchFileSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.FileRef]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.FileRef, value); - } - - public string RetainLengths - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainLengths]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainLengths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreOffsets]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreLengths]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainOffsets]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainOffsets, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.SymbolPaths]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.SymbolPaths, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs deleted file mode 100644 index 6e50d07f..00000000 --- a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs +++ /dev/null @@ -1,75 +0,0 @@ -// 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. - -using System; - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDeltaPatchSymbolPaths = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDeltaPatchSymbolPaths, - new[] - { - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths), IntermediateFieldType.String), - }, - typeof(WixDeltaPatchSymbolPathsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixDeltaPatchSymbolPathsSymbolFields - { - SymbolType, - SymbolId, - SymbolPaths, - } - - /// - /// The types that the WixDeltaPatchSymbolPaths table can hold. - /// - /// The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type. - public enum SymbolPathType - { - File, - Component, - Directory, - Media, - Product - }; - - public class WixDeltaPatchSymbolPathsSymbol : IntermediateSymbol - { - public WixDeltaPatchSymbolPathsSymbol() : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, null, null) - { - } - - public WixDeltaPatchSymbolPathsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDeltaPatchSymbolPathsSymbolFields index] => this.Fields[(int)index]; - - public SymbolPathType SymbolType - { - get => (SymbolPathType)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType].AsNumber(); - set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType, (int)value); - } - - public string SymbolId - { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId]; - set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths]; - set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs b/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs deleted file mode 100644 index 3ede1097..00000000 --- a/src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs +++ /dev/null @@ -1,87 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDependencyProvider = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDependencyProvider.ToString(), - new[] - { - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixDependencyProviderSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - using WixToolset.Data; - - public enum WixDependencyProviderSymbolFields - { - ComponentRef, - ProviderKey, - Version, - DisplayName, - Attributes, - } - - [Flags] - public enum WixDependencyProviderAttributes - { - ProvidesAttributesBundle = 0x10000 - } - - public class WixDependencyProviderSymbol : IntermediateSymbol - { - public WixDependencyProviderSymbol() : base(SymbolDefinitions.WixDependencyProvider, null, null) - { - } - - public WixDependencyProviderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyProvider, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.ComponentRef].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.ComponentRef, value); - } - - public string ProviderKey - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.ProviderKey].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.ProviderKey, value); - } - - public string Version - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.Version].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.Version, value); - } - - public string DisplayName - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.DisplayName].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.DisplayName, value); - } - - public WixDependencyProviderAttributes Attributes - { - get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderSymbolFields.Attributes]; - set => this.Set((int)WixDependencyProviderSymbolFields.Attributes, (int)value); - } - - public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle; - } -} diff --git a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs deleted file mode 100644 index d13063b7..00000000 --- a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixEnsureTable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixEnsureTable, - new[] - { - new IntermediateFieldDefinition(nameof(WixEnsureTableSymbolFields.Table), IntermediateFieldType.String), - }, - typeof(WixEnsureTableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixEnsureTableSymbolFields - { - Table, - } - - public class WixEnsureTableSymbol : IntermediateSymbol - { - public WixEnsureTableSymbol() : base(SymbolDefinitions.WixEnsureTable, null, null) - { - } - - public WixEnsureTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixEnsureTable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixEnsureTableSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)WixEnsureTableSymbolFields.Table]; - set => this.Set((int)WixEnsureTableSymbolFields.Table, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs deleted file mode 100644 index ac002bb6..00000000 --- a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFeatureGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFeatureGroup, - new IntermediateFieldDefinition[] - { - }, - typeof(WixFeatureGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixFeatureGroupSymbolFields - { - } - - public class WixFeatureGroupSymbol : IntermediateSymbol - { - public WixFeatureGroupSymbol() : base(SymbolDefinitions.WixFeatureGroup, null, null) - { - } - - public WixFeatureGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFeatureGroupSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs deleted file mode 100644 index b8b3d4b9..00000000 --- a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFeatureModules = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFeatureModules, - new[] - { - new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.WixMergeRef), IntermediateFieldType.String), - }, - typeof(WixFeatureModulesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixFeatureModulesSymbolFields - { - FeatureRef, - WixMergeRef, - } - - public class WixFeatureModulesSymbol : IntermediateSymbol - { - public WixFeatureModulesSymbol() : base(SymbolDefinitions.WixFeatureModules, null, null) - { - } - - public WixFeatureModulesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureModules, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFeatureModulesSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.FeatureRef]; - set => this.Set((int)WixFeatureModulesSymbolFields.FeatureRef, value); - } - - public string WixMergeRef - { - get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.WixMergeRef]; - set => this.Set((int)WixFeatureModulesSymbolFields.WixMergeRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs deleted file mode 100644 index 027605c7..00000000 --- a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs +++ /dev/null @@ -1,125 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFileSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFileSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Path), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Languages), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixFileSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixFileSearchSymbolFields - { - Path, - MinVersion, - MaxVersion, - MinSize, - MaxSize, - MinDate, - MaxDate, - Languages, - Attributes, - } - - [Flags] - public enum WixFileSearchAttributes - { - Default = 0x001, - MinVersionInclusive = 0x002, - MaxVersionInclusive = 0x004, - MinSizeInclusive = 0x008, - MaxSizeInclusive = 0x010, - MinDateInclusive = 0x020, - MaxDateInclusive = 0x040, - WantVersion = 0x080, - WantExists = 0x100, - IsDirectory = 0x200, - } - - public class WixFileSearchSymbol : IntermediateSymbol - { - public WixFileSearchSymbol() : base(SymbolDefinitions.WixFileSearch, null, null) - { - } - - public WixFileSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFileSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFileSearchSymbolFields index] => this.Fields[(int)index]; - - public string Path - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.Path]; - set => this.Set((int)WixFileSearchSymbolFields.Path, value); - } - - public string MinVersion - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.MinVersion]; - set => this.Set((int)WixFileSearchSymbolFields.MinVersion, value); - } - - public string MaxVersion - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.MaxVersion]; - set => this.Set((int)WixFileSearchSymbolFields.MaxVersion, value); - } - - public int? MinSize - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinSize]; - set => this.Set((int)WixFileSearchSymbolFields.MinSize, value); - } - - public int? MaxSize - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxSize]; - set => this.Set((int)WixFileSearchSymbolFields.MaxSize, value); - } - - public int? MinDate - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinDate]; - set => this.Set((int)WixFileSearchSymbolFields.MinDate, value); - } - - public int? MaxDate - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxDate]; - set => this.Set((int)WixFileSearchSymbolFields.MaxDate, value); - } - - public string Languages - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.Languages]; - set => this.Set((int)WixFileSearchSymbolFields.Languages, value); - } - - public WixFileSearchAttributes Attributes - { - get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixFileSearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs deleted file mode 100644 index 9c31b79c..00000000 --- a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFragment = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFragment, - new IntermediateFieldDefinition[] - { - }, - typeof(WixFragmentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixFragmentSymbolFields - { - } - - public class WixFragmentSymbol : IntermediateSymbol - { - public WixFragmentSymbol() : base(SymbolDefinitions.WixFragment, null, null) - { - } - - public WixFragmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFragment, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFragmentSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixGroupTuple.cs b/src/WixToolset.Data/Tuples/WixGroupTuple.cs deleted file mode 100644 index b9720890..00000000 --- a/src/WixToolset.Data/Tuples/WixGroupTuple.cs +++ /dev/null @@ -1,70 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixGroup, - new[] - { - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildType), IntermediateFieldType.String), - }, - typeof(WixGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixGroupSymbolFields - { - ParentId, - ParentType, - ChildId, - ChildType, - } - - public class WixGroupSymbol : IntermediateSymbol - { - public WixGroupSymbol() : base(SymbolDefinitions.WixGroup, null, null) - { - } - - public WixGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixGroupSymbolFields index] => this.Fields[(int)index]; - - public string ParentId - { - get => (string)this.Fields[(int)WixGroupSymbolFields.ParentId]; - set => this.Set((int)WixGroupSymbolFields.ParentId, value); - } - - public ComplexReferenceParentType ParentType - { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupSymbolFields.ParentType], true); - set => this.Set((int)WixGroupSymbolFields.ParentType, value.ToString()); - } - - public string ChildId - { - get => (string)this.Fields[(int)WixGroupSymbolFields.ChildId]; - set => this.Set((int)WixGroupSymbolFields.ChildId, value); - } - - public ComplexReferenceChildType ChildType - { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupSymbolFields.ChildType], true); - set => this.Set((int)WixGroupSymbolFields.ChildType, value.ToString()); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs deleted file mode 100644 index c9e4470c..00000000 --- a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixInstanceComponent = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixInstanceComponent, - new[] - { - new IntermediateFieldDefinition(nameof(WixInstanceComponentSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(WixInstanceComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixInstanceComponentSymbolFields - { - ComponentRef, - } - - public class WixInstanceComponentSymbol : IntermediateSymbol - { - public WixInstanceComponentSymbol() : base(SymbolDefinitions.WixInstanceComponent, null, null) - { - } - - public WixInstanceComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceComponent, sourceLineNumber, id) - { - } - - public IntermediateField this[WixInstanceComponentSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)WixInstanceComponentSymbolFields.ComponentRef]; - set => this.Set((int)WixInstanceComponentSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs deleted file mode 100644 index 3a58cb31..00000000 --- a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixInstanceTransforms = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixInstanceTransforms, - new[] - { - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.PropertyId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.UpgradeCode), IntermediateFieldType.String), - }, - typeof(WixInstanceTransformsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixInstanceTransformsSymbolFields - { - PropertyId, - ProductCode, - ProductName, - UpgradeCode, - } - - public class WixInstanceTransformsSymbol : IntermediateSymbol - { - public WixInstanceTransformsSymbol() : base(SymbolDefinitions.WixInstanceTransforms, null, null) - { - } - - public WixInstanceTransformsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceTransforms, sourceLineNumber, id) - { - } - - public IntermediateField this[WixInstanceTransformsSymbolFields index] => this.Fields[(int)index]; - - public string PropertyId - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.PropertyId]; - set => this.Set((int)WixInstanceTransformsSymbolFields.PropertyId, value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductCode]; - set => this.Set((int)WixInstanceTransformsSymbolFields.ProductCode, value); - } - - public string ProductName - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductName]; - set => this.Set((int)WixInstanceTransformsSymbolFields.ProductName, value); - } - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.UpgradeCode]; - set => this.Set((int)WixInstanceTransformsSymbolFields.UpgradeCode, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs deleted file mode 100644 index 28695b3e..00000000 --- a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs +++ /dev/null @@ -1,86 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixMediaTemplate = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixMediaTemplate, - new[] - { - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CabinetTemplate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CompressionLevel), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.VolumeLabel), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), - }, - typeof(WixMediaTemplateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixMediaTemplateSymbolFields - { - CabinetTemplate, - CompressionLevel, - DiskPrompt, - VolumeLabel, - MaximumUncompressedMediaSize, - MaximumCabinetSizeForLargeFileSplitting, - } - - public class WixMediaTemplateSymbol : IntermediateSymbol - { - public WixMediaTemplateSymbol() : base(SymbolDefinitions.WixMediaTemplate, null, null) - { - } - - public WixMediaTemplateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMediaTemplate, sourceLineNumber, id) - { - } - - public IntermediateField this[WixMediaTemplateSymbolFields index] => this.Fields[(int)index]; - - public string CabinetTemplate - { - get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.CabinetTemplate]; - set => this.Set((int)WixMediaTemplateSymbolFields.CabinetTemplate, value); - } - - public CompressionLevel? CompressionLevel - { - get => (CompressionLevel?)this.Fields[(int)WixMediaTemplateSymbolFields.CompressionLevel].AsNullableNumber(); - set => this.Set((int)WixMediaTemplateSymbolFields.CompressionLevel, (int?)value); - } - - public string DiskPrompt - { - get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.DiskPrompt]; - set => this.Set((int)WixMediaTemplateSymbolFields.DiskPrompt, value); - } - - public string VolumeLabel - { - get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.VolumeLabel]; - set => this.Set((int)WixMediaTemplateSymbolFields.VolumeLabel, value); - } - - public int? MaximumUncompressedMediaSize - { - get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize]; - set => this.Set((int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize, value); - } - - public int? MaximumCabinetSizeForLargeFileSplitting - { - get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting]; - set => this.Set((int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs deleted file mode 100644 index d066fa8e..00000000 --- a/src/WixToolset.Data/Tuples/WixMergeTuple.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixMerge = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixMerge, - new[] - { - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.SourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FileAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.ConfigurationData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FeatureRef), IntermediateFieldType.String), - }, - typeof(WixMergeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixMergeSymbolFields - { - Language, - DirectoryRef, - SourceFile, - DiskId, - FileAttributes, - ConfigurationData, - FeatureRef, - } - - public class WixMergeSymbol : IntermediateSymbol - { - public WixMergeSymbol() : base(SymbolDefinitions.WixMerge, null, null) - { - } - - public WixMergeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMerge, sourceLineNumber, id) - { - } - - public IntermediateField this[WixMergeSymbolFields index] => this.Fields[(int)index]; - - public int Language - { - get => (int)this.Fields[(int)WixMergeSymbolFields.Language]; - set => this.Set((int)WixMergeSymbolFields.Language, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)WixMergeSymbolFields.DirectoryRef]; - set => this.Set((int)WixMergeSymbolFields.DirectoryRef, value); - } - - public string SourceFile - { - get => (string)this.Fields[(int)WixMergeSymbolFields.SourceFile]; - set => this.Set((int)WixMergeSymbolFields.SourceFile, value); - } - - public int DiskId - { - get => (int)this.Fields[(int)WixMergeSymbolFields.DiskId]; - set => this.Set((int)WixMergeSymbolFields.DiskId, value); - } - - public FileSymbolAttributes FileAttributes - { - get => (FileSymbolAttributes)this.Fields[(int)WixMergeSymbolFields.FileAttributes].AsNumber(); - set => this.Set((int)WixMergeSymbolFields.FileAttributes, (int)value); - } - - public string ConfigurationData - { - get => (string)this.Fields[(int)WixMergeSymbolFields.ConfigurationData]; - set => this.Set((int)WixMergeSymbolFields.ConfigurationData, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)WixMergeSymbolFields.FeatureRef]; - set => this.Set((int)WixMergeSymbolFields.FeatureRef, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs deleted file mode 100644 index 5e6dc980..00000000 --- a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixOrdering = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixOrdering, - new[] - { - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnIdRef), IntermediateFieldType.String), - }, - typeof(WixOrderingSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixOrderingSymbolFields - { - ItemType, - ItemIdRef, - DependsOnType, - DependsOnIdRef, - } - - public class WixOrderingSymbol : IntermediateSymbol - { - public WixOrderingSymbol() : base(SymbolDefinitions.WixOrdering, null, null) - { - } - - public WixOrderingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixOrdering, sourceLineNumber, id) - { - } - - public IntermediateField this[WixOrderingSymbolFields index] => this.Fields[(int)index]; - - public ComplexReferenceChildType ItemType - { - get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.ItemType].AsNumber(); - set => this.Set((int)WixOrderingSymbolFields.ItemType, (int)value); - } - - public string ItemIdRef - { - get => (string)this.Fields[(int)WixOrderingSymbolFields.ItemIdRef]; - set => this.Set((int)WixOrderingSymbolFields.ItemIdRef, value); - } - - public ComplexReferenceChildType DependsOnType - { - get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.DependsOnType].AsNumber(); - set => this.Set((int)WixOrderingSymbolFields.DependsOnType, (int)value); - } - - public string DependsOnIdRef - { - get => (string)this.Fields[(int)WixOrderingSymbolFields.DependsOnIdRef]; - set => this.Set((int)WixOrderingSymbolFields.DependsOnIdRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs deleted file mode 100644 index d7295424..00000000 --- a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchBaseline = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchBaseline, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.ValidationFlags), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.BaselineFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.UpdateFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.TransformFile), IntermediateFieldType.Path), - }, - typeof(WixPatchBaselineSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchBaselineSymbolFields - { - DiskId, - ValidationFlags, - BaselineFile, - UpdateFile, - TransformFile, - } - - public class WixPatchBaselineSymbol : IntermediateSymbol - { - public WixPatchBaselineSymbol() : base(SymbolDefinitions.WixPatchBaseline, null, null) - { - } - - public WixPatchBaselineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchBaseline, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchBaselineSymbolFields index] => this.Fields[(int)index]; - - public int DiskId - { - get => (int)this.Fields[(int)WixPatchBaselineSymbolFields.DiskId]; - set => this.Set((int)WixPatchBaselineSymbolFields.DiskId, value); - } - - public TransformFlags ValidationFlags - { - get => (TransformFlags)this.Fields[(int)WixPatchBaselineSymbolFields.ValidationFlags].AsNumber(); - set => this.Set((int)WixPatchBaselineSymbolFields.ValidationFlags, (int)value); - } - - public IntermediateFieldPathValue BaselineFile - { - get => this.Fields[(int)WixPatchBaselineSymbolFields.BaselineFile].AsPath(); - set => this.Set((int)WixPatchBaselineSymbolFields.BaselineFile, value); - } - - public IntermediateFieldPathValue UpdateFile - { - get => this.Fields[(int)WixPatchBaselineSymbolFields.UpdateFile].AsPath(); - set => this.Set((int)WixPatchBaselineSymbolFields.UpdateFile, value); - } - - public IntermediateFieldPathValue TransformFile - { - get => this.Fields[(int)WixPatchBaselineSymbolFields.TransformFile].AsPath(); - set => this.Set((int)WixPatchBaselineSymbolFields.TransformFile, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs deleted file mode 100644 index 3ab34f1f..00000000 --- a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchFamilyGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchFamilyGroup, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup), IntermediateFieldType.String), - }, - typeof(WixPatchFamilyGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchFamilyGroupSymbolFields - { - WixPatchFamilyGroup, - } - - public class WixPatchFamilyGroupSymbol : IntermediateSymbol - { - public WixPatchFamilyGroupSymbol() : base(SymbolDefinitions.WixPatchFamilyGroup, null, null) - { - } - - public WixPatchFamilyGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchFamilyGroupSymbolFields index] => this.Fields[(int)index]; - - public string WixPatchFamilyGroup - { - get => (string)this.Fields[(int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup]; - set => this.Set((int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs deleted file mode 100644 index c4f4324d..00000000 --- a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchId, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ClientPatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), - }, - typeof(WixPatchIdSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchIdSymbolFields - { - ClientPatchId, - OptimizePatchSizeForLargeFiles, - ApiPatchingSymbolFlags, - } - - public class WixPatchIdSymbol : IntermediateSymbol - { - public WixPatchIdSymbol() : base(SymbolDefinitions.WixPatchId, null, null) - { - } - - public WixPatchIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchIdSymbolFields index] => this.Fields[(int)index]; - - public string ClientPatchId - { - get => (string)this.Fields[(int)WixPatchIdSymbolFields.ClientPatchId]; - set => this.Set((int)WixPatchIdSymbolFields.ClientPatchId, value); - } - - public bool? OptimizePatchSizeForLargeFiles - { - get => (bool?)this.Fields[(int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles]; - set => this.Set((int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles, value); - } - - public int? ApiPatchingSymbolFlags - { - get => (int?)this.Fields[(int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags]; - set => this.Set((int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs deleted file mode 100644 index 66257d84..00000000 --- a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchRef = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchRef, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.PrimaryKeys), IntermediateFieldType.String), - }, - typeof(WixPatchRefSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchRefSymbolFields - { - Table, - PrimaryKeys, - } - - public class WixPatchRefSymbol : IntermediateSymbol - { - public WixPatchRefSymbol() : base(SymbolDefinitions.WixPatchRef, null, null) - { - } - - public WixPatchRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchRef, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchRefSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)WixPatchRefSymbolFields.Table]; - set => this.Set((int)WixPatchRefSymbolFields.Table, value); - } - - public string PrimaryKeys - { - get => (string)this.Fields[(int)WixPatchRefSymbolFields.PrimaryKeys]; - set => this.Set((int)WixPatchRefSymbolFields.PrimaryKeys, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs deleted file mode 100644 index e8c01c26..00000000 --- a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchTarget = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchTarget, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchTargetSymbolFields.ProductCode), IntermediateFieldType.String), - }, - typeof(WixPatchTargetSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchTargetSymbolFields - { - ProductCode, - } - - public class WixPatchTargetSymbol : IntermediateSymbol - { - public WixPatchTargetSymbol() : base(SymbolDefinitions.WixPatchTarget, null, null) - { - } - - public WixPatchTargetSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchTarget, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchTargetSymbolFields index] => this.Fields[(int)index]; - - public string ProductCode - { - get => (string)this.Fields[(int)WixPatchTargetSymbolFields.ProductCode]; - set => this.Set((int)WixPatchTargetSymbolFields.ProductCode, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs deleted file mode 100644 index f8a17b64..00000000 --- a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs +++ /dev/null @@ -1,64 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixProductSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixProductSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Guid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixProductSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixProductSearchSymbolFields - { - Guid, - Attributes, - } - - [Flags] - public enum WixProductSearchAttributes - { - Version = 0x1, - Language = 0x2, - State = 0x4, - Assignment = 0x8, - UpgradeCode = 0x10, - } - - public class WixProductSearchSymbol : IntermediateSymbol - { - public WixProductSearchSymbol() : base(SymbolDefinitions.WixProductSearch, null, null) - { - } - - public WixProductSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixProductSearchSymbolFields index] => this.Fields[(int)index]; - - public string Guid - { - get => (string)this.Fields[(int)WixProductSearchSymbolFields.Guid]; - set => this.Set((int)WixProductSearchSymbolFields.Guid, value); - } - - public WixProductSearchAttributes Attributes - { - get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixProductSearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs deleted file mode 100644 index 17cf59ce..00000000 --- a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixProperty = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixProperty, - new[] - { - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.PropertyRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Admin), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Secure), IntermediateFieldType.Bool), - }, - typeof(WixPropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPropertySymbolFields - { - PropertyRef, - Admin, - Hidden, - Secure, - } - - public class WixPropertySymbol : IntermediateSymbol - { - public WixPropertySymbol() : base(SymbolDefinitions.WixProperty, null, null) - { - } - - public WixPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProperty, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPropertySymbolFields index] => this.Fields[(int)index]; - - public string PropertyRef - { - get => (string)this.Fields[(int)WixPropertySymbolFields.PropertyRef]; - set => this.Set((int)WixPropertySymbolFields.PropertyRef, value); - } - - public bool Admin - { - get => (bool)this.Fields[(int)WixPropertySymbolFields.Admin]; - set => this.Set((int)WixPropertySymbolFields.Admin, value); - } - - public bool Hidden - { - get => (bool)this.Fields[(int)WixPropertySymbolFields.Hidden]; - set => this.Set((int)WixPropertySymbolFields.Hidden, value); - } - - public bool Secure - { - get => (bool)this.Fields[(int)WixPropertySymbolFields.Secure]; - set => this.Set((int)WixPropertySymbolFields.Secure, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs deleted file mode 100644 index dffa8410..00000000 --- a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs +++ /dev/null @@ -1,81 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixRegistrySearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixRegistrySearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixRegistrySearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixRegistrySearchSymbolFields - { - Root, - Key, - Value, - Attributes, - } - - [Flags] - public enum WixRegistrySearchAttributes - { - Raw = 0x01, - Compatible = 0x02, - ExpandEnvironmentVariables = 0x04, - WantValue = 0x08, - WantExists = 0x10, - Win64 = 0x20, - } - - public class WixRegistrySearchSymbol : IntermediateSymbol - { - public WixRegistrySearchSymbol() : base(SymbolDefinitions.WixRegistrySearch, null, null) - { - } - - public WixRegistrySearchSymbol(SourceLineNumber sourceLineNumber , Identifier id = null) : base(SymbolDefinitions.WixRegistrySearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixRegistrySearchSymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)WixRegistrySearchSymbolFields.Root].AsNumber(); - set => this.Set((int)WixRegistrySearchSymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Key]; - set => this.Set((int)WixRegistrySearchSymbolFields.Key, value); - } - - public string Value - { - get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Value]; - set => this.Set((int)WixRegistrySearchSymbolFields.Value, value); - } - - public WixRegistrySearchAttributes Attributes - { - get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixRegistrySearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs deleted file mode 100644 index dc544e29..00000000 --- a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixRelatedBundle = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixRelatedBundle, - new[] - { - new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.BundleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.Action), IntermediateFieldType.Number), - }, - typeof(WixRelatedBundleSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixRelatedBundleSymbolFields - { - BundleId, - Action, - } - - public enum RelatedBundleActionType - { - Detect, - Upgrade, - Addon, - Patch - } - - public class WixRelatedBundleSymbol : IntermediateSymbol - { - public WixRelatedBundleSymbol() : base(SymbolDefinitions.WixRelatedBundle, null, null) - { - } - - public WixRelatedBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixRelatedBundle, sourceLineNumber, id) - { - } - - public IntermediateField this[WixRelatedBundleSymbolFields index] => this.Fields[(int)index]; - - public string BundleId - { - get => (string)this.Fields[(int)WixRelatedBundleSymbolFields.BundleId]; - set => this.Set((int)WixRelatedBundleSymbolFields.BundleId, value); - } - - public RelatedBundleActionType Action - { - get => (RelatedBundleActionType)this.Fields[(int)WixRelatedBundleSymbolFields.Action].AsNumber(); - set => this.Set((int)WixRelatedBundleSymbolFields.Action, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs deleted file mode 100644 index 6b47833a..00000000 --- a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSearchRelation = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSearchRelation, - new[] - { - new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.ParentSearchRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixSearchRelationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixSearchRelationSymbolFields - { - ParentSearchRef, - Attributes, - } - - public class WixSearchRelationSymbol : IntermediateSymbol - { - public WixSearchRelationSymbol() : base(SymbolDefinitions.WixSearchRelation, null, null) - { - } - - public WixSearchRelationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearchRelation, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSearchRelationSymbolFields index] => this.Fields[(int)index]; - - public string ParentSearchRef - { - get => (string)this.Fields[(int)WixSearchRelationSymbolFields.ParentSearchRef]; - set => this.Set((int)WixSearchRelationSymbolFields.ParentSearchRef, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)WixSearchRelationSymbolFields.Attributes]; - set => this.Set((int)WixSearchRelationSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSearchTuple.cs b/src/WixToolset.Data/Tuples/WixSearchTuple.cs deleted file mode 100644 index 2d6a927c..00000000 --- a/src/WixToolset.Data/Tuples/WixSearchTuple.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Variable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.BundleExtensionRef), IntermediateFieldType.String), - }, - typeof(WixSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixSearchSymbolFields - { - Variable, - Condition, - BundleExtensionRef, - } - - public class WixSearchSymbol : IntermediateSymbol - { - public WixSearchSymbol() : base(SymbolDefinitions.WixSearch, null, null) - { - } - - public WixSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSearchSymbolFields index] => this.Fields[(int)index]; - - public string Variable - { - get => (string)this.Fields[(int)WixSearchSymbolFields.Variable]; - set => this.Set((int)WixSearchSymbolFields.Variable, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixSearchSymbolFields.Condition]; - set => this.Set((int)WixSearchSymbolFields.Condition, value); - } - - public string BundleExtensionRef - { - get => (string)this.Fields[(int)WixSearchSymbolFields.BundleExtensionRef]; - set => this.Set((int)WixSearchSymbolFields.BundleExtensionRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs b/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs deleted file mode 100644 index 503c328b..00000000 --- a/src/WixToolset.Data/Tuples/WixSetVariableTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSetVariable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSetVariable, - new[] - { - new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Type), IntermediateFieldType.String), - }, - typeof(WixSetVariableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixSetVariableSymbolFields - { - Value, - Type, - } - - public class WixSetVariableSymbol : IntermediateSymbol - { - public WixSetVariableSymbol() : base(SymbolDefinitions.WixSetVariable, null, null) - { - } - - public WixSetVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSetVariable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSetVariableSymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)WixSetVariableSymbolFields.Value]; - set => this.Set((int)WixSetVariableSymbolFields.Value, value); - } - - public string Type - { - get => (string)this.Fields[(int)WixSetVariableSymbolFields.Type]; - set => this.Set((int)WixSetVariableSymbolFields.Type, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs deleted file mode 100644 index 1091b715..00000000 --- a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs +++ /dev/null @@ -1,62 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSimpleReference = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSimpleReference, - new[] - { - new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.PrimaryKeys), IntermediateFieldType.String), - }, - typeof(WixSimpleReferenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - using System.Diagnostics; - - public enum WixSimpleReferenceSymbolFields - { - Table, - PrimaryKeys, - } - - [DebuggerDisplay("{SymbolicName}")] - public class WixSimpleReferenceSymbol : IntermediateSymbol - { - public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) - { - } - - public WixSimpleReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSimpleReference, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSimpleReferenceSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.Table]; - set => this.Set((int)WixSimpleReferenceSymbolFields.Table, value); - } - - public string PrimaryKeys - { - get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.PrimaryKeys]; - set => this.Set((int)WixSimpleReferenceSymbolFields.PrimaryKeys, value); - } - - /// - /// Gets the symbolic name. - /// - /// Symbolic name. - public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs deleted file mode 100644 index f99246f0..00000000 --- a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs +++ /dev/null @@ -1,54 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSuppressAction = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSuppressAction, - new[] - { - new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.SequenceTable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.Action), IntermediateFieldType.String), - }, - typeof(WixSuppressActionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixSuppressActionSymbolFields - { - SequenceTable, - Action, - } - - public class WixSuppressActionSymbol : IntermediateSymbol - { - public WixSuppressActionSymbol() : base(SymbolDefinitions.WixSuppressAction, null, null) - { - } - - public WixSuppressActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressAction, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSuppressActionSymbolFields index] => this.Fields[(int)index]; - - public SequenceTable SequenceTable - { - get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionSymbolFields.SequenceTable]); - set => this.Set((int)WixSuppressActionSymbolFields.SequenceTable, value.ToString()); - } - - public string Action - { - get => (string)this.Fields[(int)WixSuppressActionSymbolFields.Action]; - set => this.Set((int)WixSuppressActionSymbolFields.Action, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs deleted file mode 100644 index 1bdffd5e..00000000 --- a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSuppressModularization = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSuppressModularization, - new IntermediateFieldDefinition[] - { - }, - typeof(WixSuppressModularizationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixSuppressModularizationSymbolFields - { - } - - public class WixSuppressModularizationSymbol : IntermediateSymbol - { - public WixSuppressModularizationSymbol() : base(SymbolDefinitions.WixSuppressModularization, null, null) - { - } - - public WixSuppressModularizationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressModularization, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSuppressModularizationSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixUITuple.cs b/src/WixToolset.Data/Tuples/WixUITuple.cs deleted file mode 100644 index f1254952..00000000 --- a/src/WixToolset.Data/Tuples/WixUITuple.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixUI = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixUI, - new IntermediateFieldDefinition[] - { - }, - typeof(WixUISymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixUISymbolFields - { - } - - public class WixUISymbol : IntermediateSymbol - { - public WixUISymbol() : base(SymbolDefinitions.WixUI, null, null) - { - } - - public WixUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUI, sourceLineNumber, id) - { - } - - public IntermediateField this[WixUISymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs deleted file mode 100644 index 1320dfd5..00000000 --- a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixUpdateRegistration = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixUpdateRegistration, - new[] - { - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Department), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.ProductFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Classification), IntermediateFieldType.String), - }, - typeof(WixUpdateRegistrationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixUpdateRegistrationSymbolFields - { - Manufacturer, - Department, - ProductFamily, - Name, - Classification, - } - - public class WixUpdateRegistrationSymbol : IntermediateSymbol - { - public WixUpdateRegistrationSymbol() : base(SymbolDefinitions.WixUpdateRegistration, null, null) - { - } - - public WixUpdateRegistrationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUpdateRegistration, sourceLineNumber, id) - { - } - - public IntermediateField this[WixUpdateRegistrationSymbolFields index] => this.Fields[(int)index]; - - public string Manufacturer - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Manufacturer]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Manufacturer, value); - } - - public string Department - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Department]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Department, value); - } - - public string ProductFamily - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.ProductFamily]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.ProductFamily, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Name]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Name, value); - } - - public string Classification - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Classification]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Classification, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Tuples/WixVariableTuple.cs b/src/WixToolset.Data/Tuples/WixVariableTuple.cs deleted file mode 100644 index 0a56dcbf..00000000 --- a/src/WixToolset.Data/Tuples/WixVariableTuple.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixVariable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixVariable, - new[] - { - new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Overridable), IntermediateFieldType.Bool), - }, - typeof(WixVariableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixVariableSymbolFields - { - Value, - Overridable, - } - - public class WixVariableSymbol : IntermediateSymbol - { - public WixVariableSymbol() : base(SymbolDefinitions.WixVariable, null, null) - { - } - - public WixVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixVariable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixVariableSymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)WixVariableSymbolFields.Value]; - set => this.Set((int)WixVariableSymbolFields.Value, value); - } - - public bool Overridable - { - get => (bool)this.Fields[(int)WixVariableSymbolFields.Overridable]; - set => this.Set((int)WixVariableSymbolFields.Overridable, value); - } - } -} diff --git a/src/WixToolset.Data/Tuples/tuples_new.json b/src/WixToolset.Data/Tuples/tuples_new.json deleted file mode 100644 index 9386058c..00000000 --- a/src/WixToolset.Data/Tuples/tuples_new.json +++ /dev/null @@ -1,3604 +0,0 @@ -[ - { - "_Streams": [ - { - "Name": "string" - }, - { - "Data": "path" - } - ] - }, - { - "_SummaryInformation": [ - { - "PropertyId": "number" - }, - { - "Value": "string" - } - ] - }, - { - "_TransformView": [ - { - "Table": "string" - }, - { - "Column": "string" - }, - { - "Row": "string" - }, - { - "Data": "string" - }, - { - "Current": "string" - } - ] - }, - { - "_Validation": [ - { - "Table": "string" - }, - { - "Column": "string" - }, - { - "Nullable": "string" - }, - { - "MinValue": "number" - }, - { - "MaxValue": "number" - }, - { - "KeyTable": "string" - }, - { - "KeyColumn": "number" - }, - { - "Category": "string" - }, - { - "Set": "string" - }, - { - "Description": "string" - } - ] - }, - { - "ActionText": [ - { - "Action": "string" - }, - { - "Description": "string" - }, - { - "Template": "string" - } - ] - }, - { - "AdminExecuteSequence": [ - { - "Action": "string" - }, - { - "Condition": "string" - }, - { - "Sequence": "number" - } - ] - }, - { - "AdminUISequence": [ - { - "Action": "string" - }, - { - "Condition": "string" - }, - { - "Sequence": "number" - } - ] - }, - { - "AdvtExecuteSequence": [ - { - "Action": "string" - }, - { - "Condition": "string" - }, - { - "Sequence": "number" - } - ] - }, - { - "AdvtUISequence": [ - { - "Action": "string" - }, - { - "Condition": "string" - }, - { - "Sequence": "number" - } - ] - }, - { - "AppId": [ - { - "AppId": "string" - }, - { - "RemoteServerName": "string" - }, - { - "LocalService": "string" - }, - { - "ServiceParameters": "string" - }, - { - "DllSurrogate": "string" - }, - { - "ActivateAtStorage": "number" - }, - { - "RunAsInteractiveUser": "number" - } - ] - }, - { - "AppSearch": [ - { - "Property": "string" - }, - { - "Signature_": "string" - } - ] - }, - { - "BBControl": [ - { - "Billboard_": "string" - }, - { - "BBControl": "string" - }, - { - "Type": "string" - }, - { - "X": "number" - }, - { - "Y": "number" - }, - { - "Width": "number" - }, - { - "Height": "number" - }, - { - "Attributes": "number" - }, - { - "Text": "string" - } - ] - }, - { - "Billboard": [ - { - "Billboard": "string" - }, - { - "Feature_": "string" - }, - { - "Action": "string" - }, - { - "Ordering": "number" - } - ] - }, - { - "Binary": [ - { - "Name": "string" - }, - { - "Data": "path" - } - ] - }, - { - "BindImage": [ - { - "File_": "string" - }, - { - "Path": "string" - } - ] - }, - { - "CCPSearch": [ - { - "Signature_": "string" - } - ] - }, - { - "CheckBox": [ - { - "Property": "string" - }, - { - "Value": "string" - } - ] - }, - { - "Class": [ - { - "CLSID": "string" - }, - { - "Context": "string" - }, - { - "Component_": "string" - }, - { - "ProgId_Default": "string" - }, - { - "Description": "string" - }, - { - "AppId_": "string" - }, - { - "FileTypeMask": "string" - }, - { - "Icon_": "string" - }, - { - "IconIndex": "number" - }, - { - "DefInprocHandler": "string" - }, - { - "Argument": "string" - }, - { - "Feature_": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "ComboBox": [ - { - "Property": "string" - }, - { - "Order": "number" - }, - { - "Value": "string" - }, - { - "Text": "string" - } - ] - }, - { - "CompLocator": [ - { - "Signature_": "string" - }, - { - "ComponentId": "string" - }, - { - "Type": "number" - } - ] - }, - { - "Complus": [ - { - "Component_": "string" - }, - { - "ExpType": "number" - } - ] - }, - { - "Component": [ - { - "Component": "string" - }, - { - "ComponentId": "string" - }, - { - "Directory_": "string" - }, - { - "Attributes": "number" - }, - { - "Condition": "string" - }, - { - "KeyPath": "string" - } - ] - }, - { - "Condition": [ - { - "Feature_": "string" - }, - { - "Level": "number" - }, - { - "Condition": "string" - } - ] - }, - { - "Control": [ - { - "Dialog_": "string" - }, - { - "Control": "string" - }, - { - "Type": "string" - }, - { - "X": "number" - }, - { - "Y": "number" - }, - { - "Width": "number" - }, - { - "Height": "number" - }, - { - "Attributes": "number" - }, - { - "Property": "string" - }, - { - "Text": "string" - }, - { - "Control_Next": "string" - }, - { - "Help": "string" - } - ] - }, - { - "ControlCondition": [ - { - "Dialog_": "string" - }, - { - "Control_": "string" - }, - { - "Action": "string" - }, - { - "Condition": "string" - } - ] - }, - { - "ControlEvent": [ - { - "Dialog_": "string" - }, - { - "Control_": "string" - }, - { - "Event": "string" - }, - { - "Argument": "string" - }, - { - "Condition": "string" - }, - { - "Ordering": "number" - } - ] - }, - { - "CreateFolder": [ - { - "Directory_": "string" - }, - { - "Component_": "string" - } - ] - }, - { - "CustomAction": [ - { - "Action": "string" - }, - { - "Type": "number" - }, - { - "Source": "string" - }, - { - "Target": "string" - }, - { - "ExtendedType": "number" - } - ] - }, - { - "Dialog": [ - { - "Dialog": "string" - }, - { - "HCentering": "number" - }, - { - "VCentering": "number" - }, - { - "Width": "number" - }, - { - "Height": "number" - }, - { - "Attributes": "number" - }, - { - "Title": "string" - }, - { - "Control_First": "string" - }, - { - "Control_Default": "string" - }, - { - "Control_Cancel": "string" - } - ] - }, - { - "Directory": [ - { - "Directory": "string" - }, - { - "Directory_Parent": "string" - }, - { - "DefaultDir": "string" - } - ] - }, - { - "DrLocator": [ - { - "Signature_": "string" - }, - { - "Parent": "string" - }, - { - "Path": "string" - }, - { - "Depth": "number" - } - ] - }, - { - "DuplicateFile": [ - { - "FileKey": "string" - }, - { - "Component_": "string" - }, - { - "File_": "string" - }, - { - "DestName": "string" - }, - { - "DestFolder": "string" - } - ] - }, - { - "Environment": [ - { - "Environment": "string" - }, - { - "Name": "string" - }, - { - "Value": "string" - }, - { - "Component_": "string" - } - ] - }, - { - "Error": [ - { - "Error": "number" - }, - { - "Message": "string" - } - ] - }, - { - "EventMapping": [ - { - "Dialog_": "string" - }, - { - "Control_": "string" - }, - { - "Event": "string" - }, - { - "Attribute": "string" - } - ] - }, - { - "Extension": [ - { - "Extension": "string" - }, - { - "Component_": "string" - }, - { - "ProgId_": "string" - }, - { - "MIME_": "string" - }, - { - "Feature_": "string" - } - ] - }, - { - "ExternalFiles": [ - { - "Family": "string" - }, - { - "FTK": "string" - }, - { - "FilePath": "string" - }, - { - "SymbolPaths": "string" - }, - { - "IgnoreOffsets": "string" - }, - { - "IgnoreLengths": "string" - }, - { - "RetainOffsets": "string" - }, - { - "Order": "number" - } - ] - }, - { - "FamilyFileRanges": [ - { - "Family": "string" - }, - { - "FTK": "string" - }, - { - "RetainOffsets": "string" - }, - { - "RetainLengths": "string" - } - ] - }, - { - "Feature": [ - { - "Feature": "string" - }, - { - "Feature_Parent": "string" - }, - { - "Title": "string" - }, - { - "Description": "string" - }, - { - "Display": "number" - }, - { - "Level": "number" - }, - { - "Directory_": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "FeatureComponents": [ - { - "Feature_": "string" - }, - { - "Component_": "string" - } - ] - }, - { - "File": [ - { - "File": "string" - }, - { - "Component_": "string" - }, - { - "FileName": "string" - }, - { - "FileSize": "number" - }, - { - "Version": "string" - }, - { - "Language": "string" - }, - { - "Attributes": "number" - }, - { - "Sequence": "number" - } - ] - }, - { - "FileSFPCatalog": [ - { - "File_": "string" - }, - { - "SFPCatalog_": "string" - } - ] - }, - { - "Font": [ - { - "File_": "string" - }, - { - "FontTitle": "string" - } - ] - }, - { - "Icon": [ - { - "Name": "string" - }, - { - "Data": "path" - } - ] - }, - { - "ImageFamilies": [ - { - "Family": "string" - }, - { - "MediaSrcPropName": "string" - }, - { - "MediaDiskId": "number" - }, - { - "FileSequenceStart": "number" - }, - { - "DiskPrompt": "string" - }, - { - "VolumeLabel": "string" - } - ] - }, - { - "IniFile": [ - { - "IniFile": "string" - }, - { - "FileName": "string" - }, - { - "DirProperty": "string" - }, - { - "Section": "string" - }, - { - "Key": "string" - }, - { - "Value": "string" - }, - { - "Action": "number" - }, - { - "Component_": "string" - } - ] - }, - { - "IniLocator": [ - { - "Signature_": "string" - }, - { - "FileName": "string" - }, - { - "Section": "string" - }, - { - "Key": "string" - }, - { - "Field": "number" - }, - { - "Type": "number" - } - ] - }, - { - "InstallExecuteSequence": [ - { - "Action": "string" - }, - { - "Condition": "string" - }, - { - "Sequence": "number" - } - ] - }, - { - "InstallUISequence": [ - { - "Action": "string" - }, - { - "Condition": "string" - }, - { - "Sequence": "number" - } - ] - }, - { - "IsolatedComponent": [ - { - "Component_Shared": "string" - }, - { - "Component_Application": "string" - } - ] - }, - { - "LaunchCondition": [ - { - "Condition": "string" - }, - { - "Description": "string" - } - ] - }, - { - "ListBox": [ - { - "Property": "string" - }, - { - "Order": "number" - }, - { - "Value": "string" - }, - { - "Text": "string" - } - ] - }, - { - "ListView": [ - { - "Property": "string" - }, - { - "Order": "number" - }, - { - "Value": "string" - }, - { - "Text": "string" - }, - { - "Binary_": "string" - } - ] - }, - { - "LockPermissions": [ - { - "LockObject": "string" - }, - { - "Table": "string" - }, - { - "Domain": "string" - }, - { - "User": "string" - }, - { - "Permission": "number" - } - ] - }, - { - "Media": [ - { - "DiskId": "number" - }, - { - "LastSequence": "number" - }, - { - "DiskPrompt": "string" - }, - { - "Cabinet": "string" - }, - { - "VolumeLabel": "string" - }, - { - "Source": "string" - } - ] - }, - { - "MIME": [ - { - "ContentType": "string" - }, - { - "Extension_": "string" - }, - { - "CLSID": "string" - } - ] - }, - { - "ModuleAdminExecuteSequence": [ - { - "Action": "string" - }, - { - "Sequence": "number" - }, - { - "BaseAction": "string" - }, - { - "After": "number" - }, - { - "Condition": "string" - } - ] - }, - { - "ModuleAdminUISequence": [ - { - "Action": "string" - }, - { - "Sequence": "number" - }, - { - "BaseAction": "string" - }, - { - "After": "number" - }, - { - "Condition": "string" - } - ] - }, - { - "ModuleAdvtExecuteSequence": [ - { - "Action": "string" - }, - { - "Sequence": "number" - }, - { - "BaseAction": "string" - }, - { - "After": "number" - }, - { - "Condition": "string" - } - ] - }, - { - "ModuleAdvtUISequence": [ - { - "Action": "string" - }, - { - "Sequence": "number" - }, - { - "BaseAction": "string" - }, - { - "After": "number" - }, - { - "Condition": "string" - } - ] - }, - { - "ModuleComponents": [ - { - "Component": "string" - }, - { - "ModuleID": "string" - }, - { - "Language": "number" - } - ] - }, - { - "ModuleConfiguration": [ - { - "Name": "string" - }, - { - "Format": "number" - }, - { - "Type": "string" - }, - { - "ContextData": "string" - }, - { - "DefaultValue": "string" - }, - { - "Attributes": "number" - }, - { - "DisplayName": "string" - }, - { - "Description": "string" - }, - { - "HelpLocation": "string" - }, - { - "HelpKeyword": "string" - } - ] - }, - { - "ModuleDependency": [ - { - "ModuleID": "string" - }, - { - "ModuleLanguage": "number" - }, - { - "RequiredID": "string" - }, - { - "RequiredLanguage": "number" - }, - { - "RequiredVersion": "string" - } - ] - }, - { - "ModuleExclusion": [ - { - "ModuleID": "string" - }, - { - "ModuleLanguage": "number" - }, - { - "ExcludedID": "string" - }, - { - "ExcludedLanguage": "number" - }, - { - "ExcludedMinVersion": "string" - }, - { - "ExcludedMaxVersion": "string" - } - ] - }, - { - "ModuleIgnoreTable": [ - { - "Table": "string" - } - ] - }, - { - "ModuleInstallExecuteSequence": [ - { - "Action": "string" - }, - { - "Sequence": "number" - }, - { - "BaseAction": "string" - }, - { - "After": "number" - }, - { - "Condition": "string" - } - ] - }, - { - "ModuleInstallUISequence": [ - { - "Action": "string" - }, - { - "Sequence": "number" - }, - { - "BaseAction": "string" - }, - { - "After": "number" - }, - { - "Condition": "string" - } - ] - }, - { - "ModuleSignature": [ - { - "ModuleID": "string" - }, - { - "Language": "number" - }, - { - "Version": "string" - } - ] - }, - { - "ModuleSubstitution": [ - { - "Table": "string" - }, - { - "Row": "string" - }, - { - "Column": "string" - }, - { - "Value": "string" - } - ] - }, - { - "MoveFile": [ - { - "FileKey": "string" - }, - { - "Component_": "string" - }, - { - "SourceName": "string" - }, - { - "DestName": "string" - }, - { - "SourceFolder": "string" - }, - { - "DestFolder": "string" - }, - { - "Options": "number" - } - ] - }, - { - "MsiAssembly": [ - { - "Component_": "string" - }, - { - "Feature_": "string" - }, - { - "File_Manifest": "string" - }, - { - "File_Application": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "MsiAssemblyName": [ - { - "Component_": "string" - }, - { - "Name": "string" - }, - { - "Value": "string" - } - ] - }, - { - "MsiDigitalCertificate": [ - { - "DigitalCertificate": "string" - }, - { - "CertData": "path" - } - ] - }, - { - "MsiDigitalSignature": [ - { - "Table": "string" - }, - { - "SignObject": "string" - }, - { - "DigitalCertificate_": "string" - }, - { - "Hash": "path" - } - ] - }, - { - "MsiEmbeddedChainer": [ - { - "MsiEmbeddedChainer": "string" - }, - { - "Condition": "string" - }, - { - "CommandLine": "string" - }, - { - "Source": "string" - }, - { - "Type": "number" - } - ] - }, - { - "MsiEmbeddedUI": [ - { - "MsiEmbeddedUI": "string" - }, - { - "FileName": "string" - }, - { - "Attributes": "number" - }, - { - "MessageFilter": "number" - }, - { - "Data": "path" - } - ] - }, - { - "MsiFileHash": [ - { - "File_": "string" - }, - { - "Options": "number" - }, - { - "HashPart1": "number" - }, - { - "HashPart2": "number" - }, - { - "HashPart3": "number" - }, - { - "HashPart4": "number" - } - ] - }, - { - "MsiLockPermissionsEx": [ - { - "MsiLockPermissionsEx": "string" - }, - { - "LockObject": "string" - }, - { - "Table": "string" - }, - { - "SDDLText": "string" - }, - { - "Condition": "string" - } - ] - }, - { - "MsiPackageCertificate": [ - { - "PackageCertificate": "string" - }, - { - "DigitalCertificate_": "string" - } - ] - }, - { - "MsiPatchCertificate": [ - { - "PatchCertificate": "string" - }, - { - "DigitalCertificate_": "string" - } - ] - }, - { - "MsiPatchHeaders": [ - { - "StreamRef": "string" - }, - { - "Header": "path" - } - ] - }, - { - "MsiPatchMetadata": [ - { - "Company": "string" - }, - { - "Property": "string" - }, - { - "Value": "string" - } - ] - }, - { - "MsiPatchOldAssemblyFile": [ - { - "File_": "string" - }, - { - "Assembly_": "string" - } - ] - }, - { - "MsiPatchOldAssemblyName": [ - { - "Assembly": "string" - }, - { - "Name": "string" - }, - { - "Value": "string" - } - ] - }, - { - "MsiPatchSequence": [ - { - "PatchFamily": "string" - }, - { - "ProductCode": "string" - }, - { - "Sequence": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "MsiServiceConfig": [ - { - "MsiServiceConfig": "string" - }, - { - "Name": "string" - }, - { - "Event": "number" - }, - { - "ConfigType": "number" - }, - { - "Argument": "string" - }, - { - "Component_": "string" - } - ] - }, - { - "MsiServiceConfigFailureActions": [ - { - "MsiServiceConfigFailureActions": "string" - }, - { - "Name": "string" - }, - { - "Event": "number" - }, - { - "ResetPeriod": "number" - }, - { - "RebootMessage": "string" - }, - { - "Command": "string" - }, - { - "Actions": "string" - }, - { - "DelayActions": "string" - }, - { - "Component_": "string" - } - ] - }, - { - "MsiShortcutProperty": [ - { - "MsiShortcutProperty": "string" - }, - { - "Shortcut_": "string" - }, - { - "PropertyKey": "string" - }, - { - "PropVariantValue": "string" - } - ] - }, - { - "ODBCAttribute": [ - { - "Driver_": "string" - }, - { - "Attribute": "string" - }, - { - "Value": "string" - } - ] - }, - { - "ODBCDataSource": [ - { - "DataSource": "string" - }, - { - "Component_": "string" - }, - { - "Description": "string" - }, - { - "DriverDescription": "string" - }, - { - "Registration": "number" - } - ] - }, - { - "ODBCDriver": [ - { - "Driver": "string" - }, - { - "Component_": "string" - }, - { - "Description": "string" - }, - { - "File_": "string" - }, - { - "File_Setup": "string" - } - ] - }, - { - "ODBCSourceAttribute": [ - { - "DataSource_": "string" - }, - { - "Attribute": "string" - }, - { - "Value": "string" - } - ] - }, - { - "ODBCTranslator": [ - { - "Translator": "string" - }, - { - "Component_": "string" - }, - { - "Description": "string" - }, - { - "File_": "string" - }, - { - "File_Setup": "string" - } - ] - }, - { - "Patch": [ - { - "File_": "string" - }, - { - "Sequence": "number" - }, - { - "PatchSize": "number" - }, - { - "Attributes": "number" - }, - { - "Header": "path" - }, - { - "StreamRef_": "string" - } - ] - }, - { - "PatchMetadata": [ - { - "Company": "string" - }, - { - "Property": "string" - }, - { - "Value": "string" - } - ] - }, - { - "PatchPackage": [ - { - "PatchId": "string" - }, - { - "Media_": "number" - } - ] - }, - { - "PatchSequence": [ - { - "PatchFamily": "string" - }, - { - "Target": "string" - }, - { - "Sequence": "string" - }, - { - "Supersede": "number" - } - ] - }, - { - "ProgId": [ - { - "ProgId": "string" - }, - { - "ProgId_Parent": "string" - }, - { - "Class_": "string" - }, - { - "Description": "string" - }, - { - "Icon_": "string" - }, - { - "IconIndex": "number" - } - ] - }, - { - "Properties": [ - { - "Name": "string" - }, - { - "Value": "string" - } - ] - }, - { - "Property": [ - { - "Property": "string" - }, - { - "Value": "string" - } - ] - }, - { - "PublishComponent": [ - { - "ComponentId": "string" - }, - { - "Qualifier": "string" - }, - { - "Component_": "string" - }, - { - "AppData": "string" - }, - { - "Feature_": "string" - } - ] - }, - { - "RadioButton": [ - { - "Property": "string" - }, - { - "Order": "number" - }, - { - "Value": "string" - }, - { - "X": "number" - }, - { - "Y": "number" - }, - { - "Width": "number" - }, - { - "Height": "number" - }, - { - "Text": "string" - }, - { - "Help": "string" - } - ] - }, - { - "Registry": [ - { - "Registry": "string" - }, - { - "Root": "number" - }, - { - "Key": "string" - }, - { - "Name": "string" - }, - { - "Value": "string" - }, - { - "Component_": "string" - } - ] - }, - { - "RegLocator": [ - { - "Signature_": "string" - }, - { - "Root": "number" - }, - { - "Key": "string" - }, - { - "Name": "string" - }, - { - "Type": "number" - } - ] - }, - { - "RemoveFile": [ - { - "FileKey": "string" - }, - { - "Component_": "string" - }, - { - "FileName": "string" - }, - { - "DirProperty": "string" - }, - { - "InstallMode": "number" - } - ] - }, - { - "RemoveIniFile": [ - { - "RemoveIniFile": "string" - }, - { - "FileName": "string" - }, - { - "DirProperty": "string" - }, - { - "Section": "string" - }, - { - "Key": "string" - }, - { - "Value": "string" - }, - { - "Action": "number" - }, - { - "Component_": "string" - } - ] - }, - { - "RemoveRegistry": [ - { - "RemoveRegistry": "string" - }, - { - "Root": "number" - }, - { - "Key": "string" - }, - { - "Name": "string" - }, - { - "Component_": "string" - } - ] - }, - { - "ReserveCost": [ - { - "ReserveKey": "string" - }, - { - "Component_": "string" - }, - { - "ReserveFolder": "string" - }, - { - "ReserveLocal": "number" - }, - { - "ReserveSource": "number" - } - ] - }, - { - "SelfReg": [ - { - "File_": "string" - }, - { - "Cost": "number" - } - ] - }, - { - "ServiceControl": [ - { - "ServiceControl": "string" - }, - { - "Name": "string" - }, - { - "Event": "number" - }, - { - "Arguments": "string" - }, - { - "Wait": "number" - }, - { - "Component_": "string" - } - ] - }, - { - "ServiceInstall": [ - { - "ServiceInstall": "string" - }, - { - "Name": "string" - }, - { - "DisplayName": "string" - }, - { - "ServiceType": "number" - }, - { - "StartType": "number" - }, - { - "ErrorControl": "number" - }, - { - "LoadOrderGroup": "string" - }, - { - "Dependencies": "string" - }, - { - "StartName": "string" - }, - { - "Password": "string" - }, - { - "Arguments": "string" - }, - { - "Component_": "string" - }, - { - "Description": "string" - } - ] - }, - { - "SFPCatalog": [ - { - "SFPCatalog": "string" - }, - { - "Catalog": "path" - }, - { - "Dependency": "string" - } - ] - }, - { - "Shortcut": [ - { - "Shortcut": "string" - }, - { - "Directory_": "string" - }, - { - "Name": "string" - }, - { - "Component_": "string" - }, - { - "Target": "string" - }, - { - "Arguments": "string" - }, - { - "Description": "string" - }, - { - "Hotkey": "number" - }, - { - "Icon_": "string" - }, - { - "IconIndex": "number" - }, - { - "ShowCmd": "number" - }, - { - "WkDir": "string" - }, - { - "DisplayResourceDLL": "string" - }, - { - "DisplayResourceId": "number" - }, - { - "DescriptionResourceDLL": "string" - }, - { - "DescriptionResourceId": "number" - } - ] - }, - { - "Signature": [ - { - "Signature": "string" - }, - { - "FileName": "string" - }, - { - "MinVersion": "string" - }, - { - "MaxVersion": "string" - }, - { - "MinSize": "number" - }, - { - "MaxSize": "number" - }, - { - "MinDate": "number" - }, - { - "MaxDate": "number" - }, - { - "Languages": "string" - } - ] - }, - { - "TargetFiles_OptionalData": [ - { - "Target": "string" - }, - { - "FTK": "string" - }, - { - "SymbolPaths": "string" - }, - { - "IgnoreOffsets": "string" - }, - { - "IgnoreLengths": "string" - }, - { - "RetainOffsets": "string" - } - ] - }, - { - "TargetImages": [ - { - "Target": "string" - }, - { - "MsiPath": "string" - }, - { - "SymbolPaths": "string" - }, - { - "Upgraded": "string" - }, - { - "Order": "number" - }, - { - "ProductValidateFlags": "string" - }, - { - "IgnoreMissingSrcFiles": "number" - } - ] - }, - { - "TextStyle": [ - { - "TextStyle": "string" - }, - { - "FaceName": "string" - }, - { - "Size": "number" - }, - { - "Color": "number" - }, - { - "StyleBits": "number" - } - ] - }, - { - "TypeLib": [ - { - "LibID": "string" - }, - { - "Language": "number" - }, - { - "Component_": "string" - }, - { - "Version": "number" - }, - { - "Description": "string" - }, - { - "Directory_": "string" - }, - { - "Feature_": "string" - }, - { - "Cost": "number" - } - ] - }, - { - "UIText": [ - { - "Key": "string" - }, - { - "Text": "string" - } - ] - }, - { - "Upgrade": [ - { - "UpgradeCode": "string" - }, - { - "VersionMin": "string" - }, - { - "VersionMax": "string" - }, - { - "Language": "string" - }, - { - "Attributes": "number" - }, - { - "Remove": "string" - }, - { - "ActionProperty": "string" - } - ] - }, - { - "UpgradedFiles_OptionalData": [ - { - "Upgraded": "string" - }, - { - "FTK": "string" - }, - { - "SymbolPaths": "string" - }, - { - "AllowIgnoreOnPatchError": "number" - }, - { - "IncludeWholeFile": "number" - } - ] - }, - { - "UpgradedFilesToIgnore": [ - { - "Upgraded": "string" - }, - { - "FTK": "string" - } - ] - }, - { - "UpgradedImages": [ - { - "Upgraded": "string" - }, - { - "MsiPath": "string" - }, - { - "PatchMsiPath": "string" - }, - { - "SymbolPaths": "string" - }, - { - "Family": "string" - } - ] - }, - { - "Verb": [ - { - "Extension_": "string" - }, - { - "Verb": "string" - }, - { - "Sequence": "number" - }, - { - "Command": "string" - }, - { - "Argument": "string" - } - ] - }, - { - "WixAction": [ - { - "SequenceTable": "string" - }, - { - "Action": "string" - }, - { - "Condition": "string" - }, - { - "Sequence": "number" - }, - { - "Before": "string" - }, - { - "After": "string" - }, - { - "Overridable": "number" - } - ] - }, - { - "WixApprovedExeForElevation": [ - { - "Id": "string" - }, - { - "Key": "string" - }, - { - "Value": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixBBControl": [ - { - "Billboard_": "string" - }, - { - "BBControl_": "string" - }, - { - "SourceFile": "path" - } - ] - }, - { - "WixBindUpdatedFiles": [ - { - "File_": "string" - } - ] - }, - { - "WixBootstrapperApplication": [ - { - "Id": "string" - } - ] - }, - { - "WixBuildInfo": [ - { - "WixVersion": "string" - }, - { - "WixOutputFile": "string" - }, - { - "WixProjectFile": "string" - }, - { - "WixPdbFile": "string" - } - ] - }, - { - "WixBundle": [ - { - "Version": "string" - }, - { - "Copyright": "string" - }, - { - "Name": "string" - }, - { - "AboutUrl": "string" - }, - { - "DisableModify": "number" - }, - { - "DisableRemove": "number" - }, - { - "DisableRepair": "number" - }, - { - "HelpTelephone": "string" - }, - { - "HelpUrl": "string" - }, - { - "Manufacturer": "string" - }, - { - "UpdateUrl": "string" - }, - { - "Compressed": "number" - }, - { - "LogPrefixAndExtension": "string" - }, - { - "IconSourceFile": "path" - }, - { - "SplashScreenSourceFile": "path" - }, - { - "Condition": "string" - }, - { - "Tag": "string" - }, - { - "Platform": "string" - }, - { - "ParentName": "string" - }, - { - "UpgradeCode": "string" - }, - { - "BundleId": "string" - }, - { - "ProviderKey": "string" - }, - { - "PerMachine": "number" - } - ] - }, - { - "WixBundleCatalog": [ - { - "WixBundleCatalog": "string" - }, - { - "Payload_": "string" - } - ] - }, - { - "WixBundleContainer": [ - { - "WixBundleContainer": "string" - }, - { - "Name": "string" - }, - { - "Type": "number" - }, - { - "DownloadUrl": "string" - }, - { - "Size": "number" - }, - { - "Hash": "string" - }, - { - "AttachedContainerIndex": "number" - }, - { - "WorkingPath": "string" - } - ] - }, - { - "WixBundleExePackage": [ - { - "WixBundlePackage_": "string" - }, - { - "Attributes": "number" - }, - { - "DetectCondition": "string" - }, - { - "InstallCommand": "string" - }, - { - "RepairCommand": "string" - }, - { - "UninstallCommand": "string" - }, - { - "ExeProtocol": "string" - } - ] - }, - { - "WixBundleMsiFeature": [ - { - "WixBundlePackage_": "string" - }, - { - "Name": "string" - }, - { - "Size": "number" - }, - { - "Parent": "string" - }, - { - "Title": "string" - }, - { - "Description": "string" - }, - { - "Display": "number" - }, - { - "Level": "number" - }, - { - "Directory": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixBundleMsiPackage": [ - { - "WixBundlePackage_": "string" - }, - { - "Attributes": "number" - }, - { - "ProductCode": "string" - }, - { - "UpgradeCode": "string" - }, - { - "ProductVersion": "string" - }, - { - "ProductLanguage": "number" - }, - { - "ProductName": "string" - }, - { - "Manufacturer": "string" - } - ] - }, - { - "WixBundleMsiProperty": [ - { - "WixBundlePackage_": "string" - }, - { - "Name": "string" - }, - { - "Value": "string" - }, - { - "Condition": "string" - } - ] - }, - { - "WixBundleMspPackage": [ - { - "WixBundlePackage_": "string" - }, - { - "Attributes": "number" - }, - { - "PatchCode": "string" - }, - { - "Manufacturer": "string" - }, - { - "PatchXml": "string" - } - ] - }, - { - "WixBundleMsuPackage": [ - { - "WixBundlePackage_": "string" - }, - { - "DetectCondition": "string" - }, - { - "MsuKB": "string" - } - ] - }, - { - "WixBundlePackage": [ - { - "WixChainItem_": "string" - }, - { - "Type": "number" - }, - { - "Payload_": "string" - }, - { - "Attributes": "number" - }, - { - "InstallCondition": "string" - }, - { - "Cache": "number" - }, - { - "CacheId": "string" - }, - { - "Vital": "number" - }, - { - "PerMachine": "number" - }, - { - "LogPathVariable": "string" - }, - { - "RollbackLogPathVariable": "string" - }, - { - "Size": "number" - }, - { - "InstallSize": "number" - }, - { - "Version": "string" - }, - { - "Language": "number" - }, - { - "DisplayName": "string" - }, - { - "Description": "string" - }, - { - "RollbackBoundary_": "string" - }, - { - "RollbackBoundaryBackward_": "string" - }, - { - "x64": "number" - } - ] - }, - { - "WixBundlePackageCommandLine": [ - { - "WixBundlePackage_": "string" - }, - { - "InstallArgument": "string" - }, - { - "UninstallArgument": "string" - }, - { - "RepairArgument": "string" - }, - { - "Condition": "string" - } - ] - }, - { - "WixBundlePackageExitCode": [ - { - "WixBundlePackage_": "string" - }, - { - "Code": "number" - }, - { - "Behavior": "number" - } - ] - }, - { - "WixBundlePackageGroup": [ - { - "WixBundlePackageGroup": "string" - } - ] - }, - { - "WixBundlePatchTargetCode": [ - { - "PackageId": "string" - }, - { - "TargetCode": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixBundlePayload": [ - { - "WixBundlePayload": "string" - }, - { - "Name": "string" - }, - { - "SourceFile": "path" - }, - { - "DownloadUrl": "string" - }, - { - "Compressed": "number" - }, - { - "UnresolvedSourceFile": "string" - }, - { - "DisplayName": "string" - }, - { - "Description": "string" - }, - { - "EnableSignatureValidation": "number" - }, - { - "FileSize": "number" - }, - { - "Version": "string" - }, - { - "Hash": "string" - }, - { - "PublicKey": "string" - }, - { - "Thumbprint": "string" - }, - { - "Catalog_": "string" - }, - { - "Container_": "string" - }, - { - "Package": "string" - }, - { - "ContentFile": "number" - }, - { - "EmbeddedId": "string" - }, - { - "LayoutOnly": "number" - }, - { - "Packaging": "number" - }, - { - "ParentPackagePayload_": "string" - } - ] - }, - { - "WixBundlePayloadGroup": [ - { - "WixBundlePayloadGroup": "string" - } - ] - }, - { - "WixBundleProperties": [ - { - "DisplayName": "string" - }, - { - "LogPathVariable": "string" - }, - { - "Compressed": "string" - }, - { - "Id": "string" - }, - { - "UpgradeCode": "string" - }, - { - "PerMachine": "string" - } - ] - }, - { - "WixBundleRelatedPackage": [ - { - "WixBundlePackage_": "string" - }, - { - "Id": "string" - }, - { - "MinVersion": "string" - }, - { - "MaxVersion": "string" - }, - { - "Languages": "string" - }, - { - "MinInclusive": "number" - }, - { - "MaxInclusive": "number" - }, - { - "LangInclusive": "number" - }, - { - "OnlyDetect": "number" - } - ] - }, - { - "WixBundleRollbackBoundary": [ - { - "WixChainItem_": "string" - }, - { - "Vital": "number" - }, - { - "Transaction": "number" - } - ] - }, - { - "WixBundleSlipstreamMsp": [ - { - "WixBundlePackage_": "string" - }, - { - "WixBundlePackage_Msp": "string" - } - ] - }, - { - "WixBundleUpdate": [ - { - "Location": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixBundleVariable": [ - { - "WixBundleVariable": "string" - }, - { - "Value": "string" - }, - { - "Type": "string" - }, - { - "Hidden": "number" - }, - { - "Persisted": "number" - } - ] - }, - { - "WixChain": [ - { - "Attributes": "number" - } - ] - }, - { - "WixChainItem": [ - { - "Id": "string" - } - ] - }, - { - "WixComplexReference": [ - { - "Parent": "string" - }, - { - "ParentAttributes": "number" - }, - { - "ParentLanguage": "string" - }, - { - "Child": "string" - }, - { - "ChildAttributes": "number" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixComponentGroup": [ - { - "WixComponentGroup": "string" - } - ] - }, - { - "WixComponentSearch": [ - { - "WixSearch_": "string" - }, - { - "Guid": "string" - }, - { - "ProductCode": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixControl": [ - { - "Dialog_": "string" - }, - { - "Control_": "string" - }, - { - "SourceFile": "path" - } - ] - }, - { - "WixCustomRow": [ - { - "Table": "string" - }, - { - "FieldData": "string" - } - ] - }, - { - "WixCustomTable": [ - { - "Table": "string" - }, - { - "ColumnCount": "number" - }, - { - "ColumnNames": "string" - }, - { - "ColumnTypes": "string" - }, - { - "PrimaryKeys": "string" - }, - { - "MinValues": "string" - }, - { - "MaxValues": "string" - }, - { - "KeyTables": "string" - }, - { - "KeyColumns": "string" - }, - { - "Categories": "string" - }, - { - "Sets": "string" - }, - { - "Descriptions": "string" - }, - { - "Modularizations": "string" - }, - { - "BootstrapperApplicationData": "number" - } - ] - }, - { - "WixDeltaPatchFile": [ - { - "File_": "string" - }, - { - "RetainLengths": "preserved" - }, - { - "IgnoreOffsets": "preserved" - }, - { - "IgnoreLengths": "preserved" - }, - { - "RetainOffsets": "preserved" - }, - { - "SymbolPaths": "preserved" - } - ] - }, - { - "WixDeltaPatchSymbolPaths": [ - { - "Id": "string" - }, - { - "Type": "number" - }, - { - "SymbolPaths": "preserved" - } - ] - }, - { - "WixDirectory": [ - { - "Directory_": "string" - }, - { - "ComponentGuidGenerationSeed": "string" - } - ] - }, - { - "WixEnsureTable": [ - { - "Table": "string" - } - ] - }, - { - "WixFeatureGroup": [ - { - "WixFeatureGroup": "string" - } - ] - }, - { - "WixFeatureModules": [ - { - "Feature_": "string" - }, - { - "WixMerge_": "string" - } - ] - }, - { - "WixFile": [ - { - "File_": "string" - }, - { - "AssemblyType": "number" - }, - { - "File_AssemblyManifest": "string" - }, - { - "File_AssemblyApplication": "string" - }, - { - "Directory_": "string" - }, - { - "DiskId": "number" - }, - { - "Source": "path" - }, - { - "ProcessorArchitecture": "string" - }, - { - "PatchGroup": "number" - }, - { - "Attributes": "number" - }, - { - "PatchAttributes": "number" - }, - { - "DeltaPatchHeaderSource": "string" - } - ] - }, - { - "WixFileSearch": [ - { - "WixSearch_": "string" - }, - { - "Path": "string" - }, - { - "MinVersion": "string" - }, - { - "MaxVersion": "string" - }, - { - "MinSize": "number" - }, - { - "MaxSize": "number" - }, - { - "MinDate": "number" - }, - { - "MaxDate": "number" - }, - { - "Languages": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixFragment": [ - { - "WixFragment": "string" - } - ] - }, - { - "WixGroup": [ - { - "ParentId": "string" - }, - { - "ParentType": "string" - }, - { - "ChildId": "string" - }, - { - "ChildType": "string" - } - ] - }, - { - "WixInstanceComponent": [ - { - "Component_": "string" - } - ] - }, - { - "WixInstanceTransforms": [ - { - "Id": "string" - }, - { - "PropertyId": "string" - }, - { - "ProductCode": "string" - }, - { - "ProductName": "string" - }, - { - "UpgradeCode": "string" - } - ] - }, - { - "WixMedia": [ - { - "DiskId_": "number" - }, - { - "CompressionLevel": "number" - }, - { - "Layout": "string" - } - ] - }, - { - "WixMediaTemplate": [ - { - "CabinetTemplate": "string" - }, - { - "CompressionLevel": "number" - }, - { - "DiskPrompt": "string" - }, - { - "VolumeLabel": "string" - }, - { - "MaximumUncompressedMediaSize": "number" - }, - { - "MaximumCabinetSizeForLargeFileSplitting": "number" - } - ] - }, - { - "WixMerge": [ - { - "WixMerge": "string" - }, - { - "Language": "number" - }, - { - "Directory_": "string" - }, - { - "SourceFile": "path" - }, - { - "DiskId": "number" - }, - { - "FileCompression": "number" - }, - { - "ConfigurationData": "string" - }, - { - "Feature_": "string" - } - ] - }, - { - "WixOrdering": [ - { - "ItemType": "string" - }, - { - "ItemId_": "string" - }, - { - "DependsOnType": "string" - }, - { - "DependsOnId_": "string" - } - ] - }, - { - "WixPackageFeatureInfo": [ - { - "Package": "string" - }, - { - "Feature": "string" - }, - { - "Size": "string" - }, - { - "Parent": "string" - }, - { - "Title": "string" - }, - { - "Description": "string" - }, - { - "Display": "string" - }, - { - "Level": "string" - }, - { - "Directory": "string" - }, - { - "Attributes": "string" - } - ] - }, - { - "WixPackageProperties": [ - { - "Package": "string" - }, - { - "Vital": "string" - }, - { - "DisplayName": "string" - }, - { - "Description": "string" - }, - { - "DownloadSize": "string" - }, - { - "PackageSize": "string" - }, - { - "InstalledSize": "string" - }, - { - "PackageType": "string" - }, - { - "Permanent": "string" - }, - { - "LogPathVariable": "string" - }, - { - "RollbackLogPathVariable": "string" - }, - { - "Compressed": "string" - }, - { - "DisplayInternalUI": "string" - }, - { - "ProductCode": "string" - }, - { - "UpgradeCode": "string" - }, - { - "Version": "string" - }, - { - "InstallCondition": "string" - }, - { - "Cache": "string" - } - ] - }, - { - "WixPatchBaseline": [ - { - "WixPatchBaseline": "string" - }, - { - "DiskId": "number" - }, - { - "ValidationFlags": "number" - } - ] - }, - { - "WixPatchFamilyGroup": [ - { - "WixPatchFamilyGroup": "string" - } - ] - }, - { - "WixPatchId": [ - { - "ProductCode": "string" - }, - { - "ClientPatchId": "string" - }, - { - "OptimizePatchSizeForLargeFiles": "number" - }, - { - "ApiPatchingSymbolFlags": "number" - } - ] - }, - { - "WixPatchMetadata": [ - { - "Property": "string" - }, - { - "Value": "string" - } - ] - }, - { - "WixPatchRef": [ - { - "Table": "string" - }, - { - "PrimaryKeys": "string" - } - ] - }, - { - "WixPatchTarget": [ - { - "ProductCode": "string" - } - ] - }, - { - "WixPayloadProperties": [ - { - "Payload": "string" - }, - { - "Package": "string" - }, - { - "Container": "string" - }, - { - "Name": "string" - }, - { - "Size": "string" - }, - { - "DownloadUrl": "string" - }, - { - "LayoutOnly": "string" - } - ] - }, - { - "WixProductSearch": [ - { - "WixSearch_": "string" - }, - { - "Guid": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixProperty": [ - { - "Property_": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixRegistrySearch": [ - { - "WixSearch_": "string" - }, - { - "Root": "number" - }, - { - "Key": "string" - }, - { - "Value": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixRelatedBundle": [ - { - "Id": "string" - }, - { - "Action": "number" - } - ] - }, - { - "WixSearch": [ - { - "WixSearch": "string" - }, - { - "Variable": "string" - }, - { - "Condition": "string" - } - ] - }, - { - "WixSearchRelation": [ - { - "WixSearch_": "string" - }, - { - "ParentId_": "string" - }, - { - "Attributes": "number" - } - ] - }, - { - "WixSimpleReference": [ - { - "Table": "string" - }, - { - "PrimaryKeys": "string" - } - ] - }, - { - "WixSuppressAction": [ - { - "SequenceTable": "string" - }, - { - "Action": "string" - } - ] - }, - { - "WixSuppressModularization": [ - { - "WixSuppressModularization": "string" - } - ] - }, - { - "WixUI": [ - { - "WixUI": "string" - } - ] - }, - { - "WixUpdateRegistration": [ - { - "Manufacturer": "string" - }, - { - "Department": "string" - }, - { - "ProductFamily": "string" - }, - { - "Name": "string" - }, - { - "Classification": "string" - } - ] - }, - { - "WixVariable": [ - { - "WixVariable": "string" - }, - { - "Value": "string" - }, - { - "Attributes": "number" - } - ] - } -] \ No newline at end of file -- cgit v1.2.3-55-g6feb From 43b52b254b73fc28b7eff1237629945d461f6db3 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 28 Jun 2020 17:36:35 -0700 Subject: Add mechanism to set localized TextStyle.Size This may not be the final solution but one to try out first. --- src/WixToolset.Data/Symbols/TextStyleSymbol.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/TextStyleSymbol.cs b/src/WixToolset.Data/Symbols/TextStyleSymbol.cs index b07615bb..53415714 100644 --- a/src/WixToolset.Data/Symbols/TextStyleSymbol.cs +++ b/src/WixToolset.Data/Symbols/TextStyleSymbol.cs @@ -11,7 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.FaceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Size), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Red), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Green), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Blue), IntermediateFieldType.Number), @@ -57,6 +57,12 @@ namespace WixToolset.Data.Symbols set => this.Set((int)TextStyleSymbolFields.FaceName, value); } + public string LocalizedSize + { + get => (string)this.Fields[(int)TextStyleSymbolFields.Size]; + set => this.Set((int)TextStyleSymbolFields.Size, value); + } + public int Size { get => (int)this.Fields[(int)TextStyleSymbolFields.Size]; -- cgit v1.2.3-55-g6feb From 634fc916f620ee46c1634327e66328fabb68c9d1 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 1 Jul 2020 13:16:30 -0700 Subject: Catch up a few files missed in the Great Tuple to Symbol rename --- src/WixToolset.Data/ISymbolDefinitionCreator.cs | 11 + src/WixToolset.Data/ITupleDefinitionCreator.cs | 11 - src/WixToolset.Data/IntermediateSymbol.cs | 256 +++++++++++++++++++ .../IntermediateSymbolDefinition.cs | 270 +++++++++++++++++++++ .../IntermediateSymbolExtensions.cs | 121 +++++++++ src/WixToolset.Data/IntermediateTuple.cs | 256 ------------------- src/WixToolset.Data/IntermediateTupleDefinition.cs | 270 --------------------- src/WixToolset.Data/IntermediateTupleExtensions.cs | 121 --------- src/WixToolset.Data/Section.cs | 242 ------------------ .../SimpleSymbolDefinitionCreator.cs | 31 +++ .../SimpleTupleDefinitionCreator.cs | 31 --- src/WixToolset.Data/SymbolWithSection.cs | 90 +++++++ src/WixToolset.Data/TupleWithSection.cs | 90 ------- 13 files changed, 779 insertions(+), 1021 deletions(-) create mode 100644 src/WixToolset.Data/ISymbolDefinitionCreator.cs delete mode 100644 src/WixToolset.Data/ITupleDefinitionCreator.cs create mode 100644 src/WixToolset.Data/IntermediateSymbol.cs create mode 100644 src/WixToolset.Data/IntermediateSymbolDefinition.cs create mode 100644 src/WixToolset.Data/IntermediateSymbolExtensions.cs delete mode 100644 src/WixToolset.Data/IntermediateTuple.cs delete mode 100644 src/WixToolset.Data/IntermediateTupleDefinition.cs delete mode 100644 src/WixToolset.Data/IntermediateTupleExtensions.cs delete mode 100644 src/WixToolset.Data/Section.cs create mode 100644 src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs delete mode 100644 src/WixToolset.Data/SimpleTupleDefinitionCreator.cs create mode 100644 src/WixToolset.Data/SymbolWithSection.cs delete mode 100644 src/WixToolset.Data/TupleWithSection.cs (limited to 'src') diff --git a/src/WixToolset.Data/ISymbolDefinitionCreator.cs b/src/WixToolset.Data/ISymbolDefinitionCreator.cs new file mode 100644 index 00000000..93b10ce8 --- /dev/null +++ b/src/WixToolset.Data/ISymbolDefinitionCreator.cs @@ -0,0 +1,11 @@ +// 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. + +namespace WixToolset.Data +{ + public interface ISymbolDefinitionCreator + { + void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition); + + bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition); + } +} diff --git a/src/WixToolset.Data/ITupleDefinitionCreator.cs b/src/WixToolset.Data/ITupleDefinitionCreator.cs deleted file mode 100644 index 93b10ce8..00000000 --- a/src/WixToolset.Data/ITupleDefinitionCreator.cs +++ /dev/null @@ -1,11 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public interface ISymbolDefinitionCreator - { - void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition); - - bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition); - } -} diff --git a/src/WixToolset.Data/IntermediateSymbol.cs b/src/WixToolset.Data/IntermediateSymbol.cs new file mode 100644 index 00000000..4030df5d --- /dev/null +++ b/src/WixToolset.Data/IntermediateSymbol.cs @@ -0,0 +1,256 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using SimpleJson; + + [DebuggerDisplay("{DebuggerDisplay,nq}")] + public class IntermediateSymbol + { + private object tags; + + public IntermediateSymbol(IntermediateSymbolDefinition definition) : this(definition, null, null) + { + } + + public IntermediateSymbol(IntermediateSymbolDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) + { + this.Definition = definition; + this.Fields = new IntermediateField[definition.FieldDefinitions.Length]; + this.SourceLineNumbers = sourceLineNumber; + this.Id = id; + } + + public IntermediateSymbolDefinition Definition { get; } + + public IntermediateField[] Fields { get; } + + public SourceLineNumber SourceLineNumbers { get; set; } + + public Identifier Id { get; set; } + + public IntermediateField this[int index] => this.Fields[index]; + + private string DebuggerDisplay => $"{this.Definition?.Name} {this.Id?.Id}"; + + public bool AddTag(string add) + { + if (this.tags == null) + { + this.tags = add; + } + else if (this.tags is string tag) + { + if (tag == add) + { + return false; + } + + this.tags = new[] { tag, add }; + } + else + { + var tagsArray = (string[])this.tags; + var array = new string[tagsArray.Length + 1]; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == add) + { + return false; + } + + array[i] = tagsArray[i]; + } + + array[tagsArray.Length] = add; + + this.tags = array; + } + + return true; + } + + public bool HasTag(string has) + { + if (this.tags == null) + { + return false; + } + else if (this.tags is string tag) + { + return tag == has; + } + else + { + foreach (var element in (string[])this.tags) + { + if (element == has) + { + return true; + } + } + } + + return false; + } + + public bool RemoveTag(string remove) + { + if (this.tags is string tag) + { + if (tag == remove) + { + this.tags = null; + return true; + } + } + else if (this.tags is string[] tagsArray) + { + if (tagsArray.Length == 2) + { + if (tagsArray[0] == remove) + { + this.tags = tagsArray[1]; + return true; + } + else if (tagsArray[1] == remove) + { + this.tags = tagsArray[0]; + return true; + } + } + else + { + var array = new string[tagsArray.Length - 1]; + var arrayIndex = 0; + var found = false; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == remove) + { + found = true; + continue; + } + else if (arrayIndex == array.Length) + { + break; + } + + array[arrayIndex++] = tagsArray[i]; + } + + if (found) + { + this.tags = array; + return true; + } + } + } + + return false; + } + + internal static IntermediateSymbol Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) + { + var definitionName = jsonObject.GetValueOrDefault("type"); + var idJson = jsonObject.GetValueOrDefault("id"); + var sourceLineNumbersJson = jsonObject.GetValueOrDefault("ln"); + var fieldsJson = jsonObject.GetValueOrDefault("fields"); + var tagsJson = jsonObject.GetValueOrDefault("tags"); + + var id = (idJson == null) ? null : Identifier.Deserialize(idJson); + var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); + + // TODO: this isn't sufficient. + if (!creator.TryGetSymbolDefinitionByName(definitionName, out var definition)) + { + throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); + } + + var symbol = definition.CreateSymbol(sourceLineNumbers, id); + + for (var i = 0; i < fieldsJson.Count && i < symbol.Fields.Length; ++i) + { + if (fieldsJson[i] is JsonObject fieldJson) + { + symbol.Fields[i] = IntermediateField.Deserialize(symbol.Definition.FieldDefinitions[i], baseUri, fieldJson); + } + } + + if (tagsJson == null || tagsJson.Count == 0) + { + } + else if (tagsJson.Count == 1) + { + symbol.tags = (string)tagsJson[0]; + } + else + { + var tags = new string[tagsJson.Count]; + + for (var i = 0; i < tagsJson.Count; ++i) + { + tags[i] = (string)tagsJson[i]; + } + + symbol.tags = tags; + } + + return symbol; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "type", this.Definition.Name } + }; + + var idJson = this.Id?.Serialize(); + if (idJson != null) + { + jsonObject.Add("id", idJson); + } + + var lnJson = this.SourceLineNumbers?.Serialize(); + if (lnJson != null) + { + jsonObject.Add("ln", lnJson); + } + + var fieldsJson = new JsonArray(this.Fields.Length); + + foreach (var field in this.Fields) + { + var fieldJson = field?.Serialize(); + fieldsJson.Add(fieldJson); + } + + jsonObject.Add("fields", fieldsJson); + + if (this.tags is string || this.tags is string[]) + { + JsonArray tagsJson; + + if (this.tags is string tag) + { + tagsJson = new JsonArray(1) { tag }; + } + else + { + var array = (string[])this.tags; + tagsJson = new JsonArray(array.Length); + tagsJson.AddRange(array); + } + + jsonObject.Add("tags", tagsJson); + } + + return jsonObject; + } + } +} diff --git a/src/WixToolset.Data/IntermediateSymbolDefinition.cs b/src/WixToolset.Data/IntermediateSymbolDefinition.cs new file mode 100644 index 00000000..102a9f5c --- /dev/null +++ b/src/WixToolset.Data/IntermediateSymbolDefinition.cs @@ -0,0 +1,270 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using SimpleJson; + + public class IntermediateSymbolDefinition + { + private object tags; + + public IntermediateSymbolDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(SymbolDefinitionType.MustBeFromAnExtension, name, 0, fieldDefinitions, strongSymbolType) + { + } + + public IntermediateSymbolDefinition(string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(SymbolDefinitionType.MustBeFromAnExtension, name, revision, fieldDefinitions, strongSymbolType) + { + } + + internal IntermediateSymbolDefinition(SymbolDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(type, type.ToString(), 0, fieldDefinitions, strongSymbolType) + { + } + + private IntermediateSymbolDefinition(SymbolDefinitionType type, string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + { + this.Type = type; + this.Name = name; + this.Revision = revision; + this.FieldDefinitions = fieldDefinitions; + this.StrongSymbolType = strongSymbolType ?? typeof(IntermediateSymbol); +#if DEBUG + if (this.StrongSymbolType != typeof(IntermediateSymbol) && !this.StrongSymbolType.IsSubclassOf(typeof(IntermediateSymbol))) { throw new ArgumentException(nameof(strongSymbolType)); } +#endif + } + + public int Revision { get; } + + public SymbolDefinitionType Type { get; } + + public string Name { get; } + + public IntermediateFieldDefinition[] FieldDefinitions { get; } + + private Type StrongSymbolType { get; } + + public IntermediateSymbol CreateSymbol(SourceLineNumber sourceLineNumber = null, Identifier id = null) + { + var result = (this.StrongSymbolType == typeof(IntermediateSymbol)) ? (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType, this) : (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType); + result.SourceLineNumbers = sourceLineNumber; + result.Id = id; + + return result; + } + + public bool AddTag(string add) + { + if (this.tags == null) + { + this.tags = add; + } + else if (this.tags is string tag) + { + if (tag == add) + { + return false; + } + + this.tags = new[] { tag, add }; + } + else + { + var tagsArray = (string[])this.tags; + var array = new string[tagsArray.Length + 1]; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == add) + { + return false; + } + + array[i] = tagsArray[i]; + } + + array[tagsArray.Length] = add; + + this.tags = array; + } + + return true; + } + + public bool HasTag(string has) + { + if (this.tags == null) + { + return false; + } + else if (this.tags is string tag) + { + return tag == has; + } + else + { + foreach (var element in (string[])this.tags) + { + if (element == has) + { + return true; + } + } + } + + return false; + } + + public bool RemoveTag(string remove) + { + if (this.tags is string tag) + { + if (tag == remove) + { + this.tags = null; + return true; + } + } + else if (this.tags is string[] tagsArray) + { + if (tagsArray.Length == 2) + { + if (tagsArray[0] == remove) + { + this.tags = tagsArray[1]; + return true; + } + else if (tagsArray[1] == remove) + { + this.tags = tagsArray[0]; + return true; + } + } + else + { + var array = new string[tagsArray.Length - 1]; + var arrayIndex = 0; + var found = false; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == remove) + { + found = true; + continue; + } + else if (arrayIndex == array.Length) + { + break; + } + + array[arrayIndex++] = tagsArray[i]; + } + + if (found) + { + this.tags = array; + return true; + } + } + } + + return false; + } + + internal static IntermediateSymbolDefinition Deserialize(JsonObject jsonObject) + { + var name = jsonObject.GetValueOrDefault("name"); + var revision = jsonObject.GetValueOrDefault("rev", 0); + var definitionsJson = jsonObject.GetValueOrDefault("fields"); + var tagsJson = jsonObject.GetValueOrDefault("tags"); + + var fieldDefinitions = new IntermediateFieldDefinition[definitionsJson.Count]; + + for (var i = 0; i < definitionsJson.Count; ++i) + { + var definitionJson = (JsonObject)definitionsJson[i]; + var fieldName = definitionJson.GetValueOrDefault("name"); + var fieldType = definitionJson.GetEnumOrDefault("type", IntermediateFieldType.String); + fieldDefinitions[i] = new IntermediateFieldDefinition(fieldName, fieldType); + } + + var definition = new IntermediateSymbolDefinition(name, revision, fieldDefinitions, null); + + if (tagsJson == null || tagsJson.Count == 0) + { + } + else if (tagsJson.Count == 1) + { + definition.tags = (string)tagsJson[0]; + } + else + { + var tags = new string[tagsJson.Count]; + + for (var i = 0; i < tagsJson.Count; ++i) + { + tags[i] = (string)tagsJson[i]; + } + + definition.tags = tags; + } + + return definition; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "name", this.Name } + }; + + if (this.Revision > 0) + { + jsonObject.Add("rev", this.Revision); + } + + var fieldsJson = new JsonArray(this.FieldDefinitions.Length); + + foreach (var fieldDefinition in this.FieldDefinitions) + { + var fieldJson = new JsonObject + { + { "name", fieldDefinition.Name }, + }; + + if (fieldDefinition.Type != IntermediateFieldType.String) + { + fieldJson.Add("type", fieldDefinition.Type.ToString().ToLowerInvariant()); + } + + fieldsJson.Add(fieldJson); + } + + jsonObject.Add("fields", fieldsJson); + + if (this.tags is string || this.tags is string[]) + { + JsonArray tagsJson; + + if (this.tags is string tag) + { + tagsJson = new JsonArray(1) { tag }; + } + else + { + var array = (string[])this.tags; + tagsJson = new JsonArray(array.Length); + tagsJson.AddRange(array); + } + + jsonObject.Add("tags", tagsJson); + } + + return jsonObject; + } + } +} diff --git a/src/WixToolset.Data/IntermediateSymbolExtensions.cs b/src/WixToolset.Data/IntermediateSymbolExtensions.cs new file mode 100644 index 00000000..10f0d7f0 --- /dev/null +++ b/src/WixToolset.Data/IntermediateSymbolExtensions.cs @@ -0,0 +1,121 @@ +// 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. + +namespace WixToolset.Data +{ + public static class IntermediateSymbolExtensions + { + public static bool AsBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsBool() ?? false; + + public static bool? AsNullableBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableBool(); + + public static int AsNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNumber() ?? 0; + + public static int? AsNullableNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableNumber(); + + public static string AsString(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsString(); + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool value) + { + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool? value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, long value) + { + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, long? value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, int value) + { + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, int? value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, IntermediateFieldPathValue value) + { + if (value?.Path == null && value?.BaseUri == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, string value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + private static bool NoFieldMetadata(IntermediateSymbol symbol, int index) + { + var field = symbol?.Fields[index]; + + return field?.Context == null && field?.PreviousValue == null; + } + } +} diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs deleted file mode 100644 index 4030df5d..00000000 --- a/src/WixToolset.Data/IntermediateTuple.cs +++ /dev/null @@ -1,256 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Diagnostics; - using SimpleJson; - - [DebuggerDisplay("{DebuggerDisplay,nq}")] - public class IntermediateSymbol - { - private object tags; - - public IntermediateSymbol(IntermediateSymbolDefinition definition) : this(definition, null, null) - { - } - - public IntermediateSymbol(IntermediateSymbolDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) - { - this.Definition = definition; - this.Fields = new IntermediateField[definition.FieldDefinitions.Length]; - this.SourceLineNumbers = sourceLineNumber; - this.Id = id; - } - - public IntermediateSymbolDefinition Definition { get; } - - public IntermediateField[] Fields { get; } - - public SourceLineNumber SourceLineNumbers { get; set; } - - public Identifier Id { get; set; } - - public IntermediateField this[int index] => this.Fields[index]; - - private string DebuggerDisplay => $"{this.Definition?.Name} {this.Id?.Id}"; - - public bool AddTag(string add) - { - if (this.tags == null) - { - this.tags = add; - } - else if (this.tags is string tag) - { - if (tag == add) - { - return false; - } - - this.tags = new[] { tag, add }; - } - else - { - var tagsArray = (string[])this.tags; - var array = new string[tagsArray.Length + 1]; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == add) - { - return false; - } - - array[i] = tagsArray[i]; - } - - array[tagsArray.Length] = add; - - this.tags = array; - } - - return true; - } - - public bool HasTag(string has) - { - if (this.tags == null) - { - return false; - } - else if (this.tags is string tag) - { - return tag == has; - } - else - { - foreach (var element in (string[])this.tags) - { - if (element == has) - { - return true; - } - } - } - - return false; - } - - public bool RemoveTag(string remove) - { - if (this.tags is string tag) - { - if (tag == remove) - { - this.tags = null; - return true; - } - } - else if (this.tags is string[] tagsArray) - { - if (tagsArray.Length == 2) - { - if (tagsArray[0] == remove) - { - this.tags = tagsArray[1]; - return true; - } - else if (tagsArray[1] == remove) - { - this.tags = tagsArray[0]; - return true; - } - } - else - { - var array = new string[tagsArray.Length - 1]; - var arrayIndex = 0; - var found = false; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == remove) - { - found = true; - continue; - } - else if (arrayIndex == array.Length) - { - break; - } - - array[arrayIndex++] = tagsArray[i]; - } - - if (found) - { - this.tags = array; - return true; - } - } - } - - return false; - } - - internal static IntermediateSymbol Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) - { - var definitionName = jsonObject.GetValueOrDefault("type"); - var idJson = jsonObject.GetValueOrDefault("id"); - var sourceLineNumbersJson = jsonObject.GetValueOrDefault("ln"); - var fieldsJson = jsonObject.GetValueOrDefault("fields"); - var tagsJson = jsonObject.GetValueOrDefault("tags"); - - var id = (idJson == null) ? null : Identifier.Deserialize(idJson); - var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); - - // TODO: this isn't sufficient. - if (!creator.TryGetSymbolDefinitionByName(definitionName, out var definition)) - { - throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); - } - - var symbol = definition.CreateSymbol(sourceLineNumbers, id); - - for (var i = 0; i < fieldsJson.Count && i < symbol.Fields.Length; ++i) - { - if (fieldsJson[i] is JsonObject fieldJson) - { - symbol.Fields[i] = IntermediateField.Deserialize(symbol.Definition.FieldDefinitions[i], baseUri, fieldJson); - } - } - - if (tagsJson == null || tagsJson.Count == 0) - { - } - else if (tagsJson.Count == 1) - { - symbol.tags = (string)tagsJson[0]; - } - else - { - var tags = new string[tagsJson.Count]; - - for (var i = 0; i < tagsJson.Count; ++i) - { - tags[i] = (string)tagsJson[i]; - } - - symbol.tags = tags; - } - - return symbol; - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "type", this.Definition.Name } - }; - - var idJson = this.Id?.Serialize(); - if (idJson != null) - { - jsonObject.Add("id", idJson); - } - - var lnJson = this.SourceLineNumbers?.Serialize(); - if (lnJson != null) - { - jsonObject.Add("ln", lnJson); - } - - var fieldsJson = new JsonArray(this.Fields.Length); - - foreach (var field in this.Fields) - { - var fieldJson = field?.Serialize(); - fieldsJson.Add(fieldJson); - } - - jsonObject.Add("fields", fieldsJson); - - if (this.tags is string || this.tags is string[]) - { - JsonArray tagsJson; - - if (this.tags is string tag) - { - tagsJson = new JsonArray(1) { tag }; - } - else - { - var array = (string[])this.tags; - tagsJson = new JsonArray(array.Length); - tagsJson.AddRange(array); - } - - jsonObject.Add("tags", tagsJson); - } - - return jsonObject; - } - } -} diff --git a/src/WixToolset.Data/IntermediateTupleDefinition.cs b/src/WixToolset.Data/IntermediateTupleDefinition.cs deleted file mode 100644 index 102a9f5c..00000000 --- a/src/WixToolset.Data/IntermediateTupleDefinition.cs +++ /dev/null @@ -1,270 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using SimpleJson; - - public class IntermediateSymbolDefinition - { - private object tags; - - public IntermediateSymbolDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - : this(SymbolDefinitionType.MustBeFromAnExtension, name, 0, fieldDefinitions, strongSymbolType) - { - } - - public IntermediateSymbolDefinition(string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - : this(SymbolDefinitionType.MustBeFromAnExtension, name, revision, fieldDefinitions, strongSymbolType) - { - } - - internal IntermediateSymbolDefinition(SymbolDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - : this(type, type.ToString(), 0, fieldDefinitions, strongSymbolType) - { - } - - private IntermediateSymbolDefinition(SymbolDefinitionType type, string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - { - this.Type = type; - this.Name = name; - this.Revision = revision; - this.FieldDefinitions = fieldDefinitions; - this.StrongSymbolType = strongSymbolType ?? typeof(IntermediateSymbol); -#if DEBUG - if (this.StrongSymbolType != typeof(IntermediateSymbol) && !this.StrongSymbolType.IsSubclassOf(typeof(IntermediateSymbol))) { throw new ArgumentException(nameof(strongSymbolType)); } -#endif - } - - public int Revision { get; } - - public SymbolDefinitionType Type { get; } - - public string Name { get; } - - public IntermediateFieldDefinition[] FieldDefinitions { get; } - - private Type StrongSymbolType { get; } - - public IntermediateSymbol CreateSymbol(SourceLineNumber sourceLineNumber = null, Identifier id = null) - { - var result = (this.StrongSymbolType == typeof(IntermediateSymbol)) ? (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType, this) : (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType); - result.SourceLineNumbers = sourceLineNumber; - result.Id = id; - - return result; - } - - public bool AddTag(string add) - { - if (this.tags == null) - { - this.tags = add; - } - else if (this.tags is string tag) - { - if (tag == add) - { - return false; - } - - this.tags = new[] { tag, add }; - } - else - { - var tagsArray = (string[])this.tags; - var array = new string[tagsArray.Length + 1]; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == add) - { - return false; - } - - array[i] = tagsArray[i]; - } - - array[tagsArray.Length] = add; - - this.tags = array; - } - - return true; - } - - public bool HasTag(string has) - { - if (this.tags == null) - { - return false; - } - else if (this.tags is string tag) - { - return tag == has; - } - else - { - foreach (var element in (string[])this.tags) - { - if (element == has) - { - return true; - } - } - } - - return false; - } - - public bool RemoveTag(string remove) - { - if (this.tags is string tag) - { - if (tag == remove) - { - this.tags = null; - return true; - } - } - else if (this.tags is string[] tagsArray) - { - if (tagsArray.Length == 2) - { - if (tagsArray[0] == remove) - { - this.tags = tagsArray[1]; - return true; - } - else if (tagsArray[1] == remove) - { - this.tags = tagsArray[0]; - return true; - } - } - else - { - var array = new string[tagsArray.Length - 1]; - var arrayIndex = 0; - var found = false; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == remove) - { - found = true; - continue; - } - else if (arrayIndex == array.Length) - { - break; - } - - array[arrayIndex++] = tagsArray[i]; - } - - if (found) - { - this.tags = array; - return true; - } - } - } - - return false; - } - - internal static IntermediateSymbolDefinition Deserialize(JsonObject jsonObject) - { - var name = jsonObject.GetValueOrDefault("name"); - var revision = jsonObject.GetValueOrDefault("rev", 0); - var definitionsJson = jsonObject.GetValueOrDefault("fields"); - var tagsJson = jsonObject.GetValueOrDefault("tags"); - - var fieldDefinitions = new IntermediateFieldDefinition[definitionsJson.Count]; - - for (var i = 0; i < definitionsJson.Count; ++i) - { - var definitionJson = (JsonObject)definitionsJson[i]; - var fieldName = definitionJson.GetValueOrDefault("name"); - var fieldType = definitionJson.GetEnumOrDefault("type", IntermediateFieldType.String); - fieldDefinitions[i] = new IntermediateFieldDefinition(fieldName, fieldType); - } - - var definition = new IntermediateSymbolDefinition(name, revision, fieldDefinitions, null); - - if (tagsJson == null || tagsJson.Count == 0) - { - } - else if (tagsJson.Count == 1) - { - definition.tags = (string)tagsJson[0]; - } - else - { - var tags = new string[tagsJson.Count]; - - for (var i = 0; i < tagsJson.Count; ++i) - { - tags[i] = (string)tagsJson[i]; - } - - definition.tags = tags; - } - - return definition; - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "name", this.Name } - }; - - if (this.Revision > 0) - { - jsonObject.Add("rev", this.Revision); - } - - var fieldsJson = new JsonArray(this.FieldDefinitions.Length); - - foreach (var fieldDefinition in this.FieldDefinitions) - { - var fieldJson = new JsonObject - { - { "name", fieldDefinition.Name }, - }; - - if (fieldDefinition.Type != IntermediateFieldType.String) - { - fieldJson.Add("type", fieldDefinition.Type.ToString().ToLowerInvariant()); - } - - fieldsJson.Add(fieldJson); - } - - jsonObject.Add("fields", fieldsJson); - - if (this.tags is string || this.tags is string[]) - { - JsonArray tagsJson; - - if (this.tags is string tag) - { - tagsJson = new JsonArray(1) { tag }; - } - else - { - var array = (string[])this.tags; - tagsJson = new JsonArray(array.Length); - tagsJson.AddRange(array); - } - - jsonObject.Add("tags", tagsJson); - } - - return jsonObject; - } - } -} diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs deleted file mode 100644 index 10f0d7f0..00000000 --- a/src/WixToolset.Data/IntermediateTupleExtensions.cs +++ /dev/null @@ -1,121 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public static class IntermediateSymbolExtensions - { - public static bool AsBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsBool() ?? false; - - public static bool? AsNullableBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableBool(); - - public static int AsNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNumber() ?? 0; - - public static int? AsNullableNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableNumber(); - - public static string AsString(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsString(); - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool value) - { - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool? value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, long value) - { - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, long? value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, int value) - { - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, int? value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, IntermediateFieldPathValue value) - { - if (value?.Path == null && value?.BaseUri == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, string value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - private static bool NoFieldMetadata(IntermediateSymbol symbol, int index) - { - var field = symbol?.Fields[index]; - - return field?.Context == null && field?.PreviousValue == null; - } - } -} diff --git a/src/WixToolset.Data/Section.cs b/src/WixToolset.Data/Section.cs deleted file mode 100644 index f9e19f3b..00000000 --- a/src/WixToolset.Data/Section.cs +++ /dev/null @@ -1,242 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ -#if false - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Globalization; - using System.Linq; - using System.Xml; - - /// - /// Section in an object file. - /// - public sealed class Section - { - /// - /// Creates a new section as part of an intermediate. - /// - /// Identifier for section. - /// Type of section. - /// Codepage for resulting database. - public Section(string id, SectionType type, int codepage) - { - this.Id = id; - this.Type = type; - this.Codepage = codepage; - - this.Tables = new TableIndexedCollection(); - } - - /// - /// Gets the identifier for the section. - /// - /// Section identifier. - public string Id { get; private set; } - - /// - /// Gets the type of the section. - /// - /// Type of section. - public SectionType Type { get; private set; } - - /// - /// Gets the codepage for the section. - /// - /// Codepage for the section. - public int Codepage { get; private set; } - - /// - /// Gets the tables in the section. - /// - /// Tables in section. - public TableIndexedCollection Tables { get; private set; } - - /// - /// Gets the source line information of the file containing this section. - /// - /// The source line information of the file containing this section. - public SourceLineNumber SourceLineNumbers { get; private set; } - - /// - /// Gets the identity of the intermediate the section is contained within. - /// - public string IntermediateId { get; internal set; } - - /// - /// Gets the identity of the library when the section is contained within one. - /// - public string LibraryId { get; internal set; } - - /// - /// Ensures a table is added to the section's table collection. - /// - /// Table definition for the table. - /// Table in the section. - public Table EnsureTable(TableDefinition tableDefinition) - { - Table table; - if (!this.Tables.TryGetTable(tableDefinition.Name, out table)) - { - table = new Table(this, tableDefinition); - this.Tables.Add(table); - } - - return table; - } - - /// - /// Parse a section from the xml. - /// - /// XmlReader where the intermediate is persisted. - /// TableDefinitions to use in the intermediate. - /// The parsed Section. - internal static Section Read(XmlReader reader, TableDefinitionCollection tableDefinitions) - { - Debug.Assert("section" == reader.LocalName); - - int codepage = 0; - bool empty = reader.IsEmptyElement; - string id = null; - SectionType type = SectionType.Unknown; - - while (reader.MoveToNextAttribute()) - { - switch (reader.Name) - { - case "codepage": - codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); - break; - case "id": - id = reader.Value; - break; - case "type": - switch (reader.Value) - { - case "bundle": - type = SectionType.Bundle; - break; - case "fragment": - type = SectionType.Fragment; - break; - case "module": - type = SectionType.Module; - break; - case "patchCreation": - type = SectionType.PatchCreation; - break; - case "product": - type = SectionType.Product; - break; - case "patch": - type = SectionType.Patch; - break; - default: - throw new XmlException(); - } - break; - } - } - - if (null == id && (SectionType.Unknown != type && SectionType.Fragment != type)) - { - throw new XmlException(); - } - - if (SectionType.Unknown == type) - { - throw new XmlException(); - } - - Section section = new Section(id, type, codepage); - section.SourceLineNumbers = SourceLineNumber.CreateFromUri(reader.BaseURI); - - List
tables = new List
(); - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "table": - tables.Add(Table.Read(reader, section, tableDefinitions)); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - section.Tables = new TableIndexedCollection(tables); - - return section; - } - - /// - /// Persist the Section to an XmlWriter. - /// - /// XmlWriter which reference will be persisted to. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("section", Intermediate.XmlNamespaceUri); - - if (null != this.Id) - { - writer.WriteAttributeString("id", this.Id); - } - - switch (this.Type) - { - case SectionType.Bundle: - writer.WriteAttributeString("type", "bundle"); - break; - case SectionType.Fragment: - writer.WriteAttributeString("type", "fragment"); - break; - case SectionType.Module: - writer.WriteAttributeString("type", "module"); - break; - case SectionType.Product: - writer.WriteAttributeString("type", "product"); - break; - case SectionType.PatchCreation: - writer.WriteAttributeString("type", "patchCreation"); - break; - case SectionType.Patch: - writer.WriteAttributeString("type", "patch"); - break; - } - - if (0 != this.Codepage) - { - writer.WriteAttributeString("codepage", this.Codepage.ToString()); - } - - // save the rows in table order - foreach (Table table in this.Tables.OrderBy(t => t.Name)) - { - table.Write(writer); - } - - writer.WriteEndElement(); - } - } -#endif -} diff --git a/src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs b/src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs new file mode 100644 index 00000000..e22d53e7 --- /dev/null +++ b/src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs @@ -0,0 +1,31 @@ +// 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. + +namespace WixToolset.Data +{ + using System.Collections.Generic; + + internal class SimpleSymbolDefinitionCreator : ISymbolDefinitionCreator + { + private Dictionary CustomDefinitionByName { get; } = new Dictionary(); + + public void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition) + { + if (!this.CustomDefinitionByName.TryGetValue(definition.Name, out var existing) || definition.Revision > existing.Revision) + { + this.CustomDefinitionByName[definition.Name] = definition; + } + } + + public bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition) + { + symbolDefinition = SymbolDefinitions.ByName(name); + + if (symbolDefinition == null) + { + symbolDefinition = this.CustomDefinitionByName.GetValueOrDefault(name); + } + + return symbolDefinition != null; + } + } +} diff --git a/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs b/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs deleted file mode 100644 index e22d53e7..00000000 --- a/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs +++ /dev/null @@ -1,31 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System.Collections.Generic; - - internal class SimpleSymbolDefinitionCreator : ISymbolDefinitionCreator - { - private Dictionary CustomDefinitionByName { get; } = new Dictionary(); - - public void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition) - { - if (!this.CustomDefinitionByName.TryGetValue(definition.Name, out var existing) || definition.Revision > existing.Revision) - { - this.CustomDefinitionByName[definition.Name] = definition; - } - } - - public bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition) - { - symbolDefinition = SymbolDefinitions.ByName(name); - - if (symbolDefinition == null) - { - symbolDefinition = this.CustomDefinitionByName.GetValueOrDefault(name); - } - - return symbolDefinition != null; - } - } -} diff --git a/src/WixToolset.Data/SymbolWithSection.cs b/src/WixToolset.Data/SymbolWithSection.cs new file mode 100644 index 00000000..89a5fccd --- /dev/null +++ b/src/WixToolset.Data/SymbolWithSection.cs @@ -0,0 +1,90 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Linq; + + /// + /// Symbol with section representing a single unique symbol. + /// + public sealed class SymbolWithSection + { + private HashSet possibleConflicts; + private HashSet redundants; + + /// + /// Creates a symbol for a symbol. + /// + /// Symbol for the symbol + public SymbolWithSection(IntermediateSection section, IntermediateSymbol symbol) + { + this.Symbol = symbol; + this.Section = section; + this.Name = String.Concat(this.Symbol.Definition.Name, ":", this.Symbol.Id.Id); + } + + /// + /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. + /// + /// Accessbility of the symbol. + public AccessModifier Access => this.Symbol.Id.Access; + + /// + /// Gets the name of the symbol. + /// + /// Name of the symbol. + public string Name { get; } + + /// + /// Gets the symbol for this symbol. + /// + /// Symbol for this symbol. + public IntermediateSymbol Symbol { get; } + + /// + /// Gets the section for the symbol. + /// + /// Section for the symbol. + public IntermediateSection Section { get; } + + /// + /// Gets any duplicates of this symbol with sections that are possible conflicts. + /// + public IEnumerable PossiblyConflicts => this.possibleConflicts ?? Enumerable.Empty(); + + /// + /// Gets any duplicates of this symbol with sections that are redundant. + /// + public IEnumerable Redundants => this.redundants ?? Enumerable.Empty(); + + /// + /// Adds a duplicate symbol with sections that is a possible conflict. + /// + /// Symbol with section that is a possible conflict of this symbol. + public void AddPossibleConflict(SymbolWithSection symbolWithSection) + { + if (null == this.possibleConflicts) + { + this.possibleConflicts = new HashSet(); + } + + this.possibleConflicts.Add(symbolWithSection); + } + + /// + /// Adds a duplicate symbol that is redundant. + /// + /// Symbol with section that is redundant of this symbol. + public void AddRedundant(SymbolWithSection symbolWithSection) + { + if (null == this.redundants) + { + this.redundants = new HashSet(); + } + + this.redundants.Add(symbolWithSection); + } + } +} diff --git a/src/WixToolset.Data/TupleWithSection.cs b/src/WixToolset.Data/TupleWithSection.cs deleted file mode 100644 index 89a5fccd..00000000 --- a/src/WixToolset.Data/TupleWithSection.cs +++ /dev/null @@ -1,90 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Linq; - - /// - /// Symbol with section representing a single unique symbol. - /// - public sealed class SymbolWithSection - { - private HashSet possibleConflicts; - private HashSet redundants; - - /// - /// Creates a symbol for a symbol. - /// - /// Symbol for the symbol - public SymbolWithSection(IntermediateSection section, IntermediateSymbol symbol) - { - this.Symbol = symbol; - this.Section = section; - this.Name = String.Concat(this.Symbol.Definition.Name, ":", this.Symbol.Id.Id); - } - - /// - /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. - /// - /// Accessbility of the symbol. - public AccessModifier Access => this.Symbol.Id.Access; - - /// - /// Gets the name of the symbol. - /// - /// Name of the symbol. - public string Name { get; } - - /// - /// Gets the symbol for this symbol. - /// - /// Symbol for this symbol. - public IntermediateSymbol Symbol { get; } - - /// - /// Gets the section for the symbol. - /// - /// Section for the symbol. - public IntermediateSection Section { get; } - - /// - /// Gets any duplicates of this symbol with sections that are possible conflicts. - /// - public IEnumerable PossiblyConflicts => this.possibleConflicts ?? Enumerable.Empty(); - - /// - /// Gets any duplicates of this symbol with sections that are redundant. - /// - public IEnumerable Redundants => this.redundants ?? Enumerable.Empty(); - - /// - /// Adds a duplicate symbol with sections that is a possible conflict. - /// - /// Symbol with section that is a possible conflict of this symbol. - public void AddPossibleConflict(SymbolWithSection symbolWithSection) - { - if (null == this.possibleConflicts) - { - this.possibleConflicts = new HashSet(); - } - - this.possibleConflicts.Add(symbolWithSection); - } - - /// - /// Adds a duplicate symbol that is redundant. - /// - /// Symbol with section that is redundant of this symbol. - public void AddRedundant(SymbolWithSection symbolWithSection) - { - if (null == this.redundants) - { - this.redundants = new HashSet(); - } - - this.redundants.Add(symbolWithSection); - } - } -} -- cgit v1.2.3-55-g6feb From 5956ddf6e72ad0bb9fc43f82ef54d584bdf65a9c Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 5 Jul 2020 17:30:08 -0700 Subject: Avoid Enum.ToString() by storing enums as integers --- src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs | 12 ++++++------ src/WixToolset.Data/Symbols/WixGroupSymbol.cs | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs index 89365605..3db9bcd5 100644 --- a/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs @@ -11,10 +11,10 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentAttributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentLanguage), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Child), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ChildAttributes), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ChildAttributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Attributes), IntermediateFieldType.Bool), }, typeof(WixComplexReferenceSymbol)); @@ -55,8 +55,8 @@ namespace WixToolset.Data.Symbols public ComplexReferenceParentType ParentType { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentAttributes], true); - set => this.Set((int)WixComplexReferenceSymbolFields.ParentAttributes, value.ToString()); + get => (ComplexReferenceParentType)this.Fields[(int)WixComplexReferenceSymbolFields.ParentAttributes].AsNumber(); + set => this.Set((int)WixComplexReferenceSymbolFields.ParentAttributes, (int)value); } public string ParentLanguage @@ -73,8 +73,8 @@ namespace WixToolset.Data.Symbols public ComplexReferenceChildType ChildType { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceSymbolFields.ChildAttributes], true); - set => this.Set((int)WixComplexReferenceSymbolFields.ChildAttributes, value.ToString()); + get => (ComplexReferenceChildType)this.Fields[(int)WixComplexReferenceSymbolFields.ChildAttributes].AsNumber(); + set => this.Set((int)WixComplexReferenceSymbolFields.ChildAttributes, (int)value); } public bool IsPrimary diff --git a/src/WixToolset.Data/Symbols/WixGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixGroupSymbol.cs index b9720890..babcff23 100644 --- a/src/WixToolset.Data/Symbols/WixGroupSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixGroupSymbol.cs @@ -11,9 +11,9 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentType), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildType), IntermediateFieldType.Number), }, typeof(WixGroupSymbol)); } @@ -51,8 +51,8 @@ namespace WixToolset.Data.Symbols public ComplexReferenceParentType ParentType { - get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupSymbolFields.ParentType], true); - set => this.Set((int)WixGroupSymbolFields.ParentType, value.ToString()); + get => (ComplexReferenceParentType)this.Fields[(int)WixGroupSymbolFields.ParentType].AsNumber(); + set => this.Set((int)WixGroupSymbolFields.ParentType, (int)value); } public string ChildId @@ -63,8 +63,8 @@ namespace WixToolset.Data.Symbols public ComplexReferenceChildType ChildType { - get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupSymbolFields.ChildType], true); - set => this.Set((int)WixGroupSymbolFields.ChildType, value.ToString()); + get => (ComplexReferenceChildType)this.Fields[(int)WixGroupSymbolFields.ChildType].AsNumber(); + set => this.Set((int)WixGroupSymbolFields.ChildType, (int)value); } } } \ No newline at end of file -- cgit v1.2.3-55-g6feb From 4d2f47adcedb2860d0b2dddcb535ac4cf47e53e0 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 5 Jul 2020 17:33:28 -0700 Subject: Store short filenames in separate fields --- src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs | 8 ++++++++ src/WixToolset.Data/Symbols/FileSymbol.cs | 1 - src/WixToolset.Data/Symbols/IniFileSymbol.cs | 8 ++++++++ src/WixToolset.Data/Symbols/IniLocatorSymbol.cs | 16 ++++++++-------- src/WixToolset.Data/Symbols/MoveFileSymbol.cs | 18 +++++++++++++----- src/WixToolset.Data/Symbols/RemoveFileSymbol.cs | 18 +++++++++++++----- 6 files changed, 50 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs b/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs index 1344ced4..f2d1d94f 100644 --- a/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs +++ b/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs @@ -13,6 +13,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.FileRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationShortName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationFolder), IntermediateFieldType.String), }, typeof(DuplicateFileSymbol)); @@ -26,6 +27,7 @@ namespace WixToolset.Data.Symbols ComponentRef, FileRef, DestinationName, + DestinationShortName, DestinationFolder, } @@ -59,6 +61,12 @@ namespace WixToolset.Data.Symbols set => this.Set((int)DuplicateFileSymbolFields.DestinationName, value); } + public string DestinationShortName + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationShortName]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationShortName, value); + } + public string DestinationFolder { get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationFolder]; diff --git a/src/WixToolset.Data/Symbols/FileSymbol.cs b/src/WixToolset.Data/Symbols/FileSymbol.cs index 7d1afdb7..784b7846 100644 --- a/src/WixToolset.Data/Symbols/FileSymbol.cs +++ b/src/WixToolset.Data/Symbols/FileSymbol.cs @@ -86,7 +86,6 @@ namespace WixToolset.Data.Symbols Compressed = 0x10, Uncompressed = 0x20, Checksum = 0x40, - GeneratedShortFileName = 0x80, } /// diff --git a/src/WixToolset.Data/Symbols/IniFileSymbol.cs b/src/WixToolset.Data/Symbols/IniFileSymbol.cs index e23f6039..f1e0c104 100644 --- a/src/WixToolset.Data/Symbols/IniFileSymbol.cs +++ b/src/WixToolset.Data/Symbols/IniFileSymbol.cs @@ -11,6 +11,7 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(IniFileSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ShortFileName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniFileSymbolFields.DirProperty), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Section), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Key), IntermediateFieldType.String), @@ -27,6 +28,7 @@ namespace WixToolset.Data.Symbols public enum IniFileSymbolFields { FileName, + ShortFileName, DirProperty, Section, Key, @@ -53,6 +55,12 @@ namespace WixToolset.Data.Symbols set => this.Set((int)IniFileSymbolFields.FileName, value); } + public string ShortFileName + { + get => (string)this.Fields[(int)IniFileSymbolFields.ShortFileName]; + set => this.Set((int)IniFileSymbolFields.ShortFileName, value); + } + public string DirProperty { get => (string)this.Fields[(int)IniFileSymbolFields.DirProperty]; diff --git a/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs b/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs index 64351681..c36f0dfc 100644 --- a/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs +++ b/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs @@ -10,8 +10,8 @@ namespace WixToolset.Data SymbolDefinitionType.IniLocator, new[] { - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.ShortFileName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Section), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Key), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Field), IntermediateFieldType.Number), @@ -25,8 +25,8 @@ namespace WixToolset.Data.Symbols { public enum IniLocatorSymbolFields { - SignatureRef, FileName, + ShortFileName, Section, Key, Field, @@ -45,18 +45,18 @@ namespace WixToolset.Data.Symbols public IntermediateField this[IniLocatorSymbolFields index] => this.Fields[(int)index]; - public string SignatureRef - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.SignatureRef]; - set => this.Set((int)IniLocatorSymbolFields.SignatureRef, value); - } - public string FileName { get => (string)this.Fields[(int)IniLocatorSymbolFields.FileName]; set => this.Set((int)IniLocatorSymbolFields.FileName, value); } + public string ShortFileName + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.ShortFileName]; + set => this.Set((int)IniLocatorSymbolFields.ShortFileName, value); + } + public string Section { get => (string)this.Fields[(int)IniLocatorSymbolFields.Section]; diff --git a/src/WixToolset.Data/Symbols/MoveFileSymbol.cs b/src/WixToolset.Data/Symbols/MoveFileSymbol.cs index 84089965..6e9e32a5 100644 --- a/src/WixToolset.Data/Symbols/MoveFileSymbol.cs +++ b/src/WixToolset.Data/Symbols/MoveFileSymbol.cs @@ -12,7 +12,8 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestinationName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestinationShortName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceFolder), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestFolder), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.Delete), IntermediateFieldType.Bool), @@ -27,7 +28,8 @@ namespace WixToolset.Data.Symbols { ComponentRef, SourceName, - DestName, + DestinationName, + DestinationShortName, SourceFolder, DestFolder, Delete, @@ -57,10 +59,16 @@ namespace WixToolset.Data.Symbols set => this.Set((int)MoveFileSymbolFields.SourceName, value); } - public string DestName + public string DestinationName { - get => (string)this.Fields[(int)MoveFileSymbolFields.DestName]; - set => this.Set((int)MoveFileSymbolFields.DestName, value); + get => (string)this.Fields[(int)MoveFileSymbolFields.DestinationName]; + set => this.Set((int)MoveFileSymbolFields.DestinationName, value); + } + + public string DestinationShortName + { + get => (string)this.Fields[(int)MoveFileSymbolFields.DestinationShortName]; + set => this.Set((int)MoveFileSymbolFields.DestinationShortName, value); } public string SourceFolder diff --git a/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs b/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs index a1791e54..0167b070 100644 --- a/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs +++ b/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs @@ -12,7 +12,8 @@ namespace WixToolset.Data { new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ShortFileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.DirPropertyRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnInstall), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnUninstall), IntermediateFieldType.Bool), }, @@ -26,7 +27,8 @@ namespace WixToolset.Data.Symbols { ComponentRef, FileName, - DirProperty, + ShortFileName, + DirPropertyRef, OnInstall, OnUninstall, } @@ -55,10 +57,16 @@ namespace WixToolset.Data.Symbols set => this.Set((int)RemoveFileSymbolFields.FileName, value); } - public string DirProperty + public string ShortFileName { - get => (string)this.Fields[(int)RemoveFileSymbolFields.DirProperty]; - set => this.Set((int)RemoveFileSymbolFields.DirProperty, value); + get => (string)this.Fields[(int)RemoveFileSymbolFields.ShortFileName]; + set => this.Set((int)RemoveFileSymbolFields.ShortFileName, value); + } + + public string DirPropertyRef + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.DirPropertyRef]; + set => this.Set((int)RemoveFileSymbolFields.DirPropertyRef, value); } public bool? OnInstall -- cgit v1.2.3-55-g6feb From 931b458957dc243601d4e745d23c49a57cd9ca6f Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Tue, 14 Jul 2020 13:57:30 +1000 Subject: Update dependencies. --- src/WixToolset.Data/WixToolset.Data.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index da4665eb..1f392e66 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -17,6 +17,6 @@ - + -- cgit v1.2.3-55-g6feb From bff4dd77d9d04f587d3f1948c9d569b15b2ca347 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 10 Jul 2020 21:21:59 -0700 Subject: Avoid creation of nullable to improve perf and small code cleanup --- src/WixToolset.Data/IntermediateFieldValue.cs | 4 +- .../IntermediateFieldValueExtensions.cs | 58 +++++++++++----------- .../Symbols/WixSimpleReferenceSymbol.cs | 4 +- 3 files changed, 33 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs index 9a6b6ef5..84a23931 100644 --- a/src/WixToolset.Data/IntermediateFieldValue.cs +++ b/src/WixToolset.Data/IntermediateFieldValue.cs @@ -17,11 +17,11 @@ namespace WixToolset.Data public static explicit operator bool(IntermediateFieldValue value) => value.AsBool(); - public static explicit operator bool? (IntermediateFieldValue value) => value.AsNullableBool(); + public static explicit operator bool?(IntermediateFieldValue value) => value.AsNullableBool(); public static explicit operator int(IntermediateFieldValue value) => value.AsNumber(); - public static explicit operator int? (IntermediateFieldValue value) => value.AsNullableNumber(); + public static explicit operator int?(IntermediateFieldValue value) => value.AsNullableNumber(); public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath(); diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs index 317dfc7f..8ff923a7 100644 --- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs @@ -8,17 +8,7 @@ namespace WixToolset.Data { public static bool AsBool(this IntermediateFieldValue value) { - var result = value.AsNullableBool(); - return result.HasValue && result.Value; - } - - public static bool? AsNullableBool(this IntermediateFieldValue value) - { - if (value?.Data == null) - { - return null; - } - else if (value.Data is bool b) + if (value.Data is bool b) { return b; } @@ -45,26 +35,26 @@ namespace WixToolset.Data return (bool)value.Data; } - public static long AsLargeNumber(this IntermediateFieldValue value) + public static bool? AsNullableBool(this IntermediateFieldValue value) { - var result = value.AsNullableLargeNumber(); - return result ?? 0; + if (value?.Data == null) + { + return null; + } + + return value.AsBool(); } - public static long? AsNullableLargeNumber(this IntermediateFieldValue value) + public static long AsLargeNumber(this IntermediateFieldValue value) { - if (value?.Data == null) + if (value.Data is long l) { - return null; + return l; } else if (value.Data is int n) { return n; } - else if (value.Data is long l) - { - return l; - } else if (value.Data is bool b) { return b ? 1 : 0; @@ -84,19 +74,19 @@ namespace WixToolset.Data return (long)value.Data; } - public static int AsNumber(this IntermediateFieldValue value) - { - var result = value.AsNullableNumber(); - return result ?? 0; - } - - public static int? AsNullableNumber(this IntermediateFieldValue value) + public static long? AsNullableLargeNumber(this IntermediateFieldValue value) { if (value?.Data == null) { return null; } - else if (value.Data is int n) + + return value.AsLargeNumber(); + } + + public static int AsNumber(this IntermediateFieldValue value) + { + if (value.Data is int n) { return n; } @@ -123,6 +113,16 @@ namespace WixToolset.Data return (int)value.Data; } + public static int? AsNullableNumber(this IntermediateFieldValue value) + { + if (value?.Data == null) + { + return null; + } + + return value.AsNumber(); + } + public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) { return (IntermediateFieldPathValue)value?.Data; diff --git a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs index 1091b715..3070ba04 100644 --- a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs @@ -28,7 +28,7 @@ namespace WixToolset.Data.Symbols PrimaryKeys, } - [DebuggerDisplay("{SymbolicName}")] + [DebuggerDisplay("{SymbolicName,nq}")] public class WixSimpleReferenceSymbol : IntermediateSymbol { public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) @@ -57,6 +57,6 @@ namespace WixToolset.Data.Symbols /// Gets the symbolic name. /// /// Symbolic name. - public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); + public string SymbolicName => String.Concat("Ref ", this.Table, ":", this.PrimaryKeys); } } \ No newline at end of file -- cgit v1.2.3-55-g6feb From 53f0919741771bbd41a13efc83fc78337ba86756 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 12 Jul 2020 13:24:34 -0700 Subject: Add ability to directly overwrite existing field value --- src/WixToolset.Data/IntermediateFieldExtensions.cs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index 06189b9c..2c856e65 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -501,6 +501,8 @@ namespace WixToolset.Data return EnsureField(field, definition).Set(value); } + public static void Overwrite(this IntermediateField field, string value) => field.Value.Data = value; + private static IntermediateField AssignFieldValue(IntermediateField field, object data) { field.Value = new IntermediateFieldValue -- cgit v1.2.3-55-g6feb From 7052dbba84e0815e75b3d85b4ffe05e0260304ab Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 14 Jul 2020 10:22:51 -0700 Subject: Fix debugger display to not break Core --- src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs index 3070ba04..86e410ff 100644 --- a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs @@ -28,7 +28,7 @@ namespace WixToolset.Data.Symbols PrimaryKeys, } - [DebuggerDisplay("{SymbolicName,nq}")] + [DebuggerDisplay("Ref {SymbolicName,nq}")] public class WixSimpleReferenceSymbol : IntermediateSymbol { public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) @@ -57,6 +57,6 @@ namespace WixToolset.Data.Symbols /// Gets the symbolic name. /// /// Symbolic name. - public string SymbolicName => String.Concat("Ref ", this.Table, ":", this.PrimaryKeys); + public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); } } \ No newline at end of file -- cgit v1.2.3-55-g6feb From 80304ddaf48d843e9d6971d2e44f84bb096d494b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 19 Jul 2020 01:21:08 -0700 Subject: Fix persisting of WindowsInstallerData by minimizing compliance checks Support storing characters such as NULL that are technically invalid in XML text but can be escaped properly if settings are set just right. Also, skip the XML declaration that wastes space. --- src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs index 67a074c6..cc16bca5 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -18,6 +18,12 @@ namespace WixToolset.Data.WindowsInstaller private static readonly Version CurrentVersion = new Version("4.0.0.0"); private const string WixOutputStreamName = "wix-wid.xml"; + private static readonly XmlWriterSettings WriterSettings = new XmlWriterSettings + { + CheckCharacters = false, + CloseOutput = false, + OmitXmlDeclaration = true, + }; /// /// Creates a new empty output object. @@ -83,7 +89,7 @@ namespace WixToolset.Data.WindowsInstaller /// Container to save to. public void Save(WixOutput wixout) { - using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName))) + using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName), WriterSettings)) { this.Save(writer); } -- cgit v1.2.3-55-g6feb From 58023f02ba2b2245ffa30e76cdcd0be5288fc454 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 19 Jul 2020 01:21:43 -0700 Subject: Overwrite files that were already extracted --- src/WixToolset.Data/WixOutput.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index bb546821..969de991 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -174,7 +174,7 @@ namespace WixToolset.Data Directory.CreateDirectory(folder); - entry.ExtractToFile(outputPath); + entry.ExtractToFile(outputPath, overwrite: true); } /// -- cgit v1.2.3-55-g6feb From 35d08c1563f69a1e0bfa47823f82d27120885b94 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 19 Jul 2020 16:16:43 +1000 Subject: WIXFEAT:6204 Add DpiAwareness to WixBootstrapperApplicationSymbol. --- .../Symbols/WixBootstrapperApplicationSymbol.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs index 3d7876fd..d49e9503 100644 --- a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs @@ -10,6 +10,7 @@ namespace WixToolset.Data SymbolDefinitionType.WixBootstrapperApplication, new IntermediateFieldDefinition[] { + new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationSymbolFields.DpiAwareness), IntermediateFieldType.Number), }, typeof(WixBootstrapperApplicationSymbol)); } @@ -19,6 +20,16 @@ namespace WixToolset.Data.Symbols { public enum WixBootstrapperApplicationSymbolFields { + DpiAwareness, + } + + public enum WixBootstrapperApplicationDpiAwarenessType + { + Unaware, + System, + PerMonitor, + PerMonitorV2, + GdiScaled, } public class WixBootstrapperApplicationSymbol : IntermediateSymbol @@ -32,5 +43,11 @@ namespace WixToolset.Data.Symbols } public IntermediateField this[WixBootstrapperApplicationSymbolFields index] => this.Fields[(int)index]; + + public WixBootstrapperApplicationDpiAwarenessType DpiAwareness + { + get => (WixBootstrapperApplicationDpiAwarenessType)this.Fields[(int)WixBootstrapperApplicationSymbolFields.DpiAwareness].AsNumber(); + set => this.Set((int)WixBootstrapperApplicationSymbolFields.DpiAwareness, (int)value); + } } } -- cgit v1.2.3-55-g6feb From 832f4a076dbb9290a90057ccd98ba73288ac90f8 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 21 Jul 2020 14:20:55 -0700 Subject: Introduce symbols for standard directories --- .../WindowsInstaller/WindowsInstallerStandard.cs | 83 +++++++++++++--------- 1 file changed, 49 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index c3cde117..0b40336b 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -11,38 +11,7 @@ namespace WixToolset.Data.WindowsInstaller { private static readonly Dictionary standardActionsById; private static readonly HashSet standardActionNames; - - private static readonly HashSet standardDirectories = new HashSet - { - "TARGETDIR", - "AdminToolsFolder", - "AppDataFolder", - "CommonAppDataFolder", - "CommonFilesFolder", - "DesktopFolder", - "FavoritesFolder", - "FontsFolder", - "LocalAppDataFolder", - "MyPicturesFolder", - "PersonalFolder", - "ProgramFilesFolder", - "ProgramMenuFolder", - "SendToFolder", - "StartMenuFolder", - "StartupFolder", - "System16Folder", - "SystemFolder", - "TempFolder", - "TemplateFolder", - "WindowsFolder", - "CommonFiles64Folder", - "ProgramFiles64Folder", - "System64Folder", - "NetHoodFolder", - "PrintHoodFolder", - "RecentFolder", - "WindowsVolume", - }; + private static readonly Dictionary standardDirectoriesById; /// /// References: @@ -395,8 +364,44 @@ namespace WixToolset.Data.WindowsInstaller new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, }; + var standardDirectories = new[] + { + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TARGETDIR")) { Name = "SourceDir" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "AdminToolsFolder")) { Name = "Admin" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "AppDataFolder")) { Name = "AppData" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonAppDataFolder")) { Name = "CommApp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFilesFolder")) { Name = "CFiles" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFiles64Folder")) { Name = "CFiles64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFiles6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "DesktopFolder")) { Name = "Desktop" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "FavoritesFolder")) { Name = "Favs" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "FontsFolder")) { Name = "Fonts" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "LocalAppDataFolder")) { Name = "LocalApp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "MyPicturesFolder")) { Name = "Pictures" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "NetHoodFolder")) { Name = "NetHood" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "PersonalFolder")) { Name = "Personal" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "PrintHoodFolder")) { Name = "Printers" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFilesFolder")) { Name = "PFiles" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFiles64Folder")) { Name = "PFiles64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFiles6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramMenuFolder")) { Name = "PMenu" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "RecentFolder")) { Name = "Recent" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "SendToFolder")) { Name = "SendTo" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "StartMenuFolder")) { Name = "StrtMenu" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "StartupFolder")) { Name = "StartUp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "SystemFolder")) { Name = "System" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System16Folder")) { Name = "System16" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System64Folder")) { Name = "System64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TempFolder")) { Name = "Temp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TemplateFolder")) { Name = "Template" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "WindowsFolder")) { Name = "Windows" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Public, "WindowsVolume")) { Name = "WinVol" }, + }; + standardActionNames = new HashSet(standardActions.Select(a => a.Action)); standardActionsById = standardActions.ToDictionary(a => a.Id.Id); + standardDirectoriesById = standardDirectories.ToDictionary(d => d.Id.Id); } /// @@ -411,12 +416,17 @@ namespace WixToolset.Data.WindowsInstaller /// public static IEnumerable StandardActions() => standardActionsById.Values; + /// + /// Standard directories. + /// + public static IEnumerable StandardDirectories() => standardDirectoriesById.Values; + /// /// Find out if a directory is a standard directory. /// - /// Name of the directory. + /// Name of the directory. /// true if the directory is standard, false otherwise. - public static bool IsStandardDirectory(string directoryName) => standardDirectories.Contains(directoryName); + public static bool IsStandardDirectory(string directoryId) => standardDirectoriesById.ContainsKey(directoryId); /// /// Find out if a property is a standard property. @@ -434,5 +444,10 @@ namespace WixToolset.Data.WindowsInstaller /// Try to get standard action by sequence and action name. /// public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); + + /// + /// Try to get standard directory symbol by id. + /// + public static bool TryGetStandardDirectory(string directoryId, out DirectorySymbol symbol) => standardDirectoriesById.TryGetValue(directoryId, out symbol); } } -- cgit v1.2.3-55-g6feb From 7a6445ddf8d67c1308c0e3f20bf7470cc9baf61c Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 21 Jul 2020 14:21:30 -0700 Subject: Support platform specific directory id names --- .../WindowsInstaller/WindowsInstallerStandard.cs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 0b40336b..74790915 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -421,6 +421,31 @@ namespace WixToolset.Data.WindowsInstaller /// public static IEnumerable StandardDirectories() => standardDirectoriesById.Values; + /// + /// Gets the platform specific directory id for a directory. Most directories are not platform + /// specific and return themselves. + /// + /// Directory id to get platform specific. + /// Platform to use. + /// Platform specific directory id. + public static string GetPlatformSpecificDirectoryId(string directoryId, Platform platform) + { + switch (directoryId) + { + case "CommonFiles6432Folder": + return platform == Platform.X86 || platform == Platform.ARM ? "CommonFilesFolder" : "CommonFiles64Folder"; + + case "ProgramFiles6432Folder": + return platform == Platform.X86 || platform == Platform.ARM ? "ProgramFilesFolder" : "ProgramFiles64Folder"; + + case "System6432Folder": + return platform == Platform.X86 || platform == Platform.ARM ? "SystemFolder" : "System64Folder"; + + default: + return directoryId; + } + } + /// /// Find out if a directory is a standard directory. /// -- cgit v1.2.3-55-g6feb From e2b9ee292ecb8fd23843f815600817cba7438b2a Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 21 Jul 2020 14:21:53 -0700 Subject: Move SymbolWithSection to internal implementation detail of Core --- src/WixToolset.Data/SymbolWithSection.cs | 90 -------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 src/WixToolset.Data/SymbolWithSection.cs (limited to 'src') diff --git a/src/WixToolset.Data/SymbolWithSection.cs b/src/WixToolset.Data/SymbolWithSection.cs deleted file mode 100644 index 89a5fccd..00000000 --- a/src/WixToolset.Data/SymbolWithSection.cs +++ /dev/null @@ -1,90 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Linq; - - /// - /// Symbol with section representing a single unique symbol. - /// - public sealed class SymbolWithSection - { - private HashSet possibleConflicts; - private HashSet redundants; - - /// - /// Creates a symbol for a symbol. - /// - /// Symbol for the symbol - public SymbolWithSection(IntermediateSection section, IntermediateSymbol symbol) - { - this.Symbol = symbol; - this.Section = section; - this.Name = String.Concat(this.Symbol.Definition.Name, ":", this.Symbol.Id.Id); - } - - /// - /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. - /// - /// Accessbility of the symbol. - public AccessModifier Access => this.Symbol.Id.Access; - - /// - /// Gets the name of the symbol. - /// - /// Name of the symbol. - public string Name { get; } - - /// - /// Gets the symbol for this symbol. - /// - /// Symbol for this symbol. - public IntermediateSymbol Symbol { get; } - - /// - /// Gets the section for the symbol. - /// - /// Section for the symbol. - public IntermediateSection Section { get; } - - /// - /// Gets any duplicates of this symbol with sections that are possible conflicts. - /// - public IEnumerable PossiblyConflicts => this.possibleConflicts ?? Enumerable.Empty(); - - /// - /// Gets any duplicates of this symbol with sections that are redundant. - /// - public IEnumerable Redundants => this.redundants ?? Enumerable.Empty(); - - /// - /// Adds a duplicate symbol with sections that is a possible conflict. - /// - /// Symbol with section that is a possible conflict of this symbol. - public void AddPossibleConflict(SymbolWithSection symbolWithSection) - { - if (null == this.possibleConflicts) - { - this.possibleConflicts = new HashSet(); - } - - this.possibleConflicts.Add(symbolWithSection); - } - - /// - /// Adds a duplicate symbol that is redundant. - /// - /// Symbol with section that is redundant of this symbol. - public void AddRedundant(SymbolWithSection symbolWithSection) - { - if (null == this.redundants) - { - this.redundants = new HashSet(); - } - - this.redundants.Add(symbolWithSection); - } - } -} -- cgit v1.2.3-55-g6feb From 3761d820d9407c0417e7ef26386d9d906e1e5329 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 2 Aug 2020 08:26:41 -0600 Subject: Add enum for bundle variable Type. --- src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs | 17 ++++++++++++++--- src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs | 8 +++++--- 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs index 85cf2798..d68ac682 100644 --- a/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs @@ -21,6 +21,8 @@ namespace WixToolset.Data namespace WixToolset.Data.Symbols { + using System; + public enum WixBundleVariableSymbolFields { Value, @@ -29,6 +31,15 @@ namespace WixToolset.Data.Symbols Persisted, } + public enum WixBundleVariableType + { + Unknown, + Formatted, + Numeric, + String, + Version, + } + public class WixBundleVariableSymbol : IntermediateSymbol { public WixBundleVariableSymbol() : base(SymbolDefinitions.WixBundleVariable, null, null) @@ -47,10 +58,10 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundleVariableSymbolFields.Value, value); } - public string Type + public WixBundleVariableType Type { - get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Type]; - set => this.Set((int)WixBundleVariableSymbolFields.Type, value); + get => Enum.TryParse((string)this.Fields[(int)WixBundleVariableSymbolFields.Type], true, out WixBundleVariableType value) ? value : WixBundleVariableType.Unknown; + set => this.Set((int)WixBundleVariableSymbolFields.Type, value.ToString().ToLowerInvariant()); } public bool Hidden diff --git a/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs index 503c328b..05fdf561 100644 --- a/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs @@ -19,6 +19,8 @@ namespace WixToolset.Data namespace WixToolset.Data.Symbols { + using System; + public enum WixSetVariableSymbolFields { Value, @@ -43,10 +45,10 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixSetVariableSymbolFields.Value, value); } - public string Type + public WixBundleVariableType Type { - get => (string)this.Fields[(int)WixSetVariableSymbolFields.Type]; - set => this.Set((int)WixSetVariableSymbolFields.Type, value); + get => Enum.TryParse((string)this.Fields[(int)WixSetVariableSymbolFields.Type], true, out WixBundleVariableType value) ? value : WixBundleVariableType.Unknown; + set => this.Set((int)WixSetVariableSymbolFields.Type, value.ToString().ToLowerInvariant()); } } } -- cgit v1.2.3-55-g6feb From c6779d3cb55a77609db839258e3c1f6db7490a70 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 17 Aug 2020 14:40:39 -0500 Subject: Only target all frameworks in Release --- src/WixToolset.Data/WixToolset.Data.csproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 1f392e66..9f57e2e7 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -3,7 +3,8 @@ - netstandard2.0;net461;net472 + netstandard2.0 + $(TargetFrameworks);net461;net472 7.3 WiX Toolset Data -- cgit v1.2.3-55-g6feb From b2e187154d8c89954a8659c3bd19c3dc89fdfbce Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Fri, 21 Aug 2020 17:12:53 -0400 Subject: Remove serialization classes and add Row.IsColumnNull. --- src/WixToolset.Data/Serialize/CodeDomInterfaces.cs | 96 - src/WixToolset.Data/Serialize/CodeDomReader.cs | 161 - src/WixToolset.Data/Serialize/ElementCollection.cs | 617 - src/WixToolset.Data/Serialize/wix.cs | 57782 ------------------- src/WixToolset.Data/WindowsInstaller/Row.cs | 9 +- 5 files changed, 8 insertions(+), 58657 deletions(-) delete mode 100644 src/WixToolset.Data/Serialize/CodeDomInterfaces.cs delete mode 100644 src/WixToolset.Data/Serialize/CodeDomReader.cs delete mode 100644 src/WixToolset.Data/Serialize/ElementCollection.cs delete mode 100644 src/WixToolset.Data/Serialize/wix.cs (limited to 'src') diff --git a/src/WixToolset.Data/Serialize/CodeDomInterfaces.cs b/src/WixToolset.Data/Serialize/CodeDomInterfaces.cs deleted file mode 100644 index 36a05202..00000000 --- a/src/WixToolset.Data/Serialize/CodeDomInterfaces.cs +++ /dev/null @@ -1,96 +0,0 @@ -// 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. - -namespace WixToolset.Data.Serialize -{ - using System; - using System.Collections; - using System.Xml; - - /// - /// Interface for generated schema elements. - /// - public interface ISchemaElement - { - /// - /// Gets and sets the parent of this element. May be null. - /// - /// An ISchemaElement that has this element as a child. - ISchemaElement ParentElement - { - get; - set; - } - - /// - /// Outputs xml representing this element, including the associated attributes - /// and any nested elements. - /// - /// XmlWriter to be used when outputting the element. - void OutputXml(XmlWriter writer); - } - - /// - /// Interface for generated schema elements. Implemented by elements that have child - /// elements. - /// - public interface IParentElement - { - /// - /// Gets an enumerable collection of the children of this element. - /// - /// An enumerable collection of the children of this element. - IEnumerable Children - { - get; - } - - /// - /// Gets an enumerable collection of the children of this element, filtered - /// by the passed in type. - /// - /// The type of children to retrieve. - IEnumerable this[Type childType] - { - get; - } - - /// - /// Adds a child to this element. - /// - /// Child to add. - void AddChild(ISchemaElement child); - - /// - /// Removes a child from this element. - /// - /// Child to remove. - void RemoveChild(ISchemaElement child); - } - - /// - /// Interface for generated schema elements. Implemented by classes with attributes. - /// - public interface ISetAttributes - { - /// - /// Sets the attribute with the given name to the given value. The value here is - /// a string, and is converted to the strongly-typed version inside this method. - /// - /// The name of the attribute to set. - /// The value to assign to the attribute. - void SetAttribute(string name, string value); - } - - /// - /// Interface for generated schema elements. Implemented by classes with children. - /// - public interface ICreateChildren - { - /// - /// Creates an instance of the child with the passed in name. - /// - /// String matching the element name of the child when represented in XML. - /// An instance of that child. - ISchemaElement CreateChild(string childName); - } -} diff --git a/src/WixToolset.Data/Serialize/CodeDomReader.cs b/src/WixToolset.Data/Serialize/CodeDomReader.cs deleted file mode 100644 index 76013936..00000000 --- a/src/WixToolset.Data/Serialize/CodeDomReader.cs +++ /dev/null @@ -1,161 +0,0 @@ -// 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. - -namespace WixToolset.Data.Serialize -{ - using System; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; - using System.Reflection; - using System.Xml; - - /// - /// Class used for reading XML files in to the CodeDom. - /// - public class CodeDomReader - { - private Assembly[] assemblies; - - /// - /// Creates a new CodeDomReader, using the current assembly. - /// - public CodeDomReader() - { - this.assemblies = new Assembly[] { Assembly.GetExecutingAssembly() }; - } - - /// - /// Creates a new CodeDomReader, and takes in a list of assemblies in which to - /// look for elements. - /// - /// Assemblies in which to look for types that correspond - /// to elements. - public CodeDomReader(Assembly[] assemblies) - { - this.assemblies = assemblies; - } - - /// - /// Loads an XML file into a strongly-typed code dom. - /// - /// File to load into the code dom. - /// The strongly-typed object at the root of the tree. - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")] - public ISchemaElement Load(string filePath) - { - XmlDocument document = new XmlDocument(); - document.Load(filePath); - ISchemaElement schemaElement = null; - - foreach (XmlNode node in document.ChildNodes) - { - XmlElement element = node as XmlElement; - if (element != null) - { - if (schemaElement != null) - { - throw new InvalidOperationException(WixDataStrings.EXP_MultipleRootElementsFoundInFile); - } - - schemaElement = this.CreateObjectFromElement(element); - this.ParseObjectFromElement(schemaElement, element); - } - } - return schemaElement; - } - - /// - /// Sets an attribute on an ISchemaElement. - /// - /// Schema element to set attribute on. - /// Name of the attribute to set. - /// Value to set on the attribute. - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")] - private static void SetAttributeOnObject(ISchemaElement schemaElement, string name, string value) - { - ISetAttributes setAttributes = schemaElement as ISetAttributes; - if (setAttributes == null) - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_ISchemaElementDoesnotImplementISetAttribute, schemaElement.GetType().FullName)); - } - else - { - setAttributes.SetAttribute(name, value); - } - } - - /// - /// Parses an ISchemaElement from the XmlElement. - /// - /// ISchemaElement to fill in. - /// XmlElement to parse from. - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")] - private void ParseObjectFromElement(ISchemaElement schemaElement, XmlElement element) - { - foreach (XmlAttribute attribute in element.Attributes) - { - SetAttributeOnObject(schemaElement, attribute.LocalName, attribute.Value); - } - - foreach (XmlNode node in element.ChildNodes) - { - XmlElement childElement = node as XmlElement; - if (childElement != null) - { - ISchemaElement childSchemaElement = null; - ICreateChildren createChildren = schemaElement as ICreateChildren; - if (createChildren == null) - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_ISchemaElementDoesnotImplementICreateChildren, element.LocalName)); - } - else - { - childSchemaElement = createChildren.CreateChild(childElement.LocalName); - } - - if (childSchemaElement == null) - { - childSchemaElement = this.CreateObjectFromElement(childElement); - if (childSchemaElement == null) - { - throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_XmlElementDoesnotHaveISchemaElement, childElement.LocalName)); - } - } - - this.ParseObjectFromElement(childSchemaElement, childElement); - IParentElement parentElement = (IParentElement)schemaElement; - parentElement.AddChild(childSchemaElement); - } - else - { - XmlText childText = node as XmlText; - if (childText != null) - { - SetAttributeOnObject(schemaElement, "Content", childText.Value); - } - } - } - } - - /// - /// Creates an object from an XML element by digging through the assembly list. - /// - /// XML Element to create an ISchemaElement from. - /// A constructed ISchemaElement. - private ISchemaElement CreateObjectFromElement(XmlElement element) - { - ISchemaElement schemaElement = null; - foreach (Assembly assembly in this.assemblies) - { - foreach (Type type in assembly.GetTypes()) - { - if (type.FullName.EndsWith(element.LocalName, StringComparison.Ordinal) - && typeof(ISchemaElement).IsAssignableFrom(type)) - { - schemaElement = (ISchemaElement)Activator.CreateInstance(type); - } - } - } - return schemaElement; - } - } -} diff --git a/src/WixToolset.Data/Serialize/ElementCollection.cs b/src/WixToolset.Data/Serialize/ElementCollection.cs deleted file mode 100644 index c2236627..00000000 --- a/src/WixToolset.Data/Serialize/ElementCollection.cs +++ /dev/null @@ -1,617 +0,0 @@ -// 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. - -namespace WixToolset.Data.Serialize -{ - using System; - using System.Collections; - using System.Globalization; - - /// - /// Collection used in the CodeDOM for the children of a given element. Provides type-checking - /// on the allowed children to ensure that only allowed types are added. - /// - public class ElementCollection : ICollection, IEnumerable - { - private CollectionType collectionType; - private int totalContainedItems; - private int containersUsed; - private ArrayList items; - - /// - /// Creates a new element collection. - /// - /// Type of the collection to create. - public ElementCollection(CollectionType collectionType) - { - this.collectionType = collectionType; - this.items = new ArrayList(); - } - - /// - /// Enum representing types of XML collections. - /// - public enum CollectionType - { - /// - /// A choice type, corresponding to the XSD choice element. - /// - Choice, - - /// - /// A sequence type, corresponding to the XSD sequence element. - /// - Sequence - } - - /// - /// Gets the type of collection. - /// - /// The type of collection. - public CollectionType Type - { - get { return this.collectionType; } - } - - /// - /// Gets the count of child elements in this collection (counts ISchemaElements, not nested collections). - /// - /// The count of child elements in this collection (counts ISchemaElements, not nested collections). - public int Count - { - get { return this.totalContainedItems; } - } - - /// - /// Gets the flag specifying whether this collection is synchronized. Always returns false. - /// - /// The flag specifying whether this collection is synchronized. Always returns false. - public bool IsSynchronized - { - get { return false; } - } - - /// - /// Gets an object external callers can synchronize on. - /// - /// An object external callers can synchronize on. - public object SyncRoot - { - get { return this; } - } - - /// - /// Adds a child element to this collection. - /// - /// The element to add. - /// Thrown if the child is not of an allowed type. - public void AddElement(ISchemaElement element) - { - foreach (object obj in this.items) - { - bool containerUsed; - - CollectionItem collectionItem = obj as CollectionItem; - if (collectionItem != null) - { - containerUsed = collectionItem.Elements.Count != 0; - if (collectionItem.ElementType.IsAssignableFrom(element.GetType())) - { - collectionItem.AddElement(element); - - if (!containerUsed) - { - this.containersUsed++; - } - - this.totalContainedItems++; - return; - } - - continue; - } - - ElementCollection collection = obj as ElementCollection; - if (collection != null) - { - containerUsed = collection.Count != 0; - - try - { - collection.AddElement(element); - - if (!containerUsed) - { - this.containersUsed++; - } - - this.totalContainedItems++; - return; - } - catch (ArgumentException) - { - // Eat the exception and keep looking. We'll throw our own if we can't find its home. - } - - continue; - } - } - - throw new ArgumentException(String.Format( - CultureInfo.InvariantCulture, - WixDataStrings.EXP_ElementOfTypeIsNotValidForThisCollection, - element.GetType().Name)); - } - - /// - /// Removes a child element from this collection. - /// - /// The element to remove. - /// Thrown if the element is not of an allowed type. - public void RemoveElement(ISchemaElement element) - { - foreach (object obj in this.items) - { - CollectionItem collectionItem = obj as CollectionItem; - if (collectionItem != null) - { - if (collectionItem.ElementType.IsAssignableFrom(element.GetType())) - { - if (collectionItem.Elements.Count == 0) - { - return; - } - - collectionItem.RemoveElement(element); - - if (collectionItem.Elements.Count == 0) - { - this.containersUsed--; - } - - this.totalContainedItems--; - return; - } - - continue; - } - - ElementCollection collection = obj as ElementCollection; - if (collection != null) - { - if (collection.Count == 0) - { - continue; - } - - try - { - collection.RemoveElement(element); - - if (collection.Count == 0) - { - this.containersUsed--; - } - - this.totalContainedItems--; - return; - } - catch (ArgumentException) - { - // Eat the exception and keep looking. We'll throw our own if we can't find its home. - } - - continue; - } - } - - throw new ArgumentException(String.Format( - CultureInfo.InvariantCulture, - WixDataStrings.EXP_ElementOfTypeIsNotValidForThisCollection, - element.GetType().Name)); - } - - /// - /// Copies this collection to an array. - /// - /// Array to copy to. - /// Offset into the array. - public void CopyTo(Array array, int index) - { - int item = 0; - foreach (ISchemaElement element in this) - { - array.SetValue(element, (long)(item + index)); - item++; - } - } - - /// - /// Creates an enumerator for walking the elements in this collection. - /// - /// A newly created enumerator. - public IEnumerator GetEnumerator() - { - return new ElementCollectionEnumerator(this); - } - - /// - /// Gets an enumerable collection of children of a given type. - /// - /// Type of children to get. - /// A collection of children. - /// Thrown if the type isn't a valid child type. - public IEnumerable Filter(Type childType) - { - foreach (object container in this.items) - { - CollectionItem collectionItem = container as CollectionItem; - if (collectionItem != null) - { - if (collectionItem.ElementType.IsAssignableFrom(childType)) - { - return collectionItem.Elements; - } - - continue; - } - - ElementCollection elementCollection = container as ElementCollection; - if (elementCollection != null) - { - IEnumerable nestedFilter = elementCollection.Filter(childType); - if (nestedFilter != null) - { - return nestedFilter; - } - - continue; - } - } - - throw new ArgumentException(String.Format( - CultureInfo.InvariantCulture, - WixDataStrings.EXP_TypeIsNotValidForThisCollection, - childType.Name)); - } - - /// - /// Adds a type to this collection. - /// - /// CollectionItem representing the type to add. - public void AddItem(CollectionItem collectionItem) - { - this.items.Add(collectionItem); - } - - /// - /// Adds a nested collection to this collection. - /// - /// ElementCollection to add. - public void AddCollection(ElementCollection collection) - { - this.items.Add(collection); - } - - /// - /// Class used to represent a given type in the child collection of an element. Abstract, - /// has subclasses for choice and sequence (which can do cardinality checks). - /// - public abstract class CollectionItem - { - private Type elementType; - private ArrayList elements; - - /// - /// Creates a new CollectionItem for the given element type. - /// - /// Type of the element for this collection item. - protected CollectionItem(Type elementType) - { - this.elementType = elementType; - this.elements = new ArrayList(); - } - - /// - /// Gets the type of this collection's items. - /// - /// The type of this collection's items. - public Type ElementType - { - get { return this.elementType; } - } - - /// - /// Gets the elements of this collection. - /// - /// The elements of this collection. - public ArrayList Elements - { - get { return this.elements; } - } - - /// - /// Adds an element to this collection. Must be of an assignable type to the collection's - /// type. - /// - /// The element to add. - /// Thrown if the type isn't assignable to the collection's type. - public void AddElement(ISchemaElement element) - { - if (!this.elementType.IsAssignableFrom(element.GetType())) - { - throw new ArgumentException( - String.Format( - CultureInfo.InvariantCulture, - WixDataStrings.EXP_ElementIsSubclassOfDifferentType, - this.elementType.Name, - element.GetType().Name), - "element"); - } - - this.elements.Add(element); - } - - /// - /// Removes an element from this collection. - /// - /// The element to remove. - /// Thrown if the element's type isn't assignable to the collection's type. - public void RemoveElement(ISchemaElement element) - { - if (!this.elementType.IsAssignableFrom(element.GetType())) - { - throw new ArgumentException( - String.Format( - CultureInfo.InvariantCulture, - WixDataStrings.EXP_ElementIsSubclassOfDifferentType, - this.elementType.Name, - element.GetType().Name), - "element"); - } - - this.elements.Remove(element); - } - } - - /// - /// Class representing a choice item. Doesn't do cardinality checks. - /// - public class ChoiceItem : CollectionItem - { - /// - /// Creates a new choice item. - /// - /// Type of the created item. - public ChoiceItem(Type elementType) - : base(elementType) - { - } - } - - /// - /// Class representing a sequence item. Can do cardinality checks, if required. - /// - public class SequenceItem : CollectionItem - { - /// - /// Creates a new sequence item. - /// - /// Type of the created item. - public SequenceItem(Type elementType) - : base(elementType) - { - } - } - - /// - /// Enumerator for the ElementCollection. - /// - private class ElementCollectionEnumerator : IEnumerator - { - private ElementCollection collection; - private Stack collectionStack; - - /// - /// Creates a new ElementCollectionEnumerator. - /// - /// The collection to create an enumerator for. - public ElementCollectionEnumerator(ElementCollection collection) - { - this.collection = collection; - } - - /// - /// Gets the current object from the enumerator. - /// - public object Current - { - get - { - if (this.collectionStack != null && this.collectionStack.Count > 0) - { - CollectionSymbol symbol = (CollectionSymbol)this.collectionStack.Peek(); - object container = symbol.Collection.items[symbol.ContainerIndex]; - - CollectionItem collectionItem = container as CollectionItem; - if (collectionItem != null) - { - return collectionItem.Elements[symbol.ItemIndex]; - } - - throw new InvalidOperationException(String.Format( - CultureInfo.InvariantCulture, - WixDataStrings.EXP_ElementMustBeChoiceItemOrSequenceItem, - container.GetType().Name)); - } - - return null; - } - } - - /// - /// Resets the enumerator to the beginning. - /// - public void Reset() - { - if (this.collectionStack != null) - { - this.collectionStack.Clear(); - this.collectionStack = null; - } - } - - /// - /// Moves the enumerator to the next item. - /// - /// True if there is a next item, false otherwise. - public bool MoveNext() - { - if (this.collectionStack == null) - { - if (this.collection.Count == 0) - { - return false; - } - - this.collectionStack = new Stack(); - this.collectionStack.Push(new CollectionSymbol(this.collection)); - } - - CollectionSymbol symbol = (CollectionSymbol)this.collectionStack.Peek(); - - if (this.FindNext(symbol)) - { - return true; - } - - this.collectionStack.Pop(); - if (this.collectionStack.Count == 0) - { - return false; - } - - return this.MoveNext(); - } - - /// - /// Pushes a collection onto the stack. - /// - /// The collection to push. - private void PushCollection(ElementCollection elementCollection) - { - if (elementCollection.Count <= 0) - { - throw new ArgumentException(String.Format( - CultureInfo.InvariantCulture, - WixDataStrings.EXP_CollectionMustHaveAtLeastOneElement, - elementCollection.Count)); - } - - CollectionSymbol symbol = new CollectionSymbol(elementCollection); - this.collectionStack.Push(symbol); - this.FindNext(symbol); - } - - /// - /// Finds the next item from a given symbol. - /// - /// The symbol to start looking from. - /// True if a next element is found, false otherwise. - private bool FindNext(CollectionSymbol symbol) - { - object container = symbol.Collection.items[symbol.ContainerIndex]; - - CollectionItem collectionItem = container as CollectionItem; - if (collectionItem != null) - { - if (symbol.ItemIndex + 1 < collectionItem.Elements.Count) - { - symbol.ItemIndex++; - return true; - } - } - - ElementCollection elementCollection = container as ElementCollection; - if (elementCollection != null && elementCollection.Count > 0 && symbol.ItemIndex == -1) - { - symbol.ItemIndex++; - this.PushCollection(elementCollection); - return true; - } - - symbol.ItemIndex = 0; - - for (int i = symbol.ContainerIndex + 1; i < symbol.Collection.items.Count; ++i) - { - object nestedContainer = symbol.Collection.items[i]; - - CollectionItem nestedCollectionItem = nestedContainer as CollectionItem; - if (nestedCollectionItem != null) - { - if (nestedCollectionItem.Elements.Count > 0) - { - symbol.ContainerIndex = i; - return true; - } - } - - ElementCollection nestedElementCollection = nestedContainer as ElementCollection; - if (nestedElementCollection != null && nestedElementCollection.Count > 0) - { - symbol.ContainerIndex = i; - this.PushCollection(nestedElementCollection); - return true; - } - } - - return false; - } - - /// - /// Class representing a single point in the collection. Consists of an ElementCollection, - /// a container index, and an index into the container. - /// - private class CollectionSymbol - { - private ElementCollection collection; - private int containerIndex; - private int itemIndex = -1; - - /// - /// Creates a new CollectionSymbol. - /// - /// The collection for the symbol. - public CollectionSymbol(ElementCollection collection) - { - this.collection = collection; - } - - /// - /// Gets the collection for the symbol. - /// - public ElementCollection Collection - { - get { return this.collection; } - } - - /// - /// Gets and sets the index of the container in the collection. - /// - public int ContainerIndex - { - get { return this.containerIndex; } - set { this.containerIndex = value; } - } - - /// - /// Gets and sets the index of the item in the container. - /// - public int ItemIndex - { - get { return this.itemIndex; } - set { this.itemIndex = value; } - } - } - } - } -} diff --git a/src/WixToolset.Data/Serialize/wix.cs b/src/WixToolset.Data/Serialize/wix.cs deleted file mode 100644 index 478159ab..00000000 --- a/src/WixToolset.Data/Serialize/wix.cs +++ /dev/null @@ -1,57782 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WixToolset.Data.Serialize -{ - using System; - using System.CodeDom.Compiler; - using System.Collections; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; - using System.Xml; - - - /// - /// Values of this type will either be "attached" or "detached". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum BurnContainerType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - attached, - - detached, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Enums - { - - /// - /// Parses a BurnContainerType from a string. - /// - public static BurnContainerType ParseBurnContainerType(string value) - { - BurnContainerType parsedValue; - Enums.TryParseBurnContainerType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a BurnContainerType from a string. - /// - public static bool TryParseBurnContainerType(string value, out BurnContainerType parsedValue) - { - parsedValue = BurnContainerType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("attached" == value)) - { - parsedValue = BurnContainerType.attached; - } - else - { - if (("detached" == value)) - { - parsedValue = BurnContainerType.detached; - } - else - { - parsedValue = BurnContainerType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a BurnExeProtocolType from a string. - /// - public static BurnExeProtocolType ParseBurnExeProtocolType(string value) - { - BurnExeProtocolType parsedValue; - Enums.TryParseBurnExeProtocolType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a BurnExeProtocolType from a string. - /// - public static bool TryParseBurnExeProtocolType(string value, out BurnExeProtocolType parsedValue) - { - parsedValue = BurnExeProtocolType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("none" == value)) - { - parsedValue = BurnExeProtocolType.none; - } - else - { - if (("burn" == value)) - { - parsedValue = BurnExeProtocolType.burn; - } - else - { - if (("netfx4" == value)) - { - parsedValue = BurnExeProtocolType.netfx4; - } - else - { - parsedValue = BurnExeProtocolType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a YesNoType from a string. - /// - public static YesNoType ParseYesNoType(string value) - { - YesNoType parsedValue; - Enums.TryParseYesNoType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoType from a string. - /// - public static bool TryParseYesNoType(string value, out YesNoType parsedValue) - { - parsedValue = YesNoType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("no" == value)) - { - parsedValue = YesNoType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoType.yes; - } - else - { - parsedValue = YesNoType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a YesNoButtonType from a string. - /// - public static YesNoButtonType ParseYesNoButtonType(string value) - { - YesNoButtonType parsedValue; - Enums.TryParseYesNoButtonType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoButtonType from a string. - /// - public static bool TryParseYesNoButtonType(string value, out YesNoButtonType parsedValue) - { - parsedValue = YesNoButtonType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("no" == value)) - { - parsedValue = YesNoButtonType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoButtonType.yes; - } - else - { - if (("button" == value)) - { - parsedValue = YesNoButtonType.button; - } - else - { - parsedValue = YesNoButtonType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a YesNoDefaultType from a string. - /// - public static YesNoDefaultType ParseYesNoDefaultType(string value) - { - YesNoDefaultType parsedValue; - Enums.TryParseYesNoDefaultType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoDefaultType from a string. - /// - public static bool TryParseYesNoDefaultType(string value, out YesNoDefaultType parsedValue) - { - parsedValue = YesNoDefaultType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("default" == value)) - { - parsedValue = YesNoDefaultType.@default; - } - else - { - if (("no" == value)) - { - parsedValue = YesNoDefaultType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoDefaultType.yes; - } - else - { - parsedValue = YesNoDefaultType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a YesNoAlwaysType from a string. - /// - public static YesNoAlwaysType ParseYesNoAlwaysType(string value) - { - YesNoAlwaysType parsedValue; - Enums.TryParseYesNoAlwaysType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a YesNoAlwaysType from a string. - /// - public static bool TryParseYesNoAlwaysType(string value, out YesNoAlwaysType parsedValue) - { - parsedValue = YesNoAlwaysType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("always" == value)) - { - parsedValue = YesNoAlwaysType.always; - } - else - { - if (("no" == value)) - { - parsedValue = YesNoAlwaysType.no; - } - else - { - if (("yes" == value)) - { - parsedValue = YesNoAlwaysType.yes; - } - else - { - parsedValue = YesNoAlwaysType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a RegistryRootType from a string. - /// - public static RegistryRootType ParseRegistryRootType(string value) - { - RegistryRootType parsedValue; - Enums.TryParseRegistryRootType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a RegistryRootType from a string. - /// - public static bool TryParseRegistryRootType(string value, out RegistryRootType parsedValue) - { - parsedValue = RegistryRootType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("HKMU" == value)) - { - parsedValue = RegistryRootType.HKMU; - } - else - { - if (("HKCR" == value)) - { - parsedValue = RegistryRootType.HKCR; - } - else - { - if (("HKCU" == value)) - { - parsedValue = RegistryRootType.HKCU; - } - else - { - if (("HKLM" == value)) - { - parsedValue = RegistryRootType.HKLM; - } - else - { - if (("HKU" == value)) - { - parsedValue = RegistryRootType.HKU; - } - else - { - parsedValue = RegistryRootType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ExitType from a string. - /// - public static ExitType ParseExitType(string value) - { - ExitType parsedValue; - Enums.TryParseExitType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ExitType from a string. - /// - public static bool TryParseExitType(string value, out ExitType parsedValue) - { - parsedValue = ExitType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("success" == value)) - { - parsedValue = ExitType.success; - } - else - { - if (("cancel" == value)) - { - parsedValue = ExitType.cancel; - } - else - { - if (("error" == value)) - { - parsedValue = ExitType.error; - } - else - { - if (("suspend" == value)) - { - parsedValue = ExitType.suspend; - } - else - { - parsedValue = ExitType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a InstallUninstallType from a string. - /// - public static InstallUninstallType ParseInstallUninstallType(string value) - { - InstallUninstallType parsedValue; - Enums.TryParseInstallUninstallType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallUninstallType from a string. - /// - public static bool TryParseInstallUninstallType(string value, out InstallUninstallType parsedValue) - { - parsedValue = InstallUninstallType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("install" == value)) - { - parsedValue = InstallUninstallType.install; - } - else - { - if (("uninstall" == value)) - { - parsedValue = InstallUninstallType.uninstall; - } - else - { - if (("both" == value)) - { - parsedValue = InstallUninstallType.both; - } - else - { - parsedValue = InstallUninstallType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a SequenceType from a string. - /// - public static SequenceType ParseSequenceType(string value) - { - SequenceType parsedValue; - Enums.TryParseSequenceType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a SequenceType from a string. - /// - public static bool TryParseSequenceType(string value, out SequenceType parsedValue) - { - parsedValue = SequenceType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("both" == value)) - { - parsedValue = SequenceType.both; - } - else - { - if (("first" == value)) - { - parsedValue = SequenceType.first; - } - else - { - if (("execute" == value)) - { - parsedValue = SequenceType.execute; - } - else - { - if (("ui" == value)) - { - parsedValue = SequenceType.ui; - } - else - { - parsedValue = SequenceType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a CompressionLevelType from a string. - /// - public static CompressionLevelType ParseCompressionLevelType(string value) - { - CompressionLevelType parsedValue; - Enums.TryParseCompressionLevelType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a CompressionLevelType from a string. - /// - public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) - { - parsedValue = CompressionLevelType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("high" == value)) - { - parsedValue = CompressionLevelType.high; - } - else - { - if (("low" == value)) - { - parsedValue = CompressionLevelType.low; - } - else - { - if (("medium" == value)) - { - parsedValue = CompressionLevelType.medium; - } - else - { - if (("mszip" == value)) - { - parsedValue = CompressionLevelType.mszip; - } - else - { - if (("none" == value)) - { - parsedValue = CompressionLevelType.none; - } - else - { - parsedValue = CompressionLevelType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - } - - /// - /// The list of communcation protocols with executable packages Burn supports. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum BurnExeProtocolType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The executable package does not support a communication protocol. - /// - none, - - /// - /// The executable package is another Burn bundle and supports the Burn communication protocol. - /// - burn, - - /// - /// The executable package implements the .NET Framework v4.0 communication protocol. - /// - netfx4, - } - - /// - /// Values of this type will either be "yes" or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - no, - - yes, - } - - /// - /// Values of this type will either be "button", "yes" or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoButtonType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - no, - - yes, - - button, - } - - /// - /// Values of this type will either be "default", "yes", or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoDefaultType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - @default, - - no, - - yes, - } - - /// - /// Values of this type will either be "always", "yes", or "no". - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum YesNoAlwaysType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - always, - - no, - - yes, - } - - /// - /// Values of this type represent possible registry roots. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum RegistryRootType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// A per-user installation will make the operation occur under HKEY_CURRENT_USER. - /// A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE. - /// - HKMU, - - /// - /// Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value - /// from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems, - /// the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations. - /// - HKCR, - - /// - /// Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values - /// in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer. - /// - HKCU, - - /// - /// Operation occurs under HKEY_LOCAL_MACHINE. - /// - HKLM, - - /// - /// Operation occurs under HKEY_USERS. - /// - HKU, - } - - /// - /// Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action. - /// Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ExitType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - success, - - cancel, - - error, - - suspend, - } - - /// - /// Specifies whether an action occur on install, uninstall or both. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallUninstallType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The action should happen during install (msiInstallStateLocal or msiInstallStateSource). - /// - install, - - /// - /// The action should happen during uninstall (msiInstallStateAbsent). - /// - uninstall, - - /// - /// The action should happen during both install and uninstall. - /// - both, - } - - /// - /// Controls which sequences the item assignment is sequenced in. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum SequenceType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Schedules the assignment in the InstallUISequence and the InstallExecuteSequence. - /// - both, - - /// - /// Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped. - /// - first, - - /// - /// Schedules the assignment only in the the InstallExecuteSequence. - /// - execute, - - /// - /// Schedules the assignment only in the the InstallUISequence. - /// - ui, - } - - /// - /// Indicates the compression level for a cabinet. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum CompressionLevelType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - high, - - low, - - medium, - - mszip, - - none, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public abstract class ActionModuleSequenceType : ISchemaElement, ISetAttributes - { - - private string afterField; - - private bool afterFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private YesNoType suppressField; - - private bool suppressFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of an action that this action should come after. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The name of an action that this action should come before. - /// - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - /// - /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - /// - /// A value used to indicate the position of this action in a sequence. - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// If yes, this action will not occur. - /// - public YesNoType Suppress - { - get - { - return this.suppressField; - } - set - { - this.suppressFieldSet = true; - this.suppressField = value; - } - } - - /// - /// Text node specifies the condition of the action. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.suppressFieldSet) - { - if ((this.suppressField == YesNoType.no)) - { - writer.WriteAttributeString("Suppress", "no"); - } - if ((this.suppressField == YesNoType.yes)) - { - writer.WriteAttributeString("Suppress", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Suppress" == name)) - { - this.suppressField = Enums.ParseYesNoType(value); - this.suppressFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public abstract class ActionSequenceType : ISchemaElement, ISetAttributes - { - - private int sequenceField; - - private bool sequenceFieldSet; - - private YesNoType suppressField; - - private bool suppressFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// A value used to indicate the position of this action in a sequence. - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// If yes, this action will not occur. - /// - public YesNoType Suppress - { - get - { - return this.suppressField; - } - set - { - this.suppressFieldSet = true; - this.suppressField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.suppressFieldSet) - { - if ((this.suppressField == YesNoType.no)) - { - writer.WriteAttributeString("Suppress", "no"); - } - if ((this.suppressField == YesNoType.yes)) - { - writer.WriteAttributeString("Suppress", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Suppress" == name)) - { - this.suppressField = Enums.ParseYesNoType(value); - this.suppressFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// This is the top-level container element for every wxs file. Among the possible children, - /// the Bundle, Product, Module, Patch, and PatchCreation elements are analogous to the main function in a C program. - /// There can only be one of these present when linking occurs. Product compiles into an msi file, - /// Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element - /// is an atomic unit which ultimately links into either a Product, Module, or PatchCreation. The - /// Fragment can either be completely included or excluded during linking. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Wix : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string requiredVersionField; - - private bool requiredVersionFieldSet; - - private ISchemaElement parentElement; - - public Wix() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Bundle))); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Product))); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Module))); - childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Patch))); - childCollection1.AddCollection(childCollection2); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(Fragment))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCreation))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Required version of the WiX toolset to compile this input file. - /// - public string RequiredVersion - { - get - { - return this.requiredVersionField; - } - set - { - this.requiredVersionFieldSet = true; - this.requiredVersionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Bundle" == childName)) - { - childValue = new Bundle(); - } - if (("Product" == childName)) - { - childValue = new Product(); - } - if (("Module" == childName)) - { - childValue = new Module(); - } - if (("Patch" == childName)) - { - childValue = new Patch(); - } - if (("Fragment" == childName)) - { - childValue = new Fragment(); - } - if (("PatchCreation" == childName)) - { - childValue = new PatchCreation(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Wix", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.requiredVersionFieldSet) - { - writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("RequiredVersion" == name)) - { - this.requiredVersionField = value; - this.requiredVersionFieldSet = true; - } - } - } - - /// - /// This is the top-level container element for every wxi file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Include : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public Include() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Include", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// The root element for creating bundled packages. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Bundle : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string aboutUrlField; - - private bool aboutUrlFieldSet; - - private string copyrightField; - - private bool copyrightFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoButtonType disableModifyField; - - private bool disableModifyFieldSet; - - private YesNoType disableRemoveField; - - private bool disableRemoveFieldSet; - - private YesNoType disableRepairField; - - private bool disableRepairFieldSet; - - private string helpTelephoneField; - - private bool helpTelephoneFieldSet; - - private string helpUrlField; - - private bool helpUrlFieldSet; - - private string iconSourceFileField; - - private bool iconSourceFileFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string parentNameField; - - private bool parentNameFieldSet; - - private string splashScreenSourceFileField; - - private bool splashScreenSourceFileFieldSet; - - private string tagField; - - private bool tagFieldSet; - - private string updateUrlField; - - private bool updateUrlFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private string conditionField; - - private bool conditionFieldSet; - - private ISchemaElement parentElement; - - public Bundle() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ApprovedExeForElevation))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Log))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Catalog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(OptionalUpdateRegistration))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Chain))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ContainerRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Update))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// A URL for more information about the bundle to display in Programs and Features (also - /// known as Add/Remove Programs). - /// - public string AboutUrl - { - get - { - return this.aboutUrlField; - } - set - { - this.aboutUrlFieldSet = true; - this.aboutUrlField = value; - } - } - - /// - /// The legal copyright found in the version resources of final bundle executable. If - /// this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.". - /// - public string Copyright - { - get - { - return this.copyrightField; - } - set - { - this.copyrightFieldSet = true; - this.copyrightField = value; - } - } - - /// - /// Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// Determines whether the bundle can be modified via the Programs and Features (also known as - /// Add/Remove Programs). If the value is "button" then Programs and Features will show a single - /// "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show - /// the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown. - /// See the DisableRemove attribute for information how to not display the bundle in Programs - /// and Features. - /// - public YesNoButtonType DisableModify - { - get - { - return this.disableModifyField; - } - set - { - this.disableModifyFieldSet = true; - this.disableModifyField = value; - } - } - - /// - /// Determines whether the bundle can be removed via the Programs and Features (also - /// known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will - /// not be displayed. The default is "no" which ensures there is an "Uninstall" button to - /// remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the - /// bundle will not be displayed in Progams and Features and another mechanism (such as - /// registering as a related bundle addon) must be used to ensure the bundle can be removed. - /// - public YesNoType DisableRemove - { - get - { - return this.disableRemoveField; - } - set - { - this.disableRemoveFieldSet = true; - this.disableRemoveField = value; - } - } - - public YesNoType DisableRepair - { - get - { - return this.disableRepairField; - } - set - { - this.disableRepairFieldSet = true; - this.disableRepairField = value; - } - } - - /// - /// A telephone number for help to display in Programs and Features (also known as - /// Add/Remove Programs). - /// - public string HelpTelephone - { - get - { - return this.helpTelephoneField; - } - set - { - this.helpTelephoneFieldSet = true; - this.helpTelephoneField = value; - } - } - - /// - /// A URL to the help for the bundle to display in Programs and Features (also known as - /// Add/Remove Programs). - /// - public string HelpUrl - { - get - { - return this.helpUrlField; - } - set - { - this.helpUrlFieldSet = true; - this.helpUrlField = value; - } - } - - /// - /// Path to an icon that will replace the default icon in the final Bundle executable. - /// This icon will also be displayed in Programs and Features (also known as Add/Remove - /// Programs). - /// - public string IconSourceFile - { - get - { - return this.iconSourceFileField; - } - set - { - this.iconSourceFileFieldSet = true; - this.iconSourceFileField = value; - } - } - - /// - /// The publisher of the bundle to display in Programs and Features (also known as - /// Add/Remove Programs). - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The name of the bundle to display in Programs and Features (also known as Add/Remove - /// Programs). This name can be accessed and overwritten by a BootstrapperApplication - /// using the WixBundleName bundle variable. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The name of the parent bundle to display in Installed Updates (also known as Add/Remove - /// Programs). This name is used to nest or group bundles that will appear as updates. - /// If the parent name does not actually exist, a virtual parent is created automatically. - /// - public string ParentName - { - get - { - return this.parentNameField; - } - set - { - this.parentNameFieldSet = true; - this.parentNameField = value; - } - } - - /// - /// Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed. - /// - public string SplashScreenSourceFile - { - get - { - return this.splashScreenSourceFileField; - } - set - { - this.splashScreenSourceFileFieldSet = true; - this.splashScreenSourceFileField = value; - } - } - - /// - /// Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality. - /// - public string Tag - { - get - { - return this.tagField; - } - set - { - this.tagFieldSet = true; - this.tagField = value; - } - } - - /// - /// A URL for updates of the bundle to display in Programs and Features (also - /// known as Add/Remove Programs). - /// - public string UpdateUrl - { - get - { - return this.updateUrlField; - } - set - { - this.updateUrlFieldSet = true; - this.updateUrlField = value; - } - } - - /// - /// Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the - /// bundle with the highest version will be installed. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - /// - /// The version of the bundle. Newer versions upgrade earlier versions of the bundles - /// with matching UpgradeCodes. If the bundle is registered in Programs and Features - /// then this attribute will be displayed in the Programs and Features user interface. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - /// - /// The condition of the bundle. If the condition is not met, the bundle will - /// refuse to run. Conditions are checked before the bootstrapper application is loaded - /// (before detect), and thus can only reference built-in variables such as - /// variables which indicate the version of the OS. - /// - public string Condition - { - get - { - return this.conditionField; - } - set - { - this.conditionFieldSet = true; - this.conditionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ApprovedExeForElevation" == childName)) - { - childValue = new ApprovedExeForElevation(); - } - if (("Log" == childName)) - { - childValue = new Log(); - } - if (("Catalog" == childName)) - { - childValue = new Catalog(); - } - if (("BootstrapperApplication" == childName)) - { - childValue = new BootstrapperApplication(); - } - if (("BootstrapperApplicationRef" == childName)) - { - childValue = new BootstrapperApplicationRef(); - } - if (("OptionalUpdateRegistration" == childName)) - { - childValue = new OptionalUpdateRegistration(); - } - if (("Chain" == childName)) - { - childValue = new Chain(); - } - if (("Container" == childName)) - { - childValue = new Container(); - } - if (("ContainerRef" == childName)) - { - childValue = new ContainerRef(); - } - if (("PayloadGroup" == childName)) - { - childValue = new PayloadGroup(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if (("RelatedBundle" == childName)) - { - childValue = new RelatedBundle(); - } - if (("Update" == childName)) - { - childValue = new Update(); - } - if (("Variable" == childName)) - { - childValue = new Variable(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Bundle", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.aboutUrlFieldSet) - { - writer.WriteAttributeString("AboutUrl", this.aboutUrlField); - } - if (this.copyrightFieldSet) - { - writer.WriteAttributeString("Copyright", this.copyrightField); - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.disableModifyFieldSet) - { - if ((this.disableModifyField == YesNoButtonType.no)) - { - writer.WriteAttributeString("DisableModify", "no"); - } - if ((this.disableModifyField == YesNoButtonType.yes)) - { - writer.WriteAttributeString("DisableModify", "yes"); - } - if ((this.disableModifyField == YesNoButtonType.button)) - { - writer.WriteAttributeString("DisableModify", "button"); - } - } - if (this.disableRemoveFieldSet) - { - if ((this.disableRemoveField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRemove", "no"); - } - if ((this.disableRemoveField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRemove", "yes"); - } - } - if (this.disableRepairFieldSet) - { - if ((this.disableRepairField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRepair", "no"); - } - if ((this.disableRepairField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRepair", "yes"); - } - } - if (this.helpTelephoneFieldSet) - { - writer.WriteAttributeString("HelpTelephone", this.helpTelephoneField); - } - if (this.helpUrlFieldSet) - { - writer.WriteAttributeString("HelpUrl", this.helpUrlField); - } - if (this.iconSourceFileFieldSet) - { - writer.WriteAttributeString("IconSourceFile", this.iconSourceFileField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.parentNameFieldSet) - { - writer.WriteAttributeString("ParentName", this.parentNameField); - } - if (this.splashScreenSourceFileFieldSet) - { - writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); - } - if (this.tagFieldSet) - { - writer.WriteAttributeString("Tag", this.tagField); - } - if (this.updateUrlFieldSet) - { - writer.WriteAttributeString("UpdateUrl", this.updateUrlField); - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - if (this.conditionFieldSet) - { - writer.WriteAttributeString("Condition", this.conditionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("AboutUrl" == name)) - { - this.aboutUrlField = value; - this.aboutUrlFieldSet = true; - } - if (("Copyright" == name)) - { - this.copyrightField = value; - this.copyrightFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("DisableModify" == name)) - { - this.disableModifyField = Enums.ParseYesNoButtonType(value); - this.disableModifyFieldSet = true; - } - if (("DisableRemove" == name)) - { - this.disableRemoveField = Enums.ParseYesNoType(value); - this.disableRemoveFieldSet = true; - } - if (("DisableRepair" == name)) - { - this.disableRepairField = Enums.ParseYesNoType(value); - this.disableRepairFieldSet = true; - } - if (("HelpTelephone" == name)) - { - this.helpTelephoneField = value; - this.helpTelephoneFieldSet = true; - } - if (("HelpUrl" == name)) - { - this.helpUrlField = value; - this.helpUrlFieldSet = true; - } - if (("IconSourceFile" == name)) - { - this.iconSourceFileField = value; - this.iconSourceFileFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ParentName" == name)) - { - this.parentNameField = value; - this.parentNameFieldSet = true; - } - if (("SplashScreenSourceFile" == name)) - { - this.splashScreenSourceFileField = value; - this.splashScreenSourceFileFieldSet = true; - } - if (("Tag" == name)) - { - this.tagField = value; - this.tagFieldSet = true; - } - if (("UpdateUrl" == name)) - { - this.updateUrlField = value; - this.updateUrlFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - if (("Condition" == name)) - { - this.conditionField = value; - this.conditionFieldSet = true; - } - } - } - - /// - /// Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ApprovedExeForElevation : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the ApprovedExeForElevation element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The key path. - /// For security purposes, the root key will be HKLM and Variables are not supported. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The value name. - /// For security purposes, Variables are not supported. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Instructs the search to look in the 64-bit registry when the value is 'yes'. - /// When the value is 'no', the search looks in the 32-bit registry. - /// The default value is 'no'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ApprovedExeForElevation", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - } - } - - /// - /// Overrides the default log settings for a bundle. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Log : ISchemaElement, ISetAttributes - { - - private YesNoType disableField; - - private bool disableFieldSet; - - private string pathVariableField; - - private bool pathVariableFieldSet; - - private string prefixField; - - private bool prefixFieldSet; - - private string extensionField; - - private bool extensionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Disables the default logging in the Bundle. The end user can still generate a - /// log file by specifying the "-l" command-line argument when installing the - /// Bundle. - /// - public YesNoType Disable - { - get - { - return this.disableField; - } - set - { - this.disableFieldSet = true; - this.disableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value - /// will cause the variable to not be set. The default is "WixBundleLog". - /// - public string PathVariable - { - get - { - return this.pathVariableField; - } - set - { - this.pathVariableFieldSet = true; - this.pathVariableField = value; - } - } - - /// - /// File name and optionally a relative path to use as the prefix for the log file. The - /// default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value - /// "Setup". - /// - public string Prefix - { - get - { - return this.prefixField; - } - set - { - this.prefixFieldSet = true; - this.prefixField = value; - } - } - - /// - /// The extension to use for the log. The default is ".log". - /// - public string Extension - { - get - { - return this.extensionField; - } - set - { - this.extensionFieldSet = true; - this.extensionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Log", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.disableFieldSet) - { - if ((this.disableField == YesNoType.no)) - { - writer.WriteAttributeString("Disable", "no"); - } - if ((this.disableField == YesNoType.yes)) - { - writer.WriteAttributeString("Disable", "yes"); - } - } - if (this.pathVariableFieldSet) - { - writer.WriteAttributeString("PathVariable", this.pathVariableField); - } - if (this.prefixFieldSet) - { - writer.WriteAttributeString("Prefix", this.prefixField); - } - if (this.extensionFieldSet) - { - writer.WriteAttributeString("Extension", this.extensionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Disable" == name)) - { - this.disableField = Enums.ParseYesNoType(value); - this.disableFieldSet = true; - } - if (("PathVariable" == name)) - { - this.pathVariableField = value; - this.pathVariableFieldSet = true; - } - if (("Prefix" == name)) - { - this.prefixField = value; - this.prefixFieldSet = true; - } - if (("Extension" == name)) - { - this.extensionField = value; - this.extensionFieldSet = true; - } - } - } - - /// - /// Specify one or more catalog files that will be used to verify the contents of the bundle. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Catalog : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the catalog element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The catalog file - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Catalog", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Contains all the relevant information about the setup UI. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BootstrapperApplication : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private ISchemaElement parentElement; - - public BootstrapperApplication() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The DLL with the bootstrapper application entry function. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The relative destination path and file name for the bootstrapper application DLL. The default is the source file name. Use this attribute to rename the bootstrapper application DLL or extract it into a subfolder. The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BootstrapperApplication", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - } - } - - /// - /// Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BootstrapperApplicationRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public BootstrapperApplicationRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the BootstrapperApplication element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BootstrapperApplicationRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// This element has been deprecated. Use the BootstrapperApplication element instead. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UX : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string splashScreenSourceFileField; - - private bool splashScreenSourceFileFieldSet; - - private ISchemaElement parentElement; - - public UX() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// See the BootstrapperApplication instead. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// See the BootstrapperApplication instead. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// See the BootstrapperApplication instead. - /// - public string SplashScreenSourceFile - { - get - { - return this.splashScreenSourceFileField; - } - set - { - this.splashScreenSourceFileFieldSet = true; - this.splashScreenSourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UX", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.splashScreenSourceFileFieldSet) - { - writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SplashScreenSourceFile" == name)) - { - this.splashScreenSourceFileField = value; - this.splashScreenSourceFileFieldSet = true; - } - } - } - - /// - /// Writes additional information to the Windows registry that can be used to detect the bundle. - /// This registration is intended primarily for update to an existing product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class OptionalUpdateRegistration : ISchemaElement, ISetAttributes - { - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string departmentField; - - private bool departmentFieldSet; - - private string productFamilyField; - - private bool productFamilyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string classificationField; - - private bool classificationFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the manufacturer. The default is the Bundle/@Manufacturer attribute, - /// but may also be a short form, ex: Acme instead of Acme Corporation. - /// An error is generated at build time if neither attribute is specified. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The name of the department or division publishing the update bundle. - /// The PublishingGroup registry value is not written if this attribute is not specified. - /// - public string Department - { - get - { - return this.departmentField; - } - set - { - this.departmentFieldSet = true; - this.departmentField = value; - } - } - - /// - /// The name of the family of products being updated. The default is the Bundle/@ParentName attribute. - /// The corresponding registry key is not created if neither attribute is specified. - /// - public string ProductFamily - { - get - { - return this.productFamilyField; - } - set - { - this.productFamilyFieldSet = true; - this.productFamilyField = value; - } - } - - /// - /// The name of the bundle. The default is the Bundle/@Name attribute, - /// but may also be a short form, ex: KB12345 instead of Update to Product (KB12345). - /// An error is generated at build time if neither attribute is specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The release type of the update bundle, such as Update, Security Update, Service Pack, etc. - /// The default value is Update. - /// - public string Classification - { - get - { - return this.classificationField; - } - set - { - this.classificationFieldSet = true; - this.classificationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("OptionalUpdateRegistration", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.departmentFieldSet) - { - writer.WriteAttributeString("Department", this.departmentField); - } - if (this.productFamilyFieldSet) - { - writer.WriteAttributeString("ProductFamily", this.productFamilyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.classificationFieldSet) - { - writer.WriteAttributeString("Classification", this.classificationField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Department" == name)) - { - this.departmentField = value; - this.departmentFieldSet = true; - } - if (("ProductFamily" == name)) - { - this.productFamilyField = value; - this.productFamilyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Classification" == name)) - { - this.classificationField = value; - this.classificationFieldSet = true; - } - } - } - - /// - /// Contains the chain of packages to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Chain : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType disableRollbackField; - - private bool disableRollbackFieldSet; - - private YesNoType disableSystemRestoreField; - - private bool disableSystemRestoreFieldSet; - - private YesNoType parallelCacheField; - - private bool parallelCacheFieldSet; - - private ISchemaElement parentElement; - - public Chain() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Specifies whether the bundle will attempt to rollback packages - /// executed in the chain. If "yes" is specified then when a vital - /// package fails to install only that package will rollback and the - /// chain will stop with the error. The default is "no" which - /// indicates all packages executed during the chain will be - /// rolledback to their previous state when a vital package fails. - /// - public YesNoType DisableRollback - { - get - { - return this.disableRollbackField; - } - set - { - this.disableRollbackFieldSet = true; - this.disableRollbackField = value; - } - } - - /// - /// Specifies whether the bundle will attempt to create a system - /// restore point when executing the chain. If "yes" is specified then - /// a system restore point will not be created. The default is "no" which - /// indicates a system restore point will be created when the bundle is - /// installed, uninstalled, repaired, modified, etc. If the system restore - /// point cannot be created, the bundle will log the issue and continue. - /// - public YesNoType DisableSystemRestore - { - get - { - return this.disableSystemRestoreField; - } - set - { - this.disableSystemRestoreFieldSet = true; - this.disableSystemRestoreField = value; - } - } - - /// - /// Specifies whether the bundle will start installing packages - /// while other packages are still being cached. If "yes", - /// packages will start executing when a rollback boundary is - /// encountered. The default is "no" which dictates all packages - /// must be cached before any packages will start to be installed. - /// - public YesNoType ParallelCache - { - get - { - return this.parallelCacheField; - } - set - { - this.parallelCacheFieldSet = true; - this.parallelCacheField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiPackage" == childName)) - { - childValue = new MsiPackage(); - } - if (("MspPackage" == childName)) - { - childValue = new MspPackage(); - } - if (("MsuPackage" == childName)) - { - childValue = new MsuPackage(); - } - if (("ExePackage" == childName)) - { - childValue = new ExePackage(); - } - if (("RollbackBoundary" == childName)) - { - childValue = new RollbackBoundary(); - } - if (("PackageGroupRef" == childName)) - { - childValue = new PackageGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Chain", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.disableRollbackFieldSet) - { - if ((this.disableRollbackField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRollback", "no"); - } - if ((this.disableRollbackField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRollback", "yes"); - } - } - if (this.disableSystemRestoreFieldSet) - { - if ((this.disableSystemRestoreField == YesNoType.no)) - { - writer.WriteAttributeString("DisableSystemRestore", "no"); - } - if ((this.disableSystemRestoreField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableSystemRestore", "yes"); - } - } - if (this.parallelCacheFieldSet) - { - if ((this.parallelCacheField == YesNoType.no)) - { - writer.WriteAttributeString("ParallelCache", "no"); - } - if ((this.parallelCacheField == YesNoType.yes)) - { - writer.WriteAttributeString("ParallelCache", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("DisableRollback" == name)) - { - this.disableRollbackField = Enums.ParseYesNoType(value); - this.disableRollbackFieldSet = true; - } - if (("DisableSystemRestore" == name)) - { - this.disableSystemRestoreField = Enums.ParseYesNoType(value); - this.disableSystemRestoreFieldSet = true; - } - if (("ParallelCache" == name)) - { - this.parallelCacheField = Enums.ParseYesNoType(value); - this.parallelCacheFieldSet = true; - } - } - } - - /// - /// Describes a single msi package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private YesNoType enableFeatureSelectionField; - - private bool enableFeatureSelectionFieldSet; - - private YesNoType forcePerMachineField; - - private bool forcePerMachineFieldSet; - - private YesNoType suppressLooseFilePayloadGenerationField; - - private bool suppressLooseFilePayloadGenerationFieldSet; - - private YesNoType visibleField; - - private bool visibleFieldSet; - - private ISchemaElement parentElement; - - public MsiPackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SlipstreamMsp))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// Specifies whether the bundle will allow individual control over the installation state of Features inside - /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and - /// uninstall behavior of the package is always correct. The default is "no". - /// - public YesNoType EnableFeatureSelection - { - get - { - return this.enableFeatureSelectionField; - } - set - { - this.enableFeatureSelectionFieldSet = true; - this.enableFeatureSelectionField = value; - } - } - - /// - /// Override the automatic per-machine detection of MSI packages and force the package to be per-machine. - /// The default is "no", which allows the tools to detect the expected value. - /// - public YesNoType ForcePerMachine - { - get - { - return this.forcePerMachineField; - } - set - { - this.forcePerMachineFieldSet = true; - this.forcePerMachineField = value; - } - } - - /// - /// This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package - /// to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads. - /// The resulting Bundle may not be able to install the MSI package correctly. The default is "no". - /// - public YesNoType SuppressLooseFilePayloadGeneration - { - get - { - return this.suppressLooseFilePayloadGenerationField; - } - set - { - this.suppressLooseFilePayloadGenerationFieldSet = true; - this.suppressLooseFilePayloadGenerationField = value; - } - } - - /// - /// Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is - /// specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI - /// will not be displayed. - /// - public YesNoType Visible - { - get - { - return this.visibleField; - } - set - { - this.visibleFieldSet = true; - this.visibleField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiProperty" == childName)) - { - childValue = new MsiProperty(); - } - if (("SlipstreamMsp" == childName)) - { - childValue = new SlipstreamMsp(); - } - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiPackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.enableFeatureSelectionFieldSet) - { - if ((this.enableFeatureSelectionField == YesNoType.no)) - { - writer.WriteAttributeString("EnableFeatureSelection", "no"); - } - if ((this.enableFeatureSelectionField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableFeatureSelection", "yes"); - } - } - if (this.forcePerMachineFieldSet) - { - if ((this.forcePerMachineField == YesNoType.no)) - { - writer.WriteAttributeString("ForcePerMachine", "no"); - } - if ((this.forcePerMachineField == YesNoType.yes)) - { - writer.WriteAttributeString("ForcePerMachine", "yes"); - } - } - if (this.suppressLooseFilePayloadGenerationFieldSet) - { - if ((this.suppressLooseFilePayloadGenerationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "no"); - } - if ((this.suppressLooseFilePayloadGenerationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "yes"); - } - } - if (this.visibleFieldSet) - { - if ((this.visibleField == YesNoType.no)) - { - writer.WriteAttributeString("Visible", "no"); - } - if ((this.visibleField == YesNoType.yes)) - { - writer.WriteAttributeString("Visible", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("EnableFeatureSelection" == name)) - { - this.enableFeatureSelectionField = Enums.ParseYesNoType(value); - this.enableFeatureSelectionFieldSet = true; - } - if (("ForcePerMachine" == name)) - { - this.forcePerMachineField = Enums.ParseYesNoType(value); - this.forcePerMachineFieldSet = true; - } - if (("SuppressLooseFilePayloadGeneration" == name)) - { - this.suppressLooseFilePayloadGenerationField = Enums.ParseYesNoType(value); - this.suppressLooseFilePayloadGenerationFieldSet = true; - } - if (("Visible" == name)) - { - this.visibleField = Enums.ParseYesNoType(value); - this.visibleFieldSet = true; - } - } - } - - /// - /// Describes a single msp package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MspPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private YesNoDefaultType perMachineField; - - private bool perMachineFieldSet; - - private YesNoType slipstreamField; - - private bool slipstreamFieldSet; - - private ISchemaElement parentElement; - - public MspPackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// Indicates the package must be executed elevated. The default is "no". - /// - public YesNoDefaultType PerMachine - { - get - { - return this.perMachineField; - } - set - { - this.perMachineFieldSet = true; - this.perMachineField = value; - } - } - - /// - /// Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no". - /// Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired. - /// - public YesNoType Slipstream - { - get - { - return this.slipstreamField; - } - set - { - this.slipstreamFieldSet = true; - this.slipstreamField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiProperty" == childName)) - { - childValue = new MsiProperty(); - } - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MspPackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.perMachineFieldSet) - { - if ((this.perMachineField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("PerMachine", "default"); - } - if ((this.perMachineField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("PerMachine", "no"); - } - if ((this.perMachineField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("PerMachine", "yes"); - } - } - if (this.slipstreamFieldSet) - { - if ((this.slipstreamField == YesNoType.no)) - { - writer.WriteAttributeString("Slipstream", "no"); - } - if ((this.slipstreamField == YesNoType.yes)) - { - writer.WriteAttributeString("Slipstream", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("PerMachine" == name)) - { - this.perMachineField = Enums.ParseYesNoDefaultType(value); - this.perMachineFieldSet = true; - } - if (("Slipstream" == name)) - { - this.slipstreamField = Enums.ParseYesNoType(value); - this.slipstreamFieldSet = true; - } - } - } - - /// - /// Describes a single msu package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsuPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private string detectConditionField; - - private bool detectConditionFieldSet; - - private string kBField; - - private bool kBFieldSet; - - private ISchemaElement parentElement; - - public MsuPackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// A condition that determines if the package is present on the target system. This condition can use built-in - /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a - /// method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this - /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being - /// installed, Burn will install this package. - /// - public string DetectCondition - { - get - { - return this.detectConditionField; - } - set - { - this.detectConditionFieldSet = true; - this.detectConditionField = value; - } - } - - /// - /// The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to - /// be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute - /// is specified, the Permanent attribute will the control whether the package is uninstalled. - /// - public string KB - { - get - { - return this.kBField; - } - set - { - this.kBFieldSet = true; - this.kBField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if (("RemotePayload" == childName)) - { - childValue = new RemotePayload(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsuPackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.detectConditionFieldSet) - { - writer.WriteAttributeString("DetectCondition", this.detectConditionField); - } - if (this.kBFieldSet) - { - writer.WriteAttributeString("KB", this.kBField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("DetectCondition" == name)) - { - this.detectConditionField = value; - this.detectConditionFieldSet = true; - } - if (("KB" == name)) - { - this.kBField = value; - this.kBFieldSet = true; - } - } - } - - /// - /// Describes a single exe package to install. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExePackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string installSizeField; - - private bool installSizeFieldSet; - - private string installConditionField; - - private bool installConditionFieldSet; - - private YesNoAlwaysType cacheField; - - private bool cacheFieldSet; - - private string cacheIdField; - - private bool cacheIdFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string logPathVariableField; - - private bool logPathVariableFieldSet; - - private string rollbackLogPathVariableField; - - private bool rollbackLogPathVariableFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private string detectConditionField; - - private bool detectConditionFieldSet; - - private string installCommandField; - - private bool installCommandFieldSet; - - private string repairCommandField; - - private bool repairCommandFieldSet; - - private string uninstallCommandField; - - private bool uninstallCommandFieldSet; - - private YesNoDefaultType perMachineField; - - private bool perMachineFieldSet; - - private BurnExeProtocolType protocolField; - - private bool protocolFieldSet; - - private ISchemaElement parentElement; - - public ExePackage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExitCode))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CommandLine))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. - /// At a minimum, the SourceFile or Name attribute must be specified. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this chain payload. Use this attribute to rename the - /// chain entry point or extract it into a subfolder. The default value is the file name from the - /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. - /// The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute - /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of another package that this one should be installed after. By default the After - /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this - /// attribute is specified ensure that a cycle is not created explicitly or implicitly. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The size this package will take on disk in bytes after it is installed. By default, the binder will - /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) - /// and use the total for the install size of the package. - /// - public string InstallSize - { - get - { - return this.installSizeField; - } - set - { - this.installSizeFieldSet = true; - this.installSizeField = value; - } - } - - /// - /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. - /// - public string InstallCondition - { - get - { - return this.installConditionField; - } - set - { - this.installConditionFieldSet = true; - this.installConditionField = value; - } - } - - /// - /// Whether to cache the package. The default is "yes". - /// - public YesNoAlwaysType Cache - { - get - { - return this.cacheField; - } - set - { - this.cacheFieldSet = true; - this.cacheField = value; - } - } - - /// - /// The identifier to use when caching the package. - /// - public string CacheId - { - get - { - return this.cacheIdField; - } - set - { - this.cacheIdFieldSet = true; - this.cacheIdField = value; - } - } - - /// - /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use - /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the - /// bootstrapper application data manifest. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages - /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use - /// the Description patch metadata property. Other package types must use this attribute to define a description in the - /// bootstrapper application data manifest. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not - /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. - /// - public string LogPathVariable - { - get - { - return this.logPathVariableField; - } - set - { - this.logPathVariableFieldSet = true; - this.logPathVariableField = value; - } - } - - /// - /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause - /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which - /// default to no logging. - /// - public string RollbackLogPathVariable - { - get - { - return this.rollbackLogPathVariableField; - } - set - { - this.rollbackLogPathVariableFieldSet = true; - this.rollbackLogPathVariableField = value; - } - } - - /// - /// Specifies whether the package can be uninstalled. The default is "no". - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies whether the package must succeed for the chain to continue. The default "yes" - /// indicates that if the package fails then the chain will fail and rollback or stop. If - /// "no" is specified then the chain will continue even if the package reports failure. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Whether the package payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - /// - /// A condition that determines if the package is present on the target system. This condition can use built-in - /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a - /// method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this - /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being - /// installed, Burn will install this package. - /// - public string DetectCondition - { - get - { - return this.detectConditionField; - } - set - { - this.detectConditionFieldSet = true; - this.detectConditionField = value; - } - } - - /// - /// The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments. - /// - public string InstallCommand - { - get - { - return this.installCommandField; - } - set - { - this.installCommandFieldSet = true; - this.installCommandField = value; - } - } - - /// - /// The command-line arguments to specify to indicate a repair. If the executable package can be repaired but - /// does not require any special command-line arguments to do so then set the attribute's value to blank. To - /// indicate that the package does not support repair, omit this attribute. - /// - public string RepairCommand - { - get - { - return this.repairCommandField; - } - set - { - this.repairCommandFieldSet = true; - this.repairCommandField = value; - } - } - - /// - /// The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes". - /// - public string UninstallCommand - { - get - { - return this.uninstallCommandField; - } - set - { - this.uninstallCommandFieldSet = true; - this.uninstallCommandField = value; - } - } - - /// - /// Indicates the package must be executed elevated. The default is "no". - /// - public YesNoDefaultType PerMachine - { - get - { - return this.perMachineField; - } - set - { - this.perMachineFieldSet = true; - this.perMachineField = value; - } - } - - /// - /// Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none". - /// - public BurnExeProtocolType Protocol - { - get - { - return this.protocolField; - } - set - { - this.protocolFieldSet = true; - this.protocolField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if (("RemotePayload" == childName)) - { - childValue = new RemotePayload(); - } - if (("ExitCode" == childName)) - { - childValue = new ExitCode(); - } - if (("CommandLine" == childName)) - { - childValue = new CommandLine(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExePackage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.installSizeFieldSet) - { - writer.WriteAttributeString("InstallSize", this.installSizeField); - } - if (this.installConditionFieldSet) - { - writer.WriteAttributeString("InstallCondition", this.installConditionField); - } - if (this.cacheFieldSet) - { - if ((this.cacheField == YesNoAlwaysType.always)) - { - writer.WriteAttributeString("Cache", "always"); - } - if ((this.cacheField == YesNoAlwaysType.no)) - { - writer.WriteAttributeString("Cache", "no"); - } - if ((this.cacheField == YesNoAlwaysType.yes)) - { - writer.WriteAttributeString("Cache", "yes"); - } - } - if (this.cacheIdFieldSet) - { - writer.WriteAttributeString("CacheId", this.cacheIdField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.logPathVariableFieldSet) - { - writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); - } - if (this.rollbackLogPathVariableFieldSet) - { - writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - if (this.detectConditionFieldSet) - { - writer.WriteAttributeString("DetectCondition", this.detectConditionField); - } - if (this.installCommandFieldSet) - { - writer.WriteAttributeString("InstallCommand", this.installCommandField); - } - if (this.repairCommandFieldSet) - { - writer.WriteAttributeString("RepairCommand", this.repairCommandField); - } - if (this.uninstallCommandFieldSet) - { - writer.WriteAttributeString("UninstallCommand", this.uninstallCommandField); - } - if (this.perMachineFieldSet) - { - if ((this.perMachineField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("PerMachine", "default"); - } - if ((this.perMachineField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("PerMachine", "no"); - } - if ((this.perMachineField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("PerMachine", "yes"); - } - } - if (this.protocolFieldSet) - { - if ((this.protocolField == BurnExeProtocolType.none)) - { - writer.WriteAttributeString("Protocol", "none"); - } - if ((this.protocolField == BurnExeProtocolType.burn)) - { - writer.WriteAttributeString("Protocol", "burn"); - } - if ((this.protocolField == BurnExeProtocolType.netfx4)) - { - writer.WriteAttributeString("Protocol", "netfx4"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("InstallSize" == name)) - { - this.installSizeField = value; - this.installSizeFieldSet = true; - } - if (("InstallCondition" == name)) - { - this.installConditionField = value; - this.installConditionFieldSet = true; - } - if (("Cache" == name)) - { - this.cacheField = Enums.ParseYesNoAlwaysType(value); - this.cacheFieldSet = true; - } - if (("CacheId" == name)) - { - this.cacheIdField = value; - this.cacheIdFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("LogPathVariable" == name)) - { - this.logPathVariableField = value; - this.logPathVariableFieldSet = true; - } - if (("RollbackLogPathVariable" == name)) - { - this.rollbackLogPathVariableField = value; - this.rollbackLogPathVariableFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - if (("DetectCondition" == name)) - { - this.detectConditionField = value; - this.detectConditionFieldSet = true; - } - if (("InstallCommand" == name)) - { - this.installCommandField = value; - this.installCommandFieldSet = true; - } - if (("RepairCommand" == name)) - { - this.repairCommandField = value; - this.repairCommandFieldSet = true; - } - if (("UninstallCommand" == name)) - { - this.uninstallCommandField = value; - this.uninstallCommandFieldSet = true; - } - if (("PerMachine" == name)) - { - this.perMachineField = Enums.ParseYesNoDefaultType(value); - this.perMachineFieldSet = true; - } - if (("Protocol" == name)) - { - this.protocolField = Enums.ParseBurnExeProtocolType(value); - this.protocolFieldSet = true; - } - } - } - - /// - /// Describes a rollback boundary in the chain. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RollbackBoundary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoType transactionField; - - private bool transactionFieldSet; - - private ISchemaElement parentElement; - - public RollbackBoundary() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is - /// not provided a stable identifier will be generated. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if - /// the rollback boundary is encountered then the chain will fail and rollback or stop. If "no" - /// is specified then the chain should continue successfuly at the next rollback boundary. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no" - /// - public YesNoType Transaction - { - get - { - return this.transactionField; - } - set - { - this.transactionFieldSet = true; - this.transactionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RollbackBoundary", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.transactionFieldSet) - { - if ((this.transactionField == YesNoType.no)) - { - writer.WriteAttributeString("Transaction", "no"); - } - if ((this.transactionField == YesNoType.yes)) - { - writer.WriteAttributeString("Transaction", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Transaction" == name)) - { - this.transactionField = Enums.ParseYesNoType(value); - this.transactionFieldSet = true; - } - } - } - - /// - /// Describes a package group to a bootstrapper. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PackageGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PackageGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for package group. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MsiPackage" == childName)) - { - childValue = new MsiPackage(); - } - if (("MspPackage" == childName)) - { - childValue = new MspPackage(); - } - if (("MsuPackage" == childName)) - { - childValue = new MsuPackage(); - } - if (("ExePackage" == childName)) - { - childValue = new ExePackage(); - } - if (("RollbackBoundary" == childName)) - { - childValue = new RollbackBoundary(); - } - if (("PackageGroupRef" == childName)) - { - childValue = new PackageGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PackageGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to PackageGroup element that exists inside a Bundle or Fragment element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PackageGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PackageGroup element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The identifier of a package that this group should be installed after. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PackageGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - } - } - - /// - /// Allows an MSI property to be set based on the value of a burn engine expression. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiProperty : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The value to set the property to. This string is evaluated by the burn engine and can be as simple as a burn engine variable reference or as complex as a full expression. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Specifies a patch included in the same bundle that is installed when the parent MSI package is installed. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SlipstreamMsp : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier for a MspPackage in the bundle. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SlipstreamMsp", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Describes a burn engine variable to define. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Variable : ISchemaElement, ISetAttributes - { - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private YesNoType persistedField; - - private bool persistedFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - /// - /// Whether the value of the variable should be hidden. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// The name for the variable. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Whether the variable should be persisted. - /// - public YesNoType Persisted - { - get - { - return this.persistedField; - } - set - { - this.persistedFieldSet = true; - this.persistedField = value; - } - } - - /// - /// Starting value for the variable. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Type of the variable, inferred from the value if not specified. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - Variable.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - if (("numeric" == value)) - { - parsedValue = TypeType.numeric; - } - else - { - if (("version" == value)) - { - parsedValue = TypeType.version; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Variable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.persistedFieldSet) - { - if ((this.persistedField == YesNoType.no)) - { - writer.WriteAttributeString("Persisted", "no"); - } - if ((this.persistedField == YesNoType.yes)) - { - writer.WriteAttributeString("Persisted", "yes"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - if ((this.typeField == TypeType.numeric)) - { - writer.WriteAttributeString("Type", "numeric"); - } - if ((this.typeField == TypeType.version)) - { - writer.WriteAttributeString("Type", "version"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Persisted" == name)) - { - this.persistedField = Enums.ParseYesNoType(value); - this.persistedFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Variable.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - @string, - - numeric, - - version, - } - } - - /// - /// Representation of a file that contains one or more files. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Container : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private BurnContainerType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - public Container() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// The unique identifier for the container. If this attribute is not specified the Name attribute will be used. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If - /// this attribute is not specified, the default is to create a detached container. - /// - public BurnContainerType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PackageGroupRef" == childName)) - { - childValue = new PackageGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Container", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == BurnContainerType.attached)) - { - writer.WriteAttributeString("Type", "attached"); - } - if ((this.typeField == BurnContainerType.detached)) - { - writer.WriteAttributeString("Type", "detached"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Enums.ParseBurnContainerType(value); - this.typeFieldSet = true; - } - } - } - - /// - /// Create a reference to an existing Container element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ContainerRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of Container element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ContainerRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Describes map of exit code returned from executable package to a bootstrapper behavior. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExitCode : ISchemaElement, ISetAttributes - { - - private int valueField; - - private bool valueFieldSet; - - private BehaviorType behaviorField; - - private bool behaviorFieldSet; - - private ISchemaElement parentElement; - - /// - /// Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior. - /// - public int Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot. - /// - public BehaviorType Behavior - { - get - { - return this.behaviorField; - } - set - { - this.behaviorFieldSet = true; - this.behaviorField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a BehaviorType from a string. - /// - public static BehaviorType ParseBehaviorType(string value) - { - BehaviorType parsedValue; - ExitCode.TryParseBehaviorType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a BehaviorType from a string. - /// - public static bool TryParseBehaviorType(string value, out BehaviorType parsedValue) - { - parsedValue = BehaviorType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("success" == value)) - { - parsedValue = BehaviorType.success; - } - else - { - if (("error" == value)) - { - parsedValue = BehaviorType.error; - } - else - { - if (("scheduleReboot" == value)) - { - parsedValue = BehaviorType.scheduleReboot; - } - else - { - if (("forceReboot" == value)) - { - parsedValue = BehaviorType.forceReboot; - } - else - { - parsedValue = BehaviorType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExitCode", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.behaviorFieldSet) - { - if ((this.behaviorField == BehaviorType.success)) - { - writer.WriteAttributeString("Behavior", "success"); - } - if ((this.behaviorField == BehaviorType.error)) - { - writer.WriteAttributeString("Behavior", "error"); - } - if ((this.behaviorField == BehaviorType.scheduleReboot)) - { - writer.WriteAttributeString("Behavior", "scheduleReboot"); - } - if ((this.behaviorField == BehaviorType.forceReboot)) - { - writer.WriteAttributeString("Behavior", "forceReboot"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Value" == name)) - { - this.valueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.valueFieldSet = true; - } - if (("Behavior" == name)) - { - this.behaviorField = ExitCode.ParseBehaviorType(value); - this.behaviorFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum BehaviorType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - success, - - error, - - scheduleReboot, - - forceReboot, - } - } - - /// - /// Describes additional, conditional command-line arguments for an ExePackage. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CommandLine : ISchemaElement, ISetAttributes - { - - private string installArgumentField; - - private bool installArgumentFieldSet; - - private string uninstallArgumentField; - - private bool uninstallArgumentFieldSet; - - private string repairArgumentField; - - private bool repairArgumentFieldSet; - - private string conditionField; - - private bool conditionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Additional command-line arguments to apply during package installation if Condition is true. - /// - public string InstallArgument - { - get - { - return this.installArgumentField; - } - set - { - this.installArgumentFieldSet = true; - this.installArgumentField = value; - } - } - - /// - /// Additional command-line arguments to apply during package uninstallation if Condition is true. - /// - public string UninstallArgument - { - get - { - return this.uninstallArgumentField; - } - set - { - this.uninstallArgumentFieldSet = true; - this.uninstallArgumentField = value; - } - } - - /// - /// Additional command-line arguments to apply during package repair if Condition is true. - /// - public string RepairArgument - { - get - { - return this.repairArgumentField; - } - set - { - this.repairArgumentFieldSet = true; - this.repairArgumentField = value; - } - } - - /// - /// The condition that controls whether the command-line arguments specified in the - /// InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the - /// command line passed to the ExePackage. Which attribute is used depends on the - /// action being applied to the ExePackage. For example, when the ExePackage is - /// being installed, the InstallArgument attribute value is appended to the command - /// line when the ExePackage is executed. - /// - public string Condition - { - get - { - return this.conditionField; - } - set - { - this.conditionFieldSet = true; - this.conditionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CommandLine", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.installArgumentFieldSet) - { - writer.WriteAttributeString("InstallArgument", this.installArgumentField); - } - if (this.uninstallArgumentFieldSet) - { - writer.WriteAttributeString("UninstallArgument", this.uninstallArgumentField); - } - if (this.repairArgumentFieldSet) - { - writer.WriteAttributeString("RepairArgument", this.repairArgumentField); - } - if (this.conditionFieldSet) - { - writer.WriteAttributeString("Condition", this.conditionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("InstallArgument" == name)) - { - this.installArgumentField = value; - this.installArgumentFieldSet = true; - } - if (("UninstallArgument" == name)) - { - this.uninstallArgumentField = value; - this.uninstallArgumentFieldSet = true; - } - if (("RepairArgument" == name)) - { - this.repairArgumentField = value; - this.repairArgumentFieldSet = true; - } - if (("Condition" == name)) - { - this.conditionField = value; - this.conditionFieldSet = true; - } - } - } - - /// - /// Describes a payload to a bootstrapper. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Payload : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string downloadUrlField; - - private bool downloadUrlFieldSet; - - private YesNoType enableSignatureVerificationField; - - private bool enableSignatureVerificationFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of Payload element. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Whether the payload should be embedded in a container or left as an external payload. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// Location of the source file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - public string DownloadUrl - { - get - { - return this.downloadUrlField; - } - set - { - this.downloadUrlFieldSet = true; - this.downloadUrlField = value; - } - } - - /// - /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" - /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the - /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. - /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". - /// - public YesNoType EnableSignatureVerification - { - get - { - return this.enableSignatureVerificationField; - } - set - { - this.enableSignatureVerificationFieldSet = true; - this.enableSignatureVerificationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Payload", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.downloadUrlFieldSet) - { - writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); - } - if (this.enableSignatureVerificationFieldSet) - { - if ((this.enableSignatureVerificationField == YesNoType.no)) - { - writer.WriteAttributeString("EnableSignatureVerification", "no"); - } - if ((this.enableSignatureVerificationField == YesNoType.yes)) - { - writer.WriteAttributeString("EnableSignatureVerification", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DownloadUrl" == name)) - { - this.downloadUrlField = value; - this.downloadUrlFieldSet = true; - } - if (("EnableSignatureVerification" == name)) - { - this.enableSignatureVerificationField = Enums.ParseYesNoType(value); - this.enableSignatureVerificationFieldSet = true; - } - } - } - - /// - /// Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle. - /// PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage. - /// It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PayloadGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PayloadGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for payload group. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Payload" == childName)) - { - childValue = new Payload(); - } - if (("PayloadGroupRef" == childName)) - { - childValue = new PayloadGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PayloadGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PayloadGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PayloadGroup element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PayloadGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Describes information about a remote file payload that is not available at the time of building the bundle. - /// The parent must specify DownloadUrl and must not specify SourceFile when using this element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemotePayload : ISchemaElement, ISetAttributes - { - - private string certificatePublicKeyField; - - private bool certificatePublicKeyFieldSet; - - private string certificateThumbprintField; - - private bool certificateThumbprintFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string hashField; - - private bool hashFieldSet; - - private string productNameField; - - private bool productNameFieldSet; - - private int sizeField; - - private bool sizeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Public key of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. - /// - public string CertificatePublicKey - { - get - { - return this.certificatePublicKeyField; - } - set - { - this.certificatePublicKeyFieldSet = true; - this.certificatePublicKeyField = value; - } - } - - /// - /// Thumbprint of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed. - /// - public string CertificateThumbprint - { - get - { - return this.certificateThumbprintField; - } - set - { - this.certificateThumbprintFieldSet = true; - this.certificateThumbprintField = value; - } - } - - /// - /// Description of the file from version resources. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes. - /// - public string Hash - { - get - { - return this.hashField; - } - set - { - this.hashFieldSet = true; - this.hashField = value; - } - } - - /// - /// Product name of the file from version resouces. - /// - public string ProductName - { - get - { - return this.productNameField; - } - set - { - this.productNameFieldSet = true; - this.productNameField = value; - } - } - - /// - /// Size of the remote file in bytes. - /// - public int Size - { - get - { - return this.sizeField; - } - set - { - this.sizeFieldSet = true; - this.sizeField = value; - } - } - - /// - /// Version of the remote file - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemotePayload", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.certificatePublicKeyFieldSet) - { - writer.WriteAttributeString("CertificatePublicKey", this.certificatePublicKeyField); - } - if (this.certificateThumbprintFieldSet) - { - writer.WriteAttributeString("CertificateThumbprint", this.certificateThumbprintField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.hashFieldSet) - { - writer.WriteAttributeString("Hash", this.hashField); - } - if (this.productNameFieldSet) - { - writer.WriteAttributeString("ProductName", this.productNameField); - } - if (this.sizeFieldSet) - { - writer.WriteAttributeString("Size", this.sizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("CertificatePublicKey" == name)) - { - this.certificatePublicKeyField = value; - this.certificatePublicKeyFieldSet = true; - } - if (("CertificateThumbprint" == name)) - { - this.certificateThumbprintField = value; - this.certificateThumbprintFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Hash" == name)) - { - this.hashField = value; - this.hashFieldSet = true; - } - if (("ProductName" == name)) - { - this.productNameField = value; - this.productNameFieldSet = true; - } - if (("Size" == name)) - { - this.sizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sizeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - } - } - - /// - /// Create a RelatedBundle element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RelatedBundle : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the RelatedBundle group. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The action to take on bundles related to this one. Detect is the default. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RelatedBundle.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Detect" == value)) - { - parsedValue = ActionType.Detect; - } - else - { - if (("Upgrade" == value)) - { - parsedValue = ActionType.Upgrade; - } - else - { - if (("Addon" == value)) - { - parsedValue = ActionType.Addon; - } - else - { - if (("Patch" == value)) - { - parsedValue = ActionType.Patch; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RelatedBundle", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.Detect)) - { - writer.WriteAttributeString("Action", "Detect"); - } - if ((this.actionField == ActionType.Upgrade)) - { - writer.WriteAttributeString("Action", "Upgrade"); - } - if ((this.actionField == ActionType.Addon)) - { - writer.WriteAttributeString("Action", "Addon"); - } - if ((this.actionField == ActionType.Patch)) - { - writer.WriteAttributeString("Action", "Patch"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RelatedBundle.ParseActionType(value); - this.actionFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Detect, - - Upgrade, - - Addon, - - Patch, - } - } - - /// - /// Defines the update for a Bundle. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Update : ISchemaElement, ISetAttributes - { - - private string locationField; - - private bool locationFieldSet; - - private ISchemaElement parentElement; - - /// - /// The absolute path or URL to check for an update bundle. Currently the engine provides this value - /// in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the - /// future the engine will be able to acquire an update bundle from the location and determine if it - /// is newer than the current executing bundle. - /// - public string Location - { - get - { - return this.locationField; - } - set - { - this.locationFieldSet = true; - this.locationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Update", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.locationFieldSet) - { - writer.WriteAttributeString("Location", this.locationField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Location" == name)) - { - this.locationField = value; - this.locationFieldSet = true; - } - } - } - - /// - /// The Product element is analogous to the main function in a C program. When linking, only one Product section - /// can be given to the linker to produce a successful result. Using this element creates an msi file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Product : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private ISchemaElement parentElement; - - public Product() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(InstanceTransforms))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MajorUpgrade))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); - childCollection1.AddCollection(childCollection2); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The product code GUID for the product. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The code page integer value or web name for the resulting MSI. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// The decimal language ID (LCID) for the product. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The manufacturer of the product. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The descriptive name of the product. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The upgrade code GUID for the product. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - /// - /// The product's version string. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Package" == childName)) - { - childValue = new Package(); - } - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("ComplianceCheck" == childName)) - { - childValue = new ComplianceCheck(); - } - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroup" == childName)) - { - childValue = new ComponentGroup(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("CustomAction" == childName)) - { - childValue = new CustomAction(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("CustomTable" == childName)) - { - childValue = new CustomTable(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("EmbeddedChainer" == childName)) - { - childValue = new EmbeddedChainer(); - } - if (("EmbeddedChainerRef" == childName)) - { - childValue = new EmbeddedChainerRef(); - } - if (("EnsureTable" == childName)) - { - childValue = new EnsureTable(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("InstanceTransforms" == childName)) - { - childValue = new InstanceTransforms(); - } - if (("MajorUpgrade" == childName)) - { - childValue = new MajorUpgrade(); - } - if (("Media" == childName)) - { - childValue = new Media(); - } - if (("MediaTemplate" == childName)) - { - childValue = new MediaTemplate(); - } - if (("PackageCertificates" == childName)) - { - childValue = new PackageCertificates(); - } - if (("PatchCertificates" == childName)) - { - childValue = new PatchCertificates(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("SetDirectory" == childName)) - { - childValue = new SetDirectory(); - } - if (("SetProperty" == childName)) - { - childValue = new SetProperty(); - } - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("UI" == childName)) - { - childValue = new UI(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if (("Upgrade" == childName)) - { - childValue = new Upgrade(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if (("InstallExecuteSequence" == childName)) - { - childValue = new InstallExecuteSequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("AdminExecuteSequence" == childName)) - { - childValue = new AdminExecuteSequence(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("AdvertiseExecuteSequence" == childName)) - { - childValue = new AdvertiseExecuteSequence(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Product", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - } - } - - /// - /// The Module element is analogous to the main function in a C program. When linking, only - /// one Module section can be given to the linker to produce a successful result. Using this - /// element creates an msm file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Module : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private string guidField; - - private bool guidFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private ISchemaElement parentElement; - - public Module() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Configuration))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Dependency))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Exclusion))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreTable))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Substitution))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); - childCollection1.AddCollection(childCollection2); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The name of the merge module (not the file name). - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The code page integer value or web name for the resulting MSM. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// This attribute is deprecated. Use the Package/@Id attribute instead. - /// - public string Guid - { - get - { - return this.guidField; - } - set - { - this.guidFieldSet = true; - this.guidField = value; - } - } - - /// - /// The decimal language ID (LCID) of the merge module. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The major and minor versions of the merge module. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Package" == childName)) - { - childValue = new Package(); - } - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Configuration" == childName)) - { - childValue = new Configuration(); - } - if (("CustomAction" == childName)) - { - childValue = new CustomAction(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("CustomTable" == childName)) - { - childValue = new CustomTable(); - } - if (("Dependency" == childName)) - { - childValue = new Dependency(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("EmbeddedChainer" == childName)) - { - childValue = new EmbeddedChainer(); - } - if (("EmbeddedChainerRef" == childName)) - { - childValue = new EmbeddedChainerRef(); - } - if (("EnsureTable" == childName)) - { - childValue = new EnsureTable(); - } - if (("Exclusion" == childName)) - { - childValue = new Exclusion(); - } - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("IgnoreModularization" == childName)) - { - childValue = new IgnoreModularization(); - } - if (("IgnoreTable" == childName)) - { - childValue = new IgnoreTable(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("SetDirectory" == childName)) - { - childValue = new SetDirectory(); - } - if (("SetProperty" == childName)) - { - childValue = new SetProperty(); - } - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("Substitution" == childName)) - { - childValue = new Substitution(); - } - if (("UI" == childName)) - { - childValue = new UI(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if (("InstallExecuteSequence" == childName)) - { - childValue = new InstallExecuteSequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("AdminExecuteSequence" == childName)) - { - childValue = new AdminExecuteSequence(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("AdvertiseExecuteSequence" == childName)) - { - childValue = new AdvertiseExecuteSequence(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Module", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.guidFieldSet) - { - writer.WriteAttributeString("Guid", this.guidField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("Guid" == name)) - { - this.guidField = value; - this.guidFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - } - } - - /// - /// Declares a dependency on another merge module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Dependency : ISchemaElement, ISetAttributes - { - - private string requiredIdField; - - private bool requiredIdFieldSet; - - private int requiredLanguageField; - - private bool requiredLanguageFieldSet; - - private string requiredVersionField; - - private bool requiredVersionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier of the merge module required by the merge module. - /// - public string RequiredId - { - get - { - return this.requiredIdField; - } - set - { - this.requiredIdFieldSet = true; - this.requiredIdField = value; - } - } - - /// - /// Numeric language ID of the merge module in RequiredID. - /// - public int RequiredLanguage - { - get - { - return this.requiredLanguageField; - } - set - { - this.requiredLanguageFieldSet = true; - this.requiredLanguageField = value; - } - } - - /// - /// Version of the merge module in RequiredID. - /// - public string RequiredVersion - { - get - { - return this.requiredVersionField; - } - set - { - this.requiredVersionFieldSet = true; - this.requiredVersionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Dependency", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.requiredIdFieldSet) - { - writer.WriteAttributeString("RequiredId", this.requiredIdField); - } - if (this.requiredLanguageFieldSet) - { - writer.WriteAttributeString("RequiredLanguage", this.requiredLanguageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.requiredVersionFieldSet) - { - writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("RequiredId" == name)) - { - this.requiredIdField = value; - this.requiredIdFieldSet = true; - } - if (("RequiredLanguage" == name)) - { - this.requiredLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.requiredLanguageFieldSet = true; - } - if (("RequiredVersion" == name)) - { - this.requiredVersionField = value; - this.requiredVersionFieldSet = true; - } - } - } - - /// - /// Declares a merge module with which this merge module is incompatible. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Exclusion : ISchemaElement, ISetAttributes - { - - private string excludedIdField; - - private bool excludedIdFieldSet; - - private int excludeExceptLanguageField; - - private bool excludeExceptLanguageFieldSet; - - private int excludeLanguageField; - - private bool excludeLanguageFieldSet; - - private string excludedMinVersionField; - - private bool excludedMinVersionFieldSet; - - private string excludedMaxVersionField; - - private bool excludedMaxVersionFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier of the merge module that is incompatible. - /// - public string ExcludedId - { - get - { - return this.excludedIdField; - } - set - { - this.excludedIdFieldSet = true; - this.excludedIdField = value; - } - } - - /// - /// Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. - /// - public int ExcludeExceptLanguage - { - get - { - return this.excludeExceptLanguageField; - } - set - { - this.excludeExceptLanguageFieldSet = true; - this.excludeExceptLanguageField = value; - } - } - - /// - /// Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. - /// - public int ExcludeLanguage - { - get - { - return this.excludeLanguageField; - } - set - { - this.excludeLanguageFieldSet = true; - this.excludeLanguageField = value; - } - } - - /// - /// Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version. - /// - public string ExcludedMinVersion - { - get - { - return this.excludedMinVersionField; - } - set - { - this.excludedMinVersionFieldSet = true; - this.excludedMinVersionField = value; - } - } - - /// - /// Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version. - /// - public string ExcludedMaxVersion - { - get - { - return this.excludedMaxVersionField; - } - set - { - this.excludedMaxVersionFieldSet = true; - this.excludedMaxVersionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Exclusion", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.excludedIdFieldSet) - { - writer.WriteAttributeString("ExcludedId", this.excludedIdField); - } - if (this.excludeExceptLanguageFieldSet) - { - writer.WriteAttributeString("ExcludeExceptLanguage", this.excludeExceptLanguageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.excludeLanguageFieldSet) - { - writer.WriteAttributeString("ExcludeLanguage", this.excludeLanguageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.excludedMinVersionFieldSet) - { - writer.WriteAttributeString("ExcludedMinVersion", this.excludedMinVersionField); - } - if (this.excludedMaxVersionFieldSet) - { - writer.WriteAttributeString("ExcludedMaxVersion", this.excludedMaxVersionField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("ExcludedId" == name)) - { - this.excludedIdField = value; - this.excludedIdFieldSet = true; - } - if (("ExcludeExceptLanguage" == name)) - { - this.excludeExceptLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.excludeExceptLanguageFieldSet = true; - } - if (("ExcludeLanguage" == name)) - { - this.excludeLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.excludeLanguageFieldSet = true; - } - if (("ExcludedMinVersion" == name)) - { - this.excludedMinVersionField = value; - this.excludedMinVersionFieldSet = true; - } - if (("ExcludedMaxVersion" == name)) - { - this.excludedMaxVersionField = value; - this.excludedMaxVersionFieldSet = true; - } - } - } - - /// - /// Defines the configurable attributes of merge module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Configuration : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private FormatType formatField; - - private bool formatFieldSet; - - private string typeField; - - private bool typeFieldSet; - - private string contextDataField; - - private bool contextDataFieldSet; - - private string defaultValueField; - - private bool defaultValueFieldSet; - - private YesNoType keyNoOrphanField; - - private bool keyNoOrphanFieldSet; - - private YesNoType nonNullableField; - - private bool nonNullableFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string helpLocationField; - - private bool helpLocationFieldSet; - - private string helpKeywordField; - - private bool helpKeywordFieldSet; - - private ISchemaElement parentElement; - - /// - /// Defines the name of the configurable item. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Specifies the format of the data being changed. - /// - public FormatType Format - { - get - { - return this.formatField; - } - set - { - this.formatFieldSet = true; - this.formatField = value; - } - } - - /// - /// Specifies the type of the data being changed. - /// - public string Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Specifies a semantic context for the requested data. - /// - public string ContextData - { - get - { - return this.contextDataField; - } - set - { - this.contextDataFieldSet = true; - this.contextDataField = value; - } - } - - /// - /// Specifies a default value for the item in this record if the merge tool declines to provide a value. - /// - public string DefaultValue - { - get - { - return this.defaultValueField; - } - set - { - this.defaultValueFieldSet = true; - this.defaultValueField = value; - } - } - - /// - /// Does not merge rule according to rules in MSI SDK. - /// - public YesNoType KeyNoOrphan - { - get - { - return this.keyNoOrphanField; - } - set - { - this.keyNoOrphanFieldSet = true; - this.keyNoOrphanField = value; - } - } - - /// - /// If yes, null is not a valid entry. - /// - public YesNoType NonNullable - { - get - { - return this.nonNullableField; - } - set - { - this.nonNullableFieldSet = true; - this.nonNullableField = value; - } - } - - /// - /// Display name for authoring. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Description for authoring. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Location of chm file for authoring. - /// - public string HelpLocation - { - get - { - return this.helpLocationField; - } - set - { - this.helpLocationFieldSet = true; - this.helpLocationField = value; - } - } - - /// - /// Keyword into chm file for authoring. - /// - public string HelpKeyword - { - get - { - return this.helpKeywordField; - } - set - { - this.helpKeywordFieldSet = true; - this.helpKeywordField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a FormatType from a string. - /// - public static FormatType ParseFormatType(string value) - { - FormatType parsedValue; - Configuration.TryParseFormatType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a FormatType from a string. - /// - public static bool TryParseFormatType(string value, out FormatType parsedValue) - { - parsedValue = FormatType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Text" == value)) - { - parsedValue = FormatType.Text; - } - else - { - if (("Key" == value)) - { - parsedValue = FormatType.Key; - } - else - { - if (("Integer" == value)) - { - parsedValue = FormatType.Integer; - } - else - { - if (("Bitfield" == value)) - { - parsedValue = FormatType.Bitfield; - } - else - { - parsedValue = FormatType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Configuration", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.formatFieldSet) - { - if ((this.formatField == FormatType.Text)) - { - writer.WriteAttributeString("Format", "Text"); - } - if ((this.formatField == FormatType.Key)) - { - writer.WriteAttributeString("Format", "Key"); - } - if ((this.formatField == FormatType.Integer)) - { - writer.WriteAttributeString("Format", "Integer"); - } - if ((this.formatField == FormatType.Bitfield)) - { - writer.WriteAttributeString("Format", "Bitfield"); - } - } - if (this.typeFieldSet) - { - writer.WriteAttributeString("Type", this.typeField); - } - if (this.contextDataFieldSet) - { - writer.WriteAttributeString("ContextData", this.contextDataField); - } - if (this.defaultValueFieldSet) - { - writer.WriteAttributeString("DefaultValue", this.defaultValueField); - } - if (this.keyNoOrphanFieldSet) - { - if ((this.keyNoOrphanField == YesNoType.no)) - { - writer.WriteAttributeString("KeyNoOrphan", "no"); - } - if ((this.keyNoOrphanField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyNoOrphan", "yes"); - } - } - if (this.nonNullableFieldSet) - { - if ((this.nonNullableField == YesNoType.no)) - { - writer.WriteAttributeString("NonNullable", "no"); - } - if ((this.nonNullableField == YesNoType.yes)) - { - writer.WriteAttributeString("NonNullable", "yes"); - } - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.helpLocationFieldSet) - { - writer.WriteAttributeString("HelpLocation", this.helpLocationField); - } - if (this.helpKeywordFieldSet) - { - writer.WriteAttributeString("HelpKeyword", this.helpKeywordField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Format" == name)) - { - this.formatField = Configuration.ParseFormatType(value); - this.formatFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = value; - this.typeFieldSet = true; - } - if (("ContextData" == name)) - { - this.contextDataField = value; - this.contextDataFieldSet = true; - } - if (("DefaultValue" == name)) - { - this.defaultValueField = value; - this.defaultValueFieldSet = true; - } - if (("KeyNoOrphan" == name)) - { - this.keyNoOrphanField = Enums.ParseYesNoType(value); - this.keyNoOrphanFieldSet = true; - } - if (("NonNullable" == name)) - { - this.nonNullableField = Enums.ParseYesNoType(value); - this.nonNullableFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("HelpLocation" == name)) - { - this.helpLocationField = value; - this.helpLocationFieldSet = true; - } - if (("HelpKeyword" == name)) - { - this.helpKeywordField = value; - this.helpKeywordFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum FormatType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Text, - - Key, - - Integer, - - Bitfield, - } - } - - /// - /// Specifies the configurable fields of a module database and provides a template for the configuration of each field. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Substitution : ISchemaElement, ISetAttributes - { - - private string tableField; - - private bool tableFieldSet; - - private string rowField; - - private bool rowFieldSet; - - private string columnField; - - private bool columnFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the name of the table being modified in the module database. - /// - public string Table - { - get - { - return this.tableField; - } - set - { - this.tableFieldSet = true; - this.tableField = value; - } - } - - /// - /// Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons. - /// - public string Row - { - get - { - return this.rowField; - } - set - { - this.rowFieldSet = true; - this.rowField = value; - } - } - - /// - /// Specifies the target column in the row named in the Row column. - /// - public string Column - { - get - { - return this.columnField; - } - set - { - this.columnFieldSet = true; - this.columnField = value; - } - } - - /// - /// Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Substitution", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.tableFieldSet) - { - writer.WriteAttributeString("Table", this.tableField); - } - if (this.rowFieldSet) - { - writer.WriteAttributeString("Row", this.rowField); - } - if (this.columnFieldSet) - { - writer.WriteAttributeString("Column", this.columnField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Table" == name)) - { - this.tableField = value; - this.tableFieldSet = true; - } - if (("Row" == name)) - { - this.rowField = value; - this.rowFieldSet = true; - } - if (("Column" == name)) - { - this.columnField = value; - this.columnFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Specifies a table from the merge module that is not merged into an .msi file. - /// If the table already exists in an .msi file, it is not modified by the merge. - /// The specified table can therefore contain data that is unneeded after the merge. - /// To minimize the size of the .msm file, it is recommended that developers remove - /// unused tables from modules intended for redistribution rather than creating - /// IgnoreTable elements for those tables. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IgnoreTable : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the table in the merge module that is not to be merged into the .msi file. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IgnoreTable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The Fragment element is the building block of creating an installer database in WiX. Once defined, - /// the Fragment becomes an immutable, atomic unit which can either be completely included or excluded - /// from a product. The contents of a Fragment element can be linked into a product by utilizing one - /// of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its - /// individual units. For instance, if a given Fragment contains two Component elements, you must link - /// both under features using ComponentRef for each linked Component. Otherwise, you will get a linker - /// warning and have a floating Component that does not appear under any Feature. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Fragment : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public Fragment() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Optional identifier for a Fragment. Should only be set by advanced users to tag sections. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("BootstrapperApplication" == childName)) - { - childValue = new BootstrapperApplication(); - } - if (("BootstrapperApplicationRef" == childName)) - { - childValue = new BootstrapperApplicationRef(); - } - if (("ComplianceCheck" == childName)) - { - childValue = new ComplianceCheck(); - } - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroup" == childName)) - { - childValue = new ComponentGroup(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("Container" == childName)) - { - childValue = new Container(); - } - if (("CustomAction" == childName)) - { - childValue = new CustomAction(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("CustomTable" == childName)) - { - childValue = new CustomTable(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("EmbeddedChainer" == childName)) - { - childValue = new EmbeddedChainer(); - } - if (("EmbeddedChainerRef" == childName)) - { - childValue = new EmbeddedChainerRef(); - } - if (("EnsureTable" == childName)) - { - childValue = new EnsureTable(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureGroup" == childName)) - { - childValue = new FeatureGroup(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("IgnoreModularization" == childName)) - { - childValue = new IgnoreModularization(); - } - if (("Media" == childName)) - { - childValue = new Media(); - } - if (("MediaTemplate" == childName)) - { - childValue = new MediaTemplate(); - } - if (("PackageGroup" == childName)) - { - childValue = new PackageGroup(); - } - if (("PackageCertificates" == childName)) - { - childValue = new PackageCertificates(); - } - if (("PatchCertificates" == childName)) - { - childValue = new PatchCertificates(); - } - if (("PatchFamily" == childName)) - { - childValue = new PatchFamily(); - } - if (("PatchFamilyGroup" == childName)) - { - childValue = new PatchFamilyGroup(); - } - if (("PayloadGroup" == childName)) - { - childValue = new PayloadGroup(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("RelatedBundle" == childName)) - { - childValue = new RelatedBundle(); - } - if (("SetDirectory" == childName)) - { - childValue = new SetDirectory(); - } - if (("SetProperty" == childName)) - { - childValue = new SetProperty(); - } - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("UI" == childName)) - { - childValue = new UI(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if (("Upgrade" == childName)) - { - childValue = new Upgrade(); - } - if (("Variable" == childName)) - { - childValue = new Variable(); - } - if (("WixVariable" == childName)) - { - childValue = new WixVariable(); - } - if (("InstallExecuteSequence" == childName)) - { - childValue = new InstallExecuteSequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("AdminExecuteSequence" == childName)) - { - childValue = new AdminExecuteSequence(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("AdvertiseExecuteSequence" == childName)) - { - childValue = new AdvertiseExecuteSequence(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Fragment", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The Patch element is analogous to the main function in a C program. When linking, only one Patch section - /// can be given to the linker to produce a successful result. Using this element creates an MSP file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Patch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private YesNoType allowRemovalField; - - private bool allowRemovalFieldSet; - - private string classificationField; - - private bool classificationFieldSet; - - private string clientPatchIdField; - - private bool clientPatchIdFieldSet; - - private YesNoType apiPatchingSymbolNoImagehlpFlagField; - - private bool apiPatchingSymbolNoImagehlpFlagFieldSet; - - private YesNoType apiPatchingSymbolNoFailuresFlagField; - - private bool apiPatchingSymbolNoFailuresFlagFieldSet; - - private YesNoType apiPatchingSymbolUndecoratedTooFlagField; - - private bool apiPatchingSymbolUndecoratedTooFlagFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string commentsField; - - private bool commentsFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private YesNoType minorUpdateTargetRTMField; - - private bool minorUpdateTargetRTMFieldSet; - - private string moreInfoURLField; - - private bool moreInfoURLFieldSet; - - private YesNoType optimizedInstallModeField; - - private bool optimizedInstallModeFieldSet; - - private string targetProductNameField; - - private bool targetProductNameFieldSet; - - private YesNoType optimizePatchSizeForLargeFilesField; - - private bool optimizePatchSizeForLargeFilesFieldSet; - - private ISchemaElement parentElement; - - public Patch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchInformation))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCodes))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Patch code for this patch. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The code page integer value or web name for the resulting MSP. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// Whether this is an uninstallable patch. - /// - public YesNoType AllowRemoval - { - get - { - return this.allowRemovalField; - } - set - { - this.allowRemovalFieldSet = true; - this.allowRemovalField = value; - } - } - - /// - /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. - /// - public string Classification - { - get - { - return this.classificationField; - } - set - { - this.classificationFieldSet = true; - this.classificationField = value; - } - } - - /// - /// An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information. - /// - public string ClientPatchId - { - get - { - return this.clientPatchIdField; - } - set - { - this.clientPatchIdFieldSet = true; - this.clientPatchIdField = value; - } - } - - /// - /// Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll. - /// - public YesNoType ApiPatchingSymbolNoImagehlpFlag - { - get - { - return this.apiPatchingSymbolNoImagehlpFlagField; - } - set - { - this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; - this.apiPatchingSymbolNoImagehlpFlagField = value; - } - } - - /// - /// Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures. - /// - public YesNoType ApiPatchingSymbolNoFailuresFlag - { - get - { - return this.apiPatchingSymbolNoFailuresFlagField; - } - set - { - this.apiPatchingSymbolNoFailuresFlagFieldSet = true; - this.apiPatchingSymbolNoFailuresFlagField = value; - } - } - - /// - /// Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names. - /// - public YesNoType ApiPatchingSymbolUndecoratedTooFlag - { - get - { - return this.apiPatchingSymbolUndecoratedTooFlagField; - } - set - { - this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; - this.apiPatchingSymbolUndecoratedTooFlagField = value; - } - } - - /// - /// Description of the patch. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Optional comments for browsing. - /// - public string Comments - { - get - { - return this.commentsField; - } - set - { - this.commentsFieldSet = true; - this.commentsField = value; - } - } - - /// - /// Vendor releasing the package - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// Indicates that the patch targets the RTM version of the product or the most recent major - /// upgrade patch. Author this optional property in minor update patches that contain sequencing - /// information to indicate that the patch removes all patches up to the RTM version of the - /// product, or up to the most recent major upgrade patch. This property is available beginning - /// with Windows Installer 3.1. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType MinorUpdateTargetRTM - { - get - { - return this.minorUpdateTargetRTMField; - } - set - { - this.minorUpdateTargetRTMFieldSet = true; - this.minorUpdateTargetRTMField = value; - } - } - - /// - /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string MoreInfoURL - { - get - { - return this.moreInfoURLField; - } - set - { - this.moreInfoURLFieldSet = true; - this.moreInfoURLField = value; - } - } - - /// - /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the - /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. - /// - public YesNoType OptimizedInstallMode - { - get - { - return this.optimizedInstallModeField; - } - set - { - this.optimizedInstallModeFieldSet = true; - this.optimizedInstallModeField = value; - } - } - - /// - /// Name of the application or target product suite. - /// - public string TargetProductName - { - get - { - return this.targetProductNameField; - } - set - { - this.targetProductNameFieldSet = true; - this.targetProductNameField = value; - } - } - - /// - /// When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller. - /// - public YesNoType OptimizePatchSizeForLargeFiles - { - get - { - return this.optimizePatchSizeForLargeFilesField; - } - set - { - this.optimizePatchSizeForLargeFilesFieldSet = true; - this.optimizePatchSizeForLargeFilesField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PatchInformation" == childName)) - { - childValue = new PatchInformation(); - } - if (("Media" == childName)) - { - childValue = new Media(); - } - if (("OptimizeCustomActions" == childName)) - { - childValue = new OptimizeCustomActions(); - } - if (("PatchFamily" == childName)) - { - childValue = new PatchFamily(); - } - if (("PatchFamilyRef" == childName)) - { - childValue = new PatchFamilyRef(); - } - if (("PatchFamilyGroup" == childName)) - { - childValue = new PatchFamilyGroup(); - } - if (("PatchFamilyGroupRef" == childName)) - { - childValue = new PatchFamilyGroupRef(); - } - if (("PatchProperty" == childName)) - { - childValue = new PatchProperty(); - } - if (("TargetProductCodes" == childName)) - { - childValue = new TargetProductCodes(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Patch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.allowRemovalFieldSet) - { - if ((this.allowRemovalField == YesNoType.no)) - { - writer.WriteAttributeString("AllowRemoval", "no"); - } - if ((this.allowRemovalField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowRemoval", "yes"); - } - } - if (this.classificationFieldSet) - { - writer.WriteAttributeString("Classification", this.classificationField); - } - if (this.clientPatchIdFieldSet) - { - writer.WriteAttributeString("ClientPatchId", this.clientPatchIdField); - } - if (this.apiPatchingSymbolNoImagehlpFlagFieldSet) - { - if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.no)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "no"); - } - if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.yes)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "yes"); - } - } - if (this.apiPatchingSymbolNoFailuresFlagFieldSet) - { - if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.no)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "no"); - } - if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.yes)) - { - writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "yes"); - } - } - if (this.apiPatchingSymbolUndecoratedTooFlagFieldSet) - { - if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.no)) - { - writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "no"); - } - if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.yes)) - { - writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "yes"); - } - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.commentsFieldSet) - { - writer.WriteAttributeString("Comments", this.commentsField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.minorUpdateTargetRTMFieldSet) - { - if ((this.minorUpdateTargetRTMField == YesNoType.no)) - { - writer.WriteAttributeString("MinorUpdateTargetRTM", "no"); - } - if ((this.minorUpdateTargetRTMField == YesNoType.yes)) - { - writer.WriteAttributeString("MinorUpdateTargetRTM", "yes"); - } - } - if (this.moreInfoURLFieldSet) - { - writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); - } - if (this.optimizedInstallModeFieldSet) - { - if ((this.optimizedInstallModeField == YesNoType.no)) - { - writer.WriteAttributeString("OptimizedInstallMode", "no"); - } - if ((this.optimizedInstallModeField == YesNoType.yes)) - { - writer.WriteAttributeString("OptimizedInstallMode", "yes"); - } - } - if (this.targetProductNameFieldSet) - { - writer.WriteAttributeString("TargetProductName", this.targetProductNameField); - } - if (this.optimizePatchSizeForLargeFilesFieldSet) - { - if ((this.optimizePatchSizeForLargeFilesField == YesNoType.no)) - { - writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "no"); - } - if ((this.optimizePatchSizeForLargeFilesField == YesNoType.yes)) - { - writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("AllowRemoval" == name)) - { - this.allowRemovalField = Enums.ParseYesNoType(value); - this.allowRemovalFieldSet = true; - } - if (("Classification" == name)) - { - this.classificationField = value; - this.classificationFieldSet = true; - } - if (("ClientPatchId" == name)) - { - this.clientPatchIdField = value; - this.clientPatchIdFieldSet = true; - } - if (("ApiPatchingSymbolNoImagehlpFlag" == name)) - { - this.apiPatchingSymbolNoImagehlpFlagField = Enums.ParseYesNoType(value); - this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; - } - if (("ApiPatchingSymbolNoFailuresFlag" == name)) - { - this.apiPatchingSymbolNoFailuresFlagField = Enums.ParseYesNoType(value); - this.apiPatchingSymbolNoFailuresFlagFieldSet = true; - } - if (("ApiPatchingSymbolUndecoratedTooFlag" == name)) - { - this.apiPatchingSymbolUndecoratedTooFlagField = Enums.ParseYesNoType(value); - this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Comments" == name)) - { - this.commentsField = value; - this.commentsFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("MinorUpdateTargetRTM" == name)) - { - this.minorUpdateTargetRTMField = Enums.ParseYesNoType(value); - this.minorUpdateTargetRTMFieldSet = true; - } - if (("MoreInfoURL" == name)) - { - this.moreInfoURLField = value; - this.moreInfoURLFieldSet = true; - } - if (("OptimizedInstallMode" == name)) - { - this.optimizedInstallModeField = Enums.ParseYesNoType(value); - this.optimizedInstallModeFieldSet = true; - } - if (("TargetProductName" == name)) - { - this.targetProductNameField = value; - this.targetProductNameFieldSet = true; - } - if (("OptimizePatchSizeForLargeFiles" == name)) - { - this.optimizePatchSizeForLargeFilesField = Enums.ParseYesNoType(value); - this.optimizePatchSizeForLargeFilesFieldSet = true; - } - } - } - - /// - /// Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Validate : ISchemaElement, ISetAttributes - { - - private YesNoType productIdField; - - private bool productIdFieldSet; - - private YesNoType productLanguageField; - - private bool productLanguageFieldSet; - - private ProductVersionType productVersionField; - - private bool productVersionFieldSet; - - private ProductVersionOperatorType productVersionOperatorField; - - private bool productVersionOperatorFieldSet; - - private YesNoType upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private YesNoType ignoreAddExistingRowField; - - private bool ignoreAddExistingRowFieldSet; - - private YesNoType ignoreAddExistingTableField; - - private bool ignoreAddExistingTableFieldSet; - - private YesNoType ignoreDeleteMissingRowField; - - private bool ignoreDeleteMissingRowFieldSet; - - private YesNoType ignoreDeleteMissingTableField; - - private bool ignoreDeleteMissingTableFieldSet; - - private YesNoType ignoreUpdateMissingRowField; - - private bool ignoreUpdateMissingRowFieldSet; - - private YesNoType ignoreChangingCodePageField; - - private bool ignoreChangingCodePageFieldSet; - - private ISchemaElement parentElement; - - /// - /// Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'. - /// - public YesNoType ProductId - { - get - { - return this.productIdField; - } - set - { - this.productIdFieldSet = true; - this.productIdField = value; - } - } - - /// - /// Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'. - /// - public YesNoType ProductLanguage - { - get - { - return this.productLanguageField; - } - set - { - this.productLanguageFieldSet = true; - this.productLanguageField = value; - } - } - - /// - /// Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'. - /// - public ProductVersionType ProductVersion - { - get - { - return this.productVersionField; - } - set - { - this.productVersionFieldSet = true; - this.productVersionField = value; - } - } - - /// - /// Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'. - /// - public ProductVersionOperatorType ProductVersionOperator - { - get - { - return this.productVersionOperatorField; - } - set - { - this.productVersionOperatorFieldSet = true; - this.productVersionOperatorField = value; - } - } - - /// - /// Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'. - /// - public YesNoType UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - /// - /// Ignore errors when adding existing rows. The default is 'yes'. - /// - public YesNoType IgnoreAddExistingRow - { - get - { - return this.ignoreAddExistingRowField; - } - set - { - this.ignoreAddExistingRowFieldSet = true; - this.ignoreAddExistingRowField = value; - } - } - - /// - /// Ignore errors when adding existing tables. The default is 'yes'. - /// - public YesNoType IgnoreAddExistingTable - { - get - { - return this.ignoreAddExistingTableField; - } - set - { - this.ignoreAddExistingTableFieldSet = true; - this.ignoreAddExistingTableField = value; - } - } - - /// - /// Ignore errors when deleting missing rows. The default is 'yes'. - /// - public YesNoType IgnoreDeleteMissingRow - { - get - { - return this.ignoreDeleteMissingRowField; - } - set - { - this.ignoreDeleteMissingRowFieldSet = true; - this.ignoreDeleteMissingRowField = value; - } - } - - /// - /// Ignore errors when deleting missing tables. The default is 'yes'. - /// - public YesNoType IgnoreDeleteMissingTable - { - get - { - return this.ignoreDeleteMissingTableField; - } - set - { - this.ignoreDeleteMissingTableFieldSet = true; - this.ignoreDeleteMissingTableField = value; - } - } - - /// - /// Ignore errors when updating missing rows. The default is 'yes'. - /// - public YesNoType IgnoreUpdateMissingRow - { - get - { - return this.ignoreUpdateMissingRowField; - } - set - { - this.ignoreUpdateMissingRowFieldSet = true; - this.ignoreUpdateMissingRowField = value; - } - } - - /// - /// Ignore errors when changing the database code page. The default is 'no'. - /// - public YesNoType IgnoreChangingCodePage - { - get - { - return this.ignoreChangingCodePageField; - } - set - { - this.ignoreChangingCodePageFieldSet = true; - this.ignoreChangingCodePageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ProductVersionType from a string. - /// - public static ProductVersionType ParseProductVersionType(string value) - { - ProductVersionType parsedValue; - Validate.TryParseProductVersionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ProductVersionType from a string. - /// - public static bool TryParseProductVersionType(string value, out ProductVersionType parsedValue) - { - parsedValue = ProductVersionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Major" == value)) - { - parsedValue = ProductVersionType.Major; - } - else - { - if (("Minor" == value)) - { - parsedValue = ProductVersionType.Minor; - } - else - { - if (("Update" == value)) - { - parsedValue = ProductVersionType.Update; - } - else - { - parsedValue = ProductVersionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a ProductVersionOperatorType from a string. - /// - public static ProductVersionOperatorType ParseProductVersionOperatorType(string value) - { - ProductVersionOperatorType parsedValue; - Validate.TryParseProductVersionOperatorType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ProductVersionOperatorType from a string. - /// - public static bool TryParseProductVersionOperatorType(string value, out ProductVersionOperatorType parsedValue) - { - parsedValue = ProductVersionOperatorType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Lesser" == value)) - { - parsedValue = ProductVersionOperatorType.Lesser; - } - else - { - if (("LesserOrEqual" == value)) - { - parsedValue = ProductVersionOperatorType.LesserOrEqual; - } - else - { - if (("Equal" == value)) - { - parsedValue = ProductVersionOperatorType.Equal; - } - else - { - if (("GreaterOrEqual" == value)) - { - parsedValue = ProductVersionOperatorType.GreaterOrEqual; - } - else - { - if (("Greater" == value)) - { - parsedValue = ProductVersionOperatorType.Greater; - } - else - { - parsedValue = ProductVersionOperatorType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Validate", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.productIdFieldSet) - { - if ((this.productIdField == YesNoType.no)) - { - writer.WriteAttributeString("ProductId", "no"); - } - if ((this.productIdField == YesNoType.yes)) - { - writer.WriteAttributeString("ProductId", "yes"); - } - } - if (this.productLanguageFieldSet) - { - if ((this.productLanguageField == YesNoType.no)) - { - writer.WriteAttributeString("ProductLanguage", "no"); - } - if ((this.productLanguageField == YesNoType.yes)) - { - writer.WriteAttributeString("ProductLanguage", "yes"); - } - } - if (this.productVersionFieldSet) - { - if ((this.productVersionField == ProductVersionType.Major)) - { - writer.WriteAttributeString("ProductVersion", "Major"); - } - if ((this.productVersionField == ProductVersionType.Minor)) - { - writer.WriteAttributeString("ProductVersion", "Minor"); - } - if ((this.productVersionField == ProductVersionType.Update)) - { - writer.WriteAttributeString("ProductVersion", "Update"); - } - } - if (this.productVersionOperatorFieldSet) - { - if ((this.productVersionOperatorField == ProductVersionOperatorType.Lesser)) - { - writer.WriteAttributeString("ProductVersionOperator", "Lesser"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.LesserOrEqual)) - { - writer.WriteAttributeString("ProductVersionOperator", "LesserOrEqual"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.Equal)) - { - writer.WriteAttributeString("ProductVersionOperator", "Equal"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.GreaterOrEqual)) - { - writer.WriteAttributeString("ProductVersionOperator", "GreaterOrEqual"); - } - if ((this.productVersionOperatorField == ProductVersionOperatorType.Greater)) - { - writer.WriteAttributeString("ProductVersionOperator", "Greater"); - } - } - if (this.upgradeCodeFieldSet) - { - if ((this.upgradeCodeField == YesNoType.no)) - { - writer.WriteAttributeString("UpgradeCode", "no"); - } - if ((this.upgradeCodeField == YesNoType.yes)) - { - writer.WriteAttributeString("UpgradeCode", "yes"); - } - } - if (this.ignoreAddExistingRowFieldSet) - { - if ((this.ignoreAddExistingRowField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreAddExistingRow", "no"); - } - if ((this.ignoreAddExistingRowField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreAddExistingRow", "yes"); - } - } - if (this.ignoreAddExistingTableFieldSet) - { - if ((this.ignoreAddExistingTableField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreAddExistingTable", "no"); - } - if ((this.ignoreAddExistingTableField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreAddExistingTable", "yes"); - } - } - if (this.ignoreDeleteMissingRowFieldSet) - { - if ((this.ignoreDeleteMissingRowField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreDeleteMissingRow", "no"); - } - if ((this.ignoreDeleteMissingRowField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreDeleteMissingRow", "yes"); - } - } - if (this.ignoreDeleteMissingTableFieldSet) - { - if ((this.ignoreDeleteMissingTableField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreDeleteMissingTable", "no"); - } - if ((this.ignoreDeleteMissingTableField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreDeleteMissingTable", "yes"); - } - } - if (this.ignoreUpdateMissingRowFieldSet) - { - if ((this.ignoreUpdateMissingRowField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreUpdateMissingRow", "no"); - } - if ((this.ignoreUpdateMissingRowField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreUpdateMissingRow", "yes"); - } - } - if (this.ignoreChangingCodePageFieldSet) - { - if ((this.ignoreChangingCodePageField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreChangingCodePage", "no"); - } - if ((this.ignoreChangingCodePageField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreChangingCodePage", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("ProductId" == name)) - { - this.productIdField = Enums.ParseYesNoType(value); - this.productIdFieldSet = true; - } - if (("ProductLanguage" == name)) - { - this.productLanguageField = Enums.ParseYesNoType(value); - this.productLanguageFieldSet = true; - } - if (("ProductVersion" == name)) - { - this.productVersionField = Validate.ParseProductVersionType(value); - this.productVersionFieldSet = true; - } - if (("ProductVersionOperator" == name)) - { - this.productVersionOperatorField = Validate.ParseProductVersionOperatorType(value); - this.productVersionOperatorFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = Enums.ParseYesNoType(value); - this.upgradeCodeFieldSet = true; - } - if (("IgnoreAddExistingRow" == name)) - { - this.ignoreAddExistingRowField = Enums.ParseYesNoType(value); - this.ignoreAddExistingRowFieldSet = true; - } - if (("IgnoreAddExistingTable" == name)) - { - this.ignoreAddExistingTableField = Enums.ParseYesNoType(value); - this.ignoreAddExistingTableFieldSet = true; - } - if (("IgnoreDeleteMissingRow" == name)) - { - this.ignoreDeleteMissingRowField = Enums.ParseYesNoType(value); - this.ignoreDeleteMissingRowFieldSet = true; - } - if (("IgnoreDeleteMissingTable" == name)) - { - this.ignoreDeleteMissingTableField = Enums.ParseYesNoType(value); - this.ignoreDeleteMissingTableFieldSet = true; - } - if (("IgnoreUpdateMissingRow" == name)) - { - this.ignoreUpdateMissingRowField = Enums.ParseYesNoType(value); - this.ignoreUpdateMissingRowFieldSet = true; - } - if (("IgnoreChangingCodePage" == name)) - { - this.ignoreChangingCodePageField = Enums.ParseYesNoType(value); - this.ignoreChangingCodePageFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ProductVersionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Checks the major version. - /// - Major, - - /// - /// Checks the major and minor versions. - /// - Minor, - - /// - /// Checks the major, minor, and update versions. - /// - Update, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ProductVersionOperatorType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Installed ProductVersion < target ProductVersion. - /// - Lesser, - - /// - /// Installed ProductVersion <= target ProductVersion. - /// - LesserOrEqual, - - /// - /// Installed ProductVersion = target ProductVersion. - /// - Equal, - - /// - /// Installed ProductVersion >= target ProductVersion. - /// - GreaterOrEqual, - - /// - /// Installed ProductVersion > target ProductVersion. - /// - Greater, - } - } - - /// - /// Indicates whether custom actions can be skipped when applying the patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class OptimizeCustomActions : ISchemaElement, ISetAttributes - { - - private YesNoType skipAssignmentField; - - private bool skipAssignmentFieldSet; - - private YesNoType skipImmediateField; - - private bool skipImmediateFieldSet; - - private YesNoType skipDeferredField; - - private bool skipDeferredFieldSet; - - private ISchemaElement parentElement; - - /// - /// Skip property (type 51) and directory (type 35) assignment custom actions. - /// - public YesNoType SkipAssignment - { - get - { - return this.skipAssignmentField; - } - set - { - this.skipAssignmentFieldSet = true; - this.skipAssignmentField = value; - } - } - - /// - /// Skip immediate custom actions that are not property or directory assignment custom actions. - /// - public YesNoType SkipImmediate - { - get - { - return this.skipImmediateField; - } - set - { - this.skipImmediateFieldSet = true; - this.skipImmediateField = value; - } - } - - /// - /// Skip custom actions that run within the script. - /// - public YesNoType SkipDeferred - { - get - { - return this.skipDeferredField; - } - set - { - this.skipDeferredFieldSet = true; - this.skipDeferredField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("OptimizeCustomActions", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.skipAssignmentFieldSet) - { - if ((this.skipAssignmentField == YesNoType.no)) - { - writer.WriteAttributeString("SkipAssignment", "no"); - } - if ((this.skipAssignmentField == YesNoType.yes)) - { - writer.WriteAttributeString("SkipAssignment", "yes"); - } - } - if (this.skipImmediateFieldSet) - { - if ((this.skipImmediateField == YesNoType.no)) - { - writer.WriteAttributeString("SkipImmediate", "no"); - } - if ((this.skipImmediateField == YesNoType.yes)) - { - writer.WriteAttributeString("SkipImmediate", "yes"); - } - } - if (this.skipDeferredFieldSet) - { - if ((this.skipDeferredField == YesNoType.no)) - { - writer.WriteAttributeString("SkipDeferred", "no"); - } - if ((this.skipDeferredField == YesNoType.yes)) - { - writer.WriteAttributeString("SkipDeferred", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SkipAssignment" == name)) - { - this.skipAssignmentField = Enums.ParseYesNoType(value); - this.skipAssignmentFieldSet = true; - } - if (("SkipImmediate" == name)) - { - this.skipImmediateField = Enums.ParseYesNoType(value); - this.skipImmediateFieldSet = true; - } - if (("SkipDeferred" == name)) - { - this.skipDeferredField = Enums.ParseYesNoType(value); - this.skipDeferredFieldSet = true; - } - } - } - - /// - /// Identifies a set of product versions. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchBaseline : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PatchBaseline() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Validate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for a set of product versions. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Validate" == childName)) - { - childValue = new Validate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchBaseline", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Collection of items that should be kept from the differences between two products. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamily : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private YesNoType supersedeField; - - private bool supersedeFieldSet; - - private ISchemaElement parentElement; - - public PatchFamily() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(All))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(BinaryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificateRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IconRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier which indicates a sequence family to which this patch belongs. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies the ProductCode of the product that this family applies to. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - /// - /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - /// - /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. - /// The default value is 'no'. - /// - public YesNoType Supersede - { - get - { - return this.supersedeField; - } - set - { - this.supersedeFieldSet = true; - this.supersedeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("All" == childName)) - { - childValue = new All(); - } - if (("BinaryRef" == childName)) - { - childValue = new BinaryRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("CustomActionRef" == childName)) - { - childValue = new CustomActionRef(); - } - if (("DigitalCertificateRef" == childName)) - { - childValue = new DigitalCertificateRef(); - } - if (("DirectoryRef" == childName)) - { - childValue = new DirectoryRef(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("IconRef" == childName)) - { - childValue = new IconRef(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamily", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - if (this.supersedeFieldSet) - { - if ((this.supersedeField == YesNoType.no)) - { - writer.WriteAttributeString("Supersede", "no"); - } - if ((this.supersedeField == YesNoType.yes)) - { - writer.WriteAttributeString("Supersede", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - if (("Supersede" == name)) - { - this.supersedeField = Enums.ParseYesNoType(value); - this.supersedeFieldSet = true; - } - } - } - - /// - /// Groups together multiple patch families to be used in other locations. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamilyGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public PatchFamilyGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the PatchFamilyGroup. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PatchFamily" == childName)) - { - childValue = new PatchFamily(); - } - if (("PatchFamilyRef" == childName)) - { - childValue = new PatchFamilyRef(); - } - if (("PatchFamilyGroupRef" == childName)) - { - childValue = new PatchFamilyGroupRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamilyGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to a PatchFamilyGroup in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamilyGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PatchFamilyGroup to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamilyGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section - /// can be given to the linker to produce a successful result. Using this element creates a pcp file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchCreation : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType allowMajorVersionMismatchesField; - - private bool allowMajorVersionMismatchesFieldSet; - - private YesNoType allowProductCodeMismatchesField; - - private bool allowProductCodeMismatchesFieldSet; - - private YesNoType cleanWorkingFolderField; - - private bool cleanWorkingFolderFieldSet; - - private string codepageField; - - private bool codepageFieldSet; - - private string outputPathField; - - private bool outputPathFieldSet; - - private string sourceListField; - - private bool sourceListFieldSet; - - private int symbolFlagsField; - - private bool symbolFlagsFieldSet; - - private YesNoType wholeFilesOnlyField; - - private bool wholeFilesOnlyFieldSet; - - private ISchemaElement parentElement; - - public PatchCreation() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchInformation))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchMetadata))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Family))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchSequence))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ReplacePatch))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// PatchCreation identifier; this is the primary key for identifying patches. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Use this to set whether the major versions between the upgrade and target images match. See - /// - public YesNoType AllowMajorVersionMismatches - { - get - { - return this.allowMajorVersionMismatchesField; - } - set - { - this.allowMajorVersionMismatchesFieldSet = true; - this.allowMajorVersionMismatchesField = value; - } - } - - /// - /// Use this to set whether the product code between the upgrade and target images match. See - /// - public YesNoType AllowProductCodeMismatches - { - get - { - return this.allowProductCodeMismatchesField; - } - set - { - this.allowProductCodeMismatchesFieldSet = true; - this.allowProductCodeMismatchesField = value; - } - } - - /// - /// Use this to set whether Patchwiz should clean the temp folder when finished. See - /// - public YesNoType CleanWorkingFolder - { - get - { - return this.cleanWorkingFolderField; - } - set - { - this.cleanWorkingFolderFieldSet = true; - this.cleanWorkingFolderField = value; - } - } - - /// - /// The code page integer value or web name for the resulting PCP. See remarks for more information. - /// - public string Codepage - { - get - { - return this.codepageField; - } - set - { - this.codepageFieldSet = true; - this.codepageField = value; - } - } - - /// - /// The full path, including file name, of the patch package file that is to be generated. See - /// - public string OutputPath - { - get - { - return this.outputPathField; - } - set - { - this.outputPathFieldSet = true; - this.outputPathField = value; - } - } - - /// - /// Used to locate the .msp file for the patch if the cached copy is unavailable. See - /// - public string SourceList - { - get - { - return this.sourceListField; - } - set - { - this.sourceListFieldSet = true; - this.sourceListField = value; - } - } - - /// - /// An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See - /// - public int SymbolFlags - { - get - { - return this.symbolFlagsField; - } - set - { - this.symbolFlagsFieldSet = true; - this.symbolFlagsField = value; - } - } - - /// - /// Use this to set whether changing files should be included in their entirety. See - /// - public YesNoType WholeFilesOnly - { - get - { - return this.wholeFilesOnlyField; - } - set - { - this.wholeFilesOnlyFieldSet = true; - this.wholeFilesOnlyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PatchInformation" == childName)) - { - childValue = new PatchInformation(); - } - if (("PatchMetadata" == childName)) - { - childValue = new PatchMetadata(); - } - if (("Family" == childName)) - { - childValue = new Family(); - } - if (("PatchProperty" == childName)) - { - childValue = new PatchProperty(); - } - if (("PatchSequence" == childName)) - { - childValue = new PatchSequence(); - } - if (("ReplacePatch" == childName)) - { - childValue = new ReplacePatch(); - } - if (("TargetProductCode" == childName)) - { - childValue = new TargetProductCode(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchCreation", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.allowMajorVersionMismatchesFieldSet) - { - if ((this.allowMajorVersionMismatchesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowMajorVersionMismatches", "no"); - } - if ((this.allowMajorVersionMismatchesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowMajorVersionMismatches", "yes"); - } - } - if (this.allowProductCodeMismatchesFieldSet) - { - if ((this.allowProductCodeMismatchesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowProductCodeMismatches", "no"); - } - if ((this.allowProductCodeMismatchesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowProductCodeMismatches", "yes"); - } - } - if (this.cleanWorkingFolderFieldSet) - { - if ((this.cleanWorkingFolderField == YesNoType.no)) - { - writer.WriteAttributeString("CleanWorkingFolder", "no"); - } - if ((this.cleanWorkingFolderField == YesNoType.yes)) - { - writer.WriteAttributeString("CleanWorkingFolder", "yes"); - } - } - if (this.codepageFieldSet) - { - writer.WriteAttributeString("Codepage", this.codepageField); - } - if (this.outputPathFieldSet) - { - writer.WriteAttributeString("OutputPath", this.outputPathField); - } - if (this.sourceListFieldSet) - { - writer.WriteAttributeString("SourceList", this.sourceListField); - } - if (this.symbolFlagsFieldSet) - { - writer.WriteAttributeString("SymbolFlags", this.symbolFlagsField.ToString(CultureInfo.InvariantCulture)); - } - if (this.wholeFilesOnlyFieldSet) - { - if ((this.wholeFilesOnlyField == YesNoType.no)) - { - writer.WriteAttributeString("WholeFilesOnly", "no"); - } - if ((this.wholeFilesOnlyField == YesNoType.yes)) - { - writer.WriteAttributeString("WholeFilesOnly", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("AllowMajorVersionMismatches" == name)) - { - this.allowMajorVersionMismatchesField = Enums.ParseYesNoType(value); - this.allowMajorVersionMismatchesFieldSet = true; - } - if (("AllowProductCodeMismatches" == name)) - { - this.allowProductCodeMismatchesField = Enums.ParseYesNoType(value); - this.allowProductCodeMismatchesFieldSet = true; - } - if (("CleanWorkingFolder" == name)) - { - this.cleanWorkingFolderField = Enums.ParseYesNoType(value); - this.cleanWorkingFolderFieldSet = true; - } - if (("Codepage" == name)) - { - this.codepageField = value; - this.codepageFieldSet = true; - } - if (("OutputPath" == name)) - { - this.outputPathField = value; - this.outputPathFieldSet = true; - } - if (("SourceList" == name)) - { - this.sourceListField = value; - this.sourceListFieldSet = true; - } - if (("SymbolFlags" == name)) - { - this.symbolFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.symbolFlagsFieldSet = true; - } - if (("WholeFilesOnly" == name)) - { - this.wholeFilesOnlyField = Enums.ParseYesNoType(value); - this.wholeFilesOnlyFieldSet = true; - } - } - } - - /// - /// Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchInformation : ISchemaElement, ISetAttributes - { - - private string descriptionField; - - private bool descriptionFieldSet; - - private string platformsField; - - private bool platformsFieldSet; - - private string languagesField; - - private bool languagesFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string keywordsField; - - private bool keywordsFieldSet; - - private string commentsField; - - private bool commentsFieldSet; - - private YesNoDefaultType readOnlyField; - - private bool readOnlyFieldSet; - - private string summaryCodepageField; - - private bool summaryCodepageFieldSet; - - private YesNoType shortNamesField; - - private bool shortNamesFieldSet; - - private YesNoType compressedField; - - private bool compressedFieldSet; - - private YesNoType adminImageField; - - private bool adminImageFieldSet; - - private ISchemaElement parentElement; - - /// - /// A short description of the patch that includes the name of the product. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - public string Platforms - { - get - { - return this.platformsField; - } - set - { - this.platformsFieldSet = true; - this.platformsField = value; - } - } - - public string Languages - { - get - { - return this.languagesField; - } - set - { - this.languagesFieldSet = true; - this.languagesField = value; - } - } - - /// - /// The name of the manufacturer of the patch package. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database". - /// - public string Keywords - { - get - { - return this.keywordsField; - } - set - { - this.keywordsFieldSet = true; - this.keywordsField = value; - } - } - - /// - /// General purpose of the patch package. For example, "This patch contains the logic and data required to install - /// - public string Comments - { - get - { - return this.commentsField; - } - set - { - this.commentsFieldSet = true; - this.commentsField = value; - } - } - - /// - /// The value of this attribute conveys whether the package should be opened as read-only. - /// A database editing tool should not modify a read-only enforced database and should - /// issue a warning at attempts to modify a read-only recommended database. - /// - public YesNoDefaultType ReadOnly - { - get - { - return this.readOnlyField; - } - set - { - this.readOnlyFieldSet = true; - this.readOnlyField = value; - } - } - - /// - /// The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information. - /// - public string SummaryCodepage - { - get - { - return this.summaryCodepageField; - } - set - { - this.summaryCodepageFieldSet = true; - this.summaryCodepageField = value; - } - } - - public YesNoType ShortNames - { - get - { - return this.shortNamesField; - } - set - { - this.shortNamesFieldSet = true; - this.shortNamesField = value; - } - } - - public YesNoType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - public YesNoType AdminImage - { - get - { - return this.adminImageField; - } - set - { - this.adminImageFieldSet = true; - this.adminImageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchInformation", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.platformsFieldSet) - { - writer.WriteAttributeString("Platforms", this.platformsField); - } - if (this.languagesFieldSet) - { - writer.WriteAttributeString("Languages", this.languagesField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.keywordsFieldSet) - { - writer.WriteAttributeString("Keywords", this.keywordsField); - } - if (this.commentsFieldSet) - { - writer.WriteAttributeString("Comments", this.commentsField); - } - if (this.readOnlyFieldSet) - { - if ((this.readOnlyField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("ReadOnly", "default"); - } - if ((this.readOnlyField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("ReadOnly", "no"); - } - if ((this.readOnlyField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("ReadOnly", "yes"); - } - } - if (this.summaryCodepageFieldSet) - { - writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); - } - if (this.shortNamesFieldSet) - { - if ((this.shortNamesField == YesNoType.no)) - { - writer.WriteAttributeString("ShortNames", "no"); - } - if ((this.shortNamesField == YesNoType.yes)) - { - writer.WriteAttributeString("ShortNames", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.adminImageFieldSet) - { - if ((this.adminImageField == YesNoType.no)) - { - writer.WriteAttributeString("AdminImage", "no"); - } - if ((this.adminImageField == YesNoType.yes)) - { - writer.WriteAttributeString("AdminImage", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Platforms" == name)) - { - this.platformsField = value; - this.platformsFieldSet = true; - } - if (("Languages" == name)) - { - this.languagesField = value; - this.languagesFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Keywords" == name)) - { - this.keywordsField = value; - this.keywordsFieldSet = true; - } - if (("Comments" == name)) - { - this.commentsField = value; - this.commentsFieldSet = true; - } - if (("ReadOnly" == name)) - { - this.readOnlyField = Enums.ParseYesNoDefaultType(value); - this.readOnlyFieldSet = true; - } - if (("SummaryCodepage" == name)) - { - this.summaryCodepageField = value; - this.summaryCodepageFieldSet = true; - } - if (("ShortNames" == name)) - { - this.shortNamesField = Enums.ParseYesNoType(value); - this.shortNamesFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoType(value); - this.compressedFieldSet = true; - } - if (("AdminImage" == name)) - { - this.adminImageField = Enums.ParseYesNoType(value); - this.adminImageFieldSet = true; - } - } - } - - /// - /// Properties about the patch to be placed in the PatchMetadata table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchMetadata : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType allowRemovalField; - - private bool allowRemovalFieldSet; - - private string classificationField; - - private bool classificationFieldSet; - - private string creationTimeUTCField; - - private bool creationTimeUTCFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private string manufacturerNameField; - - private bool manufacturerNameFieldSet; - - private string minorUpdateTargetRTMField; - - private bool minorUpdateTargetRTMFieldSet; - - private string moreInfoURLField; - - private bool moreInfoURLFieldSet; - - private YesNoType optimizedInstallModeField; - - private bool optimizedInstallModeFieldSet; - - private string targetProductNameField; - - private bool targetProductNameFieldSet; - - private ISchemaElement parentElement; - - public PatchMetadata() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomProperty))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Whether this is an uninstallable patch. - /// - public YesNoType AllowRemoval - { - get - { - return this.allowRemovalField; - } - set - { - this.allowRemovalFieldSet = true; - this.allowRemovalField = value; - } - } - - /// - /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. - /// - public string Classification - { - get - { - return this.classificationField; - } - set - { - this.classificationFieldSet = true; - this.classificationField = value; - } - } - - /// - /// Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute). - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string CreationTimeUTC - { - get - { - return this.creationTimeUTCField; - } - set - { - this.creationTimeUTCFieldSet = true; - this.creationTimeUTCField = value; - } - } - - /// - /// Description of the patch. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// Name of the manufacturer. - /// - public string ManufacturerName - { - get - { - return this.manufacturerNameField; - } - set - { - this.manufacturerNameFieldSet = true; - this.manufacturerNameField = value; - } - } - - /// - /// Indicates that the patch targets the RTM version of the product or the most recent major - /// upgrade patch. Author this optional property in minor update patches that contain sequencing - /// information to indicate that the patch removes all patches up to the RTM version of the - /// product, or up to the most recent major upgrade patch. This property is available beginning - /// with Windows Installer 3.1. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string MinorUpdateTargetRTM - { - get - { - return this.minorUpdateTargetRTMField; - } - set - { - this.minorUpdateTargetRTMFieldSet = true; - this.minorUpdateTargetRTMField = value; - } - } - - /// - /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string MoreInfoURL - { - get - { - return this.moreInfoURLField; - } - set - { - this.moreInfoURLFieldSet = true; - this.moreInfoURLField = value; - } - } - - /// - /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the - /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. - /// - public YesNoType OptimizedInstallMode - { - get - { - return this.optimizedInstallModeField; - } - set - { - this.optimizedInstallModeFieldSet = true; - this.optimizedInstallModeField = value; - } - } - - /// - /// Name of the application or target product suite. - /// - public string TargetProductName - { - get - { - return this.targetProductNameField; - } - set - { - this.targetProductNameFieldSet = true; - this.targetProductNameField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("CustomProperty" == childName)) - { - childValue = new CustomProperty(); - } - if (("OptimizeCustomActions" == childName)) - { - childValue = new OptimizeCustomActions(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchMetadata", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.allowRemovalFieldSet) - { - if ((this.allowRemovalField == YesNoType.no)) - { - writer.WriteAttributeString("AllowRemoval", "no"); - } - if ((this.allowRemovalField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowRemoval", "yes"); - } - } - if (this.classificationFieldSet) - { - writer.WriteAttributeString("Classification", this.classificationField); - } - if (this.creationTimeUTCFieldSet) - { - writer.WriteAttributeString("CreationTimeUTC", this.creationTimeUTCField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.manufacturerNameFieldSet) - { - writer.WriteAttributeString("ManufacturerName", this.manufacturerNameField); - } - if (this.minorUpdateTargetRTMFieldSet) - { - writer.WriteAttributeString("MinorUpdateTargetRTM", this.minorUpdateTargetRTMField); - } - if (this.moreInfoURLFieldSet) - { - writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); - } - if (this.optimizedInstallModeFieldSet) - { - if ((this.optimizedInstallModeField == YesNoType.no)) - { - writer.WriteAttributeString("OptimizedInstallMode", "no"); - } - if ((this.optimizedInstallModeField == YesNoType.yes)) - { - writer.WriteAttributeString("OptimizedInstallMode", "yes"); - } - } - if (this.targetProductNameFieldSet) - { - writer.WriteAttributeString("TargetProductName", this.targetProductNameField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("AllowRemoval" == name)) - { - this.allowRemovalField = Enums.ParseYesNoType(value); - this.allowRemovalFieldSet = true; - } - if (("Classification" == name)) - { - this.classificationField = value; - this.classificationFieldSet = true; - } - if (("CreationTimeUTC" == name)) - { - this.creationTimeUTCField = value; - this.creationTimeUTCFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("ManufacturerName" == name)) - { - this.manufacturerNameField = value; - this.manufacturerNameFieldSet = true; - } - if (("MinorUpdateTargetRTM" == name)) - { - this.minorUpdateTargetRTMField = value; - this.minorUpdateTargetRTMFieldSet = true; - } - if (("MoreInfoURL" == name)) - { - this.moreInfoURLField = value; - this.moreInfoURLFieldSet = true; - } - if (("OptimizedInstallMode" == name)) - { - this.optimizedInstallModeField = Enums.ParseYesNoType(value); - this.optimizedInstallModeFieldSet = true; - } - if (("TargetProductName" == name)) - { - this.targetProductNameField = value; - this.targetProductNameFieldSet = true; - } - } - } - - /// - /// A custom property for the PatchMetadata table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomProperty : ISchemaElement, ISetAttributes - { - - private string companyField; - - private bool companyFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the company. - /// - public string Company - { - get - { - return this.companyField; - } - set - { - this.companyFieldSet = true; - this.companyField = value; - } - } - - /// - /// The name of the metadata property. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// Value of the metadata property. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.companyFieldSet) - { - writer.WriteAttributeString("Company", this.companyField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Company" == name)) - { - this.companyField = value; - this.companyFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// A patch that is deprecated by this patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ReplacePatch : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Patch GUID to be unregistered if it exists on the machine targeted by this patch. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ReplacePatch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// The product codes for products that can accept the patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetProductCodes : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType replaceField; - - private bool replaceFieldSet; - - private ISchemaElement parentElement; - - public TargetProductCodes() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Whether to replace the product codes that can accept the patch from the target packages with the child elements. - /// - public YesNoType Replace - { - get - { - return this.replaceField; - } - set - { - this.replaceFieldSet = true; - this.replaceField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("TargetProductCode" == childName)) - { - childValue = new TargetProductCode(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetProductCodes", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.replaceFieldSet) - { - if ((this.replaceField == YesNoType.no)) - { - writer.WriteAttributeString("Replace", "no"); - } - if ((this.replaceField == YesNoType.yes)) - { - writer.WriteAttributeString("Replace", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Replace" == name)) - { - this.replaceField = Enums.ParseYesNoType(value); - this.replaceFieldSet = true; - } - } - } - - /// - /// A product code for a product that can accept the patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetProductCode : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The product code for a product that can accept the patch. This can be '*'. See remarks for more information. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetProductCode", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// A property for this patch database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchProperty : ISchemaElement, ISetAttributes - { - - private string companyField; - - private bool companyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Name of the company for a custom metadata property. - /// - public string Company - { - get - { - return this.companyField; - } - set - { - this.companyFieldSet = true; - this.companyField = value; - } - } - - /// - /// Name of the patch property. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Value of the patch property. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.companyFieldSet) - { - writer.WriteAttributeString("Company", this.companyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Company" == name)) - { - this.companyField = value; - this.companyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchSequence : ISchemaElement, ISetAttributes - { - - private string patchFamilyField; - - private bool patchFamilyFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private string sequenceField; - - private bool sequenceFieldSet; - - private YesNoType supersedeField; - - private bool supersedeFieldSet; - - private string targetField; - - private bool targetFieldSet; - - private string targetImageField; - - private bool targetImageFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier which indicates a sequence family to which this patch belongs. - /// - public string PatchFamily - { - get - { - return this.patchFamilyField; - } - set - { - this.patchFamilyFieldSet = true; - this.patchFamilyField = value; - } - } - - /// - /// Specifies the ProductCode of the product that this family applies to. - /// This attribute cannot the specified if the TargetImage attribute is specified. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - /// - /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. - /// - public string Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. - /// The default value is 'no'. - /// - public YesNoType Supersede - { - get - { - return this.supersedeField; - } - set - { - this.supersedeFieldSet = true; - this.supersedeField = value; - } - } - - public string Target - { - get - { - return this.targetField; - } - set - { - this.targetFieldSet = true; - this.targetField = value; - } - } - - /// - /// Specifies the TargetImage that this family applies to. - /// This attribute cannot the specified if the ProductCode attribute is specified. - /// - public string TargetImage - { - get - { - return this.targetImageField; - } - set - { - this.targetImageFieldSet = true; - this.targetImageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchSequence", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.patchFamilyFieldSet) - { - writer.WriteAttributeString("PatchFamily", this.patchFamilyField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField); - } - if (this.supersedeFieldSet) - { - if ((this.supersedeField == YesNoType.no)) - { - writer.WriteAttributeString("Supersede", "no"); - } - if ((this.supersedeField == YesNoType.yes)) - { - writer.WriteAttributeString("Supersede", "yes"); - } - } - if (this.targetFieldSet) - { - writer.WriteAttributeString("Target", this.targetField); - } - if (this.targetImageFieldSet) - { - writer.WriteAttributeString("TargetImage", this.targetImageField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("PatchFamily" == name)) - { - this.patchFamilyField = value; - this.patchFamilyFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = value; - this.sequenceFieldSet = true; - } - if (("Supersede" == name)) - { - this.supersedeField = Enums.ParseYesNoType(value); - this.supersedeFieldSet = true; - } - if (("Target" == name)) - { - this.targetField = value; - this.targetFieldSet = true; - } - if (("TargetImage" == name)) - { - this.targetImageField = value; - this.targetImageFieldSet = true; - } - } - } - - /// - /// Group of one or more upgraded images of a product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Family : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string diskPromptField; - - private bool diskPromptFieldSet; - - private string mediaSrcPropField; - - private bool mediaSrcPropFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private int sequenceStartField; - - private bool sequenceStartFieldSet; - - private string volumeLabelField; - - private bool volumeLabelFieldSet; - - private ISchemaElement parentElement; - - public Family() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(UpgradeImage))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ExternalFile))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectFile))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Entered into the DiskId field of the new Media table record. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - /// - public string DiskPrompt - { - get - { - return this.diskPromptField; - } - set - { - this.diskPromptFieldSet = true; - this.diskPromptField = value; - } - } - - /// - /// Entered into the Source field of the new Media table entry of the upgraded image. - /// - public string MediaSrcProp - { - get - { - return this.mediaSrcPropField; - } - set - { - this.mediaSrcPropFieldSet = true; - this.mediaSrcPropField = value; - } - } - - /// - /// Identifier for the family. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Sequence number for the starting file. - /// - public int SequenceStart - { - get - { - return this.sequenceStartField; - } - set - { - this.sequenceStartFieldSet = true; - this.sequenceStartField = value; - } - } - - /// - /// Entered into the VolumeLabel field of the new Media table record. - /// - public string VolumeLabel - { - get - { - return this.volumeLabelField; - } - set - { - this.volumeLabelFieldSet = true; - this.volumeLabelField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("UpgradeImage" == childName)) - { - childValue = new UpgradeImage(); - } - if (("ExternalFile" == childName)) - { - childValue = new ExternalFile(); - } - if (("ProtectFile" == childName)) - { - childValue = new ProtectFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Family", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.diskPromptFieldSet) - { - writer.WriteAttributeString("DiskPrompt", this.diskPromptField); - } - if (this.mediaSrcPropFieldSet) - { - writer.WriteAttributeString("MediaSrcProp", this.mediaSrcPropField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sequenceStartFieldSet) - { - writer.WriteAttributeString("SequenceStart", this.sequenceStartField.ToString(CultureInfo.InvariantCulture)); - } - if (this.volumeLabelFieldSet) - { - writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("DiskPrompt" == name)) - { - this.diskPromptField = value; - this.diskPromptFieldSet = true; - } - if (("MediaSrcProp" == name)) - { - this.mediaSrcPropField = value; - this.mediaSrcPropFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SequenceStart" == name)) - { - this.sequenceStartField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceStartFieldSet = true; - } - if (("VolumeLabel" == name)) - { - this.volumeLabelField = value; - this.volumeLabelFieldSet = true; - } - } - } - - /// - /// Contains information about the upgraded images of the product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UpgradeImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private string sourcePatchField; - - private bool sourcePatchFieldSet; - - private string srcPatchField; - - private bool srcPatchFieldSet; - - private ISchemaElement parentElement; - - public UpgradeImage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(TargetImage))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeFile))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier to connect target images with upgraded image. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Full path to location of msi file for upgraded image. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Modified copy of the upgraded installation database that contains additional authoring specific to patching. - /// - public string SourcePatch - { - get - { - return this.sourcePatchField; - } - set - { - this.sourcePatchFieldSet = true; - this.sourcePatchField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string srcPatch - { - get - { - return this.srcPatchField; - } - set - { - this.srcPatchFieldSet = true; - this.srcPatchField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("TargetImage" == childName)) - { - childValue = new TargetImage(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("UpgradeFile" == childName)) - { - childValue = new UpgradeFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UpgradeImage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.sourcePatchFieldSet) - { - writer.WriteAttributeString("SourcePatch", this.sourcePatchField); - } - if (this.srcPatchFieldSet) - { - writer.WriteAttributeString("srcPatch", this.srcPatchField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("SourcePatch" == name)) - { - this.sourcePatchField = value; - this.sourcePatchFieldSet = true; - } - if (("srcPatch" == name)) - { - this.srcPatchField = value; - this.srcPatchFieldSet = true; - } - } - } - - /// - /// Contains information about the target images of the product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private int orderField; - - private bool orderFieldSet; - - private string validationField; - - private bool validationFieldSet; - - private YesNoType ignoreMissingFilesField; - - private bool ignoreMissingFilesFieldSet; - - private ISchemaElement parentElement; - - public TargetImage() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetFile))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the target image. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Full path to the location of the msi file for the target image. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Relative order of the target image. - /// - public int Order - { - get - { - return this.orderField; - } - set - { - this.orderFieldSet = true; - this.orderField = value; - } - } - - /// - /// Product checking to avoid applying irrelevant transforms. - /// - public string Validation - { - get - { - return this.validationField; - } - set - { - this.validationFieldSet = true; - this.validationField = value; - } - } - - /// - /// Files missing from the target image are ignored by the installer. - /// - public YesNoType IgnoreMissingFiles - { - get - { - return this.ignoreMissingFilesField; - } - set - { - this.ignoreMissingFilesFieldSet = true; - this.ignoreMissingFilesField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("TargetFile" == childName)) - { - childValue = new TargetFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetImage", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.orderFieldSet) - { - writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); - } - if (this.validationFieldSet) - { - writer.WriteAttributeString("Validation", this.validationField); - } - if (this.ignoreMissingFilesFieldSet) - { - if ((this.ignoreMissingFilesField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreMissingFiles", "no"); - } - if ((this.ignoreMissingFilesField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreMissingFiles", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("Order" == name)) - { - this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.orderFieldSet = true; - } - if (("Validation" == name)) - { - this.validationField = value; - this.validationFieldSet = true; - } - if (("IgnoreMissingFiles" == name)) - { - this.ignoreMissingFilesField = Enums.ParseYesNoType(value); - this.ignoreMissingFilesFieldSet = true; - } - } - } - - /// - /// Information about specific files in a target image. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TargetFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public TargetFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("IgnoreRange" == childName)) - { - childValue = new IgnoreRange(); - } - if (("ProtectRange" == childName)) - { - childValue = new ProtectRange(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TargetFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Specifies part of a file that is to be ignored during patching. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IgnoreRange : ISchemaElement, ISetAttributes - { - - private int offsetField; - - private bool offsetFieldSet; - - private int lengthField; - - private bool lengthFieldSet; - - private ISchemaElement parentElement; - - /// - /// Offset of the start of the range. - /// - public int Offset - { - get - { - return this.offsetField; - } - set - { - this.offsetFieldSet = true; - this.offsetField = value; - } - } - - /// - /// Length of the range. - /// - public int Length - { - get - { - return this.lengthField; - } - set - { - this.lengthFieldSet = true; - this.lengthField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IgnoreRange", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.offsetFieldSet) - { - writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); - } - if (this.lengthFieldSet) - { - writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Offset" == name)) - { - this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.offsetFieldSet = true; - } - if (("Length" == name)) - { - this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.lengthFieldSet = true; - } - } - } - - /// - /// Specifies part of a file that cannot be overwritten during patching. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProtectRange : ISchemaElement, ISetAttributes - { - - private int offsetField; - - private bool offsetFieldSet; - - private int lengthField; - - private bool lengthFieldSet; - - private ISchemaElement parentElement; - - /// - /// Offset of the start of the range. - /// - public int Offset - { - get - { - return this.offsetField; - } - set - { - this.offsetFieldSet = true; - this.offsetField = value; - } - } - - /// - /// Length of the range. - /// - public int Length - { - get - { - return this.lengthField; - } - set - { - this.lengthFieldSet = true; - this.lengthField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProtectRange", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.offsetFieldSet) - { - writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); - } - if (this.lengthFieldSet) - { - writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Offset" == name)) - { - this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.offsetFieldSet = true; - } - if (("Length" == name)) - { - this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.lengthFieldSet = true; - } - } - } - - /// - /// Specifies a file to be protected. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProtectFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string fileField; - - private bool fileFieldSet; - - private ISchemaElement parentElement; - - public ProtectFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProtectRange" == childName)) - { - childValue = new ProtectRange(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProtectFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - } - } - - /// - /// Contains information about specific files that are not part of a regular target image. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExternalFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string fileField; - - private bool fileFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private int orderField; - - private bool orderFieldSet; - - private ISchemaElement parentElement; - - public ExternalFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProtectRange))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// Full path of the external file. - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Specifies the order of the external files to use when creating the patch. - /// - public int Order - { - get - { - return this.orderField; - } - set - { - this.orderFieldSet = true; - this.orderField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProtectRange" == childName)) - { - childValue = new ProtectRange(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("IgnoreRange" == childName)) - { - childValue = new IgnoreRange(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExternalFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.orderFieldSet) - { - writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("Order" == name)) - { - this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.orderFieldSet = true; - } - } - } - - /// - /// Specifies files to either ignore or to specify optional data about a file. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UpgradeFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string fileField; - - private bool fileFieldSet; - - private YesNoType ignoreField; - - private bool ignoreFieldSet; - - private YesNoType allowIgnoreOnErrorField; - - private bool allowIgnoreOnErrorFieldSet; - - private YesNoType wholeFileField; - - private bool wholeFileFieldSet; - - private ISchemaElement parentElement; - - public UpgradeFile() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Foreign key into the File table. - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// If yes, the file is ignored during patching, and the next two attributes are ignored. - /// - public YesNoType Ignore - { - get - { - return this.ignoreField; - } - set - { - this.ignoreFieldSet = true; - this.ignoreField = value; - } - } - - /// - /// Specifies whether patching this file is vital. - /// - public YesNoType AllowIgnoreOnError - { - get - { - return this.allowIgnoreOnErrorField; - } - set - { - this.allowIgnoreOnErrorFieldSet = true; - this.allowIgnoreOnErrorField = value; - } - } - - /// - /// Whether the whole file should be installed, rather than creating a binary patch. - /// - public YesNoType WholeFile - { - get - { - return this.wholeFileField; - } - set - { - this.wholeFileFieldSet = true; - this.wholeFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UpgradeFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.ignoreFieldSet) - { - if ((this.ignoreField == YesNoType.no)) - { - writer.WriteAttributeString("Ignore", "no"); - } - if ((this.ignoreField == YesNoType.yes)) - { - writer.WriteAttributeString("Ignore", "yes"); - } - } - if (this.allowIgnoreOnErrorFieldSet) - { - if ((this.allowIgnoreOnErrorField == YesNoType.no)) - { - writer.WriteAttributeString("AllowIgnoreOnError", "no"); - } - if ((this.allowIgnoreOnErrorField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowIgnoreOnError", "yes"); - } - } - if (this.wholeFileFieldSet) - { - if ((this.wholeFileField == YesNoType.no)) - { - writer.WriteAttributeString("WholeFile", "no"); - } - if ((this.wholeFileField == YesNoType.yes)) - { - writer.WriteAttributeString("WholeFile", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("Ignore" == name)) - { - this.ignoreField = Enums.ParseYesNoType(value); - this.ignoreFieldSet = true; - } - if (("AllowIgnoreOnError" == name)) - { - this.allowIgnoreOnErrorField = Enums.ParseYesNoType(value); - this.allowIgnoreOnErrorFieldSet = true; - } - if (("WholeFile" == name)) - { - this.wholeFileField = Enums.ParseYesNoType(value); - this.wholeFileFieldSet = true; - } - } - } - - /// - /// A path to symbols. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SymbolPath : ISchemaElement, ISetAttributes - { - - private string pathField; - - private bool pathFieldSet; - - private ISchemaElement parentElement; - - /// - /// The path. - /// - public string Path - { - get - { - return this.pathField; - } - set - { - this.pathFieldSet = true; - this.pathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SymbolPath", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.pathFieldSet) - { - writer.WriteAttributeString("Path", this.pathField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Path" == name)) - { - this.pathField = value; - this.pathFieldSet = true; - } - } - } - - /// - /// Properties about the package to be placed in the Summary Information Stream. These are - /// visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Package : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType adminImageField; - - private bool adminImageFieldSet; - - private string commentsField; - - private bool commentsFieldSet; - - private YesNoType compressedField; - - private bool compressedFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private InstallPrivilegesType installPrivilegesField; - - private bool installPrivilegesFieldSet; - - private InstallScopeType installScopeField; - - private bool installScopeFieldSet; - - private int installerVersionField; - - private bool installerVersionFieldSet; - - private string keywordsField; - - private bool keywordsFieldSet; - - private string languagesField; - - private bool languagesFieldSet; - - private string manufacturerField; - - private bool manufacturerFieldSet; - - private string platformsField; - - private bool platformsFieldSet; - - private PlatformType platformField; - - private bool platformFieldSet; - - private YesNoDefaultType readOnlyField; - - private bool readOnlyFieldSet; - - private YesNoType shortNamesField; - - private bool shortNamesFieldSet; - - private string summaryCodepageField; - - private bool summaryCodepageFieldSet; - - private ISchemaElement parentElement; - - /// - /// The package code GUID for a product or merge module. - /// When compiling a product, this attribute should not be set in order to allow the package - /// code to be generated for each build. - /// When compiling a merge module, this attribute must be set to the modularization guid. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set to 'yes' if the source is an admin image. - /// - public YesNoType AdminImage - { - get - { - return this.adminImageField; - } - set - { - this.adminImageFieldSet = true; - this.adminImageField = value; - } - } - - /// - /// Optional comments for browsing. - /// - public string Comments - { - get - { - return this.commentsField; - } - set - { - this.commentsFieldSet = true; - this.commentsField = value; - } - } - - /// - /// Set to 'yes' to have compressed files in the source. - /// This attribute cannot be set for merge modules. - /// - public YesNoType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// The product full name or description. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Use this attribute to specify the priviliges required to install the package on Windows Vista and above. - /// - public InstallPrivilegesType InstallPrivileges - { - get - { - return this.installPrivilegesField; - } - set - { - this.installPrivilegesFieldSet = true; - this.installPrivilegesField = value; - } - } - - /// - /// Use this attribute to specify the installation scope of this package: per-machine or per-user. - /// - public InstallScopeType InstallScope - { - get - { - return this.installScopeField; - } - set - { - this.installScopeFieldSet = true; - this.installScopeField = value; - } - } - - /// - /// The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer - /// and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and - /// "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as - /// Windows Installer 2.0 was the first version to support 64-bit packages. - /// - public int InstallerVersion - { - get - { - return this.installerVersionField; - } - set - { - this.installerVersionFieldSet = true; - this.installerVersionField = value; - } - } - - /// - /// Optional keywords for browsing. - /// - public string Keywords - { - get - { - return this.keywordsField; - } - set - { - this.keywordsFieldSet = true; - this.keywordsField = value; - } - } - - /// - /// The list of language IDs (LCIDs) supported in the package. - /// - public string Languages - { - get - { - return this.languagesField; - } - set - { - this.languagesFieldSet = true; - this.languagesField = value; - } - } - - /// - /// The vendor releasing the package. - /// - public string Manufacturer - { - get - { - return this.manufacturerField; - } - set - { - this.manufacturerFieldSet = true; - this.manufacturerField = value; - } - } - - /// - /// The list of platforms supported by the package. This attribute has been deprecated. - /// Specify the -arch switch at the candle.exe command line or the InstallerPlatform - /// property in a .wixproj MSBuild project. - /// - public string Platforms - { - get - { - return this.platformsField; - } - set - { - this.platformsFieldSet = true; - this.platformsField = value; - } - } - - /// - /// The platform supported by the package. Use of this attribute is discouraged; instead, - /// specify the -arch switch at the candle.exe command line or the InstallerPlatform - /// property in a .wixproj MSBuild project. - /// - public PlatformType Platform - { - get - { - return this.platformField; - } - set - { - this.platformFieldSet = true; - this.platformField = value; - } - } - - /// - /// The value of this attribute conveys whether the package should be opened as read-only. - /// A database editing tool should not modify a read-only enforced database and should - /// issue a warning at attempts to modify a read-only recommended database. - /// - public YesNoDefaultType ReadOnly - { - get - { - return this.readOnlyField; - } - set - { - this.readOnlyFieldSet = true; - this.readOnlyField = value; - } - } - - /// - /// Set to 'yes' to have short filenames in the source. - /// - public YesNoType ShortNames - { - get - { - return this.shortNamesField; - } - set - { - this.shortNamesFieldSet = true; - this.shortNamesField = value; - } - } - - /// - /// The code page integer value or web name for summary info strings only. See remarks for more information. - /// - public string SummaryCodepage - { - get - { - return this.summaryCodepageField; - } - set - { - this.summaryCodepageFieldSet = true; - this.summaryCodepageField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a InstallPrivilegesType from a string. - /// - public static InstallPrivilegesType ParseInstallPrivilegesType(string value) - { - InstallPrivilegesType parsedValue; - Package.TryParseInstallPrivilegesType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallPrivilegesType from a string. - /// - public static bool TryParseInstallPrivilegesType(string value, out InstallPrivilegesType parsedValue) - { - parsedValue = InstallPrivilegesType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("limited" == value)) - { - parsedValue = InstallPrivilegesType.limited; - } - else - { - if (("elevated" == value)) - { - parsedValue = InstallPrivilegesType.elevated; - } - else - { - parsedValue = InstallPrivilegesType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a InstallScopeType from a string. - /// - public static InstallScopeType ParseInstallScopeType(string value) - { - InstallScopeType parsedValue; - Package.TryParseInstallScopeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallScopeType from a string. - /// - public static bool TryParseInstallScopeType(string value, out InstallScopeType parsedValue) - { - parsedValue = InstallScopeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("perMachine" == value)) - { - parsedValue = InstallScopeType.perMachine; - } - else - { - if (("perUser" == value)) - { - parsedValue = InstallScopeType.perUser; - } - else - { - parsedValue = InstallScopeType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a PlatformType from a string. - /// - public static PlatformType ParsePlatformType(string value) - { - PlatformType parsedValue; - Package.TryParsePlatformType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a PlatformType from a string. - /// - public static bool TryParsePlatformType(string value, out PlatformType parsedValue) - { - parsedValue = PlatformType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("x86" == value)) - { - parsedValue = PlatformType.x86; - } - else - { - if (("ia64" == value)) - { - parsedValue = PlatformType.ia64; - } - else - { - if (("x64" == value)) - { - parsedValue = PlatformType.x64; - } - else - { - if (("arm" == value)) - { - parsedValue = PlatformType.arm; - } - else - { - if (("intel" == value)) - { - parsedValue = PlatformType.intel; - } - else - { - if (("intel64" == value)) - { - parsedValue = PlatformType.intel64; - } - else - { - parsedValue = PlatformType.IllegalValue; - return false; - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Package", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.adminImageFieldSet) - { - if ((this.adminImageField == YesNoType.no)) - { - writer.WriteAttributeString("AdminImage", "no"); - } - if ((this.adminImageField == YesNoType.yes)) - { - writer.WriteAttributeString("AdminImage", "yes"); - } - } - if (this.commentsFieldSet) - { - writer.WriteAttributeString("Comments", this.commentsField); - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.installPrivilegesFieldSet) - { - if ((this.installPrivilegesField == InstallPrivilegesType.limited)) - { - writer.WriteAttributeString("InstallPrivileges", "limited"); - } - if ((this.installPrivilegesField == InstallPrivilegesType.elevated)) - { - writer.WriteAttributeString("InstallPrivileges", "elevated"); - } - } - if (this.installScopeFieldSet) - { - if ((this.installScopeField == InstallScopeType.perMachine)) - { - writer.WriteAttributeString("InstallScope", "perMachine"); - } - if ((this.installScopeField == InstallScopeType.perUser)) - { - writer.WriteAttributeString("InstallScope", "perUser"); - } - } - if (this.installerVersionFieldSet) - { - writer.WriteAttributeString("InstallerVersion", this.installerVersionField.ToString(CultureInfo.InvariantCulture)); - } - if (this.keywordsFieldSet) - { - writer.WriteAttributeString("Keywords", this.keywordsField); - } - if (this.languagesFieldSet) - { - writer.WriteAttributeString("Languages", this.languagesField); - } - if (this.manufacturerFieldSet) - { - writer.WriteAttributeString("Manufacturer", this.manufacturerField); - } - if (this.platformsFieldSet) - { - writer.WriteAttributeString("Platforms", this.platformsField); - } - if (this.platformFieldSet) - { - if ((this.platformField == PlatformType.x86)) - { - writer.WriteAttributeString("Platform", "x86"); - } - if ((this.platformField == PlatformType.ia64)) - { - writer.WriteAttributeString("Platform", "ia64"); - } - if ((this.platformField == PlatformType.x64)) - { - writer.WriteAttributeString("Platform", "x64"); - } - if ((this.platformField == PlatformType.arm)) - { - writer.WriteAttributeString("Platform", "arm"); - } - if ((this.platformField == PlatformType.intel)) - { - writer.WriteAttributeString("Platform", "intel"); - } - if ((this.platformField == PlatformType.intel64)) - { - writer.WriteAttributeString("Platform", "intel64"); - } - } - if (this.readOnlyFieldSet) - { - if ((this.readOnlyField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("ReadOnly", "default"); - } - if ((this.readOnlyField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("ReadOnly", "no"); - } - if ((this.readOnlyField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("ReadOnly", "yes"); - } - } - if (this.shortNamesFieldSet) - { - if ((this.shortNamesField == YesNoType.no)) - { - writer.WriteAttributeString("ShortNames", "no"); - } - if ((this.shortNamesField == YesNoType.yes)) - { - writer.WriteAttributeString("ShortNames", "yes"); - } - } - if (this.summaryCodepageFieldSet) - { - writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("AdminImage" == name)) - { - this.adminImageField = Enums.ParseYesNoType(value); - this.adminImageFieldSet = true; - } - if (("Comments" == name)) - { - this.commentsField = value; - this.commentsFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoType(value); - this.compressedFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("InstallPrivileges" == name)) - { - this.installPrivilegesField = Package.ParseInstallPrivilegesType(value); - this.installPrivilegesFieldSet = true; - } - if (("InstallScope" == name)) - { - this.installScopeField = Package.ParseInstallScopeType(value); - this.installScopeFieldSet = true; - } - if (("InstallerVersion" == name)) - { - this.installerVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.installerVersionFieldSet = true; - } - if (("Keywords" == name)) - { - this.keywordsField = value; - this.keywordsFieldSet = true; - } - if (("Languages" == name)) - { - this.languagesField = value; - this.languagesFieldSet = true; - } - if (("Manufacturer" == name)) - { - this.manufacturerField = value; - this.manufacturerFieldSet = true; - } - if (("Platforms" == name)) - { - this.platformsField = value; - this.platformsFieldSet = true; - } - if (("Platform" == name)) - { - this.platformField = Package.ParsePlatformType(value); - this.platformFieldSet = true; - } - if (("ReadOnly" == name)) - { - this.readOnlyField = Enums.ParseYesNoDefaultType(value); - this.readOnlyFieldSet = true; - } - if (("ShortNames" == name)) - { - this.shortNamesField = Enums.ParseYesNoType(value); - this.shortNamesFieldSet = true; - } - if (("SummaryCodepage" == name)) - { - this.summaryCodepageField = value; - this.summaryCodepageFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallPrivilegesType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set this value to declare that the package does not require elevated privileges to install. - /// - limited, - - /// - /// Set this value to declare that the package requires elevated privileges to install. - /// This is the default value. - /// - elevated, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallScopeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set this value to declare that the package is a per-machine installation and requires elevated privileges to install. - /// Sets the ALLUSERS property to 1. - /// - perMachine, - - /// - /// Set this value to declare that the package is a per-user installation and does not require elevated privileges to install. - /// Sets the package's InstallPrivileges attribute to "limited." - /// - perUser, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum PlatformType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set this value to declare that the package is an x86 package. - /// - x86, - - /// - /// Set this value to declare that the package is an ia64 package. - /// This value requires that the InstallerVersion property be set to 200 or greater. - /// - ia64, - - /// - /// Set this value to declare that the package is an x64 package. - /// This value requires that the InstallerVersion property be set to 200 or greater. - /// - x64, - - /// - /// Set this value to declare that the package is an arm package. - /// This value requires that the InstallerVersion property be set to 500 or greater. - /// - arm, - - /// - /// This value has been deprecated. Use "x86" instead. - /// - intel, - - /// - /// This value has been deprecated. Use "ia64" instead. - /// - intel64, - } - } - - /// - /// The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. - /// Consider using the Assembly attribute on File element to have the toolset populate these entries automatically. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AssemblyName : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Name of the attribute associated with the value specified in the Value column. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Value associated with the name specified in the Name column. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AssemblyName", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Identifies the possible signer certificates used to digitally sign patches. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public PatchCertificates() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalCertificate" == childName)) - { - childValue = new DigitalCertificate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchCertificates", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Digital signatures that identify installation packages in a multi-product transaction. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PackageCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public PackageCertificates() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalCertificate" == childName)) - { - childValue = new DigitalCertificate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PackageCertificates", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Adds a digital certificate. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DigitalCertificate : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for a certificate file. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The path to the certificate file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DigitalCertificate", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents - /// to be included in the installer database. This is only used for references when patching. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DigitalCertificateRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DigitalCertificateRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Adds a digital signature. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DigitalSignature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - public DigitalSignature() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The path to signature's optional hash file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalCertificate" == childName)) - { - childValue = new DigitalCertificate(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DigitalSignature", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Adds a system file protection update catalog file - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SFPCatalog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string nameField; - - private bool nameFieldSet; - - private string dependencyField; - - private bool dependencyFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - public SFPCatalog() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPFile))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Filename for catalog file when installed. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Used to define dependency outside of the package. - /// - public string Dependency - { - get - { - return this.dependencyField; - } - set - { - this.dependencyFieldSet = true; - this.dependencyField = value; - } - } - - /// - /// Path to catalog file in binary. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("SFPCatalog" == childName)) - { - childValue = new SFPCatalog(); - } - if (("SFPFile" == childName)) - { - childValue = new SFPFile(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SFPCatalog", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.dependencyFieldSet) - { - writer.WriteAttributeString("Dependency", this.dependencyField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Dependency" == name)) - { - this.dependencyField = value; - this.dependencyFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - /// - /// Provides a many-to-many mapping from the SFPCatalog table to the File table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SFPFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary Key to File Table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SFPFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Adds or removes .ini file entries. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IniFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sectionField; - - private bool sectionFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for ini file. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The type of modification to be made. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// The localizable .ini file key within the section. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short name. - /// This attribute's value may now be either a short or long name. - /// If a short name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short name. - /// However, if this name collides with another file or you wish to manually specify - /// the short name, then the ShortName attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The localizable .ini file section. - /// - public string Section - { - get - { - return this.sectionField; - } - set - { - this.sectionFieldSet = true; - this.sectionField = value; - } - } - - /// - /// The short name of the in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short names - /// or the user wants to manually specify the short name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// The localizable value to be written or deleted. This attribute must be set if - /// the Action attribute's value is "addLine", "addTag", or "createLine". - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - IniFile.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("addLine" == value)) - { - parsedValue = ActionType.addLine; - } - else - { - if (("addTag" == value)) - { - parsedValue = ActionType.addTag; - } - else - { - if (("createLine" == value)) - { - parsedValue = ActionType.createLine; - } - else - { - if (("removeLine" == value)) - { - parsedValue = ActionType.removeLine; - } - else - { - if (("removeTag" == value)) - { - parsedValue = ActionType.removeTag; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IniFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.addLine)) - { - writer.WriteAttributeString("Action", "addLine"); - } - if ((this.actionField == ActionType.addTag)) - { - writer.WriteAttributeString("Action", "addTag"); - } - if ((this.actionField == ActionType.createLine)) - { - writer.WriteAttributeString("Action", "createLine"); - } - if ((this.actionField == ActionType.removeLine)) - { - writer.WriteAttributeString("Action", "removeLine"); - } - if ((this.actionField == ActionType.removeTag)) - { - writer.WriteAttributeString("Action", "removeTag"); - } - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sectionFieldSet) - { - writer.WriteAttributeString("Section", this.sectionField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = IniFile.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Section" == name)) - { - this.sectionField = value; - this.sectionFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Creates or updates an .ini entry. - /// - addLine, - - /// - /// Creates a new entry or appends a new comma-separated value to an existing entry. - /// - addTag, - - /// - /// Creates an .ini entry only if the entry does no already exist. - /// - createLine, - - /// - /// Removes an .ini entry. - /// - removeLine, - - /// - /// Removes a tag from an .ini entry. - /// - removeTag, - } - } - - /// - /// ODBCDataSource for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ODBCDataSource : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string driverNameField; - - private bool driverNameFieldSet; - - private RegistrationType registrationField; - - private bool registrationFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private ISchemaElement parentElement; - - public ODBCDataSource() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier of the data source. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for the data source. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Required if not found as child of ODBCDriver element - /// - public string DriverName - { - get - { - return this.driverNameField; - } - set - { - this.driverNameFieldSet = true; - this.driverNameField = value; - } - } - - /// - /// Scope for which the data source should be registered. - /// - public RegistrationType Registration - { - get - { - return this.registrationField; - } - set - { - this.registrationFieldSet = true; - this.registrationField = value; - } - } - - /// - /// Set 'yes' to force this file to be key path for parent Component - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Property" == childName)) - { - childValue = new Property(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a RegistrationType from a string. - /// - public static RegistrationType ParseRegistrationType(string value) - { - RegistrationType parsedValue; - ODBCDataSource.TryParseRegistrationType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a RegistrationType from a string. - /// - public static bool TryParseRegistrationType(string value, out RegistrationType parsedValue) - { - parsedValue = RegistrationType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("machine" == value)) - { - parsedValue = RegistrationType.machine; - } - else - { - if (("user" == value)) - { - parsedValue = RegistrationType.user; - } - else - { - parsedValue = RegistrationType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ODBCDataSource", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.driverNameFieldSet) - { - writer.WriteAttributeString("DriverName", this.driverNameField); - } - if (this.registrationFieldSet) - { - if ((this.registrationField == RegistrationType.machine)) - { - writer.WriteAttributeString("Registration", "machine"); - } - if ((this.registrationField == RegistrationType.user)) - { - writer.WriteAttributeString("Registration", "user"); - } - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DriverName" == name)) - { - this.driverNameField = value; - this.driverNameFieldSet = true; - } - if (("Registration" == name)) - { - this.registrationField = ODBCDataSource.ParseRegistrationType(value); - this.registrationFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum RegistrationType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Data source is registered per machine. - /// - machine, - - /// - /// Data source is registered per user. - /// - user, - } - } - - /// - /// ODBCDriver for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ODBCDriver : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string fileField; - - private bool fileFieldSet; - - private string setupFileField; - - private bool setupFileFieldSet; - - private ISchemaElement parentElement; - - public ODBCDriver() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ODBCDataSource))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the driver. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for the driver. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Required if not found as child of File element - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// Required if not found as child of File element or different from File attribute above - /// - public string SetupFile - { - get - { - return this.setupFileField; - } - set - { - this.setupFileFieldSet = true; - this.setupFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("ODBCDataSource" == childName)) - { - childValue = new ODBCDataSource(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ODBCDriver", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.setupFileFieldSet) - { - writer.WriteAttributeString("SetupFile", this.setupFileField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("SetupFile" == name)) - { - this.setupFileField = value; - this.setupFileFieldSet = true; - } - } - } - - /// - /// ODBCTranslator for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ODBCTranslator : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string fileField; - - private bool fileFieldSet; - - private string setupFileField; - - private bool setupFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for the translator. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for the translator. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Required if not found as child of File element - /// - public string File - { - get - { - return this.fileField; - } - set - { - this.fileFieldSet = true; - this.fileField = value; - } - } - - /// - /// Required if not found as child of File element or different from File attribute above - /// - public string SetupFile - { - get - { - return this.setupFileField; - } - set - { - this.setupFileFieldSet = true; - this.setupFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ODBCTranslator", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.fileFieldSet) - { - writer.WriteAttributeString("File", this.fileField); - } - if (this.setupFileFieldSet) - { - writer.WriteAttributeString("SetupFile", this.setupFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("File" == name)) - { - this.fileField = value; - this.fileFieldSet = true; - } - if (("SetupFile" == name)) - { - this.setupFileField = value; - this.setupFileFieldSet = true; - } - } - } - - /// - /// Searches for file and assigns to fullpath value of parent Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileSearch : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private int minSizeField; - - private bool minSizeFieldSet; - - private int maxSizeField; - - private bool maxSizeFieldSet; - - private string minVersionField; - - private bool minVersionFieldSet; - - private string maxVersionField; - - private bool maxVersionFieldSet; - - private DateTime minDateField; - - private bool minDateFieldSet; - - private DateTime maxDateField; - - private bool maxDateFieldSet; - - private string languagesField; - - private bool languagesFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// This attribute's value may now be either a short or long file name. - /// If a short file name is specified, the ShortName attribute may not be specified. - /// If you wish to manually specify the short file name, then the ShortName - /// attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// There is a Windows Installer bug which prevents the FileSearch functionality from working - /// if both a short and long file name are specified. Since the Name attribute allows either - /// a short or long name to be specified, it is the only attribute related to file names which - /// should be specified. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// The minimum size of the file. - /// - public int MinSize - { - get - { - return this.minSizeField; - } - set - { - this.minSizeFieldSet = true; - this.minSizeField = value; - } - } - - /// - /// The maximum size of the file. - /// - public int MaxSize - { - get - { - return this.maxSizeField; - } - set - { - this.maxSizeFieldSet = true; - this.maxSizeField = value; - } - } - - /// - /// The minimum version of the file. - /// - public string MinVersion - { - get - { - return this.minVersionField; - } - set - { - this.minVersionFieldSet = true; - this.minVersionField = value; - } - } - - /// - /// The maximum version of the file. - /// - public string MaxVersion - { - get - { - return this.maxVersionField; - } - set - { - this.maxVersionFieldSet = true; - this.maxVersionField = value; - } - } - - /// - /// The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. - /// - public DateTime MinDate - { - get - { - return this.minDateField; - } - set - { - this.minDateFieldSet = true; - this.minDateField = value; - } - } - - /// - /// The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. - /// - public DateTime MaxDate - { - get - { - return this.maxDateField; - } - set - { - this.maxDateFieldSet = true; - this.maxDateField = value; - } - } - - /// - /// The languages supported by the file. - /// - public string Languages - { - get - { - return this.languagesField; - } - set - { - this.languagesFieldSet = true; - this.languagesField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.minSizeFieldSet) - { - writer.WriteAttributeString("MinSize", this.minSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maxSizeFieldSet) - { - writer.WriteAttributeString("MaxSize", this.maxSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.minVersionFieldSet) - { - writer.WriteAttributeString("MinVersion", this.minVersionField); - } - if (this.maxVersionFieldSet) - { - writer.WriteAttributeString("MaxVersion", this.maxVersionField); - } - if (this.minDateFieldSet) - { - writer.WriteAttributeString("MinDate", this.minDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); - } - if (this.maxDateFieldSet) - { - writer.WriteAttributeString("MaxDate", this.maxDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); - } - if (this.languagesFieldSet) - { - writer.WriteAttributeString("Languages", this.languagesField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("MinSize" == name)) - { - this.minSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.minSizeFieldSet = true; - } - if (("MaxSize" == name)) - { - this.maxSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maxSizeFieldSet = true; - } - if (("MinVersion" == name)) - { - this.minVersionField = value; - this.minVersionFieldSet = true; - } - if (("MaxVersion" == name)) - { - this.maxVersionField = value; - this.maxVersionFieldSet = true; - } - if (("MinDate" == name)) - { - this.minDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); - this.minDateFieldSet = true; - } - if (("MaxDate" == name)) - { - this.maxDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); - this.maxDateFieldSet = true; - } - if (("Languages" == name)) - { - this.languagesField = value; - this.languagesFieldSet = true; - } - } - } - - /// - /// References an existing FileSearch element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileSearchRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specify the Id to the FileSearch to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Searches for directory and assigns to value of parent Property. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DirectorySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string pathField; - - private bool pathFieldSet; - - private int depthField; - - private bool depthFieldSet; - - private YesNoType assignToPropertyField; - - private bool assignToPropertyFieldSet; - - private ISchemaElement parentElement; - - public DirectorySearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the directory search. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Path on the user's system. Either absolute, or relative to containing directories. - /// - public string Path - { - get - { - return this.pathField; - } - set - { - this.pathFieldSet = true; - this.pathField = value; - } - } - - /// - /// Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information. - /// - public int Depth - { - get - { - return this.depthField; - } - set - { - this.depthFieldSet = true; - this.depthField = value; - } - } - - /// - /// Set the value of the outer Property to the result of this search. See remarks for more information. - /// - public YesNoType AssignToProperty - { - get - { - return this.assignToPropertyField; - } - set - { - this.assignToPropertyFieldSet = true; - this.assignToPropertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.pathFieldSet) - { - writer.WriteAttributeString("Path", this.pathField); - } - if (this.depthFieldSet) - { - writer.WriteAttributeString("Depth", this.depthField.ToString(CultureInfo.InvariantCulture)); - } - if (this.assignToPropertyFieldSet) - { - if ((this.assignToPropertyField == YesNoType.no)) - { - writer.WriteAttributeString("AssignToProperty", "no"); - } - if ((this.assignToPropertyField == YesNoType.yes)) - { - writer.WriteAttributeString("AssignToProperty", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Path" == name)) - { - this.pathField = value; - this.pathFieldSet = true; - } - if (("Depth" == name)) - { - this.depthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.depthFieldSet = true; - } - if (("AssignToProperty" == name)) - { - this.assignToPropertyField = Enums.ParseYesNoType(value); - this.assignToPropertyFieldSet = true; - } - } - } - - /// - /// References an existing DirectorySearch element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DirectorySearchRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string parentField; - - private bool parentFieldSet; - - private string pathField; - - private bool pathFieldSet; - - private ISchemaElement parentElement; - - public DirectorySearchRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Id of the search being referred to. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables. - /// - public string Parent - { - get - { - return this.parentField; - } - set - { - this.parentFieldSet = true; - this.parentField = value; - } - } - - /// - /// Path on the user's system. Either absolute, or relative to containing directories. - /// - public string Path - { - get - { - return this.pathField; - } - set - { - this.pathFieldSet = true; - this.pathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.parentFieldSet) - { - writer.WriteAttributeString("Parent", this.parentField); - } - if (this.pathFieldSet) - { - writer.WriteAttributeString("Path", this.pathField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Parent" == name)) - { - this.parentField = value; - this.parentFieldSet = true; - } - if (("Path" == name)) - { - this.pathField = value; - this.pathFieldSet = true; - } - } - } - - /// - /// Searches for file or directory and assigns to value of parent Property. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string guidField; - - private bool guidFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - public ComponentSearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The component ID of the component whose key path is to be used for the search. - /// - public string Guid - { - get - { - return this.guidField; - } - set - { - this.guidFieldSet = true; - this.guidField = value; - } - } - - /// - /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - ComponentSearch.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("directory" == value)) - { - parsedValue = TypeType.directory; - } - else - { - if (("file" == value)) - { - parsedValue = TypeType.file; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.guidFieldSet) - { - writer.WriteAttributeString("Guid", this.guidField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.directory)) - { - writer.WriteAttributeString("Type", "directory"); - } - if ((this.typeField == TypeType.file)) - { - writer.WriteAttributeString("Type", "file"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Guid" == name)) - { - this.guidField = value; - this.guidFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = ComponentSearch.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The key path of the component is a directory. - /// - directory, - - /// - /// The key path of the component is a file. This is the default value. - /// - file, - } - } - - /// - /// Searches for file, directory or registry key and assigns to value of parent Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IniFileSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private int fieldField; - - private bool fieldFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sectionField; - - private bool sectionFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - public IniFileSearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// External key into the Signature table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The field in the .ini line. If field is Null or 0, the entire line is read. - /// - public int Field - { - get - { - return this.fieldField; - } - set - { - this.fieldFieldSet = true; - this.fieldField = value; - } - } - - /// - /// The key value within the section. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short name. - /// This attribute's value may now be either a short or long name. - /// If a short name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short name. - /// However, if you wish to manually specify the short name, then the ShortName - /// attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The localizable .ini file section. - /// - public string Section - { - get - { - return this.sectionField; - } - set - { - this.sectionFieldSet = true; - this.sectionField = value; - } - } - - /// - /// The short name of the file in 8.3 format. - /// This attribute should only be set if the user wants to manually specify the short name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - IniFileSearch.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("directory" == value)) - { - parsedValue = TypeType.directory; - } - else - { - if (("file" == value)) - { - parsedValue = TypeType.file; - } - else - { - if (("raw" == value)) - { - parsedValue = TypeType.raw; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IniFileSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.fieldFieldSet) - { - writer.WriteAttributeString("Field", this.fieldField.ToString(CultureInfo.InvariantCulture)); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sectionFieldSet) - { - writer.WriteAttributeString("Section", this.sectionField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.directory)) - { - writer.WriteAttributeString("Type", "directory"); - } - if ((this.typeField == TypeType.file)) - { - writer.WriteAttributeString("Type", "file"); - } - if ((this.typeField == TypeType.raw)) - { - writer.WriteAttributeString("Type", "raw"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Field" == name)) - { - this.fieldField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.fieldFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Section" == name)) - { - this.sectionField = value; - this.sectionFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = IniFileSearch.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// A directory location. - /// - directory, - - /// - /// A file location. This is the default value. - /// - file, - - /// - /// A raw .ini value. - /// - raw, - } - } - - /// - /// Searches for file, directory or registry key and assigns to value of parent Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistrySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private RootType rootField; - - private bool rootFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private ISchemaElement parentElement; - - public RegistrySearch() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Signature to be used for the file, directory or registry key being searched for. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Root key for the registry value. - /// - public RootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - /// - /// Key for the registry value. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. - /// The default value is based on the platform set by the -arch switch to candle.exe - /// or the InstallerPlatform property in a .wixproj MSBuild project: - /// For x86 and ARM, the default value is 'no'. - /// For x64 and IA64, the default value is 'yes'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("FileSearch" == childName)) - { - childValue = new FileSearch(); - } - if (("FileSearchRef" == childName)) - { - childValue = new FileSearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a RootType from a string. - /// - public static RootType ParseRootType(string value) - { - RootType parsedValue; - RegistrySearch.TryParseRootType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a RootType from a string. - /// - public static bool TryParseRootType(string value, out RootType parsedValue) - { - parsedValue = RootType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("HKCR" == value)) - { - parsedValue = RootType.HKCR; - } - else - { - if (("HKCU" == value)) - { - parsedValue = RootType.HKCU; - } - else - { - if (("HKLM" == value)) - { - parsedValue = RootType.HKLM; - } - else - { - if (("HKU" == value)) - { - parsedValue = RootType.HKU; - } - else - { - parsedValue = RootType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - RegistrySearch.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("directory" == value)) - { - parsedValue = TypeType.directory; - } - else - { - if (("file" == value)) - { - parsedValue = TypeType.file; - } - else - { - if (("raw" == value)) - { - parsedValue = TypeType.raw; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistrySearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.directory)) - { - writer.WriteAttributeString("Type", "directory"); - } - if ((this.typeField == TypeType.file)) - { - writer.WriteAttributeString("Type", "file"); - } - if ((this.typeField == TypeType.raw)) - { - writer.WriteAttributeString("Type", "raw"); - } - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = RegistrySearch.ParseRootType(value); - this.rootFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = RegistrySearch.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum RootType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// HKEY_CLASSES_ROOT - /// - HKCR, - - /// - /// HKEY_CURRENT_USER - /// - HKCU, - - /// - /// HKEY_LOCAL_MACHINE - /// - HKLM, - - /// - /// HKEY_USERS - /// - HKU, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The registry value contains the path to a directory. - /// - directory, - - /// - /// The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned. - /// - file, - - /// - /// Sets the raw value from the registry value. Please note that this value will contain a prefix as follows: - /// - raw, - } - } - - /// - /// References an existing RegistrySearch element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistrySearchRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specify the Id of the RegistrySearch to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistrySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Sets the parent of a nested DirectorySearch element to CCP_DRIVE. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComplianceDrive : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public ComplianceDrive() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComplianceDrive", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Adds a row to the CCPSearch table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComplianceCheck : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public ComplianceCheck() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ComplianceDrive" == childName)) - { - childValue = new ComplianceDrive(); - } - if (("ComponentSearch" == childName)) - { - childValue = new ComponentSearch(); - } - if (("RegistrySearch" == childName)) - { - childValue = new RegistrySearch(); - } - if (("IniFileSearch" == childName)) - { - childValue = new IniFileSearch(); - } - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComplianceCheck", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Property value for a Product or Module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Property : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private YesNoType complianceCheckField; - - private bool complianceCheckFieldSet; - - private YesNoType adminField; - - private bool adminFieldSet; - - private YesNoType secureField; - - private bool secureFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType suppressModularizationField; - - private bool suppressModularizationFieldSet; - - private ISchemaElement parentElement; - - public Property() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearchRef))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearchRef))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ProductSearch))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for Property. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Sets a default value for the property. The value will be overwritten if the Property is used for a search. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element. - /// - public YesNoType ComplianceCheck - { - get - { - return this.complianceCheckField; - } - set - { - this.complianceCheckFieldSet = true; - this.complianceCheckField = value; - } - } - - /// - /// Denotes that the Property is saved during - /// - public YesNoType Admin - { - get - { - return this.adminField; - } - set - { - this.adminFieldSet = true; - this.adminField = value; - } - } - - /// - /// Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the - /// - public YesNoType Secure - { - get - { - return this.secureField; - } - set - { - this.secureFieldSet = true; - this.secureField = value; - } - } - - /// - /// Denotes that the Property is not logged during installation. See the - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Use to suppress modularization of this property identifier in merge modules. - /// Using this functionality is strongly discouraged; it should only be - /// necessary as a workaround of last resort in rare scenarios. - /// - public YesNoType SuppressModularization - { - get - { - return this.suppressModularizationField; - } - set - { - this.suppressModularizationFieldSet = true; - this.suppressModularizationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ComplianceDrive" == childName)) - { - childValue = new ComplianceDrive(); - } - if (("ComponentSearch" == childName)) - { - childValue = new ComponentSearch(); - } - if (("RegistrySearch" == childName)) - { - childValue = new RegistrySearch(); - } - if (("RegistrySearchRef" == childName)) - { - childValue = new RegistrySearchRef(); - } - if (("IniFileSearch" == childName)) - { - childValue = new IniFileSearch(); - } - if (("DirectorySearch" == childName)) - { - childValue = new DirectorySearch(); - } - if (("DirectorySearchRef" == childName)) - { - childValue = new DirectorySearchRef(); - } - if (("ProductSearch" == childName)) - { - childValue = new ProductSearch(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Property", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.complianceCheckFieldSet) - { - if ((this.complianceCheckField == YesNoType.no)) - { - writer.WriteAttributeString("ComplianceCheck", "no"); - } - if ((this.complianceCheckField == YesNoType.yes)) - { - writer.WriteAttributeString("ComplianceCheck", "yes"); - } - } - if (this.adminFieldSet) - { - if ((this.adminField == YesNoType.no)) - { - writer.WriteAttributeString("Admin", "no"); - } - if ((this.adminField == YesNoType.yes)) - { - writer.WriteAttributeString("Admin", "yes"); - } - } - if (this.secureFieldSet) - { - if ((this.secureField == YesNoType.no)) - { - writer.WriteAttributeString("Secure", "no"); - } - if ((this.secureField == YesNoType.yes)) - { - writer.WriteAttributeString("Secure", "yes"); - } - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.suppressModularizationFieldSet) - { - if ((this.suppressModularizationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressModularization", "no"); - } - if ((this.suppressModularizationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressModularization", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("ComplianceCheck" == name)) - { - this.complianceCheckField = Enums.ParseYesNoType(value); - this.complianceCheckFieldSet = true; - } - if (("Admin" == name)) - { - this.adminField = Enums.ParseYesNoType(value); - this.adminFieldSet = true; - } - if (("Secure" == name)) - { - this.secureField = Enums.ParseYesNoType(value); - this.secureFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("SuppressModularization" == name)) - { - this.suppressModularizationField = Enums.ParseYesNoType(value); - this.suppressModularizationFieldSet = true; - } - } - } - - /// - /// Reference to a Property value. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PropertyRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier of Property to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PropertyRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Shortcut, default target is parent File, CreateFolder, or Component's Directory - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Shortcut : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private string targetField; - - private bool targetFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string argumentsField; - - private bool argumentsFieldSet; - - private int hotkeyField; - - private bool hotkeyFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private int iconIndexField; - - private bool iconIndexFieldSet; - - private ShowType showField; - - private bool showFieldSet; - - private string workingDirectoryField; - - private bool workingDirectoryFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string displayResourceDllField; - - private bool displayResourceDllFieldSet; - - private int displayResourceIdField; - - private bool displayResourceIdFieldSet; - - private string descriptionResourceDllField; - - private bool descriptionResourceDllFieldSet; - - private int descriptionResourceIdField; - - private bool descriptionResourceIdFieldSet; - - private ISchemaElement parentElement; - - public Shortcut() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ShortcutProperty))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the shortcut. This value will serve as the primary key for the row. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short name. - /// This attribute's value may now be either a short or long name. - /// If a short name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short name. - /// However, if this name collides with another shortcut or you wish to manually specify - /// the short name, then the ShortName attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short name of the shortcut in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short names - /// or the user wants to manually specify the short name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// This attribute can only be set if this Shortcut element is nested under a Component element. - /// When nested under a Component element, this attribute's value will default to the parent directory. - /// This attribute's value is the target for a non-advertised shortcut. - /// This attribute is not valid for advertised shortcuts. - /// If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut. - /// - public string Target - { - get - { - return this.targetField; - } - set - { - this.targetFieldSet = true; - this.targetField = value; - } - } - - /// - /// The localizable description for the shortcut. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// The command-line arguments for the shortcut. Note that the resolution of properties - /// in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the - /// property already has the intended value when the component owning the shortcut is installed. For example, for the - /// argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and - /// the component that owns the shortcut. - /// - public string Arguments - { - get - { - return this.argumentsField; - } - set - { - this.argumentsFieldSet = true; - this.argumentsField = value; - } - } - - /// - /// The hotkey for the shortcut. The low-order byte contains the virtual-key code for - /// the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of - /// installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a - /// users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys - /// for accessibility. - /// - public int Hotkey - { - get - { - return this.hotkeyField; - } - set - { - this.hotkeyFieldSet = true; - this.hotkeyField = value; - } - } - - /// - /// Identifier reference to Icon element. The Icon identifier should have the same extension - /// as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier - /// like "MyIcon.exe" - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// Identifier reference to Icon element. - /// - public int IconIndex - { - get - { - return this.iconIndexField; - } - set - { - this.iconIndexFieldSet = true; - this.iconIndexField = value; - } - } - - public ShowType Show - { - get - { - return this.showField; - } - set - { - this.showFieldSet = true; - this.showField = value; - } - } - - /// - /// Directory identifier (or Property identifier that resolves to a directory) that resolves - /// to the path of the working directory for the shortcut. - /// - public string WorkingDirectory - { - get - { - return this.workingDirectoryField; - } - set - { - this.workingDirectoryFieldSet = true; - this.workingDirectoryField = value; - } - } - - /// - /// Specifies if the shortcut should be advertised or not. Note that advertised shortcuts - /// always point at a particular application, identified by a ProductCode, and should not be shared between applications. - /// Advertised shortcuts only work for the most recently installed application, and are removed when that application is - /// removed. The default value is 'no'. - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally - /// authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also - /// be provided. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not populated and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and - /// the install is running on Vista and above, the value in the Name attribute is ignored. - /// - public string DisplayResourceDll - { - get - { - return this.displayResourceDllField; - } - set - { - this.displayResourceDllFieldSet = true; - this.displayResourceDllField = value; - } - } - - /// - /// The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the - /// DisplayResourceDll attribute must also be provided. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and - /// the install is running on Vista and above, the value in the Name attribute is ignored. - /// - public int DisplayResourceId - { - get - { - return this.displayResourceIdField; - } - set - { - this.displayResourceIdFieldSet = true; - this.displayResourceIdField = value; - } - } - - /// - /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally - /// authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also - /// be provided. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and - /// the install is running on Vista and above, the value in the Name attribute is ignored. - /// - public string DescriptionResourceDll - { - get - { - return this.descriptionResourceDllField; - } - set - { - this.descriptionResourceDllFieldSet = true; - this.descriptionResourceDllField = value; - } - } - - /// - /// The description name index for the shortcut. This must be a non-negative number. When this attribute is specified, - /// the DescriptionResourceDll attribute must also be populated. - /// - /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install - /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the - /// install is running on Vista and above, the value in the Name attribute is ignored. - /// - public int DescriptionResourceId - { - get - { - return this.descriptionResourceIdField; - } - set - { - this.descriptionResourceIdFieldSet = true; - this.descriptionResourceIdField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Icon" == childName)) - { - childValue = new Icon(); - } - if (("ShortcutProperty" == childName)) - { - childValue = new ShortcutProperty(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a ShowType from a string. - /// - public static ShowType ParseShowType(string value) - { - ShowType parsedValue; - Shortcut.TryParseShowType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ShowType from a string. - /// - public static bool TryParseShowType(string value, out ShowType parsedValue) - { - parsedValue = ShowType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("normal" == value)) - { - parsedValue = ShowType.normal; - } - else - { - if (("minimized" == value)) - { - parsedValue = ShowType.minimized; - } - else - { - if (("maximized" == value)) - { - parsedValue = ShowType.maximized; - } - else - { - parsedValue = ShowType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Shortcut", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.targetFieldSet) - { - writer.WriteAttributeString("Target", this.targetField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.argumentsFieldSet) - { - writer.WriteAttributeString("Arguments", this.argumentsField); - } - if (this.hotkeyFieldSet) - { - writer.WriteAttributeString("Hotkey", this.hotkeyField.ToString(CultureInfo.InvariantCulture)); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.iconIndexFieldSet) - { - writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); - } - if (this.showFieldSet) - { - if ((this.showField == ShowType.normal)) - { - writer.WriteAttributeString("Show", "normal"); - } - if ((this.showField == ShowType.minimized)) - { - writer.WriteAttributeString("Show", "minimized"); - } - if ((this.showField == ShowType.maximized)) - { - writer.WriteAttributeString("Show", "maximized"); - } - } - if (this.workingDirectoryFieldSet) - { - writer.WriteAttributeString("WorkingDirectory", this.workingDirectoryField); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.displayResourceDllFieldSet) - { - writer.WriteAttributeString("DisplayResourceDll", this.displayResourceDllField); - } - if (this.displayResourceIdFieldSet) - { - writer.WriteAttributeString("DisplayResourceId", this.displayResourceIdField.ToString(CultureInfo.InvariantCulture)); - } - if (this.descriptionResourceDllFieldSet) - { - writer.WriteAttributeString("DescriptionResourceDll", this.descriptionResourceDllField); - } - if (this.descriptionResourceIdFieldSet) - { - writer.WriteAttributeString("DescriptionResourceId", this.descriptionResourceIdField.ToString(CultureInfo.InvariantCulture)); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("Target" == name)) - { - this.targetField = value; - this.targetFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Arguments" == name)) - { - this.argumentsField = value; - this.argumentsFieldSet = true; - } - if (("Hotkey" == name)) - { - this.hotkeyField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.hotkeyFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("IconIndex" == name)) - { - this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.iconIndexFieldSet = true; - } - if (("Show" == name)) - { - this.showField = Shortcut.ParseShowType(value); - this.showFieldSet = true; - } - if (("WorkingDirectory" == name)) - { - this.workingDirectoryField = value; - this.workingDirectoryFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("DisplayResourceDll" == name)) - { - this.displayResourceDllField = value; - this.displayResourceDllFieldSet = true; - } - if (("DisplayResourceId" == name)) - { - this.displayResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.displayResourceIdFieldSet = true; - } - if (("DescriptionResourceDll" == name)) - { - this.descriptionResourceDllField = value; - this.descriptionResourceDllFieldSet = true; - } - if (("DescriptionResourceId" == name)) - { - this.descriptionResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.descriptionResourceIdFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ShowType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The shortcut target will be displayed using the SW_SHOWNORMAL attribute. - /// - normal, - - /// - /// The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute. - /// - minimized, - - /// - /// The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute. - /// - maximized, - } - } - - /// - /// Property values for a shortcut. This element's functionality is available starting with MSI 5.0. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ShortcutProperty : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// A formatted string identifying the property to be set. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// A formatted string supplying the value of the property. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ShortcutProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used - /// if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute. - /// The table and key are taken from the parent element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Permission : ISchemaElement, ISetAttributes - { - - private string domainField; - - private bool domainFieldSet; - - private string userField; - - private bool userFieldSet; - - private YesNoType readField; - - private bool readFieldSet; - - private YesNoType deleteField; - - private bool deleteFieldSet; - - private YesNoType readPermissionField; - - private bool readPermissionFieldSet; - - private YesNoType changePermissionField; - - private bool changePermissionFieldSet; - - private YesNoType takeOwnershipField; - - private bool takeOwnershipFieldSet; - - private YesNoType specificRightsAllField; - - private bool specificRightsAllFieldSet; - - private YesNoType readAttributesField; - - private bool readAttributesFieldSet; - - private YesNoType writeAttributesField; - - private bool writeAttributesFieldSet; - - private YesNoType readExtendedAttributesField; - - private bool readExtendedAttributesFieldSet; - - private YesNoType writeExtendedAttributesField; - - private bool writeExtendedAttributesFieldSet; - - private YesNoType synchronizeField; - - private bool synchronizeFieldSet; - - private YesNoType createFileField; - - private bool createFileFieldSet; - - private YesNoType createChildField; - - private bool createChildFieldSet; - - private YesNoType deleteChildField; - - private bool deleteChildFieldSet; - - private YesNoType traverseField; - - private bool traverseFieldSet; - - private YesNoType appendField; - - private bool appendFieldSet; - - private YesNoType executeField; - - private bool executeFieldSet; - - private YesNoType fileAllRightsField; - - private bool fileAllRightsFieldSet; - - private YesNoType writeField; - - private bool writeFieldSet; - - private YesNoType createSubkeysField; - - private bool createSubkeysFieldSet; - - private YesNoType enumerateSubkeysField; - - private bool enumerateSubkeysFieldSet; - - private YesNoType notifyField; - - private bool notifyFieldSet; - - private YesNoType createLinkField; - - private bool createLinkFieldSet; - - private YesNoType genericAllField; - - private bool genericAllFieldSet; - - private YesNoType genericExecuteField; - - private bool genericExecuteFieldSet; - - private YesNoType genericWriteField; - - private bool genericWriteFieldSet; - - private YesNoType genericReadField; - - private bool genericReadFieldSet; - - private ISchemaElement parentElement; - - public string Domain - { - get - { - return this.domainField; - } - set - { - this.domainFieldSet = true; - this.domainField = value; - } - } - - public string User - { - get - { - return this.userField; - } - set - { - this.userFieldSet = true; - this.userField = value; - } - } - - public YesNoType Read - { - get - { - return this.readField; - } - set - { - this.readFieldSet = true; - this.readField = value; - } - } - - public YesNoType Delete - { - get - { - return this.deleteField; - } - set - { - this.deleteFieldSet = true; - this.deleteField = value; - } - } - - public YesNoType ReadPermission - { - get - { - return this.readPermissionField; - } - set - { - this.readPermissionFieldSet = true; - this.readPermissionField = value; - } - } - - public YesNoType ChangePermission - { - get - { - return this.changePermissionField; - } - set - { - this.changePermissionFieldSet = true; - this.changePermissionField = value; - } - } - - public YesNoType TakeOwnership - { - get - { - return this.takeOwnershipField; - } - set - { - this.takeOwnershipFieldSet = true; - this.takeOwnershipField = value; - } - } - - /// - /// Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF). - /// - public YesNoType SpecificRightsAll - { - get - { - return this.specificRightsAllField; - } - set - { - this.specificRightsAllFieldSet = true; - this.specificRightsAllField = value; - } - } - - public YesNoType ReadAttributes - { - get - { - return this.readAttributesField; - } - set - { - this.readAttributesFieldSet = true; - this.readAttributesField = value; - } - } - - public YesNoType WriteAttributes - { - get - { - return this.writeAttributesField; - } - set - { - this.writeAttributesFieldSet = true; - this.writeAttributesField = value; - } - } - - public YesNoType ReadExtendedAttributes - { - get - { - return this.readExtendedAttributesField; - } - set - { - this.readExtendedAttributesFieldSet = true; - this.readExtendedAttributesField = value; - } - } - - public YesNoType WriteExtendedAttributes - { - get - { - return this.writeExtendedAttributesField; - } - set - { - this.writeExtendedAttributesFieldSet = true; - this.writeExtendedAttributesField = value; - } - } - - public YesNoType Synchronize - { - get - { - return this.synchronizeField; - } - set - { - this.synchronizeFieldSet = true; - this.synchronizeField = value; - } - } - - /// - /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent. - /// - public YesNoType CreateFile - { - get - { - return this.createFileField; - } - set - { - this.createFileFieldSet = true; - this.createFileField = value; - } - } - - /// - /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent. - /// - public YesNoType CreateChild - { - get - { - return this.createChildField; - } - set - { - this.createChildFieldSet = true; - this.createChildField = value; - } - } - - /// - /// For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent. - /// - public YesNoType DeleteChild - { - get - { - return this.deleteChildField; - } - set - { - this.deleteChildFieldSet = true; - this.deleteChildField = value; - } - } - - /// - /// For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent. - /// - public YesNoType Traverse - { - get - { - return this.traverseField; - } - set - { - this.traverseFieldSet = true; - this.traverseField = value; - } - } - - public YesNoType Append - { - get - { - return this.appendField; - } - set - { - this.appendFieldSet = true; - this.appendField = value; - } - } - - public YesNoType Execute - { - get - { - return this.executeField; - } - set - { - this.executeFieldSet = true; - this.executeField = value; - } - } - - /// - /// Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF). - /// - public YesNoType FileAllRights - { - get - { - return this.fileAllRightsField; - } - set - { - this.fileAllRightsFieldSet = true; - this.fileAllRightsField = value; - } - } - - public YesNoType Write - { - get - { - return this.writeField; - } - set - { - this.writeFieldSet = true; - this.writeField = value; - } - } - - public YesNoType CreateSubkeys - { - get - { - return this.createSubkeysField; - } - set - { - this.createSubkeysFieldSet = true; - this.createSubkeysField = value; - } - } - - public YesNoType EnumerateSubkeys - { - get - { - return this.enumerateSubkeysField; - } - set - { - this.enumerateSubkeysFieldSet = true; - this.enumerateSubkeysField = value; - } - } - - public YesNoType Notify - { - get - { - return this.notifyField; - } - set - { - this.notifyFieldSet = true; - this.notifyField = value; - } - } - - public YesNoType CreateLink - { - get - { - return this.createLinkField; - } - set - { - this.createLinkFieldSet = true; - this.createLinkField = value; - } - } - - public YesNoType GenericAll - { - get - { - return this.genericAllField; - } - set - { - this.genericAllFieldSet = true; - this.genericAllField = value; - } - } - - public YesNoType GenericExecute - { - get - { - return this.genericExecuteField; - } - set - { - this.genericExecuteFieldSet = true; - this.genericExecuteField = value; - } - } - - public YesNoType GenericWrite - { - get - { - return this.genericWriteField; - } - set - { - this.genericWriteFieldSet = true; - this.genericWriteField = value; - } - } - - /// - /// specifying this will fail to grant read access - /// - public YesNoType GenericRead - { - get - { - return this.genericReadField; - } - set - { - this.genericReadFieldSet = true; - this.genericReadField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Permission", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.domainFieldSet) - { - writer.WriteAttributeString("Domain", this.domainField); - } - if (this.userFieldSet) - { - writer.WriteAttributeString("User", this.userField); - } - if (this.readFieldSet) - { - if ((this.readField == YesNoType.no)) - { - writer.WriteAttributeString("Read", "no"); - } - if ((this.readField == YesNoType.yes)) - { - writer.WriteAttributeString("Read", "yes"); - } - } - if (this.deleteFieldSet) - { - if ((this.deleteField == YesNoType.no)) - { - writer.WriteAttributeString("Delete", "no"); - } - if ((this.deleteField == YesNoType.yes)) - { - writer.WriteAttributeString("Delete", "yes"); - } - } - if (this.readPermissionFieldSet) - { - if ((this.readPermissionField == YesNoType.no)) - { - writer.WriteAttributeString("ReadPermission", "no"); - } - if ((this.readPermissionField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadPermission", "yes"); - } - } - if (this.changePermissionFieldSet) - { - if ((this.changePermissionField == YesNoType.no)) - { - writer.WriteAttributeString("ChangePermission", "no"); - } - if ((this.changePermissionField == YesNoType.yes)) - { - writer.WriteAttributeString("ChangePermission", "yes"); - } - } - if (this.takeOwnershipFieldSet) - { - if ((this.takeOwnershipField == YesNoType.no)) - { - writer.WriteAttributeString("TakeOwnership", "no"); - } - if ((this.takeOwnershipField == YesNoType.yes)) - { - writer.WriteAttributeString("TakeOwnership", "yes"); - } - } - if (this.specificRightsAllFieldSet) - { - if ((this.specificRightsAllField == YesNoType.no)) - { - writer.WriteAttributeString("SpecificRightsAll", "no"); - } - if ((this.specificRightsAllField == YesNoType.yes)) - { - writer.WriteAttributeString("SpecificRightsAll", "yes"); - } - } - if (this.readAttributesFieldSet) - { - if ((this.readAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("ReadAttributes", "no"); - } - if ((this.readAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadAttributes", "yes"); - } - } - if (this.writeAttributesFieldSet) - { - if ((this.writeAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("WriteAttributes", "no"); - } - if ((this.writeAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("WriteAttributes", "yes"); - } - } - if (this.readExtendedAttributesFieldSet) - { - if ((this.readExtendedAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("ReadExtendedAttributes", "no"); - } - if ((this.readExtendedAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadExtendedAttributes", "yes"); - } - } - if (this.writeExtendedAttributesFieldSet) - { - if ((this.writeExtendedAttributesField == YesNoType.no)) - { - writer.WriteAttributeString("WriteExtendedAttributes", "no"); - } - if ((this.writeExtendedAttributesField == YesNoType.yes)) - { - writer.WriteAttributeString("WriteExtendedAttributes", "yes"); - } - } - if (this.synchronizeFieldSet) - { - if ((this.synchronizeField == YesNoType.no)) - { - writer.WriteAttributeString("Synchronize", "no"); - } - if ((this.synchronizeField == YesNoType.yes)) - { - writer.WriteAttributeString("Synchronize", "yes"); - } - } - if (this.createFileFieldSet) - { - if ((this.createFileField == YesNoType.no)) - { - writer.WriteAttributeString("CreateFile", "no"); - } - if ((this.createFileField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateFile", "yes"); - } - } - if (this.createChildFieldSet) - { - if ((this.createChildField == YesNoType.no)) - { - writer.WriteAttributeString("CreateChild", "no"); - } - if ((this.createChildField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateChild", "yes"); - } - } - if (this.deleteChildFieldSet) - { - if ((this.deleteChildField == YesNoType.no)) - { - writer.WriteAttributeString("DeleteChild", "no"); - } - if ((this.deleteChildField == YesNoType.yes)) - { - writer.WriteAttributeString("DeleteChild", "yes"); - } - } - if (this.traverseFieldSet) - { - if ((this.traverseField == YesNoType.no)) - { - writer.WriteAttributeString("Traverse", "no"); - } - if ((this.traverseField == YesNoType.yes)) - { - writer.WriteAttributeString("Traverse", "yes"); - } - } - if (this.appendFieldSet) - { - if ((this.appendField == YesNoType.no)) - { - writer.WriteAttributeString("Append", "no"); - } - if ((this.appendField == YesNoType.yes)) - { - writer.WriteAttributeString("Append", "yes"); - } - } - if (this.executeFieldSet) - { - if ((this.executeField == YesNoType.no)) - { - writer.WriteAttributeString("Execute", "no"); - } - if ((this.executeField == YesNoType.yes)) - { - writer.WriteAttributeString("Execute", "yes"); - } - } - if (this.fileAllRightsFieldSet) - { - if ((this.fileAllRightsField == YesNoType.no)) - { - writer.WriteAttributeString("FileAllRights", "no"); - } - if ((this.fileAllRightsField == YesNoType.yes)) - { - writer.WriteAttributeString("FileAllRights", "yes"); - } - } - if (this.writeFieldSet) - { - if ((this.writeField == YesNoType.no)) - { - writer.WriteAttributeString("Write", "no"); - } - if ((this.writeField == YesNoType.yes)) - { - writer.WriteAttributeString("Write", "yes"); - } - } - if (this.createSubkeysFieldSet) - { - if ((this.createSubkeysField == YesNoType.no)) - { - writer.WriteAttributeString("CreateSubkeys", "no"); - } - if ((this.createSubkeysField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateSubkeys", "yes"); - } - } - if (this.enumerateSubkeysFieldSet) - { - if ((this.enumerateSubkeysField == YesNoType.no)) - { - writer.WriteAttributeString("EnumerateSubkeys", "no"); - } - if ((this.enumerateSubkeysField == YesNoType.yes)) - { - writer.WriteAttributeString("EnumerateSubkeys", "yes"); - } - } - if (this.notifyFieldSet) - { - if ((this.notifyField == YesNoType.no)) - { - writer.WriteAttributeString("Notify", "no"); - } - if ((this.notifyField == YesNoType.yes)) - { - writer.WriteAttributeString("Notify", "yes"); - } - } - if (this.createLinkFieldSet) - { - if ((this.createLinkField == YesNoType.no)) - { - writer.WriteAttributeString("CreateLink", "no"); - } - if ((this.createLinkField == YesNoType.yes)) - { - writer.WriteAttributeString("CreateLink", "yes"); - } - } - if (this.genericAllFieldSet) - { - if ((this.genericAllField == YesNoType.no)) - { - writer.WriteAttributeString("GenericAll", "no"); - } - if ((this.genericAllField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericAll", "yes"); - } - } - if (this.genericExecuteFieldSet) - { - if ((this.genericExecuteField == YesNoType.no)) - { - writer.WriteAttributeString("GenericExecute", "no"); - } - if ((this.genericExecuteField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericExecute", "yes"); - } - } - if (this.genericWriteFieldSet) - { - if ((this.genericWriteField == YesNoType.no)) - { - writer.WriteAttributeString("GenericWrite", "no"); - } - if ((this.genericWriteField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericWrite", "yes"); - } - } - if (this.genericReadFieldSet) - { - if ((this.genericReadField == YesNoType.no)) - { - writer.WriteAttributeString("GenericRead", "no"); - } - if ((this.genericReadField == YesNoType.yes)) - { - writer.WriteAttributeString("GenericRead", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Domain" == name)) - { - this.domainField = value; - this.domainFieldSet = true; - } - if (("User" == name)) - { - this.userField = value; - this.userFieldSet = true; - } - if (("Read" == name)) - { - this.readField = Enums.ParseYesNoType(value); - this.readFieldSet = true; - } - if (("Delete" == name)) - { - this.deleteField = Enums.ParseYesNoType(value); - this.deleteFieldSet = true; - } - if (("ReadPermission" == name)) - { - this.readPermissionField = Enums.ParseYesNoType(value); - this.readPermissionFieldSet = true; - } - if (("ChangePermission" == name)) - { - this.changePermissionField = Enums.ParseYesNoType(value); - this.changePermissionFieldSet = true; - } - if (("TakeOwnership" == name)) - { - this.takeOwnershipField = Enums.ParseYesNoType(value); - this.takeOwnershipFieldSet = true; - } - if (("SpecificRightsAll" == name)) - { - this.specificRightsAllField = Enums.ParseYesNoType(value); - this.specificRightsAllFieldSet = true; - } - if (("ReadAttributes" == name)) - { - this.readAttributesField = Enums.ParseYesNoType(value); - this.readAttributesFieldSet = true; - } - if (("WriteAttributes" == name)) - { - this.writeAttributesField = Enums.ParseYesNoType(value); - this.writeAttributesFieldSet = true; - } - if (("ReadExtendedAttributes" == name)) - { - this.readExtendedAttributesField = Enums.ParseYesNoType(value); - this.readExtendedAttributesFieldSet = true; - } - if (("WriteExtendedAttributes" == name)) - { - this.writeExtendedAttributesField = Enums.ParseYesNoType(value); - this.writeExtendedAttributesFieldSet = true; - } - if (("Synchronize" == name)) - { - this.synchronizeField = Enums.ParseYesNoType(value); - this.synchronizeFieldSet = true; - } - if (("CreateFile" == name)) - { - this.createFileField = Enums.ParseYesNoType(value); - this.createFileFieldSet = true; - } - if (("CreateChild" == name)) - { - this.createChildField = Enums.ParseYesNoType(value); - this.createChildFieldSet = true; - } - if (("DeleteChild" == name)) - { - this.deleteChildField = Enums.ParseYesNoType(value); - this.deleteChildFieldSet = true; - } - if (("Traverse" == name)) - { - this.traverseField = Enums.ParseYesNoType(value); - this.traverseFieldSet = true; - } - if (("Append" == name)) - { - this.appendField = Enums.ParseYesNoType(value); - this.appendFieldSet = true; - } - if (("Execute" == name)) - { - this.executeField = Enums.ParseYesNoType(value); - this.executeFieldSet = true; - } - if (("FileAllRights" == name)) - { - this.fileAllRightsField = Enums.ParseYesNoType(value); - this.fileAllRightsFieldSet = true; - } - if (("Write" == name)) - { - this.writeField = Enums.ParseYesNoType(value); - this.writeFieldSet = true; - } - if (("CreateSubkeys" == name)) - { - this.createSubkeysField = Enums.ParseYesNoType(value); - this.createSubkeysFieldSet = true; - } - if (("EnumerateSubkeys" == name)) - { - this.enumerateSubkeysField = Enums.ParseYesNoType(value); - this.enumerateSubkeysFieldSet = true; - } - if (("Notify" == name)) - { - this.notifyField = Enums.ParseYesNoType(value); - this.notifyFieldSet = true; - } - if (("CreateLink" == name)) - { - this.createLinkField = Enums.ParseYesNoType(value); - this.createLinkFieldSet = true; - } - if (("GenericAll" == name)) - { - this.genericAllField = Enums.ParseYesNoType(value); - this.genericAllFieldSet = true; - } - if (("GenericExecute" == name)) - { - this.genericExecuteField = Enums.ParseYesNoType(value); - this.genericExecuteFieldSet = true; - } - if (("GenericWrite" == name)) - { - this.genericWriteField = Enums.ParseYesNoType(value); - this.genericWriteFieldSet = true; - } - if (("GenericRead" == name)) - { - this.genericReadField = Enums.ParseYesNoType(value); - this.genericReadFieldSet = true; - } - } - } - - /// - /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used - /// if the Action attribute's value is remove or removeKeyOnInstall. This element is only available - /// when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the - /// WixUtilExtension. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PermissionEx : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sddlField; - - private bool sddlFieldSet; - - private ISchemaElement parentElement; - - public PermissionEx() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Condition))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute - /// will be used instead. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Security descriptor to apply to parent object. - /// - public string Sddl - { - get - { - return this.sddlField; - } - set - { - this.sddlFieldSet = true; - this.sddlField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PermissionEx", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sddlFieldSet) - { - writer.WriteAttributeString("Sddl", this.sddlField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Sddl" == name)) - { - this.sddlField = value; - this.sddlFieldSet = true; - } - } - } - - /// - /// Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When - /// this element is nested under a File element, the parent file will be installed, then copied to the specified destination - /// if the parent component of the file is selected for installation or removal. When this element is nested under - /// a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine. - /// When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed, - /// then copied to the specified destination if the parent component is selected for installation or removal (use - /// this option to control the copy of a file in a different component by the parent component's installation state). If the - /// specified destination directory is the same as the directory containing the original file and the name for the proposed source - /// file is the same as the original, then no action takes place. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CopyFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string fileIdField; - - private bool fileIdFieldSet; - - private string sourceDirectoryField; - - private bool sourceDirectoryFieldSet; - - private string sourcePropertyField; - - private bool sourcePropertyFieldSet; - - private string sourceNameField; - - private bool sourceNameFieldSet; - - private string destinationDirectoryField; - - private bool destinationDirectoryFieldSet; - - private string destinationPropertyField; - - private bool destinationPropertyFieldSet; - - private string destinationNameField; - - private bool destinationNameFieldSet; - - private string destinationShortNameField; - - private bool destinationShortNameFieldSet; - - private YesNoType deleteField; - - private bool deleteFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier - /// of a file from a different component to copy it based on the install state of the parent component. - /// - public string FileId - { - get - { - return this.fileIdField; - } - set - { - this.fileIdFieldSet = true; - this.fileIdField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - /// this value to the source directory from which to copy or move an existing file on the target machine. This Directory must - /// exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty. - /// - public string SourceDirectory - { - get - { - return this.sourceDirectoryField; - } - set - { - this.sourceDirectoryFieldSet = true; - this.sourceDirectoryField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - /// this value to a property that will have a value that resolves to the full path of the source directory (or full path - /// including file name if SourceName is not specified). The property does not have to exist in the installer database at - /// creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute - /// cannot be specified in conjunction with SourceDirectory. - /// - public string SourceProperty - { - get - { - return this.sourcePropertyField; - } - set - { - this.sourcePropertyFieldSet = true; - this.sourcePropertyField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set - /// this value to the localizable name of the file(s) to be copied or moved. All of the files that - /// match the wild card will be removed from the specified directory. The value is a filename that may also - /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this - /// attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the - /// SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename. - /// If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied - /// files retain the file names from their sources. - /// - public string SourceName - { - get - { - return this.sourceNameField; - } - set - { - this.sourceNameFieldSet = true; - this.sourceNameField = value; - } - } - - /// - /// Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This - /// Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with - /// DestinationProperty. - /// - public string DestinationDirectory - { - get - { - return this.destinationDirectoryField; - } - set - { - this.destinationDirectoryFieldSet = true; - this.destinationDirectoryField = value; - } - } - - /// - /// Set this value to a property that will have a value that resolves to the full path of the destination directory. The property - /// does not have to exist in the installer database at creation time; it could be created at installation time by a custom - /// action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory. - /// - public string DestinationProperty - { - get - { - return this.destinationPropertyField; - } - set - { - this.destinationPropertyFieldSet = true; - this.destinationPropertyField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// Now set this value to the localizable name to be given to the original file after it is moved or copied. - /// If this attribute is not specified, then the destination file is given the same name as the source file. - /// If a short file name is specified, the DestinationShortName attribute may not be specified. - /// Also, if this value is a long file name, the DestinationShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short file name. - /// However, if this name collides with another file or you wish to manually specify - /// the short file name, then the DestinationShortName attribute may be specified. - /// - public string DestinationName - { - get - { - return this.destinationNameField; - } - set - { - this.destinationNameFieldSet = true; - this.destinationNameField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short file names - /// or you wish to manually specify the short file name. - /// - public string DestinationShortName - { - get - { - return this.destinationShortNameField; - } - set - { - this.destinationShortNameFieldSet = true; - this.destinationShortNameField = value; - } - } - - /// - /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other - /// cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes" - /// in order to move the file (thus deleting the source file) instead of copying it. - /// - public YesNoType Delete - { - get - { - return this.deleteField; - } - set - { - this.deleteFieldSet = true; - this.deleteField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CopyFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.fileIdFieldSet) - { - writer.WriteAttributeString("FileId", this.fileIdField); - } - if (this.sourceDirectoryFieldSet) - { - writer.WriteAttributeString("SourceDirectory", this.sourceDirectoryField); - } - if (this.sourcePropertyFieldSet) - { - writer.WriteAttributeString("SourceProperty", this.sourcePropertyField); - } - if (this.sourceNameFieldSet) - { - writer.WriteAttributeString("SourceName", this.sourceNameField); - } - if (this.destinationDirectoryFieldSet) - { - writer.WriteAttributeString("DestinationDirectory", this.destinationDirectoryField); - } - if (this.destinationPropertyFieldSet) - { - writer.WriteAttributeString("DestinationProperty", this.destinationPropertyField); - } - if (this.destinationNameFieldSet) - { - writer.WriteAttributeString("DestinationName", this.destinationNameField); - } - if (this.destinationShortNameFieldSet) - { - writer.WriteAttributeString("DestinationShortName", this.destinationShortNameField); - } - if (this.deleteFieldSet) - { - if ((this.deleteField == YesNoType.no)) - { - writer.WriteAttributeString("Delete", "no"); - } - if ((this.deleteField == YesNoType.yes)) - { - writer.WriteAttributeString("Delete", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("FileId" == name)) - { - this.fileIdField = value; - this.fileIdFieldSet = true; - } - if (("SourceDirectory" == name)) - { - this.sourceDirectoryField = value; - this.sourceDirectoryFieldSet = true; - } - if (("SourceProperty" == name)) - { - this.sourcePropertyField = value; - this.sourcePropertyFieldSet = true; - } - if (("SourceName" == name)) - { - this.sourceNameField = value; - this.sourceNameFieldSet = true; - } - if (("DestinationDirectory" == name)) - { - this.destinationDirectoryField = value; - this.destinationDirectoryFieldSet = true; - } - if (("DestinationProperty" == name)) - { - this.destinationPropertyField = value; - this.destinationPropertyFieldSet = true; - } - if (("DestinationName" == name)) - { - this.destinationNameField = value; - this.destinationNameFieldSet = true; - } - if (("DestinationShortName" == name)) - { - this.destinationShortNameField = value; - this.destinationShortNameFieldSet = true; - } - if (("Delete" == name)) - { - this.deleteField = Enums.ParseYesNoType(value); - this.deleteFieldSet = true; - } - } - } - - /// - /// File specification for File table, must be child node of Component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class File : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string companionFileField; - - private bool companionFileFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private YesNoType readOnlyField; - - private bool readOnlyFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType systemField; - - private bool systemFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private YesNoType checksumField; - - private bool checksumFieldSet; - - private YesNoDefaultType compressedField; - - private bool compressedFieldSet; - - private string bindPathField; - - private bool bindPathFieldSet; - - private int selfRegCostField; - - private bool selfRegCostFieldSet; - - private YesNoType trueTypeField; - - private bool trueTypeFieldSet; - - private string fontTitleField; - - private bool fontTitleFieldSet; - - private string defaultLanguageField; - - private bool defaultLanguageFieldSet; - - private int defaultSizeField; - - private bool defaultSizeFieldSet; - - private string defaultVersionField; - - private bool defaultVersionFieldSet; - - private AssemblyType assemblyField; - - private bool assemblyFieldSet; - - private string assemblyManifestField; - - private bool assemblyManifestFieldSet; - - private string assemblyApplicationField; - - private bool assemblyApplicationFieldSet; - - private ProcessorArchitectureType processorArchitectureField; - - private bool processorArchitectureFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private int patchGroupField; - - private bool patchGroupFieldSet; - - private YesNoType patchIgnoreField; - - private bool patchIgnoreFieldSet; - - private YesNoType patchAllowIgnoreOnErrorField; - - private bool patchAllowIgnoreOnErrorFieldSet; - - private YesNoType patchWholeFileField; - - private bool patchWholeFileFieldSet; - - private ISchemaElement parentElement; - - public File() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AssemblyName))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value]. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to make this file a companion child of another file. The installation - /// state of a companion file depends not on its own file versioning information, but on the versioning of its - /// companion parent. A file that is the key path for its component can not be a companion file (that means - /// this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along - /// with this attribute since companion files are not installed based on their own version. - /// - public string CompanionFile - { - get - { - return this.companionFileField; - } - set - { - this.companionFileFieldSet = true; - this.companionFileField = value; - } - } - - /// - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// This attribute's value may now be either a short or long file name. - /// If a short file name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long file name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short file name. - /// However, if this name collides with another file or you wish to manually specify - /// the short file name, then the ShortName attribute may be specified. - /// Finally, if this attribute is omitted then its default value is the file name portion - /// of the Source attribute, if one is specified, or the value of the Id attribute, if - /// the Source attribute is omitted or doesn't contain a file name. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Set to yes in order to force this file to be the key path for the parent component. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short file names - /// or the user wants to manually specify the short file name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// Set to yes in order to have the file's read-only attribute set when it is installed on the target machine. - /// - public YesNoType ReadOnly - { - get - { - return this.readOnlyField; - } - set - { - this.readOnlyFieldSet = true; - this.readOnlyField = value; - } - } - - /// - /// Set to yes in order to have the file's hidden attribute set when it is installed on the target machine. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Set to yes in order to have the file's system attribute set when it is installed on the target machine. - /// - public YesNoType System - { - get - { - return this.systemField; - } - set - { - this.systemFieldSet = true; - this.systemField = value; - } - } - - /// - /// If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall. - /// - public YesNoType Checksum - { - get - { - return this.checksumField; - } - set - { - this.checksumFieldSet = true; - this.checksumField = value; - } - } - - /// - /// Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property. - /// - public YesNoDefaultType Compressed - { - get - { - return this.compressedField; - } - set - { - this.compressedFieldSet = true; - this.compressedField = value; - } - } - - /// - /// A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table. - /// - public string BindPath - { - get - { - return this.bindPathField; - } - set - { - this.bindPathFieldSet = true; - this.bindPathField = value; - } - } - - /// - /// The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table. - /// - public int SelfRegCost - { - get - { - return this.selfRegCostField; - } - set - { - this.selfRegCostFieldSet = true; - this.selfRegCostField = value; - } - } - - /// - /// Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font. - /// - public YesNoType TrueType - { - get - { - return this.trueTypeField; - } - set - { - this.trueTypeFieldSet = true; - this.trueTypeField = value; - } - } - - /// - /// Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font. - /// - public string FontTitle - { - get - { - return this.fontTitleField; - } - set - { - this.fontTitleFieldSet = true; - this.fontTitleField = value; - } - } - - /// - /// This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - /// - public string DefaultLanguage - { - get - { - return this.defaultLanguageField; - } - set - { - this.defaultLanguageFieldSet = true; - this.defaultLanguageField = value; - } - } - - /// - /// This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - /// - public int DefaultSize - { - get - { - return this.defaultSizeField; - } - set - { - this.defaultSizeFieldSet = true; - this.defaultSizeField = value; - } - } - - /// - /// This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used. - /// - public string DefaultVersion - { - get - { - return this.defaultVersionField; - } - set - { - this.defaultVersionFieldSet = true; - this.defaultVersionField = value; - } - } - - /// - /// Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the - /// Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component. - /// - public AssemblyType Assembly - { - get - { - return this.assemblyField; - } - set - { - this.assemblyFieldSet = true; - this.assemblyField = value; - } - } - - /// - /// Specifies the file identifier of the manifest file that describes this assembly. - /// The manifest file should be in the same component as the assembly it describes. - /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. - /// - public string AssemblyManifest - { - get - { - return this.assemblyManifestField; - } - set - { - this.assemblyManifestFieldSet = true; - this.assemblyManifestField = value; - } - } - - /// - /// Specifies the file identifier of the application file. This assembly will be isolated - /// to the same directory as the application file. - /// If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC). - /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. - /// - public string AssemblyApplication - { - get - { - return this.assemblyApplicationField; - } - set - { - this.assemblyApplicationFieldSet = true; - this.assemblyApplicationField = value; - } - } - - /// - /// Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies. - /// - public ProcessorArchitectureType ProcessorArchitecture - { - get - { - return this.processorArchitectureField; - } - set - { - this.processorArchitectureFieldSet = true; - this.processorArchitectureField = value; - } - } - - /// - /// The value of this attribute should correspond to the Id attribute of a Media - /// element authored elsewhere. By creating this connection between a file and - /// its media, you set the packaging options to the values specified in the Media - /// element (values such as compression level, cab embedding, etc...). Specifying - /// the DiskId attribute on the File element overrides the default DiskId attribute - /// from the parent Component element. If no DiskId attribute is specified, - /// the default is "1". This DiskId attribute is ignored when creating a merge module - /// because merge modules do not have media. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups - /// numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the - /// second patch will have PatchGroup='2', etc... - /// - public int PatchGroup - { - get - { - return this.patchGroupField; - } - set - { - this.patchGroupFieldSet = true; - this.patchGroupField = value; - } - } - - /// - /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. - /// - public YesNoType PatchIgnore - { - get - { - return this.patchIgnoreField; - } - set - { - this.patchIgnoreFieldSet = true; - this.patchIgnoreField = value; - } - } - - /// - /// Set to indicate that the patch is non-vital. - /// - public YesNoType PatchAllowIgnoreOnError - { - get - { - return this.patchAllowIgnoreOnErrorField; - } - set - { - this.patchAllowIgnoreOnErrorFieldSet = true; - this.patchAllowIgnoreOnErrorField = value; - } - } - - /// - /// Set if the entire file should be installed rather than creating a binary patch. - /// - public YesNoType PatchWholeFile - { - get - { - return this.patchWholeFileField; - } - set - { - this.patchWholeFileFieldSet = true; - this.patchWholeFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AssemblyName" == childName)) - { - childValue = new AssemblyName(); - } - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("CopyFile" == childName)) - { - childValue = new CopyFile(); - } - if (("Shortcut" == childName)) - { - childValue = new Shortcut(); - } - if (("ODBCDriver" == childName)) - { - childValue = new ODBCDriver(); - } - if (("ODBCTranslator" == childName)) - { - childValue = new ODBCTranslator(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("Class" == childName)) - { - childValue = new Class(); - } - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("TypeLib" == childName)) - { - childValue = new TypeLib(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a AssemblyType from a string. - /// - public static AssemblyType ParseAssemblyType(string value) - { - AssemblyType parsedValue; - File.TryParseAssemblyType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a AssemblyType from a string. - /// - public static bool TryParseAssemblyType(string value, out AssemblyType parsedValue) - { - parsedValue = AssemblyType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if ((".net" == value)) - { - parsedValue = AssemblyType.net; - } - else - { - if (("no" == value)) - { - parsedValue = AssemblyType.no; - } - else - { - if (("win32" == value)) - { - parsedValue = AssemblyType.win32; - } - else - { - parsedValue = AssemblyType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a ProcessorArchitectureType from a string. - /// - public static ProcessorArchitectureType ParseProcessorArchitectureType(string value) - { - ProcessorArchitectureType parsedValue; - File.TryParseProcessorArchitectureType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ProcessorArchitectureType from a string. - /// - public static bool TryParseProcessorArchitectureType(string value, out ProcessorArchitectureType parsedValue) - { - parsedValue = ProcessorArchitectureType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("msil" == value)) - { - parsedValue = ProcessorArchitectureType.msil; - } - else - { - if (("x86" == value)) - { - parsedValue = ProcessorArchitectureType.x86; - } - else - { - if (("x64" == value)) - { - parsedValue = ProcessorArchitectureType.x64; - } - else - { - if (("ia64" == value)) - { - parsedValue = ProcessorArchitectureType.ia64; - } - else - { - parsedValue = ProcessorArchitectureType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("File", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.companionFileFieldSet) - { - writer.WriteAttributeString("CompanionFile", this.companionFileField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.readOnlyFieldSet) - { - if ((this.readOnlyField == YesNoType.no)) - { - writer.WriteAttributeString("ReadOnly", "no"); - } - if ((this.readOnlyField == YesNoType.yes)) - { - writer.WriteAttributeString("ReadOnly", "yes"); - } - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.systemFieldSet) - { - if ((this.systemField == YesNoType.no)) - { - writer.WriteAttributeString("System", "no"); - } - if ((this.systemField == YesNoType.yes)) - { - writer.WriteAttributeString("System", "yes"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.checksumFieldSet) - { - if ((this.checksumField == YesNoType.no)) - { - writer.WriteAttributeString("Checksum", "no"); - } - if ((this.checksumField == YesNoType.yes)) - { - writer.WriteAttributeString("Checksum", "yes"); - } - } - if (this.compressedFieldSet) - { - if ((this.compressedField == YesNoDefaultType.@default)) - { - writer.WriteAttributeString("Compressed", "default"); - } - if ((this.compressedField == YesNoDefaultType.no)) - { - writer.WriteAttributeString("Compressed", "no"); - } - if ((this.compressedField == YesNoDefaultType.yes)) - { - writer.WriteAttributeString("Compressed", "yes"); - } - } - if (this.bindPathFieldSet) - { - writer.WriteAttributeString("BindPath", this.bindPathField); - } - if (this.selfRegCostFieldSet) - { - writer.WriteAttributeString("SelfRegCost", this.selfRegCostField.ToString(CultureInfo.InvariantCulture)); - } - if (this.trueTypeFieldSet) - { - if ((this.trueTypeField == YesNoType.no)) - { - writer.WriteAttributeString("TrueType", "no"); - } - if ((this.trueTypeField == YesNoType.yes)) - { - writer.WriteAttributeString("TrueType", "yes"); - } - } - if (this.fontTitleFieldSet) - { - writer.WriteAttributeString("FontTitle", this.fontTitleField); - } - if (this.defaultLanguageFieldSet) - { - writer.WriteAttributeString("DefaultLanguage", this.defaultLanguageField); - } - if (this.defaultSizeFieldSet) - { - writer.WriteAttributeString("DefaultSize", this.defaultSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.defaultVersionFieldSet) - { - writer.WriteAttributeString("DefaultVersion", this.defaultVersionField); - } - if (this.assemblyFieldSet) - { - if ((this.assemblyField == AssemblyType.net)) - { - writer.WriteAttributeString("Assembly", ".net"); - } - if ((this.assemblyField == AssemblyType.no)) - { - writer.WriteAttributeString("Assembly", "no"); - } - if ((this.assemblyField == AssemblyType.win32)) - { - writer.WriteAttributeString("Assembly", "win32"); - } - } - if (this.assemblyManifestFieldSet) - { - writer.WriteAttributeString("AssemblyManifest", this.assemblyManifestField); - } - if (this.assemblyApplicationFieldSet) - { - writer.WriteAttributeString("AssemblyApplication", this.assemblyApplicationField); - } - if (this.processorArchitectureFieldSet) - { - if ((this.processorArchitectureField == ProcessorArchitectureType.msil)) - { - writer.WriteAttributeString("ProcessorArchitecture", "msil"); - } - if ((this.processorArchitectureField == ProcessorArchitectureType.x86)) - { - writer.WriteAttributeString("ProcessorArchitecture", "x86"); - } - if ((this.processorArchitectureField == ProcessorArchitectureType.x64)) - { - writer.WriteAttributeString("ProcessorArchitecture", "x64"); - } - if ((this.processorArchitectureField == ProcessorArchitectureType.ia64)) - { - writer.WriteAttributeString("ProcessorArchitecture", "ia64"); - } - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.patchGroupFieldSet) - { - writer.WriteAttributeString("PatchGroup", this.patchGroupField.ToString(CultureInfo.InvariantCulture)); - } - if (this.patchIgnoreFieldSet) - { - if ((this.patchIgnoreField == YesNoType.no)) - { - writer.WriteAttributeString("PatchIgnore", "no"); - } - if ((this.patchIgnoreField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchIgnore", "yes"); - } - } - if (this.patchAllowIgnoreOnErrorFieldSet) - { - if ((this.patchAllowIgnoreOnErrorField == YesNoType.no)) - { - writer.WriteAttributeString("PatchAllowIgnoreOnError", "no"); - } - if ((this.patchAllowIgnoreOnErrorField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchAllowIgnoreOnError", "yes"); - } - } - if (this.patchWholeFileFieldSet) - { - if ((this.patchWholeFileField == YesNoType.no)) - { - writer.WriteAttributeString("PatchWholeFile", "no"); - } - if ((this.patchWholeFileField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchWholeFile", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("CompanionFile" == name)) - { - this.companionFileField = value; - this.companionFileFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("ReadOnly" == name)) - { - this.readOnlyField = Enums.ParseYesNoType(value); - this.readOnlyFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("System" == name)) - { - this.systemField = Enums.ParseYesNoType(value); - this.systemFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("Checksum" == name)) - { - this.checksumField = Enums.ParseYesNoType(value); - this.checksumFieldSet = true; - } - if (("Compressed" == name)) - { - this.compressedField = Enums.ParseYesNoDefaultType(value); - this.compressedFieldSet = true; - } - if (("BindPath" == name)) - { - this.bindPathField = value; - this.bindPathFieldSet = true; - } - if (("SelfRegCost" == name)) - { - this.selfRegCostField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.selfRegCostFieldSet = true; - } - if (("TrueType" == name)) - { - this.trueTypeField = Enums.ParseYesNoType(value); - this.trueTypeFieldSet = true; - } - if (("FontTitle" == name)) - { - this.fontTitleField = value; - this.fontTitleFieldSet = true; - } - if (("DefaultLanguage" == name)) - { - this.defaultLanguageField = value; - this.defaultLanguageFieldSet = true; - } - if (("DefaultSize" == name)) - { - this.defaultSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.defaultSizeFieldSet = true; - } - if (("DefaultVersion" == name)) - { - this.defaultVersionField = value; - this.defaultVersionFieldSet = true; - } - if (("Assembly" == name)) - { - this.assemblyField = File.ParseAssemblyType(value); - this.assemblyFieldSet = true; - } - if (("AssemblyManifest" == name)) - { - this.assemblyManifestField = value; - this.assemblyManifestFieldSet = true; - } - if (("AssemblyApplication" == name)) - { - this.assemblyApplicationField = value; - this.assemblyApplicationFieldSet = true; - } - if (("ProcessorArchitecture" == name)) - { - this.processorArchitectureField = File.ParseProcessorArchitectureType(value); - this.processorArchitectureFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("PatchGroup" == name)) - { - this.patchGroupField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.patchGroupFieldSet = true; - } - if (("PatchIgnore" == name)) - { - this.patchIgnoreField = Enums.ParseYesNoType(value); - this.patchIgnoreFieldSet = true; - } - if (("PatchAllowIgnoreOnError" == name)) - { - this.patchAllowIgnoreOnErrorField = Enums.ParseYesNoType(value); - this.patchAllowIgnoreOnErrorFieldSet = true; - } - if (("PatchWholeFile" == name)) - { - this.patchWholeFileField = Enums.ParseYesNoType(value); - this.patchWholeFileFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum AssemblyType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The file is a .NET Framework assembly. - /// - net, - - /// - /// The file is not a .NET Framework or Win32 assembly. This is the default value. - /// - no, - - /// - /// The file is a Win32 assembly. - /// - win32, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ProcessorArchitectureType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The file is a .NET Framework assembly that is processor-neutral. - /// - msil, - - /// - /// The file is a .NET Framework assembly for the x86 processor. - /// - x86, - - /// - /// The file is a .NET Framework assembly for the x64 processor. - /// - x64, - - /// - /// The file is a .NET Framework assembly for the ia64 processor. - /// - ia64, - } - } - - /// - /// Use several of these elements to specify each registry value in a multiString registry value. This element - /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - /// values should go in the text area of the MultiStringValue element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MultiStringValue : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Use several of these elements to specify each registry value in a multiString registry value. This element - /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - /// values should go in the text area of the MultiStringValue element. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MultiStringValue", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Used for organization of child RegistryValue elements or to create a registry key - /// (and optionally remove it during uninstallation). - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistryKey : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private YesNoType forceCreateOnInstallField; - - private bool forceCreateOnInstallFieldSet; - - private YesNoType forceDeleteOnUninstallField; - - private bool forceDeleteOnUninstallFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private ISchemaElement parentElement; - - public RegistryKey() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer - /// to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed. - /// This value is needed only to create an empty key with no subkeys or values. Windows Installer creates - /// keys as needed to store subkeys and values. The default is "no". - /// - public YesNoType ForceCreateOnInstall - { - get - { - return this.forceCreateOnInstallField; - } - set - { - this.forceCreateOnInstallFieldSet = true; - this.forceCreateOnInstallField = value; - } - } - - /// - /// Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled. - /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already - /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. - /// The default is "no". - /// - public YesNoType ForceDeleteOnUninstall - { - get - { - return this.forceDeleteOnUninstallField; - } - set - { - this.forceDeleteOnUninstallFieldSet = true; - this.forceDeleteOnUninstallField = value; - } - } - - /// - /// The localizable key for the registry value. - /// If the parent element is a RegistryKey, this value may be omitted to use the - /// path of the parent, or if its specified it will be appended to the path of the parent. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("RegistryKey" == childName)) - { - childValue = new RegistryKey(); - } - if (("RegistryValue" == childName)) - { - childValue = new RegistryValue(); - } - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RegistryKey.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("create" == value)) - { - parsedValue = ActionType.create; - } - else - { - if (("createAndRemoveOnUninstall" == value)) - { - parsedValue = ActionType.createAndRemoveOnUninstall; - } - else - { - if (("none" == value)) - { - parsedValue = ActionType.none; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.create)) - { - writer.WriteAttributeString("Action", "create"); - } - if ((this.actionField == ActionType.createAndRemoveOnUninstall)) - { - writer.WriteAttributeString("Action", "createAndRemoveOnUninstall"); - } - if ((this.actionField == ActionType.none)) - { - writer.WriteAttributeString("Action", "none"); - } - } - if (this.forceCreateOnInstallFieldSet) - { - if ((this.forceCreateOnInstallField == YesNoType.no)) - { - writer.WriteAttributeString("ForceCreateOnInstall", "no"); - } - if ((this.forceCreateOnInstallField == YesNoType.yes)) - { - writer.WriteAttributeString("ForceCreateOnInstall", "yes"); - } - } - if (this.forceDeleteOnUninstallFieldSet) - { - if ((this.forceDeleteOnUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("ForceDeleteOnUninstall", "no"); - } - if ((this.forceDeleteOnUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("ForceDeleteOnUninstall", "yes"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RegistryKey.ParseActionType(value); - this.actionFieldSet = true; - } - if (("ForceCreateOnInstall" == name)) - { - this.forceCreateOnInstallField = Enums.ParseYesNoType(value); - this.forceCreateOnInstallFieldSet = true; - } - if (("ForceDeleteOnUninstall" == name)) - { - this.forceDeleteOnUninstallField = Enums.ParseYesNoType(value); - this.forceDeleteOnUninstallFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Creates the key, if absent, when the parent component is installed. - /// - create, - - /// - /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. - /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already - /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. - /// - createAndRemoveOnUninstall, - - /// - /// Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output. - /// This is the default value. - /// - none, - } - } - - /// - /// Used to create a registry value. For multi-string values, this can be used to prepend or append values. - /// - /// For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element - /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The - /// values should go in the text area of the RegistryValue element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegistryValue : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private ISchemaElement parentElement; - - public RegistryValue() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MultiStringValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - /// - /// The localizable key for the registry value. - /// If the parent element is a RegistryKey, this value may be omitted to use the - /// path of the parent, or if its specified it will be appended to the path of the parent. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The localizable registry value name. If this attribute is not provided the default value for the registry key will - /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows - /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate - /// values in the Type attribute to get the desired behavior. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value - /// attribute or a child RegistryValue element is specified. This attribute - /// should only be set when the value of the Action attribute does not include the word 'remove'. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// This is the action that will be taken for this registry value. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. - /// Only one resource (registry, file, etc) can be the KeyPath of a component. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("MultiStringValue" == childName)) - { - childValue = new MultiStringValue(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - RegistryValue.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - if (("integer" == value)) - { - parsedValue = TypeType.integer; - } - else - { - if (("binary" == value)) - { - parsedValue = TypeType.binary; - } - else - { - if (("expandable" == value)) - { - parsedValue = TypeType.expandable; - } - else - { - if (("multiString" == value)) - { - parsedValue = TypeType.multiString; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RegistryValue.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("append" == value)) - { - parsedValue = ActionType.append; - } - else - { - if (("prepend" == value)) - { - parsedValue = ActionType.prepend; - } - else - { - if (("write" == value)) - { - parsedValue = ActionType.write; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - if ((this.typeField == TypeType.integer)) - { - writer.WriteAttributeString("Type", "integer"); - } - if ((this.typeField == TypeType.binary)) - { - writer.WriteAttributeString("Type", "binary"); - } - if ((this.typeField == TypeType.expandable)) - { - writer.WriteAttributeString("Type", "expandable"); - } - if ((this.typeField == TypeType.multiString)) - { - writer.WriteAttributeString("Type", "multiString"); - } - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.append)) - { - writer.WriteAttributeString("Action", "append"); - } - if ((this.actionField == ActionType.prepend)) - { - writer.WriteAttributeString("Action", "prepend"); - } - if ((this.actionField == ActionType.write)) - { - writer.WriteAttributeString("Action", "write"); - } - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = RegistryValue.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RegistryValue.ParseActionType(value); - this.actionFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The value is interpreted and stored as a string (REG_SZ). - /// - @string, - - /// - /// The value is interpreted and stored as an integer (REG_DWORD). - /// - integer, - - /// - /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). - /// - binary, - - /// - /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). - /// - expandable, - - /// - /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). - /// Please note that this value will only result in a multi-string value if there is more than one registry value - /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. - /// - multiString, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Appends the specified value(s) to a multiString registry value. - /// - append, - - /// - /// Prepends the specified value(s) to a multiString registry value. - /// - prepend, - - /// - /// Writes a registry value. This is the default value. - /// - write, - } - } - - /// - /// Used for removing registry keys and all child keys either during install or uninstall. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveRegistryKey : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This is the action that will be taken for this registry value. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// The localizable key for the registry value. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - RemoveRegistryKey.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("removeOnInstall" == value)) - { - parsedValue = ActionType.removeOnInstall; - } - else - { - if (("removeOnUninstall" == value)) - { - parsedValue = ActionType.removeOnUninstall; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveRegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.removeOnInstall)) - { - writer.WriteAttributeString("Action", "removeOnInstall"); - } - if ((this.actionField == ActionType.removeOnUninstall)) - { - writer.WriteAttributeString("Action", "removeOnUninstall"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = RemoveRegistryKey.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Removes a key with all its values and subkeys when the parent component is installed. - /// - removeOnInstall, - - /// - /// Removes a key with all its values and subkeys when the parent component is uninstalled. - /// - removeOnUninstall, - } - } - - /// - /// Used to remove a registry value during installation. - /// There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey). - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveRegistryValue : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The localizable key for the registry value. - /// If the parent element is a RegistryKey, this value may be omitted to use the - /// path of the parent, or if its specified it will be appended to the path of the parent. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// The localizable registry value name. If this attribute is not provided the default value for the registry key will - /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveRegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Registry : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private string keyField; - - private bool keyFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private RegistryRootType rootField; - - private bool rootFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - public Registry() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be - /// generated by hashing the parent Component identifier, Root, Key, and Name. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This is the action that will be taken for this registry key. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// The localizable key for the registry value. - /// - public string Key - { - get - { - return this.keyField; - } - set - { - this.keyFieldSet = true; - this.keyField = value; - } - } - - /// - /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry, - /// file, etc) can be the KeyPath of a component. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - /// - /// The localizable registry value name. If this attribute is not provided the default value for the registry key will - /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not - /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The predefined root key for the registry value. - /// - public RegistryRootType Root - { - get - { - return this.rootField; - } - set - { - this.rootFieldSet = true; - this.rootField = value; - } - } - - /// - /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value - /// attribute or a child RegistryValue element is specified. This attribute - /// should only be set when the value of the Action attribute does not include the word 'remove'. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows - /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate - /// values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action - /// attribute's value contains the word 'remove'. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("RegistryValue" == childName)) - { - childValue = new RegistryValue(); - } - if (("Registry" == childName)) - { - childValue = new Registry(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - Registry.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("append" == value)) - { - parsedValue = ActionType.append; - } - else - { - if (("createKey" == value)) - { - parsedValue = ActionType.createKey; - } - else - { - if (("createKeyAndRemoveKeyOnUninstall" == value)) - { - parsedValue = ActionType.createKeyAndRemoveKeyOnUninstall; - } - else - { - if (("prepend" == value)) - { - parsedValue = ActionType.prepend; - } - else - { - if (("remove" == value)) - { - parsedValue = ActionType.remove; - } - else - { - if (("removeKeyOnInstall" == value)) - { - parsedValue = ActionType.removeKeyOnInstall; - } - else - { - if (("removeKeyOnUninstall" == value)) - { - parsedValue = ActionType.removeKeyOnUninstall; - } - else - { - if (("write" == value)) - { - parsedValue = ActionType.write; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - } - } - } - } - return true; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - Registry.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - if (("integer" == value)) - { - parsedValue = TypeType.integer; - } - else - { - if (("binary" == value)) - { - parsedValue = TypeType.binary; - } - else - { - if (("expandable" == value)) - { - parsedValue = TypeType.expandable; - } - else - { - if (("multiString" == value)) - { - parsedValue = TypeType.multiString; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Registry", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.append)) - { - writer.WriteAttributeString("Action", "append"); - } - if ((this.actionField == ActionType.createKey)) - { - writer.WriteAttributeString("Action", "createKey"); - } - if ((this.actionField == ActionType.createKeyAndRemoveKeyOnUninstall)) - { - writer.WriteAttributeString("Action", "createKeyAndRemoveKeyOnUninstall"); - } - if ((this.actionField == ActionType.prepend)) - { - writer.WriteAttributeString("Action", "prepend"); - } - if ((this.actionField == ActionType.remove)) - { - writer.WriteAttributeString("Action", "remove"); - } - if ((this.actionField == ActionType.removeKeyOnInstall)) - { - writer.WriteAttributeString("Action", "removeKeyOnInstall"); - } - if ((this.actionField == ActionType.removeKeyOnUninstall)) - { - writer.WriteAttributeString("Action", "removeKeyOnUninstall"); - } - if ((this.actionField == ActionType.write)) - { - writer.WriteAttributeString("Action", "write"); - } - } - if (this.keyFieldSet) - { - writer.WriteAttributeString("Key", this.keyField); - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.rootFieldSet) - { - if ((this.rootField == RegistryRootType.HKMU)) - { - writer.WriteAttributeString("Root", "HKMU"); - } - if ((this.rootField == RegistryRootType.HKCR)) - { - writer.WriteAttributeString("Root", "HKCR"); - } - if ((this.rootField == RegistryRootType.HKCU)) - { - writer.WriteAttributeString("Root", "HKCU"); - } - if ((this.rootField == RegistryRootType.HKLM)) - { - writer.WriteAttributeString("Root", "HKLM"); - } - if ((this.rootField == RegistryRootType.HKU)) - { - writer.WriteAttributeString("Root", "HKU"); - } - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - if ((this.typeField == TypeType.integer)) - { - writer.WriteAttributeString("Type", "integer"); - } - if ((this.typeField == TypeType.binary)) - { - writer.WriteAttributeString("Type", "binary"); - } - if ((this.typeField == TypeType.expandable)) - { - writer.WriteAttributeString("Type", "expandable"); - } - if ((this.typeField == TypeType.multiString)) - { - writer.WriteAttributeString("Type", "multiString"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = Registry.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Key" == name)) - { - this.keyField = value; - this.keyFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Root" == name)) - { - this.rootField = Enums.ParseRegistryRootType(value); - this.rootFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Registry.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Appends the specified value(s) to a multiString registry key. - /// - append, - - /// - /// Creates the key, if absent, when the parent component is installed. - /// - createKey, - - /// - /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. - /// - createKeyAndRemoveKeyOnUninstall, - - /// - /// Prepends the specified value(s) to a multiString registry key. - /// - prepend, - - /// - /// Removes a registry name when the parent component is installed. - /// - remove, - - /// - /// Removes a key with all its values and subkeys when the parent component is installed. - /// - removeKeyOnInstall, - - /// - /// Removes a key with all its values and subkeys when the parent component is uninstalled. - /// - removeKeyOnUninstall, - - /// - /// Writes a registry value. - /// - write, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The value is interpreted and stored as a string (REG_SZ). - /// - @string, - - /// - /// The value is interpreted and stored as an integer (REG_DWORD). - /// - integer, - - /// - /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). - /// - binary, - - /// - /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). - /// - expandable, - - /// - /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). - /// Please note that this value will only result in a multi-string value if there is more than one registry value - /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. - /// - multiString, - } - } - - /// - /// Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed - /// by specifying a wildcard for the value of the Name attribute. By default, the source - /// directory of the file is the directory of the parent component. This can be overridden by specifying the - /// Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property - /// attribute with a value corresponding to a property that will have a value that resolves to the full path - /// to the source directory. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFile : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private InstallUninstallType onField; - - private bool onFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the - /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// Overrides the directory of the parent component with the value of the specified property. The property - /// should have a value that resolves to the full path of the source directory. The property does not have - /// to exist in the installer database at creation time; it could be created at installation time by a custom - /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// This value should be set to the localizable name of the file(s) to be removed. All of the files that - /// match the wild card will be removed from the specified directory. The value is a filename that may also - /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. - /// In prior versions of the WiX toolset, this attribute specified the short file name. - /// This attribute's value may now be either a short or long file name. - /// If a short file name is specified, the ShortName attribute may not be specified. - /// Also, if this value is a long file name, the ShortName attribute may be omitted to - /// allow WiX to attempt to generate a unique short file name. - /// However, if you wish to manually specify the short file name, then the ShortName attribute may be specified. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short file name of the file in 8.3 format. - /// This attribute should only be set if you want to manually specify the short file name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// This value determines the time at which the file(s) may be removed. For 'install', the file will - /// be removed only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases. - /// - public InstallUninstallType On - { - get - { - return this.onField; - } - set - { - this.onFieldSet = true; - this.onField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFile", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.onFieldSet) - { - if ((this.onField == InstallUninstallType.install)) - { - writer.WriteAttributeString("On", "install"); - } - if ((this.onField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("On", "uninstall"); - } - if ((this.onField == InstallUninstallType.both)) - { - writer.WriteAttributeString("On", "both"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("On" == name)) - { - this.onField = Enums.ParseInstallUninstallType(value); - this.onFieldSet = true; - } - } - } - - /// - /// Remove an empty folder if the parent component is selected for installation or removal. By default, the folder - /// is the directory of the parent component. This can be overridden by specifying the Directory attribute - /// with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value - /// corresponding to a property that will have a value that resolves to the full path of the folder. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFolder : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private InstallUninstallType onField; - - private bool onFieldSet; - - private ISchemaElement parentElement; - - /// - /// Primary key used to identify this particular entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the - /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// Overrides the directory of the parent component with the value of the specified property. The property - /// should have a value that resolves to the full path of the source directory. The property does not have - /// to exist in the installer database at creation time; it could be created at installation time by a custom - /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component. - /// For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases. - /// - public InstallUninstallType On - { - get - { - return this.onField; - } - set - { - this.onFieldSet = true; - this.onField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFolder", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.onFieldSet) - { - if ((this.onField == InstallUninstallType.install)) - { - writer.WriteAttributeString("On", "install"); - } - if ((this.onField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("On", "uninstall"); - } - if ((this.onField == InstallUninstallType.both)) - { - writer.WriteAttributeString("On", "both"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("On" == name)) - { - this.onField = Enums.ParseInstallUninstallType(value); - this.onFieldSet = true; - } - } - } - - /// - /// Create folder as part of parent Component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CreateFolder : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string directoryField; - - private bool directoryFieldSet; - - private ISchemaElement parentElement; - - public CreateFolder() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier of Directory to create. Defaults to Directory of parent Component. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Shortcut" == childName)) - { - childValue = new Shortcut(); - } - if (("Permission" == childName)) - { - childValue = new Permission(); - } - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CreateFolder", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - } - } - - /// - /// Optional way for defining AppData, generally used for complex CDATA. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AppData : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Optional way for defining AppData, generally used for complex CDATA. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AppData", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Qualified published component for parent Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Category : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string qualifierField; - - private bool qualifierFieldSet; - - private string appDataField; - - private bool appDataFieldSet; - - private string featureField; - - private bool featureFieldSet; - - private ISchemaElement parentElement; - - public Category() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(AppData))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// A string GUID that represents the category of components being grouped together. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages. - /// - public string Qualifier - { - get - { - return this.qualifierField; - } - set - { - this.qualifierFieldSet = true; - this.qualifierField = value; - } - } - - /// - /// An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category. - /// - public string AppData - { - get - { - return this.appDataField; - } - set - { - this.appDataFieldSet = true; - this.appDataField = value; - } - } - - /// - /// Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component . - /// - public string Feature - { - get - { - return this.featureField; - } - set - { - this.featureFieldSet = true; - this.featureField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppData" == childName)) - { - childValue = new AppData(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Category", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.qualifierFieldSet) - { - writer.WriteAttributeString("Qualifier", this.qualifierField); - } - if (this.appDataFieldSet) - { - writer.WriteAttributeString("AppData", this.appDataField); - } - if (this.featureFieldSet) - { - writer.WriteAttributeString("Feature", this.featureField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Qualifier" == name)) - { - this.qualifierField = value; - this.qualifierFieldSet = true; - } - if (("AppData" == name)) - { - this.appDataField = value; - this.appDataFieldSet = true; - } - if (("Feature" == name)) - { - this.featureField = value; - this.featureFieldSet = true; - } - } - } - - /// - /// MIME content-type for an Extension - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MIME : ISchemaElement, ISetAttributes - { - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string contentTypeField; - - private bool contentTypeFieldSet; - - private string classField; - - private bool classFieldSet; - - private YesNoType defaultField; - - private bool defaultFieldSet; - - private ISchemaElement parentElement; - - /// - /// Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either. - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// This is the identifier for the MIME content. It is commonly written in the form of type/format. - /// - public string ContentType - { - get - { - return this.contentTypeField; - } - set - { - this.contentTypeFieldSet = true; - this.contentTypeField = value; - } - } - - /// - /// Class ID for the COM server that is to be associated with the MIME content. - /// - public string Class - { - get - { - return this.classField; - } - set - { - this.classFieldSet = true; - this.classField = value; - } - } - - /// - /// If 'yes', become the content type for the parent Extension. The default value is 'no'. - /// - public YesNoType Default - { - get - { - return this.defaultField; - } - set - { - this.defaultFieldSet = true; - this.defaultField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MIME", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.contentTypeFieldSet) - { - writer.WriteAttributeString("ContentType", this.contentTypeField); - } - if (this.classFieldSet) - { - writer.WriteAttributeString("Class", this.classField); - } - if (this.defaultFieldSet) - { - if ((this.defaultField == YesNoType.no)) - { - writer.WriteAttributeString("Default", "no"); - } - if ((this.defaultField == YesNoType.yes)) - { - writer.WriteAttributeString("Default", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("ContentType" == name)) - { - this.contentTypeField = value; - this.contentTypeFieldSet = true; - } - if (("Class" == name)) - { - this.classField = value; - this.classFieldSet = true; - } - if (("Default" == name)) - { - this.defaultField = Enums.ParseYesNoType(value); - this.defaultFieldSet = true; - } - } - } - - /// - /// Verb definition for an Extension. When advertised, this element creates a row in the - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Verb : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string commandField; - - private bool commandFieldSet; - - private string argumentField; - - private bool argumentFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private string targetField; - - private bool targetFieldSet; - - private string targetFileField; - - private bool targetFileFieldSet; - - private string targetPropertyField; - - private bool targetPropertyFieldSet; - - private ISchemaElement parentElement; - - /// - /// The verb for the command. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The localized text displayed on the context menu. - /// - public string Command - { - get - { - return this.commandField; - } - set - { - this.commandFieldSet = true; - this.commandField = value; - } - } - - /// - /// Value for the command arguments. Note that the resolution of properties in the - /// Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property - /// already has the intended value when the component owning the verb is installed. For example, for the argument - /// "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the - /// component that owns the verb. - /// - public string Argument - { - get - { - return this.argumentField; - } - set - { - this.argumentFieldSet = true; - this.argumentField = value; - } - } - - /// - /// The sequence of the commands. Only verbs for which the Sequence is specified - /// are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this - /// column becomes the default verb. Used only for Advertised verbs. - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - public string Target - { - get - { - return this.targetField; - } - set - { - this.targetFieldSet = true; - this.targetField = value; - } - } - - /// - /// Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb. - /// The value should be the identifier of the target file to be executed for the verb. - /// - public string TargetFile - { - get - { - return this.targetFileField; - } - set - { - this.targetFileFieldSet = true; - this.targetFileField = value; - } - } - - /// - /// Either this attribute or the TargetFile attribute must be specified for a non-advertised verb. - /// The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb. - /// - public string TargetProperty - { - get - { - return this.targetPropertyField; - } - set - { - this.targetPropertyFieldSet = true; - this.targetPropertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Verb", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.commandFieldSet) - { - writer.WriteAttributeString("Command", this.commandField); - } - if (this.argumentFieldSet) - { - writer.WriteAttributeString("Argument", this.argumentField); - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.targetFieldSet) - { - writer.WriteAttributeString("Target", this.targetField); - } - if (this.targetFileFieldSet) - { - writer.WriteAttributeString("TargetFile", this.targetFileField); - } - if (this.targetPropertyFieldSet) - { - writer.WriteAttributeString("TargetProperty", this.targetPropertyField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Command" == name)) - { - this.commandField = value; - this.commandFieldSet = true; - } - if (("Argument" == name)) - { - this.argumentField = value; - this.argumentFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Target" == name)) - { - this.targetField = value; - this.targetFieldSet = true; - } - if (("TargetFile" == name)) - { - this.targetFileField = value; - this.targetFileFieldSet = true; - } - if (("TargetProperty" == name)) - { - this.targetPropertyField = value; - this.targetPropertyFieldSet = true; - } - } - } - - /// - /// Extension for a Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Extension : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string contentTypeField; - - private bool contentTypeFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private ISchemaElement parentElement; - - public Extension() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MIME))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Verb))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// This is simply the file extension, like "doc" or "xml". Do not include the preceding period. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The MIME type that is to be written. - /// - public string ContentType - { - get - { - return this.contentTypeField; - } - set - { - this.contentTypeFieldSet = true; - this.contentTypeField = value; - } - } - - /// - /// Whether this extension is to be advertised. The default is "no". - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("MIME" == childName)) - { - childValue = new MIME(); - } - if (("Verb" == childName)) - { - childValue = new Verb(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Extension", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.contentTypeFieldSet) - { - writer.WriteAttributeString("ContentType", this.contentTypeField); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ContentType" == name)) - { - this.contentTypeField = value; - this.contentTypeFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - } - } - - /// - /// Register a type library (TypeLib). Please note that in order to properly use this - /// non-advertised, you will need use this element with Advertise='no' and also author the - /// appropriate child Interface elements by extracting them from the type library itself. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TypeLib : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private YesNoType controlField; - - private bool controlFieldSet; - - private int costField; - - private bool costFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private YesNoType hasDiskImageField; - - private bool hasDiskImageFieldSet; - - private string helpDirectoryField; - - private bool helpDirectoryFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private int languageField; - - private bool languageFieldSet; - - private int majorVersionField; - - private bool majorVersionFieldSet; - - private int minorVersionField; - - private bool minorVersionFieldSet; - - private int resourceIdField; - - private bool resourceIdFieldSet; - - private YesNoType restrictedField; - - private bool restrictedFieldSet; - - private ISchemaElement parentElement; - - public TypeLib() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The GUID that identifes the type library. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Value of 'yes' will create a row in the TypeLib table. - /// Value of 'no' will create rows in the Registry table. - /// The default value is 'no'. - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects. - /// This attribute can only be set if Advertise='no'. - /// - public YesNoType Control - { - get - { - return this.controlField; - } - set - { - this.controlFieldSet = true; - this.controlField = value; - } - } - - /// - /// The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'. - /// - public int Cost - { - get - { - return this.costField; - } - set - { - this.costFieldSet = true; - this.costField = value; - } - } - - /// - /// The localizable description of the type library. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'. - /// - public YesNoType HasDiskImage - { - get - { - return this.hasDiskImageField; - } - set - { - this.hasDiskImageFieldSet = true; - this.hasDiskImageField = value; - } - } - - /// - /// The identifier of the Directory element for the help directory. - /// - public string HelpDirectory - { - get - { - return this.helpDirectoryField; - } - set - { - this.helpDirectoryFieldSet = true; - this.helpDirectoryField = value; - } - } - - /// - /// Value of 'yes' means the type library should not be displayed to users, although its use is not restricted. - /// Should be used by controls. Hosts should create a new type library that wraps the control with extended properties. - /// This attribute can only be set if Advertise='no'. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// The language of the type library. This must be a non-negative integer. - /// - public int Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The major version of the type library. The value should be an integer from 0 - 255. - /// - public int MajorVersion - { - get - { - return this.majorVersionField; - } - set - { - this.majorVersionFieldSet = true; - this.majorVersionField = value; - } - } - - /// - /// The minor version of the type library. The value should be an integer from 0 - 255. - /// - public int MinorVersion - { - get - { - return this.minorVersionField; - } - set - { - this.minorVersionFieldSet = true; - this.minorVersionField = value; - } - } - - /// - /// The resource id of a typelib. The value is appended to the end of the typelib path in the registry. - /// - public int ResourceId - { - get - { - return this.resourceIdField; - } - set - { - this.resourceIdFieldSet = true; - this.resourceIdField = value; - } - } - - /// - /// Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'. - /// - public YesNoType Restricted - { - get - { - return this.restrictedField; - } - set - { - this.restrictedFieldSet = true; - this.restrictedField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Class" == childName)) - { - childValue = new Class(); - } - if (("Interface" == childName)) - { - childValue = new Interface(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TypeLib", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.controlFieldSet) - { - if ((this.controlField == YesNoType.no)) - { - writer.WriteAttributeString("Control", "no"); - } - if ((this.controlField == YesNoType.yes)) - { - writer.WriteAttributeString("Control", "yes"); - } - } - if (this.costFieldSet) - { - writer.WriteAttributeString("Cost", this.costField.ToString(CultureInfo.InvariantCulture)); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.hasDiskImageFieldSet) - { - if ((this.hasDiskImageField == YesNoType.no)) - { - writer.WriteAttributeString("HasDiskImage", "no"); - } - if ((this.hasDiskImageField == YesNoType.yes)) - { - writer.WriteAttributeString("HasDiskImage", "yes"); - } - } - if (this.helpDirectoryFieldSet) - { - writer.WriteAttributeString("HelpDirectory", this.helpDirectoryField); - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField.ToString(CultureInfo.InvariantCulture)); - } - if (this.majorVersionFieldSet) - { - writer.WriteAttributeString("MajorVersion", this.majorVersionField.ToString(CultureInfo.InvariantCulture)); - } - if (this.minorVersionFieldSet) - { - writer.WriteAttributeString("MinorVersion", this.minorVersionField.ToString(CultureInfo.InvariantCulture)); - } - if (this.resourceIdFieldSet) - { - writer.WriteAttributeString("ResourceId", this.resourceIdField.ToString(CultureInfo.InvariantCulture)); - } - if (this.restrictedFieldSet) - { - if ((this.restrictedField == YesNoType.no)) - { - writer.WriteAttributeString("Restricted", "no"); - } - if ((this.restrictedField == YesNoType.yes)) - { - writer.WriteAttributeString("Restricted", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("Control" == name)) - { - this.controlField = Enums.ParseYesNoType(value); - this.controlFieldSet = true; - } - if (("Cost" == name)) - { - this.costField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.costFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("HasDiskImage" == name)) - { - this.hasDiskImageField = Enums.ParseYesNoType(value); - this.hasDiskImageFieldSet = true; - } - if (("HelpDirectory" == name)) - { - this.helpDirectoryField = value; - this.helpDirectoryFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.languageFieldSet = true; - } - if (("MajorVersion" == name)) - { - this.majorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.majorVersionFieldSet = true; - } - if (("MinorVersion" == name)) - { - this.minorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.minorVersionFieldSet = true; - } - if (("ResourceId" == name)) - { - this.resourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.resourceIdFieldSet = true; - } - if (("Restricted" == name)) - { - this.restrictedField = Enums.ParseYesNoType(value); - this.restrictedFieldSet = true; - } - } - } - - /// - /// ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProgId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private int iconIndexField; - - private bool iconIndexFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string noOpenField; - - private bool noOpenFieldSet; - - private ISchemaElement parentElement; - - public ProgId() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProgId))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Extension))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource. - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - public int IconIndex - { - get - { - return this.iconIndexField; - } - set - { - this.iconIndexFieldSet = true; - this.iconIndexField = value; - } - } - - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute. - /// - public string NoOpen - { - get - { - return this.noOpenField; - } - set - { - this.noOpenFieldSet = true; - this.noOpenField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProgId" == childName)) - { - childValue = new ProgId(); - } - if (("Extension" == childName)) - { - childValue = new Extension(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProgId", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.iconIndexFieldSet) - { - writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.noOpenFieldSet) - { - writer.WriteAttributeString("NoOpen", this.noOpenField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("IconIndex" == name)) - { - this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.iconIndexFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("NoOpen" == name)) - { - this.noOpenField = value; - this.noOpenFieldSet = true; - } - } - } - - /// - /// Application ID containing DCOM information for the associated application GUID. - /// If this element is nested under a Fragment, Module, or Product element, it must be - /// advertised. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AppId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private YesNoType activateAtStorageField; - - private bool activateAtStorageFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string dllSurrogateField; - - private bool dllSurrogateFieldSet; - - private string idField; - - private bool idFieldSet; - - private string localServiceField; - - private bool localServiceFieldSet; - - private string remoteServerNameField; - - private bool remoteServerNameFieldSet; - - private YesNoType runAsInteractiveUserField; - - private bool runAsInteractiveUserFieldSet; - - private string serviceParametersField; - - private bool serviceParametersFieldSet; - - private ISchemaElement parentElement; - - public AppId() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Set this value to 'yes' to configure the client to activate on the same system as persistent storage. - /// - public YesNoType ActivateAtStorage - { - get - { - return this.activateAtStorageField; - } - set - { - this.activateAtStorageFieldSet = true; - this.activateAtStorageField = value; - } - } - - /// - /// Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to - /// generate Registry rows that perform similar registration (without the often problematic Windows Installer - /// advertising behavior). - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE - /// process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value. - /// - public string DllSurrogate - { - get - { - return this.dllSurrogateField; - } - set - { - this.dllSurrogateFieldSet = true; - this.dllSurrogateField = value; - } - } - - /// - /// Set this value to the AppID GUID that corresponds to the named executable. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this value to the name of a service to allow the object to be installed as a Win32 service. - /// - public string LocalService - { - get - { - return this.localServiceField; - } - set - { - this.localServiceFieldSet = true; - this.localServiceField = value; - } - } - - /// - /// Set this value to the name of the remote server to configure the client to request the object - /// be run at a particular machine whenever an activation function is called for which a COSERVERINFO - /// structure is not specified. - /// - public string RemoteServerName - { - get - { - return this.remoteServerNameField; - } - set - { - this.remoteServerNameFieldSet = true; - this.remoteServerNameField = value; - } - } - - /// - /// Set this value to 'yes' to configure a class to run under the identity of the user currently - /// logged on and connected to the interactive desktop when activated by a remote client without - /// being written as a Win32 service. - /// - public YesNoType RunAsInteractiveUser - { - get - { - return this.runAsInteractiveUserField; - } - set - { - this.runAsInteractiveUserFieldSet = true; - this.runAsInteractiveUserField = value; - } - } - - /// - /// Set this value to the parameters to be passed to a LocalService on invocation. - /// - public string ServiceParameters - { - get - { - return this.serviceParametersField; - } - set - { - this.serviceParametersFieldSet = true; - this.serviceParametersField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Class" == childName)) - { - childValue = new Class(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AppId", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.activateAtStorageFieldSet) - { - if ((this.activateAtStorageField == YesNoType.no)) - { - writer.WriteAttributeString("ActivateAtStorage", "no"); - } - if ((this.activateAtStorageField == YesNoType.yes)) - { - writer.WriteAttributeString("ActivateAtStorage", "yes"); - } - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.dllSurrogateFieldSet) - { - writer.WriteAttributeString("DllSurrogate", this.dllSurrogateField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.localServiceFieldSet) - { - writer.WriteAttributeString("LocalService", this.localServiceField); - } - if (this.remoteServerNameFieldSet) - { - writer.WriteAttributeString("RemoteServerName", this.remoteServerNameField); - } - if (this.runAsInteractiveUserFieldSet) - { - if ((this.runAsInteractiveUserField == YesNoType.no)) - { - writer.WriteAttributeString("RunAsInteractiveUser", "no"); - } - if ((this.runAsInteractiveUserField == YesNoType.yes)) - { - writer.WriteAttributeString("RunAsInteractiveUser", "yes"); - } - } - if (this.serviceParametersFieldSet) - { - writer.WriteAttributeString("ServiceParameters", this.serviceParametersField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("ActivateAtStorage" == name)) - { - this.activateAtStorageField = Enums.ParseYesNoType(value); - this.activateAtStorageFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("DllSurrogate" == name)) - { - this.dllSurrogateField = value; - this.dllSurrogateFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("LocalService" == name)) - { - this.localServiceField = value; - this.localServiceFieldSet = true; - } - if (("RemoteServerName" == name)) - { - this.remoteServerNameField = value; - this.remoteServerNameFieldSet = true; - } - if (("RunAsInteractiveUser" == name)) - { - this.runAsInteractiveUserField = Enums.ParseYesNoType(value); - this.runAsInteractiveUserFieldSet = true; - } - if (("ServiceParameters" == name)) - { - this.serviceParametersField = value; - this.serviceParametersFieldSet = true; - } - } - } - - /// - /// COM Class registration for parent Component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Class : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ContextType contextField; - - private bool contextFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string appIdField; - - private bool appIdFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private int iconIndexField; - - private bool iconIndexFieldSet; - - private string handlerField; - - private bool handlerFieldSet; - - private string argumentField; - - private bool argumentFieldSet; - - private YesNoType relativePathField; - - private bool relativePathFieldSet; - - private YesNoType advertiseField; - - private bool advertiseFieldSet; - - private ThreadingModelType threadingModelField; - - private bool threadingModelFieldSet; - - private string versionField; - - private bool versionFieldSet; - - private YesNoType insertableField; - - private bool insertableFieldSet; - - private YesNoType programmableField; - - private bool programmableFieldSet; - - private string foreignServerField; - - private bool foreignServerFieldSet; - - private string serverField; - - private bool serverFieldSet; - - private YesNoType shortPathField; - - private bool shortPathFieldSet; - - private YesNoType safeForScriptingField; - - private bool safeForScriptingFieldSet; - - private YesNoType safeForInitializingField; - - private bool safeForInitializingFieldSet; - - private YesNoType controlField; - - private bool controlFieldSet; - - private ISchemaElement parentElement; - - public Class() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileTypeMask))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The Class identifier (CLSID) of a COM server. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable". - /// Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value - /// for the Context attribute. - /// - public ContextType Context - { - get - { - return this.contextField; - } - set - { - this.contextFieldSet = true; - this.contextField = value; - } - } - - /// - /// Localized description associated with the Class ID and Program ID. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID - /// containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an - /// AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised - /// class, nest the class within a parent AppId element. - /// - public string AppId - { - get - { - return this.appIdField; - } - set - { - this.appIdFieldSet = true; - this.appIdField = value; - } - } - - /// - /// The file providing the icon associated with this CLSID. Reference to an Icon element - /// (should match the Id attribute of an Icon element). This is currently not supported if the - /// value of the Advertise attribute is "no". - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// Icon index into the icon file. - /// - public int IconIndex - { - get - { - return this.iconIndexField; - } - set - { - this.iconIndexFieldSet = true; - this.iconIndexField = value; - } - } - - /// - /// The default inproc handler. May be optionally provided only for Context = LocalServer or - /// LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler - /// value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value). - /// Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated - /// as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value). - /// - public string Handler - { - get - { - return this.handlerField; - } - set - { - this.handlerFieldSet = true; - this.handlerField = value; - } - } - - /// - /// This column is optional only when the Context column is set to "LocalServer" - /// or "LocalServer32" server context. The text is registered as the argument against - /// the OLE server and is used by OLE for invoking the server. Note that the resolution - /// of properties in the Argument field is limited. A property formatted as [Property] in - /// this field can only be resolved if the property already has the intended value when - /// the component owning the class is installed. For example, for the argument "[#MyDoc.doc]" - /// to resolve to the correct value, the same process must be installing the file MyDoc.doc and the - /// component that owns the class. - /// - public string Argument - { - get - { - return this.argumentField; - } - set - { - this.argumentFieldSet = true; - this.argumentField = value; - } - } - - /// - /// When the value is "yes", the bare file name can be used for COM servers. The installer - /// registers the file name only instead of the complete path. This enables the server in - /// the current directory to take precedence and allows multiple copies of the same component. - /// - public YesNoType RelativePath - { - get - { - return this.relativePathField; - } - set - { - this.relativePathFieldSet = true; - this.relativePathField = value; - } - } - - /// - /// Set this value to "yes" in order to create a normal Class table row. Set this value to - /// "no" in order to generate Registry rows that perform similar registration (without the - /// often problematic Windows Installer advertising behavior). - /// - public YesNoType Advertise - { - get - { - return this.advertiseField; - } - set - { - this.advertiseFieldSet = true; - this.advertiseField = value; - } - } - - /// - /// Threading model for the CLSID. - /// - public ThreadingModelType ThreadingModel - { - get - { - return this.threadingModelField; - } - set - { - this.threadingModelFieldSet = true; - this.threadingModelField = value; - } - } - - /// - /// Version for the CLSID. - /// - public string Version - { - get - { - return this.versionField; - } - set - { - this.versionFieldSet = true; - this.versionField = value; - } - } - - /// - /// Specifies the CLSID may be insertable. - /// - public YesNoType Insertable - { - get - { - return this.insertableField; - } - set - { - this.insertableFieldSet = true; - this.insertableField = value; - } - } - - /// - /// Specifies the CLSID may be programmable. - /// - public YesNoType Programmable - { - get - { - return this.programmableField; - } - set - { - this.programmableFieldSet = true; - this.programmableField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only - /// be used when the Class element is directly under the Component element. The value can be - /// that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed. - /// - public string ForeignServer - { - get - { - return this.foreignServerField; - } - set - { - this.foreignServerFieldSet = true; - this.foreignServerField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the - /// COM server file. If this element is nested under a File element, this value defaults to - /// the value of the parent File/@Id. - /// - public string Server - { - get - { - return this.serverField; - } - set - { - this.serverFieldSet = true; - this.serverField = value; - } - } - - /// - /// Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server. - /// - public YesNoType ShortPath - { - get - { - return this.shortPathField; - } - set - { - this.shortPathFieldSet = true; - this.shortPathField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no". - /// - public YesNoType SafeForScripting - { - get - { - return this.safeForScriptingField; - } - set - { - this.safeForScriptingFieldSet = true; - this.safeForScriptingField = value; - } - } - - /// - /// May only be specified if the value of the Advertise attribute is "no". - /// - public YesNoType SafeForInitializing - { - get - { - return this.safeForInitializingField; - } - set - { - this.safeForInitializingFieldSet = true; - this.safeForInitializingField = value; - } - } - - /// - /// Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'. - /// - public YesNoType Control - { - get - { - return this.controlField; - } - set - { - this.controlFieldSet = true; - this.controlField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ProgId" == childName)) - { - childValue = new ProgId(); - } - if (("FileTypeMask" == childName)) - { - childValue = new FileTypeMask(); - } - if (("Interface" == childName)) - { - childValue = new Interface(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Tries to parse a ContextType from a string. - /// - public static bool TryParseContextType(string value, out ContextType parsedValue) - { - parsedValue = ContextType.None; - if (string.IsNullOrEmpty(value)) - { - return false; - } - string[] splitValue = value.Split(" \t\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); - for (System.Collections.IEnumerator enumerator = splitValue.GetEnumerator(); enumerator.MoveNext(); - ) - { - string currentValue = ((string)(enumerator.Current)); - if (("LocalServer" == currentValue)) - { - parsedValue = (parsedValue | ContextType.LocalServer); - } - else - { - if (("LocalServer32" == currentValue)) - { - parsedValue = (parsedValue | ContextType.LocalServer32); - } - else - { - if (("InprocServer" == currentValue)) - { - parsedValue = (parsedValue | ContextType.InprocServer); - } - else - { - if (("InprocServer32" == currentValue)) - { - parsedValue = (parsedValue | ContextType.InprocServer32); - } - else - { - parsedValue = ContextType.None; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ThreadingModelType from a string. - /// - public static ThreadingModelType ParseThreadingModelType(string value) - { - ThreadingModelType parsedValue; - Class.TryParseThreadingModelType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ThreadingModelType from a string. - /// - public static bool TryParseThreadingModelType(string value, out ThreadingModelType parsedValue) - { - parsedValue = ThreadingModelType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("apartment" == value)) - { - parsedValue = ThreadingModelType.apartment; - } - else - { - if (("free" == value)) - { - parsedValue = ThreadingModelType.free; - } - else - { - if (("both" == value)) - { - parsedValue = ThreadingModelType.both; - } - else - { - if (("neutral" == value)) - { - parsedValue = ThreadingModelType.neutral; - } - else - { - if (("single" == value)) - { - parsedValue = ThreadingModelType.single; - } - else - { - if (("rental" == value)) - { - parsedValue = ThreadingModelType.rental; - } - else - { - parsedValue = ThreadingModelType.IllegalValue; - return false; - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Class", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.contextFieldSet) - { - string outputValue = ""; - if (((this.contextField & ContextType.LocalServer) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "LocalServer"); - } - if (((this.contextField & ContextType.LocalServer32) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "LocalServer32"); - } - if (((this.contextField & ContextType.InprocServer) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "InprocServer"); - } - if (((this.contextField & ContextType.InprocServer32) - != 0)) - { - if ((outputValue.Length != 0)) - { - outputValue = (outputValue + " "); - } - outputValue = (outputValue + "InprocServer32"); - } - writer.WriteAttributeString("Context", outputValue); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.appIdFieldSet) - { - writer.WriteAttributeString("AppId", this.appIdField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.iconIndexFieldSet) - { - writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); - } - if (this.handlerFieldSet) - { - writer.WriteAttributeString("Handler", this.handlerField); - } - if (this.argumentFieldSet) - { - writer.WriteAttributeString("Argument", this.argumentField); - } - if (this.relativePathFieldSet) - { - if ((this.relativePathField == YesNoType.no)) - { - writer.WriteAttributeString("RelativePath", "no"); - } - if ((this.relativePathField == YesNoType.yes)) - { - writer.WriteAttributeString("RelativePath", "yes"); - } - } - if (this.advertiseFieldSet) - { - if ((this.advertiseField == YesNoType.no)) - { - writer.WriteAttributeString("Advertise", "no"); - } - if ((this.advertiseField == YesNoType.yes)) - { - writer.WriteAttributeString("Advertise", "yes"); - } - } - if (this.threadingModelFieldSet) - { - if ((this.threadingModelField == ThreadingModelType.apartment)) - { - writer.WriteAttributeString("ThreadingModel", "apartment"); - } - if ((this.threadingModelField == ThreadingModelType.free)) - { - writer.WriteAttributeString("ThreadingModel", "free"); - } - if ((this.threadingModelField == ThreadingModelType.both)) - { - writer.WriteAttributeString("ThreadingModel", "both"); - } - if ((this.threadingModelField == ThreadingModelType.neutral)) - { - writer.WriteAttributeString("ThreadingModel", "neutral"); - } - if ((this.threadingModelField == ThreadingModelType.single)) - { - writer.WriteAttributeString("ThreadingModel", "single"); - } - if ((this.threadingModelField == ThreadingModelType.rental)) - { - writer.WriteAttributeString("ThreadingModel", "rental"); - } - } - if (this.versionFieldSet) - { - writer.WriteAttributeString("Version", this.versionField); - } - if (this.insertableFieldSet) - { - if ((this.insertableField == YesNoType.no)) - { - writer.WriteAttributeString("Insertable", "no"); - } - if ((this.insertableField == YesNoType.yes)) - { - writer.WriteAttributeString("Insertable", "yes"); - } - } - if (this.programmableFieldSet) - { - if ((this.programmableField == YesNoType.no)) - { - writer.WriteAttributeString("Programmable", "no"); - } - if ((this.programmableField == YesNoType.yes)) - { - writer.WriteAttributeString("Programmable", "yes"); - } - } - if (this.foreignServerFieldSet) - { - writer.WriteAttributeString("ForeignServer", this.foreignServerField); - } - if (this.serverFieldSet) - { - writer.WriteAttributeString("Server", this.serverField); - } - if (this.shortPathFieldSet) - { - if ((this.shortPathField == YesNoType.no)) - { - writer.WriteAttributeString("ShortPath", "no"); - } - if ((this.shortPathField == YesNoType.yes)) - { - writer.WriteAttributeString("ShortPath", "yes"); - } - } - if (this.safeForScriptingFieldSet) - { - if ((this.safeForScriptingField == YesNoType.no)) - { - writer.WriteAttributeString("SafeForScripting", "no"); - } - if ((this.safeForScriptingField == YesNoType.yes)) - { - writer.WriteAttributeString("SafeForScripting", "yes"); - } - } - if (this.safeForInitializingFieldSet) - { - if ((this.safeForInitializingField == YesNoType.no)) - { - writer.WriteAttributeString("SafeForInitializing", "no"); - } - if ((this.safeForInitializingField == YesNoType.yes)) - { - writer.WriteAttributeString("SafeForInitializing", "yes"); - } - } - if (this.controlFieldSet) - { - if ((this.controlField == YesNoType.no)) - { - writer.WriteAttributeString("Control", "no"); - } - if ((this.controlField == YesNoType.yes)) - { - writer.WriteAttributeString("Control", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Context" == name)) - { - Class.TryParseContextType(value, out this.contextField); - this.contextFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("AppId" == name)) - { - this.appIdField = value; - this.appIdFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("IconIndex" == name)) - { - this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.iconIndexFieldSet = true; - } - if (("Handler" == name)) - { - this.handlerField = value; - this.handlerFieldSet = true; - } - if (("Argument" == name)) - { - this.argumentField = value; - this.argumentFieldSet = true; - } - if (("RelativePath" == name)) - { - this.relativePathField = Enums.ParseYesNoType(value); - this.relativePathFieldSet = true; - } - if (("Advertise" == name)) - { - this.advertiseField = Enums.ParseYesNoType(value); - this.advertiseFieldSet = true; - } - if (("ThreadingModel" == name)) - { - this.threadingModelField = Class.ParseThreadingModelType(value); - this.threadingModelFieldSet = true; - } - if (("Version" == name)) - { - this.versionField = value; - this.versionFieldSet = true; - } - if (("Insertable" == name)) - { - this.insertableField = Enums.ParseYesNoType(value); - this.insertableFieldSet = true; - } - if (("Programmable" == name)) - { - this.programmableField = Enums.ParseYesNoType(value); - this.programmableFieldSet = true; - } - if (("ForeignServer" == name)) - { - this.foreignServerField = value; - this.foreignServerFieldSet = true; - } - if (("Server" == name)) - { - this.serverField = value; - this.serverFieldSet = true; - } - if (("ShortPath" == name)) - { - this.shortPathField = Enums.ParseYesNoType(value); - this.shortPathFieldSet = true; - } - if (("SafeForScripting" == name)) - { - this.safeForScriptingField = Enums.ParseYesNoType(value); - this.safeForScriptingFieldSet = true; - } - if (("SafeForInitializing" == name)) - { - this.safeForInitializingField = Enums.ParseYesNoType(value); - this.safeForInitializingFieldSet = true; - } - if (("Control" == name)) - { - this.controlField = Enums.ParseYesNoType(value); - this.controlFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - [Flags()] - public enum ContextType - { - - None = 0, - - /// - /// A 16-bit local server application. - /// - LocalServer = 1, - - /// - /// A 32-bit local server application. - /// - LocalServer32 = 2, - - /// - /// A 16-bit in-process server DLL. - /// - InprocServer = 4, - - /// - /// A 32-bit in-process server DLL. - /// - InprocServer32 = 8, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ThreadingModelType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - apartment, - - free, - - both, - - neutral, - - single, - - rental, - } - } - - /// - /// COM Interface registration for parent TypeLib. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Interface : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string baseInterfaceField; - - private bool baseInterfaceFieldSet; - - private string proxyStubClassIdField; - - private bool proxyStubClassIdFieldSet; - - private string proxyStubClassId32Field; - - private bool proxyStubClassId32FieldSet; - - private int numMethodsField; - - private bool numMethodsFieldSet; - - private YesNoType versionedField; - - private bool versionedFieldSet; - - private ISchemaElement parentElement; - - /// - /// GUID identifier for COM Interface. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name for COM Interface. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Identifies the interface from which the current interface is derived. - /// - public string BaseInterface - { - get - { - return this.baseInterfaceField; - } - set - { - this.baseInterfaceFieldSet = true; - this.baseInterfaceField = value; - } - } - - /// - /// GUID CLSID for proxy stub to COM Interface. - /// - public string ProxyStubClassId - { - get - { - return this.proxyStubClassIdField; - } - set - { - this.proxyStubClassIdFieldSet = true; - this.proxyStubClassIdField = value; - } - } - - /// - /// GUID CLSID for 32-bit proxy stub to COM Interface. - /// - public string ProxyStubClassId32 - { - get - { - return this.proxyStubClassId32Field; - } - set - { - this.proxyStubClassId32FieldSet = true; - this.proxyStubClassId32Field = value; - } - } - - /// - /// Number of methods implemented on COM Interface. - /// - public int NumMethods - { - get - { - return this.numMethodsField; - } - set - { - this.numMethodsFieldSet = true; - this.numMethodsField = value; - } - } - - /// - /// Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'. - /// - public YesNoType Versioned - { - get - { - return this.versionedField; - } - set - { - this.versionedFieldSet = true; - this.versionedField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Interface", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.baseInterfaceFieldSet) - { - writer.WriteAttributeString("BaseInterface", this.baseInterfaceField); - } - if (this.proxyStubClassIdFieldSet) - { - writer.WriteAttributeString("ProxyStubClassId", this.proxyStubClassIdField); - } - if (this.proxyStubClassId32FieldSet) - { - writer.WriteAttributeString("ProxyStubClassId32", this.proxyStubClassId32Field); - } - if (this.numMethodsFieldSet) - { - writer.WriteAttributeString("NumMethods", this.numMethodsField.ToString(CultureInfo.InvariantCulture)); - } - if (this.versionedFieldSet) - { - if ((this.versionedField == YesNoType.no)) - { - writer.WriteAttributeString("Versioned", "no"); - } - if ((this.versionedField == YesNoType.yes)) - { - writer.WriteAttributeString("Versioned", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("BaseInterface" == name)) - { - this.baseInterfaceField = value; - this.baseInterfaceFieldSet = true; - } - if (("ProxyStubClassId" == name)) - { - this.proxyStubClassIdField = value; - this.proxyStubClassIdFieldSet = true; - } - if (("ProxyStubClassId32" == name)) - { - this.proxyStubClassId32Field = value; - this.proxyStubClassId32FieldSet = true; - } - if (("NumMethods" == name)) - { - this.numMethodsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.numMethodsFieldSet = true; - } - if (("Versioned" == name)) - { - this.versionedField = Enums.ParseYesNoType(value); - this.versionedFieldSet = true; - } - } - } - - /// - /// FileType data for class Id registration. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileTypeMask : ISchemaElement, ISetAttributes - { - - private int offsetField; - - private bool offsetFieldSet; - - private string maskField; - - private bool maskFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Offset into file. If positive, offset is from the beginning; if negative, offset is from the end. - /// - public int Offset - { - get - { - return this.offsetField; - } - set - { - this.offsetFieldSet = true; - this.offsetField = value; - } - } - - /// - /// Hex value that is AND'd against the bytes in the file at Offset. - /// - public string Mask - { - get - { - return this.maskField; - } - set - { - this.maskFieldSet = true; - this.maskField = value; - } - } - - /// - /// If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileTypeMask", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.offsetFieldSet) - { - writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maskFieldSet) - { - writer.WriteAttributeString("Mask", this.maskField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Offset" == name)) - { - this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.offsetFieldSet = true; - } - if (("Mask" == name)) - { - this.maskField = value; - this.maskFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Service or group of services that must start before the parent service. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceDependency : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType groupField; - - private bool groupFieldSet; - - private ISchemaElement parentElement; - - /// - /// The value of this attribute should be one of the following: - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. - /// - public YesNoType Group - { - get - { - return this.groupField; - } - set - { - this.groupFieldSet = true; - this.groupField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceDependency", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.groupFieldSet) - { - if ((this.groupField == YesNoType.no)) - { - writer.WriteAttributeString("Group", "no"); - } - if ((this.groupField == YesNoType.yes)) - { - writer.WriteAttributeString("Group", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Group" == name)) - { - this.groupField = Enums.ParseYesNoType(value); - this.groupFieldSet = true; - } - } - } - - /// - /// Adds services for parent Component. Use the ServiceControl element to remove services. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceInstall : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string displayNameField; - - private bool displayNameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private YesNoType interactiveField; - - private bool interactiveFieldSet; - - private StartType startField; - - private bool startFieldSet; - - private ErrorControlType errorControlField; - - private bool errorControlFieldSet; - - private YesNoType vitalField; - - private bool vitalFieldSet; - - private string loadOrderGroupField; - - private bool loadOrderGroupFieldSet; - - private string accountField; - - private bool accountFieldSet; - - private string passwordField; - - private bool passwordFieldSet; - - private string argumentsField; - - private bool argumentsFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private YesNoType eraseDescriptionField; - - private bool eraseDescriptionFieldSet; - - private ISchemaElement parentElement; - - public ServiceInstall() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceDependency))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for this service configuration. This value will default to the Name attribute if not - /// specified. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This column is the string that gives the service name to install. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// This column is the localizable string that user interface programs use to identify the service. - /// - public string DisplayName - { - get - { - return this.displayNameField; - } - set - { - this.displayNameFieldSet = true; - this.displayNameField = value; - } - } - - /// - /// The Windows Installer does not currently support kernelDriver or systemDriver. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Whether or not the service interacts with the desktop. - /// - public YesNoType Interactive - { - get - { - return this.interactiveField; - } - set - { - this.interactiveFieldSet = true; - this.interactiveField = value; - } - } - - /// - /// Determines when the service should be started. The Windows Installer does not support boot or system. - /// - public StartType Start - { - get - { - return this.startField; - } - set - { - this.startFieldSet = true; - this.startField = value; - } - } - - /// - /// Determines what action should be taken on an error. - /// - public ErrorControlType ErrorControl - { - get - { - return this.errorControlField; - } - set - { - this.errorControlFieldSet = true; - this.errorControlField = value; - } - } - - /// - /// The overall install should fail if this service fails to install. - /// - public YesNoType Vital - { - get - { - return this.vitalField; - } - set - { - this.vitalFieldSet = true; - this.vitalField = value; - } - } - - /// - /// The load ordering group that this service should be a part of. - /// - public string LoadOrderGroup - { - get - { - return this.loadOrderGroupField; - } - set - { - this.loadOrderGroupFieldSet = true; - this.loadOrderGroupField = value; - } - } - - /// - /// Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess. - /// - public string Account - { - get - { - return this.accountField; - } - set - { - this.accountFieldSet = true; - this.accountField = value; - } - } - - /// - /// The password for the account. Valid only when the account has a password. - /// - public string Password - { - get - { - return this.passwordField; - } - set - { - this.passwordFieldSet = true; - this.passwordField = value; - } - } - - /// - /// Contains any command line arguments or properties required to run the service. - /// - public string Arguments - { - get - { - return this.argumentsField; - } - set - { - this.argumentsFieldSet = true; - this.argumentsField = value; - } - } - - /// - /// Sets the description of the service. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set. - /// - public YesNoType EraseDescription - { - get - { - return this.eraseDescriptionField; - } - set - { - this.eraseDescriptionFieldSet = true; - this.eraseDescriptionField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("PermissionEx" == childName)) - { - childValue = new PermissionEx(); - } - if (("ServiceDependency" == childName)) - { - childValue = new ServiceDependency(); - } - if (("ServiceConfig" == childName)) - { - childValue = new ServiceConfig(); - } - if (("ServiceConfigFailureActions" == childName)) - { - childValue = new ServiceConfigFailureActions(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - ServiceInstall.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("ownProcess" == value)) - { - parsedValue = TypeType.ownProcess; - } - else - { - if (("shareProcess" == value)) - { - parsedValue = TypeType.shareProcess; - } - else - { - if (("kernelDriver" == value)) - { - parsedValue = TypeType.kernelDriver; - } - else - { - if (("systemDriver" == value)) - { - parsedValue = TypeType.systemDriver; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a StartType from a string. - /// - public static StartType ParseStartType(string value) - { - StartType parsedValue; - ServiceInstall.TryParseStartType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a StartType from a string. - /// - public static bool TryParseStartType(string value, out StartType parsedValue) - { - parsedValue = StartType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("auto" == value)) - { - parsedValue = StartType.auto; - } - else - { - if (("demand" == value)) - { - parsedValue = StartType.demand; - } - else - { - if (("disabled" == value)) - { - parsedValue = StartType.disabled; - } - else - { - if (("boot" == value)) - { - parsedValue = StartType.boot; - } - else - { - if (("system" == value)) - { - parsedValue = StartType.system; - } - else - { - parsedValue = StartType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Parses a ErrorControlType from a string. - /// - public static ErrorControlType ParseErrorControlType(string value) - { - ErrorControlType parsedValue; - ServiceInstall.TryParseErrorControlType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ErrorControlType from a string. - /// - public static bool TryParseErrorControlType(string value, out ErrorControlType parsedValue) - { - parsedValue = ErrorControlType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("ignore" == value)) - { - parsedValue = ErrorControlType.ignore; - } - else - { - if (("normal" == value)) - { - parsedValue = ErrorControlType.normal; - } - else - { - if (("critical" == value)) - { - parsedValue = ErrorControlType.critical; - } - else - { - parsedValue = ErrorControlType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceInstall", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.displayNameFieldSet) - { - writer.WriteAttributeString("DisplayName", this.displayNameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.ownProcess)) - { - writer.WriteAttributeString("Type", "ownProcess"); - } - if ((this.typeField == TypeType.shareProcess)) - { - writer.WriteAttributeString("Type", "shareProcess"); - } - if ((this.typeField == TypeType.kernelDriver)) - { - writer.WriteAttributeString("Type", "kernelDriver"); - } - if ((this.typeField == TypeType.systemDriver)) - { - writer.WriteAttributeString("Type", "systemDriver"); - } - } - if (this.interactiveFieldSet) - { - if ((this.interactiveField == YesNoType.no)) - { - writer.WriteAttributeString("Interactive", "no"); - } - if ((this.interactiveField == YesNoType.yes)) - { - writer.WriteAttributeString("Interactive", "yes"); - } - } - if (this.startFieldSet) - { - if ((this.startField == StartType.auto)) - { - writer.WriteAttributeString("Start", "auto"); - } - if ((this.startField == StartType.demand)) - { - writer.WriteAttributeString("Start", "demand"); - } - if ((this.startField == StartType.disabled)) - { - writer.WriteAttributeString("Start", "disabled"); - } - if ((this.startField == StartType.boot)) - { - writer.WriteAttributeString("Start", "boot"); - } - if ((this.startField == StartType.system)) - { - writer.WriteAttributeString("Start", "system"); - } - } - if (this.errorControlFieldSet) - { - if ((this.errorControlField == ErrorControlType.ignore)) - { - writer.WriteAttributeString("ErrorControl", "ignore"); - } - if ((this.errorControlField == ErrorControlType.normal)) - { - writer.WriteAttributeString("ErrorControl", "normal"); - } - if ((this.errorControlField == ErrorControlType.critical)) - { - writer.WriteAttributeString("ErrorControl", "critical"); - } - } - if (this.vitalFieldSet) - { - if ((this.vitalField == YesNoType.no)) - { - writer.WriteAttributeString("Vital", "no"); - } - if ((this.vitalField == YesNoType.yes)) - { - writer.WriteAttributeString("Vital", "yes"); - } - } - if (this.loadOrderGroupFieldSet) - { - writer.WriteAttributeString("LoadOrderGroup", this.loadOrderGroupField); - } - if (this.accountFieldSet) - { - writer.WriteAttributeString("Account", this.accountField); - } - if (this.passwordFieldSet) - { - writer.WriteAttributeString("Password", this.passwordField); - } - if (this.argumentsFieldSet) - { - writer.WriteAttributeString("Arguments", this.argumentsField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.eraseDescriptionFieldSet) - { - if ((this.eraseDescriptionField == YesNoType.no)) - { - writer.WriteAttributeString("EraseDescription", "no"); - } - if ((this.eraseDescriptionField == YesNoType.yes)) - { - writer.WriteAttributeString("EraseDescription", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("DisplayName" == name)) - { - this.displayNameField = value; - this.displayNameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = ServiceInstall.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Interactive" == name)) - { - this.interactiveField = Enums.ParseYesNoType(value); - this.interactiveFieldSet = true; - } - if (("Start" == name)) - { - this.startField = ServiceInstall.ParseStartType(value); - this.startFieldSet = true; - } - if (("ErrorControl" == name)) - { - this.errorControlField = ServiceInstall.ParseErrorControlType(value); - this.errorControlFieldSet = true; - } - if (("Vital" == name)) - { - this.vitalField = Enums.ParseYesNoType(value); - this.vitalFieldSet = true; - } - if (("LoadOrderGroup" == name)) - { - this.loadOrderGroupField = value; - this.loadOrderGroupFieldSet = true; - } - if (("Account" == name)) - { - this.accountField = value; - this.accountFieldSet = true; - } - if (("Password" == name)) - { - this.passwordField = value; - this.passwordFieldSet = true; - } - if (("Arguments" == name)) - { - this.argumentsField = value; - this.argumentsFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("EraseDescription" == name)) - { - this.eraseDescriptionField = Enums.ParseYesNoType(value); - this.eraseDescriptionFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// A Win32 service that runs its own process. - /// - ownProcess, - - /// - /// A Win32 service that shares a process. - /// - shareProcess, - - /// - /// A kernel driver service. This value is not currently supported by the Windows Installer. - /// - kernelDriver, - - /// - /// A file system driver service. This value is not currently supported by the Windows Installer. - /// - systemDriver, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum StartType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// The service will start during startup of the system. - /// - auto, - - /// - /// The service will start when the service control manager calls the StartService function. - /// - demand, - - /// - /// The service can no longer be started. - /// - disabled, - - /// - /// The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer. - /// - boot, - - /// - /// The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer. - /// - system, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ErrorControlType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Logs the error and continues with the startup operation. - /// - ignore, - - /// - /// Logs the error, displays a message box and continues the startup operation. - /// - normal, - - /// - /// Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails. - /// - critical, - } - } - - /// - /// Argument used in ServiceControl parent - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceArgument : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Argument used in ServiceControl parent - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceArgument", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Starts, stops, and removes services for parent Component. This element is used to control the state - /// of a service installed by the MSI or MSM file by using the start, stop and remove attributes. - /// For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install, - /// remove the service when the product is uninstalled, and stop the service both on install and uninstall. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceControl : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private InstallUninstallType startField; - - private bool startFieldSet; - - private InstallUninstallType stopField; - - private bool stopFieldSet; - - private InstallUninstallType removeField; - - private bool removeFieldSet; - - private YesNoType waitField; - - private bool waitFieldSet; - - private ISchemaElement parentElement; - - public ServiceControl() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ServiceArgument))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name of the service. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Specifies whether the service should be started by the StartServices action on install, uninstall or both. - /// For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the service will be started only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases. - /// - public InstallUninstallType Start - { - get - { - return this.startField; - } - set - { - this.startFieldSet = true; - this.startField = value; - } - } - - /// - /// Specifies whether the service should be stopped by the StopServices action on install, uninstall or both. - /// For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases. - /// - public InstallUninstallType Stop - { - get - { - return this.stopField; - } - set - { - this.stopFieldSet = true; - this.stopField = value; - } - } - - /// - /// Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both. - /// For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or - /// msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component - /// is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases. - /// - public InstallUninstallType Remove - { - get - { - return this.removeField; - } - set - { - this.removeFieldSet = true; - this.removeField = value; - } - } - - /// - /// Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'. - /// - public YesNoType Wait - { - get - { - return this.waitField; - } - set - { - this.waitFieldSet = true; - this.waitField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ServiceArgument" == childName)) - { - childValue = new ServiceArgument(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceControl", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.startFieldSet) - { - if ((this.startField == InstallUninstallType.install)) - { - writer.WriteAttributeString("Start", "install"); - } - if ((this.startField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("Start", "uninstall"); - } - if ((this.startField == InstallUninstallType.both)) - { - writer.WriteAttributeString("Start", "both"); - } - } - if (this.stopFieldSet) - { - if ((this.stopField == InstallUninstallType.install)) - { - writer.WriteAttributeString("Stop", "install"); - } - if ((this.stopField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("Stop", "uninstall"); - } - if ((this.stopField == InstallUninstallType.both)) - { - writer.WriteAttributeString("Stop", "both"); - } - } - if (this.removeFieldSet) - { - if ((this.removeField == InstallUninstallType.install)) - { - writer.WriteAttributeString("Remove", "install"); - } - if ((this.removeField == InstallUninstallType.uninstall)) - { - writer.WriteAttributeString("Remove", "uninstall"); - } - if ((this.removeField == InstallUninstallType.both)) - { - writer.WriteAttributeString("Remove", "both"); - } - } - if (this.waitFieldSet) - { - if ((this.waitField == YesNoType.no)) - { - writer.WriteAttributeString("Wait", "no"); - } - if ((this.waitField == YesNoType.yes)) - { - writer.WriteAttributeString("Wait", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Start" == name)) - { - this.startField = Enums.ParseInstallUninstallType(value); - this.startFieldSet = true; - } - if (("Stop" == name)) - { - this.stopField = Enums.ParseInstallUninstallType(value); - this.stopFieldSet = true; - } - if (("Remove" == name)) - { - this.removeField = Enums.ParseInstallUninstallType(value); - this.removeFieldSet = true; - } - if (("Wait" == name)) - { - this.waitField = Enums.ParseYesNoType(value); - this.waitFieldSet = true; - } - } - } - - /// - /// Privilege required by service configured by ServiceConfig parent. Valid values are a - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RequiredPrivilege : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Privilege required by service configured by ServiceConfig parent. Valid values are a - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RequiredPrivilege", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceConfig : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string delayedAutoStartField; - - private bool delayedAutoStartFieldSet; - - private string failureActionsWhenField; - - private bool failureActionsWhenFieldSet; - - private string preShutdownDelayField; - - private bool preShutdownDelayFieldSet; - - private YesNoType onInstallField; - - private bool onInstallFieldSet; - - private YesNoType onReinstallField; - - private bool onReinstallFieldSet; - - private YesNoType onUninstallField; - - private bool onUninstallFieldSet; - - private string serviceNameField; - - private bool serviceNameFieldSet; - - private string serviceSidField; - - private bool serviceSidFieldSet; - - private ISchemaElement parentElement; - - public ServiceConfig() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RequiredPrivilege))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not - /// specified. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute specifies whether an auto-start service should delay its start until after all other auto-start - /// services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that - /// resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured. - /// - public string DelayedAutoStart - { - get - { - return this.delayedAutoStartField; - } - set - { - this.delayedAutoStartFieldSet = true; - this.delayedAutoStartField = value; - } - } - - /// - /// This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError" - /// or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute - /// is not present the setting is not configured. - /// - public string FailureActionsWhen - { - get - { - return this.failureActionsWhenField; - } - set - { - this.failureActionsWhenFieldSet = true; - this.failureActionsWhenField = value; - } - } - - /// - /// This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system - /// shutdown. If this attribute is not present the default value, 3 minutes, is used. - /// - public string PreShutdownDelay - { - get - { - return this.preShutdownDelayField; - } - set - { - this.preShutdownDelayFieldSet = true; - this.preShutdownDelayField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall - /// and OnUninstall. - /// - public YesNoType OnInstall - { - get - { - return this.onInstallField; - } - set - { - this.onInstallFieldSet = true; - this.onInstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall - /// and OnUninstall. - /// - public YesNoType OnReinstall - { - get - { - return this.onReinstallField; - } - set - { - this.onReinstallFieldSet = true; - this.onReinstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall - /// and OnReinstall. - /// - public YesNoType OnUninstall - { - get - { - return this.onUninstallField; - } - set - { - this.onUninstallFieldSet = true; - this.onUninstallField = value; - } - } - - /// - /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under - /// a ServiceInstall element. - /// - public string ServiceName - { - get - { - return this.serviceNameField; - } - set - { - this.serviceNameFieldSet = true; - this.serviceNameField = value; - } - } - - /// - /// Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property - /// that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the - /// setting is not configured. - /// - public string ServiceSid - { - get - { - return this.serviceSidField; - } - set - { - this.serviceSidFieldSet = true; - this.serviceSidField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("RequiredPrivilege" == childName)) - { - childValue = new RequiredPrivilege(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceConfig", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.delayedAutoStartFieldSet) - { - writer.WriteAttributeString("DelayedAutoStart", this.delayedAutoStartField); - } - if (this.failureActionsWhenFieldSet) - { - writer.WriteAttributeString("FailureActionsWhen", this.failureActionsWhenField); - } - if (this.preShutdownDelayFieldSet) - { - writer.WriteAttributeString("PreShutdownDelay", this.preShutdownDelayField); - } - if (this.onInstallFieldSet) - { - if ((this.onInstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnInstall", "no"); - } - if ((this.onInstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnInstall", "yes"); - } - } - if (this.onReinstallFieldSet) - { - if ((this.onReinstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnReinstall", "no"); - } - if ((this.onReinstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnReinstall", "yes"); - } - } - if (this.onUninstallFieldSet) - { - if ((this.onUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnUninstall", "no"); - } - if ((this.onUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnUninstall", "yes"); - } - } - if (this.serviceNameFieldSet) - { - writer.WriteAttributeString("ServiceName", this.serviceNameField); - } - if (this.serviceSidFieldSet) - { - writer.WriteAttributeString("ServiceSid", this.serviceSidField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("DelayedAutoStart" == name)) - { - this.delayedAutoStartField = value; - this.delayedAutoStartFieldSet = true; - } - if (("FailureActionsWhen" == name)) - { - this.failureActionsWhenField = value; - this.failureActionsWhenFieldSet = true; - } - if (("PreShutdownDelay" == name)) - { - this.preShutdownDelayField = value; - this.preShutdownDelayFieldSet = true; - } - if (("OnInstall" == name)) - { - this.onInstallField = Enums.ParseYesNoType(value); - this.onInstallFieldSet = true; - } - if (("OnReinstall" == name)) - { - this.onReinstallField = Enums.ParseYesNoType(value); - this.onReinstallFieldSet = true; - } - if (("OnUninstall" == name)) - { - this.onUninstallField = Enums.ParseYesNoType(value); - this.onUninstallFieldSet = true; - } - if (("ServiceName" == name)) - { - this.serviceNameField = value; - this.serviceNameFieldSet = true; - } - if (("ServiceSid" == name)) - { - this.serviceSidField = value; - this.serviceSidFieldSet = true; - } - } - } - - /// - /// Failure action for a ServiceConfigFailureActions element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Failure : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string delayField; - - private bool delayFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property - /// that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand"). - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Specifies the time in milliseconds to wait before performing the value from the Action attribute. - /// - public string Delay - { - get - { - return this.delayField; - } - set - { - this.delayFieldSet = true; - this.delayField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Failure", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.delayFieldSet) - { - writer.WriteAttributeString("Delay", this.delayField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("Delay" == name)) - { - this.delayField = value; - this.delayFieldSet = true; - } - } - } - - /// - /// Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ServiceConfigFailureActions : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string commandField; - - private bool commandFieldSet; - - private YesNoType onInstallField; - - private bool onInstallFieldSet; - - private YesNoType onReinstallField; - - private bool onReinstallFieldSet; - - private YesNoType onUninstallField; - - private bool onUninstallFieldSet; - - private string rebootMessageField; - - private bool rebootMessageFieldSet; - - private string resetPeriodField; - - private bool resetPeriodFieldSet; - - private string serviceNameField; - - private bool serviceNameFieldSet; - - private ISchemaElement parentElement; - - public ServiceConfigFailureActions() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Failure))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not - /// specified. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears - /// the existing command. If this attribute is not present the setting is not changed. - /// - public string Command - { - get - { - return this.commandField; - } - set - { - this.commandFieldSet = true; - this.commandField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall - /// and OnUninstall. - /// - public YesNoType OnInstall - { - get - { - return this.onInstallField; - } - set - { - this.onInstallFieldSet = true; - this.onInstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall - /// and OnUninstall. - /// - public YesNoType OnReinstall - { - get - { - return this.onReinstallField; - } - set - { - this.onReinstallFieldSet = true; - this.onReinstallField = value; - } - } - - /// - /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall - /// and OnReinstall. - /// - public YesNoType OnUninstall - { - get - { - return this.onUninstallField; - } - set - { - this.onUninstallFieldSet = true; - this.onUninstallField = value; - } - } - - /// - /// Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this - /// attribute is not present the setting is not changed. - /// - public string RebootMessage - { - get - { - return this.rebootMessageField; - } - set - { - this.rebootMessageFieldSet = true; - this.rebootMessageField = value; - } - } - - /// - /// Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset. - /// - public string ResetPeriod - { - get - { - return this.resetPeriodField; - } - set - { - this.resetPeriodFieldSet = true; - this.resetPeriodField = value; - } - } - - /// - /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under - /// a ServiceInstall element. - /// - public string ServiceName - { - get - { - return this.serviceNameField; - } - set - { - this.serviceNameFieldSet = true; - this.serviceNameField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Failure" == childName)) - { - childValue = new Failure(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ServiceConfigFailureActions", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.commandFieldSet) - { - writer.WriteAttributeString("Command", this.commandField); - } - if (this.onInstallFieldSet) - { - if ((this.onInstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnInstall", "no"); - } - if ((this.onInstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnInstall", "yes"); - } - } - if (this.onReinstallFieldSet) - { - if ((this.onReinstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnReinstall", "no"); - } - if ((this.onReinstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnReinstall", "yes"); - } - } - if (this.onUninstallFieldSet) - { - if ((this.onUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("OnUninstall", "no"); - } - if ((this.onUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("OnUninstall", "yes"); - } - } - if (this.rebootMessageFieldSet) - { - writer.WriteAttributeString("RebootMessage", this.rebootMessageField); - } - if (this.resetPeriodFieldSet) - { - writer.WriteAttributeString("ResetPeriod", this.resetPeriodField); - } - if (this.serviceNameFieldSet) - { - writer.WriteAttributeString("ServiceName", this.serviceNameField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Command" == name)) - { - this.commandField = value; - this.commandFieldSet = true; - } - if (("OnInstall" == name)) - { - this.onInstallField = Enums.ParseYesNoType(value); - this.onInstallFieldSet = true; - } - if (("OnReinstall" == name)) - { - this.onReinstallField = Enums.ParseYesNoType(value); - this.onReinstallFieldSet = true; - } - if (("OnUninstall" == name)) - { - this.onUninstallField = Enums.ParseYesNoType(value); - this.onUninstallFieldSet = true; - } - if (("RebootMessage" == name)) - { - this.rebootMessageField = value; - this.rebootMessageFieldSet = true; - } - if (("ResetPeriod" == name)) - { - this.resetPeriodField = value; - this.resetPeriodFieldSet = true; - } - if (("ServiceName" == name)) - { - this.serviceNameField = value; - this.serviceNameFieldSet = true; - } - } - } - - /// - /// Environment variables added or removed for the parent component. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Environment : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string separatorField; - - private bool separatorFieldSet; - - private ActionType actionField; - - private bool actionFieldSet; - - private PartType partField; - - private bool partFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType systemField; - - private bool systemFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for environment entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Name of the environment variable. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The value to set into the environment variable. - /// If this attribute is not set, the environment variable is removed during installation if it exists on the machine. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// Optional attribute to change the separator used between values. By default a semicolon is used. - /// - public string Separator - { - get - { - return this.separatorField; - } - set - { - this.separatorFieldSet = true; - this.separatorField = value; - } - } - - /// - /// Specfies whether the environmental variable should be created, set or removed when the parent component is installed. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - public PartType Part - { - get - { - return this.partField; - } - set - { - this.partFieldSet = true; - this.partField = value; - } - } - - /// - /// Specifies that the environment variable should not be removed on uninstall. - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// Specifies that the environment variable should be added to the system environment space. The default - /// is 'no' which indicates the environment variable is added to the user environment space. - /// - public YesNoType System - { - get - { - return this.systemField; - } - set - { - this.systemFieldSet = true; - this.systemField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - Environment.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("create" == value)) - { - parsedValue = ActionType.create; - } - else - { - if (("set" == value)) - { - parsedValue = ActionType.set; - } - else - { - if (("remove" == value)) - { - parsedValue = ActionType.remove; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a PartType from a string. - /// - public static PartType ParsePartType(string value) - { - PartType parsedValue; - Environment.TryParsePartType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a PartType from a string. - /// - public static bool TryParsePartType(string value, out PartType parsedValue) - { - parsedValue = PartType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("all" == value)) - { - parsedValue = PartType.all; - } - else - { - if (("first" == value)) - { - parsedValue = PartType.first; - } - else - { - if (("last" == value)) - { - parsedValue = PartType.last; - } - else - { - parsedValue = PartType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Environment", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.separatorFieldSet) - { - writer.WriteAttributeString("Separator", this.separatorField); - } - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.create)) - { - writer.WriteAttributeString("Action", "create"); - } - if ((this.actionField == ActionType.set)) - { - writer.WriteAttributeString("Action", "set"); - } - if ((this.actionField == ActionType.remove)) - { - writer.WriteAttributeString("Action", "remove"); - } - } - if (this.partFieldSet) - { - if ((this.partField == PartType.all)) - { - writer.WriteAttributeString("Part", "all"); - } - if ((this.partField == PartType.first)) - { - writer.WriteAttributeString("Part", "first"); - } - if ((this.partField == PartType.last)) - { - writer.WriteAttributeString("Part", "last"); - } - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.systemFieldSet) - { - if ((this.systemField == YesNoType.no)) - { - writer.WriteAttributeString("System", "no"); - } - if ((this.systemField == YesNoType.yes)) - { - writer.WriteAttributeString("System", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Separator" == name)) - { - this.separatorField = value; - this.separatorFieldSet = true; - } - if (("Action" == name)) - { - this.actionField = Environment.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Part" == name)) - { - this.partField = Environment.ParsePartType(value); - this.partFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("System" == name)) - { - this.systemField = Enums.ParseYesNoType(value); - this.systemFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists. - /// - create, - - /// - /// Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation. - /// - set, - - /// - /// Removes the environment variable during an installation. - /// The installer only removes an environment variable during an installation if the name and value - /// of the variable match the entries in the Name and Value attributes. - /// If you want to remove an environment variable, regardless of its value, do not set the Value attribute. - /// - remove, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum PartType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// This value is the entire environmental variable. This is the default. - /// - all, - - /// - /// This value is prefixed. - /// - first, - - /// - /// This value is appended. - /// - last, - } - } - - /// - /// Conditions for components, controls, features, and products. The condition is specified in the inner text of the element. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Condition : ISchemaElement, ISetAttributes - { - - private ActionType actionField; - - private bool actionFieldSet; - - private int levelField; - - private bool levelFieldSet; - - private string messageField; - - private bool messageFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Used only under Control elements and is required. Allows specific actions to be applied to a control based - /// on the result of this condition. - /// - public ActionType Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Used only under Feature elements and is required. Allows modifying the level of a Feature based on the - /// result of this condition. - /// - public int Level - { - get - { - return this.levelField; - } - set - { - this.levelFieldSet = true; - this.levelField = value; - } - } - - /// - /// Used only under Fragment or Product elements and is required. Set the value to the text to display when the - /// condition fails and the installation must be terminated. - /// - public string Message - { - get - { - return this.messageField; - } - set - { - this.messageFieldSet = true; - this.messageField = value; - } - } - - /// - /// Under a Component element, the condition becomes the condition of the component. Under a Control element, - /// the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition - /// entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ActionType from a string. - /// - public static ActionType ParseActionType(string value) - { - ActionType parsedValue; - Condition.TryParseActionType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ActionType from a string. - /// - public static bool TryParseActionType(string value, out ActionType parsedValue) - { - parsedValue = ActionType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("default" == value)) - { - parsedValue = ActionType.@default; - } - else - { - if (("enable" == value)) - { - parsedValue = ActionType.enable; - } - else - { - if (("disable" == value)) - { - parsedValue = ActionType.disable; - } - else - { - if (("hide" == value)) - { - parsedValue = ActionType.hide; - } - else - { - if (("show" == value)) - { - parsedValue = ActionType.show; - } - else - { - parsedValue = ActionType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Condition", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - if ((this.actionField == ActionType.@default)) - { - writer.WriteAttributeString("Action", "default"); - } - if ((this.actionField == ActionType.enable)) - { - writer.WriteAttributeString("Action", "enable"); - } - if ((this.actionField == ActionType.disable)) - { - writer.WriteAttributeString("Action", "disable"); - } - if ((this.actionField == ActionType.hide)) - { - writer.WriteAttributeString("Action", "hide"); - } - if ((this.actionField == ActionType.show)) - { - writer.WriteAttributeString("Action", "show"); - } - } - if (this.levelFieldSet) - { - writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); - } - if (this.messageFieldSet) - { - writer.WriteAttributeString("Message", this.messageField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = Condition.ParseActionType(value); - this.actionFieldSet = true; - } - if (("Level" == name)) - { - this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.levelFieldSet = true; - } - if (("Message" == name)) - { - this.messageField = value; - this.messageFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ActionType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Set the Control as the default. Only used under Control elements. - /// - @default, - - /// - /// Enable the Control. Only used under Control elements. - /// - enable, - - /// - /// Disable the Control. Only used under Control elements. - /// - disable, - - /// - /// Hide the Control. Only used under Control elements. - /// - hide, - - /// - /// Display the Control. Only used under Control elements. - /// - show, - } - } - - /// - /// Shared Component to be privately replicated in folder of parent Component - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IsolateComponent : ISchemaElement, ISetAttributes - { - - private string sharedField; - - private bool sharedFieldSet; - - private ISchemaElement parentElement; - - /// - /// Shared Component for this application Component. - /// - public string Shared - { - get - { - return this.sharedField; - } - set - { - this.sharedFieldSet = true; - this.sharedField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IsolateComponent", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sharedFieldSet) - { - writer.WriteAttributeString("Shared", this.sharedField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Shared" == name)) - { - this.sharedField = value; - this.sharedFieldSet = true; - } - } - } - - /// - /// Disk cost to reserve in a folder for running locally and/or from source. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ReserveCost : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private int runFromSourceField; - - private bool runFromSourceFieldSet; - - private int runLocalField; - - private bool runLocalFieldSet; - - private ISchemaElement parentElement; - - /// - /// A primary key that uniquely identifies this ReserveCost entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory. - /// If this attribute is not set, it will default to the directory of parent component. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// The number of bytes of disk space to reserve if the component is installed to run from source. - /// - public int RunFromSource - { - get - { - return this.runFromSourceField; - } - set - { - this.runFromSourceFieldSet = true; - this.runFromSourceField = value; - } - } - - /// - /// The number of bytes of disk space to reserve if the component is installed to run locally. - /// - public int RunLocal - { - get - { - return this.runLocalField; - } - set - { - this.runLocalFieldSet = true; - this.runLocalField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ReserveCost", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.runFromSourceFieldSet) - { - writer.WriteAttributeString("RunFromSource", this.runFromSourceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.runLocalFieldSet) - { - writer.WriteAttributeString("RunLocal", this.runLocalField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("RunFromSource" == name)) - { - this.runFromSourceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.runFromSourceFieldSet = true; - } - if (("RunLocal" == name)) - { - this.runLocalField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.runLocalFieldSet = true; - } - } - } - - /// - /// Component for parent Directory - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Component : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private int comPlusFlagsField; - - private bool comPlusFlagsFieldSet; - - private YesNoType disableRegistryReflectionField; - - private bool disableRegistryReflectionFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string featureField; - - private bool featureFieldSet; - - private string guidField; - - private bool guidFieldSet; - - private YesNoType keyPathField; - - private bool keyPathFieldSet; - - private LocationType locationField; - - private bool locationFieldSet; - - private YesNoType multiInstanceField; - - private bool multiInstanceFieldSet; - - private YesNoType neverOverwriteField; - - private bool neverOverwriteFieldSet; - - private YesNoType permanentField; - - private bool permanentFieldSet; - - private YesNoType sharedField; - - private bool sharedFieldSet; - - private YesNoType sharedDllRefCountField; - - private bool sharedDllRefCountFieldSet; - - private YesNoType transitiveField; - - private bool transitiveFieldSet; - - private YesNoType uninstallWhenSupersededField; - - private bool uninstallWhenSupersededFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private ISchemaElement parentElement; - - public Component() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Category))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolder))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Environment))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Extension))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(File))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IniFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponent))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDataSource))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFile))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolder))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryKey))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValue))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ReserveCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceControl))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceInstall))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Component identifier; this is the primary key for identifying components. If omitted, - /// the compiler defaults the identifier to the identifier of the resource that is the - /// explicit keypath of the component (for example, a child File element with KeyPath - /// attribute with value 'yes'. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to create a ComPlus entry. The value should be the export flags used - /// during the generation of the .msi file. For more information see the COM+ documentation - /// in the Platform SDK. - /// - public int ComPlusFlags - { - get - { - return this.comPlusFlagsField; - } - set - { - this.comPlusFlagsFieldSet = true; - this.comPlusFlagsField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to disable registry reflection on all existing and - /// new registry keys affected by this component. - /// When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key - /// being accessed by the component. - /// This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems. - /// - public YesNoType DisableRegistryReflection - { - get - { - return this.disableRegistryReflectionField; - } - set - { - this.disableRegistryReflectionFieldSet = true; - this.disableRegistryReflectionField = value; - } - } - - /// - /// Sets the Directory of the Component. If this element is nested under a Directory element, - /// this value defaults to the value of the parent Directory/@Id. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// This attribute provides a default DiskId attribute for all child File elements. Specifying - /// the DiskId on a Component element will override any DiskId attributes set by parent Directory - /// or DirectoryRef elements. See the File element's DiskId attribute for more information about - /// the purpose of the DiskId. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Identifies a feature to which this component belongs, as a shorthand for a child - /// ComponentRef element of the Feature element. The value of this attribute should - /// correspond to the Id attribute of a Feature element authored elsewhere. Note that - /// a single component can belong to multiple features but this attribute allows you - /// to specify only a single feature. - /// - public string Feature - { - get - { - return this.featureField; - } - set - { - this.featureFieldSet = true; - this.featureField = value; - } - } - - /// - /// This value should be a guid that uniquely identifies this component's contents, language, platform, and version. - /// If omitted, the default value is '*' which indicates that the linker should generate a stable guid. - /// Generatable guids are supported only for components with a single file as the component's keypath - /// or no files and a registry value as the keypath. - /// It's also possible to set the value to an empty string to specify an unmanaged component. - /// Unmanaged components are a security vulnerability because the component cannot be removed or repaired - /// by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should - /// always be specified for any component which contains resources that may need to be patched in the future. - /// - public string Guid - { - get - { - return this.guidField; - } - set - { - this.guidFieldSet = true; - this.guidField = value; - } - } - - /// - /// If this attribute's value is set to 'yes', then the Directory of this Component is used - /// as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the - /// KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the - /// Component or for a child Registry value or File, WiX will look at the child elements under the - /// Component in sequential order and try to automatically select one of them as a key path. Allowing - /// WiX to automatically select a key path can be dangerous because adding or removing child elements - /// under the Component can inadvertantly cause the key path to change, which can lead to - /// installation problems. - /// - public YesNoType KeyPath - { - get - { - return this.keyPathField; - } - set - { - this.keyPathFieldSet = true; - this.keyPathField = value; - } - } - - /// - /// Optional value that specifies the location that the component can be run from. - /// - public LocationType Location - { - get - { - return this.locationField; - } - set - { - this.locationFieldSet = true; - this.locationField = value; - } - } - - /// - /// If this attribute is set to 'yes', a new Component/@Guid will be generated for each - /// instance transform. Ensure that all of the resources contained in a multi-instance - /// Component will be installed to different paths based on the instance Property; otherwise, - /// the Component Rules will be violated. - /// - public YesNoType MultiInstance - { - get - { - return this.multiInstanceField; - } - set - { - this.multiInstanceFieldSet = true; - this.multiInstanceField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer does not install or reinstall the - /// component if a key path file or a key path registry entry for the component already - /// exists. The application does register itself as a client of the component. Use this - /// flag only for components that are being registered by the Registry table. Do not use - /// this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and - /// Verb tables. - /// - public YesNoType NeverOverwrite - { - get - { - return this.neverOverwriteField; - } - set - { - this.neverOverwriteFieldSet = true; - this.neverOverwriteField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer does not remove the component during - /// an uninstall. The installer registers an extra system client for the component in - /// the Windows Installer registry settings (which basically just means that at least one - /// product is always referencing this component). Note that this option differs from the - /// behavior of not setting a guid because although the component is permanent, it is still - /// patchable (because Windows Installer still tracks it), it's just not uninstallable. - /// - public YesNoType Permanent - { - get - { - return this.permanentField; - } - set - { - this.permanentFieldSet = true; - this.permanentField = value; - } - } - - /// - /// If this attribute's value is set to 'yes', enables advanced patching semantics for - /// Components that are shared across multiple Products. Specifically, the Windows Installer - /// will cache the shared files to improve patch uninstall. This functionality is available - /// in Windows Installer 4.5 and later. - /// - public YesNoType Shared - { - get - { - return this.sharedField; - } - set - { - this.sharedFieldSet = true; - this.sharedField = value; - } - } - - /// - /// If this attribute's value is set to 'yes', the installer increments the reference count - /// in the shared DLL registry of the component's key file. If this bit is not set, the - /// installer increments the reference count only if the reference count already exists. - /// - public YesNoType SharedDllRefCount - { - get - { - return this.sharedDllRefCountField; - } - set - { - this.sharedDllRefCountFieldSet = true; - this.sharedDllRefCountField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer reevaluates the value of the statement - /// in the Condition upon a reinstall. If the value was previously False and has changed to - /// True, the installer installs the component. If the value was previously True and has - /// changed to False, the installer removes the component even if the component has other - /// products as clients. - /// - public YesNoType Transitive - { - get - { - return this.transitiveField; - } - set - { - this.transitiveFieldSet = true; - this.transitiveField = value; - } - } - - /// - /// If this attribute is set to 'yes', the installer will uninstall the Component's files - /// and registry keys when it is superseded by a patch. This functionality is available in - /// Windows Installer 4.5 and later. - /// - public YesNoType UninstallWhenSuperseded - { - get - { - return this.uninstallWhenSupersededField; - } - set - { - this.uninstallWhenSupersededFieldSet = true; - this.uninstallWhenSupersededField = value; - } - } - - /// - /// Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates - /// the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit - /// component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute. - /// The default value is based on the platform set by the -arch switch to candle.exe - /// or the InstallerPlatform property in a .wixproj MSBuild project: - /// For x86 and ARM, the default value is 'no'. - /// For x64 and IA64, the default value is 'yes'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("AppId" == childName)) - { - childValue = new AppId(); - } - if (("Category" == childName)) - { - childValue = new Category(); - } - if (("Class" == childName)) - { - childValue = new Class(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("CopyFile" == childName)) - { - childValue = new CopyFile(); - } - if (("CreateFolder" == childName)) - { - childValue = new CreateFolder(); - } - if (("Environment" == childName)) - { - childValue = new Environment(); - } - if (("Extension" == childName)) - { - childValue = new Extension(); - } - if (("File" == childName)) - { - childValue = new File(); - } - if (("IniFile" == childName)) - { - childValue = new IniFile(); - } - if (("Interface" == childName)) - { - childValue = new Interface(); - } - if (("IsolateComponent" == childName)) - { - childValue = new IsolateComponent(); - } - if (("ODBCDataSource" == childName)) - { - childValue = new ODBCDataSource(); - } - if (("ODBCDriver" == childName)) - { - childValue = new ODBCDriver(); - } - if (("ODBCTranslator" == childName)) - { - childValue = new ODBCTranslator(); - } - if (("ProgId" == childName)) - { - childValue = new ProgId(); - } - if (("Registry" == childName)) - { - childValue = new Registry(); - } - if (("RegistryKey" == childName)) - { - childValue = new RegistryKey(); - } - if (("RegistryValue" == childName)) - { - childValue = new RegistryValue(); - } - if (("RemoveFile" == childName)) - { - childValue = new RemoveFile(); - } - if (("RemoveFolder" == childName)) - { - childValue = new RemoveFolder(); - } - if (("RemoveRegistryKey" == childName)) - { - childValue = new RemoveRegistryKey(); - } - if (("RemoveRegistryValue" == childName)) - { - childValue = new RemoveRegistryValue(); - } - if (("ReserveCost" == childName)) - { - childValue = new ReserveCost(); - } - if (("ServiceControl" == childName)) - { - childValue = new ServiceControl(); - } - if (("ServiceConfig" == childName)) - { - childValue = new ServiceConfig(); - } - if (("ServiceConfigFailureActions" == childName)) - { - childValue = new ServiceConfigFailureActions(); - } - if (("ServiceInstall" == childName)) - { - childValue = new ServiceInstall(); - } - if (("Shortcut" == childName)) - { - childValue = new Shortcut(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if (("TypeLib" == childName)) - { - childValue = new TypeLib(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a LocationType from a string. - /// - public static LocationType ParseLocationType(string value) - { - LocationType parsedValue; - Component.TryParseLocationType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a LocationType from a string. - /// - public static bool TryParseLocationType(string value, out LocationType parsedValue) - { - parsedValue = LocationType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("local" == value)) - { - parsedValue = LocationType.local; - } - else - { - if (("source" == value)) - { - parsedValue = LocationType.source; - } - else - { - if (("either" == value)) - { - parsedValue = LocationType.either; - } - else - { - parsedValue = LocationType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Component", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.comPlusFlagsFieldSet) - { - writer.WriteAttributeString("ComPlusFlags", this.comPlusFlagsField.ToString(CultureInfo.InvariantCulture)); - } - if (this.disableRegistryReflectionFieldSet) - { - if ((this.disableRegistryReflectionField == YesNoType.no)) - { - writer.WriteAttributeString("DisableRegistryReflection", "no"); - } - if ((this.disableRegistryReflectionField == YesNoType.yes)) - { - writer.WriteAttributeString("DisableRegistryReflection", "yes"); - } - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.featureFieldSet) - { - writer.WriteAttributeString("Feature", this.featureField); - } - if (this.guidFieldSet) - { - writer.WriteAttributeString("Guid", this.guidField); - } - if (this.keyPathFieldSet) - { - if ((this.keyPathField == YesNoType.no)) - { - writer.WriteAttributeString("KeyPath", "no"); - } - if ((this.keyPathField == YesNoType.yes)) - { - writer.WriteAttributeString("KeyPath", "yes"); - } - } - if (this.locationFieldSet) - { - if ((this.locationField == LocationType.local)) - { - writer.WriteAttributeString("Location", "local"); - } - if ((this.locationField == LocationType.source)) - { - writer.WriteAttributeString("Location", "source"); - } - if ((this.locationField == LocationType.either)) - { - writer.WriteAttributeString("Location", "either"); - } - } - if (this.multiInstanceFieldSet) - { - if ((this.multiInstanceField == YesNoType.no)) - { - writer.WriteAttributeString("MultiInstance", "no"); - } - if ((this.multiInstanceField == YesNoType.yes)) - { - writer.WriteAttributeString("MultiInstance", "yes"); - } - } - if (this.neverOverwriteFieldSet) - { - if ((this.neverOverwriteField == YesNoType.no)) - { - writer.WriteAttributeString("NeverOverwrite", "no"); - } - if ((this.neverOverwriteField == YesNoType.yes)) - { - writer.WriteAttributeString("NeverOverwrite", "yes"); - } - } - if (this.permanentFieldSet) - { - if ((this.permanentField == YesNoType.no)) - { - writer.WriteAttributeString("Permanent", "no"); - } - if ((this.permanentField == YesNoType.yes)) - { - writer.WriteAttributeString("Permanent", "yes"); - } - } - if (this.sharedFieldSet) - { - if ((this.sharedField == YesNoType.no)) - { - writer.WriteAttributeString("Shared", "no"); - } - if ((this.sharedField == YesNoType.yes)) - { - writer.WriteAttributeString("Shared", "yes"); - } - } - if (this.sharedDllRefCountFieldSet) - { - if ((this.sharedDllRefCountField == YesNoType.no)) - { - writer.WriteAttributeString("SharedDllRefCount", "no"); - } - if ((this.sharedDllRefCountField == YesNoType.yes)) - { - writer.WriteAttributeString("SharedDllRefCount", "yes"); - } - } - if (this.transitiveFieldSet) - { - if ((this.transitiveField == YesNoType.no)) - { - writer.WriteAttributeString("Transitive", "no"); - } - if ((this.transitiveField == YesNoType.yes)) - { - writer.WriteAttributeString("Transitive", "yes"); - } - } - if (this.uninstallWhenSupersededFieldSet) - { - if ((this.uninstallWhenSupersededField == YesNoType.no)) - { - writer.WriteAttributeString("UninstallWhenSuperseded", "no"); - } - if ((this.uninstallWhenSupersededField == YesNoType.yes)) - { - writer.WriteAttributeString("UninstallWhenSuperseded", "yes"); - } - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ComPlusFlags" == name)) - { - this.comPlusFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.comPlusFlagsFieldSet = true; - } - if (("DisableRegistryReflection" == name)) - { - this.disableRegistryReflectionField = Enums.ParseYesNoType(value); - this.disableRegistryReflectionFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("Feature" == name)) - { - this.featureField = value; - this.featureFieldSet = true; - } - if (("Guid" == name)) - { - this.guidField = value; - this.guidFieldSet = true; - } - if (("KeyPath" == name)) - { - this.keyPathField = Enums.ParseYesNoType(value); - this.keyPathFieldSet = true; - } - if (("Location" == name)) - { - this.locationField = Component.ParseLocationType(value); - this.locationFieldSet = true; - } - if (("MultiInstance" == name)) - { - this.multiInstanceField = Enums.ParseYesNoType(value); - this.multiInstanceFieldSet = true; - } - if (("NeverOverwrite" == name)) - { - this.neverOverwriteField = Enums.ParseYesNoType(value); - this.neverOverwriteFieldSet = true; - } - if (("Permanent" == name)) - { - this.permanentField = Enums.ParseYesNoType(value); - this.permanentFieldSet = true; - } - if (("Shared" == name)) - { - this.sharedField = Enums.ParseYesNoType(value); - this.sharedFieldSet = true; - } - if (("SharedDllRefCount" == name)) - { - this.sharedDllRefCountField = Enums.ParseYesNoType(value); - this.sharedDllRefCountFieldSet = true; - } - if (("Transitive" == name)) - { - this.transitiveField = Enums.ParseYesNoType(value); - this.transitiveFieldSet = true; - } - if (("UninstallWhenSuperseded" == name)) - { - this.uninstallWhenSupersededField = Enums.ParseYesNoType(value); - this.uninstallWhenSupersededFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum LocationType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set). - /// - local, - - /// - /// Enforces that the component can only be run from the source (it cannot be run from the user's computer). - /// - source, - - /// - /// Allows the component to run from source or locally. - /// - either, - } - } - - /// - /// Groups together multiple components to be used in other locations. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private ISchemaElement parentElement; - - public ComponentGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the ComponentGroup. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Sets the default directory identifier for child Component elements. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// Used to set the default file system source for child Component elements. For more information, see - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - } - } - - /// - /// Create a reference to a ComponentGroup in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the ComponentGroup to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to make the parent feature of this component - /// the primary feature for this component. Components may belong to multiple features. - /// By designating a feature as the primary feature of a component, you ensure that - /// whenever a component is selected for install-on-demand (IOD), the primary feature - /// will be the one to install it. This attribute should only be set if a component - /// actually nests under multiple features. If a component nests under only one feature, - /// that feature is the primary feature for the component. You cannot set more than one - /// feature as the primary feature of a given component. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class All : ISetAttributes, ISchemaElement - { - - private ISchemaElement parentElement; - - private string contentField; - - private bool contentFieldSet; - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("All", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - } - - /// - /// Used only for PatchFamilies to include only a binary table entry in a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BinaryRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Binary element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BinaryRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Used only for PatchFamilies to include only a icon table entry in a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IconRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Icon element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IconRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to a Feature element in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComponentRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Component element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to make the parent feature of this component - /// the primary feature for this component. Components may belong to multiple features. - /// By designating a feature as the primary feature of a component, you ensure that - /// whenever a component is selected for install-on-demand (IOD), the primary feature - /// will be the one to install it. This attribute should only be set if a component - /// actually nests under multiple features. If a component nests under only one feature, - /// that feature is the primary feature for the component. You cannot set more than one - /// feature as the primary feature of a given component. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComponentRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Merge directive to bring in a merge module that will be redirected to the parent directory. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Merge : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private YesNoType fileCompressionField; - - private bool fileCompressionFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - public Merge() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ConfigurationData))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The value of this attribute should correspond to the Id attribute of a - /// Media element authored elsewhere. By creating this connection between the merge module and Media - /// element, you set the packaging options to the values specified in the Media - /// element (values such as compression level, cab embedding, etc...). - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Specifies if the files in the merge module should be compressed. - /// - public YesNoType FileCompression - { - get - { - return this.fileCompressionField; - } - set - { - this.fileCompressionFieldSet = true; - this.fileCompressionField = value; - } - } - - /// - /// Specifies the decimal LCID or localization token for the language to merge the Module in as. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// Path to the source location of the merge module. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ConfigurationData" == childName)) - { - childValue = new ConfigurationData(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Merge", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.fileCompressionFieldSet) - { - if ((this.fileCompressionField == YesNoType.no)) - { - writer.WriteAttributeString("FileCompression", "no"); - } - if ((this.fileCompressionField == YesNoType.yes)) - { - writer.WriteAttributeString("FileCompression", "yes"); - } - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("FileCompression" == name)) - { - this.fileCompressionField = Enums.ParseYesNoType(value); - this.fileCompressionFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - /// - /// Merge reference to connect a Merge Module to parent Feature - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MergeRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The unique identifier for the Merge element to be referenced. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MergeRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Data to use as input to a configurable merge module. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ConfigurationData : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// Name of the item in the ModuleConfiguration table. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Value to be passed to configurable merge module. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ConfigurationData", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Directory layout for the product. Also specifies the mappings between source and target directories. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Directory : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string componentGuidGenerationSeedField; - - private bool componentGuidGenerationSeedFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string fileSourceField; - - private bool fileSourceFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string shortNameField; - - private bool shortNameFieldSet; - - private string shortSourceNameField; - - private bool shortSourceNameFieldSet; - - private string sourceNameField; - - private bool sourceNameFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - public Directory() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// This value is the unique identifier of the directory entry. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*") - /// is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder). - /// It is recommended that this attribute be avoided and that developers install their Components under standard - /// directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is - /// important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until - /// (and must be changed when) the path to that directory, including itself and all parent directories, changes. - /// - public string ComponentGuidGenerationSeed - { - get - { - return this.componentGuidGenerationSeedField; - } - set - { - this.componentGuidGenerationSeedFieldSet = true; - this.componentGuidGenerationSeedField = value; - } - } - - /// - /// Sets the default disk identifier for the files contained in this directory. - /// This attribute's value may be overridden by a child Component, Directory, - /// Merge or File element. See the File or Merge elements' DiskId attribute for - /// more information. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Used to set the file system source for this directory's child elements. For more information, see - /// - public string FileSource - { - get - { - return this.fileSourceField; - } - set - { - this.fileSourceFieldSet = true; - this.fileSourceField = value; - } - } - - /// - /// The name of the directory. - /// - /// Do not specify this attribute if this directory represents - /// the same directory as the parent (see the Windows Installer SDK's - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The short name of the directory in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short directory names - /// or the user wants to manually specify the short directory name. - /// - public string ShortName - { - get - { - return this.shortNameField; - } - set - { - this.shortNameFieldSet = true; - this.shortNameField = value; - } - } - - /// - /// The short name of the directory on the source media in 8.3 format. - /// This attribute should only be set if there is a conflict between generated short directory names - /// or the user wants to manually specify the short source directory name. - /// - public string ShortSourceName - { - get - { - return this.shortSourceNameField; - } - set - { - this.shortSourceNameFieldSet = true; - this.shortSourceNameField = value; - } - } - - /// - /// The name of the directory on the source media. - /// If this attribute is not specified, Windows Installer will default to the Name attribute. - /// - /// In prior versions of the WiX toolset, this attribute specified the short source directory name. - /// This attribute's value may now be either a short or long directory name. - /// If a short directory name is specified, the ShortSourceName attribute may not be specified. - /// If a long directory name is specified, the LongSource attribute may not be specified. - /// Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to - /// allow WiX to attempt to generate a unique short directory name. - /// However, if this name collides with another directory or you wish to manually specify - /// the short directory name, then the ShortSourceName attribute may be specified. - /// - public string SourceName - { - get - { - return this.sourceNameField; - } - set - { - this.sourceNameFieldSet = true; - this.sourceNameField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("Merge" == childName)) - { - childValue = new Merge(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Directory", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.componentGuidGenerationSeedFieldSet) - { - writer.WriteAttributeString("ComponentGuidGenerationSeed", this.componentGuidGenerationSeedField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.fileSourceFieldSet) - { - writer.WriteAttributeString("FileSource", this.fileSourceField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.shortNameFieldSet) - { - writer.WriteAttributeString("ShortName", this.shortNameField); - } - if (this.shortSourceNameFieldSet) - { - writer.WriteAttributeString("ShortSourceName", this.shortSourceNameField); - } - if (this.sourceNameFieldSet) - { - writer.WriteAttributeString("SourceName", this.sourceNameField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ComponentGuidGenerationSeed" == name)) - { - this.componentGuidGenerationSeedField = value; - this.componentGuidGenerationSeedFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("FileSource" == name)) - { - this.fileSourceField = value; - this.fileSourceFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("ShortName" == name)) - { - this.shortNameField = value; - this.shortNameFieldSet = true; - } - if (("ShortSourceName" == name)) - { - this.shortSourceNameField = value; - this.shortSourceNameFieldSet = true; - } - if (("SourceName" == name)) - { - this.sourceNameField = value; - this.sourceNameFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - /// - /// Create a reference to a Directory element in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DirectoryRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string diskIdField; - - private bool diskIdFieldSet; - - private string fileSourceField; - - private bool fileSourceFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - public DirectoryRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the Directory element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Sets the default disk identifier for the files contained in this directory. - /// This attribute's value may be overridden by a child Component, Directory, - /// Merge or File element. See the File or Merge elements' DiskId attribute for - /// more information. - /// - public string DiskId - { - get - { - return this.diskIdField; - } - set - { - this.diskIdFieldSet = true; - this.diskIdField = value; - } - } - - /// - /// Used to set the file system source for this DirectoryRef's child elements. For more information, see - /// - public string FileSource - { - get - { - return this.fileSourceField; - } - set - { - this.fileSourceFieldSet = true; - this.fileSourceField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("Directory" == childName)) - { - childValue = new Directory(); - } - if (("Merge" == childName)) - { - childValue = new Merge(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DirectoryRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.diskIdFieldSet) - { - writer.WriteAttributeString("DiskId", this.diskIdField); - } - if (this.fileSourceFieldSet) - { - writer.WriteAttributeString("FileSource", this.fileSourceField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("DiskId" == name)) - { - this.diskIdField = value; - this.diskIdFieldSet = true; - } - if (("FileSource" == name)) - { - this.fileSourceField = value; - this.fileSourceFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UpgradeVersion : ISchemaElement, ISetAttributes - { - - private string minimumField; - - private bool minimumFieldSet; - - private string maximumField; - - private bool maximumFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private string removeFeaturesField; - - private bool removeFeaturesFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private YesNoType migrateFeaturesField; - - private bool migrateFeaturesFieldSet; - - private YesNoType onlyDetectField; - - private bool onlyDetectFieldSet; - - private YesNoType ignoreRemoveFailureField; - - private bool ignoreRemoveFailureFieldSet; - - private YesNoType includeMinimumField; - - private bool includeMinimumFieldSet; - - private YesNoType includeMaximumField; - - private bool includeMaximumFieldSet; - - private YesNoType excludeLanguagesField; - - private bool excludeLanguagesFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. - /// - public string Minimum - { - get - { - return this.minimumField; - } - set - { - this.minimumFieldSet = true; - this.minimumField = value; - } - } - - /// - /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. - /// - public string Maximum - { - get - { - return this.maximumField; - } - set - { - this.maximumFieldSet = true; - this.maximumField = value; - } - } - - /// - /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty. - /// - public string RemoveFeatures - { - get - { - return this.removeFeaturesField; - } - set - { - this.removeFeaturesFieldSet = true; - this.removeFeaturesField = value; - } - } - - /// - /// When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action. - /// - public YesNoType MigrateFeatures - { - get - { - return this.migrateFeaturesField; - } - set - { - this.migrateFeaturesFieldSet = true; - this.migrateFeaturesField = value; - } - } - - /// - /// Set to "yes" to detect products and applications but do not uninstall. - /// - public YesNoType OnlyDetect - { - get - { - return this.onlyDetectField; - } - set - { - this.onlyDetectFieldSet = true; - this.onlyDetectField = value; - } - } - - /// - /// Set to "yes" to continue installation upon failure to remove a product or application. - /// - public YesNoType IgnoreRemoveFailure - { - get - { - return this.ignoreRemoveFailureField; - } - set - { - this.ignoreRemoveFailureFieldSet = true; - this.ignoreRemoveFailureField = value; - } - } - - /// - /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. - /// - public YesNoType IncludeMinimum - { - get - { - return this.includeMinimumField; - } - set - { - this.includeMinimumFieldSet = true; - this.includeMinimumField = value; - } - } - - /// - /// Set to "yes" to make the range of versions detected include the value specified in Maximum. - /// - public YesNoType IncludeMaximum - { - get - { - return this.includeMaximumField; - } - set - { - this.includeMaximumFieldSet = true; - this.includeMaximumField = value; - } - } - - /// - /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. - /// - public YesNoType ExcludeLanguages - { - get - { - return this.excludeLanguagesField; - } - set - { - this.excludeLanguagesFieldSet = true; - this.excludeLanguagesField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UpgradeVersion", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.minimumFieldSet) - { - writer.WriteAttributeString("Minimum", this.minimumField); - } - if (this.maximumFieldSet) - { - writer.WriteAttributeString("Maximum", this.maximumField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.removeFeaturesFieldSet) - { - writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.migrateFeaturesFieldSet) - { - if ((this.migrateFeaturesField == YesNoType.no)) - { - writer.WriteAttributeString("MigrateFeatures", "no"); - } - if ((this.migrateFeaturesField == YesNoType.yes)) - { - writer.WriteAttributeString("MigrateFeatures", "yes"); - } - } - if (this.onlyDetectFieldSet) - { - if ((this.onlyDetectField == YesNoType.no)) - { - writer.WriteAttributeString("OnlyDetect", "no"); - } - if ((this.onlyDetectField == YesNoType.yes)) - { - writer.WriteAttributeString("OnlyDetect", "yes"); - } - } - if (this.ignoreRemoveFailureFieldSet) - { - if ((this.ignoreRemoveFailureField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "no"); - } - if ((this.ignoreRemoveFailureField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); - } - } - if (this.includeMinimumFieldSet) - { - if ((this.includeMinimumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMinimum", "no"); - } - if ((this.includeMinimumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMinimum", "yes"); - } - } - if (this.includeMaximumFieldSet) - { - if ((this.includeMaximumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMaximum", "no"); - } - if ((this.includeMaximumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMaximum", "yes"); - } - } - if (this.excludeLanguagesFieldSet) - { - if ((this.excludeLanguagesField == YesNoType.no)) - { - writer.WriteAttributeString("ExcludeLanguages", "no"); - } - if ((this.excludeLanguagesField == YesNoType.yes)) - { - writer.WriteAttributeString("ExcludeLanguages", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Minimum" == name)) - { - this.minimumField = value; - this.minimumFieldSet = true; - } - if (("Maximum" == name)) - { - this.maximumField = value; - this.maximumFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("RemoveFeatures" == name)) - { - this.removeFeaturesField = value; - this.removeFeaturesFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("MigrateFeatures" == name)) - { - this.migrateFeaturesField = Enums.ParseYesNoType(value); - this.migrateFeaturesFieldSet = true; - } - if (("OnlyDetect" == name)) - { - this.onlyDetectField = Enums.ParseYesNoType(value); - this.onlyDetectFieldSet = true; - } - if (("IgnoreRemoveFailure" == name)) - { - this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); - this.ignoreRemoveFailureFieldSet = true; - } - if (("IncludeMinimum" == name)) - { - this.includeMinimumField = Enums.ParseYesNoType(value); - this.includeMinimumFieldSet = true; - } - if (("IncludeMaximum" == name)) - { - this.includeMaximumField = Enums.ParseYesNoType(value); - this.includeMaximumFieldSet = true; - } - if (("ExcludeLanguages" == name)) - { - this.excludeLanguagesField = Enums.ParseYesNoType(value); - this.excludeLanguagesFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Upgrade info for a particular UpgradeCode - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Upgrade : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public Upgrade() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeVersion))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("UpgradeVersion" == childName)) - { - childValue = new UpgradeVersion(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Upgrade", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more - /// detailed information on the myriad installation options for a feature. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Feature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private AbsentType absentField; - - private bool absentFieldSet; - - private AllowAdvertiseType allowAdvertiseField; - - private bool allowAdvertiseFieldSet; - - private string configurableDirectoryField; - - private bool configurableDirectoryFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private string displayField; - - private bool displayFieldSet; - - private InstallDefaultType installDefaultField; - - private bool installDefaultFieldSet; - - private int levelField; - - private bool levelFieldSet; - - private string titleField; - - private bool titleFieldSet; - - private TypicalDefaultType typicalDefaultField; - - private bool typicalDefaultFieldSet; - - private ISchemaElement parentElement; - - public Feature() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier of the feature. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute determines if a user will have the option to set a feature to absent in the user interface. - /// - public AbsentType Absent - { - get - { - return this.absentField; - } - set - { - this.absentFieldSet = true; - this.absentField = value; - } - } - - /// - /// This attribute determines the possible advertise states for this feature. - /// - public AllowAdvertiseType AllowAdvertise - { - get - { - return this.allowAdvertiseField; - } - set - { - this.allowAdvertiseFieldSet = true; - this.allowAdvertiseField = value; - } - } - - /// - /// Specify the Id of a Directory that can be configured by the user at installation time. This identifier - /// must be a public property and therefore completely uppercase. - /// - public string ConfigurableDirectory - { - get - { - return this.configurableDirectoryField; - } - set - { - this.configurableDirectoryFieldSet = true; - this.configurableDirectoryField = value; - } - } - - /// - /// Longer string of text describing the feature. This localizable string is displayed by the - /// Text Control of the Selection Dialog. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// Determines the initial display of this feature in the feature tree. - /// This attribute's value should be one of the following: - /// - public string Display - { - get - { - return this.displayField; - } - set - { - this.displayFieldSet = true; - this.displayField = value; - } - } - - /// - /// This attribute determines the default install/run location of a feature. This attribute cannot be specified - /// if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature - /// to follow the parent installation state and simultaneously favor a particular installation state just for this feature. - /// - public InstallDefaultType InstallDefault - { - get - { - return this.installDefaultField; - } - set - { - this.installDefaultFieldSet = true; - this.installDefaultField = value; - } - } - - /// - /// Sets the install level of this feature. A value of 0 will disable the feature. Processing the - /// Condition Table can modify the level value (this is set via the Condition child element). The - /// default value is "1". - /// - public int Level - { - get - { - return this.levelField; - } - set - { - this.levelFieldSet = true; - this.levelField = value; - } - } - - /// - /// Short string of text identifying the feature. This string is listed as an item by the - /// SelectionTree control of the Selection Dialog. - /// - public string Title - { - get - { - return this.titleField; - } - set - { - this.titleFieldSet = true; - this.titleField = value; - } - } - - /// - /// This attribute determines the default advertise state of the feature. - /// - public TypicalDefaultType TypicalDefault - { - get - { - return this.typicalDefaultField; - } - set - { - this.typicalDefaultFieldSet = true; - this.typicalDefaultField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("MergeRef" == childName)) - { - childValue = new MergeRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a AbsentType from a string. - /// - public static AbsentType ParseAbsentType(string value) - { - AbsentType parsedValue; - Feature.TryParseAbsentType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a AbsentType from a string. - /// - public static bool TryParseAbsentType(string value, out AbsentType parsedValue) - { - parsedValue = AbsentType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("allow" == value)) - { - parsedValue = AbsentType.allow; - } - else - { - if (("disallow" == value)) - { - parsedValue = AbsentType.disallow; - } - else - { - parsedValue = AbsentType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a AllowAdvertiseType from a string. - /// - public static AllowAdvertiseType ParseAllowAdvertiseType(string value) - { - AllowAdvertiseType parsedValue; - Feature.TryParseAllowAdvertiseType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a AllowAdvertiseType from a string. - /// - public static bool TryParseAllowAdvertiseType(string value, out AllowAdvertiseType parsedValue) - { - parsedValue = AllowAdvertiseType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("no" == value)) - { - parsedValue = AllowAdvertiseType.no; - } - else - { - if (("system" == value)) - { - parsedValue = AllowAdvertiseType.system; - } - else - { - if (("yes" == value)) - { - parsedValue = AllowAdvertiseType.yes; - } - else - { - parsedValue = AllowAdvertiseType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a InstallDefaultType from a string. - /// - public static InstallDefaultType ParseInstallDefaultType(string value) - { - InstallDefaultType parsedValue; - Feature.TryParseInstallDefaultType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a InstallDefaultType from a string. - /// - public static bool TryParseInstallDefaultType(string value, out InstallDefaultType parsedValue) - { - parsedValue = InstallDefaultType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("followParent" == value)) - { - parsedValue = InstallDefaultType.followParent; - } - else - { - if (("local" == value)) - { - parsedValue = InstallDefaultType.local; - } - else - { - if (("source" == value)) - { - parsedValue = InstallDefaultType.source; - } - else - { - parsedValue = InstallDefaultType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a TypicalDefaultType from a string. - /// - public static TypicalDefaultType ParseTypicalDefaultType(string value) - { - TypicalDefaultType parsedValue; - Feature.TryParseTypicalDefaultType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypicalDefaultType from a string. - /// - public static bool TryParseTypicalDefaultType(string value, out TypicalDefaultType parsedValue) - { - parsedValue = TypicalDefaultType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("advertise" == value)) - { - parsedValue = TypicalDefaultType.advertise; - } - else - { - if (("install" == value)) - { - parsedValue = TypicalDefaultType.install; - } - else - { - parsedValue = TypicalDefaultType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Feature", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.absentFieldSet) - { - if ((this.absentField == AbsentType.allow)) - { - writer.WriteAttributeString("Absent", "allow"); - } - if ((this.absentField == AbsentType.disallow)) - { - writer.WriteAttributeString("Absent", "disallow"); - } - } - if (this.allowAdvertiseFieldSet) - { - if ((this.allowAdvertiseField == AllowAdvertiseType.no)) - { - writer.WriteAttributeString("AllowAdvertise", "no"); - } - if ((this.allowAdvertiseField == AllowAdvertiseType.system)) - { - writer.WriteAttributeString("AllowAdvertise", "system"); - } - if ((this.allowAdvertiseField == AllowAdvertiseType.yes)) - { - writer.WriteAttributeString("AllowAdvertise", "yes"); - } - } - if (this.configurableDirectoryFieldSet) - { - writer.WriteAttributeString("ConfigurableDirectory", this.configurableDirectoryField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.displayFieldSet) - { - writer.WriteAttributeString("Display", this.displayField); - } - if (this.installDefaultFieldSet) - { - if ((this.installDefaultField == InstallDefaultType.followParent)) - { - writer.WriteAttributeString("InstallDefault", "followParent"); - } - if ((this.installDefaultField == InstallDefaultType.local)) - { - writer.WriteAttributeString("InstallDefault", "local"); - } - if ((this.installDefaultField == InstallDefaultType.source)) - { - writer.WriteAttributeString("InstallDefault", "source"); - } - } - if (this.levelFieldSet) - { - writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); - } - if (this.titleFieldSet) - { - writer.WriteAttributeString("Title", this.titleField); - } - if (this.typicalDefaultFieldSet) - { - if ((this.typicalDefaultField == TypicalDefaultType.advertise)) - { - writer.WriteAttributeString("TypicalDefault", "advertise"); - } - if ((this.typicalDefaultField == TypicalDefaultType.install)) - { - writer.WriteAttributeString("TypicalDefault", "install"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Absent" == name)) - { - this.absentField = Feature.ParseAbsentType(value); - this.absentFieldSet = true; - } - if (("AllowAdvertise" == name)) - { - this.allowAdvertiseField = Feature.ParseAllowAdvertiseType(value); - this.allowAdvertiseFieldSet = true; - } - if (("ConfigurableDirectory" == name)) - { - this.configurableDirectoryField = value; - this.configurableDirectoryFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Display" == name)) - { - this.displayField = value; - this.displayFieldSet = true; - } - if (("InstallDefault" == name)) - { - this.installDefaultField = Feature.ParseInstallDefaultType(value); - this.installDefaultFieldSet = true; - } - if (("Level" == name)) - { - this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.levelFieldSet = true; - } - if (("Title" == name)) - { - this.titleField = value; - this.titleFieldSet = true; - } - if (("TypicalDefault" == name)) - { - this.typicalDefaultField = Feature.ParseTypicalDefaultType(value); - this.typicalDefaultFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum AbsentType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Allows the user interface to display an option to change the feature state to Absent. - /// - allow, - - /// - /// Prevents the user interface from displaying an option to change the feature state - /// to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature - /// to the installation state, whether or not the feature is visible in the UI. - /// - disallow, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum AllowAdvertiseType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute. - /// - no, - - /// - /// Prevents advertising for this feature if the operating system shell does not support Windows Installer - /// descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute. - /// - system, - - /// - /// Allows the feature to be advertised. - /// - yes, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum InstallDefaultType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Forces the feature to follow the same installation state as its parent feature. - /// - followParent, - - /// - /// Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute. - /// - local, - - /// - /// Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute. - /// - source, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypicalDefaultType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute. - /// This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to - /// disallow the advertised state for this feature while at the same time favoring it. - /// - advertise, - - /// - /// Sets the feature to the default non-advertised installation option. - /// - install, - } - } - - /// - /// Groups together multiple components, features, and merges to be used in other locations. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FeatureGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public FeatureGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the FeatureGroup. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("MergeRef" == childName)) - { - childValue = new MergeRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FeatureGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Create a reference to a FeatureGroup in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FeatureGroupRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType ignoreParentField; - - private bool ignoreParentFieldSet; - - private YesNoType primaryField; - - private bool primaryFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the FeatureGroup to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Normally feature group references that end up nested under a parent element create a - /// connection to that parent. This behavior is undesirable when trying to simply reference - /// to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group - /// reference not create a connection to its parent. The default is 'no'. - /// - public YesNoType IgnoreParent - { - get - { - return this.ignoreParentField; - } - set - { - this.ignoreParentFieldSet = true; - this.ignoreParentField = value; - } - } - - /// - /// Set this attribute to 'yes' in order to make the parent feature of this group - /// the primary feature for any components and merges contained in the group. - /// Features may belong to multiple features. By designating a feature as the - /// primary feature of a component or merge, you ensure that whenever a component is - /// selected for install-on-demand (IOD), the primary feature will be the one to install - /// it. This attribute should only be set if a component actually nests under multiple - /// features. If a component nests under only one feature, that feature is the primary - /// feature for the component. You cannot set more than one feature as the primary - /// feature of a given component. - /// - public YesNoType Primary - { - get - { - return this.primaryField; - } - set - { - this.primaryFieldSet = true; - this.primaryField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FeatureGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.ignoreParentFieldSet) - { - if ((this.ignoreParentField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreParent", "no"); - } - if ((this.ignoreParentField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreParent", "yes"); - } - } - if (this.primaryFieldSet) - { - if ((this.primaryField == YesNoType.no)) - { - writer.WriteAttributeString("Primary", "no"); - } - if ((this.primaryField == YesNoType.yes)) - { - writer.WriteAttributeString("Primary", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("IgnoreParent" == name)) - { - this.ignoreParentField = Enums.ParseYesNoType(value); - this.ignoreParentFieldSet = true; - } - if (("Primary" == name)) - { - this.primaryField = Enums.ParseYesNoType(value); - this.primaryFieldSet = true; - } - } - } - - /// - /// Create a reference to a Feature element in another Fragment. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FeatureRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType ignoreParentField; - - private bool ignoreParentFieldSet; - - private ISchemaElement parentElement; - - public FeatureRef() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The identifier of the Feature element to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Normally feature references that are nested under a parent element create a connection to that - /// parent. This behavior is undesirable when trying to simply reference a Feature in a different - /// Fragment. Specify 'yes' to have this feature reference not create a connection to its parent. - /// The default is 'no'. - /// - public YesNoType IgnoreParent - { - get - { - return this.ignoreParentField; - } - set - { - this.ignoreParentFieldSet = true; - this.ignoreParentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Component" == childName)) - { - childValue = new Component(); - } - if (("ComponentGroupRef" == childName)) - { - childValue = new ComponentGroupRef(); - } - if (("ComponentRef" == childName)) - { - childValue = new ComponentRef(); - } - if (("Feature" == childName)) - { - childValue = new Feature(); - } - if (("FeatureRef" == childName)) - { - childValue = new FeatureRef(); - } - if (("FeatureGroup" == childName)) - { - childValue = new FeatureGroup(); - } - if (("FeatureGroupRef" == childName)) - { - childValue = new FeatureGroupRef(); - } - if (("MergeRef" == childName)) - { - childValue = new MergeRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FeatureRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.ignoreParentFieldSet) - { - if ((this.ignoreParentField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreParent", "no"); - } - if ((this.ignoreParentField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreParent", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("IgnoreParent" == name)) - { - this.ignoreParentField = Enums.ParseYesNoType(value); - this.ignoreParentFieldSet = true; - } - } - } - - /// - /// Media element describes a disk that makes up the source media for the installation. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Media : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string cabinetField; - - private bool cabinetFieldSet; - - private CompressionLevelType compressionLevelField; - - private bool compressionLevelFieldSet; - - private string diskPromptField; - - private bool diskPromptFieldSet; - - private YesNoType embedCabField; - - private bool embedCabFieldSet; - - private string layoutField; - - private bool layoutFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private string volumeLabelField; - - private bool volumeLabelFieldSet; - - private string sourceField; - - private bool sourceFieldSet; - - private ISchemaElement parentElement; - - public Media() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalSignature))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchBaseline))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Disk identifier for Media table. This number must be equal to or greater than 1. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set. - /// - public string Cabinet - { - get - { - return this.cabinetField; - } - set - { - this.cabinetFieldSet = true; - this.cabinetField = value; - } - } - - /// - /// Indicates the compression level for the Media's cabinet. This attribute can - /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. - /// - public CompressionLevelType CompressionLevel - { - get - { - return this.compressionLevelField; - } - set - { - this.compressionLevelFieldSet = true; - this.compressionLevelField = value; - } - } - - /// - /// The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - /// - public string DiskPrompt - { - get - { - return this.diskPromptField; - } - set - { - this.diskPromptFieldSet = true; - this.diskPromptField = value; - } - } - - /// - /// Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute. - /// - public YesNoType EmbedCab - { - get - { - return this.embedCabField; - } - set - { - this.embedCabFieldSet = true; - this.embedCabField = value; - } - } - - /// - /// This attribute specifies the root directory for the uncompressed files that - /// are a part of this Media element. By default, the src will be the output - /// directory for the final image. The default value ensures the binder generates - /// an installable image. If a relative path is specified in the src attribute, - /// the value will be appended to the image's output directory. If an absolute - /// path is provided, that path will be used without modification. The latter two - /// options are provided to ease the layout of an image onto multiple medias (CDs/DVDs). - /// - public string Layout - { - get - { - return this.layoutField; - } - set - { - this.layoutFieldSet = true; - this.layoutField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// The label attributed to the volume. This is the volume label returned - /// by the GetVolumeInformation function. If the SourceDir property refers - /// to a removable (floppy or CD-ROM) volume, then this volume label is - /// used to verify that the proper disk is in the drive before attempting - /// to install files. The entry in this column must match the volume label - /// of the physical media. - /// - public string VolumeLabel - { - get - { - return this.volumeLabelField; - } - set - { - this.volumeLabelFieldSet = true; - this.volumeLabelField = value; - } - } - - /// - /// Optional property that identifies the source of the embedded cabinet. - /// If a cabinet is specified for a patch, this property should be defined - /// and unique to each patch so that the embedded cabinet containing patched - /// and new files can be located in the patch package. If the cabinet is not - /// embedded - this is not typical - the cabinet can be found in the directory - /// referenced in this column. If empty, the external cabinet must be located - /// in the SourceDir directory. - /// - public string Source - { - get - { - return this.sourceField; - } - set - { - this.sourceFieldSet = true; - this.sourceField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("DigitalSignature" == childName)) - { - childValue = new DigitalSignature(); - } - if (("PatchBaseline" == childName)) - { - childValue = new PatchBaseline(); - } - if (("SymbolPath" == childName)) - { - childValue = new SymbolPath(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Media", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.cabinetFieldSet) - { - writer.WriteAttributeString("Cabinet", this.cabinetField); - } - if (this.compressionLevelFieldSet) - { - if ((this.compressionLevelField == CompressionLevelType.high)) - { - writer.WriteAttributeString("CompressionLevel", "high"); - } - if ((this.compressionLevelField == CompressionLevelType.low)) - { - writer.WriteAttributeString("CompressionLevel", "low"); - } - if ((this.compressionLevelField == CompressionLevelType.medium)) - { - writer.WriteAttributeString("CompressionLevel", "medium"); - } - if ((this.compressionLevelField == CompressionLevelType.mszip)) - { - writer.WriteAttributeString("CompressionLevel", "mszip"); - } - if ((this.compressionLevelField == CompressionLevelType.none)) - { - writer.WriteAttributeString("CompressionLevel", "none"); - } - } - if (this.diskPromptFieldSet) - { - writer.WriteAttributeString("DiskPrompt", this.diskPromptField); - } - if (this.embedCabFieldSet) - { - if ((this.embedCabField == YesNoType.no)) - { - writer.WriteAttributeString("EmbedCab", "no"); - } - if ((this.embedCabField == YesNoType.yes)) - { - writer.WriteAttributeString("EmbedCab", "yes"); - } - } - if (this.layoutFieldSet) - { - writer.WriteAttributeString("Layout", this.layoutField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.volumeLabelFieldSet) - { - writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); - } - if (this.sourceFieldSet) - { - writer.WriteAttributeString("Source", this.sourceField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Cabinet" == name)) - { - this.cabinetField = value; - this.cabinetFieldSet = true; - } - if (("CompressionLevel" == name)) - { - this.compressionLevelField = Enums.ParseCompressionLevelType(value); - this.compressionLevelFieldSet = true; - } - if (("DiskPrompt" == name)) - { - this.diskPromptField = value; - this.diskPromptFieldSet = true; - } - if (("EmbedCab" == name)) - { - this.embedCabField = Enums.ParseYesNoType(value); - this.embedCabFieldSet = true; - } - if (("Layout" == name)) - { - this.layoutField = value; - this.layoutFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("VolumeLabel" == name)) - { - this.volumeLabelField = value; - this.volumeLabelFieldSet = true; - } - if (("Source" == name)) - { - this.sourceField = value; - this.sourceFieldSet = true; - } - } - } - - /// - /// MediaTeplate element describes information to automatically assign files to cabinets. - /// A maximumum number of cabinets created is 999. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MediaTemplate : ISchemaElement, ISetAttributes - { - - private string cabinetTemplateField; - - private bool cabinetTemplateFieldSet; - - private CompressionLevelType compressionLevelField; - - private bool compressionLevelFieldSet; - - private string diskPromptField; - - private bool diskPromptFieldSet; - - private YesNoType embedCabField; - - private bool embedCabFieldSet; - - private string volumeLabelField; - - private bool volumeLabelFieldSet; - - private int maximumUncompressedMediaSizeField; - - private bool maximumUncompressedMediaSizeFieldSet; - - private int maximumCabinetSizeForLargeFileSplittingField; - - private bool maximumCabinetSizeForLargeFileSplittingFieldSet; - - private ISchemaElement parentElement; - - /// - /// Templated name of the cabinet if some or all of the files stored on the media are in - /// a cabinet file. This name must begin with either a letter or an underscore, contain - /// maximum of five characters and {0} in the cabinet name part and must end three character extension. - /// The default is cab{0}.cab. - /// - public string CabinetTemplate - { - get - { - return this.cabinetTemplateField; - } - set - { - this.cabinetTemplateFieldSet = true; - this.cabinetTemplateField = value; - } - } - - /// - /// Indicates the compression level for the Media's cabinet. This attribute can - /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. - /// - public CompressionLevelType CompressionLevel - { - get - { - return this.compressionLevelField; - } - set - { - this.compressionLevelFieldSet = true; - this.compressionLevelField = value; - } - } - - /// - /// The disk name, which is usually the visible text printed on the disk. This localizable text is used - /// to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the - /// DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. - /// - public string DiskPrompt - { - get - { - return this.diskPromptField; - } - set - { - this.diskPromptFieldSet = true; - this.diskPromptField = value; - } - } - - /// - /// Instructs the binder to embed the cabinets in the product if 'yes'. - /// - public YesNoType EmbedCab - { - get - { - return this.embedCabField; - } - set - { - this.embedCabFieldSet = true; - this.embedCabField = value; - } - } - - /// - /// The label attributed to the volume. This is the volume label returned - /// by the GetVolumeInformation function. If the SourceDir property refers - /// to a removable (floppy or CD-ROM) volume, then this volume label is - /// used to verify that the proper disk is in the drive before attempting - /// to install files. The entry in this column must match the volume label - /// of the physical media. - /// - public string VolumeLabel - { - get - { - return this.volumeLabelField; - } - set - { - this.volumeLabelFieldSet = true; - this.volumeLabelField = value; - } - } - - /// - /// Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable - /// can be used to override this value. Default value is 200 MB. - /// - public int MaximumUncompressedMediaSize - { - get - { - return this.maximumUncompressedMediaSizeField; - } - set - { - this.maximumUncompressedMediaSizeFieldSet = true; - this.maximumUncompressedMediaSizeField = value; - } - } - - /// - /// Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging - /// files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size - /// exceed this value, then setting this attribute will cause the file to be split into multiple - /// cabinets of this maximum size. For simply controlling cabinet size without file splitting use - /// MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature - /// for this Fragment / Product. Setting WIX_MCSLFS environment variable can be used to override this - /// value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default - /// value of this attribute is 2048 MB (2 GB). - /// - public int MaximumCabinetSizeForLargeFileSplitting - { - get - { - return this.maximumCabinetSizeForLargeFileSplittingField; - } - set - { - this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; - this.maximumCabinetSizeForLargeFileSplittingField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a CompressionLevelType from a string. - /// - public static CompressionLevelType ParseCompressionLevelType(string value) - { - CompressionLevelType parsedValue; - MediaTemplate.TryParseCompressionLevelType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a CompressionLevelType from a string. - /// - public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) - { - parsedValue = CompressionLevelType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("high" == value)) - { - parsedValue = CompressionLevelType.high; - } - else - { - if (("low" == value)) - { - parsedValue = CompressionLevelType.low; - } - else - { - if (("medium" == value)) - { - parsedValue = CompressionLevelType.medium; - } - else - { - if (("mszip" == value)) - { - parsedValue = CompressionLevelType.mszip; - } - else - { - if (("none" == value)) - { - parsedValue = CompressionLevelType.none; - } - else - { - parsedValue = CompressionLevelType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MediaTemplate", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.cabinetTemplateFieldSet) - { - writer.WriteAttributeString("CabinetTemplate", this.cabinetTemplateField); - } - if (this.compressionLevelFieldSet) - { - if ((this.compressionLevelField == CompressionLevelType.high)) - { - writer.WriteAttributeString("CompressionLevel", "high"); - } - if ((this.compressionLevelField == CompressionLevelType.low)) - { - writer.WriteAttributeString("CompressionLevel", "low"); - } - if ((this.compressionLevelField == CompressionLevelType.medium)) - { - writer.WriteAttributeString("CompressionLevel", "medium"); - } - if ((this.compressionLevelField == CompressionLevelType.mszip)) - { - writer.WriteAttributeString("CompressionLevel", "mszip"); - } - if ((this.compressionLevelField == CompressionLevelType.none)) - { - writer.WriteAttributeString("CompressionLevel", "none"); - } - } - if (this.diskPromptFieldSet) - { - writer.WriteAttributeString("DiskPrompt", this.diskPromptField); - } - if (this.embedCabFieldSet) - { - if ((this.embedCabField == YesNoType.no)) - { - writer.WriteAttributeString("EmbedCab", "no"); - } - if ((this.embedCabField == YesNoType.yes)) - { - writer.WriteAttributeString("EmbedCab", "yes"); - } - } - if (this.volumeLabelFieldSet) - { - writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); - } - if (this.maximumUncompressedMediaSizeFieldSet) - { - writer.WriteAttributeString("MaximumUncompressedMediaSize", this.maximumUncompressedMediaSizeField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maximumCabinetSizeForLargeFileSplittingFieldSet) - { - writer.WriteAttributeString("MaximumCabinetSizeForLargeFileSplitting", this.maximumCabinetSizeForLargeFileSplittingField.ToString(CultureInfo.InvariantCulture)); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("CabinetTemplate" == name)) - { - this.cabinetTemplateField = value; - this.cabinetTemplateFieldSet = true; - } - if (("CompressionLevel" == name)) - { - this.compressionLevelField = MediaTemplate.ParseCompressionLevelType(value); - this.compressionLevelFieldSet = true; - } - if (("DiskPrompt" == name)) - { - this.diskPromptField = value; - this.diskPromptFieldSet = true; - } - if (("EmbedCab" == name)) - { - this.embedCabField = Enums.ParseYesNoType(value); - this.embedCabFieldSet = true; - } - if (("VolumeLabel" == name)) - { - this.volumeLabelField = value; - this.volumeLabelFieldSet = true; - } - if (("MaximumUncompressedMediaSize" == name)) - { - this.maximumUncompressedMediaSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maximumUncompressedMediaSizeFieldSet = true; - } - if (("MaximumCabinetSizeForLargeFileSplitting" == name)) - { - this.maximumCabinetSizeForLargeFileSplittingField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum CompressionLevelType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - high, - - low, - - medium, - - mszip, - - none, - } - } - - /// - /// This element has been deprecated. - /// Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IgnoreModularization : ISchemaElement, ISetAttributes - { - - private string nameField; - - private bool nameFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the item to ignore modularization for. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// The type of the item to ignore modularization for. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - IgnoreModularization.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Action" == value)) - { - parsedValue = TypeType.Action; - } - else - { - if (("Property" == value)) - { - parsedValue = TypeType.Property; - } - else - { - if (("Directory" == value)) - { - parsedValue = TypeType.Directory; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IgnoreModularization", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.Action)) - { - writer.WriteAttributeString("Type", "Action"); - } - if ((this.typeField == TypeType.Property)) - { - writer.WriteAttributeString("Type", "Property"); - } - if ((this.typeField == TypeType.Directory)) - { - writer.WriteAttributeString("Type", "Directory"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = IgnoreModularization.ParseTypeType(value); - this.typeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Action, - - Property, - - Directory, - } - } - - /// - /// Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element - /// correspond to different custom action types. For more information about custom actions see the - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomAction : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string binaryKeyField; - - private bool binaryKeyFieldSet; - - private string fileKeyField; - - private bool fileKeyFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string directoryField; - - private bool directoryFieldSet; - - private string dllEntryField; - - private bool dllEntryFieldSet; - - private string exeCommandField; - - private bool exeCommandFieldSet; - - private string jScriptCallField; - - private bool jScriptCallFieldSet; - - private string vBScriptCallField; - - private bool vBScriptCallFieldSet; - - private ScriptType scriptField; - - private bool scriptFieldSet; - - private YesNoType suppressModularizationField; - - private bool suppressModularizationFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string errorField; - - private bool errorFieldSet; - - private ReturnType returnField; - - private bool returnFieldSet; - - private ExecuteType executeField; - - private bool executeFieldSet; - - private YesNoType impersonateField; - - private bool impersonateFieldSet; - - private YesNoType patchUninstallField; - - private bool patchUninstallFieldSet; - - private YesNoType win64Field; - - private bool win64FieldSet; - - private YesNoType terminalServerAwareField; - - private bool terminalServerAwareFieldSet; - - private YesNoType hideTargetField; - - private bool hideTargetFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the custom action. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains - /// the custom action for use during install. The custom action will not be installed into a target directory. This attribute is - /// typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand - /// attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes - /// to specify a type 5 or 6 custom action. - /// - public string BinaryKey - { - get - { - return this.binaryKeyField; - } - set - { - this.binaryKeyFieldSet = true; - this.binaryKeyField = value; - } - } - - /// - /// This attribute specifies a reference to a File element with matching Id attribute that - /// will execute the custom action code in the file after the file is installed. This - /// attribute is typically used with the ExeCommand attribute to specify a type 18 custom action - /// that runs an installed executable, with the DllEntry attribute to specify an installed custom - /// action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall - /// attributes to specify a type 21 or 22 custom action. - /// - public string FileKey - { - get - { - return this.fileKeyField; - } - set - { - this.fileKeyFieldSet = true; - this.fileKeyField = value; - } - } - - /// - /// This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property - /// to be used or updated on execution of this custom action. This attribute is - /// typically used with the Value attribute to create a type 51 custom action that parses - /// the text in Value and places it into the specified Property. This attribute is also used with - /// the ExeCommand attribute to create a type 50 custom action that uses the value of the - /// given property to specify the path to the executable. Type 51 custom actions are often useful to - /// pass values to a deferred custom action. - /// See - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. - /// This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34 - /// custom action, or with the Value attribute to specify a formatted string to place in the specified Directory - /// table entry in a type 35 custom action. - /// - public string Directory - { - get - { - return this.directoryField; - } - set - { - this.directoryFieldSet = true; - this.directoryField = value; - } - } - - /// - /// This attribute specifies the name of a function in a custom action to execute. - /// This attribute is used with the BinaryKey attribute to create a type 1 custom - /// action, or with the FileKey attribute to create a type 17 custom action. - /// - public string DllEntry - { - get - { - return this.dllEntryField; - } - set - { - this.dllEntryFieldSet = true; - this.dllEntryField = value; - } - } - - /// - /// This attribute specifies the command line parameters to supply to an externally - /// run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action, - /// the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action, - /// or the Directory attribute for a type 34 custom action that specify the executable to run. - /// - public string ExeCommand - { - get - { - return this.exeCommandField; - } - set - { - this.exeCommandFieldSet = true; - this.exeCommandField = value; - } - } - - /// - /// This attribute specifies the name of the JScript function to execute in a script. The script must be - /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this - /// attribute must be specified in conjunction with the BinaryKey attribute. - /// - public string JScriptCall - { - get - { - return this.jScriptCallField; - } - set - { - this.jScriptCallFieldSet = true; - this.jScriptCallField = value; - } - } - - /// - /// This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be - /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this - /// attribute must be specified in conjunction with the BinaryKey attribute. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public string VBScriptCall - { - get - { - return this.vBScriptCallField; - } - set - { - this.vBScriptCallFieldSet = true; - this.vBScriptCallField = value; - } - } - - /// - /// Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package. - /// - public ScriptType Script - { - get - { - return this.scriptField; - } - set - { - this.scriptFieldSet = true; - this.scriptField = value; - } - } - - /// - /// Use to suppress modularization of this custom action name in merge modules. - /// This should only be necessary for table-driven custom actions because the - /// table name which they interact with cannot be modularized, so there can only - /// be one instance of the table. - /// - public YesNoType SuppressModularization - { - get - { - return this.suppressModularizationField; - } - set - { - this.suppressModularizationFieldSet = true; - this.suppressModularizationField = value; - } - } - - /// - /// This attribute specifies a string value to use in the custom action. This attribute - /// must be used with the Property attribute to set the property as part of a - /// type 51 custom action or with the Directory attribute to set a directory path in that - /// table in a type 35 custom action. The value can be a literal value or derived from a - /// Property element using the - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// This attribute specifies an index in the MSI Error table to use as an error message for a - /// type 19 custom action that displays the error message and aborts a product's installation. - /// - public string Error - { - get - { - return this.errorField; - } - set - { - this.errorFieldSet = true; - this.errorField = value; - } - } - - /// - /// Set this attribute to set the return behavior of the custom action. - /// - public ReturnType Return - { - get - { - return this.returnField; - } - set - { - this.returnFieldSet = true; - this.returnField = value; - } - } - - /// - /// This attribute indicates the scheduling of the custom action. - /// - public ExecuteType Execute - { - get - { - return this.executeField; - } - set - { - this.executeFieldSet = true; - this.executeField = value; - } - } - - /// - /// This attribute specifies whether the Windows Installer, which executes as LocalSystem, - /// should impersonate the user context of the installing user when executing this custom action. - /// Typically the value should be 'yes', except when the custom action needs elevated privileges - /// to apply changes to the machine. - /// - public YesNoType Impersonate - { - get - { - return this.impersonateField; - } - set - { - this.impersonateFieldSet = true; - this.impersonateField = value; - } - } - - /// - /// This attribute specifies that the Windows Installer, execute the custom action only when - /// a patch is being uninstalled. These custom actions should also be conditioned using the - /// MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5) - /// behavior. - /// - public YesNoType PatchUninstall - { - get - { - return this.patchUninstallField; - } - set - { - this.patchUninstallFieldSet = true; - this.patchUninstallField = value; - } - } - - /// - /// Specifies that a script custom action targets a 64-bit platform. Valid only when used with - /// the Script, VBScriptCall, and JScriptCall attributes. - /// The default value is based on the platform set by the -arch switch to candle.exe - /// or the InstallerPlatform property in a .wixproj MSBuild project: - /// For x86 and ARM, the default value is 'no'. - /// For x64 and IA64, the default value is 'yes'. - /// - public YesNoType Win64 - { - get - { - return this.win64Field; - } - set - { - this.win64FieldSet = true; - this.win64Field = value; - } - } - - /// - /// This attribute specifies controls whether the custom action will impersonate the - /// installing user during per-machine installs on Terminal Server machines. - /// Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no', - /// will run with no user impersonation on Terminal Server machines during - /// per-machine installations. This attribute is only applicable when installing on the - /// Windows Server 2003 family. - /// - public YesNoType TerminalServerAware - { - get - { - return this.terminalServerAwareField; - } - set - { - this.terminalServerAwareFieldSet = true; - this.terminalServerAwareField = value; - } - } - - /// - /// Ensures the installer does not log the CustomActionData for the deferred custom action. - /// - public YesNoType HideTarget - { - get - { - return this.hideTargetField; - } - set - { - this.hideTargetFieldSet = true; - this.hideTargetField = value; - } - } - - /// - /// The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ScriptType from a string. - /// - public static ScriptType ParseScriptType(string value) - { - ScriptType parsedValue; - CustomAction.TryParseScriptType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ScriptType from a string. - /// - public static bool TryParseScriptType(string value, out ScriptType parsedValue) - { - parsedValue = ScriptType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("jscript" == value)) - { - parsedValue = ScriptType.jscript; - } - else - { - if (("vbscript" == value)) - { - parsedValue = ScriptType.vbscript; - } - else - { - parsedValue = ScriptType.IllegalValue; - return false; - } - } - return true; - } - - /// - /// Parses a ReturnType from a string. - /// - public static ReturnType ParseReturnType(string value) - { - ReturnType parsedValue; - CustomAction.TryParseReturnType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ReturnType from a string. - /// - public static bool TryParseReturnType(string value, out ReturnType parsedValue) - { - parsedValue = ReturnType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("asyncNoWait" == value)) - { - parsedValue = ReturnType.asyncNoWait; - } - else - { - if (("asyncWait" == value)) - { - parsedValue = ReturnType.asyncWait; - } - else - { - if (("check" == value)) - { - parsedValue = ReturnType.check; - } - else - { - if (("ignore" == value)) - { - parsedValue = ReturnType.ignore; - } - else - { - parsedValue = ReturnType.IllegalValue; - return false; - } - } - } - } - return true; - } - - /// - /// Parses a ExecuteType from a string. - /// - public static ExecuteType ParseExecuteType(string value) - { - ExecuteType parsedValue; - CustomAction.TryParseExecuteType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ExecuteType from a string. - /// - public static bool TryParseExecuteType(string value, out ExecuteType parsedValue) - { - parsedValue = ExecuteType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("commit" == value)) - { - parsedValue = ExecuteType.commit; - } - else - { - if (("deferred" == value)) - { - parsedValue = ExecuteType.deferred; - } - else - { - if (("firstSequence" == value)) - { - parsedValue = ExecuteType.firstSequence; - } - else - { - if (("immediate" == value)) - { - parsedValue = ExecuteType.immediate; - } - else - { - if (("oncePerProcess" == value)) - { - parsedValue = ExecuteType.oncePerProcess; - } - else - { - if (("rollback" == value)) - { - parsedValue = ExecuteType.rollback; - } - else - { - if (("secondSequence" == value)) - { - parsedValue = ExecuteType.secondSequence; - } - else - { - parsedValue = ExecuteType.IllegalValue; - return false; - } - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomAction", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.binaryKeyFieldSet) - { - writer.WriteAttributeString("BinaryKey", this.binaryKeyField); - } - if (this.fileKeyFieldSet) - { - writer.WriteAttributeString("FileKey", this.fileKeyField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.directoryFieldSet) - { - writer.WriteAttributeString("Directory", this.directoryField); - } - if (this.dllEntryFieldSet) - { - writer.WriteAttributeString("DllEntry", this.dllEntryField); - } - if (this.exeCommandFieldSet) - { - writer.WriteAttributeString("ExeCommand", this.exeCommandField); - } - if (this.jScriptCallFieldSet) - { - writer.WriteAttributeString("JScriptCall", this.jScriptCallField); - } - if (this.vBScriptCallFieldSet) - { - writer.WriteAttributeString("VBScriptCall", this.vBScriptCallField); - } - if (this.scriptFieldSet) - { - if ((this.scriptField == ScriptType.jscript)) - { - writer.WriteAttributeString("Script", "jscript"); - } - if ((this.scriptField == ScriptType.vbscript)) - { - writer.WriteAttributeString("Script", "vbscript"); - } - } - if (this.suppressModularizationFieldSet) - { - if ((this.suppressModularizationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressModularization", "no"); - } - if ((this.suppressModularizationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressModularization", "yes"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.errorFieldSet) - { - writer.WriteAttributeString("Error", this.errorField); - } - if (this.returnFieldSet) - { - if ((this.returnField == ReturnType.asyncNoWait)) - { - writer.WriteAttributeString("Return", "asyncNoWait"); - } - if ((this.returnField == ReturnType.asyncWait)) - { - writer.WriteAttributeString("Return", "asyncWait"); - } - if ((this.returnField == ReturnType.check)) - { - writer.WriteAttributeString("Return", "check"); - } - if ((this.returnField == ReturnType.ignore)) - { - writer.WriteAttributeString("Return", "ignore"); - } - } - if (this.executeFieldSet) - { - if ((this.executeField == ExecuteType.commit)) - { - writer.WriteAttributeString("Execute", "commit"); - } - if ((this.executeField == ExecuteType.deferred)) - { - writer.WriteAttributeString("Execute", "deferred"); - } - if ((this.executeField == ExecuteType.firstSequence)) - { - writer.WriteAttributeString("Execute", "firstSequence"); - } - if ((this.executeField == ExecuteType.immediate)) - { - writer.WriteAttributeString("Execute", "immediate"); - } - if ((this.executeField == ExecuteType.oncePerProcess)) - { - writer.WriteAttributeString("Execute", "oncePerProcess"); - } - if ((this.executeField == ExecuteType.rollback)) - { - writer.WriteAttributeString("Execute", "rollback"); - } - if ((this.executeField == ExecuteType.secondSequence)) - { - writer.WriteAttributeString("Execute", "secondSequence"); - } - } - if (this.impersonateFieldSet) - { - if ((this.impersonateField == YesNoType.no)) - { - writer.WriteAttributeString("Impersonate", "no"); - } - if ((this.impersonateField == YesNoType.yes)) - { - writer.WriteAttributeString("Impersonate", "yes"); - } - } - if (this.patchUninstallFieldSet) - { - if ((this.patchUninstallField == YesNoType.no)) - { - writer.WriteAttributeString("PatchUninstall", "no"); - } - if ((this.patchUninstallField == YesNoType.yes)) - { - writer.WriteAttributeString("PatchUninstall", "yes"); - } - } - if (this.win64FieldSet) - { - if ((this.win64Field == YesNoType.no)) - { - writer.WriteAttributeString("Win64", "no"); - } - if ((this.win64Field == YesNoType.yes)) - { - writer.WriteAttributeString("Win64", "yes"); - } - } - if (this.terminalServerAwareFieldSet) - { - if ((this.terminalServerAwareField == YesNoType.no)) - { - writer.WriteAttributeString("TerminalServerAware", "no"); - } - if ((this.terminalServerAwareField == YesNoType.yes)) - { - writer.WriteAttributeString("TerminalServerAware", "yes"); - } - } - if (this.hideTargetFieldSet) - { - if ((this.hideTargetField == YesNoType.no)) - { - writer.WriteAttributeString("HideTarget", "no"); - } - if ((this.hideTargetField == YesNoType.yes)) - { - writer.WriteAttributeString("HideTarget", "yes"); - } - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("BinaryKey" == name)) - { - this.binaryKeyField = value; - this.binaryKeyFieldSet = true; - } - if (("FileKey" == name)) - { - this.fileKeyField = value; - this.fileKeyFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Directory" == name)) - { - this.directoryField = value; - this.directoryFieldSet = true; - } - if (("DllEntry" == name)) - { - this.dllEntryField = value; - this.dllEntryFieldSet = true; - } - if (("ExeCommand" == name)) - { - this.exeCommandField = value; - this.exeCommandFieldSet = true; - } - if (("JScriptCall" == name)) - { - this.jScriptCallField = value; - this.jScriptCallFieldSet = true; - } - if (("VBScriptCall" == name)) - { - this.vBScriptCallField = value; - this.vBScriptCallFieldSet = true; - } - if (("Script" == name)) - { - this.scriptField = CustomAction.ParseScriptType(value); - this.scriptFieldSet = true; - } - if (("SuppressModularization" == name)) - { - this.suppressModularizationField = Enums.ParseYesNoType(value); - this.suppressModularizationFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Error" == name)) - { - this.errorField = value; - this.errorFieldSet = true; - } - if (("Return" == name)) - { - this.returnField = CustomAction.ParseReturnType(value); - this.returnFieldSet = true; - } - if (("Execute" == name)) - { - this.executeField = CustomAction.ParseExecuteType(value); - this.executeFieldSet = true; - } - if (("Impersonate" == name)) - { - this.impersonateField = Enums.ParseYesNoType(value); - this.impersonateFieldSet = true; - } - if (("PatchUninstall" == name)) - { - this.patchUninstallField = Enums.ParseYesNoType(value); - this.patchUninstallFieldSet = true; - } - if (("Win64" == name)) - { - this.win64Field = Enums.ParseYesNoType(value); - this.win64FieldSet = true; - } - if (("TerminalServerAware" == name)) - { - this.terminalServerAwareField = Enums.ParseYesNoType(value); - this.terminalServerAwareFieldSet = true; - } - if (("HideTarget" == name)) - { - this.hideTargetField = Enums.ParseYesNoType(value); - this.hideTargetFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ScriptType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - jscript, - - vbscript, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ReturnType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Indicates that the custom action will run asyncronously and execution may continue after the installer terminates. - /// - asyncNoWait, - - /// - /// Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end. - /// - asyncWait, - - /// - /// Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default. - /// - check, - - /// - /// Indicates that the custom action will run synchronously and the return code will not be checked. - /// - ignore, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ExecuteType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Indicates that the custom action will run after successful completion of the installation script (at the end of the installation). - /// - commit, - - /// - /// Indicates that the custom action runs in-script (possibly with elevated privileges). - /// - deferred, - - /// - /// Indicates that the custom action will only run in the first sequence that runs it. - /// - firstSequence, - - /// - /// Indicates that the custom action will run during normal processing time with user privileges. This is the default. - /// - immediate, - - /// - /// Indicates that the custom action will only run in the first sequence that runs it in the same process. - /// - oncePerProcess, - - /// - /// Indicates that a custom action will run in the rollback sequence when a failure - /// occurs during installation, usually to undo changes made by a deferred custom action. - /// - rollback, - - /// - /// Indicates that a custom action should be run a second time if it was previously run in an earlier sequence. - /// - secondSequence, - } - } - - /// - /// This will cause the entire contents of the Fragment containing the referenced CustomAction to be - /// included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomActionRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the CustomAction to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomActionRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in - /// the InstallUISequence and InstallExecuteSequence. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SetDirectory : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string idField; - - private bool idFieldSet; - - private SequenceType sequenceField; - - private bool sequenceFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case - /// where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions). - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to - /// the Value attribute. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Controls which sequences the Directory assignment is sequenced in. - /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. - /// For 'ui', the assignment is scheduled in the InstallUISequence. - /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. - /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. - /// The default is 'both'. - /// - public SequenceType Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a - /// Property element using the - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SetDirectory", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sequenceFieldSet) - { - if ((this.sequenceField == SequenceType.both)) - { - writer.WriteAttributeString("Sequence", "both"); - } - if ((this.sequenceField == SequenceType.first)) - { - writer.WriteAttributeString("Sequence", "first"); - } - if ((this.sequenceField == SequenceType.execute)) - { - writer.WriteAttributeString("Sequence", "execute"); - } - if ((this.sequenceField == SequenceType.ui)) - { - writer.WriteAttributeString("Sequence", "ui"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Enums.ParseSequenceType(value); - this.sequenceFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in - /// the InstallUISequence and InstallExecuteSequence. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SetProperty : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private string idField; - - private bool idFieldSet; - - private SequenceType sequenceField; - - private bool sequenceFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case - /// where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions). - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property. - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property. - /// - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - /// - /// This attribute specifies the Property to set to the Value. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Controls which sequences the Property assignment is sequenced in. - /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. - /// For 'ui', the assignment is scheduled in the InstallUISequence. - /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. - /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. - /// The default is 'both'. - /// - public SequenceType Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a - /// Property element using the - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SetProperty", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sequenceFieldSet) - { - if ((this.sequenceField == SequenceType.both)) - { - writer.WriteAttributeString("Sequence", "both"); - } - if ((this.sequenceField == SequenceType.first)) - { - writer.WriteAttributeString("Sequence", "first"); - } - if ((this.sequenceField == SequenceType.execute)) - { - writer.WriteAttributeString("Sequence", "execute"); - } - if ((this.sequenceField == SequenceType.ui)) - { - writer.WriteAttributeString("Sequence", "ui"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Enums.ParseSequenceType(value); - this.sequenceFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// This will cause the entire contents of the Fragment containing the referenced PatchFamily to be - /// used in the process of creating a patch. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFamilyRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the PatchFamily to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Specifies the ProductCode of the product that this family applies to. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFamilyRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - } - } - - /// - /// Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ValidateProductID : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ValidateProductID", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CostInitialize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CostInitialize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FileCost : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FileCost", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class IsolateComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("IsolateComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CostFinalize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CostFinalize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SetODBCFolders : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SetODBCFolders", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MigrateFeatureStates : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MigrateFeatureStates", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Initiates the execution sequence. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ExecuteAction : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ExecuteAction", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallValidate : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallValidate", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallInitialize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallInitialize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AllocateRegistrySpace : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AllocateRegistrySpace", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProcessComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProcessComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnpublishComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnpublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiUnpublishAssemblies : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiUnpublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnpublishFeatures : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnpublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Stops system services. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class StopServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("StopServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DeleteServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DeleteServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterComPlus : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SelfUnregModules : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SelfUnregModules", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterTypeLibraries : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveODBC : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveODBC", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterFonts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveRegistryValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterClassInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterExtensionInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterProgIdInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UnregisterMIMEInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UnregisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveIniValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveIniValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveShortcuts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveEnvironmentStrings : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveDuplicateFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveDuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveFolders : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveFolders", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CreateFolders : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CreateFolders", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MoveFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallAdminPackage : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallAdminPackage", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DuplicateFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PatchFiles : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PatchFiles", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BindImage : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BindImage", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CreateShortcuts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CreateShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterClassInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterExtensionInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterProgIdInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterMIMEInfo : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Sets up an application's registry information. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WriteRegistryValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WriteRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WriteIniValues : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WriteIniValues", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WriteEnvironmentStrings : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WriteEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers installed fonts with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterFonts : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallODBC : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallODBC", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers type libraries with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterTypeLibraries : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class SelfRegModules : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("SelfRegModules", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers COM+ applications. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterComPlus : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers a service for the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Starts system services. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class StartServices : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("StartServices", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterUser : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterUser", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Registers the product information with the installer. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RegisterProduct : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RegisterProduct", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PublishComponents : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MsiPublishAssemblies : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MsiPublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PublishFeatures : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class PublishProduct : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("PublishProduct", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallFinalize : ActionSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallFinalize", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AppSearch : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AppSearch", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CCPSearch : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RMCCPSearch : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RMCCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class LaunchConditions : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("LaunchConditions", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class FindRelatedProducts : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("FindRelatedProducts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallExecute : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallExecute", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallExecuteAgain : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallExecuteAgain", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DisableRollback : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DisableRollback", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RemoveExistingProducts : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RemoveExistingProducts", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ScheduleReboot : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ScheduleReboot", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ForceReboot : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ForceReboot", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ResolveSource : ActionModuleSequenceType, ISchemaElement - { - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public override void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ResolveSource", "http://wixtoolset.org/schemas/v4/wxs"); - base.OutputXml(writer); - writer.WriteEndElement(); - } - } - - /// - /// Use to sequence a custom action. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Custom : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private ExitType onExitField; - - private bool onExitFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The action to which the Custom element applies. - /// - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// Mutually exclusive with Before, After, and Sequence attributes - /// - public ExitType OnExit - { - get - { - return this.onExitField; - } - set - { - this.onExitFieldSet = true; - this.onExitField = value; - } - } - - /// - /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes - /// - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - /// - /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes - /// - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - /// - /// The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes - /// - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - /// - /// Text node specifies the condition of the action. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Custom", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.onExitFieldSet) - { - if ((this.onExitField == ExitType.success)) - { - writer.WriteAttributeString("OnExit", "success"); - } - if ((this.onExitField == ExitType.cancel)) - { - writer.WriteAttributeString("OnExit", "cancel"); - } - if ((this.onExitField == ExitType.error)) - { - writer.WriteAttributeString("OnExit", "error"); - } - if ((this.onExitField == ExitType.suspend)) - { - writer.WriteAttributeString("OnExit", "suspend"); - } - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("OnExit" == name)) - { - this.onExitField = Enums.ParseExitType(value); - this.onExitFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Show : ISchemaElement, ISetAttributes - { - - private string dialogField; - - private bool dialogFieldSet; - - private ExitType onExitField; - - private bool onExitFieldSet; - - private string beforeField; - - private bool beforeFieldSet; - - private string afterField; - - private bool afterFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private int sequenceField; - - private bool sequenceFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - public string Dialog - { - get - { - return this.dialogField; - } - set - { - this.dialogFieldSet = true; - this.dialogField = value; - } - } - - /// - /// mutually exclusive with Before, After, and Sequence attributes - /// - public ExitType OnExit - { - get - { - return this.onExitField; - } - set - { - this.onExitFieldSet = true; - this.onExitField = value; - } - } - - public string Before - { - get - { - return this.beforeField; - } - set - { - this.beforeFieldSet = true; - this.beforeField = value; - } - } - - public string After - { - get - { - return this.afterField; - } - set - { - this.afterFieldSet = true; - this.afterField = value; - } - } - - /// - /// If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - public int Sequence - { - get - { - return this.sequenceField; - } - set - { - this.sequenceFieldSet = true; - this.sequenceField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Show", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.dialogFieldSet) - { - writer.WriteAttributeString("Dialog", this.dialogField); - } - if (this.onExitFieldSet) - { - if ((this.onExitField == ExitType.success)) - { - writer.WriteAttributeString("OnExit", "success"); - } - if ((this.onExitField == ExitType.cancel)) - { - writer.WriteAttributeString("OnExit", "cancel"); - } - if ((this.onExitField == ExitType.error)) - { - writer.WriteAttributeString("OnExit", "error"); - } - if ((this.onExitField == ExitType.suspend)) - { - writer.WriteAttributeString("OnExit", "suspend"); - } - } - if (this.beforeFieldSet) - { - writer.WriteAttributeString("Before", this.beforeField); - } - if (this.afterFieldSet) - { - writer.WriteAttributeString("After", this.afterField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.sequenceFieldSet) - { - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Dialog" == name)) - { - this.dialogField = value; - this.dialogFieldSet = true; - } - if (("OnExit" == name)) - { - this.onExitField = Enums.ParseExitType(value); - this.onExitFieldSet = true; - } - if (("Before" == name)) - { - this.beforeField = value; - this.beforeFieldSet = true; - } - if (("After" == name)) - { - this.afterField = value; - this.afterFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Sequence" == name)) - { - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.sequenceFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public InstallUISequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("Show" == childName)) - { - childValue = new Show(); - } - if (("ScheduleReboot" == childName)) - { - childValue = new ScheduleReboot(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if (("FindRelatedProducts" == childName)) - { - childValue = new FindRelatedProducts(); - } - if (("AppSearch" == childName)) - { - childValue = new AppSearch(); - } - if (("CCPSearch" == childName)) - { - childValue = new CCPSearch(); - } - if (("RMCCPSearch" == childName)) - { - childValue = new RMCCPSearch(); - } - if (("ValidateProductID" == childName)) - { - childValue = new ValidateProductID(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("IsolateComponents" == childName)) - { - childValue = new IsolateComponents(); - } - if (("ResolveSource" == childName)) - { - childValue = new ResolveSource(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("MigrateFeatureStates" == childName)) - { - childValue = new MigrateFeatureStates(); - } - if (("ExecuteAction" == childName)) - { - childValue = new ExecuteAction(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallUISequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstallExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public InstallExecuteSequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ForceReboot))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetODBCFolders))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AllocateRegistrySpace))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProcessComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishFeatures))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StopServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DeleteServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterComPlus))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfUnregModules))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterTypeLibraries))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveODBC))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterFonts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterClassInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterExtensionInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterProgIdInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterMIMEInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveIniValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveShortcuts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveEnvironmentStrings))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveDuplicateFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolders))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolders))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MoveFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DuplicateFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BindImage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteRegistryValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteIniValues))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteEnvironmentStrings))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterFonts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallODBC))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterTypeLibraries))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfRegModules))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterComPlus))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StartServices))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterUser))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProduct))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveExistingProducts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DisableRollback))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecute))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecuteAgain))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiUnpublishAssemblies))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("ScheduleReboot" == childName)) - { - childValue = new ScheduleReboot(); - } - if (("ForceReboot" == childName)) - { - childValue = new ForceReboot(); - } - if (("ResolveSource" == childName)) - { - childValue = new ResolveSource(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if (("FindRelatedProducts" == childName)) - { - childValue = new FindRelatedProducts(); - } - if (("AppSearch" == childName)) - { - childValue = new AppSearch(); - } - if (("CCPSearch" == childName)) - { - childValue = new CCPSearch(); - } - if (("RMCCPSearch" == childName)) - { - childValue = new RMCCPSearch(); - } - if (("ValidateProductID" == childName)) - { - childValue = new ValidateProductID(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("IsolateComponents" == childName)) - { - childValue = new IsolateComponents(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("SetODBCFolders" == childName)) - { - childValue = new SetODBCFolders(); - } - if (("MigrateFeatureStates" == childName)) - { - childValue = new MigrateFeatureStates(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("AllocateRegistrySpace" == childName)) - { - childValue = new AllocateRegistrySpace(); - } - if (("ProcessComponents" == childName)) - { - childValue = new ProcessComponents(); - } - if (("UnpublishComponents" == childName)) - { - childValue = new UnpublishComponents(); - } - if (("UnpublishFeatures" == childName)) - { - childValue = new UnpublishFeatures(); - } - if (("StopServices" == childName)) - { - childValue = new StopServices(); - } - if (("DeleteServices" == childName)) - { - childValue = new DeleteServices(); - } - if (("UnregisterComPlus" == childName)) - { - childValue = new UnregisterComPlus(); - } - if (("SelfUnregModules" == childName)) - { - childValue = new SelfUnregModules(); - } - if (("UnregisterTypeLibraries" == childName)) - { - childValue = new UnregisterTypeLibraries(); - } - if (("RemoveODBC" == childName)) - { - childValue = new RemoveODBC(); - } - if (("UnregisterFonts" == childName)) - { - childValue = new UnregisterFonts(); - } - if (("RemoveRegistryValues" == childName)) - { - childValue = new RemoveRegistryValues(); - } - if (("UnregisterClassInfo" == childName)) - { - childValue = new UnregisterClassInfo(); - } - if (("UnregisterExtensionInfo" == childName)) - { - childValue = new UnregisterExtensionInfo(); - } - if (("UnregisterProgIdInfo" == childName)) - { - childValue = new UnregisterProgIdInfo(); - } - if (("UnregisterMIMEInfo" == childName)) - { - childValue = new UnregisterMIMEInfo(); - } - if (("RemoveIniValues" == childName)) - { - childValue = new RemoveIniValues(); - } - if (("RemoveShortcuts" == childName)) - { - childValue = new RemoveShortcuts(); - } - if (("RemoveEnvironmentStrings" == childName)) - { - childValue = new RemoveEnvironmentStrings(); - } - if (("RemoveDuplicateFiles" == childName)) - { - childValue = new RemoveDuplicateFiles(); - } - if (("RemoveFiles" == childName)) - { - childValue = new RemoveFiles(); - } - if (("RemoveFolders" == childName)) - { - childValue = new RemoveFolders(); - } - if (("CreateFolders" == childName)) - { - childValue = new CreateFolders(); - } - if (("MoveFiles" == childName)) - { - childValue = new MoveFiles(); - } - if (("InstallFiles" == childName)) - { - childValue = new InstallFiles(); - } - if (("DuplicateFiles" == childName)) - { - childValue = new DuplicateFiles(); - } - if (("PatchFiles" == childName)) - { - childValue = new PatchFiles(); - } - if (("BindImage" == childName)) - { - childValue = new BindImage(); - } - if (("CreateShortcuts" == childName)) - { - childValue = new CreateShortcuts(); - } - if (("RegisterClassInfo" == childName)) - { - childValue = new RegisterClassInfo(); - } - if (("RegisterExtensionInfo" == childName)) - { - childValue = new RegisterExtensionInfo(); - } - if (("RegisterProgIdInfo" == childName)) - { - childValue = new RegisterProgIdInfo(); - } - if (("RegisterMIMEInfo" == childName)) - { - childValue = new RegisterMIMEInfo(); - } - if (("WriteRegistryValues" == childName)) - { - childValue = new WriteRegistryValues(); - } - if (("WriteIniValues" == childName)) - { - childValue = new WriteIniValues(); - } - if (("WriteEnvironmentStrings" == childName)) - { - childValue = new WriteEnvironmentStrings(); - } - if (("RegisterFonts" == childName)) - { - childValue = new RegisterFonts(); - } - if (("InstallODBC" == childName)) - { - childValue = new InstallODBC(); - } - if (("RegisterTypeLibraries" == childName)) - { - childValue = new RegisterTypeLibraries(); - } - if (("SelfRegModules" == childName)) - { - childValue = new SelfRegModules(); - } - if (("RegisterComPlus" == childName)) - { - childValue = new RegisterComPlus(); - } - if (("InstallServices" == childName)) - { - childValue = new InstallServices(); - } - if (("StartServices" == childName)) - { - childValue = new StartServices(); - } - if (("RegisterUser" == childName)) - { - childValue = new RegisterUser(); - } - if (("RegisterProduct" == childName)) - { - childValue = new RegisterProduct(); - } - if (("PublishComponents" == childName)) - { - childValue = new PublishComponents(); - } - if (("PublishFeatures" == childName)) - { - childValue = new PublishFeatures(); - } - if (("PublishProduct" == childName)) - { - childValue = new PublishProduct(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("RemoveExistingProducts" == childName)) - { - childValue = new RemoveExistingProducts(); - } - if (("DisableRollback" == childName)) - { - childValue = new DisableRollback(); - } - if (("InstallExecute" == childName)) - { - childValue = new InstallExecute(); - } - if (("InstallExecuteAgain" == childName)) - { - childValue = new InstallExecuteAgain(); - } - if (("MsiPublishAssemblies" == childName)) - { - childValue = new MsiPublishAssemblies(); - } - if (("MsiUnpublishAssemblies" == childName)) - { - childValue = new MsiUnpublishAssemblies(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstallExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AdminUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public AdminUISequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("Show" == childName)) - { - childValue = new Show(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("ExecuteAction" == childName)) - { - childValue = new ExecuteAction(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("InstallAdminPackage" == childName)) - { - childValue = new InstallAdminPackage(); - } - if (("InstallFiles" == childName)) - { - childValue = new InstallFiles(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AdminUISequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AdminExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public AdminExecuteSequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("FileCost" == childName)) - { - childValue = new FileCost(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("InstallAdminPackage" == childName)) - { - childValue = new InstallAdminPackage(); - } - if (("InstallFiles" == childName)) - { - childValue = new InstallFiles(); - } - if (("PatchFiles" == childName)) - { - childValue = new PatchFiles(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("LaunchConditions" == childName)) - { - childValue = new LaunchConditions(); - } - if (("ResolveSource" == childName)) - { - childValue = new ResolveSource(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AdminExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class AdvertiseExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public AdvertiseExecuteSequence() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("CostInitialize" == childName)) - { - childValue = new CostInitialize(); - } - if (("CostFinalize" == childName)) - { - childValue = new CostFinalize(); - } - if (("Custom" == childName)) - { - childValue = new Custom(); - } - if (("InstallValidate" == childName)) - { - childValue = new InstallValidate(); - } - if (("InstallInitialize" == childName)) - { - childValue = new InstallInitialize(); - } - if (("CreateShortcuts" == childName)) - { - childValue = new CreateShortcuts(); - } - if (("RegisterClassInfo" == childName)) - { - childValue = new RegisterClassInfo(); - } - if (("RegisterExtensionInfo" == childName)) - { - childValue = new RegisterExtensionInfo(); - } - if (("RegisterMIMEInfo" == childName)) - { - childValue = new RegisterMIMEInfo(); - } - if (("RegisterProgIdInfo" == childName)) - { - childValue = new RegisterProgIdInfo(); - } - if (("PublishComponents" == childName)) - { - childValue = new PublishComponents(); - } - if (("PublishFeatures" == childName)) - { - childValue = new PublishFeatures(); - } - if (("PublishProduct" == childName)) - { - childValue = new PublishProduct(); - } - if (("InstallFinalize" == childName)) - { - childValue = new InstallFinalize(); - } - if (("MsiPublishAssemblies" == childName)) - { - childValue = new MsiPublishAssemblies(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("AdvertiseExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Binary data used for CustomAction elements and UI controls. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Binary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private YesNoType suppressModularizationField; - - private bool suppressModularizationFieldSet; - - private ISchemaElement parentElement; - - public Binary() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Path to the binary file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - /// - /// Use to suppress modularization of this Binary identifier in merge modules. - /// - public YesNoType SuppressModularization - { - get - { - return this.suppressModularizationField; - } - set - { - this.suppressModularizationFieldSet = true; - this.suppressModularizationField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Binary", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.suppressModularizationFieldSet) - { - if ((this.suppressModularizationField == YesNoType.no)) - { - writer.WriteAttributeString("SuppressModularization", "no"); - } - if ((this.suppressModularizationField == YesNoType.yes)) - { - writer.WriteAttributeString("SuppressModularization", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("SuppressModularization" == name)) - { - this.suppressModularizationField = Enums.ParseYesNoType(value); - this.suppressModularizationFieldSet = true; - } - } - } - - /// - /// Icon used for Shortcut, ProgId, or Class elements (but not UI controls) - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Icon : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private ISchemaElement parentElement; - - /// - /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Path to the icon file. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Icon", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedChainer : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string commandLineField; - - private bool commandLineFieldSet; - - private string binarySourceField; - - private bool binarySourceFieldSet; - - private string fileSourceField; - - private bool fileSourceFieldSet; - - private string propertySourceField; - - private bool propertySourceFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Unique identifier for embedded chainer. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Value to append to the transaction handle and passed to the chainer executable. - /// - public string CommandLine - { - get - { - return this.commandLineField; - } - set - { - this.commandLineFieldSet = true; - this.commandLineField = value; - } - } - - /// - /// Reference to the Binary element that contains the chainer executable. Mutually exclusive with - /// the FileSource and PropertySource attributes. - /// - public string BinarySource - { - get - { - return this.binarySourceField; - } - set - { - this.binarySourceFieldSet = true; - this.binarySourceField = value; - } - } - - /// - /// Reference to the File element that is the chainer executable. Mutually exclusive with - /// the BinarySource and PropertySource attributes. - /// - public string FileSource - { - get - { - return this.fileSourceField; - } - set - { - this.fileSourceFieldSet = true; - this.fileSourceField = value; - } - } - - /// - /// Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with - /// the BinarySource and FileSource attributes. - /// - public string PropertySource - { - get - { - return this.propertySourceField; - } - set - { - this.propertySourceFieldSet = true; - this.propertySourceField = value; - } - } - - /// - /// Element value is the condition. CDATA may be used to when a condition contains many XML characters - /// that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition - /// to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer - /// that executes is undeterministic. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedChainer", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.commandLineFieldSet) - { - writer.WriteAttributeString("CommandLine", this.commandLineField); - } - if (this.binarySourceFieldSet) - { - writer.WriteAttributeString("BinarySource", this.binarySourceField); - } - if (this.fileSourceFieldSet) - { - writer.WriteAttributeString("FileSource", this.fileSourceField); - } - if (this.propertySourceFieldSet) - { - writer.WriteAttributeString("PropertySource", this.propertySourceField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("CommandLine" == name)) - { - this.commandLineField = value; - this.commandLineFieldSet = true; - } - if (("BinarySource" == name)) - { - this.binarySourceField = value; - this.binarySourceFieldSet = true; - } - if (("FileSource" == name)) - { - this.fileSourceField = value; - this.fileSourceFieldSet = true; - } - if (("PropertySource" == name)) - { - this.propertySourceField = value; - this.propertySourceFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents - /// to be included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedChainerRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedChainerRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Element value is the condition. Use CDATA if message contains delimiter characters. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedUI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType ignoreFatalExitField; - - private bool ignoreFatalExitFieldSet; - - private YesNoType ignoreErrorField; - - private bool ignoreErrorFieldSet; - - private YesNoType ignoreWarningField; - - private bool ignoreWarningFieldSet; - - private YesNoType ignoreUserField; - - private bool ignoreUserFieldSet; - - private YesNoType ignoreInfoField; - - private bool ignoreInfoFieldSet; - - private YesNoType ignoreFilesInUseField; - - private bool ignoreFilesInUseFieldSet; - - private YesNoType ignoreResolveSourceField; - - private bool ignoreResolveSourceFieldSet; - - private YesNoType ignoreOutOfDiskSpaceField; - - private bool ignoreOutOfDiskSpaceFieldSet; - - private YesNoType ignoreActionStartField; - - private bool ignoreActionStartFieldSet; - - private YesNoType ignoreActionDataField; - - private bool ignoreActionDataFieldSet; - - private YesNoType ignoreProgressField; - - private bool ignoreProgressFieldSet; - - private YesNoType ignoreCommonDataField; - - private bool ignoreCommonDataFieldSet; - - private YesNoType ignoreInitializeField; - - private bool ignoreInitializeFieldSet; - - private YesNoType ignoreTerminateField; - - private bool ignoreTerminateFieldSet; - - private YesNoType ignoreShowDialogField; - - private bool ignoreShowDialogFieldSet; - - private YesNoType ignoreRMFilesInUseField; - - private bool ignoreRMFilesInUseFieldSet; - - private YesNoType ignoreInstallStartField; - - private bool ignoreInstallStartFieldSet; - - private YesNoType ignoreInstallEndField; - - private bool ignoreInstallEndFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private YesNoType supportBasicUIField; - - private bool supportBasicUIFieldSet; - - private ISchemaElement parentElement; - - public EmbeddedUI() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(EmbeddedUIResource))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name - /// portion of the SourceFile attribute will be used. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages. - /// - public YesNoType IgnoreFatalExit - { - get - { - return this.ignoreFatalExitField; - } - set - { - this.ignoreFatalExitFieldSet = true; - this.ignoreFatalExitField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages. - /// - public YesNoType IgnoreError - { - get - { - return this.ignoreErrorField; - } - set - { - this.ignoreErrorFieldSet = true; - this.ignoreErrorField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages. - /// - public YesNoType IgnoreWarning - { - get - { - return this.ignoreWarningField; - } - set - { - this.ignoreWarningFieldSet = true; - this.ignoreWarningField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_USER messages. - /// - public YesNoType IgnoreUser - { - get - { - return this.ignoreUserField; - } - set - { - this.ignoreUserFieldSet = true; - this.ignoreUserField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INFO messages. - /// - public YesNoType IgnoreInfo - { - get - { - return this.ignoreInfoField; - } - set - { - this.ignoreInfoFieldSet = true; - this.ignoreInfoField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages. - /// - public YesNoType IgnoreFilesInUse - { - get - { - return this.ignoreFilesInUseField; - } - set - { - this.ignoreFilesInUseFieldSet = true; - this.ignoreFilesInUseField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages. - /// - public YesNoType IgnoreResolveSource - { - get - { - return this.ignoreResolveSourceField; - } - set - { - this.ignoreResolveSourceFieldSet = true; - this.ignoreResolveSourceField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages. - /// - public YesNoType IgnoreOutOfDiskSpace - { - get - { - return this.ignoreOutOfDiskSpaceField; - } - set - { - this.ignoreOutOfDiskSpaceFieldSet = true; - this.ignoreOutOfDiskSpaceField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages. - /// - public YesNoType IgnoreActionStart - { - get - { - return this.ignoreActionStartField; - } - set - { - this.ignoreActionStartFieldSet = true; - this.ignoreActionStartField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages. - /// - public YesNoType IgnoreActionData - { - get - { - return this.ignoreActionDataField; - } - set - { - this.ignoreActionDataFieldSet = true; - this.ignoreActionDataField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages. - /// - public YesNoType IgnoreProgress - { - get - { - return this.ignoreProgressField; - } - set - { - this.ignoreProgressFieldSet = true; - this.ignoreProgressField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages. - /// - public YesNoType IgnoreCommonData - { - get - { - return this.ignoreCommonDataField; - } - set - { - this.ignoreCommonDataFieldSet = true; - this.ignoreCommonDataField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages. - /// - public YesNoType IgnoreInitialize - { - get - { - return this.ignoreInitializeField; - } - set - { - this.ignoreInitializeFieldSet = true; - this.ignoreInitializeField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages. - /// - public YesNoType IgnoreTerminate - { - get - { - return this.ignoreTerminateField; - } - set - { - this.ignoreTerminateFieldSet = true; - this.ignoreTerminateField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages. - /// - public YesNoType IgnoreShowDialog - { - get - { - return this.ignoreShowDialogField; - } - set - { - this.ignoreShowDialogFieldSet = true; - this.ignoreShowDialogField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType IgnoreRMFilesInUse - { - get - { - return this.ignoreRMFilesInUseField; - } - set - { - this.ignoreRMFilesInUseFieldSet = true; - this.ignoreRMFilesInUseField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages. - /// - public YesNoType IgnoreInstallStart - { - get - { - return this.ignoreInstallStartField; - } - set - { - this.ignoreInstallStartFieldSet = true; - this.ignoreInstallStartField = value; - } - } - - /// - /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages. - /// - public YesNoType IgnoreInstallEnd - { - get - { - return this.ignoreInstallEndField; - } - set - { - this.ignoreInstallEndFieldSet = true; - this.ignoreInstallEndField = value; - } - } - - /// - /// The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer - /// does not support the typical short filename and long filename combination for embedded UI files as it - /// does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile - /// attribute will be used. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Path to the binary file that is the embedded UI. This must be a DLL that exports the following - /// three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - /// - /// Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation. - /// - public YesNoType SupportBasicUI - { - get - { - return this.supportBasicUIField; - } - set - { - this.supportBasicUIFieldSet = true; - this.supportBasicUIField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("EmbeddedUIResource" == childName)) - { - childValue = new EmbeddedUIResource(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedUI", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.ignoreFatalExitFieldSet) - { - if ((this.ignoreFatalExitField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreFatalExit", "no"); - } - if ((this.ignoreFatalExitField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreFatalExit", "yes"); - } - } - if (this.ignoreErrorFieldSet) - { - if ((this.ignoreErrorField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreError", "no"); - } - if ((this.ignoreErrorField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreError", "yes"); - } - } - if (this.ignoreWarningFieldSet) - { - if ((this.ignoreWarningField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreWarning", "no"); - } - if ((this.ignoreWarningField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreWarning", "yes"); - } - } - if (this.ignoreUserFieldSet) - { - if ((this.ignoreUserField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreUser", "no"); - } - if ((this.ignoreUserField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreUser", "yes"); - } - } - if (this.ignoreInfoFieldSet) - { - if ((this.ignoreInfoField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInfo", "no"); - } - if ((this.ignoreInfoField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInfo", "yes"); - } - } - if (this.ignoreFilesInUseFieldSet) - { - if ((this.ignoreFilesInUseField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreFilesInUse", "no"); - } - if ((this.ignoreFilesInUseField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreFilesInUse", "yes"); - } - } - if (this.ignoreResolveSourceFieldSet) - { - if ((this.ignoreResolveSourceField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreResolveSource", "no"); - } - if ((this.ignoreResolveSourceField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreResolveSource", "yes"); - } - } - if (this.ignoreOutOfDiskSpaceFieldSet) - { - if ((this.ignoreOutOfDiskSpaceField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreOutOfDiskSpace", "no"); - } - if ((this.ignoreOutOfDiskSpaceField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreOutOfDiskSpace", "yes"); - } - } - if (this.ignoreActionStartFieldSet) - { - if ((this.ignoreActionStartField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreActionStart", "no"); - } - if ((this.ignoreActionStartField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreActionStart", "yes"); - } - } - if (this.ignoreActionDataFieldSet) - { - if ((this.ignoreActionDataField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreActionData", "no"); - } - if ((this.ignoreActionDataField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreActionData", "yes"); - } - } - if (this.ignoreProgressFieldSet) - { - if ((this.ignoreProgressField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreProgress", "no"); - } - if ((this.ignoreProgressField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreProgress", "yes"); - } - } - if (this.ignoreCommonDataFieldSet) - { - if ((this.ignoreCommonDataField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreCommonData", "no"); - } - if ((this.ignoreCommonDataField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreCommonData", "yes"); - } - } - if (this.ignoreInitializeFieldSet) - { - if ((this.ignoreInitializeField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInitialize", "no"); - } - if ((this.ignoreInitializeField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInitialize", "yes"); - } - } - if (this.ignoreTerminateFieldSet) - { - if ((this.ignoreTerminateField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreTerminate", "no"); - } - if ((this.ignoreTerminateField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreTerminate", "yes"); - } - } - if (this.ignoreShowDialogFieldSet) - { - if ((this.ignoreShowDialogField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreShowDialog", "no"); - } - if ((this.ignoreShowDialogField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreShowDialog", "yes"); - } - } - if (this.ignoreRMFilesInUseFieldSet) - { - if ((this.ignoreRMFilesInUseField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreRMFilesInUse", "no"); - } - if ((this.ignoreRMFilesInUseField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreRMFilesInUse", "yes"); - } - } - if (this.ignoreInstallStartFieldSet) - { - if ((this.ignoreInstallStartField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInstallStart", "no"); - } - if ((this.ignoreInstallStartField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInstallStart", "yes"); - } - } - if (this.ignoreInstallEndFieldSet) - { - if ((this.ignoreInstallEndField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreInstallEnd", "no"); - } - if ((this.ignoreInstallEndField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreInstallEnd", "yes"); - } - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.supportBasicUIFieldSet) - { - if ((this.supportBasicUIField == YesNoType.no)) - { - writer.WriteAttributeString("SupportBasicUI", "no"); - } - if ((this.supportBasicUIField == YesNoType.yes)) - { - writer.WriteAttributeString("SupportBasicUI", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("IgnoreFatalExit" == name)) - { - this.ignoreFatalExitField = Enums.ParseYesNoType(value); - this.ignoreFatalExitFieldSet = true; - } - if (("IgnoreError" == name)) - { - this.ignoreErrorField = Enums.ParseYesNoType(value); - this.ignoreErrorFieldSet = true; - } - if (("IgnoreWarning" == name)) - { - this.ignoreWarningField = Enums.ParseYesNoType(value); - this.ignoreWarningFieldSet = true; - } - if (("IgnoreUser" == name)) - { - this.ignoreUserField = Enums.ParseYesNoType(value); - this.ignoreUserFieldSet = true; - } - if (("IgnoreInfo" == name)) - { - this.ignoreInfoField = Enums.ParseYesNoType(value); - this.ignoreInfoFieldSet = true; - } - if (("IgnoreFilesInUse" == name)) - { - this.ignoreFilesInUseField = Enums.ParseYesNoType(value); - this.ignoreFilesInUseFieldSet = true; - } - if (("IgnoreResolveSource" == name)) - { - this.ignoreResolveSourceField = Enums.ParseYesNoType(value); - this.ignoreResolveSourceFieldSet = true; - } - if (("IgnoreOutOfDiskSpace" == name)) - { - this.ignoreOutOfDiskSpaceField = Enums.ParseYesNoType(value); - this.ignoreOutOfDiskSpaceFieldSet = true; - } - if (("IgnoreActionStart" == name)) - { - this.ignoreActionStartField = Enums.ParseYesNoType(value); - this.ignoreActionStartFieldSet = true; - } - if (("IgnoreActionData" == name)) - { - this.ignoreActionDataField = Enums.ParseYesNoType(value); - this.ignoreActionDataFieldSet = true; - } - if (("IgnoreProgress" == name)) - { - this.ignoreProgressField = Enums.ParseYesNoType(value); - this.ignoreProgressFieldSet = true; - } - if (("IgnoreCommonData" == name)) - { - this.ignoreCommonDataField = Enums.ParseYesNoType(value); - this.ignoreCommonDataFieldSet = true; - } - if (("IgnoreInitialize" == name)) - { - this.ignoreInitializeField = Enums.ParseYesNoType(value); - this.ignoreInitializeFieldSet = true; - } - if (("IgnoreTerminate" == name)) - { - this.ignoreTerminateField = Enums.ParseYesNoType(value); - this.ignoreTerminateFieldSet = true; - } - if (("IgnoreShowDialog" == name)) - { - this.ignoreShowDialogField = Enums.ParseYesNoType(value); - this.ignoreShowDialogFieldSet = true; - } - if (("IgnoreRMFilesInUse" == name)) - { - this.ignoreRMFilesInUseField = Enums.ParseYesNoType(value); - this.ignoreRMFilesInUseFieldSet = true; - } - if (("IgnoreInstallStart" == name)) - { - this.ignoreInstallStartField = Enums.ParseYesNoType(value); - this.ignoreInstallStartFieldSet = true; - } - if (("IgnoreInstallEnd" == name)) - { - this.ignoreInstallEndField = Enums.ParseYesNoType(value); - this.ignoreInstallEndFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("SupportBasicUI" == name)) - { - this.supportBasicUIField = Enums.ParseYesNoType(value); - this.supportBasicUIFieldSet = true; - } - } - } - - /// - /// Defines a resource for use by the embedded UI. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EmbeddedUIResource : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string nameField; - - private bool nameFieldSet; - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for the embedded UI resource. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows - /// Installer does not support the typical short filename and long filename combination for embedded UI files - /// as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used. - /// - public string Name - { - get - { - return this.nameField; - } - set - { - this.nameFieldSet = true; - this.nameField = value; - } - } - - /// - /// Path to the binary file that is the embedded UI resource. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EmbeddedUIResource", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.nameFieldSet) - { - writer.WriteAttributeString("Name", this.nameField); - } - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Name" == name)) - { - this.nameField = value; - this.nameFieldSet = true; - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Error : ISchemaElement, ISetAttributes - { - - private int idField; - - private bool idFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Number of the error for which a message is being provided. See MSI SDK for error definitions. - /// - public int Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Element value is Message, use CDATA if message contains delimiter characters - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Error", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField.ToString(CultureInfo.InvariantCulture)); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.idFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Publish : ISchemaElement, ISetAttributes - { - - private string controlField; - - private bool controlFieldSet; - - private string dialogField; - - private bool dialogFieldSet; - - private string eventField; - - private bool eventFieldSet; - - private string orderField; - - private bool orderFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// The parent Control for this Publish element, should only be specified when this element is a child of the UI element. - /// - public string Control - { - get - { - return this.controlField; - } - set - { - this.controlFieldSet = true; - this.controlField = value; - } - } - - /// - /// The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element. - /// This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary. - /// - public string Dialog - { - get - { - return this.dialogField; - } - set - { - this.dialogFieldSet = true; - this.dialogField = value; - } - } - - /// - /// Set this attribute's value to one of the standard control events to trigger that event. - /// Either this attribute or the Property attribute must be set, but not both at the same time. - /// - public string Event - { - get - { - return this.eventField; - } - set - { - this.eventFieldSet = true; - this.eventField = value; - } - } - - /// - /// This attribute should only need to be set if this element is nested under a UI element in order to - /// control the order in which this publish event will be started. - /// If this element is nested under a Control element, the default value will be one greater than any - /// previous Publish element's order (the first element's default value is 1). - /// If this element is nested under a UI element, the default value is always 1 (it does not get a - /// default value based on any previous Publish elements). - /// - public string Order - { - get - { - return this.orderField; - } - set - { - this.orderFieldSet = true; - this.orderField = value; - } - } - - /// - /// Set this attribute's value to a property name to set that property. - /// Either this attribute or the Event attribute must be set, but not both at the same time. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// If the Property attribute is specified, set the value of this attribute to the new value for the property. - /// To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}'). - /// Otherwise, this attribute's value should be the argument for the event specified in the Event attribute. - /// If the event doesn't take an attribute, a common value to use is "0". - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The element value is the optional Condition expression. - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Publish", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.controlFieldSet) - { - writer.WriteAttributeString("Control", this.controlField); - } - if (this.dialogFieldSet) - { - writer.WriteAttributeString("Dialog", this.dialogField); - } - if (this.eventFieldSet) - { - writer.WriteAttributeString("Event", this.eventField); - } - if (this.orderFieldSet) - { - writer.WriteAttributeString("Order", this.orderField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Control" == name)) - { - this.controlField = value; - this.controlFieldSet = true; - } - if (("Dialog" == name)) - { - this.dialogField = value; - this.dialogFieldSet = true; - } - if (("Event" == name)) - { - this.eventField = value; - this.eventFieldSet = true; - } - if (("Order" == name)) - { - this.orderField = value; - this.orderFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Sets attributes for events in the EventMapping table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Subscribe : ISchemaElement, ISetAttributes - { - - private string eventField; - - private bool eventFieldSet; - - private string attributeField; - - private bool attributeFieldSet; - - private ISchemaElement parentElement; - - /// - /// must be one of the standard control events' - /// - public string Event - { - get - { - return this.eventField; - } - set - { - this.eventFieldSet = true; - this.eventField = value; - } - } - - /// - /// if not present can only handle enable, disable, hide, unhide events - /// - public string Attribute - { - get - { - return this.attributeField; - } - set - { - this.attributeFieldSet = true; - this.attributeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Subscribe", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.eventFieldSet) - { - writer.WriteAttributeString("Event", this.eventField); - } - if (this.attributeFieldSet) - { - writer.WriteAttributeString("Attribute", this.attributeField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Event" == name)) - { - this.eventField = value; - this.eventFieldSet = true; - } - if (("Attribute" == name)) - { - this.attributeField = value; - this.attributeFieldSet = true; - } - } - } - - /// - /// An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Text : ISchemaElement, ISetAttributes - { - - private string sourceFileField; - - private bool sourceFileFieldSet; - - private string srcField; - - private bool srcFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Instructs the text to be imported from a file instead of the element value during the binding process. - /// - public string SourceFile - { - get - { - return this.sourceFileField; - } - set - { - this.sourceFileFieldSet = true; - this.sourceFileField = value; - } - } - - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] - public string src - { - get - { - return this.srcField; - } - set - { - this.srcFieldSet = true; - this.srcField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Text", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.sourceFileFieldSet) - { - writer.WriteAttributeString("SourceFile", this.sourceFileField); - } - if (this.srcFieldSet) - { - writer.WriteAttributeString("src", this.srcField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("SourceFile" == name)) - { - this.sourceFileField = value; - this.sourceFileFieldSet = true; - } - if (("src" == name)) - { - this.srcField = value; - this.srcFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Contains the controls that appear on each dialog. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Control : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string typeField; - - private bool typeFieldSet; - - private string xField; - - private bool xFieldSet; - - private string yField; - - private bool yFieldSet; - - private string widthField; - - private bool widthFieldSet; - - private string heightField; - - private bool heightFieldSet; - - private string propertyField; - - private bool propertyFieldSet; - - private string textField; - - private bool textFieldSet; - - private string helpField; - - private bool helpFieldSet; - - private string toolTipField; - - private bool toolTipFieldSet; - - private string checkBoxValueField; - - private bool checkBoxValueFieldSet; - - private string checkBoxPropertyRefField; - - private bool checkBoxPropertyRefFieldSet; - - private YesNoType tabSkipField; - - private bool tabSkipFieldSet; - - private YesNoType defaultField; - - private bool defaultFieldSet; - - private YesNoType cancelField; - - private bool cancelFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType disabledField; - - private bool disabledFieldSet; - - private YesNoType sunkenField; - - private bool sunkenFieldSet; - - private YesNoType indirectField; - - private bool indirectFieldSet; - - private YesNoType integerField; - - private bool integerFieldSet; - - private YesNoType rightToLeftField; - - private bool rightToLeftFieldSet; - - private YesNoType rightAlignedField; - - private bool rightAlignedFieldSet; - - private YesNoType leftScrollField; - - private bool leftScrollFieldSet; - - private YesNoType transparentField; - - private bool transparentFieldSet; - - private YesNoType noPrefixField; - - private bool noPrefixFieldSet; - - private YesNoType noWrapField; - - private bool noWrapFieldSet; - - private YesNoType formatSizeField; - - private bool formatSizeFieldSet; - - private YesNoType userLanguageField; - - private bool userLanguageFieldSet; - - private YesNoType multilineField; - - private bool multilineFieldSet; - - private YesNoType passwordField; - - private bool passwordFieldSet; - - private YesNoType progressBlocksField; - - private bool progressBlocksFieldSet; - - private YesNoType removableField; - - private bool removableFieldSet; - - private YesNoType fixedField; - - private bool fixedFieldSet; - - private YesNoType remoteField; - - private bool remoteFieldSet; - - private YesNoType cDROMField; - - private bool cDROMFieldSet; - - private YesNoType rAMDiskField; - - private bool rAMDiskFieldSet; - - private YesNoType floppyField; - - private bool floppyFieldSet; - - private YesNoType showRollbackCostField; - - private bool showRollbackCostFieldSet; - - private YesNoType sortedField; - - private bool sortedFieldSet; - - private YesNoType comboListField; - - private bool comboListFieldSet; - - private YesNoType imageField; - - private bool imageFieldSet; - - private IconSizeType iconSizeField; - - private bool iconSizeFieldSet; - - private YesNoType fixedSizeField; - - private bool fixedSizeFieldSet; - - private YesNoType iconField; - - private bool iconFieldSet; - - private YesNoType bitmapField; - - private bool bitmapFieldSet; - - private YesNoType pushLikeField; - - private bool pushLikeFieldSet; - - private YesNoType hasBorderField; - - private bool hasBorderFieldSet; - - private YesNoType elevationShieldField; - - private bool elevationShieldFieldSet; - - private ISchemaElement parentElement; - - public Control() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Text))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ComboBox))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListBox))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListView))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButtonGroup))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Binary))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); - childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Subscribe))); - childCollection0.AddCollection(childCollection1); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Combined with the Dialog Id to make up the primary key of the Control table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo - /// - public string Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. - /// - public string X - { - get - { - return this.xField; - } - set - { - this.xFieldSet = true; - this.xField = value; - } - } - - /// - /// Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. - /// - public string Y - { - get - { - return this.yField; - } - set - { - this.yFieldSet = true; - this.yField = value; - } - } - - /// - /// Width of the rectangular boundary of the control. This must be a non-negative number. - /// - public string Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - /// - /// Height of the rectangular boundary of the control. This must be a non-negative number. - /// - public string Height - { - get - { - return this.heightField; - } - set - { - this.heightFieldSet = true; - this.heightField = value; - } - } - - /// - /// The name of a defined property to be linked to this control. This column is required for active controls. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - /// - /// A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see - /// - public string Text - { - get - { - return this.textField; - } - set - { - this.textFieldSet = true; - this.textField = value; - } - } - - /// - /// This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something. - /// - public string Help - { - get - { - return this.helpField; - } - set - { - this.helpFieldSet = true; - this.helpField = value; - } - } - - /// - /// The string used for the Tooltip. - /// - public string ToolTip - { - get - { - return this.toolTipField; - } - set - { - this.toolTipFieldSet = true; - this.toolTipField = value; - } - } - - /// - /// This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked. - /// - public string CheckBoxValue - { - get - { - return this.checkBoxValueField; - } - set - { - this.checkBoxValueFieldSet = true; - this.checkBoxValueField = value; - } - } - - /// - /// This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property. - /// - public string CheckBoxPropertyRef - { - get - { - return this.checkBoxPropertyRefField; - } - set - { - this.checkBoxPropertyRefFieldSet = true; - this.checkBoxPropertyRefField = value; - } - } - - /// - /// Set this attribute to "yes" to cause this Control to be skipped in the tab sequence. - /// - public YesNoType TabSkip - { - get - { - return this.tabSkipField; - } - set - { - this.tabSkipFieldSet = true; - this.tabSkipField = value; - } - } - - /// - /// Set this attribute to "yes" to cause this Control to be invoked by the return key. - /// - public YesNoType Default - { - get - { - return this.defaultField; - } - set - { - this.defaultFieldSet = true; - this.defaultField = value; - } - } - - /// - /// Set this attribute to "yes" to cause this Control to be invoked by the escape key. - /// - public YesNoType Cancel - { - get - { - return this.cancelField; - } - set - { - this.cancelFieldSet = true; - this.cancelField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be hidden. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be disabled. - /// - public YesNoType Disabled - { - get - { - return this.disabledField; - } - set - { - this.disabledFieldSet = true; - this.disabledField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be sunken. - /// - public YesNoType Sunken - { - get - { - return this.sunkenField; - } - set - { - this.sunkenFieldSet = true; - this.sunkenField = value; - } - } - - /// - /// Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table. - /// - public YesNoType Indirect - { - get - { - return this.indirectField; - } - set - { - this.indirectFieldSet = true; - this.indirectField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string. - /// - public YesNoType Integer - { - get - { - return this.integerField; - } - set - { - this.integerFieldSet = true; - this.integerField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to display from right to left. - /// - public YesNoType RightToLeft - { - get - { - return this.rightToLeftField; - } - set - { - this.rightToLeftFieldSet = true; - this.rightToLeftField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the Control to be right aligned. - /// - public YesNoType RightAligned - { - get - { - return this.rightAlignedField; - } - set - { - this.rightAlignedFieldSet = true; - this.rightAlignedField = value; - } - } - - /// - /// Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. - /// - public YesNoType LeftScroll - { - get - { - return this.leftScrollField; - } - set - { - this.leftScrollFieldSet = true; - this.leftScrollField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType Transparent - { - get - { - return this.transparentField; - } - set - { - this.transparentFieldSet = true; - this.transparentField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType NoPrefix - { - get - { - return this.noPrefixField; - } - set - { - this.noPrefixFieldSet = true; - this.noPrefixField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType NoWrap - { - get - { - return this.noWrapField; - } - set - { - this.noWrapFieldSet = true; - this.noWrapField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType FormatSize - { - get - { - return this.formatSizeField; - } - set - { - this.formatSizeFieldSet = true; - this.formatSizeField = value; - } - } - - /// - /// This attribute is only valid for Text Controls. - /// - public YesNoType UserLanguage - { - get - { - return this.userLanguageField; - } - set - { - this.userLanguageFieldSet = true; - this.userLanguageField = value; - } - } - - /// - /// This attribute is only valid for Edit Controls. - /// - public YesNoType Multiline - { - get - { - return this.multilineField; - } - set - { - this.multilineFieldSet = true; - this.multilineField = value; - } - } - - /// - /// This attribute is only valid for Edit Controls. - /// - public YesNoType Password - { - get - { - return this.passwordField; - } - set - { - this.passwordFieldSet = true; - this.passwordField = value; - } - } - - /// - /// This attribute is only valid for ProgressBar Controls. - /// - public YesNoType ProgressBlocks - { - get - { - return this.progressBlocksField; - } - set - { - this.progressBlocksFieldSet = true; - this.progressBlocksField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Removable - { - get - { - return this.removableField; - } - set - { - this.removableFieldSet = true; - this.removableField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Fixed - { - get - { - return this.fixedField; - } - set - { - this.fixedFieldSet = true; - this.fixedField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Remote - { - get - { - return this.remoteField; - } - set - { - this.remoteFieldSet = true; - this.remoteField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType CDROM - { - get - { - return this.cDROMField; - } - set - { - this.cDROMFieldSet = true; - this.cDROMField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] - public YesNoType RAMDisk - { - get - { - return this.rAMDiskField; - } - set - { - this.rAMDiskFieldSet = true; - this.rAMDiskField = value; - } - } - - /// - /// This attribute is only valid for Volume and Directory Controls. - /// - public YesNoType Floppy - { - get - { - return this.floppyField; - } - set - { - this.floppyFieldSet = true; - this.floppyField = value; - } - } - - /// - /// This attribute is only valid for VolumeCostList Controls. - /// - public YesNoType ShowRollbackCost - { - get - { - return this.showRollbackCostField; - } - set - { - this.showRollbackCostFieldSet = true; - this.showRollbackCostField = value; - } - } - - /// - /// This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set - /// the value of this attribute to "yes" to have entries appear in the order specified under the Control. - /// If the attribute value is "no" or absent the entries in the control will appear in alphabetical order. - /// - public YesNoType Sorted - { - get - { - return this.sortedField; - } - set - { - this.sortedFieldSet = true; - this.sortedField = value; - } - } - - /// - /// This attribute is only valid for ComboBox Controls. - /// - public YesNoType ComboList - { - get - { - return this.comboListField; - } - set - { - this.comboListFieldSet = true; - this.comboListField = value; - } - } - - /// - /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. - /// - public YesNoType Image - { - get - { - return this.imageField; - } - set - { - this.imageFieldSet = true; - this.imageField = value; - } - } - - /// - /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. - /// - public IconSizeType IconSize - { - get - { - return this.iconSizeField; - } - set - { - this.iconSizeFieldSet = true; - this.iconSizeField = value; - } - } - - /// - /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. - /// - public YesNoType FixedSize - { - get - { - return this.fixedSizeField; - } - set - { - this.fixedSizeFieldSet = true; - this.fixedSizeField = value; - } - } - - /// - /// This attribute is only valid for RadioButton and PushButton Controls. - /// - public YesNoType Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// This attribute is only valid for RadioButton and PushButton Controls. - /// - public YesNoType Bitmap - { - get - { - return this.bitmapField; - } - set - { - this.bitmapFieldSet = true; - this.bitmapField = value; - } - } - - /// - /// This attribute is only valid for RadioButton and Checkbox Controls. - /// - public YesNoType PushLike - { - get - { - return this.pushLikeField; - } - set - { - this.pushLikeFieldSet = true; - this.pushLikeField = value; - } - } - - /// - /// This attribute is only valid for RadioButton Controls. - /// - public YesNoType HasBorder - { - get - { - return this.hasBorderField; - } - set - { - this.hasBorderFieldSet = true; - this.hasBorderField = value; - } - } - - /// - /// This attribute is only valid for PushButton controls. - /// Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control. - /// If this attribute's value is "yes" and the installation is not yet running with elevated privileges, - /// the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon). - /// If this attribute's value is "yes" and the installation is already running with elevated privileges, - /// the pushbutton control is created using the other icon attributes. - /// Otherwise, the pushbutton control is created using the other icon attributes. - /// - public YesNoType ElevationShield - { - get - { - return this.elevationShieldField; - } - set - { - this.elevationShieldFieldSet = true; - this.elevationShieldField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Text" == childName)) - { - childValue = new Text(); - } - if (("ComboBox" == childName)) - { - childValue = new ComboBox(); - } - if (("ListBox" == childName)) - { - childValue = new ListBox(); - } - if (("ListView" == childName)) - { - childValue = new ListView(); - } - if (("RadioButtonGroup" == childName)) - { - childValue = new RadioButtonGroup(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("Condition" == childName)) - { - childValue = new Condition(); - } - if (("Publish" == childName)) - { - childValue = new Publish(); - } - if (("Subscribe" == childName)) - { - childValue = new Subscribe(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Parses a IconSizeType from a string. - /// - public static IconSizeType ParseIconSizeType(string value) - { - IconSizeType parsedValue; - Control.TryParseIconSizeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a IconSizeType from a string. - /// - public static bool TryParseIconSizeType(string value, out IconSizeType parsedValue) - { - parsedValue = IconSizeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("16" == value)) - { - parsedValue = IconSizeType.Item16; - } - else - { - if (("32" == value)) - { - parsedValue = IconSizeType.Item32; - } - else - { - if (("48" == value)) - { - parsedValue = IconSizeType.Item48; - } - else - { - parsedValue = IconSizeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Control", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.typeFieldSet) - { - writer.WriteAttributeString("Type", this.typeField); - } - if (this.xFieldSet) - { - writer.WriteAttributeString("X", this.xField); - } - if (this.yFieldSet) - { - writer.WriteAttributeString("Y", this.yField); - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField); - } - if (this.heightFieldSet) - { - writer.WriteAttributeString("Height", this.heightField); - } - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - if (this.textFieldSet) - { - writer.WriteAttributeString("Text", this.textField); - } - if (this.helpFieldSet) - { - writer.WriteAttributeString("Help", this.helpField); - } - if (this.toolTipFieldSet) - { - writer.WriteAttributeString("ToolTip", this.toolTipField); - } - if (this.checkBoxValueFieldSet) - { - writer.WriteAttributeString("CheckBoxValue", this.checkBoxValueField); - } - if (this.checkBoxPropertyRefFieldSet) - { - writer.WriteAttributeString("CheckBoxPropertyRef", this.checkBoxPropertyRefField); - } - if (this.tabSkipFieldSet) - { - if ((this.tabSkipField == YesNoType.no)) - { - writer.WriteAttributeString("TabSkip", "no"); - } - if ((this.tabSkipField == YesNoType.yes)) - { - writer.WriteAttributeString("TabSkip", "yes"); - } - } - if (this.defaultFieldSet) - { - if ((this.defaultField == YesNoType.no)) - { - writer.WriteAttributeString("Default", "no"); - } - if ((this.defaultField == YesNoType.yes)) - { - writer.WriteAttributeString("Default", "yes"); - } - } - if (this.cancelFieldSet) - { - if ((this.cancelField == YesNoType.no)) - { - writer.WriteAttributeString("Cancel", "no"); - } - if ((this.cancelField == YesNoType.yes)) - { - writer.WriteAttributeString("Cancel", "yes"); - } - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.disabledFieldSet) - { - if ((this.disabledField == YesNoType.no)) - { - writer.WriteAttributeString("Disabled", "no"); - } - if ((this.disabledField == YesNoType.yes)) - { - writer.WriteAttributeString("Disabled", "yes"); - } - } - if (this.sunkenFieldSet) - { - if ((this.sunkenField == YesNoType.no)) - { - writer.WriteAttributeString("Sunken", "no"); - } - if ((this.sunkenField == YesNoType.yes)) - { - writer.WriteAttributeString("Sunken", "yes"); - } - } - if (this.indirectFieldSet) - { - if ((this.indirectField == YesNoType.no)) - { - writer.WriteAttributeString("Indirect", "no"); - } - if ((this.indirectField == YesNoType.yes)) - { - writer.WriteAttributeString("Indirect", "yes"); - } - } - if (this.integerFieldSet) - { - if ((this.integerField == YesNoType.no)) - { - writer.WriteAttributeString("Integer", "no"); - } - if ((this.integerField == YesNoType.yes)) - { - writer.WriteAttributeString("Integer", "yes"); - } - } - if (this.rightToLeftFieldSet) - { - if ((this.rightToLeftField == YesNoType.no)) - { - writer.WriteAttributeString("RightToLeft", "no"); - } - if ((this.rightToLeftField == YesNoType.yes)) - { - writer.WriteAttributeString("RightToLeft", "yes"); - } - } - if (this.rightAlignedFieldSet) - { - if ((this.rightAlignedField == YesNoType.no)) - { - writer.WriteAttributeString("RightAligned", "no"); - } - if ((this.rightAlignedField == YesNoType.yes)) - { - writer.WriteAttributeString("RightAligned", "yes"); - } - } - if (this.leftScrollFieldSet) - { - if ((this.leftScrollField == YesNoType.no)) - { - writer.WriteAttributeString("LeftScroll", "no"); - } - if ((this.leftScrollField == YesNoType.yes)) - { - writer.WriteAttributeString("LeftScroll", "yes"); - } - } - if (this.transparentFieldSet) - { - if ((this.transparentField == YesNoType.no)) - { - writer.WriteAttributeString("Transparent", "no"); - } - if ((this.transparentField == YesNoType.yes)) - { - writer.WriteAttributeString("Transparent", "yes"); - } - } - if (this.noPrefixFieldSet) - { - if ((this.noPrefixField == YesNoType.no)) - { - writer.WriteAttributeString("NoPrefix", "no"); - } - if ((this.noPrefixField == YesNoType.yes)) - { - writer.WriteAttributeString("NoPrefix", "yes"); - } - } - if (this.noWrapFieldSet) - { - if ((this.noWrapField == YesNoType.no)) - { - writer.WriteAttributeString("NoWrap", "no"); - } - if ((this.noWrapField == YesNoType.yes)) - { - writer.WriteAttributeString("NoWrap", "yes"); - } - } - if (this.formatSizeFieldSet) - { - if ((this.formatSizeField == YesNoType.no)) - { - writer.WriteAttributeString("FormatSize", "no"); - } - if ((this.formatSizeField == YesNoType.yes)) - { - writer.WriteAttributeString("FormatSize", "yes"); - } - } - if (this.userLanguageFieldSet) - { - if ((this.userLanguageField == YesNoType.no)) - { - writer.WriteAttributeString("UserLanguage", "no"); - } - if ((this.userLanguageField == YesNoType.yes)) - { - writer.WriteAttributeString("UserLanguage", "yes"); - } - } - if (this.multilineFieldSet) - { - if ((this.multilineField == YesNoType.no)) - { - writer.WriteAttributeString("Multiline", "no"); - } - if ((this.multilineField == YesNoType.yes)) - { - writer.WriteAttributeString("Multiline", "yes"); - } - } - if (this.passwordFieldSet) - { - if ((this.passwordField == YesNoType.no)) - { - writer.WriteAttributeString("Password", "no"); - } - if ((this.passwordField == YesNoType.yes)) - { - writer.WriteAttributeString("Password", "yes"); - } - } - if (this.progressBlocksFieldSet) - { - if ((this.progressBlocksField == YesNoType.no)) - { - writer.WriteAttributeString("ProgressBlocks", "no"); - } - if ((this.progressBlocksField == YesNoType.yes)) - { - writer.WriteAttributeString("ProgressBlocks", "yes"); - } - } - if (this.removableFieldSet) - { - if ((this.removableField == YesNoType.no)) - { - writer.WriteAttributeString("Removable", "no"); - } - if ((this.removableField == YesNoType.yes)) - { - writer.WriteAttributeString("Removable", "yes"); - } - } - if (this.fixedFieldSet) - { - if ((this.fixedField == YesNoType.no)) - { - writer.WriteAttributeString("Fixed", "no"); - } - if ((this.fixedField == YesNoType.yes)) - { - writer.WriteAttributeString("Fixed", "yes"); - } - } - if (this.remoteFieldSet) - { - if ((this.remoteField == YesNoType.no)) - { - writer.WriteAttributeString("Remote", "no"); - } - if ((this.remoteField == YesNoType.yes)) - { - writer.WriteAttributeString("Remote", "yes"); - } - } - if (this.cDROMFieldSet) - { - if ((this.cDROMField == YesNoType.no)) - { - writer.WriteAttributeString("CDROM", "no"); - } - if ((this.cDROMField == YesNoType.yes)) - { - writer.WriteAttributeString("CDROM", "yes"); - } - } - if (this.rAMDiskFieldSet) - { - if ((this.rAMDiskField == YesNoType.no)) - { - writer.WriteAttributeString("RAMDisk", "no"); - } - if ((this.rAMDiskField == YesNoType.yes)) - { - writer.WriteAttributeString("RAMDisk", "yes"); - } - } - if (this.floppyFieldSet) - { - if ((this.floppyField == YesNoType.no)) - { - writer.WriteAttributeString("Floppy", "no"); - } - if ((this.floppyField == YesNoType.yes)) - { - writer.WriteAttributeString("Floppy", "yes"); - } - } - if (this.showRollbackCostFieldSet) - { - if ((this.showRollbackCostField == YesNoType.no)) - { - writer.WriteAttributeString("ShowRollbackCost", "no"); - } - if ((this.showRollbackCostField == YesNoType.yes)) - { - writer.WriteAttributeString("ShowRollbackCost", "yes"); - } - } - if (this.sortedFieldSet) - { - if ((this.sortedField == YesNoType.no)) - { - writer.WriteAttributeString("Sorted", "no"); - } - if ((this.sortedField == YesNoType.yes)) - { - writer.WriteAttributeString("Sorted", "yes"); - } - } - if (this.comboListFieldSet) - { - if ((this.comboListField == YesNoType.no)) - { - writer.WriteAttributeString("ComboList", "no"); - } - if ((this.comboListField == YesNoType.yes)) - { - writer.WriteAttributeString("ComboList", "yes"); - } - } - if (this.imageFieldSet) - { - if ((this.imageField == YesNoType.no)) - { - writer.WriteAttributeString("Image", "no"); - } - if ((this.imageField == YesNoType.yes)) - { - writer.WriteAttributeString("Image", "yes"); - } - } - if (this.iconSizeFieldSet) - { - if ((this.iconSizeField == IconSizeType.Item16)) - { - writer.WriteAttributeString("IconSize", "16"); - } - if ((this.iconSizeField == IconSizeType.Item32)) - { - writer.WriteAttributeString("IconSize", "32"); - } - if ((this.iconSizeField == IconSizeType.Item48)) - { - writer.WriteAttributeString("IconSize", "48"); - } - } - if (this.fixedSizeFieldSet) - { - if ((this.fixedSizeField == YesNoType.no)) - { - writer.WriteAttributeString("FixedSize", "no"); - } - if ((this.fixedSizeField == YesNoType.yes)) - { - writer.WriteAttributeString("FixedSize", "yes"); - } - } - if (this.iconFieldSet) - { - if ((this.iconField == YesNoType.no)) - { - writer.WriteAttributeString("Icon", "no"); - } - if ((this.iconField == YesNoType.yes)) - { - writer.WriteAttributeString("Icon", "yes"); - } - } - if (this.bitmapFieldSet) - { - if ((this.bitmapField == YesNoType.no)) - { - writer.WriteAttributeString("Bitmap", "no"); - } - if ((this.bitmapField == YesNoType.yes)) - { - writer.WriteAttributeString("Bitmap", "yes"); - } - } - if (this.pushLikeFieldSet) - { - if ((this.pushLikeField == YesNoType.no)) - { - writer.WriteAttributeString("PushLike", "no"); - } - if ((this.pushLikeField == YesNoType.yes)) - { - writer.WriteAttributeString("PushLike", "yes"); - } - } - if (this.hasBorderFieldSet) - { - if ((this.hasBorderField == YesNoType.no)) - { - writer.WriteAttributeString("HasBorder", "no"); - } - if ((this.hasBorderField == YesNoType.yes)) - { - writer.WriteAttributeString("HasBorder", "yes"); - } - } - if (this.elevationShieldFieldSet) - { - if ((this.elevationShieldField == YesNoType.no)) - { - writer.WriteAttributeString("ElevationShield", "no"); - } - if ((this.elevationShieldField == YesNoType.yes)) - { - writer.WriteAttributeString("ElevationShield", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = value; - this.typeFieldSet = true; - } - if (("X" == name)) - { - this.xField = value; - this.xFieldSet = true; - } - if (("Y" == name)) - { - this.yField = value; - this.yFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = value; - this.widthFieldSet = true; - } - if (("Height" == name)) - { - this.heightField = value; - this.heightFieldSet = true; - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - if (("Text" == name)) - { - this.textField = value; - this.textFieldSet = true; - } - if (("Help" == name)) - { - this.helpField = value; - this.helpFieldSet = true; - } - if (("ToolTip" == name)) - { - this.toolTipField = value; - this.toolTipFieldSet = true; - } - if (("CheckBoxValue" == name)) - { - this.checkBoxValueField = value; - this.checkBoxValueFieldSet = true; - } - if (("CheckBoxPropertyRef" == name)) - { - this.checkBoxPropertyRefField = value; - this.checkBoxPropertyRefFieldSet = true; - } - if (("TabSkip" == name)) - { - this.tabSkipField = Enums.ParseYesNoType(value); - this.tabSkipFieldSet = true; - } - if (("Default" == name)) - { - this.defaultField = Enums.ParseYesNoType(value); - this.defaultFieldSet = true; - } - if (("Cancel" == name)) - { - this.cancelField = Enums.ParseYesNoType(value); - this.cancelFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Disabled" == name)) - { - this.disabledField = Enums.ParseYesNoType(value); - this.disabledFieldSet = true; - } - if (("Sunken" == name)) - { - this.sunkenField = Enums.ParseYesNoType(value); - this.sunkenFieldSet = true; - } - if (("Indirect" == name)) - { - this.indirectField = Enums.ParseYesNoType(value); - this.indirectFieldSet = true; - } - if (("Integer" == name)) - { - this.integerField = Enums.ParseYesNoType(value); - this.integerFieldSet = true; - } - if (("RightToLeft" == name)) - { - this.rightToLeftField = Enums.ParseYesNoType(value); - this.rightToLeftFieldSet = true; - } - if (("RightAligned" == name)) - { - this.rightAlignedField = Enums.ParseYesNoType(value); - this.rightAlignedFieldSet = true; - } - if (("LeftScroll" == name)) - { - this.leftScrollField = Enums.ParseYesNoType(value); - this.leftScrollFieldSet = true; - } - if (("Transparent" == name)) - { - this.transparentField = Enums.ParseYesNoType(value); - this.transparentFieldSet = true; - } - if (("NoPrefix" == name)) - { - this.noPrefixField = Enums.ParseYesNoType(value); - this.noPrefixFieldSet = true; - } - if (("NoWrap" == name)) - { - this.noWrapField = Enums.ParseYesNoType(value); - this.noWrapFieldSet = true; - } - if (("FormatSize" == name)) - { - this.formatSizeField = Enums.ParseYesNoType(value); - this.formatSizeFieldSet = true; - } - if (("UserLanguage" == name)) - { - this.userLanguageField = Enums.ParseYesNoType(value); - this.userLanguageFieldSet = true; - } - if (("Multiline" == name)) - { - this.multilineField = Enums.ParseYesNoType(value); - this.multilineFieldSet = true; - } - if (("Password" == name)) - { - this.passwordField = Enums.ParseYesNoType(value); - this.passwordFieldSet = true; - } - if (("ProgressBlocks" == name)) - { - this.progressBlocksField = Enums.ParseYesNoType(value); - this.progressBlocksFieldSet = true; - } - if (("Removable" == name)) - { - this.removableField = Enums.ParseYesNoType(value); - this.removableFieldSet = true; - } - if (("Fixed" == name)) - { - this.fixedField = Enums.ParseYesNoType(value); - this.fixedFieldSet = true; - } - if (("Remote" == name)) - { - this.remoteField = Enums.ParseYesNoType(value); - this.remoteFieldSet = true; - } - if (("CDROM" == name)) - { - this.cDROMField = Enums.ParseYesNoType(value); - this.cDROMFieldSet = true; - } - if (("RAMDisk" == name)) - { - this.rAMDiskField = Enums.ParseYesNoType(value); - this.rAMDiskFieldSet = true; - } - if (("Floppy" == name)) - { - this.floppyField = Enums.ParseYesNoType(value); - this.floppyFieldSet = true; - } - if (("ShowRollbackCost" == name)) - { - this.showRollbackCostField = Enums.ParseYesNoType(value); - this.showRollbackCostFieldSet = true; - } - if (("Sorted" == name)) - { - this.sortedField = Enums.ParseYesNoType(value); - this.sortedFieldSet = true; - } - if (("ComboList" == name)) - { - this.comboListField = Enums.ParseYesNoType(value); - this.comboListFieldSet = true; - } - if (("Image" == name)) - { - this.imageField = Enums.ParseYesNoType(value); - this.imageFieldSet = true; - } - if (("IconSize" == name)) - { - this.iconSizeField = Control.ParseIconSizeType(value); - this.iconSizeFieldSet = true; - } - if (("FixedSize" == name)) - { - this.fixedSizeField = Enums.ParseYesNoType(value); - this.fixedSizeFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = Enums.ParseYesNoType(value); - this.iconFieldSet = true; - } - if (("Bitmap" == name)) - { - this.bitmapField = Enums.ParseYesNoType(value); - this.bitmapFieldSet = true; - } - if (("PushLike" == name)) - { - this.pushLikeField = Enums.ParseYesNoType(value); - this.pushLikeFieldSet = true; - } - if (("HasBorder" == name)) - { - this.hasBorderField = Enums.ParseYesNoType(value); - this.hasBorderFieldSet = true; - } - if (("ElevationShield" == name)) - { - this.elevationShieldField = Enums.ParseYesNoType(value); - this.elevationShieldFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum IconSizeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - Item16, - - Item32, - - Item48, - } - } - - /// - /// Billboard to display during install of a Feature - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Billboard : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private string featureField; - - private bool featureFieldSet; - - private ISchemaElement parentElement; - - public Billboard() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the Billboard. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Feature whose state determines if the Billboard is shown. - /// - public string Feature - { - get - { - return this.featureField; - } - set - { - this.featureFieldSet = true; - this.featureField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Control" == childName)) - { - childValue = new Control(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Billboard", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.featureFieldSet) - { - writer.WriteAttributeString("Feature", this.featureField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Feature" == name)) - { - this.featureField = value; - this.featureFieldSet = true; - } - } - } - - /// - /// Billboard action during which child Billboards are displayed - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class BillboardAction : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public BillboardAction() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Billboard))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Action name that determines when the Billboard should be shown. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Billboard" == childName)) - { - childValue = new Billboard(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("BillboardAction", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Defines a dialog box in the Dialog Table. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Dialog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private int xField; - - private bool xFieldSet; - - private int yField; - - private bool yFieldSet; - - private int widthField; - - private bool widthFieldSet; - - private int heightField; - - private bool heightFieldSet; - - private string titleField; - - private bool titleFieldSet; - - private YesNoType hiddenField; - - private bool hiddenFieldSet; - - private YesNoType modelessField; - - private bool modelessFieldSet; - - private YesNoType noMinimizeField; - - private bool noMinimizeFieldSet; - - private YesNoType systemModalField; - - private bool systemModalFieldSet; - - private YesNoType keepModelessField; - - private bool keepModelessFieldSet; - - private YesNoType trackDiskSpaceField; - - private bool trackDiskSpaceFieldSet; - - private YesNoType customPaletteField; - - private bool customPaletteFieldSet; - - private YesNoType rightToLeftField; - - private bool rightToLeftFieldSet; - - private YesNoType rightAlignedField; - - private bool rightAlignedFieldSet; - - private YesNoType leftScrollField; - - private bool leftScrollFieldSet; - - private YesNoType errorDialogField; - - private bool errorDialogFieldSet; - - private ISchemaElement parentElement; - - public Dialog() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Unique identifier for the dialog. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Horizontal placement of the dialog box as a percentage of screen width. The default value is 50. - /// - public int X - { - get - { - return this.xField; - } - set - { - this.xFieldSet = true; - this.xField = value; - } - } - - /// - /// Vertical placement of the dialog box as a percentage of screen height. The default value is 50. - /// - public int Y - { - get - { - return this.yField; - } - set - { - this.yFieldSet = true; - this.yField = value; - } - } - - /// - /// The width of the dialog box in dialog units. - /// - public int Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - /// - /// The height of the dialog box in dialog units. - /// - public int Height - { - get - { - return this.heightField; - } - set - { - this.heightFieldSet = true; - this.heightField = value; - } - } - - /// - /// The title of the dialog box. - /// - public string Title - { - get - { - return this.titleField; - } - set - { - this.titleFieldSet = true; - this.titleField = value; - } - } - - /// - /// Used to hide the dialog. - /// - public YesNoType Hidden - { - get - { - return this.hiddenField; - } - set - { - this.hiddenFieldSet = true; - this.hiddenField = value; - } - } - - /// - /// Used to set the dialog as modeless. - /// - public YesNoType Modeless - { - get - { - return this.modelessField; - } - set - { - this.modelessFieldSet = true; - this.modelessField = value; - } - } - - /// - /// Used to specify if the dialog can be minimized. - /// - public YesNoType NoMinimize - { - get - { - return this.noMinimizeField; - } - set - { - this.noMinimizeFieldSet = true; - this.noMinimizeField = value; - } - } - - /// - /// Used to set the dialog as system modal. - /// - public YesNoType SystemModal - { - get - { - return this.systemModalField; - } - set - { - this.systemModalFieldSet = true; - this.systemModalField = value; - } - } - - /// - /// Keep modeless dialogs alive when this dialog is created through DoAction. - /// - public YesNoType KeepModeless - { - get - { - return this.keepModelessField; - } - set - { - this.keepModelessFieldSet = true; - this.keepModelessField = value; - } - } - - /// - /// Have the dialog periodically call the installer to check if available disk space has changed. - /// - public YesNoType TrackDiskSpace - { - get - { - return this.trackDiskSpaceField; - } - set - { - this.trackDiskSpaceFieldSet = true; - this.trackDiskSpaceField = value; - } - } - - /// - /// Used to specify if pictures in the dialog box are rendered with a custom palette. - /// - public YesNoType CustomPalette - { - get - { - return this.customPaletteField; - } - set - { - this.customPaletteFieldSet = true; - this.customPaletteField = value; - } - } - - /// - /// Used to specify if the text in the dialog should be displayed in right to left reading order. - /// - public YesNoType RightToLeft - { - get - { - return this.rightToLeftField; - } - set - { - this.rightToLeftFieldSet = true; - this.rightToLeftField = value; - } - } - - /// - /// Align text on the right. - /// - public YesNoType RightAligned - { - get - { - return this.rightAlignedField; - } - set - { - this.rightAlignedFieldSet = true; - this.rightAlignedField = value; - } - } - - /// - /// Used to align the scroll bar on the left. - /// - public YesNoType LeftScroll - { - get - { - return this.leftScrollField; - } - set - { - this.leftScrollFieldSet = true; - this.leftScrollField = value; - } - } - - /// - /// Specifies this dialog as an error dialog. - /// - public YesNoType ErrorDialog - { - get - { - return this.errorDialogField; - } - set - { - this.errorDialogFieldSet = true; - this.errorDialogField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Control" == childName)) - { - childValue = new Control(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Dialog", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.xFieldSet) - { - writer.WriteAttributeString("X", this.xField.ToString(CultureInfo.InvariantCulture)); - } - if (this.yFieldSet) - { - writer.WriteAttributeString("Y", this.yField.ToString(CultureInfo.InvariantCulture)); - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); - } - if (this.heightFieldSet) - { - writer.WriteAttributeString("Height", this.heightField.ToString(CultureInfo.InvariantCulture)); - } - if (this.titleFieldSet) - { - writer.WriteAttributeString("Title", this.titleField); - } - if (this.hiddenFieldSet) - { - if ((this.hiddenField == YesNoType.no)) - { - writer.WriteAttributeString("Hidden", "no"); - } - if ((this.hiddenField == YesNoType.yes)) - { - writer.WriteAttributeString("Hidden", "yes"); - } - } - if (this.modelessFieldSet) - { - if ((this.modelessField == YesNoType.no)) - { - writer.WriteAttributeString("Modeless", "no"); - } - if ((this.modelessField == YesNoType.yes)) - { - writer.WriteAttributeString("Modeless", "yes"); - } - } - if (this.noMinimizeFieldSet) - { - if ((this.noMinimizeField == YesNoType.no)) - { - writer.WriteAttributeString("NoMinimize", "no"); - } - if ((this.noMinimizeField == YesNoType.yes)) - { - writer.WriteAttributeString("NoMinimize", "yes"); - } - } - if (this.systemModalFieldSet) - { - if ((this.systemModalField == YesNoType.no)) - { - writer.WriteAttributeString("SystemModal", "no"); - } - if ((this.systemModalField == YesNoType.yes)) - { - writer.WriteAttributeString("SystemModal", "yes"); - } - } - if (this.keepModelessFieldSet) - { - if ((this.keepModelessField == YesNoType.no)) - { - writer.WriteAttributeString("KeepModeless", "no"); - } - if ((this.keepModelessField == YesNoType.yes)) - { - writer.WriteAttributeString("KeepModeless", "yes"); - } - } - if (this.trackDiskSpaceFieldSet) - { - if ((this.trackDiskSpaceField == YesNoType.no)) - { - writer.WriteAttributeString("TrackDiskSpace", "no"); - } - if ((this.trackDiskSpaceField == YesNoType.yes)) - { - writer.WriteAttributeString("TrackDiskSpace", "yes"); - } - } - if (this.customPaletteFieldSet) - { - if ((this.customPaletteField == YesNoType.no)) - { - writer.WriteAttributeString("CustomPalette", "no"); - } - if ((this.customPaletteField == YesNoType.yes)) - { - writer.WriteAttributeString("CustomPalette", "yes"); - } - } - if (this.rightToLeftFieldSet) - { - if ((this.rightToLeftField == YesNoType.no)) - { - writer.WriteAttributeString("RightToLeft", "no"); - } - if ((this.rightToLeftField == YesNoType.yes)) - { - writer.WriteAttributeString("RightToLeft", "yes"); - } - } - if (this.rightAlignedFieldSet) - { - if ((this.rightAlignedField == YesNoType.no)) - { - writer.WriteAttributeString("RightAligned", "no"); - } - if ((this.rightAlignedField == YesNoType.yes)) - { - writer.WriteAttributeString("RightAligned", "yes"); - } - } - if (this.leftScrollFieldSet) - { - if ((this.leftScrollField == YesNoType.no)) - { - writer.WriteAttributeString("LeftScroll", "no"); - } - if ((this.leftScrollField == YesNoType.yes)) - { - writer.WriteAttributeString("LeftScroll", "yes"); - } - } - if (this.errorDialogFieldSet) - { - if ((this.errorDialogField == YesNoType.no)) - { - writer.WriteAttributeString("ErrorDialog", "no"); - } - if ((this.errorDialogField == YesNoType.yes)) - { - writer.WriteAttributeString("ErrorDialog", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("X" == name)) - { - this.xField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.xFieldSet = true; - } - if (("Y" == name)) - { - this.yField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.yFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.widthFieldSet = true; - } - if (("Height" == name)) - { - this.heightField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.heightFieldSet = true; - } - if (("Title" == name)) - { - this.titleField = value; - this.titleFieldSet = true; - } - if (("Hidden" == name)) - { - this.hiddenField = Enums.ParseYesNoType(value); - this.hiddenFieldSet = true; - } - if (("Modeless" == name)) - { - this.modelessField = Enums.ParseYesNoType(value); - this.modelessFieldSet = true; - } - if (("NoMinimize" == name)) - { - this.noMinimizeField = Enums.ParseYesNoType(value); - this.noMinimizeFieldSet = true; - } - if (("SystemModal" == name)) - { - this.systemModalField = Enums.ParseYesNoType(value); - this.systemModalFieldSet = true; - } - if (("KeepModeless" == name)) - { - this.keepModelessField = Enums.ParseYesNoType(value); - this.keepModelessFieldSet = true; - } - if (("TrackDiskSpace" == name)) - { - this.trackDiskSpaceField = Enums.ParseYesNoType(value); - this.trackDiskSpaceFieldSet = true; - } - if (("CustomPalette" == name)) - { - this.customPaletteField = Enums.ParseYesNoType(value); - this.customPaletteFieldSet = true; - } - if (("RightToLeft" == name)) - { - this.rightToLeftField = Enums.ParseYesNoType(value); - this.rightToLeftFieldSet = true; - } - if (("RightAligned" == name)) - { - this.rightAlignedField = Enums.ParseYesNoType(value); - this.rightAlignedFieldSet = true; - } - if (("LeftScroll" == name)) - { - this.leftScrollField = Enums.ParseYesNoType(value); - this.leftScrollFieldSet = true; - } - if (("ErrorDialog" == name)) - { - this.errorDialogField = Enums.ParseYesNoType(value); - this.errorDialogFieldSet = true; - } - } - } - - /// - /// Reference to a Dialog. This will cause the entire referenced section's contents - /// to be included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class DialogRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identifier of the Dialog to reference. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("DialogRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProgressText : ISchemaElement, ISetAttributes - { - - private string actionField; - - private bool actionFieldSet; - - private string templateField; - - private bool templateFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - public string Action - { - get - { - return this.actionField; - } - set - { - this.actionFieldSet = true; - this.actionField = value; - } - } - - /// - /// used to format ActionData messages from action processing - /// - public string Template - { - get - { - return this.templateField; - } - set - { - this.templateFieldSet = true; - this.templateField = value; - } - } - - /// - /// Element value is progress message text for action - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProgressText", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.actionFieldSet) - { - writer.WriteAttributeString("Action", this.actionField); - } - if (this.templateFieldSet) - { - writer.WriteAttributeString("Template", this.templateField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Action" == name)) - { - this.actionField = value; - this.actionFieldSet = true; - } - if (("Template" == name)) - { - this.templateField = value; - this.templateFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class TextStyle : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string faceNameField; - - private bool faceNameFieldSet; - - private string sizeField; - - private bool sizeFieldSet; - - private int redField; - - private bool redFieldSet; - - private int greenField; - - private bool greenFieldSet; - - private int blueField; - - private bool blueFieldSet; - - private YesNoType boldField; - - private bool boldFieldSet; - - private YesNoType italicField; - - private bool italicFieldSet; - - private YesNoType underlineField; - - private bool underlineFieldSet; - - private YesNoType strikeField; - - private bool strikeFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public string FaceName - { - get - { - return this.faceNameField; - } - set - { - this.faceNameFieldSet = true; - this.faceNameField = value; - } - } - - public string Size - { - get - { - return this.sizeField; - } - set - { - this.sizeFieldSet = true; - this.sizeField = value; - } - } - - /// - /// 0 to 255 - /// - public int Red - { - get - { - return this.redField; - } - set - { - this.redFieldSet = true; - this.redField = value; - } - } - - /// - /// 0 to 255 - /// - public int Green - { - get - { - return this.greenField; - } - set - { - this.greenFieldSet = true; - this.greenField = value; - } - } - - /// - /// 0 to 255 - /// - public int Blue - { - get - { - return this.blueField; - } - set - { - this.blueFieldSet = true; - this.blueField = value; - } - } - - public YesNoType Bold - { - get - { - return this.boldField; - } - set - { - this.boldFieldSet = true; - this.boldField = value; - } - } - - public YesNoType Italic - { - get - { - return this.italicField; - } - set - { - this.italicFieldSet = true; - this.italicField = value; - } - } - - public YesNoType Underline - { - get - { - return this.underlineField; - } - set - { - this.underlineFieldSet = true; - this.underlineField = value; - } - } - - public YesNoType Strike - { - get - { - return this.strikeField; - } - set - { - this.strikeFieldSet = true; - this.strikeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("TextStyle", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.faceNameFieldSet) - { - writer.WriteAttributeString("FaceName", this.faceNameField); - } - if (this.sizeFieldSet) - { - writer.WriteAttributeString("Size", this.sizeField); - } - if (this.redFieldSet) - { - writer.WriteAttributeString("Red", this.redField.ToString(CultureInfo.InvariantCulture)); - } - if (this.greenFieldSet) - { - writer.WriteAttributeString("Green", this.greenField.ToString(CultureInfo.InvariantCulture)); - } - if (this.blueFieldSet) - { - writer.WriteAttributeString("Blue", this.blueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.boldFieldSet) - { - if ((this.boldField == YesNoType.no)) - { - writer.WriteAttributeString("Bold", "no"); - } - if ((this.boldField == YesNoType.yes)) - { - writer.WriteAttributeString("Bold", "yes"); - } - } - if (this.italicFieldSet) - { - if ((this.italicField == YesNoType.no)) - { - writer.WriteAttributeString("Italic", "no"); - } - if ((this.italicField == YesNoType.yes)) - { - writer.WriteAttributeString("Italic", "yes"); - } - } - if (this.underlineFieldSet) - { - if ((this.underlineField == YesNoType.no)) - { - writer.WriteAttributeString("Underline", "no"); - } - if ((this.underlineField == YesNoType.yes)) - { - writer.WriteAttributeString("Underline", "yes"); - } - } - if (this.strikeFieldSet) - { - if ((this.strikeField == YesNoType.no)) - { - writer.WriteAttributeString("Strike", "no"); - } - if ((this.strikeField == YesNoType.yes)) - { - writer.WriteAttributeString("Strike", "yes"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("FaceName" == name)) - { - this.faceNameField = value; - this.faceNameFieldSet = true; - } - if (("Size" == name)) - { - this.sizeField = value; - this.sizeFieldSet = true; - } - if (("Red" == name)) - { - this.redField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.redFieldSet = true; - } - if (("Green" == name)) - { - this.greenField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.greenFieldSet = true; - } - if (("Blue" == name)) - { - this.blueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.blueFieldSet = true; - } - if (("Bold" == name)) - { - this.boldField = Enums.ParseYesNoType(value); - this.boldFieldSet = true; - } - if (("Italic" == name)) - { - this.italicField = Enums.ParseYesNoType(value); - this.italicFieldSet = true; - } - if (("Underline" == name)) - { - this.underlineField = Enums.ParseYesNoType(value); - this.underlineFieldSet = true; - } - if (("Strike" == name)) - { - this.strikeField = Enums.ParseYesNoType(value); - this.strikeFieldSet = true; - } - } - } - - /// - /// The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ListItem : ISchemaElement, ISetAttributes - { - - private string valueField; - - private bool valueFieldSet; - - private string textField; - - private bool textFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private ISchemaElement parentElement; - - /// - /// The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - /// - /// The localizable, visible text to be assigned to the item. - /// If not specified, this will default to the value of the Value attribute. - /// - public string Text - { - get - { - return this.textField; - } - set - { - this.textFieldSet = true; - this.textField = value; - } - } - - /// - /// The identifier of the Binary (not Icon) element containing the icon to associate with this item. - /// This value is only valid when nested under a ListView element. - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ListItem", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.textFieldSet) - { - writer.WriteAttributeString("Text", this.textField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Text" == name)) - { - this.textField = value; - this.textFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - } - } - - /// - /// Set of items for a particular ListBox control tied to an install Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ListBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public ListBox() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ListItem" == childName)) - { - childValue = new ListItem(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ListBox", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Set of items for a particular ComboBox control tied to an install Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ComboBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public ComboBox() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ListItem" == childName)) - { - childValue = new ListItem(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ComboBox", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Set of items for a particular ListView control tied to an install Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ListView : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public ListView() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("ListItem" == childName)) - { - childValue = new ListItem(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ListView", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RadioButton : ISchemaElement, ISetAttributes - { - - private string bitmapField; - - private bool bitmapFieldSet; - - private string heightField; - - private bool heightFieldSet; - - private string helpField; - - private bool helpFieldSet; - - private string iconField; - - private bool iconFieldSet; - - private string textField; - - private bool textFieldSet; - - private string toolTipField; - - private bool toolTipFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private string widthField; - - private bool widthFieldSet; - - private string xField; - - private bool xFieldSet; - - private string yField; - - private bool yFieldSet; - - private ISchemaElement parentElement; - - /// - /// This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference - /// to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text - /// attributes. - /// - public string Bitmap - { - get - { - return this.bitmapField; - } - set - { - this.bitmapFieldSet = true; - this.bitmapField = value; - } - } - - public string Height - { - get - { - return this.heightField; - } - set - { - this.heightFieldSet = true; - this.heightField = value; - } - } - - public string Help - { - get - { - return this.helpField; - } - set - { - this.helpFieldSet = true; - this.helpField = value; - } - } - - /// - /// This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference - /// to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text - /// attributes. - /// - public string Icon - { - get - { - return this.iconField; - } - set - { - this.iconFieldSet = true; - this.iconField = value; - } - } - - /// - /// Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes. - /// - public string Text - { - get - { - return this.textField; - } - set - { - this.textFieldSet = true; - this.textField = value; - } - } - - public string ToolTip - { - get - { - return this.toolTipField; - } - set - { - this.toolTipFieldSet = true; - this.toolTipField = value; - } - } - - /// - /// Value assigned to the associated control Property when this radio button is selected. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public string Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - public string X - { - get - { - return this.xField; - } - set - { - this.xFieldSet = true; - this.xField = value; - } - } - - public string Y - { - get - { - return this.yField; - } - set - { - this.yFieldSet = true; - this.yField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RadioButton", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.bitmapFieldSet) - { - writer.WriteAttributeString("Bitmap", this.bitmapField); - } - if (this.heightFieldSet) - { - writer.WriteAttributeString("Height", this.heightField); - } - if (this.helpFieldSet) - { - writer.WriteAttributeString("Help", this.helpField); - } - if (this.iconFieldSet) - { - writer.WriteAttributeString("Icon", this.iconField); - } - if (this.textFieldSet) - { - writer.WriteAttributeString("Text", this.textField); - } - if (this.toolTipFieldSet) - { - writer.WriteAttributeString("ToolTip", this.toolTipField); - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField); - } - if (this.xFieldSet) - { - writer.WriteAttributeString("X", this.xField); - } - if (this.yFieldSet) - { - writer.WriteAttributeString("Y", this.yField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Bitmap" == name)) - { - this.bitmapField = value; - this.bitmapFieldSet = true; - } - if (("Height" == name)) - { - this.heightField = value; - this.heightFieldSet = true; - } - if (("Help" == name)) - { - this.helpField = value; - this.helpFieldSet = true; - } - if (("Icon" == name)) - { - this.iconField = value; - this.iconFieldSet = true; - } - if (("Text" == name)) - { - this.textField = value; - this.textFieldSet = true; - } - if (("ToolTip" == name)) - { - this.toolTipField = value; - this.toolTipFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = value; - this.widthFieldSet = true; - } - if (("X" == name)) - { - this.xField = value; - this.xFieldSet = true; - } - if (("Y" == name)) - { - this.yField = value; - this.yFieldSet = true; - } - } - } - - /// - /// Set of radio buttons tied to the specified Property - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class RadioButtonGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public RadioButtonGroup() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButton))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Property tied to this group. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("RadioButton" == childName)) - { - childValue = new RadioButton(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("RadioButtonGroup", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Text associated with certain controls - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UIText : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Element value is text, may use CDATA if needed to escape XML delimiters - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UIText", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Reference to a UI element. This will force the entire referenced Fragment's contents - /// to be included in the installer database. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UIRef : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UIRef", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Enclosing element to compartmentalize UI specifications. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class UI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - public UI() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedUI))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Error))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgressText))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BillboardAction))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComboBox))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListBox))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListView))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RadioButtonGroup))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TextStyle))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIText))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Dialog))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DialogRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); - ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); - childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); - childCollection0.AddCollection(childCollection1); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("EmbeddedUI" == childName)) - { - childValue = new EmbeddedUI(); - } - if (("Error" == childName)) - { - childValue = new Error(); - } - if (("ProgressText" == childName)) - { - childValue = new ProgressText(); - } - if (("BillboardAction" == childName)) - { - childValue = new BillboardAction(); - } - if (("ComboBox" == childName)) - { - childValue = new ComboBox(); - } - if (("ListBox" == childName)) - { - childValue = new ListBox(); - } - if (("ListView" == childName)) - { - childValue = new ListView(); - } - if (("RadioButtonGroup" == childName)) - { - childValue = new RadioButtonGroup(); - } - if (("TextStyle" == childName)) - { - childValue = new TextStyle(); - } - if (("UIText" == childName)) - { - childValue = new UIText(); - } - if (("Dialog" == childName)) - { - childValue = new Dialog(); - } - if (("DialogRef" == childName)) - { - childValue = new DialogRef(); - } - if (("Publish" == childName)) - { - childValue = new Publish(); - } - if (("PropertyRef" == childName)) - { - childValue = new PropertyRef(); - } - if (("Property" == childName)) - { - childValue = new Property(); - } - if (("Binary" == childName)) - { - childValue = new Binary(); - } - if (("AdminUISequence" == childName)) - { - childValue = new AdminUISequence(); - } - if (("InstallUISequence" == childName)) - { - childValue = new InstallUISequence(); - } - if (("UIRef" == childName)) - { - childValue = new UIRef(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("UI", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// Defines a custom table for use from a custom action. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class CustomTable : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string idField; - - private bool idFieldSet; - - private YesNoType bootstrapperApplicationDataField; - - private bool bootstrapperApplicationDataFieldSet; - - private ISchemaElement parentElement; - - public CustomTable() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Column))); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Row))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// Identifier for the custom table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Indicates the table data is transformed into the bootstrapper application data manifest. - /// - public YesNoType BootstrapperApplicationData - { - get - { - return this.bootstrapperApplicationDataField; - } - set - { - this.bootstrapperApplicationDataFieldSet = true; - this.bootstrapperApplicationDataField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Column" == childName)) - { - childValue = new Column(); - } - if (("Row" == childName)) - { - childValue = new Row(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("CustomTable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.bootstrapperApplicationDataFieldSet) - { - if ((this.bootstrapperApplicationDataField == YesNoType.no)) - { - writer.WriteAttributeString("BootstrapperApplicationData", "no"); - } - if ((this.bootstrapperApplicationDataField == YesNoType.yes)) - { - writer.WriteAttributeString("BootstrapperApplicationData", "yes"); - } - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("BootstrapperApplicationData" == name)) - { - this.bootstrapperApplicationDataField = Enums.ParseYesNoType(value); - this.bootstrapperApplicationDataFieldSet = true; - } - } - } - - /// - /// Column definition for a Custom Table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Column : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType primaryKeyField; - - private bool primaryKeyFieldSet; - - private TypeType typeField; - - private bool typeFieldSet; - - private int widthField; - - private bool widthFieldSet; - - private YesNoType nullableField; - - private bool nullableFieldSet; - - private YesNoType localizableField; - - private bool localizableFieldSet; - - private long minValueField; - - private bool minValueFieldSet; - - private long maxValueField; - - private bool maxValueFieldSet; - - private string keyTableField; - - private bool keyTableFieldSet; - - private int keyColumnField; - - private bool keyColumnFieldSet; - - private CategoryType categoryField; - - private bool categoryFieldSet; - - private string setField; - - private bool setFieldSet; - - private string descriptionField; - - private bool descriptionFieldSet; - - private ModularizeType modularizeField; - - private bool modularizeFieldSet; - - private ISchemaElement parentElement; - - /// - /// Identifier for the column. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Whether this column is a primary key. - /// - public YesNoType PrimaryKey - { - get - { - return this.primaryKeyField; - } - set - { - this.primaryKeyFieldSet = true; - this.primaryKeyField = value; - } - } - - /// - /// The type of this column. - /// - public TypeType Type - { - get - { - return this.typeField; - } - set - { - this.typeFieldSet = true; - this.typeField = value; - } - } - - /// - /// Width of this column. - /// - public int Width - { - get - { - return this.widthField; - } - set - { - this.widthFieldSet = true; - this.widthField = value; - } - } - - /// - /// Whether this column can be left null. - /// - public YesNoType Nullable - { - get - { - return this.nullableField; - } - set - { - this.nullableFieldSet = true; - this.nullableField = value; - } - } - - /// - /// Whether this column can be localized. - /// - public YesNoType Localizable - { - get - { - return this.localizableField; - } - set - { - this.localizableFieldSet = true; - this.localizableField = value; - } - } - - /// - /// Minimum value for a numeric value, date or version in this column. - /// - public long MinValue - { - get - { - return this.minValueField; - } - set - { - this.minValueFieldSet = true; - this.minValueField = value; - } - } - - /// - /// Maximum value for a numeric value, date or version in this column. - /// - public long MaxValue - { - get - { - return this.maxValueField; - } - set - { - this.maxValueFieldSet = true; - this.maxValueField = value; - } - } - - /// - /// Table in which this column is an external key. Can be semicolon delimited. - /// - public string KeyTable - { - get - { - return this.keyTableField; - } - set - { - this.keyTableFieldSet = true; - this.keyTableField = value; - } - } - - /// - /// Column in the table in KeyTable attribute. - /// - public int KeyColumn - { - get - { - return this.keyColumnField; - } - set - { - this.keyColumnFieldSet = true; - this.keyColumnField = value; - } - } - - /// - /// Category of this column. - /// This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'. - /// - public CategoryType Category - { - get - { - return this.categoryField; - } - set - { - this.categoryFieldSet = true; - this.categoryField = value; - } - } - - /// - /// Semicolon delimited list of permissible values. - /// - public string Set - { - get - { - return this.setField; - } - set - { - this.setFieldSet = true; - this.setField = value; - } - } - - /// - /// Description of this column. - /// - public string Description - { - get - { - return this.descriptionField; - } - set - { - this.descriptionFieldSet = true; - this.descriptionField = value; - } - } - - /// - /// How this column should be modularized, if at all. - /// - public ModularizeType Modularize - { - get - { - return this.modularizeField; - } - set - { - this.modularizeFieldSet = true; - this.modularizeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a TypeType from a string. - /// - public static TypeType ParseTypeType(string value) - { - TypeType parsedValue; - Column.TryParseTypeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a TypeType from a string. - /// - public static bool TryParseTypeType(string value, out TypeType parsedValue) - { - parsedValue = TypeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("binary" == value)) - { - parsedValue = TypeType.binary; - } - else - { - if (("int" == value)) - { - parsedValue = TypeType.@int; - } - else - { - if (("string" == value)) - { - parsedValue = TypeType.@string; - } - else - { - parsedValue = TypeType.IllegalValue; - return false; - } - } - } - return true; - } - - /// - /// Parses a CategoryType from a string. - /// - public static CategoryType ParseCategoryType(string value) - { - CategoryType parsedValue; - Column.TryParseCategoryType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a CategoryType from a string. - /// - public static bool TryParseCategoryType(string value, out CategoryType parsedValue) - { - parsedValue = CategoryType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("Text" == value)) - { - parsedValue = CategoryType.text; - } - else - { - if (("UpperCase" == value)) - { - parsedValue = CategoryType.upperCase; - } - else - { - if (("LowerCase" == value)) - { - parsedValue = CategoryType.lowerCase; - } - else - { - if (("Integer" == value)) - { - parsedValue = CategoryType.integer; - } - else - { - if (("DoubleInteger" == value)) - { - parsedValue = CategoryType.doubleInteger; - } - else - { - if (("TimeDate" == value)) - { - parsedValue = CategoryType.timeDate; - } - else - { - if (("Identifier" == value)) - { - parsedValue = CategoryType.identifier; - } - else - { - if (("Property" == value)) - { - parsedValue = CategoryType.property; - } - else - { - if (("Filename" == value)) - { - parsedValue = CategoryType.filename; - } - else - { - if (("WildCardFilename" == value)) - { - parsedValue = CategoryType.wildCardFilename; - } - else - { - if (("Path" == value)) - { - parsedValue = CategoryType.path; - } - else - { - if (("Paths" == value)) - { - parsedValue = CategoryType.paths; - } - else - { - if (("AnyPath" == value)) - { - parsedValue = CategoryType.anyPath; - } - else - { - if (("DefaultDir" == value)) - { - parsedValue = CategoryType.defaultDir; - } - else - { - if (("RegPath" == value)) - { - parsedValue = CategoryType.regPath; - } - else - { - if (("Formatted" == value)) - { - parsedValue = CategoryType.formatted; - } - else - { - if (("FormattedSddl" == value)) - { - parsedValue = CategoryType.formattedSddl; - } - else - { - if (("Template" == value)) - { - parsedValue = CategoryType.template; - } - else - { - if (("Condition" == value)) - { - parsedValue = CategoryType.condition; - } - else - { - if (("Guid" == value)) - { - parsedValue = CategoryType.guid; - } - else - { - if (("Version" == value)) - { - parsedValue = CategoryType.version; - } - else - { - if (("Language" == value)) - { - parsedValue = CategoryType.language; - } - else - { - if (("Binary" == value)) - { - parsedValue = CategoryType.binary; - } - else - { - if (("CustomSource" == value)) - { - parsedValue = CategoryType.customSource; - } - else - { - if (("Cabinet" == value)) - { - parsedValue = CategoryType.cabinet; - } - else - { - if (("Shortcut" == value)) - { - parsedValue = CategoryType.shortcut; - } - else - { - parsedValue = CategoryType.IllegalValue; - return false; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return true; - } - - /// - /// Parses a ModularizeType from a string. - /// - public static ModularizeType ParseModularizeType(string value) - { - ModularizeType parsedValue; - Column.TryParseModularizeType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ModularizeType from a string. - /// - public static bool TryParseModularizeType(string value, out ModularizeType parsedValue) - { - parsedValue = ModularizeType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("None" == value)) - { - parsedValue = ModularizeType.None; - } - else - { - if (("Column" == value)) - { - parsedValue = ModularizeType.Column; - } - else - { - if (("Condition" == value)) - { - parsedValue = ModularizeType.Condition; - } - else - { - if (("Icon" == value)) - { - parsedValue = ModularizeType.Icon; - } - else - { - if (("Property" == value)) - { - parsedValue = ModularizeType.Property; - } - else - { - if (("SemicolonDelimited" == value)) - { - parsedValue = ModularizeType.SemicolonDelimited; - } - else - { - parsedValue = ModularizeType.IllegalValue; - return false; - } - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Column", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.primaryKeyFieldSet) - { - if ((this.primaryKeyField == YesNoType.no)) - { - writer.WriteAttributeString("PrimaryKey", "no"); - } - if ((this.primaryKeyField == YesNoType.yes)) - { - writer.WriteAttributeString("PrimaryKey", "yes"); - } - } - if (this.typeFieldSet) - { - if ((this.typeField == TypeType.binary)) - { - writer.WriteAttributeString("Type", "binary"); - } - if ((this.typeField == TypeType.@int)) - { - writer.WriteAttributeString("Type", "int"); - } - if ((this.typeField == TypeType.@string)) - { - writer.WriteAttributeString("Type", "string"); - } - } - if (this.widthFieldSet) - { - writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); - } - if (this.nullableFieldSet) - { - if ((this.nullableField == YesNoType.no)) - { - writer.WriteAttributeString("Nullable", "no"); - } - if ((this.nullableField == YesNoType.yes)) - { - writer.WriteAttributeString("Nullable", "yes"); - } - } - if (this.localizableFieldSet) - { - if ((this.localizableField == YesNoType.no)) - { - writer.WriteAttributeString("Localizable", "no"); - } - if ((this.localizableField == YesNoType.yes)) - { - writer.WriteAttributeString("Localizable", "yes"); - } - } - if (this.minValueFieldSet) - { - writer.WriteAttributeString("MinValue", this.minValueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.maxValueFieldSet) - { - writer.WriteAttributeString("MaxValue", this.maxValueField.ToString(CultureInfo.InvariantCulture)); - } - if (this.keyTableFieldSet) - { - writer.WriteAttributeString("KeyTable", this.keyTableField); - } - if (this.keyColumnFieldSet) - { - writer.WriteAttributeString("KeyColumn", this.keyColumnField.ToString(CultureInfo.InvariantCulture)); - } - if (this.categoryFieldSet) - { - if ((this.categoryField == CategoryType.text)) - { - writer.WriteAttributeString("Category", "text"); - } - if ((this.categoryField == CategoryType.upperCase)) - { - writer.WriteAttributeString("Category", "upperCase"); - } - if ((this.categoryField == CategoryType.lowerCase)) - { - writer.WriteAttributeString("Category", "lowerCase"); - } - if ((this.categoryField == CategoryType.integer)) - { - writer.WriteAttributeString("Category", "integer"); - } - if ((this.categoryField == CategoryType.doubleInteger)) - { - writer.WriteAttributeString("Category", "doubleInteger"); - } - if ((this.categoryField == CategoryType.timeDate)) - { - writer.WriteAttributeString("Category", "timeDate"); - } - if ((this.categoryField == CategoryType.identifier)) - { - writer.WriteAttributeString("Category", "identifier"); - } - if ((this.categoryField == CategoryType.property)) - { - writer.WriteAttributeString("Category", "property"); - } - if ((this.categoryField == CategoryType.filename)) - { - writer.WriteAttributeString("Category", "filename"); - } - if ((this.categoryField == CategoryType.wildCardFilename)) - { - writer.WriteAttributeString("Category", "wildCardFilename"); - } - if ((this.categoryField == CategoryType.path)) - { - writer.WriteAttributeString("Category", "path"); - } - if ((this.categoryField == CategoryType.paths)) - { - writer.WriteAttributeString("Category", "paths"); - } - if ((this.categoryField == CategoryType.anyPath)) - { - writer.WriteAttributeString("Category", "anyPath"); - } - if ((this.categoryField == CategoryType.defaultDir)) - { - writer.WriteAttributeString("Category", "defaultDir"); - } - if ((this.categoryField == CategoryType.regPath)) - { - writer.WriteAttributeString("Category", "regPath"); - } - if ((this.categoryField == CategoryType.formatted)) - { - writer.WriteAttributeString("Category", "formatted"); - } - if ((this.categoryField == CategoryType.formattedSddl)) - { - writer.WriteAttributeString("Category", "formattedSddl"); - } - if ((this.categoryField == CategoryType.template)) - { - writer.WriteAttributeString("Category", "template"); - } - if ((this.categoryField == CategoryType.condition)) - { - writer.WriteAttributeString("Category", "condition"); - } - if ((this.categoryField == CategoryType.guid)) - { - writer.WriteAttributeString("Category", "guid"); - } - if ((this.categoryField == CategoryType.version)) - { - writer.WriteAttributeString("Category", "version"); - } - if ((this.categoryField == CategoryType.language)) - { - writer.WriteAttributeString("Category", "language"); - } - if ((this.categoryField == CategoryType.binary)) - { - writer.WriteAttributeString("Category", "Binary"); - } - if ((this.categoryField == CategoryType.customSource)) - { - writer.WriteAttributeString("Category", "customSource"); - } - if ((this.categoryField == CategoryType.cabinet)) - { - writer.WriteAttributeString("Category", "cabinet"); - } - if ((this.categoryField == CategoryType.shortcut)) - { - writer.WriteAttributeString("Category", "shortcut"); - } - } - if (this.setFieldSet) - { - writer.WriteAttributeString("Set", this.setField); - } - if (this.descriptionFieldSet) - { - writer.WriteAttributeString("Description", this.descriptionField); - } - if (this.modularizeFieldSet) - { - if ((this.modularizeField == ModularizeType.None)) - { - writer.WriteAttributeString("Modularize", "None"); - } - if ((this.modularizeField == ModularizeType.Column)) - { - writer.WriteAttributeString("Modularize", "Column"); - } - if ((this.modularizeField == ModularizeType.Condition)) - { - writer.WriteAttributeString("Modularize", "Condition"); - } - if ((this.modularizeField == ModularizeType.Icon)) - { - writer.WriteAttributeString("Modularize", "Icon"); - } - if ((this.modularizeField == ModularizeType.Property)) - { - writer.WriteAttributeString("Modularize", "Property"); - } - if ((this.modularizeField == ModularizeType.SemicolonDelimited)) - { - writer.WriteAttributeString("Modularize", "SemicolonDelimited"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("PrimaryKey" == name)) - { - this.primaryKeyField = Enums.ParseYesNoType(value); - this.primaryKeyFieldSet = true; - } - if (("Type" == name)) - { - this.typeField = Column.ParseTypeType(value); - this.typeFieldSet = true; - } - if (("Width" == name)) - { - this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.widthFieldSet = true; - } - if (("Nullable" == name)) - { - this.nullableField = Enums.ParseYesNoType(value); - this.nullableFieldSet = true; - } - if (("Localizable" == name)) - { - this.localizableField = Enums.ParseYesNoType(value); - this.localizableFieldSet = true; - } - if (("MinValue" == name)) - { - this.minValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.minValueFieldSet = true; - } - if (("MaxValue" == name)) - { - this.maxValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.maxValueFieldSet = true; - } - if (("KeyTable" == name)) - { - this.keyTableField = value; - this.keyTableFieldSet = true; - } - if (("KeyColumn" == name)) - { - this.keyColumnField = Convert.ToInt32(value, CultureInfo.InvariantCulture); - this.keyColumnFieldSet = true; - } - if (("Category" == name)) - { - this.categoryField = Column.ParseCategoryType(value); - this.categoryFieldSet = true; - } - if (("Set" == name)) - { - this.setField = value; - this.setFieldSet = true; - } - if (("Description" == name)) - { - this.descriptionField = value; - this.descriptionFieldSet = true; - } - if (("Modularize" == name)) - { - this.modularizeField = Column.ParseModularizeType(value); - this.modularizeFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum TypeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Column contains a path to a file that will be inserted into the column as a binary object. - /// If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation. - /// - binary, - - /// - /// Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set). - /// - @int, - - /// - /// Column contains a non-localizable string value. - /// - @string, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum CategoryType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - text, - - upperCase, - - lowerCase, - - integer, - - doubleInteger, - - timeDate, - - identifier, - - property, - - filename, - - wildCardFilename, - - path, - - paths, - - anyPath, - - defaultDir, - - regPath, - - formatted, - - formattedSddl, - - template, - - condition, - - guid, - - version, - - language, - - binary, - - customSource, - - cabinet, - - shortcut, - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ModularizeType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// Column should not be modularized. This is the default value. - /// - None, - - /// - /// Column should be modularized. - /// - Column, - - /// - /// Column is a condition and should be modularized. - /// - Condition, - - /// - /// When the column is an primary or foreign key to the Icon table it should be modularized special. - /// - Icon, - - /// - /// Any Properties in the column should be modularized. - /// - Property, - - /// - /// Semi-colon list of keys, all of which need to be modularized. - /// - SemicolonDelimited, - } - } - - /// - /// Row data for a Custom Table - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Row : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private ISchemaElement parentElement; - - public Row() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Data))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Data" == childName)) - { - childValue = new Data(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Row", "http://wixtoolset.org/schemas/v4/wxs"); - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - } - } - - /// - /// Used for a Custom Table. Specifies the data for the parent Row and specified Column. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Data : ISchemaElement, ISetAttributes - { - - private string columnField; - - private bool columnFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies in which column to insert this data. - /// - public string Column - { - get - { - return this.columnField; - } - set - { - this.columnFieldSet = true; - this.columnField = value; - } - } - - /// - /// A data value - /// - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Data", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.columnFieldSet) - { - writer.WriteAttributeString("Column", this.columnField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Column" == name)) - { - this.columnField = value; - this.columnFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } - - /// - /// Use this element to ensure that a table appears in the installer database, even if its empty. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class EnsureTable : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the table. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("EnsureTable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - } - } - - /// - /// This element exposes advanced WiX functionality. Use this element to declare WiX variables - /// from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp - /// file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot - /// be used when an MSI file is being installed; it's a WiX-only concept. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class WixVariable : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private YesNoType overridableField; - - private bool overridableFieldSet; - - private string valueField; - - private bool valueFieldSet; - - private ISchemaElement parentElement; - - /// - /// The name of the variable. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// Set this value to 'yes' in order to make the variable's value overridable either by - /// another WixVariable entry or via the command-line option -d<name>=<value> - /// for light.exe. If the same variable is declared overridable in multiple places it - /// will cause an error (since WiX won't know which value is correct). The default value - /// is 'no'. - /// - public YesNoType Overridable - { - get - { - return this.overridableField; - } - set - { - this.overridableFieldSet = true; - this.overridableField = value; - } - } - - /// - /// The value of the variable. The value cannot be an empty string because that would - /// make it possible to accidentally set a column to null. - /// - public string Value - { - get - { - return this.valueField; - } - set - { - this.valueFieldSet = true; - this.valueField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("WixVariable", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.overridableFieldSet) - { - if ((this.overridableField == YesNoType.no)) - { - writer.WriteAttributeString("Overridable", "no"); - } - if ((this.overridableField == YesNoType.yes)) - { - writer.WriteAttributeString("Overridable", "yes"); - } - } - if (this.valueFieldSet) - { - writer.WriteAttributeString("Value", this.valueField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("Overridable" == name)) - { - this.overridableField = Enums.ParseYesNoType(value); - this.overridableFieldSet = true; - } - if (("Value" == name)) - { - this.valueField = value; - this.valueFieldSet = true; - } - } - } - - /// - /// Use this element to contain definitions for instance transforms. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class InstanceTransforms : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes - { - - private ElementCollection children; - - private string propertyField; - - private bool propertyFieldSet; - - private ISchemaElement parentElement; - - public InstanceTransforms() - { - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); - childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Instance))); - this.children = childCollection0; - } - - public virtual IEnumerable Children - { - get - { - return this.children; - } - } - - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] - public virtual IEnumerable this[System.Type childType] - { - get - { - return this.children.Filter(childType); - } - } - - /// - /// The Id of the Property who's value should change for each instance. - /// - public string Property - { - get - { - return this.propertyField; - } - set - { - this.propertyFieldSet = true; - this.propertyField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - public virtual void AddChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.AddElement(child); - child.ParentElement = this; - } - - public virtual void RemoveChild(ISchemaElement child) - { - if ((null == child)) - { - throw new ArgumentNullException("child"); - } - this.children.RemoveElement(child); - child.ParentElement = null; - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - ISchemaElement ICreateChildren.CreateChild(string childName) - { - if (String.IsNullOrEmpty(childName)) - { - throw new ArgumentNullException("childName"); - } - ISchemaElement childValue = null; - if (("Instance" == childName)) - { - childValue = new Instance(); - } - if ((null == childValue)) - { - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); - } - return childValue; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("InstanceTransforms", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.propertyFieldSet) - { - writer.WriteAttributeString("Property", this.propertyField); - } - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) - { - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); - childElement.OutputXml(writer); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Property" == name)) - { - this.propertyField = value; - this.propertyFieldSet = true; - } - } - } - - /// - /// Defines an instance transform for your product. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class Instance : ISchemaElement, ISetAttributes - { - - private string idField; - - private bool idFieldSet; - - private string productCodeField; - - private bool productCodeFieldSet; - - private string productNameField; - - private bool productNameFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private ISchemaElement parentElement; - - /// - /// The identity of the instance transform. This value will define the name by which the instance - /// should be referred to on the command line. In addition, the value of the this attribute will - /// determine what the value of the property specified in Property attribute on InstanceTransforms - /// will change to for each instance. - /// - public string Id - { - get - { - return this.idField; - } - set - { - this.idFieldSet = true; - this.idField = value; - } - } - - /// - /// The ProductCode for this instance. - /// - public string ProductCode - { - get - { - return this.productCodeField; - } - set - { - this.productCodeFieldSet = true; - this.productCodeField = value; - } - } - - /// - /// The ProductName for this instance. - /// - public string ProductName - { - get - { - return this.productNameField; - } - set - { - this.productNameFieldSet = true; - this.productNameField = value; - } - } - - /// - /// The UpgradeCode for this instance. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("Instance", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.idFieldSet) - { - writer.WriteAttributeString("Id", this.idField); - } - if (this.productCodeFieldSet) - { - writer.WriteAttributeString("ProductCode", this.productCodeField); - } - if (this.productNameFieldSet) - { - writer.WriteAttributeString("ProductName", this.productNameField); - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Id" == name)) - { - this.idField = value; - this.idFieldSet = true; - } - if (("ProductCode" == name)) - { - this.productCodeField = value; - this.productCodeFieldSet = true; - } - if (("ProductName" == name)) - { - this.productNameField = value; - this.productNameFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - } - } - - /// - /// Simplifies authoring for major upgrades, including support for preventing downgrades. - /// - /// The parent Product element must have valid UpgradeCode and Version attributes. - /// - /// When the FindRelatedProducts action detects a related product installed on the system, - /// it appends the product code to the property named WIX_UPGRADE_DETECTED. After the - /// FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a - /// list of product codes, separated by semicolons (;), detected on the system. - /// - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class MajorUpgrade : ISchemaElement, ISetAttributes - { - - private YesNoType allowDowngradesField; - - private bool allowDowngradesFieldSet; - - private YesNoType allowSameVersionUpgradesField; - - private bool allowSameVersionUpgradesFieldSet; - - private YesNoType disallowField; - - private bool disallowFieldSet; - - private string downgradeErrorMessageField; - - private bool downgradeErrorMessageFieldSet; - - private string disallowUpgradeErrorMessageField; - - private bool disallowUpgradeErrorMessageFieldSet; - - private YesNoType migrateFeaturesField; - - private bool migrateFeaturesFieldSet; - - private YesNoType ignoreLanguageField; - - private bool ignoreLanguageFieldSet; - - private YesNoType ignoreRemoveFailureField; - - private bool ignoreRemoveFailureFieldSet; - - private string removeFeaturesField; - - private bool removeFeaturesFieldSet; - - private ScheduleType scheduleField; - - private bool scheduleFieldSet; - - private ISchemaElement parentElement; - - /// - /// When set to no (the default), products with lower version numbers are blocked from - /// installing when a product with a higher version is installed; the DowngradeErrorMessage - /// attribute must also be specified. - /// - /// When set to yes, any version can be installed over any other version. - /// - public YesNoType AllowDowngrades - { - get - { - return this.allowDowngradesField; - } - set - { - this.allowDowngradesFieldSet = true; - this.allowDowngradesField = value; - } - } - - /// - /// When set to no (the default), installing a product with the same version and upgrade code - /// (but different product code) is allowed and treated by MSI as two products. When set to yes, - /// WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat - /// a product with the same version as a major upgrade. - /// - /// This is useful when two product versions differ only in the fourth version field. MSI - /// specifically ignores that field when comparing product versions, so two products that - /// differ only in the fourth version field are the same product and need this attribute set to - /// yes to be detected. - /// - /// Note that because MSI ignores the fourth product version field, setting this attribute to - /// yes also allows downgrades when the first three product version fields are identical. - /// For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the - /// same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change - /// the first three version fields and omit this attribute to get the default of no. - /// - /// This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades - /// already allows two products with the same version number to upgrade each other. - /// - public YesNoType AllowSameVersionUpgrades - { - get - { - return this.allowSameVersionUpgradesField; - } - set - { - this.allowSameVersionUpgradesFieldSet = true; - this.allowSameVersionUpgradesField = value; - } - } - - /// - /// When set to yes, products with higer version numbers are blocked from - /// installing when a product with a lower version is installed; the UpgradeErrorMessage - /// attribute must also be specified. - /// - /// When set to no (the default), any version can be installed over any lower version. - /// - public YesNoType Disallow - { - get - { - return this.disallowField; - } - set - { - this.disallowFieldSet = true; - this.disallowField = value; - } - } - - /// - /// The message displayed if users try to install a product with a lower version number - /// when a product with a higher version is installed. Used only when AllowDowngrades - /// is no (the default). - /// - public string DowngradeErrorMessage - { - get - { - return this.downgradeErrorMessageField; - } - set - { - this.downgradeErrorMessageFieldSet = true; - this.downgradeErrorMessageField = value; - } - } - - /// - /// The message displayed if users try to install a product with a higer version number - /// when a product with a lower version is installed. Used only when Disallow - /// is yes. - /// - public string DisallowUpgradeErrorMessage - { - get - { - return this.disallowUpgradeErrorMessageField; - } - set - { - this.disallowUpgradeErrorMessageFieldSet = true; - this.disallowUpgradeErrorMessageField = value; - } - } - - /// - /// When set to yes (the default), the MigrateFeatureStates standard action will set the - /// feature states of the upgrade product to those of the installed product. - /// - /// When set to no, the installed features have no effect on the upgrade installation. - /// - public YesNoType MigrateFeatures - { - get - { - return this.migrateFeaturesField; - } - set - { - this.migrateFeaturesFieldSet = true; - this.migrateFeaturesField = value; - } - } - - /// - /// When set to yes, the Upgrade table rows will match any product with the same UpgradeCode. - /// - /// When set to no (the default), the Upgrade table rows will match only products with the - /// same UpgradeCode and ProductLanguage. - /// - public YesNoType IgnoreLanguage - { - get - { - return this.ignoreLanguageField; - } - set - { - this.ignoreLanguageFieldSet = true; - this.ignoreLanguageField = value; - } - } - - /// - /// When set to yes, failures removing the installed product during the upgrade will be - /// ignored. - /// - /// When set to no (the default), failures removing the installed product during the upgrade - /// will be considered a failure and, depending on the scheduling, roll back the upgrade. - /// - public YesNoType IgnoreRemoveFailure - { - get - { - return this.ignoreRemoveFailureField; - } - set - { - this.ignoreRemoveFailureFieldSet = true; - this.ignoreRemoveFailureField = value; - } - } - - /// - /// A formatted string that contains the list of features to remove from the installed - /// product. The default is to remove all features. Note that if you use formatted property - /// values that evaluate to an empty string, no features will be removed; only omitting - /// this attribute defaults to removing all features. - /// - public string RemoveFeatures - { - get - { - return this.removeFeaturesField; - } - set - { - this.removeFeaturesFieldSet = true; - this.removeFeaturesField = value; - } - } - - /// - /// Determines the scheduling of the RemoveExistingProducts standard action, which is when - /// the installed product is removed. The default is "afterInstallValidate" which removes - /// the installed product entirely before installing the upgrade product. It's slowest but - /// gives the most flexibility in changing components and features in the upgrade product. - /// - /// For more information, see - /// - public ScheduleType Schedule - { - get - { - return this.scheduleField; - } - set - { - this.scheduleFieldSet = true; - this.scheduleField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Parses a ScheduleType from a string. - /// - public static ScheduleType ParseScheduleType(string value) - { - ScheduleType parsedValue; - MajorUpgrade.TryParseScheduleType(value, out parsedValue); - return parsedValue; - } - - /// - /// Tries to parse a ScheduleType from a string. - /// - public static bool TryParseScheduleType(string value, out ScheduleType parsedValue) - { - parsedValue = ScheduleType.NotSet; - if (string.IsNullOrEmpty(value)) - { - return false; - } - if (("afterInstallValidate" == value)) - { - parsedValue = ScheduleType.afterInstallValidate; - } - else - { - if (("afterInstallInitialize" == value)) - { - parsedValue = ScheduleType.afterInstallInitialize; - } - else - { - if (("afterInstallExecute" == value)) - { - parsedValue = ScheduleType.afterInstallExecute; - } - else - { - if (("afterInstallExecuteAgain" == value)) - { - parsedValue = ScheduleType.afterInstallExecuteAgain; - } - else - { - if (("afterInstallFinalize" == value)) - { - parsedValue = ScheduleType.afterInstallFinalize; - } - else - { - parsedValue = ScheduleType.IllegalValue; - return false; - } - } - } - } - } - return true; - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("MajorUpgrade", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.allowDowngradesFieldSet) - { - if ((this.allowDowngradesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowDowngrades", "no"); - } - if ((this.allowDowngradesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowDowngrades", "yes"); - } - } - if (this.allowSameVersionUpgradesFieldSet) - { - if ((this.allowSameVersionUpgradesField == YesNoType.no)) - { - writer.WriteAttributeString("AllowSameVersionUpgrades", "no"); - } - if ((this.allowSameVersionUpgradesField == YesNoType.yes)) - { - writer.WriteAttributeString("AllowSameVersionUpgrades", "yes"); - } - } - if (this.disallowFieldSet) - { - if ((this.disallowField == YesNoType.no)) - { - writer.WriteAttributeString("Disallow", "no"); - } - if ((this.disallowField == YesNoType.yes)) - { - writer.WriteAttributeString("Disallow", "yes"); - } - } - if (this.downgradeErrorMessageFieldSet) - { - writer.WriteAttributeString("DowngradeErrorMessage", this.downgradeErrorMessageField); - } - if (this.disallowUpgradeErrorMessageFieldSet) - { - writer.WriteAttributeString("DisallowUpgradeErrorMessage", this.disallowUpgradeErrorMessageField); - } - if (this.migrateFeaturesFieldSet) - { - if ((this.migrateFeaturesField == YesNoType.no)) - { - writer.WriteAttributeString("MigrateFeatures", "no"); - } - if ((this.migrateFeaturesField == YesNoType.yes)) - { - writer.WriteAttributeString("MigrateFeatures", "yes"); - } - } - if (this.ignoreLanguageFieldSet) - { - if ((this.ignoreLanguageField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreLanguage", "no"); - } - if ((this.ignoreLanguageField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreLanguage", "yes"); - } - } - if (this.ignoreRemoveFailureFieldSet) - { - if ((this.ignoreRemoveFailureField == YesNoType.no)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "no"); - } - if ((this.ignoreRemoveFailureField == YesNoType.yes)) - { - writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); - } - } - if (this.removeFeaturesFieldSet) - { - writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); - } - if (this.scheduleFieldSet) - { - if ((this.scheduleField == ScheduleType.afterInstallValidate)) - { - writer.WriteAttributeString("Schedule", "afterInstallValidate"); - } - if ((this.scheduleField == ScheduleType.afterInstallInitialize)) - { - writer.WriteAttributeString("Schedule", "afterInstallInitialize"); - } - if ((this.scheduleField == ScheduleType.afterInstallExecute)) - { - writer.WriteAttributeString("Schedule", "afterInstallExecute"); - } - if ((this.scheduleField == ScheduleType.afterInstallExecuteAgain)) - { - writer.WriteAttributeString("Schedule", "afterInstallExecuteAgain"); - } - if ((this.scheduleField == ScheduleType.afterInstallFinalize)) - { - writer.WriteAttributeString("Schedule", "afterInstallFinalize"); - } - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("AllowDowngrades" == name)) - { - this.allowDowngradesField = Enums.ParseYesNoType(value); - this.allowDowngradesFieldSet = true; - } - if (("AllowSameVersionUpgrades" == name)) - { - this.allowSameVersionUpgradesField = Enums.ParseYesNoType(value); - this.allowSameVersionUpgradesFieldSet = true; - } - if (("Disallow" == name)) - { - this.disallowField = Enums.ParseYesNoType(value); - this.disallowFieldSet = true; - } - if (("DowngradeErrorMessage" == name)) - { - this.downgradeErrorMessageField = value; - this.downgradeErrorMessageFieldSet = true; - } - if (("DisallowUpgradeErrorMessage" == name)) - { - this.disallowUpgradeErrorMessageField = value; - this.disallowUpgradeErrorMessageFieldSet = true; - } - if (("MigrateFeatures" == name)) - { - this.migrateFeaturesField = Enums.ParseYesNoType(value); - this.migrateFeaturesFieldSet = true; - } - if (("IgnoreLanguage" == name)) - { - this.ignoreLanguageField = Enums.ParseYesNoType(value); - this.ignoreLanguageFieldSet = true; - } - if (("IgnoreRemoveFailure" == name)) - { - this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); - this.ignoreRemoveFailureFieldSet = true; - } - if (("RemoveFeatures" == name)) - { - this.removeFeaturesField = value; - this.removeFeaturesFieldSet = true; - } - if (("Schedule" == name)) - { - this.scheduleField = MajorUpgrade.ParseScheduleType(value); - this.scheduleFieldSet = true; - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public enum ScheduleType - { - - IllegalValue = int.MaxValue, - - NotSet = -1, - - /// - /// (Default) Schedules RemoveExistingProducts after the InstallValidate standard - /// action. This scheduling removes the installed product entirely before installing - /// the upgrade product. It's slowest but gives the most flexibility in changing - /// components and features in the upgrade product. Note that if the installation - /// of the upgrade product fails, the machine will have neither version installed. - /// - afterInstallValidate, - - /// - /// Schedules RemoveExistingProducts after the InstallInitialize standard action. - /// This is similar to the afterInstallValidate scheduling, but if the installation - /// of the upgrade product fails, Windows Installer also rolls back the removal of - /// the installed product -- in other words, reinstalls it. - /// - afterInstallInitialize, - - /// - /// Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions. - /// This scheduling installs the upgrade product "on top of" the installed product then lets - /// RemoveExistingProducts uninstall any components that don't also exist in the upgrade product. - /// Note that this scheduling requires strict adherence to the component rules because it relies - /// on component reference counts to be accurate during installation of the upgrade product and - /// removal of the installed product. For more information, see - /// - afterInstallExecute, - - /// - /// Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions. - /// This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard - /// action instead of InstallExecute. - /// - afterInstallExecuteAgain, - - /// - /// Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the - /// afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the - /// installation transaction so if installation of the upgrade product fails, Windows Installer does - /// not roll back the removal of the installed product, so the machine will have both versions - /// installed. - /// - afterInstallFinalize, - } - } - - [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] - public class ProductSearch : ISchemaElement, ISetAttributes - { - - private string minimumField; - - private bool minimumFieldSet; - - private string maximumField; - - private bool maximumFieldSet; - - private string languageField; - - private bool languageFieldSet; - - private YesNoType includeMinimumField; - - private bool includeMinimumFieldSet; - - private YesNoType includeMaximumField; - - private bool includeMaximumFieldSet; - - private YesNoType excludeLanguagesField; - - private bool excludeLanguagesFieldSet; - - private string upgradeCodeField; - - private bool upgradeCodeFieldSet; - - private string contentField; - - private bool contentFieldSet; - - private ISchemaElement parentElement; - - /// - /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. - /// - public string Minimum - { - get - { - return this.minimumField; - } - set - { - this.minimumFieldSet = true; - this.minimumField = value; - } - } - - /// - /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. - /// - public string Maximum - { - get - { - return this.maximumField; - } - set - { - this.maximumFieldSet = true; - this.maximumField = value; - } - } - - /// - /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. - /// - public string Language - { - get - { - return this.languageField; - } - set - { - this.languageFieldSet = true; - this.languageField = value; - } - } - - /// - /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. - /// - public YesNoType IncludeMinimum - { - get - { - return this.includeMinimumField; - } - set - { - this.includeMinimumFieldSet = true; - this.includeMinimumField = value; - } - } - - /// - /// Set to "yes" to make the range of versions detected include the value specified in Maximum. - /// - public YesNoType IncludeMaximum - { - get - { - return this.includeMaximumField; - } - set - { - this.includeMaximumFieldSet = true; - this.includeMaximumField = value; - } - } - - /// - /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. - /// - public YesNoType ExcludeLanguages - { - get - { - return this.excludeLanguagesField; - } - set - { - this.excludeLanguagesFieldSet = true; - this.excludeLanguagesField = value; - } - } - - /// - /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. - /// - public string UpgradeCode - { - get - { - return this.upgradeCodeField; - } - set - { - this.upgradeCodeFieldSet = true; - this.upgradeCodeField = value; - } - } - - public string Content - { - get - { - return this.contentField; - } - set - { - this.contentFieldSet = true; - this.contentField = value; - } - } - - public virtual ISchemaElement ParentElement - { - get - { - return this.parentElement; - } - set - { - this.parentElement = value; - } - } - - /// - /// Processes this element and all child elements into an XmlWriter. - /// - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual void OutputXml(XmlWriter writer) - { - if ((null == writer)) - { - throw new ArgumentNullException("writer"); - } - writer.WriteStartElement("ProductSearch", "http://wixtoolset.org/schemas/v4/wxs"); - if (this.minimumFieldSet) - { - writer.WriteAttributeString("Minimum", this.minimumField); - } - if (this.maximumFieldSet) - { - writer.WriteAttributeString("Maximum", this.maximumField); - } - if (this.languageFieldSet) - { - writer.WriteAttributeString("Language", this.languageField); - } - if (this.includeMinimumFieldSet) - { - if ((this.includeMinimumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMinimum", "no"); - } - if ((this.includeMinimumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMinimum", "yes"); - } - } - if (this.includeMaximumFieldSet) - { - if ((this.includeMaximumField == YesNoType.no)) - { - writer.WriteAttributeString("IncludeMaximum", "no"); - } - if ((this.includeMaximumField == YesNoType.yes)) - { - writer.WriteAttributeString("IncludeMaximum", "yes"); - } - } - if (this.excludeLanguagesFieldSet) - { - if ((this.excludeLanguagesField == YesNoType.no)) - { - writer.WriteAttributeString("ExcludeLanguages", "no"); - } - if ((this.excludeLanguagesField == YesNoType.yes)) - { - writer.WriteAttributeString("ExcludeLanguages", "yes"); - } - } - if (this.upgradeCodeFieldSet) - { - writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); - } - if (this.contentFieldSet) - { - writer.WriteString(this.contentField); - } - writer.WriteEndElement(); - } - - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - void ISetAttributes.SetAttribute(string name, string value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (("Minimum" == name)) - { - this.minimumField = value; - this.minimumFieldSet = true; - } - if (("Maximum" == name)) - { - this.maximumField = value; - this.maximumFieldSet = true; - } - if (("Language" == name)) - { - this.languageField = value; - this.languageFieldSet = true; - } - if (("IncludeMinimum" == name)) - { - this.includeMinimumField = Enums.ParseYesNoType(value); - this.includeMinimumFieldSet = true; - } - if (("IncludeMaximum" == name)) - { - this.includeMaximumField = Enums.ParseYesNoType(value); - this.includeMaximumFieldSet = true; - } - if (("ExcludeLanguages" == name)) - { - this.excludeLanguagesField = Enums.ParseYesNoType(value); - this.excludeLanguagesFieldSet = true; - } - if (("UpgradeCode" == name)) - { - this.upgradeCodeField = value; - this.upgradeCodeFieldSet = true; - } - if (("Content" == name)) - { - this.contentField = value; - this.contentFieldSet = true; - } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Row.cs b/src/WixToolset.Data/WindowsInstaller/Row.cs index 8c847c5b..f44082d3 100644 --- a/src/WixToolset.Data/WindowsInstaller/Row.cs +++ b/src/WixToolset.Data/WindowsInstaller/Row.cs @@ -195,6 +195,13 @@ namespace WixToolset.Data.WindowsInstaller return foundPrimaryKey ? primaryKey.ToString() : null; } + /// + /// Returns true if the specified field is null. + /// + /// Index of the field to check. + /// true if the specified field is null, false otherwise. + public bool IsColumnNull(int field) => this.Fields[field].Data == null; + /// /// Returns true if the specified field is null or an empty string. /// @@ -202,7 +209,7 @@ namespace WixToolset.Data.WindowsInstaller /// true if the specified field is null or an empty string, false otherwise. public bool IsColumnEmpty(int field) { - if (null == this.Fields[field].Data) + if (this.IsColumnNull(field)) { return true; } -- cgit v1.2.3-55-g6feb From 8e9567e153c0a9cdc87a50ad42fa87b07041bf83 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 26 Aug 2020 16:11:54 -0400 Subject: Clean up unused strings. --- src/WixToolset.Data/WixDataStrings.Designer.cs | 115 +++---------------------- src/WixToolset.Data/WixDataStrings.resx | 33 ------- src/WixToolset.Data/WixToolset.Data.csproj | 15 ++++ 3 files changed, 27 insertions(+), 136 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WixDataStrings.Designer.cs b/src/WixToolset.Data/WixDataStrings.Designer.cs index 23555d3c..de26156a 100644 --- a/src/WixToolset.Data/WixDataStrings.Designer.cs +++ b/src/WixToolset.Data/WixDataStrings.Designer.cs @@ -1,4 +1,12 @@ -// 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. +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ namespace WixToolset.Data { using System; @@ -11,7 +19,7 @@ namespace WixToolset.Data { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class WixDataStrings { @@ -28,7 +36,7 @@ namespace WixToolset.Data { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WixToolset.Data.WixDataStrings", typeof(WixDataStrings).Assembly); @@ -43,7 +51,7 @@ namespace WixToolset.Data { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -61,96 +69,6 @@ namespace WixToolset.Data { } } - /// - /// Looks up a localized string similar to A Merge table FileCompression column cannot be set to the invalid value '{0}'.. - /// - public static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue { - get { - return ResourceManager.GetString("EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Collection has {0} elements. Must have at least one.. - /// - internal static string EXP_CollectionMustHaveAtLeastOneElement { - get { - return ResourceManager.GetString("EXP_CollectionMustHaveAtLeastOneElement", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Element must be a subclass of {0}, but was of type {1}.. - /// - internal static string EXP_ElementIsSubclassOfDifferentType { - get { - return ResourceManager.GetString("EXP_ElementIsSubclassOfDifferentType", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Element of type {0} found in enumerator. Must be ChoiceItem or SequenceItem.. - /// - internal static string EXP_ElementMustBeChoiceItemOrSequenceItem { - get { - return ResourceManager.GetString("EXP_ElementMustBeChoiceItemOrSequenceItem", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Element of type {0} is not valid for this collection.. - /// - internal static string EXP_ElementOfTypeIsNotValidForThisCollection { - get { - return ResourceManager.GetString("EXP_ElementOfTypeIsNotValidForThisCollection", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ISchemaElement with name {0} does not implement ICreateChildren.. - /// - internal static string EXP_ISchemaElementDoesnotImplementICreateChildren { - get { - return ResourceManager.GetString("EXP_ISchemaElementDoesnotImplementICreateChildren", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ISchemaElement with name {0} does not implement ISetAttributes.. - /// - internal static string EXP_ISchemaElementDoesnotImplementISetAttribute { - get { - return ResourceManager.GetString("EXP_ISchemaElementDoesnotImplementISetAttribute", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to A Merge table FileCompression column contains an invalid value '{0}'.. - /// - public static string EXP_MergeTableFileCompressionColumnContainsInvalidValue { - get { - return ResourceManager.GetString("EXP_MergeTableFileCompressionColumnContainsInvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Multiple root elements found in file.. - /// - internal static string EXP_MultipleRootElementsFoundInFile { - get { - return ResourceManager.GetString("EXP_MultipleRootElementsFoundInFile", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Type {0} is not valid for this collection.. - /// - internal static string EXP_TypeIsNotValidForThisCollection { - get { - return ResourceManager.GetString("EXP_TypeIsNotValidForThisCollection", resourceCulture); - } - } - /// /// Looks up a localized string similar to Unknown column type: {0}. /// @@ -168,14 +86,5 @@ namespace WixToolset.Data { return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture); } } - - /// - /// Looks up a localized string similar to XmlElement with name {0} does not have a corresponding ISchemaElement.. - /// - internal static string EXP_XmlElementDoesnotHaveISchemaElement { - get { - return ResourceManager.GetString("EXP_XmlElementDoesnotHaveISchemaElement", resourceCulture); - } - } } } diff --git a/src/WixToolset.Data/WixDataStrings.resx b/src/WixToolset.Data/WixDataStrings.resx index 19cdc3c7..999f5057 100644 --- a/src/WixToolset.Data/WixDataStrings.resx +++ b/src/WixToolset.Data/WixDataStrings.resx @@ -120,43 +120,10 @@ The table {0} is not supported. - - A Merge table FileCompression column contains an invalid value '{0}'. - - - A Merge table FileCompression column cannot be set to the invalid value '{0}'. - The value '{0}' is not a legal identifier and therefore cannot be modularized. Unknown column type: {0} - - Multiple root elements found in file. - - - ISchemaElement with name {0} does not implement ICreateChildren. - - - ISchemaElement with name {0} does not implement ISetAttributes. - - - XmlElement with name {0} does not have a corresponding ISchemaElement. - - - Collection has {0} elements. Must have at least one. - - - Element must be a subclass of {0}, but was of type {1}. - - - Element of type {0} is not valid for this collection. - - - Type {0} is not valid for this collection. - - - Element of type {0} found in enumerator. Must be ChoiceItem or SequenceItem. - \ No newline at end of file diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 9f57e2e7..598803fe 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -20,4 +20,19 @@ + + + + True + True + WixDataStrings.resx + + + + + + PublicResXFileCodeGenerator + WixDataStrings.Designer.cs + + -- cgit v1.2.3-55-g6feb From b2675d4bb998fe580342aabab086955b647dbe97 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 1 Sep 2020 20:27:43 -0400 Subject: Fix typo. --- src/WixToolset.Data/Symbols/IniFileSymbol.cs | 4 ++-- src/WixToolset.Data/Symbols/InifFileActionSymbol.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/IniFileSymbol.cs b/src/WixToolset.Data/Symbols/IniFileSymbol.cs index f1e0c104..051acdbb 100644 --- a/src/WixToolset.Data/Symbols/IniFileSymbol.cs +++ b/src/WixToolset.Data/Symbols/IniFileSymbol.cs @@ -85,9 +85,9 @@ namespace WixToolset.Data.Symbols set => this.Set((int)IniFileSymbolFields.Value, value); } - public InifFileActionType Action + public IniFileActionType Action { - get => (InifFileActionType)this.Fields[(int)IniFileSymbolFields.Action]?.AsNumber(); + get => (IniFileActionType)this.Fields[(int)IniFileSymbolFields.Action]?.AsNumber(); set => this.Set((int)IniFileSymbolFields.Action, (int)value); } diff --git a/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs b/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs index 8b642323..a04567ec 100644 --- a/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs +++ b/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs @@ -2,7 +2,7 @@ namespace WixToolset.Data.Symbols { - public enum InifFileActionType + public enum IniFileActionType { AddLine, AddTag, -- cgit v1.2.3-55-g6feb From ff976bcda3a0fb9632e353800025a7d87f31ee16 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sat, 19 Sep 2020 21:15:28 -0400 Subject: Remove 32-bit ARM support. --- src/WixToolset.Data/ErrorMessages.cs | 7 +------ src/WixToolset.Data/Platform.cs | 6 ------ src/WixToolset.Data/WarningMessages.cs | 2 +- src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs | 6 +++--- 4 files changed, 5 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index e36cc55c..32757deb 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -1324,14 +1324,9 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.InvalidModuleOrBundleVersion, "Invalid {0}/@Version '{1}'. {0} version has a max value of \"65535.65535.65535.65535\" and must be all numeric.", moduleOrBundle, version); } - public static Message InvalidPlatformParameter(string name, string value) - { - return Message(null, Ids.InvalidPlatformParameter, "The parameter '{0}' is missing or has an invalid value {1}. Possible values are x86, x64, or ia64.", name, value); - } - public static Message InvalidPlatformValue(SourceLineNumber sourceLineNumbers, string value) { - return Message(sourceLineNumbers, Ids.InvalidPlatformValue, "The Platform attribute has an invalid value {0}. Possible values are x86, x64, or ia64.", value); + return Message(sourceLineNumbers, Ids.InvalidPlatformValue, "The Platform attribute has an invalid value {0}. Possible values are x86, x64, or arm64.", value); } public static Message InvalidPreprocessorFunction(SourceLineNumber sourceLineNumbers, string variable) diff --git a/src/WixToolset.Data/Platform.cs b/src/WixToolset.Data/Platform.cs index 193a0e05..f939ac55 100644 --- a/src/WixToolset.Data/Platform.cs +++ b/src/WixToolset.Data/Platform.cs @@ -13,12 +13,6 @@ namespace WixToolset.Data /// x64. X64, - /// ia64. - IA64, - - /// arm. - ARM, - /// arm64. ARM64, } diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 258b61f7..438dc8f3 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -504,7 +504,7 @@ namespace WixToolset.Data public static Message RequiresMsi500forArmPackage(SourceLineNumber sourceLineNumbers) { - return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an ARM or ARM64 package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning."); + return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an ARM64 package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning."); } public static Message ReservedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 74790915..7d539af1 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -433,13 +433,13 @@ namespace WixToolset.Data.WindowsInstaller switch (directoryId) { case "CommonFiles6432Folder": - return platform == Platform.X86 || platform == Platform.ARM ? "CommonFilesFolder" : "CommonFiles64Folder"; + return platform == Platform.X86 ? "CommonFilesFolder" : "CommonFiles64Folder"; case "ProgramFiles6432Folder": - return platform == Platform.X86 || platform == Platform.ARM ? "ProgramFilesFolder" : "ProgramFiles64Folder"; + return platform == Platform.X86 ? "ProgramFilesFolder" : "ProgramFiles64Folder"; case "System6432Folder": - return platform == Platform.X86 || platform == Platform.ARM ? "SystemFolder" : "System64Folder"; + return platform == Platform.X86 ? "SystemFolder" : "System64Folder"; default: return directoryId; -- cgit v1.2.3-55-g6feb From 7605d23ec7ce4899aef9851b9e72002ac47d9007 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 30 Sep 2020 18:52:30 -0400 Subject: Add error message for cases where inner text used to be used. --- src/WixToolset.Data/ErrorMessages.cs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 32757deb..61bc72af 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -2284,6 +2284,11 @@ namespace WixToolset.Data return Message(null, Ids.UnknownSymbolType, "Could not deserialize symbol of type type '{0}' because it is not a standard symbol type or one provided by a loaded extension.", symbolName); } + public static Message IllegalInnerText(SourceLineNumber sourceLineNumbers, string elementName, string innerText) + { + return Message(sourceLineNumbers, Ids.IllegalInnerText, "The {0} element contains illegal inner text: '{1}'.", elementName, innerText); + } + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) { return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); @@ -2686,6 +2691,7 @@ namespace WixToolset.Data MissingBundleSearch = 397, CircularSearchReference = 398, UnknownSymbolType = 399, + IllegalInnerText = 400, } } } -- cgit v1.2.3-55-g6feb From 94b9e961d988c67e0d95925049ae245cc4a2b269 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 28 Oct 2020 18:22:27 -0400 Subject: Strong-name sign WiX assemblies. --- src/CSharp.Build.props | 11 +++++++++++ src/Directory.Build.props | 5 ++++- src/wix.snk | Bin 0 -> 596 bytes 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/CSharp.Build.props create mode 100644 src/wix.snk (limited to 'src') diff --git a/src/CSharp.Build.props b/src/CSharp.Build.props new file mode 100644 index 00000000..b12f4c6e --- /dev/null +++ b/src/CSharp.Build.props @@ -0,0 +1,11 @@ + + + + + true + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk)) + + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index e853e22d..f83cc154 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -8,6 +8,7 @@ Debug false + MSB3246 $(MSBuildProjectName) $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\)) @@ -21,6 +22,8 @@ WiX Toolset - + + + diff --git a/src/wix.snk b/src/wix.snk new file mode 100644 index 00000000..3908a66a Binary files /dev/null and b/src/wix.snk differ -- cgit v1.2.3-55-g6feb From 3523c9d809b86737a18a6c43845cbd894c5e1a97 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 2 Dec 2020 12:09:29 -0600 Subject: Add warning for MSI transactions. --- src/WixToolset.Data/WarningMessages.cs | 6 ++++++ src/WixToolset.Data/WixToolset.Data.csproj | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 438dc8f3..2deaeb7d 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -397,6 +397,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.MissingUpgradeCode, "The Product/@UpgradeCode attribute was not found; it is strongly recommended to ensure that this product can be upgraded."); } + public static Message MsiTransactionLimitations(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MsiTransactionLimitations, "MSI transactions have limitations that make it hard to use them successfully in a bundle. Test the bundle thoroughly, especially in upgrade scenarios and the scenario that required them in the first place."); + } + public static Message NestedInstall(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) { return Message(sourceLineNumbers, Ids.NestedInstall, "The {0}.{1} column's value, '{2}', indicates a nested install. Nested installations are not supported by the WiX team. This action will be left out of the decompiled output.", tableName, columnName, value); @@ -780,6 +785,7 @@ namespace WixToolset.Data VersionTruncated = 1148, ServiceConfigFamilyNotSupported = 1149, SymbolNotTranslatedToOutput = 1150, + MsiTransactionLimitations = 1151, } } } diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 598803fe..19310aea 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -18,7 +18,7 @@ - + -- cgit v1.2.3-55-g6feb From 551b856f775a4d91ffe65b74c668662dd986c85c Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 7 Dec 2020 20:40:51 -0600 Subject: Create WixBootstrapperApplicationDllSymbol. --- src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 4 ++ .../Symbols/WixBootstrapperApplicationDllSymbol.cs | 53 ++++++++++++++++++++++ .../Symbols/WixBootstrapperApplicationSymbol.cs | 17 ------- 3 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index ea90ef7b..771d1ec8 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -116,6 +116,7 @@ namespace WixToolset.Data WixApprovedExeForElevation, WixBindUpdatedFiles, WixBootstrapperApplication, + WixBootstrapperApplicationDll, WixBuildInfo, WixBundle, WixBundleCatalog, @@ -533,6 +534,9 @@ namespace WixToolset.Data case SymbolDefinitionType.WixBootstrapperApplication: return SymbolDefinitions.WixBootstrapperApplication; + case SymbolDefinitionType.WixBootstrapperApplicationDll: + return SymbolDefinitions.WixBootstrapperApplicationDll; + case SymbolDefinitionType.WixBuildInfo: return SymbolDefinitions.WixBuildInfo; diff --git a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs new file mode 100644 index 00000000..d3a66754 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs @@ -0,0 +1,53 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBootstrapperApplicationDll = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBootstrapperApplicationDll, + new IntermediateFieldDefinition[] + { + new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationDllSymbolFields.DpiAwareness), IntermediateFieldType.Number), + }, + typeof(WixBootstrapperApplicationDllSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBootstrapperApplicationDllSymbolFields + { + DpiAwareness, + } + + public enum WixBootstrapperApplicationDpiAwarenessType + { + Unaware, + System, + PerMonitor, + PerMonitorV2, + GdiScaled, + } + + public class WixBootstrapperApplicationDllSymbol : IntermediateSymbol + { + public WixBootstrapperApplicationDllSymbol() : base(SymbolDefinitions.WixBootstrapperApplicationDll, null, null) + { + } + + public WixBootstrapperApplicationDllSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplicationDll, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBootstrapperApplicationDllSymbolFields index] => this.Fields[(int)index]; + + public WixBootstrapperApplicationDpiAwarenessType DpiAwareness + { + get => (WixBootstrapperApplicationDpiAwarenessType)this.Fields[(int)WixBootstrapperApplicationDllSymbolFields.DpiAwareness].AsNumber(); + set => this.Set((int)WixBootstrapperApplicationDllSymbolFields.DpiAwareness, (int)value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs index d49e9503..3d7876fd 100644 --- a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs @@ -10,7 +10,6 @@ namespace WixToolset.Data SymbolDefinitionType.WixBootstrapperApplication, new IntermediateFieldDefinition[] { - new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationSymbolFields.DpiAwareness), IntermediateFieldType.Number), }, typeof(WixBootstrapperApplicationSymbol)); } @@ -20,16 +19,6 @@ namespace WixToolset.Data.Symbols { public enum WixBootstrapperApplicationSymbolFields { - DpiAwareness, - } - - public enum WixBootstrapperApplicationDpiAwarenessType - { - Unaware, - System, - PerMonitor, - PerMonitorV2, - GdiScaled, } public class WixBootstrapperApplicationSymbol : IntermediateSymbol @@ -43,11 +32,5 @@ namespace WixToolset.Data.Symbols } public IntermediateField this[WixBootstrapperApplicationSymbolFields index] => this.Fields[(int)index]; - - public WixBootstrapperApplicationDpiAwarenessType DpiAwareness - { - get => (WixBootstrapperApplicationDpiAwarenessType)this.Fields[(int)WixBootstrapperApplicationSymbolFields.DpiAwareness].AsNumber(); - set => this.Set((int)WixBootstrapperApplicationSymbolFields.DpiAwareness, (int)value); - } } } -- cgit v1.2.3-55-g6feb From 9e48fc2e76038ebbdaa3025219d65ba070946675 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 14 Dec 2020 14:37:17 -0600 Subject: Enable CheckForOverflowUnderflow. --- src/CSharp.Build.props | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/CSharp.Build.props b/src/CSharp.Build.props index b12f4c6e..bcd47a0c 100644 --- a/src/CSharp.Build.props +++ b/src/CSharp.Build.props @@ -5,6 +5,7 @@ --> + true true $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk)) -- cgit v1.2.3-55-g6feb From 2baff8dcce00fea541028dc927f34eb57641e47d Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 16 Dec 2020 18:24:32 -0600 Subject: Add warning for PathCanonicalized. --- src/WixToolset.Data/ErrorMessages.cs | 2 +- src/WixToolset.Data/WarningMessages.cs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 61bc72af..9e051e00 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -1676,7 +1676,7 @@ namespace WixToolset.Data public static Message PayloadMustBeRelativeToCache(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) { - return Message(sourceLineNumbers, Ids.PayloadMustBeRelativeToCache, "The {0}/@{1} attribute's value, '{2}', is not a legal path name: Payload names must be relative to their cache directory and cannot contain '..'.", elementName, attributeName, attributeValue); + return Message(sourceLineNumbers, Ids.PayloadMustBeRelativeToCache, "The {0}/@{1} attribute's value, '{2}', is not a relative path.", elementName, attributeName, attributeValue); } public static Message PerUserButAllUsersEquals1(SourceLineNumber sourceLineNumbers, string path) diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 2deaeb7d..a1df1282 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -442,6 +442,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.PatchTable, "The {0} table is added to the install package by a transform from a patch package (.msp) and not authored directly into an install package (.msi). The information in this table will be left out of the decompiled output.", tableName); } + public static Message PathCanonicalized(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string originalValue, string canonicalValue) + { + return Message(sourceLineNumbers, Ids.PathCanonicalized, "The {0}/@{1} attribute's value, '{2}', has been canonicalized to '{3}'.", elementName, attributeName, originalValue, canonicalValue); + } + public static Message PerUserButForcingPerMachine(SourceLineNumber sourceLineNumbers, string path) { return Message(sourceLineNumbers, Ids.PerUserButForcingPerMachine, "The MSI '{0}' is a per-user package being forced to per-machine. Verify that the MsiPackage/@ForcePerMachine attribute is expected and that the per-user package works correctly when forced to install per-machine.", path); @@ -786,6 +791,7 @@ namespace WixToolset.Data ServiceConfigFamilyNotSupported = 1149, SymbolNotTranslatedToOutput = 1150, MsiTransactionLimitations = 1151, + PathCanonicalized = 1152, } } } -- cgit v1.2.3-55-g6feb From 8d27ac8bd8eb8ec320714a0bc201b05728da2206 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 18 Dec 2020 17:55:28 -0600 Subject: Enable XML doc. --- src/CSharp.Build.props | 1 + src/Directory.Build.targets | 8 ++++++++ src/WixToolset.Data/Intermediate.cs | 15 ++++++--------- src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs | 1 + src/WixToolset.Data/WindowsInstaller/Field.cs | 4 ++-- .../WindowsInstaller/Rows/SummaryInfoRowCollection.cs | 2 +- src/WixToolset.Data/WindowsInstaller/TableDefinition.cs | 1 + .../WindowsInstaller/WindowsInstallerData.cs | 3 +-- src/WixToolset.Data/WixOutput.cs | 12 +++++++++--- src/WixToolset.Data/WixToolset.Data.csproj | 6 ++++-- 10 files changed, 34 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/CSharp.Build.props b/src/CSharp.Build.props index bcd47a0c..81d24ad1 100644 --- a/src/CSharp.Build.props +++ b/src/CSharp.Build.props @@ -8,5 +8,6 @@ true true $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk)) + false diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index dac7452a..cb988931 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -9,6 +9,11 @@ See the original here: https://github.com/dotnet/sdk/issues/1151#issuecomment-385133284 --> + + false + $(OutputPath)\$(AssemblyName).xml + + true $(SolutionPath) @@ -45,4 +50,7 @@ + + + diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 30a50120..f9d33839 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -121,7 +121,6 @@ namespace WixToolset.Data /// Loads an intermediate from a WixOutput object. /// /// WixOutput object. - /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. public static Intermediate Load(WixOutput wixOutput, bool suppressVersionCheck = false) @@ -146,7 +145,6 @@ namespace WixToolset.Data /// Loads several intermediates from paths on disk using the same definitions. /// /// Paths to intermediate files saved on disk. - /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediates public static IEnumerable Load(IEnumerable intermediateFiles) { @@ -225,9 +223,9 @@ namespace WixToolset.Data } /// - /// Saves an intermediate to a path on disk. + /// Saves an intermediate to a WixOutput. /// - /// Path to save intermediate file to disk. + /// Destination to save. public void Save(WixOutput wixout) { this.SaveEmbedFiles(wixout); @@ -236,10 +234,9 @@ namespace WixToolset.Data } /// - /// Loads an intermediate from a path on disk. + /// Loads an intermediate from a WixOutput. /// - /// Stream to intermediate file. - /// Path name of intermediate file. + /// Source to load from. /// ISymbolDefinitionCreator to use when reconstituting the intermediate. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediate. @@ -254,9 +251,9 @@ namespace WixToolset.Data } /// - /// Loads json form of intermedaite from stream. + /// Loads json form of intermediate. /// - /// Stream to intermediate file. + /// Source to load from. /// Path name of intermediate file. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded json. diff --git a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs b/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs index de554fd8..f4dbab34 100644 --- a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs @@ -29,6 +29,7 @@ namespace WixToolset.Data.WindowsInstaller /// Type of modularization for column /// If the column is localizable. /// If whitespace should be preserved in a CDATA node. + /// If not saved to MSI. public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnCategory category, long? minValue = null, long? maxValue = null, string keyTable = null, int? keyColumn = null, string possibilities = null, string description = null, ColumnModularizeType? modularizeType = null, bool forceLocalizable = false, bool useCData = false, bool unreal = false) { this.Name = name; diff --git a/src/WixToolset.Data/WindowsInstaller/Field.cs b/src/WixToolset.Data/WindowsInstaller/Field.cs index 84e8d543..e5edd552 100644 --- a/src/WixToolset.Data/WindowsInstaller/Field.cs +++ b/src/WixToolset.Data/WindowsInstaller/Field.cs @@ -64,7 +64,6 @@ namespace WixToolset.Data.WindowsInstaller /// /// Sets the value of a particular field in the row without validating. /// - /// field index. /// Value of a field in the row. /// True if successful, false if validation failed. public bool BestEffortSet(object value) @@ -133,8 +132,9 @@ namespace WixToolset.Data.WindowsInstaller } /// - /// Validate a value for this column. + /// Validate a value for a column. /// + /// The column. /// The value to validate. /// Validated value. internal object ValidateValue(ColumnDefinition column, object value) diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs b/src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs index fc0410e9..4b2ce129 100644 --- a/src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs +++ b/src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs @@ -32,7 +32,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows /// Gets the summary property ID for the . /// /// The row to index. - /// The summary property ID for the . + /// The summary property ID for the . protected override int GetKeyForItem(Row row) { return (int)row[0]; diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs index 504c89ce..a7602d05 100644 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -26,6 +26,7 @@ namespace WixToolset.Data.WindowsInstaller /// Column definitions for the table. /// Flag if table is unreal. /// Whether the primary key is the id of the symbol definition associated with this table. + /// The specialized type for the rows. public TableDefinition(string name, IntermediateSymbolDefinition symbolDefinition, IEnumerable columns, bool unreal = false, bool symbolIdIsPrimaryKey = false, Type strongRowType = null) { this.Name = name; diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs index cc16bca5..8d69cd08 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -70,7 +70,6 @@ namespace WixToolset.Data.WindowsInstaller /// Ensure this output contains a particular table. /// /// Definition of the table that should exist. - /// Optional section to use for the table. If one is not provided, the entry section will be used. /// The table in this output. public Table EnsureTable(TableDefinition tableDefinition) { @@ -98,7 +97,7 @@ namespace WixToolset.Data.WindowsInstaller /// /// Saves an output to an XmlWriter. /// - /// XmlWriter to save to. + /// XmlWriter to save to. public void Save(XmlWriter writer) { writer.WriteStartDocument(); diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs index 969de991..43359f24 100644 --- a/src/WixToolset.Data/WixOutput.cs +++ b/src/WixToolset.Data/WixOutput.cs @@ -24,6 +24,9 @@ namespace WixToolset.Data this.stream = stream; } + /// + /// + /// public Uri Uri { get; } /// @@ -60,8 +63,8 @@ namespace WixToolset.Data /// /// Creates a new file structure. /// + /// /// Stream to write the file structure to. - /// Paths to files to embedd in the file structure. /// Newly created WixOutput. public static WixOutput Create(Uri uri, Stream stream) { @@ -109,9 +112,11 @@ namespace WixToolset.Data } /// - /// Loads a wixout from a assembly resource stream. + /// Loads a wixout from an assembly resource stream. /// - /// Path to wixout file saved on disk. + /// + /// + /// Loaded created WixOutput. public static WixOutput Read(Assembly assembly, string resourceName) { var resourceStream = assembly.GetManifestResourceStream(resourceName); @@ -128,6 +133,7 @@ namespace WixToolset.Data /// /// Reads a file structure from an open stream. /// + /// /// Stream to read from. /// Loaded created WixOutput. public static WixOutput Read(Uri uri, Stream stream) diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index 19310aea..24b0917b 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj @@ -6,10 +6,12 @@ netstandard2.0 $(TargetFrameworks);net461;net472 7.3 - WiX Toolset Data - + WiX Toolset Data embedded true + true + + CS1591 -- cgit v1.2.3-55-g6feb From 772262429cda01740b310fc87c05140740e7f870 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 8 Jan 2021 13:38:34 -0800 Subject: Include version info file when building in NCrunch --- src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject (limited to 'src') diff --git a/src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject b/src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject new file mode 100644 index 00000000..c6001ebe --- /dev/null +++ b/src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject @@ -0,0 +1,7 @@ + + + + ..\..\version.json + + + \ No newline at end of file -- cgit v1.2.3-55-g6feb From cce48bc96c334acc9a60bce4172f6d463a4dbbd1 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 8 Jan 2021 13:46:29 -0800 Subject: Add messages for ExePackage/@DetectCondition recommendations First part of fix for wixtoolset/issues#6197 --- src/WixToolset.Data/ErrorMessages.cs | 6 ++++++ src/WixToolset.Data/WarningMessages.cs | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 9e051e00..644f08d7 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -438,6 +438,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.ExpectedAttributeInElementOrParent, "The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2}/@{3} attribute.", elementName, attributeName, parentElementName, parentAttributeName); } + public static Message ExpectedAttributeWithValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithValueWithOtherAttribute, "The {0}/@{1} attribute is required to have a value when attribute {2} is present.", elementName, attributeName, attributeName2); + } + public static Message ExpectedAttributeOrElement(SourceLineNumber sourceLineNumbers, string parentElement, string attribute, string childElement) { return Message(sourceLineNumbers, Ids.ExpectedAttributeOrElement, "Element '{0}' missing attribute '{1}' or child element '{2}'. Exactly one of those is required.", parentElement, attribute, childElement); @@ -2692,6 +2697,7 @@ namespace WixToolset.Data CircularSearchReference = 398, UnknownSymbolType = 399, IllegalInnerText = 400, + ExpectedAttributeWithValueWithOtherAttribute = 401, } } } diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index a1df1282..1ea0f3ea 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -232,6 +232,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.DiscouragedAllUsersValue, "Bundles require a package to be either per-machine or per-user. The MSI '{0}' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-{1} and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead.", path, machineOrUser); } + public static Message DetectConditionRecommended(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.DetectConditionRecommended, "The {0}/@DetectCondition attribute is recommended so the package is only installed when absent.", elementName); + } + public static Message DownloadUrlNotSupportedForAttachedContainers(SourceLineNumber sourceLineNumbers, string containerId) { return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForAttachedContainers, "The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored.", containerId); @@ -792,6 +797,7 @@ namespace WixToolset.Data SymbolNotTranslatedToOutput = 1150, MsiTransactionLimitations = 1151, PathCanonicalized = 1152, + DetectConditionRecommended = 1153, } } } -- cgit v1.2.3-55-g6feb From 488177ce1f72154d75a1bcb5eb6d1030251afa87 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Tue, 19 Jan 2021 15:09:37 -0600 Subject: Add warning that non-x86 bundles are experimental. --- src/WixToolset.Data/WarningMessages.cs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 1ea0f3ea..12c8a160 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -282,6 +282,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.ExpectedForeignRow, "The {0} table contains a row with primary key(s) '{1}' whose {2} and {4} columns contain the values, '{3}' and '{5}', which specify a foreign key relationship with the {6} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output.", tableName, primaryKey, columnName1, columnValue1, columnName2, columnValue2, foreignTableName); } + public static Message ExperimentalBundlePlatform(string platform) + { + return Message(null, Ids.ExperimentalBundlePlatform, "The platform {0} is experimental for bundles. Use the x86 platform instead.", platform); + } + public static Message ExternalCabsAreNotSigned(string databaseFile) { return Message(null, Ids.ExternalCabsAreNotSigned, "The installer database '{0}' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to run the insignia tool as part of your build.", databaseFile); @@ -798,6 +803,7 @@ namespace WixToolset.Data MsiTransactionLimitations = 1151, PathCanonicalized = 1152, DetectConditionRecommended = 1153, + ExperimentalBundlePlatform = 1154, } } } -- cgit v1.2.3-55-g6feb From 37067209fa6defaecc877bab07262e9cf78088c5 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 26 Jan 2021 11:35:19 -0500 Subject: Add DefaultCompressionLevel support. --- src/WixToolset.Data/ErrorMessages.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 644f08d7..b2a32961 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -954,9 +954,9 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.IllegalComponentWithAutoGeneratedGuid, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with registry keypaths and files cannot use an automatically generated guid. Create multiple components, each with one file and/or one registry value keypath, to use automatically generated guids.", registryKeyPath); } - public static Message IllegalCompressionLevel(string compressionLevel) + public static Message IllegalCompressionLevel(SourceLineNumber sourceLineNumbers, string compressionLevel) { - return Message(null, Ids.IllegalCompressionLevel, "The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'.", compressionLevel); + return Message(sourceLineNumbers, Ids.IllegalCompressionLevel, "The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'.", compressionLevel); } public static Message IllegalDefineStatement(SourceLineNumber sourceLineNumbers, string defineStatement) -- cgit v1.2.3-55-g6feb From fa0ca50300e55a730d1df33347559620edec99f3 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 31 Jan 2021 19:20:54 -0500 Subject: Remove Burn Authenticode. Fixes https://github.com/wixtoolset/issues/issues/6301. --- src/WixToolset.Data/ErrorMessages.cs | 12 ------ src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 4 -- .../Symbols/WixBundleCatalogSymbol.cs | 44 ---------------------- .../Symbols/WixBundlePayloadSymbol.cs | 28 -------------- 4 files changed, 88 deletions(-) delete mode 100644 src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index b2a32961..c69a675a 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -158,16 +158,6 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.CannotReundefineVariable, "The variable '{0}' cannot be undefined because its already undefined.", variableName); } - public static Message CatalogFileHashFailed(string fileName, int errorCode) - { - return Message(null, Ids.CatalogFileHashFailed, "Could not get hash of file '{0}'. Error: {2}.", fileName, errorCode); - } - - public static Message CatalogVerificationFailed(string fileName) - { - return Message(null, Ids.CatalogVerificationFailed, "File '{0}' could not be verified with a catalog file.", fileName); - } - public static Message CheckBoxValueOnlyValidWithCheckBox(SourceLineNumber sourceLineNumbers, string elementName, string controlType) { return Message(sourceLineNumbers, Ids.CheckBoxValueOnlyValidWithCheckBox, "A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'.", elementName, controlType); @@ -2656,8 +2646,6 @@ namespace WixToolset.Data MediaTableCollision = 357, InvalidCabinetTemplate = 358, MaximumUncompressedMediaSizeTooLarge = 359, - CatalogVerificationFailed = 360, - CatalogFileHashFailed = 361, ReservedNamespaceViolation = 362, PerUserButAllUsersEquals1 = 363, UnsupportedAllUsersValue = 364, diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index 771d1ec8..bed49b87 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -119,7 +119,6 @@ namespace WixToolset.Data WixBootstrapperApplicationDll, WixBuildInfo, WixBundle, - WixBundleCatalog, WixBundleContainer, WixBundleCustomData, WixBundleCustomDataAttribute, @@ -543,9 +542,6 @@ namespace WixToolset.Data case SymbolDefinitionType.WixBundle: return SymbolDefinitions.WixBundle; - case SymbolDefinitionType.WixBundleCatalog: - return SymbolDefinitions.WixBundleCatalog; - case SymbolDefinitionType.WixBundleContainer: return SymbolDefinitions.WixBundleContainer; diff --git a/src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs deleted file mode 100644 index 48415228..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleCatalogSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCatalog = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCatalog, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCatalogSymbolFields.PayloadRef), IntermediateFieldType.String), - }, - typeof(WixBundleCatalogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCatalogSymbolFields - { - PayloadRef, - } - - public class WixBundleCatalogSymbol : IntermediateSymbol - { - public WixBundleCatalogSymbol() : base(SymbolDefinitions.WixBundleCatalog, null, null) - { - } - - public WixBundleCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCatalog, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCatalogSymbolFields index] => this.Fields[(int)index]; - - public string PayloadRef - { - get => (string)this.Fields[(int)WixBundleCatalogSymbolFields.PayloadRef]; - set => this.Set((int)WixBundleCatalogSymbolFields.PayloadRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs index 94a02af8..87880cc6 100644 --- a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs @@ -17,13 +17,11 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.UnresolvedSourceFile), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DisplayName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EnableSignatureValidation), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PublicKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Thumbprint), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.CatalogRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), @@ -49,13 +47,11 @@ namespace WixToolset.Data.Symbols UnresolvedSourceFile, DisplayName, Description, - EnableSignatureValidation, FileSize, Version, Hash, PublicKey, Thumbprint, - CatalogRef, ContainerRef, PackageRef, ContentFile, @@ -119,12 +115,6 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundlePayloadSymbolFields.Description, value); } - public bool EnableSignatureValidation - { - get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.EnableSignatureValidation]; - set => this.Set((int)WixBundlePayloadSymbolFields.EnableSignatureValidation, value); - } - public int? FileSize { get => (int?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; @@ -143,24 +133,6 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundlePayloadSymbolFields.Hash, value); } - public string PublicKey - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PublicKey]; - set => this.Set((int)WixBundlePayloadSymbolFields.PublicKey, value); - } - - public string Thumbprint - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Thumbprint]; - set => this.Set((int)WixBundlePayloadSymbolFields.Thumbprint, value); - } - - public string CatalogRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.CatalogRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.CatalogRef, value); - } - public string ContainerRef { get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ContainerRef]; -- cgit v1.2.3-55-g6feb From c0ec84299844821348557333de7fd6450207ed49 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 31 Jan 2021 21:35:08 -0500 Subject: Address code-review comments. --- src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs index 87880cc6..3a246e68 100644 --- a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs @@ -20,8 +20,6 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PublicKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Thumbprint), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), @@ -50,8 +48,6 @@ namespace WixToolset.Data.Symbols FileSize, Version, Hash, - PublicKey, - Thumbprint, ContainerRef, PackageRef, ContentFile, -- cgit v1.2.3-55-g6feb From 57fde272242687bc13e0c98a8eb4536427e71a83 Mon Sep 17 00:00:00 2001 From: Alex Kubiesa Date: Thu, 28 Jan 2021 21:33:35 +0000 Subject: Change WixBundlePayloadSymbol.FileSize from Number to LargeNumber. --- src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs index 3a246e68..f267531a 100644 --- a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs @@ -17,7 +17,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.UnresolvedSourceFile), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DisplayName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.LargeNumber), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), @@ -111,9 +111,9 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundlePayloadSymbolFields.Description, value); } - public int? FileSize + public long? FileSize { - get => (int?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; + get => (long?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; set => this.Set((int)WixBundlePayloadSymbolFields.FileSize, value); } -- cgit v1.2.3-55-g6feb From d01237f3221ce712e5fcbc08227b6f6f7f411de7 Mon Sep 17 00:00:00 2001 From: Alex Kubiesa Date: Thu, 28 Jan 2021 21:46:36 +0000 Subject: Change WixBundlePackageSymbol.Size from Number to LargeNumber. --- src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs index 8f073900..cbe7f761 100644 --- a/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs @@ -20,7 +20,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PerMachine), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.LogPathVariable), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackLogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.LargeNumber), new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber), new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Language), IntermediateFieldType.Number), @@ -153,9 +153,9 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundlePackageSymbolFields.RollbackLogPathVariable, value); } - public int Size + public long Size { - get => (int)this.Fields[(int)WixBundlePackageSymbolFields.Size]; + get => (long)this.Fields[(int)WixBundlePackageSymbolFields.Size]; set => this.Set((int)WixBundlePackageSymbolFields.Size, value); } -- cgit v1.2.3-55-g6feb From d997b6cda9e983f9dfa45fddd7122f33ae8c7666 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 27 Feb 2021 07:28:33 -0800 Subject: Absorb Tag.wixext into core SoftwareTag element Resolves wixtoolset/issues#5949 --- .../Symbols/SoftwareIdentificationTagSymbol.cs | 76 ++++++++++++++++++++ src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 12 ++++ src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs | 84 ++++++++++++++++++++++ src/WixToolset.Data/Symbols/WixProductTagSymbol.cs | 68 ++++++++++++++++++ .../WindowsInstallerTableDefinitions.cs | 15 ++++ 5 files changed, 255 insertions(+) create mode 100644 src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixProductTagSymbol.cs (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs b/src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs new file mode 100644 index 00000000..60bf22a2 --- /dev/null +++ b/src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition SoftwareIdentificationTag = new IntermediateSymbolDefinition( + SymbolDefinitionType.SoftwareIdentificationTag, + new[] + { + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.Regid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.UniqueId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.PersistentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.Alias), IntermediateFieldType.String), + }, + typeof(SoftwareIdentificationTagSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SoftwareIdentificationTagSymbolFields + { + FileRef, + Regid, + UniqueId, + PersistentId, + Alias, + } + + public class SoftwareIdentificationTagSymbol : IntermediateSymbol + { + public SoftwareIdentificationTagSymbol() : base(SymbolDefinitions.SoftwareIdentificationTag, null, null) + { + } + + public SoftwareIdentificationTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SoftwareIdentificationTag, sourceLineNumber, id) + { + } + + public IntermediateField this[SoftwareIdentificationTagSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.FileRef].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.FileRef, value); + } + + public string Regid + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.Regid].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.Regid, value); + } + + public string TagId + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.UniqueId].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.UniqueId, value); + } + + public string PersistentId + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.PersistentId].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.PersistentId, value); + } + + public string Alias + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.Alias].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.Alias, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index bed49b87..cfee33b7 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -102,6 +102,7 @@ namespace WixToolset.Data SFPCatalog, Shortcut, Signature, + SoftwareIdentificationTag, TargetFilesOptionalData, TargetImages, TextStyle, @@ -140,6 +141,7 @@ namespace WixToolset.Data WixBundleRelatedPackage, WixBundleRollbackBoundary, WixBundleSlipstreamMsp, + WixBundleTag, WixBundleUpdate, WixBundleVariable, WixChain, @@ -170,6 +172,7 @@ namespace WixToolset.Data WixPatchRef, WixPatchTarget, WixProductSearch, + WixProductTag, WixProperty, WixRegistrySearch, WixRelatedBundle, @@ -491,6 +494,9 @@ namespace WixToolset.Data case SymbolDefinitionType.Signature: return SymbolDefinitions.Signature; + case SymbolDefinitionType.SoftwareIdentificationTag: + return SymbolDefinitions.SoftwareIdentificationTag; + case SymbolDefinitionType.TargetFilesOptionalData: return SymbolDefinitions.TargetFilesOptionalData; @@ -605,6 +611,9 @@ namespace WixToolset.Data case SymbolDefinitionType.WixBundleSlipstreamMsp: return SymbolDefinitions.WixBundleSlipstreamMsp; + case SymbolDefinitionType.WixBundleTag: + return SymbolDefinitions.WixBundleTag; + case SymbolDefinitionType.WixBundleUpdate: return SymbolDefinitions.WixBundleUpdate; @@ -692,6 +701,9 @@ namespace WixToolset.Data case SymbolDefinitionType.WixProductSearch: return SymbolDefinitions.WixProductSearch; + case SymbolDefinitionType.WixProductTag: + return SymbolDefinitions.WixProductTag; + case SymbolDefinitionType.WixProperty: return SymbolDefinitions.WixProperty; diff --git a/src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs new file mode 100644 index 00000000..d550dae0 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleTag = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleTag, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Filename), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Regid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.InstallPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Xml), IntermediateFieldType.String), + }, + typeof(WixBundleTagSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleTagSymbolFields + { + Filename, + Regid, + Name, + InstallPath, + Attributes, + Xml, + } + + public class WixBundleTagSymbol : IntermediateSymbol + { + public WixBundleTagSymbol() : base(SymbolDefinitions.WixBundleTag, null, null) + { + } + + public WixBundleTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleTag, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleTagSymbolFields index] => this.Fields[(int)index]; + + public string Filename + { + get => this.Fields[(int)WixBundleTagSymbolFields.Filename].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Filename, value); + } + + public string Regid + { + get => this.Fields[(int)WixBundleTagSymbolFields.Regid].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Regid, value); + } + + public string Name + { + get => this.Fields[(int)WixBundleTagSymbolFields.Name].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Name, value); + } + + public string InstallPath + { + get => this.Fields[(int)WixBundleTagSymbolFields.InstallPath].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.InstallPath, value); + } + + public int Attributes + { + get => this.Fields[(int)WixBundleTagSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleTagSymbolFields.Attributes, value); + } + + public string Xml + { + get => this.Fields[(int)WixBundleTagSymbolFields.Xml].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Xml, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixProductTagSymbol.cs b/src/WixToolset.Data/Symbols/WixProductTagSymbol.cs new file mode 100644 index 00000000..a2f1ed11 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixProductTagSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixProductTag = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProductTag, + new[] + { + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Regid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Attributes), IntermediateFieldType.Number) + }, + typeof(WixProductTagSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixProductTagSymbolFields + { + FileRef, + Regid, + Name, + Attributes + } + + public class WixProductTagSymbol : IntermediateSymbol + { + public WixProductTagSymbol() : base(SymbolDefinitions.WixProductTag, null, null) + { + } + + public WixProductTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductTag, sourceLineNumber, id) + { + } + + public IntermediateField this[WixProductTagSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => this.Fields[(int)WixProductTagSymbolFields.FileRef].AsString(); + set => this.Set((int)WixProductTagSymbolFields.FileRef, value); + } + + public string Regid + { + get => this.Fields[(int)WixProductTagSymbolFields.Regid].AsString(); + set => this.Set((int)WixProductTagSymbolFields.Regid, value); + } + + public string Name + { + get => this.Fields[(int)WixProductTagSymbolFields.Name].AsString(); + set => this.Set((int)WixProductTagSymbolFields.Name, value); + } + + public int Attributes + { + get => this.Fields[(int)WixProductTagSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixProductTagSymbolFields.Attributes, value); + } + } +} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index 86450c22..c0075a27 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1283,6 +1283,20 @@ namespace WixToolset.Data.WindowsInstaller symbolIdIsPrimaryKey: true ); + public static readonly TableDefinition SoftwareIdentificationTag = new TableDefinition( + "SoftwareIdentificationTag", + SymbolDefinitions.SoftwareIdentificationTag, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The file that installs the software id tag.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Regid", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The regid for the software id tag."), + new ColumnDefinition("TagId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The unique id for the software id tag."), + new ColumnDefinition("PersistentId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The type of the software id tag."), + new ColumnDefinition("Alias", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Alias for the software id tag."), + }, + symbolIdIsPrimaryKey: false + ); + public static readonly TableDefinition TextStyle = new TableDefinition( "TextStyle", SymbolDefinitions.TextStyle, @@ -1813,6 +1827,7 @@ namespace WixToolset.Data.WindowsInstaller Shortcut, MsiShortcutProperty, Signature, + SoftwareIdentificationTag, TextStyle, TypeLib, UIText, -- cgit v1.2.3-55-g6feb From 55252821d8effa420f95d10824f59d5e176a43b3 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 27 Feb 2021 07:29:10 -0800 Subject: Absorb Dependency.wixext into Data Partly resolves wixtoolset/issues#5949 --- src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 8 +++ .../Symbols/WixDeltaPatchSymbolPathsSymbol.cs | 4 +- .../Symbols/WixDependencyProviderSymbol.cs | 2 +- .../Symbols/WixDependencyRefSymbol.cs | 52 ++++++++++++++ src/WixToolset.Data/Symbols/WixDependencySymbol.cs | 82 ++++++++++++++++++++++ .../WindowsInstallerTableDefinitions.cs | 43 ++++++++++++ 6 files changed, 187 insertions(+), 4 deletions(-) create mode 100644 src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixDependencySymbol.cs (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index cfee33b7..a224b742 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -154,6 +154,8 @@ namespace WixToolset.Data WixCustomTableColumn, WixDeltaPatchFile, WixDeltaPatchSymbolPaths, + WixDependency, + WixDependencyRef, WixDependencyProvider, WixEnsureTable, WixFeatureGroup, @@ -650,6 +652,12 @@ namespace WixToolset.Data case SymbolDefinitionType.WixDeltaPatchSymbolPaths: return SymbolDefinitions.WixDeltaPatchSymbolPaths; + case SymbolDefinitionType.WixDependency: + return SymbolDefinitions.WixDependency; + + case SymbolDefinitionType.WixDependencyRef: + return SymbolDefinitions.WixDependencyRef; + case SymbolDefinitionType.WixEnsureTable: return SymbolDefinitions.WixEnsureTable; diff --git a/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs b/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs index 6e50d07f..20f30da4 100644 --- a/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs @@ -1,7 +1,5 @@ // 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. -using System; - namespace WixToolset.Data { using WixToolset.Data.Symbols; @@ -72,4 +70,4 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs index 3ede1097..a4604a9c 100644 --- a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs @@ -7,7 +7,7 @@ namespace WixToolset.Data public static partial class SymbolDefinitions { public static readonly IntermediateSymbolDefinition WixDependencyProvider = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDependencyProvider.ToString(), + SymbolDefinitionType.WixDependencyProvider, new[] { new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String), diff --git a/src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs new file mode 100644 index 00000000..d6076d57 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDependencyRef = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDependencyRef, + new[] + { + new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyProviderRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyRef), IntermediateFieldType.String), + }, + typeof(WixDependencyRefSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixDependencyRefSymbolFields + { + WixDependencyProviderRef, + WixDependencyRef, + } + + public class WixDependencyRefSymbol : IntermediateSymbol + { + public WixDependencyRefSymbol() : base(SymbolDefinitions.WixDependencyRef, null, null) + { + } + + public WixDependencyRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyRef, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDependencyRefSymbolFields index] => this.Fields[(int)index]; + + public string WixDependencyProviderRef + { + get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyProviderRef].AsString(); + set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyProviderRef, value); + } + + public string WixDependencyRef + { + get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyRef].AsString(); + set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyRef, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixDependencySymbol.cs b/src/WixToolset.Data/Symbols/WixDependencySymbol.cs new file mode 100644 index 00000000..840331bb --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixDependencySymbol.cs @@ -0,0 +1,82 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDependency = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDependency, + new[] + { + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixDependencySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixDependencySymbolFields + { + ProviderKey, + MinVersion, + MaxVersion, + Attributes, + } + + [Flags] + public enum WixDependencySymbolAttributes : int + { + None = 0x0, + RequiresAttributesMinVersionInclusive = 0x100, + RequiresAttributesMaxVersionInclusive = 0x200, + } + + public class WixDependencySymbol : IntermediateSymbol + { + public WixDependencySymbol() : base(SymbolDefinitions.WixDependency, null, null) + { + } + + public WixDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependency, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDependencySymbolFields index] => this.Fields[(int)index]; + + public string ProviderKey + { + get => this.Fields[(int)WixDependencySymbolFields.ProviderKey].AsString(); + set => this.Set((int)WixDependencySymbolFields.ProviderKey, value); + } + + public string MinVersion + { + get => this.Fields[(int)WixDependencySymbolFields.MinVersion].AsString(); + set => this.Set((int)WixDependencySymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => this.Fields[(int)WixDependencySymbolFields.MaxVersion].AsString(); + set => this.Set((int)WixDependencySymbolFields.MaxVersion, value); + } + + public WixDependencySymbolAttributes Attributes + { + get => (WixDependencySymbolAttributes)this.Fields[(int)WixDependencySymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixDependencySymbolFields.Attributes, (int)value); + } + + public bool RequiresAttributesMinVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive; + + public bool RequiresAttributesMaxVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive; + } +} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index c0075a27..dab5ed02 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1732,6 +1732,46 @@ namespace WixToolset.Data.WindowsInstaller symbolIdIsPrimaryKey: false ); + public static readonly TableDefinition WixDependencyProvider = new TableDefinition( + "WixDependencyProvider", + SymbolDefinitions.WixDependencyProvider, + new[] + { + new ColumnDefinition("WixDependencyProvider", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "The foreign key into the Component table used to determine install state.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."), + new ColumnDefinition("Version", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The version of the package."), + new ColumnDefinition("DisplayName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The display name of the package."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixDependency = new TableDefinition( + "WixDependency", + SymbolDefinitions.WixDependency, + new[] + { + new ColumnDefinition("WixDependency", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."), + new ColumnDefinition("MinVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The minimum version of the provider supported."), + new ColumnDefinition("MaxVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The maximum version of the provider supported."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixDependencyRef = new TableDefinition( + "WixDependencyRef", + SymbolDefinitions.WixDependencyRef, + new[] + { + new ColumnDefinition("WixDependencyProvider_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependencyProvider", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("WixDependency_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependency", keyColumn: 1, description: "Foreign key into the WixDependency table.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + public static readonly TableDefinition[] All = new[] { ActionText, @@ -1859,6 +1899,9 @@ namespace WixToolset.Data.WindowsInstaller SummaryInformation, TransformView, Validation, + WixDependency, + WixDependencyProvider, + WixDependencyRef, }; } } -- cgit v1.2.3-55-g6feb From c0b3e09c76e4de4e81af9d41bb1170dd8bd20d6d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 28 Feb 2021 23:01:08 -0800 Subject: Move suppress modularization to field since Id can create conflicts Partially fixes wixtoolset/issues#5944 --- src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs b/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs index 1bdffd5e..dca86820 100644 --- a/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs @@ -10,6 +10,7 @@ namespace WixToolset.Data SymbolDefinitionType.WixSuppressModularization, new IntermediateFieldDefinition[] { + new IntermediateFieldDefinition(nameof(WixSuppressModularizationSymbolFields.SuppressIdentifier), IntermediateFieldType.String), }, typeof(WixSuppressModularizationSymbol)); } @@ -19,6 +20,7 @@ namespace WixToolset.Data.Symbols { public enum WixSuppressModularizationSymbolFields { + SuppressIdentifier, } public class WixSuppressModularizationSymbol : IntermediateSymbol @@ -31,6 +33,12 @@ namespace WixToolset.Data.Symbols { } + public string SuppressIdentifier + { + get => (string)this.Fields[(int)WixSuppressModularizationSymbolFields.SuppressIdentifier]; + set => this.Set((int)WixSuppressModularizationSymbolFields.SuppressIdentifier, value); + } + public IntermediateField this[WixSuppressModularizationSymbolFields index] => this.Fields[(int)index]; } -} \ No newline at end of file +} -- cgit v1.2.3-55-g6feb From aa072ea259b9685804134debda936436b142e12f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 28 Feb 2021 23:03:23 -0800 Subject: Update errors/warnings now that well-known folders are optional --- src/WixToolset.Data/ErrorMessages.cs | 6 ------ src/WixToolset.Data/WarningMessages.cs | 17 ++++++++++++++--- 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index c69a675a..c4b74e4e 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -263,11 +263,6 @@ namespace WixToolset.Data return Message(null, Ids.DirectoryPathRequired, "The parameter '{0}' must be followed by a directory path.", parameter); } - public static Message DirectoryRootWithoutName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.DirectoryRootWithoutName, "The {0} element requires the {1} attribute because there is no parent {0} element.", elementName, attributeName); - } - public static Message DisallowedMsiProperty(SourceLineNumber sourceLineNumbers, string property, string illegalValueList) { return Message(sourceLineNumbers, Ids.DisallowedMsiProperty, "The '{0}' MsiProperty is controlled by the bootstrapper and cannot be authored. (Illegal properties are: {1}.) Remove the MsiProperty element.", property, illegalValueList); @@ -2320,7 +2315,6 @@ namespace WixToolset.Data CustomActionMultipleSources = 22, CustomActionMultipleTargets = 23, CustomActionIllegalInnerText = 24, - DirectoryRootWithoutName = 25, IllegalShortFilename = 26, IllegalLongFilename = 27, TableNameTooLong = 28, diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 12c8a160..a28b0fc3 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -112,9 +112,14 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated. Please use the {2} or {3} attribute instead.", elementName, attributeName, newAttributeName1, newAttributeName2); } + public static Message DeprecatedAttributeValue(SourceLineNumber sourceLineNumbers, string attributeValue, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Remove the attribute.", attributeValue, elementName, attributeName); + } + public static Message DeprecatedAttributeValue(SourceLineNumber sourceLineNumbers, string attributeValue, string elementName, string attributeName, string newAttributeValue) { - return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Please use \"{3}\" instead.", attributeValue, elementName, attributeName, newAttributeValue); + return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Please use \"{3}\" instead.", attributeValue, elementName, attributeName, newAttributeValue); } public static Message DeprecatedCommandLineSwitch(string oldSwitch) @@ -139,12 +144,12 @@ namespace WixToolset.Data public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName) { - return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} element instead.", elementName, newElementName); + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} element instead.", elementName, newElementName); } public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName1, string newElementName2) { - return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} or {2} element instead.", elementName, newElementName1, newElementName2); + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} or {2} element instead.", elementName, newElementName1, newElementName2); } public static Message DeprecatedIgnoreModularizationElement(SourceLineNumber sourceLineNumbers) @@ -582,6 +587,11 @@ namespace WixToolset.Data return Message(null, Ids.TargetDirCorrectedDefaultDir, "The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output."); } + public static Message DefiningWellKnownDirectoryDeprecated(SourceLineNumber sourceLineNumbers, string directoryId) + { + return Message(null, Ids.DefiningWellKnownDirectoryDeprecated, "It is no longer necessary to define Directory with Id '{0}'. One will be provided automatically. Remove the Directory element.", directoryId); + } + public static Message TooManyProgIds(SourceLineNumber sourceLineNumbers, string clsId, string progId, string otherClsId) { return Message(sourceLineNumbers, Ids.TooManyProgIds, "Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output.", clsId, progId, otherClsId); @@ -804,6 +814,7 @@ namespace WixToolset.Data PathCanonicalized = 1152, DetectConditionRecommended = 1153, ExperimentalBundlePlatform = 1154, + DefiningWellKnownDirectoryDeprecated = 1155, } } } -- cgit v1.2.3-55-g6feb From 456fe41a126412b822371a338870ec39dfcdf4ad Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 1 Mar 2021 08:26:35 -0800 Subject: Update to latest build infrastructure --- .gitignore | 43 ++++++++++++++++++++++++++++++++----------- appveyor.cmd | 17 ++++++++++++++--- appveyor.yml | 4 ++-- src/CSharp.Build.props | 13 ------------- src/Directory.Build.props | 4 +--- src/Directory.Build.targets | 9 ++------- src/Directory.csproj.props | 13 +++++++++++++ src/Directory.csproj.targets | 25 +++++++++++++++++++++++++ 8 files changed, 89 insertions(+), 39 deletions(-) delete mode 100644 src/CSharp.Build.props create mode 100644 src/Directory.csproj.props create mode 100644 src/Directory.csproj.targets (limited to 'src') diff --git a/.gitignore b/.gitignore index 3e8a1553..1ee53850 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs +# Mono auto generated files +mono_crash.* + # Build results [Dd]ebug/ [Dd]ebugPublic/ @@ -20,12 +23,14 @@ [Rr]eleases/ x64/ x86/ +[Ww][Ii][Nn]32/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ +[Ll]ogs/ # Visual Studio 2015/2017 cache/options directory .vs/ @@ -39,9 +44,10 @@ Generated\ Files/ [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* -# NUNIT +# NUnit *.VisualState.xml TestResult.xml +nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ @@ -56,6 +62,9 @@ project.lock.json project.fragment.lock.json artifacts/ +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + # StyleCop StyleCopReport.xml @@ -122,9 +131,6 @@ _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user -# JustCode is a .NET coding add-in -.JustCode - # TeamCity is a build add-in _TeamCity* @@ -135,6 +141,11 @@ _TeamCity* .axoCover/* !.axoCover/settings.json +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + # Visual Studio code coverage results *.coverage *.coveragexml @@ -182,6 +193,8 @@ PublishScripts/ # NuGet Packages *.nupkg +# NuGet Symbol Packages +*.snupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. @@ -206,6 +219,8 @@ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx +*.appxbundle +*.appxupload # Visual Studio cache files # files ending in .cache can be ignored @@ -231,8 +246,6 @@ orleans.codegen.cs # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ -# ASP.NET Core default setup: bower directory is configured as wwwroot/lib/ and bower restore is true -**/wwwroot/lib/ # RIA/Silverlight projects Generated_Code/ @@ -257,6 +270,9 @@ ServiceFabricBackup/ *.bim.layout *.bim_*.settings *.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ @@ -292,10 +308,6 @@ paket-files/ # FAKE - F# Make .fake/ -# JetBrains Rider -.idea/ -*.sln.iml - # CodeRush personal settings .cr/personal @@ -337,5 +349,14 @@ ASALocalRun/ # Local History for Visual Studio .localhistory/ -# BeatPulse healthcheck temp database +# BeatPulse healthcheck temp database healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd diff --git a/appveyor.cmd b/appveyor.cmd index 99cf99b6..5e5debc9 100644 --- a/appveyor.cmd +++ b/appveyor.cmd @@ -1,8 +1,19 @@ @setlocal @pushd %~dp0 +@set _C=Release +@if /i "%1"=="debug" set _C=Debug -dotnet test -c Release src\test\WixToolsetTest.Data\WixToolsetTest.Data.csproj || exit /b -dotnet pack -c Release || exit /b +:: Restore +msbuild -p:Configuration=%_C% -t:Restore || exit /b + +:: Build +msbuild -p:Configuration=%_C% || exit /b + +:: Test +dotnet test -c %_C% --no-build || exit /b + +:: Pack +msbuild -p:Configuration=%_C% -p:NoBuild=true -t:Pack || exit /b @popd -@endlocal \ No newline at end of file +@endlocal diff --git a/appveyor.yml b/appveyor.yml index e4d25586..c53cc9cc 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -21,8 +21,6 @@ environment: build_script: - appveyor.cmd -test: off - pull_requests: do_not_increment_build_number: true @@ -35,6 +33,8 @@ skip_tags: true artifacts: - path: build\Release\**\*.nupkg name: nuget +- path: build\Release\**\*.snupkg + name: snupkg notifications: - provider: Slack diff --git a/src/CSharp.Build.props b/src/CSharp.Build.props deleted file mode 100644 index 81d24ad1..00000000 --- a/src/CSharp.Build.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - true - true - $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk)) - false - - diff --git a/src/Directory.Build.props b/src/Directory.Build.props index f83cc154..b3c6287c 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -22,8 +22,6 @@ WiX Toolset - - - + diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index cb988931..2fcc765a 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -9,11 +9,6 @@ See the original here: https://github.com/dotnet/sdk/issues/1151#issuecomment-385133284 --> - - false - $(OutputPath)\$(AssemblyName).xml - - true $(SolutionPath) @@ -45,12 +40,12 @@ - + - + diff --git a/src/Directory.csproj.props b/src/Directory.csproj.props new file mode 100644 index 00000000..81d24ad1 --- /dev/null +++ b/src/Directory.csproj.props @@ -0,0 +1,13 @@ + + + + + true + true + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk)) + false + + diff --git a/src/Directory.csproj.targets b/src/Directory.csproj.targets new file mode 100644 index 00000000..623228ef --- /dev/null +++ b/src/Directory.csproj.targets @@ -0,0 +1,25 @@ + + + + + false + $(OutputPath)\$(AssemblyName).xml + + + + + $(PrivateRepositoryUrl.Replace('.git','')) + + $(MSBuildProjectName).nuspec + $(OutputPath)..\ + $(NuspecProperties);Id=$(PackageId);Authors=$(Authors);Copyright=$(Copyright);Description=$(Description);Title=$(Title) + $(NuspecProperties);Version=$(PackageVersion);RepositoryCommit=$(SourceRevisionId);RepositoryType=$(RepositoryType);RepositoryUrl=$(PrivateRepositoryUrl);ProjectFolder=$(MSBuildProjectDirectory)\;ProjectUrl=$(ProjectUrl) + true + + + + -- cgit v1.2.3-55-g6feb From 26415c014397c463f2954e0bd9ff742110c5ea75 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 1 Mar 2021 23:12:33 -0800 Subject: Rename AccessModifiers and optimize its serialization --- src/WixToolset.Data/AccessModifier.cs | 82 +++++- src/WixToolset.Data/Identifier.cs | 9 +- .../WindowsInstaller/WindowsInstallerStandard.cs | 280 ++++++++++----------- 3 files changed, 221 insertions(+), 150 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/AccessModifier.cs b/src/WixToolset.Data/AccessModifier.cs index 64f29f26..191558b5 100644 --- a/src/WixToolset.Data/AccessModifier.cs +++ b/src/WixToolset.Data/AccessModifier.cs @@ -2,26 +2,98 @@ namespace WixToolset.Data { + using System; + public enum AccessModifier { /// - /// Indicates the identifier is publicly visible to all other sections. + /// Indicates the identifier is globally visible to all other sections. /// - Public, + Global, + [Obsolete] + Public = Global, /// /// Indicates the identifier is visible only to sections in the same library. /// - Internal, + Library, + [Obsolete] + Internal = Library, /// /// Indicates the identifier is visible only to sections in the same source file. /// - Protected, + File, + [Obsolete] + Protected = File, /// /// Indicates the identifiers is visible only to the section where it is defined. /// - Private, + Section, + [Obsolete] + Private = Section, + } + + /// + /// Extensions for converting AccessModifier to and from strings optimally. + /// + public static class AccessModifierExtensions + { + /// + /// Converts a string to an AccessModifier. + /// + /// String value to convert. + /// Converted AccessModifier. + public static AccessModifier AsAccessModifier(this string access) + { + switch (access) + { + case "global": + case "public": + return AccessModifier.Global; + + case "library": + case "internal": + return AccessModifier.Library; + + case "file": + case "protected": + return AccessModifier.File; + + case "section": + case "private": + return AccessModifier.Section; + + default: + throw new ArgumentException($"Unknown AccessModifier: {access}", nameof(access)); + } + } + + /// + /// Converts an AccessModifier to a string. + /// + /// AccessModifier value to convert. + /// Converted string. + public static string AsString(this AccessModifier access) + { + switch (access) + { + case AccessModifier.Global: + return "global"; + + case AccessModifier.Library: + return "library"; + + case AccessModifier.File: + return "file"; + + case AccessModifier.Section: + return "section"; + + default: + throw new ArgumentException($"Unknown AccessModifier: {access}", nameof(access)); + } + } } } diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs index 57241007..8333198f 100644 --- a/src/WixToolset.Data/Identifier.cs +++ b/src/WixToolset.Data/Identifier.cs @@ -12,7 +12,7 @@ namespace WixToolset.Data [DebuggerDisplay("{Access} {Id,nq}")] public class Identifier { - public static Identifier Invalid = new Identifier(AccessModifier.Private, (string)null); + public static Identifier Invalid = new Identifier(AccessModifier.Section, (string)null); [Obsolete] public Identifier(string id, AccessModifier access) @@ -58,10 +58,9 @@ namespace WixToolset.Data internal static Identifier Deserialize(JsonObject jsonObject) { var id = jsonObject.GetValueOrDefault("id"); - var accessValue = jsonObject.GetValueOrDefault("access"); - Enum.TryParse(accessValue, true, out AccessModifier access); + var accessValue = jsonObject.GetValueOrDefault("access", "global"); - return new Identifier(access, id); + return new Identifier(accessValue.AsAccessModifier(), id); } internal JsonObject Serialize() @@ -69,7 +68,7 @@ namespace WixToolset.Data var jsonObject = new JsonObject { { "id", this.Id }, - { "access", this.Access.ToString().ToLowerInvariant() } + { "access", this.Access.AsString() } }; return jsonObject; diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 7d539af1..0e6092b3 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -212,191 +212,191 @@ namespace WixToolset.Data.WindowsInstaller { var standardActions = new[] { - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, }; var standardDirectories = new[] { - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TARGETDIR")) { Name = "SourceDir" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "AdminToolsFolder")) { Name = "Admin" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "AppDataFolder")) { Name = "AppData" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonAppDataFolder")) { Name = "CommApp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFilesFolder")) { Name = "CFiles" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFiles64Folder")) { Name = "CFiles64" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFiles6432Folder")) { Name = "." }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "DesktopFolder")) { Name = "Desktop" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "FavoritesFolder")) { Name = "Favs" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "FontsFolder")) { Name = "Fonts" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "LocalAppDataFolder")) { Name = "LocalApp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "MyPicturesFolder")) { Name = "Pictures" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "NetHoodFolder")) { Name = "NetHood" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "PersonalFolder")) { Name = "Personal" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "PrintHoodFolder")) { Name = "Printers" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFilesFolder")) { Name = "PFiles" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFiles64Folder")) { Name = "PFiles64" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFiles6432Folder")) { Name = "." }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramMenuFolder")) { Name = "PMenu" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "RecentFolder")) { Name = "Recent" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "SendToFolder")) { Name = "SendTo" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "StartMenuFolder")) { Name = "StrtMenu" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "StartupFolder")) { Name = "StartUp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "SystemFolder")) { Name = "System" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System16Folder")) { Name = "System16" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System64Folder")) { Name = "System64" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System6432Folder")) { Name = "." }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TempFolder")) { Name = "Temp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TemplateFolder")) { Name = "Template" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "WindowsFolder")) { Name = "Windows" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Public, "WindowsVolume")) { Name = "WinVol" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TARGETDIR")) { Name = "SourceDir" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "AdminToolsFolder")) { Name = "Admin" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "AppDataFolder")) { Name = "AppData" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonAppDataFolder")) { Name = "CommApp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFilesFolder")) { Name = "CFiles" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFiles64Folder")) { Name = "CFiles64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFiles6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "DesktopFolder")) { Name = "Desktop" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "FavoritesFolder")) { Name = "Favs" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "FontsFolder")) { Name = "Fonts" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "LocalAppDataFolder")) { Name = "LocalApp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "MyPicturesFolder")) { Name = "Pictures" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "NetHoodFolder")) { Name = "NetHood" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "PersonalFolder")) { Name = "Personal" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "PrintHoodFolder")) { Name = "Printers" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFilesFolder")) { Name = "PFiles" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFiles64Folder")) { Name = "PFiles64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFiles6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramMenuFolder")) { Name = "PMenu" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "RecentFolder")) { Name = "Recent" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "SendToFolder")) { Name = "SendTo" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "StartMenuFolder")) { Name = "StrtMenu" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "StartupFolder")) { Name = "StartUp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "SystemFolder")) { Name = "System" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System16Folder")) { Name = "System16" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System64Folder")) { Name = "System64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TempFolder")) { Name = "Temp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TemplateFolder")) { Name = "Template" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "WindowsFolder")) { Name = "Windows" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "WindowsVolume")) { Name = "WinVol" }, }; standardActionNames = new HashSet(standardActions.Select(a => a.Action)); -- cgit v1.2.3-55-g6feb From a96d1a916bfcf35f77d48f70215d62b298bfb933 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 1 Mar 2021 23:13:11 -0800 Subject: Small cleanup --- src/WixToolset.Data/IntermediateFieldExtensions.cs | 48 +--- src/WixToolset.Data/IntermediateSymbol.cs | 1 - src/WixToolset.Data/Json/JsonObjectExtensions.cs | 6 +- src/WixToolset.Data/Library.cs | 243 --------------------- src/WixToolset.Data/WarningMessages.cs | 2 +- 5 files changed, 7 insertions(+), 293 deletions(-) delete mode 100644 src/WixToolset.Data/Library.cs (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs index 2c856e65..c70eb230 100644 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs @@ -45,21 +45,7 @@ namespace WixToolset.Data return null; } - switch (field.Definition.Type) - { - case IntermediateFieldType.Bool: - return field.Value.AsBool(); - - case IntermediateFieldType.LargeNumber: - case IntermediateFieldType.Number: - return field.Value.AsLargeNumber() != 0; - - case IntermediateFieldType.String: - return !String.IsNullOrEmpty(field.Value.AsString()); - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); - } + return field.AsBool(); } public static long AsLargeNumber(this IntermediateField field) @@ -93,21 +79,7 @@ namespace WixToolset.Data return null; } - switch (field.Definition.Type) - { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? 1 : 0; - - case IntermediateFieldType.LargeNumber: - case IntermediateFieldType.Number: - return field.Value.AsLargeNumber(); - - case IntermediateFieldType.String: - return Convert.ToInt64(field.Value.AsString()); - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to large number"); - } + return field.AsLargeNumber(); } public static int AsNumber(this IntermediateField field) @@ -141,21 +113,7 @@ namespace WixToolset.Data return null; } - switch (field.Definition.Type) - { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? 1 : 0; - - case IntermediateFieldType.LargeNumber: - case IntermediateFieldType.Number: - return field.Value.AsNumber(); - - case IntermediateFieldType.String: - return Convert.ToInt32(field.Value.AsString()); - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); - } + return field.AsNumber(); } public static IntermediateFieldPathValue AsPath(this IntermediateField field) diff --git a/src/WixToolset.Data/IntermediateSymbol.cs b/src/WixToolset.Data/IntermediateSymbol.cs index 4030df5d..408be37c 100644 --- a/src/WixToolset.Data/IntermediateSymbol.cs +++ b/src/WixToolset.Data/IntermediateSymbol.cs @@ -165,7 +165,6 @@ namespace WixToolset.Data var id = (idJson == null) ? null : Identifier.Deserialize(idJson); var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); - // TODO: this isn't sufficient. if (!creator.TryGetSymbolDefinitionByName(definitionName, out var definition)) { throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); diff --git a/src/WixToolset.Data/Json/JsonObjectExtensions.cs b/src/WixToolset.Data/Json/JsonObjectExtensions.cs index e9e170ee..bc52333c 100644 --- a/src/WixToolset.Data/Json/JsonObjectExtensions.cs +++ b/src/WixToolset.Data/Json/JsonObjectExtensions.cs @@ -1,4 +1,4 @@ -// 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. +// 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. namespace WixToolset.Data { @@ -64,13 +64,13 @@ namespace WixToolset.Data public static T GetValueOrDefault(this JsonObject jsonObject, string key, T defaultValue = default(T)) where T : class { - return jsonObject.TryGetValue(key, out var value) ? value as T: defaultValue; + return jsonObject.TryGetValue(key, out var value) ? value as T : defaultValue; } public static T GetEnumOrDefault(this JsonObject jsonObject, string key, T defaultValue) where T : struct { #if DEBUG - if (!typeof(T).IsEnum) throw new ArgumentException("This method is designed to only only support enums.", nameof(T)); + if (!typeof(T).IsEnum) { throw new ArgumentException("This method only supports enums.", nameof(T)); } #endif var value = jsonObject.GetValueOrDefault(key); return Enum.TryParse(value, true, out T e) ? e : defaultValue; diff --git a/src/WixToolset.Data/Library.cs b/src/WixToolset.Data/Library.cs deleted file mode 100644 index 13a670b0..00000000 --- a/src/WixToolset.Data/Library.cs +++ /dev/null @@ -1,243 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Xml; - - /// - /// Object that represents a library file. - /// - public sealed class Library - { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixlib"; - private static readonly Version CurrentVersion = new Version("4.0.0.0"); - -#if false - private string id; - private List embedFilePaths; - private Dictionary localizations; - private List
sections; - - /// - /// Instantiates a new empty library which is only useful from static creating methods. - /// - private Library() - { - this.embedFilePaths = new List(); - this.localizations = new Dictionary(); - this.sections = new List
(); - } - - /// - /// Instantiate a new library populated with sections. - /// - /// Sections to add to the library. - /// - public Library(IEnumerable
sections, IDictionary localizationsByCulture, IEnumerable embedFilePaths) - { - this.id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); - this.embedFilePaths = new List(embedFilePaths); - this.localizations = new Dictionary(localizationsByCulture); - this.sections = new List
(sections); - - foreach (Section section in this.sections) - { - section.LibraryId = this.id; - } - } - - /// - /// Get the sections contained in this library. - /// - /// Sections contained in this library. - public IEnumerable
Sections => this.sections; - - /// - /// Gets localization files from this library that match the cultures passed in, in the order of the array of cultures. - /// - /// The list of cultures to get localizations for. - /// All localizations contained in this library that match the set of cultures provided, in the same order. - public IEnumerable GetLocalizations(string[] cultures) - { - foreach (string culture in cultures ?? new string[0]) - { - if (this.localizations.TryGetValue(culture, out var localization)) - { - yield return localization; - } - } - } - - /// - /// Loads a library from a path on disk. - /// - /// Path to library file saved on disk. - /// Collection containing TableDefinitions to use when reconstituting the intermediates. - /// Suppresses wix.dll version mismatch check. - /// Returns the loaded library. - public static Library Load(string path, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) - { - using (FileStream stream = File.OpenRead(path)) - { - return Load(stream, new Uri(Path.GetFullPath(path)), tableDefinitions, suppressVersionCheck); - } - } - - /// - /// Loads a library from a stream. - /// - /// Stream containing the library file. - /// Uri for finding this stream. - /// Collection containing TableDefinitions to use when reconstituting the intermediates. - /// Suppresses wix.dll version mismatch check. - /// Returns the loaded library. - public static Library Load(Stream stream, Uri uri, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) - { - using (FileStructure fs = FileStructure.Read(stream)) - { - if (FileFormat.Wixlib != fs.FileFormat) - { - throw new WixUnexpectedFileFormatException(uri.LocalPath, FileFormat.Wixlib, fs.FileFormat); - } - - using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) - { - try - { - reader.MoveToContent(); - return Library.Read(reader, tableDefinitions, suppressVersionCheck); - } - catch (XmlException xe) - { - throw new WixCorruptFileException(uri.LocalPath, fs.FileFormat, xe); - } - } - } - } - - /// - /// Saves a library to a path on disk. - /// - /// Path to save library file to on disk. - /// The WiX path resolver. - public void Save(string path) - { - Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - - using (FileStream stream = File.Create(path)) - using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixlib, embedFilePaths)) - using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) - { - writer.WriteStartDocument(); - - this.Write(writer); - - writer.WriteEndDocument(); - } - } - - /// - /// Parse the root library element. - /// - /// XmlReader with library persisted as Xml. - /// Collection containing TableDefinitions to use when reconstituting the intermediates. - /// Suppresses check for wix.dll version mismatch. - /// The parsed Library. - private static Library Read(XmlReader reader, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) - { - if (!reader.LocalName.Equals("wixLibrary")) - { - throw new XmlException(); - } - - bool empty = reader.IsEmptyElement; - Library library = new Library(); - Version version = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "version": - version = new Version(reader.Value); - break; - case "id": - library.id = reader.Value; - break; - } - } - - if (!suppressVersionCheck && null != version && !Library.CurrentVersion.Equals(version)) - { - throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "library", version.ToString(), Library.CurrentVersion.ToString())); - } - - if (!empty) - { - bool done = false; - - while (!done && (XmlNodeType.Element == reader.NodeType || reader.Read())) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "localization": - Localization localization = Localization.Read(reader); - library.localizations.Add(localization.Culture, localization); - break; - case "section": - Section section = Section.Read(reader, tableDefinitions); - section.LibraryId = library.id; - library.sections.Add(section); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return library; - } - - /// - /// Persists a library in an XML format. - /// - /// XmlWriter where the library should persist itself as XML. - private void Write(XmlWriter writer) - { - writer.WriteStartElement("wixLibrary", XmlNamespaceUri); - - writer.WriteAttributeString("version", CurrentVersion.ToString()); - - writer.WriteAttributeString("id", this.id); - - foreach (Localization localization in this.localizations.Values) - { - localization.Write(writer); - } - - foreach (Section section in this.sections) - { - section.Write(writer); - } - - writer.WriteEndElement(); - } -#endif - } -} diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index a28b0fc3..edd06981 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -589,7 +589,7 @@ namespace WixToolset.Data public static Message DefiningWellKnownDirectoryDeprecated(SourceLineNumber sourceLineNumbers, string directoryId) { - return Message(null, Ids.DefiningWellKnownDirectoryDeprecated, "It is no longer necessary to define Directory with Id '{0}'. One will be provided automatically. Remove the Directory element.", directoryId); + return Message(sourceLineNumbers, Ids.DefiningWellKnownDirectoryDeprecated, "It is no longer necessary to define Directory with Id '{0}'. One will be provided automatically. Remove the Directory element.", directoryId); } public static Message TooManyProgIds(SourceLineNumber sourceLineNumbers, string clsId, string progId, string otherClsId) -- cgit v1.2.3-55-g6feb From 73bd35f56189da4e9f5aaf4625247078e0486887 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 1 Mar 2021 23:23:37 -0800 Subject: Optimize SourceLineNumber and add support for setting Parent --- src/WixToolset.Data/SourceLineNumber.cs | 123 +++++++++++++++++++++----------- 1 file changed, 80 insertions(+), 43 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/SourceLineNumber.cs b/src/WixToolset.Data/SourceLineNumber.cs index 8ec65201..970f17e7 100644 --- a/src/WixToolset.Data/SourceLineNumber.cs +++ b/src/WixToolset.Data/SourceLineNumber.cs @@ -34,11 +34,35 @@ namespace WixToolset.Data this.LineNumber = lineNumber; } + /// + /// Constructor for a source with a parent and no line information. + /// + /// File name of the source. + /// Parent of this source line number + public SourceLineNumber(string fileName, SourceLineNumber parent) + { + this.FileName = fileName; + this.Parent = parent; + } + + /// + /// Constructor for a source with a parent and line information. + /// + /// File name of the source. + /// Parent of this source line number + /// Line number of the source. + public SourceLineNumber(string fileName, SourceLineNumber parent, int lineNumber) + { + this.FileName = fileName; + this.Parent = parent; + this.LineNumber = lineNumber; + } + /// /// Gets the file name of the source. /// /// File name for the source. - public string FileName { get; private set; } + public string FileName { get; } /// /// Gets or sets the line number of the source. @@ -49,19 +73,13 @@ namespace WixToolset.Data /// /// Gets or sets the parent source line number that included this source line number. /// - public SourceLineNumber Parent { get; set; } + public SourceLineNumber Parent { get; private set; } /// /// Gets the file name and line information. /// /// File name and line information. - public string QualifiedFileName - { - get - { - return this.LineNumber.HasValue ? String.Concat(this.FileName, "*", this.LineNumber) : this.FileName; - } - } + public string QualifiedFileName => this.LineNumber.HasValue ? String.Concat(this.FileName, "*", this.LineNumber) : this.FileName; internal static SourceLineNumber Deserialize(JsonObject jsonObject) { @@ -101,37 +119,46 @@ namespace WixToolset.Data /// Encoded string to parse. public static SourceLineNumber CreateFromEncoded(string encodedSourceLineNumbers) { - string[] linesSplit = encodedSourceLineNumbers.Split('|'); + var linesSplitIndex = encodedSourceLineNumbers.IndexOf('|'); - SourceLineNumber first = null; - SourceLineNumber parent = null; - for (int i = 0; i < linesSplit.Length; ++i) + // The most common case is that there is a single encoded line, + // so optimize for that case. + if (linesSplitIndex < 0) { - string[] filenameSplit = linesSplit[i].Split('*'); - SourceLineNumber source; - - if (2 == filenameSplit.Length) - { - source = new SourceLineNumber(filenameSplit[0], Convert.ToInt32(filenameSplit[1])); - } - else - { - source = new SourceLineNumber(filenameSplit[0]); - } + return DecodeSourceLineNumber(encodedSourceLineNumbers, 0, -1); + } + else // decode the multiple lines. + { + var startLine = 0; - if (null != parent) + SourceLineNumber first = null; + SourceLineNumber parent = null; + while (startLine < encodedSourceLineNumbers.Length) { - parent.Parent = source; + var source = DecodeSourceLineNumber(encodedSourceLineNumbers, startLine, linesSplitIndex - 1); + + if (null != parent) + { + parent.Parent = source; + } + + parent = source; + if (null == first) + { + first = parent; + } + + if (linesSplitIndex < 0) + { + break; + } + + startLine = linesSplitIndex + 1; + linesSplitIndex = encodedSourceLineNumbers.IndexOf('|', startLine); } - parent = source; - if (null == first) - { - first = parent; - } + return first; } - - return first; } /// @@ -159,11 +186,8 @@ namespace WixToolset.Data /// Optional line number offset into XML file not already included in the line information. public static SourceLineNumber CreateFromXObject(XObject node, int offset = 0) { - string uri = node.BaseUri; - IXmlLineInfo lineInfo = node as IXmlLineInfo; - - SourceLineNumber result = CreateFromUri(uri); - if (null != result && null != lineInfo) + var result = CreateFromUri(node.BaseUri); + if (null != result && node is IXmlLineInfo lineInfo) { result.LineNumber = lineInfo.LineNumber + offset; } @@ -191,12 +215,12 @@ namespace WixToolset.Data /// public string GetEncoded() { - StringBuilder sb = new StringBuilder(this.QualifiedFileName); + var sb = new StringBuilder(this.QualifiedFileName); - for (SourceLineNumber source = this.Parent; null != source; source = source.Parent) + for (var parent = this.Parent; null != parent; parent = parent.Parent) { sb.Append("|"); - sb.Append(source.QualifiedFileName); + sb.Append(parent.QualifiedFileName); } return sb.ToString(); @@ -209,8 +233,7 @@ namespace WixToolset.Data /// True if SourceLineNumbers are equivalent. public override bool Equals(object obj) { - SourceLineNumber other = obj as SourceLineNumber; - return null != other && + return obj is SourceLineNumber other && this.LineNumber.HasValue == other.LineNumber.HasValue && (!this.LineNumber.HasValue || this.LineNumber == other.LineNumber) && this.FileName.Equals(other.FileName, StringComparison.OrdinalIgnoreCase) && @@ -234,5 +257,19 @@ namespace WixToolset.Data { return this.LineNumber.HasValue && !String.IsNullOrEmpty(this.FileName) ? String.Concat(this.FileName, "(", this.LineNumber, ")") : this.FileName ?? String.Empty; } + + private static SourceLineNumber DecodeSourceLineNumber(string encoded, int startIndex, int endIndex) + { + if (endIndex < 0) + { + endIndex = encoded.Length - 1; + } + + var count = endIndex - startIndex; + var filenameSplitIndex = encoded.LastIndexOf('*', endIndex - 1, count); + return (filenameSplitIndex < 0) ? new SourceLineNumber(encoded) : + new SourceLineNumber(encoded.Substring(startIndex, filenameSplitIndex - startIndex), + Convert.ToInt32(encoded.Substring(filenameSplitIndex + 1, endIndex - filenameSplitIndex))); + } } } -- cgit v1.2.3-55-g6feb From 58c373f7c04363675ef096cb1205d7a0ded3c789 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 2 Mar 2021 02:13:45 -0800 Subject: Fix AccessModifier usage in test code --- src/test/WixToolsetTest.Data/SerializeFixture.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 7b318cf8..56d08bc9 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -22,7 +22,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "TestComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", @@ -48,7 +48,7 @@ namespace WixToolsetTest.Data var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); Assert.Equal("TestComponent", symbol.Id.Id); - Assert.Equal(AccessModifier.Public, symbol.Id.Access); + Assert.Equal(AccessModifier.Global, symbol.Id.Access); Assert.Equal("TestFolder", symbol.DirectoryRef); Assert.Equal(ComponentLocation.Either, symbol.Location); } @@ -64,7 +64,7 @@ namespace WixToolsetTest.Data var sln = new SourceLineNumber("test.wxs", 1); var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "TestComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", @@ -87,11 +87,11 @@ namespace WixToolsetTest.Data var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); Assert.Equal("TestComponent", symbol.Id.Id); - Assert.Equal(AccessModifier.Public, symbol.Id.Access); + Assert.Equal(AccessModifier.Global, symbol.Id.Access); wixout.Reopen(writable: true); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "NewComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "NewComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), }); @@ -130,7 +130,7 @@ namespace WixToolsetTest.Data var symbolDef = new IntermediateSymbolDefinition("CustomDef2", fieldDefs, null); - var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT")); + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); symbol.Set(0, "foo"); symbol.Set(1, 2); symbol.Set(2, true); @@ -173,7 +173,7 @@ namespace WixToolsetTest.Data var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); - var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT")); + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); symbol.Set(0, "foo"); symbol.Set(1, 2); symbol.Set(2, true); @@ -194,7 +194,7 @@ namespace WixToolsetTest.Data var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); - var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT2")); + var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); symbol2.Set(0, "bar"); symbol2.Set(1, 3); symbol2.Set(2, false); @@ -254,7 +254,7 @@ namespace WixToolsetTest.Data symbolDef.AddTag("customDef"); - var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT")); + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); symbol.Set(0, "foo"); symbol.Set(1, 2); symbol.Set(2, true); @@ -280,7 +280,7 @@ namespace WixToolsetTest.Data symbolDef2.AddTag("customDef2"); symbolDef2.AddTag("customDef2 tag2"); - var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Public, "customT2")); + var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); symbol2.Set(0, "bar"); symbol2.Set(1, 3); symbol2.Set(2, false); @@ -356,7 +356,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Public, "TestComponent")) + section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", -- cgit v1.2.3-55-g6feb From 809df264ba5e5a5f1b60a596064768e9b63dc617 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 28 Feb 2021 20:57:27 -0600 Subject: Add PackagePayload symbols, errors, and ComplexReferenceChildType. #4183 --- src/WixToolset.Data/ComplexReferenceChildType.cs | 3 ++ src/WixToolset.Data/ErrorMessages.cs | 58 +++++++++++++++++++--- src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 16 ++++++ .../Symbols/WixBundleExePackagePayloadSymbol.cs | 36 ++++++++++++++ .../Symbols/WixBundleMsiPackagePayloadSymbol.cs | 36 ++++++++++++++ .../Symbols/WixBundleMspPackagePayloadSymbol.cs | 36 ++++++++++++++ .../Symbols/WixBundleMsuPackagePayloadSymbol.cs | 36 ++++++++++++++ 7 files changed, 215 insertions(+), 6 deletions(-) create mode 100644 src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs (limited to 'src') diff --git a/src/WixToolset.Data/ComplexReferenceChildType.cs b/src/WixToolset.Data/ComplexReferenceChildType.cs index 0a355afe..62e233b6 100644 --- a/src/WixToolset.Data/ComplexReferenceChildType.cs +++ b/src/WixToolset.Data/ComplexReferenceChildType.cs @@ -37,6 +37,9 @@ namespace WixToolset.Data /// PackageGroup child of complex reference. PackageGroup, + /// PackagePayload child of complex reference. + PackagePayload, + /// PatchFamily child of complex reference. PatchFamily, diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index c4b74e4e..7924c2ab 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -493,6 +493,16 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.ExpectedAttributeWithElement, "The {0} element must have attribute '{1}' when child element '{2}' is present.", elementName, attribute, childElementName); } + public static Message ExpectedAttributeWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithoutOtherAttributes, "The {0} element's {1} attribute was not found; it is required without attribute {2} present.", elementName, attributeName, otherAttributeName); + } + + public static Message ExpectedAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithoutOtherAttributes, "The {0} element's {1} attribute was not found; it is required without attribute {2} or {3} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); + } + public static Message ExpectedBinaryCategory(SourceLineNumber sourceLineNumbers) { return Message(sourceLineNumbers, Ids.ExpectedBinaryCategory, "The Column element specifies a binary column but does not have the correct Category specified. Windows Installer requires binary columns to specify their category as binary. Please set the Category attribute's value to 'Binary'."); @@ -1499,6 +1509,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.MissingOrInvalidModuleInstallerVersion, "The merge module '{0}' from file '{1}' is either missing or has an invalid installer version. The value read from the installer version in module's summary information was '{2}'. This should be a numeric value representing a valid installer version such as 200 or 301.", moduleId, mergeModuleFile, productInstallerVersion); } + public static Message MissingPackagePayload(SourceLineNumber sourceLineNumbers, string packageId, string packageType) + { + return Message(sourceLineNumbers, Ids.MissingPackagePayload, "There is no payload defined for package '{0}'. This is specified on the {1}Package element or a child {1}PackagePayload element.", packageId, packageType); + } + public static Message MissingTableDefinition(string tableName) { return Message(null, Ids.MissingTableDefinition, "Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter.", tableName); @@ -1539,6 +1554,21 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.MultipleIdentifiersFound, "Under a '{0}' element, multiple identifiers were found: '{1}' and '{2}'. All search elements under this element must have the same id.", elementName, identifier, mismatchIdentifier); } + public static Message MultiplePackagePayloads(SourceLineNumber sourceLineNumbers, string packageId, string packagePayloadId1, string packagePayloadId2) + { + return Message(sourceLineNumbers, Ids.MultiplePackagePayloads, "The package '{0}' has multiple PackagePayloads: '{1}' and '{2}'. This normally happens when the payload is defined on the package element and a child PackagePayload element.", packageId, packagePayloadId1, packagePayloadId2); + } + + public static Message MultiplePackagePayloads2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MultiplePackagePayloads2, "The location of the package payload related to previous error."); + } + + public static Message MultiplePackagePayloads3(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MultiplePackagePayloads3, "The location of the package related to previous error."); + } + public static Message MultiplePrimaryReferences(SourceLineNumber sourceLineNumbers, string crefChildType, string crefChildId, string crefParentType, string crefParentId, string conflictParentType, string conflictParentId) { return Message(sourceLineNumbers, Ids.MultiplePrimaryReferences, "Multiple primary references were found for {0} '{1}' in {2} '{3}' and {4} '{5}'.", crefChildType, crefChildId, crefParentType, crefParentId, conflictParentType, conflictParentId); @@ -1634,6 +1664,16 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.OverridableActionCollision2, "The location of the action related to previous error."); } + public static Message PackagePayloadUnsupported(SourceLineNumber sourceLineNumbers, string packageType) + { + return Message(sourceLineNumbers, Ids.PackagePayloadUnsupported, "The {0}PackagePayload element can only be used for {0}Packages.", packageType); + } + + public static Message PackagePayloadUnsupported2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.PackagePayloadUnsupported2, "The location of the package related to previous error."); + } + public static Message ParentElementAttributeRequired(SourceLineNumber sourceLineNumbers, string parentElement, string parentAttribute, string childElement) { return Message(sourceLineNumbers, Ids.ParentElementAttributeRequired, "The parent {0} element is missing the {1} attribute that is required for the {2} child element.", parentElement, parentAttribute, childElement); @@ -1774,11 +1814,6 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.RelativePathForRegistryElement, "Cannot convert RelativePath into Registry elements."); } - public static Message RemotePayloadUnsupported(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RemotePayloadUnsupported, "The RemotePayload element can only be used for ExePackage and MsuPackage payloads."); - } - public static Message ReservedNamespaceViolation(SourceLineNumber sourceLineNumbers, string element, string attribute, string prefix) { return Message(sourceLineNumbers, Ids.ReservedNamespaceViolation, "The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix.", element, attribute, prefix); @@ -2024,6 +2059,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttribute, "The {0} element cannot have a child element '{1}' when attribute '{2}' is set.", elementName, childElementName, attribute); } + public static Message UnexpectedElementWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute1, string attribute2, string attribute3, string attribute4) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttribute, "The {0} element cannot have a child element '{1}' when any of attributes '{2}', '{3}', '{4}', or '{5}' are set.", elementName, childElementName, attribute1, attribute2, attribute3, attribute4); + } + public static Message UnexpectedElementWithAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute, string attributeValue) { return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttributeValue, "The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}'.", elementName, childElementName, attribute, attributeValue); @@ -2661,7 +2701,6 @@ namespace WixToolset.Data InvalidModuleOrBundleVersion = 380, UnsupportedPlatformForElement = 381, MissingMedia = 382, - RemotePayloadUnsupported = 383, IllegalYesNoAlwaysValue = 384, TooDeeplyIncluded = 385, TooManyColumnsInRealTable = 386, @@ -2680,6 +2719,13 @@ namespace WixToolset.Data UnknownSymbolType = 399, IllegalInnerText = 400, ExpectedAttributeWithValueWithOtherAttribute = 401, + PackagePayloadUnsupported = 402, + PackagePayloadUnsupported2 = 403, + MultiplePackagePayloads = 404, + MultiplePackagePayloads2 = 405, + MultiplePackagePayloads3 = 406, + MissingPackagePayload = 407, + ExpectedAttributeWithoutOtherAttributes = 408, } } } diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index a224b742..9024e58c 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -125,12 +125,16 @@ namespace WixToolset.Data WixBundleCustomDataAttribute, WixBundleCustomDataCell, WixBundleExePackage, + WixBundleExePackagePayload, WixBundleExtension, WixBundleMsiFeature, WixBundleMsiPackage, + WixBundleMsiPackagePayload, WixBundleMsiProperty, WixBundleMspPackage, + WixBundleMspPackagePayload, WixBundleMsuPackage, + WixBundleMsuPackagePayload, WixBundlePackage, WixBundlePackageCommandLine, WixBundlePackageExitCode, @@ -568,21 +572,33 @@ namespace WixToolset.Data case SymbolDefinitionType.WixBundleExePackage: return SymbolDefinitions.WixBundleExePackage; + case SymbolDefinitionType.WixBundleExePackagePayload: + return SymbolDefinitions.WixBundleExePackagePayload; + case SymbolDefinitionType.WixBundleMsiFeature: return SymbolDefinitions.WixBundleMsiFeature; case SymbolDefinitionType.WixBundleMsiPackage: return SymbolDefinitions.WixBundleMsiPackage; + case SymbolDefinitionType.WixBundleMsiPackagePayload: + return SymbolDefinitions.WixBundleMsiPackagePayload; + case SymbolDefinitionType.WixBundleMsiProperty: return SymbolDefinitions.WixBundleMsiProperty; case SymbolDefinitionType.WixBundleMspPackage: return SymbolDefinitions.WixBundleMspPackage; + case SymbolDefinitionType.WixBundleMspPackagePayload: + return SymbolDefinitions.WixBundleMspPackagePayload; + case SymbolDefinitionType.WixBundleMsuPackage: return SymbolDefinitions.WixBundleMsuPackage; + case SymbolDefinitionType.WixBundleMsuPackagePayload: + return SymbolDefinitions.WixBundleMsuPackagePayload; + case SymbolDefinitionType.WixBundlePackage: return SymbolDefinitions.WixBundlePackage; diff --git a/src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs new file mode 100644 index 00000000..c0bf603f --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleExePackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExePackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleExePackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleExePackagePayloadSymbolFields + { + } + + public class WixBundleExePackagePayloadSymbol : IntermediateSymbol + { + public WixBundleExePackagePayloadSymbol() : base(SymbolDefinitions.WixBundleExePackagePayload, null, null) + { + } + + public WixBundleExePackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExePackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs new file mode 100644 index 00000000..e5af1044 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiPackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiPackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleMsiPackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsiPackagePayloadSymbolFields + { + } + + public class WixBundleMsiPackagePayloadSymbol : IntermediateSymbol + { + public WixBundleMsiPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMsiPackagePayload, null, null) + { + } + + public WixBundleMsiPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs new file mode 100644 index 00000000..d1a21243 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMspPackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMspPackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleMspPackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMspPackagePayloadSymbolFields + { + } + + public class WixBundleMspPackagePayloadSymbol : IntermediateSymbol + { + public WixBundleMspPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMspPackagePayload, null, null) + { + } + + public WixBundleMspPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMspPackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs new file mode 100644 index 00000000..88c7deb2 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsuPackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsuPackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleMsuPackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsuPackagePayloadSymbolFields + { + } + + public class WixBundleMsuPackagePayloadSymbol : IntermediateSymbol + { + public WixBundleMsuPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMsuPackagePayload, null, null) + { + } + + public WixBundleMsuPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsuPackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} -- cgit v1.2.3-55-g6feb From b87b6f87a2912ef629cddfc54d773a47f88d83dc Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Tue, 2 Mar 2021 15:29:25 -0600 Subject: In Data projects, treat warnings as errors. --- src/Custom.Build.props | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/Custom.Build.props (limited to 'src') diff --git a/src/Custom.Build.props b/src/Custom.Build.props new file mode 100644 index 00000000..889fb62e --- /dev/null +++ b/src/Custom.Build.props @@ -0,0 +1,6 @@ + + + + true + + -- cgit v1.2.3-55-g6feb From 7f0a67c7c4570f3e453b046b193c06b345fd9f43 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 7 Mar 2021 17:44:38 -0500 Subject: Improve missing entry section error message. Fixes https://github.com/wixtoolset/issues/issues/5886 --- src/WixToolset.Data/ErrorMessages.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 7924c2ab..d895775d 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -1489,6 +1489,11 @@ namespace WixToolset.Data return Message(null, Ids.MissingDependencyVersion, "The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package.", packageId); } + public static Message MissingEntrySection() + { + return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Supported entry section types are: Product, Bundle, Patch, PatchCreation, Module."); + } + public static Message MissingEntrySection(string sectionType) { return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Expected section of type '{0}'.", sectionType); -- cgit v1.2.3-55-g6feb From dc13aa675da9307e36e8ff84b9914aceee15593d Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 8 Mar 2021 15:44:56 -0600 Subject: Fix WixDependencyProvider in SymbolDefinitions.ByType and improve error message for unknown type (which should be unreachable but...). --- src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index 9024e58c..9bb8bcfb 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -461,12 +461,12 @@ namespace WixToolset.Data case SymbolDefinitionType.Property: return SymbolDefinitions.Property; - case SymbolDefinitionType.PublishComponent: - return SymbolDefinitions.PublishComponent; - case SymbolDefinitionType.ProvidesDependency: return SymbolDefinitions.ProvidesDependency; + case SymbolDefinitionType.PublishComponent: + return SymbolDefinitions.PublishComponent; + case SymbolDefinitionType.RadioButton: return SymbolDefinitions.RadioButton; @@ -674,6 +674,9 @@ namespace WixToolset.Data case SymbolDefinitionType.WixDependencyRef: return SymbolDefinitions.WixDependencyRef; + case SymbolDefinitionType.WixDependencyProvider: + return SymbolDefinitions.WixDependencyProvider; + case SymbolDefinitionType.WixEnsureTable: return SymbolDefinitions.WixEnsureTable; @@ -765,7 +768,7 @@ namespace WixToolset.Data return SymbolDefinitions.WixVariable; default: - throw new ArgumentOutOfRangeException(nameof(type)); + throw new ArgumentOutOfRangeException($"{nameof(type)} ({type})"); } } } -- cgit v1.2.3-55-g6feb From 0832f4f8538a9621c8197f406edd95990232dfe4 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 8 Mar 2021 16:58:43 -0500 Subject: Improve CollidingModularizationTypes message. --- src/WixToolset.Data/ErrorMessages.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index d895775d..34192da4 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -170,7 +170,7 @@ namespace WixToolset.Data public static Message CollidingModularizationTypes(string tableName, string columnName, string foreignTableName, int foreignColumnNumber, string modularizationType, string foreignModularizationType) { - return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: one is {4} and the other is {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); + return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: table '{0}' uses type {4} and table '{2}' uses type {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); } public static Message ComponentExpectedFeature(SourceLineNumber sourceLineNumbers, string component, string type, string target) -- cgit v1.2.3-55-g6feb From db5c1dd657a495d9ff33b42b4f1d6c8f53c0fc00 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 14 Mar 2021 07:30:11 -0700 Subject: Extract data out of Core to minimize public surface area Part of wixtoolset/issues#6374 --- src/WixToolset.Data/Localization.cs | 4 +- .../Symbols/LockPermissionsSymbol.cs | 81 ++++++++++++++++++++++ src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs | 31 ++++++++- src/WixToolset.Data/Symbols/UpgradeSymbol.cs | 23 ++++++ src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs | 30 ++++++++ 5 files changed, 166 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index ccc531f3..7ce765f4 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs @@ -12,8 +12,8 @@ namespace WixToolset.Data /// public sealed class Localization { - private Dictionary variables = new Dictionary(); - private Dictionary localizedControls = new Dictionary(); + private readonly Dictionary variables = new Dictionary(); + private readonly Dictionary localizedControls = new Dictionary(); /// /// Instantiates a new localization object. diff --git a/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs b/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs index 12562fd1..b9337446 100644 --- a/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs +++ b/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs @@ -31,6 +31,87 @@ namespace WixToolset.Data.Symbols Permission, } + /// + ///------------------------------------------------------------------------------------------------- + /// Layout of an Access Mask (from http://technet.microsoft.com/en-us/library/cc783530(WS.10).aspx) + /// + /// ------------------------------------------------------------------------------------------------- + /// |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00| + /// ------------------------------------------------------------------------------------------------- + /// |GR|GW|GE|GA| Reserved |AS|StandardAccessRights| Object-Specific Access Rights | + /// + /// Key + /// GR = Generic Read + /// GW = Generic Write + /// GE = Generic Execute + /// GA = Generic All + /// AS = Right to access SACL + /// + public static class LockPermissionConstants + { + /// + /// Generic Access Rights (per WinNT.h) + /// --------------------- + /// GENERIC_ALL (0x10000000L) + /// GENERIC_EXECUTE (0x20000000L) + /// GENERIC_WRITE (0x40000000L) + /// GENERIC_READ (0x80000000L) + /// + public static readonly string[] GenericPermissions = { "GenericAll", "GenericExecute", "GenericWrite", "GenericRead" }; + + /// + /// Standard Access Rights (per WinNT.h) + /// ---------------------- + /// DELETE (0x00010000L) + /// READ_CONTROL (0x00020000L) + /// WRITE_DAC (0x00040000L) + /// WRITE_OWNER (0x00080000L) + /// SYNCHRONIZE (0x00100000L) + /// + public static readonly string[] StandardPermissions = { "Delete", "ReadPermission", "ChangePermission", "TakeOwnership", "Synchronize" }; + + /// + /// Object-Specific Access Rights + /// ============================= + /// Directory Access Rights (per WinNT.h) + /// ----------------------- + /// FILE_LIST_DIRECTORY ( 0x0001 ) + /// FILE_ADD_FILE ( 0x0002 ) + /// FILE_ADD_SUBDIRECTORY ( 0x0004 ) + /// FILE_READ_EA ( 0x0008 ) + /// FILE_WRITE_EA ( 0x0010 ) + /// FILE_TRAVERSE ( 0x0020 ) + /// FILE_DELETE_CHILD ( 0x0040 ) + /// FILE_READ_ATTRIBUTES ( 0x0080 ) + /// FILE_WRITE_ATTRIBUTES ( 0x0100 ) + /// + public static readonly string[] FolderPermissions = { "Read", "CreateFile", "CreateChild", "ReadExtendedAttributes", "WriteExtendedAttributes", "Traverse", "DeleteChild", "ReadAttributes", "WriteAttributes" }; + + /// + /// Registry Access Rights + /// ---------------------- + /// + public static readonly string[] RegistryPermissions = { "Read", "Write", "CreateSubkeys", "EnumerateSubkeys", "Notify", "CreateLink" }; + + /// + /// File Access Rights (per WinNT.h) + /// ------------------ + /// FILE_READ_DATA ( 0x0001 ) + /// FILE_WRITE_DATA ( 0x0002 ) + /// FILE_APPEND_DATA ( 0x0004 ) + /// FILE_READ_EA ( 0x0008 ) + /// FILE_WRITE_EA ( 0x0010 ) + /// FILE_EXECUTE ( 0x0020 ) + /// via mask FILE_ALL_ACCESS ( 0x0040 ) + /// FILE_READ_ATTRIBUTES ( 0x0080 ) + /// FILE_WRITE_ATTRIBUTES ( 0x0100 ) + /// + /// STANDARD_RIGHTS_REQUIRED (0x000F0000L) + /// FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) + /// + public static readonly string[] FilePermissions = { "Read", "Write", "Append", "ReadExtendedAttributes", "WriteExtendedAttributes", "Execute", "FileAllRights", "ReadAttributes", "WriteAttributes" }; + } + public class LockPermissionsSymbol : IntermediateSymbol { public LockPermissionsSymbol() : base(SymbolDefinitions.LockPermissions, null, null) diff --git a/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs b/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs index 3f67aef7..201b8444 100644 --- a/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs +++ b/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs @@ -20,6 +20,8 @@ namespace WixToolset.Data namespace WixToolset.Data.Symbols { + using System; + public enum PatchMetadataSymbolFields { Company, @@ -27,6 +29,33 @@ namespace WixToolset.Data.Symbols Value, } + /// + /// Values for the OptimizeCA MsiPatchMetdata property, which indicates whether custom actions can be skipped when applying the patch. + /// + [Flags] + public enum OptimizeCAFlags + { + /// + /// No custom actions are skipped. + /// + None = 0, + + /// + /// Skip property (type 51) and directory (type 35) assignment custom actions. + /// + SkipAssignment = 1, + + /// + /// Skip immediate custom actions that are not property or directory assignment custom actions. + /// + SkipImmediate = 2, + + /// + /// Skip custom actions that run within the script. + /// + SkipDeferred = 4 + } + public class PatchMetadataSymbol : IntermediateSymbol { public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null) @@ -57,4 +86,4 @@ namespace WixToolset.Data.Symbols set => this.Set((int)PatchMetadataSymbolFields.Value, value); } } -} \ No newline at end of file +} diff --git a/src/WixToolset.Data/Symbols/UpgradeSymbol.cs b/src/WixToolset.Data/Symbols/UpgradeSymbol.cs index d8deee73..51eb74ef 100644 --- a/src/WixToolset.Data/Symbols/UpgradeSymbol.cs +++ b/src/WixToolset.Data/Symbols/UpgradeSymbol.cs @@ -45,6 +45,29 @@ namespace WixToolset.Data.Symbols ActionProperty, } + public static class WixUpgradeConstants + { + /// + /// Standard property for detecting upgrades. + /// + public const string UpgradeDetectedProperty = "WIX_UPGRADE_DETECTED"; + + /// + /// Standard condition to prevent upgrades. + /// + public const string UpgradePreventedCondition = "NOT WIX_UPGRADE_DETECTED"; + + /// + /// Standard property for downgrade detected. + /// + public const string DowngradeDetectedProperty = "WIX_DOWNGRADE_DETECTED"; + + /// + /// Standard condition to prevent downgrades. + /// + public const string DowngradePreventedCondition = "NOT WIX_DOWNGRADE_DETECTED"; + } + public class UpgradeSymbol : IntermediateSymbol { public UpgradeSymbol() : base(SymbolDefinitions.Upgrade, null, null) diff --git a/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs index c4f4324d..344fc058 100644 --- a/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs @@ -20,6 +20,8 @@ namespace WixToolset.Data namespace WixToolset.Data.Symbols { + using System; + public enum WixPatchIdSymbolFields { ClientPatchId, @@ -27,6 +29,34 @@ namespace WixToolset.Data.Symbols ApiPatchingSymbolFlags, } + /// + /// The following flags are used with PATCH_OPTION_DATA SymbolOptionFlags: + /// + [Flags] + [CLSCompliant(false)] + public enum PatchSymbolFlags : uint + { + /// + /// Don't use imagehlp.dll + /// + PatchSymbolNoImagehlp = 0x00000001, + + /// + /// Don't fail patch due to imagehlp failures. + /// + PatchSymbolNoFailures = 0x00000002, + + /// + /// After matching decorated symbols, try to match remaining by undecorated names. + /// + PatchSymbolUndecoratedToo = 0x00000004, + + /// + /// (used internally) + /// + PatchSymbolReserved = 0x80000000, + } + public class WixPatchIdSymbol : IntermediateSymbol { public WixPatchIdSymbol() : base(SymbolDefinitions.WixPatchId, null, null) -- cgit v1.2.3-55-g6feb From 8bb7f447b3a44c6f7dfeb3a413c402903f72386f Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 15 Mar 2021 20:41:08 -0400 Subject: Demote CollidingModularizationTypes from error to warning --- src/WixToolset.Data/ErrorMessages.cs | 5 ----- src/WixToolset.Data/WarningMessages.cs | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index 34192da4..ffd975e3 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -168,11 +168,6 @@ namespace WixToolset.Data return Message(null, Ids.CircularSearchReference, "A circular reference of search ordering constraints was detected: {0}. Search ordering references must form a directed acyclic graph.", chain); } - public static Message CollidingModularizationTypes(string tableName, string columnName, string foreignTableName, int foreignColumnNumber, string modularizationType, string foreignModularizationType) - { - return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: table '{0}' uses type {4} and table '{2}' uses type {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); - } - public static Message ComponentExpectedFeature(SourceLineNumber sourceLineNumbers, string component, string type, string target) { return Message(sourceLineNumbers, Ids.ComponentExpectedFeature, "The component '{0}' is not assigned to a feature. The component's {1} '{2}' requires it to be assigned to at least one feature.", component, type, target); diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index edd06981..4e261f4c 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -678,6 +678,11 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.VersionTruncated, "Product version {0} in package '{1}' is not valid per the MSI SDK and cannot be represented in a bundle. It has been truncated to {2}.", originalVersion, package, truncatedVersion); } + public static Message CollidingModularizationTypes(string tableName, string columnName, string foreignTableName, int foreignColumnNumber, string modularizationType, string foreignModularizationType) + { + return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: table '{0}' uses type {4} and table '{2}' uses type {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); + } + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) { return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, format, args); @@ -815,6 +820,7 @@ namespace WixToolset.Data DetectConditionRecommended = 1153, ExperimentalBundlePlatform = 1154, DefiningWellKnownDirectoryDeprecated = 1155, + CollidingModularizationTypes = 1156, } } } -- cgit v1.2.3-55-g6feb From 98162d13605a22d897a3ad1ba134024eebe9f5d4 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 16 Mar 2021 07:39:16 -0700 Subject: Add standard constructors to WixException --- src/WixToolset.Data/WixException.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WixException.cs b/src/WixToolset.Data/WixException.cs index e27e3584..77dadcd2 100644 --- a/src/WixToolset.Data/WixException.cs +++ b/src/WixToolset.Data/WixException.cs @@ -10,6 +10,30 @@ namespace WixToolset.Data [Serializable] public class WixException : Exception { + /// + /// Instantiate a new WixException. + /// + public WixException() + { + } + + /// + /// Instantiate a new WixException with a simple string message. + /// + /// Simple string message. + public WixException(string message) : base(message) + { + } + + /// + /// Instantiate a new WixException with a simple message and exception. + /// + /// Simple string message. + /// Inner exception. + public WixException(string message, Exception innerException) : base(message, innerException) + { + } + /// /// Instantiate a new WixException with a given WixError. /// -- cgit v1.2.3-55-g6feb From 19e92bd1fde66afe6592c186bbfd23d5da9e90ee Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 16 Mar 2021 15:21:38 -0700 Subject: Add error detail to UnableToResetAcls message --- src/WixToolset.Data/WarningMessages.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 4e261f4c..60be6dea 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -608,9 +608,9 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.UnableToFindFileFromCabOrImage, "Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break.", existingFileSpec, srcFileSpec); } - public static Message UnableToResetAcls() + public static Message UnableToResetAcls(string error) { - return Message(null, Ids.UnableToResetAcls, "Unable to reset acls on destination files."); + return Message(null, Ids.UnableToResetAcls, "Unable to reset acls on destination files. Exception detail: {0}", error); } public static Message UnclearShortcut(SourceLineNumber sourceLineNumbers, string shortcutId, string fileId, string componentId) -- cgit v1.2.3-55-g6feb From 958d089f2a09b01c497d0bec8014bdfcea6313c3 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 19 Mar 2021 10:25:49 -0700 Subject: Add warning for defaulting an invalid environment variable value --- src/WixToolset.Data/WarningMessages.cs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 60be6dea..db3b35e3 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -683,6 +683,11 @@ namespace WixToolset.Data return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: table '{0}' uses type {4} and table '{2}' uses type {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); } + public static Message InvalidEnvironmentVariable(string environmentVariable, string value, string defaultValue) + { + return Message(null, Ids.InvalidEnvironmentVariable, "The {0} environment variable is set to an invalid value of '{1}'. The default value '{2}' will be used instead.", environmentVariable, value, defaultValue); + } + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) { return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, format, args); @@ -821,6 +826,7 @@ namespace WixToolset.Data ExperimentalBundlePlatform = 1154, DefiningWellKnownDirectoryDeprecated = 1155, CollidingModularizationTypes = 1156, + InvalidEnvironmentVariable = 1157, } } } -- cgit v1.2.3-55-g6feb From 828e1415ca07c694d4890a58595d0d1bac8c7f92 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 21 Mar 2021 19:31:28 -0400 Subject: UX is so 2012 --- src/WixToolset.Data/WarningMessages.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index db3b35e3..681f2c21 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -655,7 +655,7 @@ namespace WixToolset.Data public static Message UxPayloadsOnlySupportEmbedding(SourceLineNumber sourceLineNumbers, string sourceFile) { - return Message(sourceLineNumbers, Ids.UxPayloadsOnlySupportEmbedding, "A UX Payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, UX Payloads must be embedded in the Bundle, so the requested packaging is being ignored.", sourceFile); + return Message(sourceLineNumbers, Ids.UxPayloadsOnlySupportEmbedding, "A bootstrapper application payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, bootstrapper application payloads must be embedded in the bundle, so the requested packaging is being ignored.", sourceFile); } public static Message ValidationFailedDueToSystemPolicy() -- cgit v1.2.3-55-g6feb From 67ffa696f20f169dd1c1c47261731c9a6e036a4e Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 21 Mar 2021 21:48:45 -0400 Subject: Clean up some obsolete deprecation warnings. --- src/WixToolset.Data/WarningMessages.cs | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 681f2c21..835c5ef4 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -167,16 +167,6 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.DeprecatedLongNameAttribute, "The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute.", elementName, longNameAttributeName, nameAttributeName, shortNameAttributeName); } - public static Message DeprecatedModuleGuidAttribute(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.DeprecatedModuleGuidAttribute, "The Module/@Guid attribute is deprecated merge modules use their package code as the modularization guid. Use the Package/@Id attribute instead."); - } - - public static Message DeprecatedPackageCompressedAttribute(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.DeprecatedPackageCompressedAttribute, "The Package/@Compressed attribute is deprecated under the Module element because merge modules must always be compressed."); - } - public static Message DeprecatedPatchSequenceTargetAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) { return Message(sourceLineNumbers, Ids.DeprecatedPatchSequenceTargetAttribute, "The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family.", elementName, attributeName); @@ -762,7 +752,6 @@ namespace WixToolset.Data DeprecatedIgnoreModularizationElement = 1085, PropertyModularizationSuppressed = 1086, DeprecatedPackageCompressedAttribute = 1087, - DeprecatedModuleGuidAttribute = 1088, DeprecatedQuestionMarksGuid = 1090, PackageCodeSet = 1091, InvalidModuleOrBundleVersion = 1093, -- cgit v1.2.3-55-g6feb From f2b9979b1d1922cf3f45d4317fda224f192ae533 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 23 Mar 2021 01:22:35 -0700 Subject: Remove invalid package reference from Payload symbol Part of fix for wixtoolset/issues#6370 --- src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs | 8 -------- src/WixToolset.Data/Symbols/WixGroupSymbol.cs | 3 ++- 2 files changed, 2 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs index f267531a..82b75285 100644 --- a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs @@ -21,7 +21,6 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.PackageRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EmbeddedId), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.LayoutOnly), IntermediateFieldType.Bool), @@ -49,7 +48,6 @@ namespace WixToolset.Data.Symbols Version, Hash, ContainerRef, - PackageRef, ContentFile, EmbeddedId, LayoutOnly, @@ -135,12 +133,6 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundlePayloadSymbolFields.ContainerRef, value); } - public string PackageRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.PackageRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.PackageRef, value); - } - public bool ContentFile { get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.ContentFile]; diff --git a/src/WixToolset.Data/Symbols/WixGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixGroupSymbol.cs index babcff23..f8adf78d 100644 --- a/src/WixToolset.Data/Symbols/WixGroupSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixGroupSymbol.cs @@ -21,7 +21,7 @@ namespace WixToolset.Data namespace WixToolset.Data.Symbols { - using System; + using System.Diagnostics; public enum WixGroupSymbolFields { @@ -31,6 +31,7 @@ namespace WixToolset.Data.Symbols ChildType, } + [DebuggerDisplay("WixGroupSymbol {ParentType} {ParentId,nq} -> {ChildType} {ChildId,nq}")] public class WixGroupSymbol : IntermediateSymbol { public WixGroupSymbol() : base(SymbolDefinitions.WixGroup, null, null) -- cgit v1.2.3-55-g6feb From f7de7f52a790e989a42fc48935dc61c93f3f4137 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 23 Mar 2021 12:18:42 -0700 Subject: Consolidate ProvidesDependencySymbol into WixDependencyProviderSymbol Part of wixtoolset/issues#6388 --- .../Symbols/ProvidesDependencySymbol.cs | 84 ---------------------- src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 3 - .../Symbols/WixDependencyProviderSymbol.cs | 15 ++-- 3 files changed, 9 insertions(+), 93 deletions(-) delete mode 100644 src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs b/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs deleted file mode 100644 index 8d8cb02b..00000000 --- a/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ProvidesDependency = new IntermediateSymbolDefinition( - SymbolDefinitionType.ProvidesDependency, - new[] - { - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Imported), IntermediateFieldType.Bool), - }, - typeof(ProvidesDependencySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ProvidesDependencySymbolFields - { - PackageRef, - Key, - Version, - DisplayName, - Attributes, - Imported, - } - - public class ProvidesDependencySymbol : IntermediateSymbol - { - public ProvidesDependencySymbol() : base(SymbolDefinitions.ProvidesDependency, null, null) - { - } - - public ProvidesDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProvidesDependency, sourceLineNumber, id) - { - } - - public IntermediateField this[ProvidesDependencySymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.PackageRef]; - set => this.Set((int)ProvidesDependencySymbolFields.PackageRef, value); - } - - public string Key - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Key]; - set => this.Set((int)ProvidesDependencySymbolFields.Key, value); - } - - public string Version - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Version]; - set => this.Set((int)ProvidesDependencySymbolFields.Version, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)ProvidesDependencySymbolFields.DisplayName]; - set => this.Set((int)ProvidesDependencySymbolFields.DisplayName, value); - } - - public int? Attributes - { - get => (int?)this.Fields[(int)ProvidesDependencySymbolFields.Attributes]; - set => this.Set((int)ProvidesDependencySymbolFields.Attributes, value); - } - - public bool Imported - { - get => (bool)this.Fields[(int)ProvidesDependencySymbolFields.Imported]; - set => this.Set((int)ProvidesDependencySymbolFields.Imported, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index 9bb8bcfb..54deb87f 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -461,9 +461,6 @@ namespace WixToolset.Data case SymbolDefinitionType.Property: return SymbolDefinitions.Property; - case SymbolDefinitionType.ProvidesDependency: - return SymbolDefinitions.ProvidesDependency; - case SymbolDefinitionType.PublishComponent: return SymbolDefinitions.PublishComponent; diff --git a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs index a4604a9c..0212bfab 100644 --- a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs @@ -10,7 +10,7 @@ namespace WixToolset.Data SymbolDefinitionType.WixDependencyProvider, new[] { - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ParentRef), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String), @@ -27,7 +27,7 @@ namespace WixToolset.Data.Symbols public enum WixDependencyProviderSymbolFields { - ComponentRef, + ParentRef, ProviderKey, Version, DisplayName, @@ -37,7 +37,8 @@ namespace WixToolset.Data.Symbols [Flags] public enum WixDependencyProviderAttributes { - ProvidesAttributesBundle = 0x10000 + ProvidesAttributesBundle = 0x10000, + ProvidesAttributesImported = 0x20000 } public class WixDependencyProviderSymbol : IntermediateSymbol @@ -52,10 +53,10 @@ namespace WixToolset.Data.Symbols public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index]; - public string ComponentRef + public string ParentRef { - get => this.Fields[(int)WixDependencyProviderSymbolFields.ComponentRef].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.ComponentRef, value); + get => this.Fields[(int)WixDependencyProviderSymbolFields.ParentRef].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.ParentRef, value); } public string ProviderKey @@ -83,5 +84,7 @@ namespace WixToolset.Data.Symbols } public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle; + + public bool Imported => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesImported) == WixDependencyProviderAttributes.ProvidesAttributesImported; } } -- cgit v1.2.3-55-g6feb From a0dd2bc561ee6aa6b7aebedcff76c8a11e14bc9f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 26 Mar 2021 15:38:00 -0700 Subject: Make the IntermediateSection and IntermediateSymbol less mutable --- src/WixToolset.Data/Intermediate.cs | 2 +- src/WixToolset.Data/IntermediateSection.cs | 49 +++++++++++++++++--- .../IntermediateSectionExtensions.cs | 14 ------ src/WixToolset.Data/IntermediateSymbol.cs | 53 ++++++++++++++++++++-- .../IntermediateSymbolDefinition.cs | 8 ++-- src/test/WixToolsetTest.Data/SerializeFixture.cs | 18 ++++---- 6 files changed, 105 insertions(+), 39 deletions(-) delete mode 100644 src/WixToolset.Data/IntermediateSectionExtensions.cs (limited to 'src') diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index f9d33839..05ffdbf6 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -47,7 +47,7 @@ namespace WixToolset.Data public string Id { get; } /// - /// Get the id for the intermediate. + /// Get the level of the intermediate. /// public string Level { get; private set; } diff --git a/src/WixToolset.Data/IntermediateSection.cs b/src/WixToolset.Data/IntermediateSection.cs index cd001d5c..86aa0c89 100644 --- a/src/WixToolset.Data/IntermediateSection.cs +++ b/src/WixToolset.Data/IntermediateSection.cs @@ -11,18 +11,22 @@ namespace WixToolset.Data /// public class IntermediateSection { + private readonly List symbols; + /// /// Creates a new section as part of an intermediate. /// /// Identifier for section. /// Type of section. /// Codepage for resulting database. - public IntermediateSection(string id, SectionType type, int codepage) + /// Optional compilation identifier + public IntermediateSection(string id, SectionType type, int codepage, string compilationId = null) { this.Id = id; this.Type = type; this.Codepage = codepage; - this.Symbols = new List(); + this.CompilationId = compilationId; + this.symbols = new List(); } /// @@ -41,22 +45,53 @@ namespace WixToolset.Data /// Gets the codepage for the section. /// /// Codepage for the section. - public int Codepage { get; set; } + public int Codepage { get; } /// /// Gets and sets the identifier of the compilation of the source file containing the section. /// - public string CompilationId { get; set; } + public string CompilationId { get; } /// /// Gets and sets the identifier of the library that combined the section. /// - public string LibraryId { get; set; } + public string LibraryId { get; private set; } /// /// Symbols in the section. /// - public IList Symbols { get; } + public IReadOnlyCollection Symbols => this.symbols; + + /// + /// Adds a symbol to the section. + /// + /// Type of IntermediateSymbol to add to the section. + /// Symbol to add to the section. + /// Symbol added to the section. + public T AddSymbol(T symbol) where T : IntermediateSymbol + { + this.symbols.Add(symbol); + return symbol; + } + + /// + /// Assigns the section to a library. + /// + /// Identifier of the library. + public void AssignToLibrary(string libraryId) + { + this.LibraryId = libraryId; + } + + /// + /// Removes a symbol from the section. + /// + /// Symbol to remove. + /// True if the symbol was removed; otherwise false. + public bool RemoveSymbol(IntermediateSymbol symbol) + { + return this.symbols.Remove(symbol); + } /// /// Parse a section from the JSON data. @@ -79,7 +114,7 @@ namespace WixToolset.Data foreach (JsonObject symbolJson in symbolsJson) { var symbol = IntermediateSymbol.Deserialize(creator, baseUri, symbolJson); - section.Symbols.Add(symbol); + section.symbols.Add(symbol); } return section; diff --git a/src/WixToolset.Data/IntermediateSectionExtensions.cs b/src/WixToolset.Data/IntermediateSectionExtensions.cs deleted file mode 100644 index 80e64eaa..00000000 --- a/src/WixToolset.Data/IntermediateSectionExtensions.cs +++ /dev/null @@ -1,14 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public static class IntermediateSectionExtensions - { - public static T AddSymbol(this IntermediateSection section, T symbol) - where T : IntermediateSymbol - { - section.Symbols.Add(symbol); - return symbol; - } - } -} diff --git a/src/WixToolset.Data/IntermediateSymbol.cs b/src/WixToolset.Data/IntermediateSymbol.cs index 408be37c..4be17094 100644 --- a/src/WixToolset.Data/IntermediateSymbol.cs +++ b/src/WixToolset.Data/IntermediateSymbol.cs @@ -6,15 +6,28 @@ namespace WixToolset.Data using System.Diagnostics; using SimpleJson; + /// + /// Intermediate symbol. + /// [DebuggerDisplay("{DebuggerDisplay,nq}")] public class IntermediateSymbol { private object tags; + /// + /// Creates an intermediate symbol. + /// + /// Symbol definition. public IntermediateSymbol(IntermediateSymbolDefinition definition) : this(definition, null, null) { } + /// + /// Creates an intermediate symbol with source line number and identifier. + /// + /// Symbol definition. + /// Source line number. + /// Symbol identifier. public IntermediateSymbol(IntermediateSymbolDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) { this.Definition = definition; @@ -23,18 +36,40 @@ namespace WixToolset.Data this.Id = id; } + /// + /// Gets the symbol's definition. + /// public IntermediateSymbolDefinition Definition { get; } + /// + /// Gets the symbol's fields. + /// public IntermediateField[] Fields { get; } - public SourceLineNumber SourceLineNumbers { get; set; } - - public Identifier Id { get; set; } - + /// + /// Gets the optional source line number of the symbol. + /// + public SourceLineNumber SourceLineNumbers { get; internal set; } + + /// + /// Gets the optional identifier for the symbol. + /// + public Identifier Id { get; internal set; } + + /// + /// Direct access by index to the symbol's fields. + /// + /// Index of the field to access. + /// Symbol's field. public IntermediateField this[int index] => this.Fields[index]; private string DebuggerDisplay => $"{this.Definition?.Name} {this.Id?.Id}"; + /// + /// Add a custom tag to the symbol. + /// + /// String tag to add to the symbol. + /// True if the tag was added; otherwise false if th tag was already present. public bool AddTag(string add) { if (this.tags == null) @@ -73,6 +108,11 @@ namespace WixToolset.Data return true; } + /// + /// Tests whether a symbol has a tag. + /// + /// String tag to find. + /// True if the symbol has the tag; otherwise false. public bool HasTag(string has) { if (this.tags == null) @@ -97,6 +137,11 @@ namespace WixToolset.Data return false; } + /// + /// Removes a tag from the symbol. + /// + /// String tag to remove. + /// True if the tag was removed; otherwise false if the tag was not present. public bool RemoveTag(string remove) { if (this.tags is string tag) diff --git a/src/WixToolset.Data/IntermediateSymbolDefinition.cs b/src/WixToolset.Data/IntermediateSymbolDefinition.cs index 102a9f5c..dc913704 100644 --- a/src/WixToolset.Data/IntermediateSymbolDefinition.cs +++ b/src/WixToolset.Data/IntermediateSymbolDefinition.cs @@ -48,11 +48,11 @@ namespace WixToolset.Data public IntermediateSymbol CreateSymbol(SourceLineNumber sourceLineNumber = null, Identifier id = null) { - var result = (this.StrongSymbolType == typeof(IntermediateSymbol)) ? (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType, this) : (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType); - result.SourceLineNumbers = sourceLineNumber; - result.Id = id; + var symbol = (this.StrongSymbolType == typeof(IntermediateSymbol)) ? (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType, this) : (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType); + symbol.SourceLineNumbers = sourceLineNumber; + symbol.Id = id; - return result; + return symbol; } public bool AddTag(string add) diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index 56d08bc9..ff39cb33 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -22,7 +22,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", @@ -64,7 +64,7 @@ namespace WixToolsetTest.Data var sln = new SourceLineNumber("test.wxs", 1); var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", @@ -91,7 +91,7 @@ namespace WixToolsetTest.Data wixout.Reopen(writable: true); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "NewComponent")) + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "NewComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), }); @@ -135,7 +135,7 @@ namespace WixToolsetTest.Data symbol.Set(1, 2); symbol.Set(2, true); - section.Symbols.Add(symbol); + section.AddSymbol(symbol); var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); @@ -179,7 +179,7 @@ namespace WixToolsetTest.Data symbol.Set(2, true); var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(symbol); + section.AddSymbol(symbol); var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); @@ -201,7 +201,7 @@ namespace WixToolsetTest.Data symbol2.Set(3, "baz"); var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); - section2.Symbols.Add(symbol2); + section2.AddSymbol(symbol2); var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); @@ -262,7 +262,7 @@ namespace WixToolsetTest.Data symbol.AddTag("symbol1tag"); var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(symbol); + section.AddSymbol(symbol); var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); @@ -290,7 +290,7 @@ namespace WixToolsetTest.Data symbol2.AddTag("symbol2tag2"); var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); - section2.Symbols.Add(symbol2); + section2.AddSymbol(symbol2); var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); @@ -356,7 +356,7 @@ namespace WixToolsetTest.Data var section = new IntermediateSection("test", SectionType.Product, 65001); - section.Symbols.Add(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), DirectoryRef = "TestFolder", -- cgit v1.2.3-55-g6feb From 4bb99d4a7521f3182b3d8ea9833038dc067db118 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 2 Apr 2021 14:28:56 -0700 Subject: Move codepage from section and to package, module, patch symbols Contributes to wixtoolset/issues#5801 --- src/WixToolset.Data/IntermediateSection.cs | 16 +-- src/WixToolset.Data/Localization.cs | 29 ++++-- .../Symbols/ModuleSignatureSymbol.cs | 60 ----------- src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 14 ++- src/WixToolset.Data/Symbols/WixModuleSymbol.cs | 68 +++++++++++++ src/WixToolset.Data/Symbols/WixPackageSymbol.cs | 111 +++++++++++++++++++++ src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs | 90 ----------------- src/WixToolset.Data/Symbols/WixPatchSymbol.cs | 98 ++++++++++++++++++ .../WindowsInstallerTableDefinitions.cs | 2 +- src/test/WixToolsetTest.Data/SerializeFixture.cs | 18 ++-- 10 files changed, 321 insertions(+), 185 deletions(-) delete mode 100644 src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixModuleSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs create mode 100644 src/WixToolset.Data/Symbols/WixPatchSymbol.cs (limited to 'src') diff --git a/src/WixToolset.Data/IntermediateSection.cs b/src/WixToolset.Data/IntermediateSection.cs index 86aa0c89..b9157875 100644 --- a/src/WixToolset.Data/IntermediateSection.cs +++ b/src/WixToolset.Data/IntermediateSection.cs @@ -18,13 +18,11 @@ namespace WixToolset.Data /// /// Identifier for section. /// Type of section. - /// Codepage for resulting database. /// Optional compilation identifier - public IntermediateSection(string id, SectionType type, int codepage, string compilationId = null) + public IntermediateSection(string id, SectionType type, string compilationId = null) { this.Id = id; this.Type = type; - this.Codepage = codepage; this.CompilationId = compilationId; this.symbols = new List(); } @@ -41,12 +39,6 @@ namespace WixToolset.Data /// Type of section. public SectionType Type { get; } - /// - /// Gets the codepage for the section. - /// - /// Codepage for the section. - public int Codepage { get; } - /// /// Gets and sets the identifier of the compilation of the source file containing the section. /// @@ -98,7 +90,6 @@ namespace WixToolset.Data ///
internal static IntermediateSection Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) { - var codepage = jsonObject.GetValueOrDefault("codepage", 0); var id = jsonObject.GetValueOrDefault("id"); var type = jsonObject.GetEnumOrDefault("type", SectionType.Unknown); @@ -107,7 +98,7 @@ namespace WixToolset.Data throw new ArgumentException("JSON object is not a valid section, unknown section type", nameof(type)); } - var section = new IntermediateSection(id, type, codepage); + var section = new IntermediateSection(id, type); var symbolsJson = jsonObject.GetValueOrDefault("symbols"); @@ -124,8 +115,7 @@ namespace WixToolset.Data { var jsonObject = new JsonObject { - { "type", this.Type.ToString().ToLowerInvariant() }, - { "codepage", this.Codepage } + { "type", this.Type.ToString().ToLowerInvariant() } }; if (!String.IsNullOrEmpty(this.Id)) diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index 7ce765f4..70c096de 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs @@ -18,9 +18,10 @@ namespace WixToolset.Data /// /// Instantiates a new localization object. /// - public Localization(int codepage, string culture, IDictionary variables, IDictionary localizedControls) + public Localization(int? codepage, int? summaryInformationCodepage, string culture, IDictionary variables, IDictionary localizedControls) { this.Codepage = codepage; + this.SummaryInformationCodepage = summaryInformationCodepage; this.Culture = culture?.ToLowerInvariant() ?? String.Empty; this.variables = new Dictionary(variables); this.localizedControls = new Dictionary(localizedControls); @@ -30,7 +31,13 @@ namespace WixToolset.Data /// Gets the codepage. /// /// The codepage. - public int Codepage { get; private set; } + public int? Codepage { get; private set; } + + /// + /// Gets the summary information codepage. + /// + /// The summary information codepage. + public int? SummaryInformationCodepage { get; private set; } /// /// Gets the culture. @@ -52,10 +59,17 @@ namespace WixToolset.Data internal JsonObject Serialize() { - var jsonObject = new JsonObject + var jsonObject = new JsonObject(); + + if (this.Codepage.HasValue) { - { "codepage", this.Codepage }, - }; + jsonObject.Add("codepage", this.Codepage.Value); + } + + if (this.SummaryInformationCodepage.HasValue) + { + jsonObject.Add("summaryCodepage", this.SummaryInformationCodepage.Value); + } jsonObject.AddIsNotNullOrEmpty("culture", this.Culture); @@ -94,7 +108,8 @@ namespace WixToolset.Data internal static Localization Deserialize(JsonObject jsonObject) { - var codepage = jsonObject.GetValueOrDefault("codepage", 0); + var codepage = jsonObject.GetValueOrDefault("codepage", null); + var summaryCodepage = jsonObject.GetValueOrDefault("summaryCodepage", null); var culture = jsonObject.GetValueOrDefault("culture"); var variables = new Dictionary(); @@ -116,7 +131,7 @@ namespace WixToolset.Data } } - return new Localization(codepage, culture, variables, controls); + return new Localization(codepage, summaryCodepage, culture, variables, controls); } } } diff --git a/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs b/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs deleted file mode 100644 index 5f6ded09..00000000 --- a/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleSignature = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleSignature, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Version), IntermediateFieldType.String), - }, - typeof(ModuleSignatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleSignatureSymbolFields - { - ModuleID, - Language, - Version, - } - - public class ModuleSignatureSymbol : IntermediateSymbol - { - public ModuleSignatureSymbol() : base(SymbolDefinitions.ModuleSignature, null, null) - { - } - - public ModuleSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSignature, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleSignatureSymbolFields index] => this.Fields[(int)index]; - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleSignatureSymbolFields.ModuleID]; - set => this.Set((int)ModuleSignatureSymbolFields.ModuleID, value); - } - - public int Language - { - get => (int)this.Fields[(int)ModuleSignatureSymbolFields.Language]; - set => this.Set((int)ModuleSignatureSymbolFields.Language, value); - } - - public string Version - { - get => (string)this.Fields[(int)ModuleSignatureSymbolFields.Version]; - set => this.Set((int)ModuleSignatureSymbolFields.Version, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs index 54deb87f..0ed0a4ec 100644 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -56,7 +56,7 @@ namespace WixToolset.Data ModuleDependency, ModuleExclusion, ModuleIgnoreTable, - ModuleSignature, + WixModule, ModuleSubstitution, MoveFile, Assembly, @@ -172,9 +172,10 @@ namespace WixToolset.Data WixMediaTemplate, WixMerge, WixOrdering, + WixPackage, WixPatchBaseline, WixPatchFamilyGroup, - WixPatchId, + WixPatch, WixPatchRef, WixPatchTarget, WixProductSearch, @@ -362,8 +363,8 @@ namespace WixToolset.Data case SymbolDefinitionType.ModuleIgnoreTable: return SymbolDefinitions.ModuleIgnoreTable; - case SymbolDefinitionType.ModuleSignature: - return SymbolDefinitions.ModuleSignature; + case SymbolDefinitionType.WixModule: + return SymbolDefinitions.WixModule; case SymbolDefinitionType.ModuleSubstitution: return SymbolDefinitions.ModuleSubstitution; @@ -707,13 +708,16 @@ namespace WixToolset.Data case SymbolDefinitionType.WixOrdering: return SymbolDefinitions.WixOrdering; + case SymbolDefinitionType.WixPackage: + return SymbolDefinitions.WixPackage; + case SymbolDefinitionType.WixPatchBaseline: return SymbolDefinitions.WixPatchBaseline; case SymbolDefinitionType.WixPatchFamilyGroup: return SymbolDefinitions.WixPatchFamilyGroup; - case SymbolDefinitionType.WixPatchId: + case SymbolDefinitionType.WixPatch: return SymbolDefinitions.WixPatchId; case SymbolDefinitionType.WixPatchRef: diff --git a/src/WixToolset.Data/Symbols/WixModuleSymbol.cs b/src/WixToolset.Data/Symbols/WixModuleSymbol.cs new file mode 100644 index 00000000..fbb16764 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixModuleSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixModule = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixModule, + new[] + { + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.ModuleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Codepage), IntermediateFieldType.String), + }, + typeof(WixModuleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixModuleSymbolFields + { + ModuleId, + Language, + Version, + Codepage, + } + + public class WixModuleSymbol : IntermediateSymbol + { + public WixModuleSymbol() : base(SymbolDefinitions.WixModule, null, null) + { + } + + public WixModuleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixModule, sourceLineNumber, id) + { + } + + public IntermediateField this[WixModuleSymbolFields index] => this.Fields[(int)index]; + + public string ModuleId + { + get => (string)this.Fields[(int)WixModuleSymbolFields.ModuleId]; + set => this.Set((int)WixModuleSymbolFields.ModuleId, value); + } + + public string Language + { + get => (string)this.Fields[(int)WixModuleSymbolFields.Language]; + set => this.Set((int)WixModuleSymbolFields.Language, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixModuleSymbolFields.Version]; + set => this.Set((int)WixModuleSymbolFields.Version, value); + } + + public string Codepage + { + get => (string)this.Fields[(int)WixModuleSymbolFields.Codepage]; + set => this.Set((int)WixModuleSymbolFields.Codepage, value); + } + } +} diff --git a/src/WixToolset.Data/Symbols/WixPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixPackageSymbol.cs new file mode 100644 index 00000000..e1720033 --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPackageSymbol.cs @@ -0,0 +1,111 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.PackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Codepage), IntermediateFieldType.String), + }, + typeof(WixPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixPackageSymbolFields + { + PackageId, + UpgradeCode, + Name, + Language, + Version, + Manufacturer, + Attributes, + Codepage, + } + + [Flags] + public enum WixPackageAttributes + { + None = 0x0, + PerMachine = 0x1, + } + + public class WixPackageSymbol : IntermediateSymbol + { + public WixPackageSymbol() : base(SymbolDefinitions.WixPackage, null, null) + { + } + + public WixPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPackageSymbolFields index] => this.Fields[(int)index]; + + public string PackageId + { + get => (string)this.Fields[(int)WixPackageSymbolFields.PackageId]; + set => this.Set((int)WixPackageSymbolFields.PackageId, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixPackageSymbolFields.UpgradeCode]; + set => this.Set((int)WixPackageSymbolFields.UpgradeCode, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Name]; + set => this.Set((int)WixPackageSymbolFields.Name, value); + } + + public string Language + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Language]; + set => this.Set((int)WixPackageSymbolFields.Language, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Version]; + set => this.Set((int)WixPackageSymbolFields.Version, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixPackageSymbolFields.Manufacturer, value); + } + + public WixPackageAttributes Attributes + { + get => (WixPackageAttributes)this.Fields[(int)WixPackageSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixPackageSymbolFields.Attributes, (int)value); + } + + public string Codepage + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Codepage]; + set => this.Set((int)WixPackageSymbolFields.Codepage, value); + } + + public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine; + } +} diff --git a/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs deleted file mode 100644 index 344fc058..00000000 --- a/src/WixToolset.Data/Symbols/WixPatchIdSymbol.cs +++ /dev/null @@ -1,90 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchId, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ClientPatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPatchIdSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), - }, - typeof(WixPatchIdSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixPatchIdSymbolFields - { - ClientPatchId, - OptimizePatchSizeForLargeFiles, - ApiPatchingSymbolFlags, - } - - /// - /// The following flags are used with PATCH_OPTION_DATA SymbolOptionFlags: - /// - [Flags] - [CLSCompliant(false)] - public enum PatchSymbolFlags : uint - { - /// - /// Don't use imagehlp.dll - /// - PatchSymbolNoImagehlp = 0x00000001, - - /// - /// Don't fail patch due to imagehlp failures. - /// - PatchSymbolNoFailures = 0x00000002, - - /// - /// After matching decorated symbols, try to match remaining by undecorated names. - /// - PatchSymbolUndecoratedToo = 0x00000004, - - /// - /// (used internally) - /// - PatchSymbolReserved = 0x80000000, - } - - public class WixPatchIdSymbol : IntermediateSymbol - { - public WixPatchIdSymbol() : base(SymbolDefinitions.WixPatchId, null, null) - { - } - - public WixPatchIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchIdSymbolFields index] => this.Fields[(int)index]; - - public string ClientPatchId - { - get => (string)this.Fields[(int)WixPatchIdSymbolFields.ClientPatchId]; - set => this.Set((int)WixPatchIdSymbolFields.ClientPatchId, value); - } - - public bool? OptimizePatchSizeForLargeFiles - { - get => (bool?)this.Fields[(int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles]; - set => this.Set((int)WixPatchIdSymbolFields.OptimizePatchSizeForLargeFiles, value); - } - - public int? ApiPatchingSymbolFlags - { - get => (int?)this.Fields[(int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags]; - set => this.Set((int)WixPatchIdSymbolFields.ApiPatchingSymbolFlags, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchSymbol.cs new file mode 100644 index 00000000..3f1f20bb --- /dev/null +++ b/src/WixToolset.Data/Symbols/WixPatchSymbol.cs @@ -0,0 +1,98 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatch, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ClientPatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.Codepage), IntermediateFieldType.String), + }, + typeof(WixPatchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixPatchSymbolFields + { + ClientPatchId, + OptimizePatchSizeForLargeFiles, + ApiPatchingSymbolFlags, + Codepage, + } + + /// + /// The following flags are used with PATCH_OPTION_DATA SymbolOptionFlags: + /// + [Flags] + [CLSCompliant(false)] + public enum PatchSymbolFlags : uint + { + /// + /// Don't use imagehlp.dll + /// + PatchSymbolNoImagehlp = 0x00000001, + + /// + /// Don't fail patch due to imagehlp failures. + /// + PatchSymbolNoFailures = 0x00000002, + + /// + /// After matching decorated symbols, try to match remaining by undecorated names. + /// + PatchSymbolUndecoratedToo = 0x00000004, + + /// + /// (used internally) + /// + PatchSymbolReserved = 0x80000000, + } + + public class WixPatchSymbol : IntermediateSymbol + { + public WixPatchSymbol() : base(SymbolDefinitions.WixPatchId, null, null) + { + } + + public WixPatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchSymbolFields index] => this.Fields[(int)index]; + + public string ClientPatchId + { + get => (string)this.Fields[(int)WixPatchSymbolFields.ClientPatchId]; + set => this.Set((int)WixPatchSymbolFields.ClientPatchId, value); + } + + public bool? OptimizePatchSizeForLargeFiles + { + get => (bool?)this.Fields[(int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles]; + set => this.Set((int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles, value); + } + + public int? ApiPatchingSymbolFlags + { + get => (int?)this.Fields[(int)WixPatchSymbolFields.ApiPatchingSymbolFlags]; + set => this.Set((int)WixPatchSymbolFields.ApiPatchingSymbolFlags, value); + } + + public string Codepage + { + get => (string)this.Fields[(int)WixPatchSymbolFields.Codepage]; + set => this.Set((int)WixPatchSymbolFields.Codepage, value); + } + } +} \ No newline at end of file diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs index dab5ed02..a64593ec 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -1440,7 +1440,7 @@ namespace WixToolset.Data.WindowsInstaller public static readonly TableDefinition ModuleSignature = new TableDefinition( "ModuleSignature", - SymbolDefinitions.ModuleSignature, + SymbolDefinitions.WixModule, new[] { new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Module identifier (String.GUID).", modularizeType: ColumnModularizeType.Column), diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs index ff39cb33..8a65c2d4 100644 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ b/src/test/WixToolsetTest.Data/SerializeFixture.cs @@ -20,7 +20,7 @@ namespace WixToolsetTest.Data { var sln = new SourceLineNumber("test.wxs", 1); - var section = new IntermediateSection("test", SectionType.Product, 65001); + var section = new IntermediateSection("test", SectionType.Product); section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { @@ -62,7 +62,7 @@ namespace WixToolsetTest.Data public void CanUpdateIntermediate() { var sln = new SourceLineNumber("test.wxs", 1); - var section = new IntermediateSection("test", SectionType.Product, 65001); + var section = new IntermediateSection("test", SectionType.Product); section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { @@ -119,7 +119,7 @@ namespace WixToolsetTest.Data { var sln = new SourceLineNumber("test.wxs", 1); - var section = new IntermediateSection("test", SectionType.Product, 65001); + var section = new IntermediateSection("test", SectionType.Product); var fieldDefs = new[] { @@ -178,7 +178,7 @@ namespace WixToolsetTest.Data symbol.Set(1, 2); symbol.Set(2, true); - var section = new IntermediateSection("test", SectionType.Product, 65001); + var section = new IntermediateSection("test", SectionType.Product); section.AddSymbol(symbol); var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); @@ -200,7 +200,7 @@ namespace WixToolsetTest.Data symbol2.Set(2, false); symbol2.Set(3, "baz"); - var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); + var section2 = new IntermediateSection("test2", SectionType.Fragment); section2.AddSymbol(symbol2); var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); @@ -261,7 +261,7 @@ namespace WixToolsetTest.Data symbol.AddTag("symbol1tag"); - var section = new IntermediateSection("test", SectionType.Product, 65001); + var section = new IntermediateSection("test", SectionType.Product); section.AddSymbol(symbol); var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); @@ -289,7 +289,7 @@ namespace WixToolsetTest.Data symbol2.AddTag("symbol2tag1"); symbol2.AddTag("symbol2tag2"); - var section2 = new IntermediateSection("test2", SectionType.Fragment, 65001); + var section2 = new IntermediateSection("test2", SectionType.Fragment); section2.AddSymbol(symbol2); var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); @@ -351,10 +351,10 @@ namespace WixToolsetTest.Data var localizations = new[] { - new Localization(65001, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey())) + new Localization(65001, 1252, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey())) }; - var section = new IntermediateSection("test", SectionType.Product, 65001); + var section = new IntermediateSection("test", SectionType.Product); section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { -- cgit v1.2.3-55-g6feb From 80ef64aa4351d715c8de14984534b80ce22c5ebd Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Fri, 2 Apr 2021 14:29:33 -0700 Subject: Standardize on .NET Core v3.1 --- src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj index d35ba853..fb0f8594 100644 --- a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj +++ b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj @@ -1,7 +1,7 @@ - netcoreapp2.1 + netcoreapp3.1 false -- cgit v1.2.3-55-g6feb From b21d9d170e21c7a22e484f8d3740bca8bcaba47e Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 6 Apr 2021 15:57:20 -0700 Subject: Remove unused warning message --- src/WixToolset.Data/WarningMessages.cs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 835c5ef4..35f95af6 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -577,11 +577,6 @@ namespace WixToolset.Data return Message(null, Ids.TargetDirCorrectedDefaultDir, "The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output."); } - public static Message DefiningWellKnownDirectoryDeprecated(SourceLineNumber sourceLineNumbers, string directoryId) - { - return Message(sourceLineNumbers, Ids.DefiningWellKnownDirectoryDeprecated, "It is no longer necessary to define Directory with Id '{0}'. One will be provided automatically. Remove the Directory element.", directoryId); - } - public static Message TooManyProgIds(SourceLineNumber sourceLineNumbers, string clsId, string progId, string otherClsId) { return Message(sourceLineNumbers, Ids.TooManyProgIds, "Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output.", clsId, progId, otherClsId); @@ -813,7 +808,7 @@ namespace WixToolset.Data PathCanonicalized = 1152, DetectConditionRecommended = 1153, ExperimentalBundlePlatform = 1154, - DefiningWellKnownDirectoryDeprecated = 1155, + CollidingModularizationTypes = 1156, InvalidEnvironmentVariable = 1157, } -- cgit v1.2.3-55-g6feb From 98c54e6a6dbf6dd8944eef12fa43a5cf79a2895d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 10 Apr 2021 15:06:58 -0700 Subject: Improve duplicate GUID messages --- src/WixToolset.Data/ErrorMessages.cs | 6 +++--- src/WixToolset.Data/WarningMessages.cs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs index ffd975e3..86504f60 100644 --- a/src/WixToolset.Data/ErrorMessages.cs +++ b/src/WixToolset.Data/ErrorMessages.cs @@ -278,9 +278,9 @@ namespace WixToolset.Data return Message(null, Ids.DuplicateCommandLineOptionInExtension, "The command line option '{0}' has already been loaded by another Heat extension.", arg); } - public static Message DuplicateComponentGuids(SourceLineNumber sourceLineNumbers, string componentId, string guid) + public static Message DuplicateComponentGuids(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) { - return Message(sourceLineNumbers, Ids.DuplicateComponentGuids, "Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID.", componentId, guid); + return Message(sourceLineNumbers, Ids.DuplicateComponentGuids, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath); } public static Message DuplicateContextValue(SourceLineNumber sourceLineNumbers, string contextValue) @@ -686,7 +686,7 @@ namespace WixToolset.Data public static Message FinishCabFailed() { - return Message(null, Ids.FinishCabFailed, "An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element."); + return Message(null, Ids.FinishCabFailed, "An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it or a compressed size greater than 2GB. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element."); } public static Message FullTempDirectory(string prefix, string directory) diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index 35f95af6..cf8fdfd9 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -242,9 +242,9 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForEmbeddedPayloads, "The Payload '{0}' is embedded but included a @DownloadUrl attribute. Embedded Payloads cannot be downloaded so the download URL is being ignored.", payloadId); } - public static Message DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(SourceLineNumber sourceLineNumbers, string componentId, string guid) + public static Message DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) { - return Message(sourceLineNumbers, Ids.DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions, "Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer but works as long as all components have mutually-exclusive conditions. It is recommended to give each component its own unique GUID.", componentId, guid); + return Message(sourceLineNumbers, Ids.DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer and cannot be used when creating patches. It otherwise works as long as all components with the same GUID have mutually-exclusive conditions. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath); } public static Message DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) -- cgit v1.2.3-55-g6feb From c9c92ff83b24d6ed055032f62e833090ea4f8d9c Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 10 Apr 2021 15:15:02 -0700 Subject: Add support for RepairCondition on Exe, Msi and Msp packages --- src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs | 8 ++++++++ src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs | 8 ++++++++ src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs | 8 ++++++++ 3 files changed, 24 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs index 8a8cff1b..f377adca 100644 --- a/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs @@ -16,6 +16,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCommand), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.UninstallCommand), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.ExeProtocol), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCondition), IntermediateFieldType.String), }, typeof(WixBundleExePackageSymbol)); } @@ -33,6 +34,7 @@ namespace WixToolset.Data.Symbols RepairCommand, UninstallCommand, ExeProtocol, + RepairCondition, } [Flags] @@ -89,6 +91,12 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); } + public string RepairCondition + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.RepairCondition]; + set => this.Set((int)WixBundleExePackageSymbolFields.RepairCondition, value); + } + public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); } } diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs index 21735f64..ef7ba34e 100644 --- a/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs @@ -17,6 +17,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductLanguage), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.RepairCondition), IntermediateFieldType.String), }, typeof(WixBundleMsiPackageSymbol)); } @@ -35,6 +36,7 @@ namespace WixToolset.Data.Symbols ProductLanguage, ProductName, Manufacturer, + RepairCondition, } [Flags] @@ -98,6 +100,12 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundleMsiPackageSymbolFields.Manufacturer, value); } + public string RepairCondition + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.RepairCondition]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.RepairCondition, value); + } + public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; diff --git a/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs index 3784c2ff..d4aa19a2 100644 --- a/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs @@ -14,6 +14,7 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Manufacturer), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchXml), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.RepairCondition), IntermediateFieldType.String), }, typeof(WixBundleMspPackageSymbol)); } @@ -29,6 +30,7 @@ namespace WixToolset.Data.Symbols PatchCode, Manufacturer, PatchXml, + RepairCondition, } [Flags] @@ -74,6 +76,12 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundleMspPackageSymbolFields.PatchXml, value); } + public string RepairCondition + { + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.RepairCondition]; + set => this.Set((int)WixBundleMspPackageSymbolFields.RepairCondition, value); + } + public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; -- cgit v1.2.3-55-g6feb From 9728166b827e8010494fbcb18ab734bb6d523c9b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 19 Apr 2021 16:08:25 -0700 Subject: Prefer IReadOnlyCollection<> or IReadOnlyList<> over IEnumerable<> Part of wixtoolset/issues#6422 --- src/WixToolset.Data/Intermediate.cs | 34 ++++++++++++++++++---- .../WindowsInstaller/WindowsInstallerStandard.cs | 4 +-- 2 files changed, 30 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 05ffdbf6..37fe7549 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -18,6 +18,7 @@ namespace WixToolset.Data private const string WixOutputStreamName = "wix-ir.json"; private readonly Dictionary localizationsByCulture; + private readonly List sections; /// /// Instantiate a new Intermediate. @@ -26,7 +27,7 @@ namespace WixToolset.Data { this.Id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); this.localizationsByCulture = new Dictionary(StringComparer.OrdinalIgnoreCase); - this.Sections = new List(); + this.sections = new List(); } public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture) : this(id, level: null, sections, localizationsByCulture) @@ -38,7 +39,7 @@ namespace WixToolset.Data this.Id = id; this.Level = level; this.localizationsByCulture = (localizationsByCulture != null) ? new Dictionary(localizationsByCulture, StringComparer.OrdinalIgnoreCase) : new Dictionary(StringComparer.OrdinalIgnoreCase); - this.Sections = (sections != null) ? new List(sections) : new List(); + this.sections = (sections != null) ? new List(sections) : new List(); } /// @@ -54,12 +55,12 @@ namespace WixToolset.Data /// /// Get the localizations contained in this intermediate. /// - public IEnumerable Localizations => this.localizationsByCulture.Values; + public IReadOnlyCollection Localizations => this.localizationsByCulture.Values; /// /// Get the sections contained in this intermediate. /// - public IList Sections { get; } + public IReadOnlyCollection Sections => this.sections; /// /// Loads an intermediate from a path on disk. @@ -146,7 +147,7 @@ namespace WixToolset.Data /// /// Paths to intermediate files saved on disk. /// Returns the loaded intermediates - public static IEnumerable Load(IEnumerable intermediateFiles) + public static IReadOnlyList Load(IEnumerable intermediateFiles) { var creator = new SimpleSymbolDefinitionCreator(); return Intermediate.Load(intermediateFiles, creator); @@ -159,7 +160,7 @@ namespace WixToolset.Data /// ISymbolDefinitionCreator to use when reconstituting the intermediates. /// Suppress checking for wix.dll version mismatches. /// Returns the loaded intermediates - public static IEnumerable Load(IEnumerable intermediateFiles, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) + public static IReadOnlyList Load(IEnumerable intermediateFiles, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) { var jsons = new Queue(); var intermediates = new List(); @@ -189,6 +190,27 @@ namespace WixToolset.Data return intermediates; } + /// + /// Adds a section to the intermedaite. + /// + /// Section to add to the intermediate. + /// Section added to the intermediate. + public IntermediateSection AddSection(IntermediateSection section) + { + this.sections.Add(section); + return section; + } + + /// + /// Removes a section from the intermediate. + /// + /// Section to remove. + /// True if the section was removed; otherwise false. + public bool Removesection(IntermediateSection section) + { + return this.sections.Remove(section); + } + /// /// Updates the intermediate level to the specified level. /// diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 0e6092b3..b6930b79 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -414,12 +414,12 @@ namespace WixToolset.Data.WindowsInstaller /// /// Standard actions. /// - public static IEnumerable StandardActions() => standardActionsById.Values; + public static IReadOnlyCollection StandardActions() => standardActionsById.Values; /// /// Standard directories. /// - public static IEnumerable StandardDirectories() => standardDirectoriesById.Values; + public static IReadOnlyCollection StandardDirectories() => standardDirectoriesById.Values; /// /// Gets the platform specific directory id for a directory. Most directories are not platform -- cgit v1.2.3-55-g6feb From edae7b1bca72bb805f4e2c52ac3f89f8e068522b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 19 Apr 2021 23:14:44 -0500 Subject: Fix typo. --- src/WixToolset.Data/Intermediate.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index 37fe7549..64f9810d 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs @@ -206,7 +206,7 @@ namespace WixToolset.Data /// /// Section to remove. /// True if the section was removed; otherwise false. - public bool Removesection(IntermediateSection section) + public bool RemoveSection(IntermediateSection section) { return this.sections.Remove(section); } -- cgit v1.2.3-55-g6feb From d7af012f12bb22fa3e862d536c6906ad67316abc Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 20 Apr 2021 02:08:09 -0700 Subject: Undo RepairCondition until a more complete design is done --- src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs | 8 -------- src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs | 8 -------- src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs | 8 -------- 3 files changed, 24 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs index f377adca..8a8cff1b 100644 --- a/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs @@ -16,7 +16,6 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCommand), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.UninstallCommand), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.ExeProtocol), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCondition), IntermediateFieldType.String), }, typeof(WixBundleExePackageSymbol)); } @@ -34,7 +33,6 @@ namespace WixToolset.Data.Symbols RepairCommand, UninstallCommand, ExeProtocol, - RepairCondition, } [Flags] @@ -91,12 +89,6 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); } - public string RepairCondition - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.RepairCondition]; - set => this.Set((int)WixBundleExePackageSymbolFields.RepairCondition, value); - } - public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); } } diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs index ef7ba34e..21735f64 100644 --- a/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs @@ -17,7 +17,6 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductLanguage), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductName), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.RepairCondition), IntermediateFieldType.String), }, typeof(WixBundleMsiPackageSymbol)); } @@ -36,7 +35,6 @@ namespace WixToolset.Data.Symbols ProductLanguage, ProductName, Manufacturer, - RepairCondition, } [Flags] @@ -100,12 +98,6 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundleMsiPackageSymbolFields.Manufacturer, value); } - public string RepairCondition - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.RepairCondition]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.RepairCondition, value); - } - public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; diff --git a/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs index d4aa19a2..3784c2ff 100644 --- a/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs @@ -14,7 +14,6 @@ namespace WixToolset.Data new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchCode), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Manufacturer), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchXml), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.RepairCondition), IntermediateFieldType.String), }, typeof(WixBundleMspPackageSymbol)); } @@ -30,7 +29,6 @@ namespace WixToolset.Data.Symbols PatchCode, Manufacturer, PatchXml, - RepairCondition, } [Flags] @@ -76,12 +74,6 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixBundleMspPackageSymbolFields.PatchXml, value); } - public string RepairCondition - { - get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.RepairCondition]; - set => this.Set((int)WixBundleMspPackageSymbolFields.RepairCondition, value); - } - public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; -- cgit v1.2.3-55-g6feb From e51932ea0bac331b128dba9809f00c7d393c7a9b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 25 Apr 2021 15:38:03 -0500 Subject: Enable better bundle validation. --- src/WixToolset.Data/Burn/BurnConstants.cs | 2 ++ src/WixToolset.Data/ComplexReferenceChildType.cs | 3 +++ src/WixToolset.Data/WarningMessages.cs | 6 +++--- 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Data/Burn/BurnConstants.cs b/src/WixToolset.Data/Burn/BurnConstants.cs index 65bfb4df..484b144d 100644 --- a/src/WixToolset.Data/Burn/BurnConstants.cs +++ b/src/WixToolset.Data/Burn/BurnConstants.cs @@ -6,6 +6,8 @@ namespace WixToolset.Data.Burn { public const string BurnUXContainerName = "WixUXContainer"; public const string BurnDefaultAttachedContainerName = "WixAttachedContainer"; + public const string BundleChainPackageGroupId = "WixChain"; + public const string BundleDefaultBoundaryId = "WixDefaultBoundary"; public const string BundleLayoutOnlyPayloadsName = "BundleLayoutOnlyPayloads"; public const string BurnManifestWixOutputStreamName = "wix-burndata.xml"; diff --git a/src/WixToolset.Data/ComplexReferenceChildType.cs b/src/WixToolset.Data/ComplexReferenceChildType.cs index 62e233b6..a5d4e7ac 100644 --- a/src/WixToolset.Data/ComplexReferenceChildType.cs +++ b/src/WixToolset.Data/ComplexReferenceChildType.cs @@ -45,5 +45,8 @@ namespace WixToolset.Data /// PatchFamilyGroup child of complex reference. PatchFamilyGroup, + + /// ContainerPackage child of complex reference. + ContainerPackage, } } diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs index cf8fdfd9..78ed87af 100644 --- a/src/WixToolset.Data/WarningMessages.cs +++ b/src/WixToolset.Data/WarningMessages.cs @@ -237,9 +237,9 @@ namespace WixToolset.Data return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForAttachedContainers, "The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored.", containerId); } - public static Message DownloadUrlNotSupportedForEmbeddedPayloads(SourceLineNumber sourceLineNumbers, string payloadId) + public static Message DownloadUrlNotSupportedForBAPayloads(SourceLineNumber sourceLineNumbers, string payloadId) { - return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForEmbeddedPayloads, "The Payload '{0}' is embedded but included a @DownloadUrl attribute. Embedded Payloads cannot be downloaded so the download URL is being ignored.", payloadId); + return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForBAPayloads, "The BootstrapperApplication Payload '{0}' included a @DownloadUrl attribute. BootstrapperApplication Payloads cannot be downloaded so the download URL is being ignored.", payloadId); } public static Message DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) @@ -785,7 +785,7 @@ namespace WixToolset.Data DiscardedRollbackBoundary = 1129, DeprecatedElement = 1130, CannotUpdateCabCache = 1131, - DownloadUrlNotSupportedForEmbeddedPayloads = 1132, + DownloadUrlNotSupportedForBAPayloads = 1132, DiscouragedAllUsersValue = 1133, ImplicitlyPerUser = 1134, PerUserButForcingPerMachine = 1135, -- cgit v1.2.3-55-g6feb From 9e83fcb193e2358b21f6caa10b1fc9f6059018b0 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 22 Apr 2021 06:01:58 -0700 Subject: Move Data into API/wix --- .editorconfig | 37 - README.md | 3 - WixToolset.Data.sln | 61 - WixToolset.Data.v3.ncrunchsolution | 6 - appveyor.cmd | 19 - appveyor.yml | 42 - nuget.config | 8 - src/.editorconfig | 37 + src/Custom.Build.props | 6 - src/Directory.Build.props | 27 - src/Directory.Build.targets | 51 - src/Directory.csproj.props | 13 - src/Directory.csproj.targets | 25 - src/WixToolset.Data/AccessModifier.cs | 99 - src/WixToolset.Data/AssemblyInfo.cs | 9 - src/WixToolset.Data/Bind/BindVariable.cs | 62 - src/WixToolset.Data/Burn/BurnConstants.cs | 26 - src/WixToolset.Data/ComplexReferenceChildType.cs | 52 - src/WixToolset.Data/ComplexReferenceParentType.cs | 49 - src/WixToolset.Data/ComponentKeyPathType.cs | 27 - src/WixToolset.Data/CompressionLevel.cs | 25 - src/WixToolset.Data/Data/messages.xml | 4038 -------------------- src/WixToolset.Data/DictionaryExtensions.cs | 14 - src/WixToolset.Data/DisplayEventArgs.cs | 15 - src/WixToolset.Data/EmptyRule.cs | 22 - src/WixToolset.Data/ErrorMessages.cs | 2731 ------------- src/WixToolset.Data/ISymbolDefinitionCreator.cs | 11 - src/WixToolset.Data/Identifier.cs | 77 - src/WixToolset.Data/Intermediate.cs | 484 --- src/WixToolset.Data/IntermediateField.cs | 56 - src/WixToolset.Data/IntermediateFieldContext.cs | 38 - src/WixToolset.Data/IntermediateFieldDefinition.cs | 26 - src/WixToolset.Data/IntermediateFieldExtensions.cs | 481 --- src/WixToolset.Data/IntermediateFieldPathValue.cs | 26 - src/WixToolset.Data/IntermediateFieldValue.cs | 146 - .../IntermediateFieldValueExtensions.cs | 161 - src/WixToolset.Data/IntermediateLevels.cs | 10 - src/WixToolset.Data/IntermediateSection.cs | 139 - src/WixToolset.Data/IntermediateSymbol.cs | 300 -- .../IntermediateSymbolDefinition.cs | 270 -- .../IntermediateSymbolExtensions.cs | 121 - src/WixToolset.Data/Json/JsonObjectExtensions.cs | 79 - src/WixToolset.Data/Json/SimpleJson.cs | 2127 ----------- src/WixToolset.Data/Localization.cs | 137 - src/WixToolset.Data/LocalizedControl.cs | 94 - src/WixToolset.Data/Message.cs | 97 - src/WixToolset.Data/MessageLevel.cs | 25 - src/WixToolset.Data/OutputType.cs | 37 - src/WixToolset.Data/PackagingType.cs | 11 - src/WixToolset.Data/PdbType.cs | 16 - src/WixToolset.Data/Platform.cs | 19 - src/WixToolset.Data/SectionType.cs | 31 - .../SimpleSymbolDefinitionCreator.cs | 31 - src/WixToolset.Data/SourceLineNumber.cs | 275 -- src/WixToolset.Data/Symbols/ActionTextSymbol.cs | 60 - src/WixToolset.Data/Symbols/AppIdSymbol.cs | 92 - src/WixToolset.Data/Symbols/AppSearchSymbol.cs | 52 - src/WixToolset.Data/Symbols/AssemblySymbol.cs | 96 - src/WixToolset.Data/Symbols/BBControlSymbol.cs | 180 - src/WixToolset.Data/Symbols/BillboardSymbol.cs | 60 - src/WixToolset.Data/Symbols/BinarySymbol.cs | 44 - src/WixToolset.Data/Symbols/CCPSearchSymbol.cs | 36 - src/WixToolset.Data/Symbols/CheckBoxSymbol.cs | 52 - src/WixToolset.Data/Symbols/ClassSymbol.cs | 140 - src/WixToolset.Data/Symbols/ComboBoxSymbol.cs | 68 - src/WixToolset.Data/Symbols/CompLocatorSymbol.cs | 60 - src/WixToolset.Data/Symbols/ComplusSymbol.cs | 52 - src/WixToolset.Data/Symbols/ComponentSymbol.cs | 155 - src/WixToolset.Data/Symbols/ConditionSymbol.cs | 60 - .../Symbols/ControlConditionSymbol.cs | 68 - src/WixToolset.Data/Symbols/ControlEventSymbol.cs | 84 - src/WixToolset.Data/Symbols/ControlSymbol.cs | 303 -- src/WixToolset.Data/Symbols/CreateFolderSymbol.cs | 52 - src/WixToolset.Data/Symbols/CustomActionSymbol.cs | 168 - src/WixToolset.Data/Symbols/DialogSymbol.cs | 188 - src/WixToolset.Data/Symbols/DirectorySymbol.cs | 84 - src/WixToolset.Data/Symbols/DrLocatorSymbol.cs | 68 - src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs | 76 - src/WixToolset.Data/Symbols/EnvironmentSymbol.cs | 114 - src/WixToolset.Data/Symbols/ErrorSymbol.cs | 44 - src/WixToolset.Data/Symbols/EventMappingSymbol.cs | 68 - src/WixToolset.Data/Symbols/ExtensionSymbol.cs | 76 - src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs | 100 - .../Symbols/FamilyFileRangesSymbol.cs | 68 - .../Symbols/FeatureComponentsSymbol.cs | 52 - src/WixToolset.Data/Symbols/FeatureSymbol.cs | 129 - .../Symbols/FileSFPCatalogSymbol.cs | 52 - src/WixToolset.Data/Symbols/FileSymbol.cs | 256 -- src/WixToolset.Data/Symbols/IconSymbol.cs | 44 - src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs | 84 - src/WixToolset.Data/Symbols/IniFileSymbol.cs | 100 - src/WixToolset.Data/Symbols/IniLocatorSymbol.cs | 84 - .../Symbols/InifFileActionSymbol.cs | 13 - .../Symbols/IsolatedComponentSymbol.cs | 52 - .../Symbols/LaunchConditionSymbol.cs | 52 - src/WixToolset.Data/Symbols/ListBoxSymbol.cs | 68 - src/WixToolset.Data/Symbols/ListViewSymbol.cs | 76 - src/WixToolset.Data/Symbols/LocatorSymbol.cs | 12 - .../Symbols/LockPermissionsSymbol.cs | 157 - src/WixToolset.Data/Symbols/MIMESymbol.cs | 60 - src/WixToolset.Data/Symbols/MediaSymbol.cs | 100 - .../Symbols/ModuleComponentsSymbol.cs | 60 - .../Symbols/ModuleConfigurationSymbol.cs | 116 - .../Symbols/ModuleDependencySymbol.cs | 76 - .../Symbols/ModuleExclusionSymbol.cs | 84 - .../Symbols/ModuleIgnoreTableSymbol.cs | 36 - .../Symbols/ModuleSubstitutionSymbol.cs | 68 - src/WixToolset.Data/Symbols/MoveFileSymbol.cs | 92 - .../Symbols/MsiAssemblyNameSymbol.cs | 60 - .../Symbols/MsiDigitalCertificateSymbol.cs | 44 - .../Symbols/MsiDigitalSignatureSymbol.cs | 68 - .../Symbols/MsiEmbeddedChainerSymbol.cs | 68 - src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs | 76 - src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs | 76 - .../Symbols/MsiLockPermissionsExSymbol.cs | 68 - .../Symbols/MsiPackageCertificateSymbol.cs | 52 - .../Symbols/MsiPatchCertificateSymbol.cs | 52 - .../Symbols/MsiPatchHeadersSymbol.cs | 52 - .../Symbols/MsiPatchMetadataSymbol.cs | 60 - .../Symbols/MsiPatchOldAssemblyFileSymbol.cs | 52 - .../Symbols/MsiPatchOldAssemblyNameSymbol.cs | 60 - .../Symbols/MsiPatchSequenceSymbol.cs | 68 - .../MsiServiceConfigFailureActionsSymbol.cs | 116 - .../Symbols/MsiServiceConfigSymbol.cs | 101 - .../Symbols/MsiShortcutPropertySymbol.cs | 60 - src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs | 60 - .../Symbols/ODBCDataSourceSymbol.cs | 68 - src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs | 68 - .../Symbols/ODBCSourceAttributeSymbol.cs | 60 - .../Symbols/ODBCTranslatorSymbol.cs | 68 - src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs | 89 - src/WixToolset.Data/Symbols/PatchPackageSymbol.cs | 52 - src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs | 68 - src/WixToolset.Data/Symbols/PatchSymbol.cs | 84 - src/WixToolset.Data/Symbols/ProgIdSymbol.cs | 84 - src/WixToolset.Data/Symbols/PropertiesSymbol.cs | 52 - src/WixToolset.Data/Symbols/PropertySymbol.cs | 44 - .../Symbols/PublishComponentSymbol.cs | 76 - src/WixToolset.Data/Symbols/RadioButtonSymbol.cs | 108 - src/WixToolset.Data/Symbols/RegLocatorSymbol.cs | 83 - src/WixToolset.Data/Symbols/RegistryRootType.cs | 21 - src/WixToolset.Data/Symbols/RegistrySymbol.cs | 108 - src/WixToolset.Data/Symbols/RemoveFileSymbol.cs | 84 - .../Symbols/RemoveRegistrySymbol.cs | 82 - src/WixToolset.Data/Symbols/ReserveCostSymbol.cs | 68 - src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs | 60 - .../Symbols/ServiceControlSymbol.cs | 116 - .../Symbols/ServiceInstallSymbol.cs | 173 - src/WixToolset.Data/Symbols/ShortcutSymbol.cs | 171 - src/WixToolset.Data/Symbols/SignatureSymbol.cs | 100 - .../Symbols/SoftwareIdentificationTagSymbol.cs | 76 - .../Symbols/SummaryInformationSymbol.cs | 102 - src/WixToolset.Data/Symbols/SymbolDefinitions.cs | 776 ---- .../Symbols/TargetFilesOptionalDataSymbol.cs | 84 - src/WixToolset.Data/Symbols/TargetImagesSymbol.cs | 92 - src/WixToolset.Data/Symbols/TextStyleSymbol.cs | 114 - src/WixToolset.Data/Symbols/TransformsFlags.cs | 79 - src/WixToolset.Data/Symbols/TypeLibSymbol.cs | 100 - src/WixToolset.Data/Symbols/UITextSymbol.cs | 44 - src/WixToolset.Data/Symbols/UpgradeSymbol.cs | 155 - .../Symbols/UpgradedFilesOptionalDataSymbol.cs | 76 - .../Symbols/UpgradedFilesToIgnoreSymbol.cs | 52 - .../Symbols/UpgradedImagesSymbol.cs | 76 - src/WixToolset.Data/Symbols/VerbSymbol.cs | 76 - src/WixToolset.Data/Symbols/WixActionSymbol.cs | 101 - .../Symbols/WixApprovedExeForElevationSymbol.cs | 71 - .../Symbols/WixBindUpdatedFilesSymbol.cs | 44 - .../Symbols/WixBootstrapperApplicationDllSymbol.cs | 53 - .../Symbols/WixBootstrapperApplicationSymbol.cs | 36 - src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs | 68 - .../Symbols/WixBundleContainerSymbol.cs | 103 - .../Symbols/WixBundleCustomDataAttributeSymbol.cs | 52 - .../Symbols/WixBundleCustomDataCellSymbol.cs | 68 - .../Symbols/WixBundleCustomDataSymbol.cs | 71 - .../Symbols/WixBundleExePackagePayloadSymbol.cs | 36 - .../Symbols/WixBundleExePackageSymbol.cs | 94 - .../Symbols/WixBundleExtensionSymbol.cs | 44 - .../Symbols/WixBundleMsiFeatureSymbol.cs | 116 - .../Symbols/WixBundleMsiPackagePayloadSymbol.cs | 36 - .../Symbols/WixBundleMsiPackageSymbol.cs | 105 - .../Symbols/WixBundleMsiPropertySymbol.cs | 68 - .../Symbols/WixBundleMspPackagePayloadSymbol.cs | 36 - .../Symbols/WixBundleMspPackageSymbol.cs | 81 - .../Symbols/WixBundleMsuPackagePayloadSymbol.cs | 36 - .../Symbols/WixBundleMsuPackageSymbol.cs | 52 - .../Symbols/WixBundlePackageCommandLineSymbol.cs | 76 - .../Symbols/WixBundlePackageExitCodeSymbol.cs | 71 - .../Symbols/WixBundlePackageGroupSymbol.cs | 36 - .../Symbols/WixBundlePackageSymbol.cs | 212 - .../Symbols/WixBundlePatchTargetCodeSymbol.cs | 82 - .../Symbols/WixBundlePayloadGroupSymbol.cs | 36 - .../Symbols/WixBundlePayloadSymbol.cs | 166 - .../Symbols/WixBundleRelatedPackageSymbol.cs | 104 - .../Symbols/WixBundleRollbackBoundarySymbol.cs | 52 - .../Symbols/WixBundleSlipstreamMspSymbol.cs | 52 - src/WixToolset.Data/Symbols/WixBundleSymbol.cs | 234 -- src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs | 84 - .../Symbols/WixBundleUpdateSymbol.cs | 52 - .../Symbols/WixBundleVariableSymbol.cs | 79 - src/WixToolset.Data/Symbols/WixChainItemSymbol.cs | 36 - src/WixToolset.Data/Symbols/WixChainSymbol.cs | 61 - .../Symbols/WixComplexReferenceSymbol.cs | 86 - .../Symbols/WixComponentGroupSymbol.cs | 44 - .../Symbols/WixComponentSearchSymbol.cs | 70 - .../Symbols/WixCustomTableCellSymbol.cs | 68 - .../Symbols/WixCustomTableColumnSymbol.cs | 203 - .../Symbols/WixCustomTableSymbol.cs | 56 - .../Symbols/WixDeltaPatchFileSymbol.cs | 84 - .../Symbols/WixDeltaPatchSymbolPathsSymbol.cs | 73 - .../Symbols/WixDependencyProviderSymbol.cs | 90 - .../Symbols/WixDependencyRefSymbol.cs | 52 - src/WixToolset.Data/Symbols/WixDependencySymbol.cs | 82 - .../Symbols/WixEnsureTableSymbol.cs | 44 - .../Symbols/WixFeatureGroupSymbol.cs | 36 - .../Symbols/WixFeatureModulesSymbol.cs | 52 - src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs | 125 - src/WixToolset.Data/Symbols/WixFragmentSymbol.cs | 36 - src/WixToolset.Data/Symbols/WixGroupSymbol.cs | 71 - .../Symbols/WixInstanceComponentSymbol.cs | 44 - .../Symbols/WixInstanceTransformsSymbol.cs | 68 - .../Symbols/WixMediaTemplateSymbol.cs | 86 - src/WixToolset.Data/Symbols/WixMergeSymbol.cs | 92 - src/WixToolset.Data/Symbols/WixModuleSymbol.cs | 68 - src/WixToolset.Data/Symbols/WixOrderingSymbol.cs | 68 - src/WixToolset.Data/Symbols/WixPackageSymbol.cs | 111 - .../Symbols/WixPatchBaselineSymbol.cs | 76 - .../Symbols/WixPatchFamilyGroupSymbol.cs | 44 - src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs | 52 - src/WixToolset.Data/Symbols/WixPatchSymbol.cs | 98 - .../Symbols/WixPatchTargetSymbol.cs | 44 - .../Symbols/WixProductSearchSymbol.cs | 64 - src/WixToolset.Data/Symbols/WixProductTagSymbol.cs | 68 - src/WixToolset.Data/Symbols/WixPropertySymbol.cs | 68 - .../Symbols/WixRegistrySearchSymbol.cs | 81 - .../Symbols/WixRelatedBundleSymbol.cs | 60 - .../Symbols/WixSearchRelationSymbol.cs | 52 - src/WixToolset.Data/Symbols/WixSearchSymbol.cs | 60 - .../Symbols/WixSetVariableSymbol.cs | 54 - .../Symbols/WixSimpleReferenceSymbol.cs | 62 - .../Symbols/WixSuppressActionSymbol.cs | 54 - .../Symbols/WixSuppressModularizationSymbol.cs | 44 - src/WixToolset.Data/Symbols/WixUISymbol.cs | 36 - .../Symbols/WixUpdateRegistrationSymbol.cs | 76 - src/WixToolset.Data/Symbols/WixVariableSymbol.cs | 52 - src/WixToolset.Data/VerboseMessages.cs | 234 -- src/WixToolset.Data/WarningMessages.cs | 816 ---- .../WindowsInstaller/ColumnCategory.cs | 91 - .../WindowsInstaller/ColumnDefinition.cs | 702 ---- .../WindowsInstaller/ColumnModularizeType.cs | 37 - src/WixToolset.Data/WindowsInstaller/ColumnType.cs | 28 - src/WixToolset.Data/WindowsInstaller/Field.cs | 304 -- .../WindowsInstaller/IntermediateLevels.cs | 8 - .../WindowsInstaller/ObjectField.cs | 183 - src/WixToolset.Data/WindowsInstaller/Row.cs | 390 -- .../WindowsInstaller/RowOperation.cs | 30 - .../WindowsInstaller/Rows/BBControlRow.cs | 118 - .../WindowsInstaller/Rows/ComponentRow.cs | 247 -- .../WindowsInstaller/Rows/ControlRow.cs | 148 - .../WindowsInstaller/Rows/FileRow.cs | 214 -- .../WindowsInstaller/Rows/MediaRow.cs | 85 - .../WindowsInstaller/Rows/PropertyRow.cs | 45 - .../Rows/SummaryInfoRowCollection.cs | 41 - .../WindowsInstaller/Rows/UpgradeRow.cs | 95 - .../WindowsInstaller/SequenceTableExtensions.cs | 17 - src/WixToolset.Data/WindowsInstaller/SubStorage.cs | 112 - src/WixToolset.Data/WindowsInstaller/Table.cs | 190 - .../WindowsInstaller/TableDefinition.cs | 267 -- .../WindowsInstaller/TableDefinitionCollection.cs | 201 - .../WindowsInstaller/TableIndexedCollection.cs | 105 - .../WindowsInstaller/TableOperation.cs | 25 - .../WindowsInstaller/WindowsInstallerConstants.cs | 259 -- .../WindowsInstaller/WindowsInstallerData.cs | 323 -- .../WindowsInstaller/WindowsInstallerStandard.cs | 478 --- .../WindowsInstallerTableDefinitions.cs | 1907 --------- .../WixMissingTableDefinitionException.cs | 22 - src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd | 66 - .../WindowsInstaller/Xsd/libraries.xsd | 66 - .../WindowsInstaller/Xsd/objects.xsd | 143 - src/WixToolset.Data/WixCorruptFileException.cs | 29 - src/WixToolset.Data/WixDataStrings.Designer.cs | 90 - src/WixToolset.Data/WixDataStrings.resx | 129 - src/WixToolset.Data/WixException.cs | 63 - src/WixToolset.Data/WixOutput.cs | 279 -- src/WixToolset.Data/WixToolset.Data.csproj | 40 - .../WixToolset.Data.v3.ncrunchproject | 7 - .../WixUnexpectedFileFormatException.cs | 35 - src/WixToolset.Data/YesNoAlwaysType.cs | 25 - src/WixToolset.Data/YesNoDefaultType.cs | 25 - src/WixToolset.Data/YesNoType.cs | 22 - src/api/wix/Custom.Build.props | 6 + src/api/wix/Directory.Build.props | 27 + src/api/wix/Directory.Build.targets | 51 + src/api/wix/Directory.csproj.props | 13 + src/api/wix/Directory.csproj.targets | 25 + src/api/wix/README.md | 3 + src/api/wix/WixToolset.Data.sln | 61 + src/api/wix/WixToolset.Data.v3.ncrunchsolution | 6 + src/api/wix/WixToolset.Data/AccessModifier.cs | 99 + src/api/wix/WixToolset.Data/AssemblyInfo.cs | 9 + src/api/wix/WixToolset.Data/Bind/BindVariable.cs | 62 + src/api/wix/WixToolset.Data/Burn/BurnConstants.cs | 26 + .../WixToolset.Data/ComplexReferenceChildType.cs | 52 + .../WixToolset.Data/ComplexReferenceParentType.cs | 49 + .../wix/WixToolset.Data/ComponentKeyPathType.cs | 27 + src/api/wix/WixToolset.Data/CompressionLevel.cs | 25 + src/api/wix/WixToolset.Data/Data/messages.xml | 4038 ++++++++++++++++++++ .../wix/WixToolset.Data/DictionaryExtensions.cs | 14 + src/api/wix/WixToolset.Data/DisplayEventArgs.cs | 15 + src/api/wix/WixToolset.Data/EmptyRule.cs | 22 + src/api/wix/WixToolset.Data/ErrorMessages.cs | 2731 +++++++++++++ .../WixToolset.Data/ISymbolDefinitionCreator.cs | 11 + src/api/wix/WixToolset.Data/Identifier.cs | 77 + src/api/wix/WixToolset.Data/Intermediate.cs | 484 +++ src/api/wix/WixToolset.Data/IntermediateField.cs | 56 + .../WixToolset.Data/IntermediateFieldContext.cs | 38 + .../WixToolset.Data/IntermediateFieldDefinition.cs | 26 + .../WixToolset.Data/IntermediateFieldExtensions.cs | 481 +++ .../WixToolset.Data/IntermediateFieldPathValue.cs | 26 + .../wix/WixToolset.Data/IntermediateFieldValue.cs | 146 + .../IntermediateFieldValueExtensions.cs | 161 + src/api/wix/WixToolset.Data/IntermediateLevels.cs | 10 + src/api/wix/WixToolset.Data/IntermediateSection.cs | 139 + src/api/wix/WixToolset.Data/IntermediateSymbol.cs | 300 ++ .../IntermediateSymbolDefinition.cs | 270 ++ .../IntermediateSymbolExtensions.cs | 121 + .../WixToolset.Data/Json/JsonObjectExtensions.cs | 79 + src/api/wix/WixToolset.Data/Json/SimpleJson.cs | 2127 +++++++++++ src/api/wix/WixToolset.Data/Localization.cs | 137 + src/api/wix/WixToolset.Data/LocalizedControl.cs | 94 + src/api/wix/WixToolset.Data/Message.cs | 97 + src/api/wix/WixToolset.Data/MessageLevel.cs | 25 + src/api/wix/WixToolset.Data/OutputType.cs | 37 + src/api/wix/WixToolset.Data/PackagingType.cs | 11 + src/api/wix/WixToolset.Data/PdbType.cs | 16 + src/api/wix/WixToolset.Data/Platform.cs | 19 + src/api/wix/WixToolset.Data/SectionType.cs | 31 + .../SimpleSymbolDefinitionCreator.cs | 31 + src/api/wix/WixToolset.Data/SourceLineNumber.cs | 275 ++ .../WixToolset.Data/Symbols/ActionTextSymbol.cs | 60 + src/api/wix/WixToolset.Data/Symbols/AppIdSymbol.cs | 92 + .../wix/WixToolset.Data/Symbols/AppSearchSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/AssemblySymbol.cs | 96 + .../wix/WixToolset.Data/Symbols/BBControlSymbol.cs | 180 + .../wix/WixToolset.Data/Symbols/BillboardSymbol.cs | 60 + .../wix/WixToolset.Data/Symbols/BinarySymbol.cs | 44 + .../wix/WixToolset.Data/Symbols/CCPSearchSymbol.cs | 36 + .../wix/WixToolset.Data/Symbols/CheckBoxSymbol.cs | 52 + src/api/wix/WixToolset.Data/Symbols/ClassSymbol.cs | 140 + .../wix/WixToolset.Data/Symbols/ComboBoxSymbol.cs | 68 + .../WixToolset.Data/Symbols/CompLocatorSymbol.cs | 60 + .../wix/WixToolset.Data/Symbols/ComplusSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/ComponentSymbol.cs | 155 + .../wix/WixToolset.Data/Symbols/ConditionSymbol.cs | 60 + .../Symbols/ControlConditionSymbol.cs | 68 + .../WixToolset.Data/Symbols/ControlEventSymbol.cs | 84 + .../wix/WixToolset.Data/Symbols/ControlSymbol.cs | 303 ++ .../WixToolset.Data/Symbols/CreateFolderSymbol.cs | 52 + .../WixToolset.Data/Symbols/CustomActionSymbol.cs | 168 + .../wix/WixToolset.Data/Symbols/DialogSymbol.cs | 188 + .../wix/WixToolset.Data/Symbols/DirectorySymbol.cs | 84 + .../wix/WixToolset.Data/Symbols/DrLocatorSymbol.cs | 68 + .../WixToolset.Data/Symbols/DuplicateFileSymbol.cs | 76 + .../WixToolset.Data/Symbols/EnvironmentSymbol.cs | 114 + src/api/wix/WixToolset.Data/Symbols/ErrorSymbol.cs | 44 + .../WixToolset.Data/Symbols/EventMappingSymbol.cs | 68 + .../wix/WixToolset.Data/Symbols/ExtensionSymbol.cs | 76 + .../WixToolset.Data/Symbols/ExternalFilesSymbol.cs | 100 + .../Symbols/FamilyFileRangesSymbol.cs | 68 + .../Symbols/FeatureComponentsSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/FeatureSymbol.cs | 129 + .../Symbols/FileSFPCatalogSymbol.cs | 52 + src/api/wix/WixToolset.Data/Symbols/FileSymbol.cs | 256 ++ src/api/wix/WixToolset.Data/Symbols/IconSymbol.cs | 44 + .../WixToolset.Data/Symbols/ImageFamiliesSymbol.cs | 84 + .../wix/WixToolset.Data/Symbols/IniFileSymbol.cs | 100 + .../WixToolset.Data/Symbols/IniLocatorSymbol.cs | 84 + .../Symbols/InifFileActionSymbol.cs | 13 + .../Symbols/IsolatedComponentSymbol.cs | 52 + .../Symbols/LaunchConditionSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/ListBoxSymbol.cs | 68 + .../wix/WixToolset.Data/Symbols/ListViewSymbol.cs | 76 + .../wix/WixToolset.Data/Symbols/LocatorSymbol.cs | 12 + .../Symbols/LockPermissionsSymbol.cs | 157 + src/api/wix/WixToolset.Data/Symbols/MIMESymbol.cs | 60 + src/api/wix/WixToolset.Data/Symbols/MediaSymbol.cs | 100 + .../Symbols/ModuleComponentsSymbol.cs | 60 + .../Symbols/ModuleConfigurationSymbol.cs | 116 + .../Symbols/ModuleDependencySymbol.cs | 76 + .../Symbols/ModuleExclusionSymbol.cs | 84 + .../Symbols/ModuleIgnoreTableSymbol.cs | 36 + .../Symbols/ModuleSubstitutionSymbol.cs | 68 + .../wix/WixToolset.Data/Symbols/MoveFileSymbol.cs | 92 + .../Symbols/MsiAssemblyNameSymbol.cs | 60 + .../Symbols/MsiDigitalCertificateSymbol.cs | 44 + .../Symbols/MsiDigitalSignatureSymbol.cs | 68 + .../Symbols/MsiEmbeddedChainerSymbol.cs | 68 + .../WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs | 76 + .../WixToolset.Data/Symbols/MsiFileHashSymbol.cs | 76 + .../Symbols/MsiLockPermissionsExSymbol.cs | 68 + .../Symbols/MsiPackageCertificateSymbol.cs | 52 + .../Symbols/MsiPatchCertificateSymbol.cs | 52 + .../Symbols/MsiPatchHeadersSymbol.cs | 52 + .../Symbols/MsiPatchMetadataSymbol.cs | 60 + .../Symbols/MsiPatchOldAssemblyFileSymbol.cs | 52 + .../Symbols/MsiPatchOldAssemblyNameSymbol.cs | 60 + .../Symbols/MsiPatchSequenceSymbol.cs | 68 + .../MsiServiceConfigFailureActionsSymbol.cs | 116 + .../Symbols/MsiServiceConfigSymbol.cs | 101 + .../Symbols/MsiShortcutPropertySymbol.cs | 60 + .../WixToolset.Data/Symbols/ODBCAttributeSymbol.cs | 60 + .../Symbols/ODBCDataSourceSymbol.cs | 68 + .../WixToolset.Data/Symbols/ODBCDriverSymbol.cs | 68 + .../Symbols/ODBCSourceAttributeSymbol.cs | 60 + .../Symbols/ODBCTranslatorSymbol.cs | 68 + .../WixToolset.Data/Symbols/PatchMetadataSymbol.cs | 89 + .../WixToolset.Data/Symbols/PatchPackageSymbol.cs | 52 + .../WixToolset.Data/Symbols/PatchSequenceSymbol.cs | 68 + src/api/wix/WixToolset.Data/Symbols/PatchSymbol.cs | 84 + .../wix/WixToolset.Data/Symbols/ProgIdSymbol.cs | 84 + .../WixToolset.Data/Symbols/PropertiesSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/PropertySymbol.cs | 44 + .../Symbols/PublishComponentSymbol.cs | 76 + .../WixToolset.Data/Symbols/RadioButtonSymbol.cs | 108 + .../WixToolset.Data/Symbols/RegLocatorSymbol.cs | 83 + .../WixToolset.Data/Symbols/RegistryRootType.cs | 21 + .../wix/WixToolset.Data/Symbols/RegistrySymbol.cs | 108 + .../WixToolset.Data/Symbols/RemoveFileSymbol.cs | 84 + .../Symbols/RemoveRegistrySymbol.cs | 82 + .../WixToolset.Data/Symbols/ReserveCostSymbol.cs | 68 + .../WixToolset.Data/Symbols/SFPCatalogSymbol.cs | 60 + .../Symbols/ServiceControlSymbol.cs | 116 + .../Symbols/ServiceInstallSymbol.cs | 173 + .../wix/WixToolset.Data/Symbols/ShortcutSymbol.cs | 171 + .../wix/WixToolset.Data/Symbols/SignatureSymbol.cs | 100 + .../Symbols/SoftwareIdentificationTagSymbol.cs | 76 + .../Symbols/SummaryInformationSymbol.cs | 102 + .../WixToolset.Data/Symbols/SymbolDefinitions.cs | 776 ++++ .../Symbols/TargetFilesOptionalDataSymbol.cs | 84 + .../WixToolset.Data/Symbols/TargetImagesSymbol.cs | 92 + .../wix/WixToolset.Data/Symbols/TextStyleSymbol.cs | 114 + .../wix/WixToolset.Data/Symbols/TransformsFlags.cs | 79 + .../wix/WixToolset.Data/Symbols/TypeLibSymbol.cs | 100 + .../wix/WixToolset.Data/Symbols/UITextSymbol.cs | 44 + .../wix/WixToolset.Data/Symbols/UpgradeSymbol.cs | 155 + .../Symbols/UpgradedFilesOptionalDataSymbol.cs | 76 + .../Symbols/UpgradedFilesToIgnoreSymbol.cs | 52 + .../Symbols/UpgradedImagesSymbol.cs | 76 + src/api/wix/WixToolset.Data/Symbols/VerbSymbol.cs | 76 + .../wix/WixToolset.Data/Symbols/WixActionSymbol.cs | 101 + .../Symbols/WixApprovedExeForElevationSymbol.cs | 71 + .../Symbols/WixBindUpdatedFilesSymbol.cs | 44 + .../Symbols/WixBootstrapperApplicationDllSymbol.cs | 53 + .../Symbols/WixBootstrapperApplicationSymbol.cs | 36 + .../WixToolset.Data/Symbols/WixBuildInfoSymbol.cs | 68 + .../Symbols/WixBundleContainerSymbol.cs | 103 + .../Symbols/WixBundleCustomDataAttributeSymbol.cs | 52 + .../Symbols/WixBundleCustomDataCellSymbol.cs | 68 + .../Symbols/WixBundleCustomDataSymbol.cs | 71 + .../Symbols/WixBundleExePackagePayloadSymbol.cs | 36 + .../Symbols/WixBundleExePackageSymbol.cs | 94 + .../Symbols/WixBundleExtensionSymbol.cs | 44 + .../Symbols/WixBundleMsiFeatureSymbol.cs | 116 + .../Symbols/WixBundleMsiPackagePayloadSymbol.cs | 36 + .../Symbols/WixBundleMsiPackageSymbol.cs | 105 + .../Symbols/WixBundleMsiPropertySymbol.cs | 68 + .../Symbols/WixBundleMspPackagePayloadSymbol.cs | 36 + .../Symbols/WixBundleMspPackageSymbol.cs | 81 + .../Symbols/WixBundleMsuPackagePayloadSymbol.cs | 36 + .../Symbols/WixBundleMsuPackageSymbol.cs | 52 + .../Symbols/WixBundlePackageCommandLineSymbol.cs | 76 + .../Symbols/WixBundlePackageExitCodeSymbol.cs | 71 + .../Symbols/WixBundlePackageGroupSymbol.cs | 36 + .../Symbols/WixBundlePackageSymbol.cs | 212 + .../Symbols/WixBundlePatchTargetCodeSymbol.cs | 82 + .../Symbols/WixBundlePayloadGroupSymbol.cs | 36 + .../Symbols/WixBundlePayloadSymbol.cs | 166 + .../Symbols/WixBundleRelatedPackageSymbol.cs | 104 + .../Symbols/WixBundleRollbackBoundarySymbol.cs | 52 + .../Symbols/WixBundleSlipstreamMspSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/WixBundleSymbol.cs | 234 ++ .../WixToolset.Data/Symbols/WixBundleTagSymbol.cs | 84 + .../Symbols/WixBundleUpdateSymbol.cs | 52 + .../Symbols/WixBundleVariableSymbol.cs | 79 + .../WixToolset.Data/Symbols/WixChainItemSymbol.cs | 36 + .../wix/WixToolset.Data/Symbols/WixChainSymbol.cs | 61 + .../Symbols/WixComplexReferenceSymbol.cs | 86 + .../Symbols/WixComponentGroupSymbol.cs | 44 + .../Symbols/WixComponentSearchSymbol.cs | 70 + .../Symbols/WixCustomTableCellSymbol.cs | 68 + .../Symbols/WixCustomTableColumnSymbol.cs | 203 + .../Symbols/WixCustomTableSymbol.cs | 56 + .../Symbols/WixDeltaPatchFileSymbol.cs | 84 + .../Symbols/WixDeltaPatchSymbolPathsSymbol.cs | 73 + .../Symbols/WixDependencyProviderSymbol.cs | 90 + .../Symbols/WixDependencyRefSymbol.cs | 52 + .../WixToolset.Data/Symbols/WixDependencySymbol.cs | 82 + .../Symbols/WixEnsureTableSymbol.cs | 44 + .../Symbols/WixFeatureGroupSymbol.cs | 36 + .../Symbols/WixFeatureModulesSymbol.cs | 52 + .../WixToolset.Data/Symbols/WixFileSearchSymbol.cs | 125 + .../WixToolset.Data/Symbols/WixFragmentSymbol.cs | 36 + .../wix/WixToolset.Data/Symbols/WixGroupSymbol.cs | 71 + .../Symbols/WixInstanceComponentSymbol.cs | 44 + .../Symbols/WixInstanceTransformsSymbol.cs | 68 + .../Symbols/WixMediaTemplateSymbol.cs | 86 + .../wix/WixToolset.Data/Symbols/WixMergeSymbol.cs | 92 + .../wix/WixToolset.Data/Symbols/WixModuleSymbol.cs | 68 + .../WixToolset.Data/Symbols/WixOrderingSymbol.cs | 68 + .../WixToolset.Data/Symbols/WixPackageSymbol.cs | 111 + .../Symbols/WixPatchBaselineSymbol.cs | 76 + .../Symbols/WixPatchFamilyGroupSymbol.cs | 44 + .../WixToolset.Data/Symbols/WixPatchRefSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/WixPatchSymbol.cs | 98 + .../Symbols/WixPatchTargetSymbol.cs | 44 + .../Symbols/WixProductSearchSymbol.cs | 64 + .../WixToolset.Data/Symbols/WixProductTagSymbol.cs | 68 + .../WixToolset.Data/Symbols/WixPropertySymbol.cs | 68 + .../Symbols/WixRegistrySearchSymbol.cs | 81 + .../Symbols/WixRelatedBundleSymbol.cs | 60 + .../Symbols/WixSearchRelationSymbol.cs | 52 + .../wix/WixToolset.Data/Symbols/WixSearchSymbol.cs | 60 + .../Symbols/WixSetVariableSymbol.cs | 54 + .../Symbols/WixSimpleReferenceSymbol.cs | 62 + .../Symbols/WixSuppressActionSymbol.cs | 54 + .../Symbols/WixSuppressModularizationSymbol.cs | 44 + src/api/wix/WixToolset.Data/Symbols/WixUISymbol.cs | 36 + .../Symbols/WixUpdateRegistrationSymbol.cs | 76 + .../WixToolset.Data/Symbols/WixVariableSymbol.cs | 52 + src/api/wix/WixToolset.Data/VerboseMessages.cs | 234 ++ src/api/wix/WixToolset.Data/WarningMessages.cs | 816 ++++ .../WindowsInstaller/ColumnCategory.cs | 91 + .../WindowsInstaller/ColumnDefinition.cs | 702 ++++ .../WindowsInstaller/ColumnModularizeType.cs | 37 + .../WixToolset.Data/WindowsInstaller/ColumnType.cs | 28 + .../wix/WixToolset.Data/WindowsInstaller/Field.cs | 304 ++ .../WindowsInstaller/IntermediateLevels.cs | 8 + .../WindowsInstaller/ObjectField.cs | 183 + .../wix/WixToolset.Data/WindowsInstaller/Row.cs | 390 ++ .../WindowsInstaller/RowOperation.cs | 30 + .../WindowsInstaller/Rows/BBControlRow.cs | 118 + .../WindowsInstaller/Rows/ComponentRow.cs | 247 ++ .../WindowsInstaller/Rows/ControlRow.cs | 148 + .../WindowsInstaller/Rows/FileRow.cs | 214 ++ .../WindowsInstaller/Rows/MediaRow.cs | 85 + .../WindowsInstaller/Rows/PropertyRow.cs | 45 + .../Rows/SummaryInfoRowCollection.cs | 41 + .../WindowsInstaller/Rows/UpgradeRow.cs | 95 + .../WindowsInstaller/SequenceTableExtensions.cs | 17 + .../WixToolset.Data/WindowsInstaller/SubStorage.cs | 112 + .../wix/WixToolset.Data/WindowsInstaller/Table.cs | 190 + .../WindowsInstaller/TableDefinition.cs | 267 ++ .../WindowsInstaller/TableDefinitionCollection.cs | 201 + .../WindowsInstaller/TableIndexedCollection.cs | 105 + .../WindowsInstaller/TableOperation.cs | 25 + .../WindowsInstaller/WindowsInstallerConstants.cs | 259 ++ .../WindowsInstaller/WindowsInstallerData.cs | 323 ++ .../WindowsInstaller/WindowsInstallerStandard.cs | 478 +++ .../WindowsInstallerTableDefinitions.cs | 1907 +++++++++ .../WixMissingTableDefinitionException.cs | 22 + .../WixToolset.Data/WindowsInstaller/Xsd/data.xsd | 66 + .../WindowsInstaller/Xsd/libraries.xsd | 66 + .../WindowsInstaller/Xsd/objects.xsd | 143 + .../wix/WixToolset.Data/WixCorruptFileException.cs | 29 + .../wix/WixToolset.Data/WixDataStrings.Designer.cs | 90 + src/api/wix/WixToolset.Data/WixDataStrings.resx | 129 + src/api/wix/WixToolset.Data/WixException.cs | 63 + src/api/wix/WixToolset.Data/WixOutput.cs | 279 ++ src/api/wix/WixToolset.Data/WixToolset.Data.csproj | 40 + .../WixToolset.Data.v3.ncrunchproject | 7 + .../WixUnexpectedFileFormatException.cs | 35 + src/api/wix/WixToolset.Data/YesNoAlwaysType.cs | 25 + src/api/wix/WixToolset.Data/YesNoDefaultType.cs | 25 + src/api/wix/WixToolset.Data/YesNoType.cs | 22 + src/api/wix/appveyor.cmd | 19 + src/api/wix/appveyor.yml | 42 + src/api/wix/nuget.config | 8 + .../test/WixToolsetTest.Data/SerializeFixture.cs | 427 +++ src/api/wix/test/WixToolsetTest.Data/TagFixture.cs | 101 + .../WixToolsetTest.Data/TupleDefinitionFixture.cs | 135 + .../WindowsInstallerTableDefinitionsFixture.cs | 29 + .../WixToolsetTest.Data/WixToolsetTest.Data.csproj | 19 + src/test/WixToolsetTest.Data/SerializeFixture.cs | 427 --- src/test/WixToolsetTest.Data/TagFixture.cs | 101 - .../WixToolsetTest.Data/TupleDefinitionFixture.cs | 135 - .../WindowsInstallerTableDefinitionsFixture.cs | 29 - .../WixToolsetTest.Data/WixToolsetTest.Data.csproj | 19 - src/version.json | 11 + version.json | 11 - 588 files changed, 37786 insertions(+), 37786 deletions(-) delete mode 100644 .editorconfig delete mode 100644 README.md delete mode 100644 WixToolset.Data.sln delete mode 100644 WixToolset.Data.v3.ncrunchsolution delete mode 100644 appveyor.cmd delete mode 100644 appveyor.yml delete mode 100644 nuget.config create mode 100644 src/.editorconfig delete mode 100644 src/Custom.Build.props delete mode 100644 src/Directory.Build.props delete mode 100644 src/Directory.Build.targets delete mode 100644 src/Directory.csproj.props delete mode 100644 src/Directory.csproj.targets delete mode 100644 src/WixToolset.Data/AccessModifier.cs delete mode 100644 src/WixToolset.Data/AssemblyInfo.cs delete mode 100644 src/WixToolset.Data/Bind/BindVariable.cs delete mode 100644 src/WixToolset.Data/Burn/BurnConstants.cs delete mode 100644 src/WixToolset.Data/ComplexReferenceChildType.cs delete mode 100644 src/WixToolset.Data/ComplexReferenceParentType.cs delete mode 100644 src/WixToolset.Data/ComponentKeyPathType.cs delete mode 100644 src/WixToolset.Data/CompressionLevel.cs delete mode 100644 src/WixToolset.Data/Data/messages.xml delete mode 100644 src/WixToolset.Data/DictionaryExtensions.cs delete mode 100644 src/WixToolset.Data/DisplayEventArgs.cs delete mode 100644 src/WixToolset.Data/EmptyRule.cs delete mode 100644 src/WixToolset.Data/ErrorMessages.cs delete mode 100644 src/WixToolset.Data/ISymbolDefinitionCreator.cs delete mode 100644 src/WixToolset.Data/Identifier.cs delete mode 100644 src/WixToolset.Data/Intermediate.cs delete mode 100644 src/WixToolset.Data/IntermediateField.cs delete mode 100644 src/WixToolset.Data/IntermediateFieldContext.cs delete mode 100644 src/WixToolset.Data/IntermediateFieldDefinition.cs delete mode 100644 src/WixToolset.Data/IntermediateFieldExtensions.cs delete mode 100644 src/WixToolset.Data/IntermediateFieldPathValue.cs delete mode 100644 src/WixToolset.Data/IntermediateFieldValue.cs delete mode 100644 src/WixToolset.Data/IntermediateFieldValueExtensions.cs delete mode 100644 src/WixToolset.Data/IntermediateLevels.cs delete mode 100644 src/WixToolset.Data/IntermediateSection.cs delete mode 100644 src/WixToolset.Data/IntermediateSymbol.cs delete mode 100644 src/WixToolset.Data/IntermediateSymbolDefinition.cs delete mode 100644 src/WixToolset.Data/IntermediateSymbolExtensions.cs delete mode 100644 src/WixToolset.Data/Json/JsonObjectExtensions.cs delete mode 100644 src/WixToolset.Data/Json/SimpleJson.cs delete mode 100644 src/WixToolset.Data/Localization.cs delete mode 100644 src/WixToolset.Data/LocalizedControl.cs delete mode 100644 src/WixToolset.Data/Message.cs delete mode 100644 src/WixToolset.Data/MessageLevel.cs delete mode 100644 src/WixToolset.Data/OutputType.cs delete mode 100644 src/WixToolset.Data/PackagingType.cs delete mode 100644 src/WixToolset.Data/PdbType.cs delete mode 100644 src/WixToolset.Data/Platform.cs delete mode 100644 src/WixToolset.Data/SectionType.cs delete mode 100644 src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs delete mode 100644 src/WixToolset.Data/SourceLineNumber.cs delete mode 100644 src/WixToolset.Data/Symbols/ActionTextSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/AppIdSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/AppSearchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/AssemblySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/BBControlSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/BillboardSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/BinarySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/CCPSearchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/CheckBoxSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ClassSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ComboBoxSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/CompLocatorSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ComplusSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ComponentSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ConditionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ControlConditionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ControlEventSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ControlSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/CreateFolderSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/CustomActionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/DialogSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/DirectorySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/DrLocatorSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/EnvironmentSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ErrorSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/EventMappingSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ExtensionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/FeatureSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/FileSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/IconSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/IniFileSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/IniLocatorSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/InifFileActionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ListBoxSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ListViewSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/LocatorSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MIMESymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MediaSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MoveFileSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/PatchPackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/PatchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ProgIdSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/PropertiesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/PropertySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/PublishComponentSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/RadioButtonSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/RegLocatorSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/RegistryRootType.cs delete mode 100644 src/WixToolset.Data/Symbols/RegistrySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/RemoveFileSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ReserveCostSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ServiceControlSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/ShortcutSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/SignatureSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/SymbolDefinitions.cs delete mode 100644 src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/TargetImagesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/TextStyleSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/TransformsFlags.cs delete mode 100644 src/WixToolset.Data/Symbols/TypeLibSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/UITextSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/UpgradeSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/VerbSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixActionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixChainItemSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixChainSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixDependencySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixFragmentSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixGroupSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixMergeSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixModuleSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixOrderingSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPackageSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPatchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixProductTagSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixPropertySymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixSearchSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixUISymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs delete mode 100644 src/WixToolset.Data/Symbols/WixVariableSymbol.cs delete mode 100644 src/WixToolset.Data/VerboseMessages.cs delete mode 100644 src/WixToolset.Data/WarningMessages.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/ColumnCategory.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/ColumnType.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Field.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/ObjectField.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Row.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/RowOperation.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/SubStorage.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Table.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/TableDefinition.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/TableOperation.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs delete mode 100644 src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd delete mode 100644 src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd delete mode 100644 src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd delete mode 100644 src/WixToolset.Data/WixCorruptFileException.cs delete mode 100644 src/WixToolset.Data/WixDataStrings.Designer.cs delete mode 100644 src/WixToolset.Data/WixDataStrings.resx delete mode 100644 src/WixToolset.Data/WixException.cs delete mode 100644 src/WixToolset.Data/WixOutput.cs delete mode 100644 src/WixToolset.Data/WixToolset.Data.csproj delete mode 100644 src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject delete mode 100644 src/WixToolset.Data/WixUnexpectedFileFormatException.cs delete mode 100644 src/WixToolset.Data/YesNoAlwaysType.cs delete mode 100644 src/WixToolset.Data/YesNoDefaultType.cs delete mode 100644 src/WixToolset.Data/YesNoType.cs create mode 100644 src/api/wix/Custom.Build.props create mode 100644 src/api/wix/Directory.Build.props create mode 100644 src/api/wix/Directory.Build.targets create mode 100644 src/api/wix/Directory.csproj.props create mode 100644 src/api/wix/Directory.csproj.targets create mode 100644 src/api/wix/README.md create mode 100644 src/api/wix/WixToolset.Data.sln create mode 100644 src/api/wix/WixToolset.Data.v3.ncrunchsolution create mode 100644 src/api/wix/WixToolset.Data/AccessModifier.cs create mode 100644 src/api/wix/WixToolset.Data/AssemblyInfo.cs create mode 100644 src/api/wix/WixToolset.Data/Bind/BindVariable.cs create mode 100644 src/api/wix/WixToolset.Data/Burn/BurnConstants.cs create mode 100644 src/api/wix/WixToolset.Data/ComplexReferenceChildType.cs create mode 100644 src/api/wix/WixToolset.Data/ComplexReferenceParentType.cs create mode 100644 src/api/wix/WixToolset.Data/ComponentKeyPathType.cs create mode 100644 src/api/wix/WixToolset.Data/CompressionLevel.cs create mode 100644 src/api/wix/WixToolset.Data/Data/messages.xml create mode 100644 src/api/wix/WixToolset.Data/DictionaryExtensions.cs create mode 100644 src/api/wix/WixToolset.Data/DisplayEventArgs.cs create mode 100644 src/api/wix/WixToolset.Data/EmptyRule.cs create mode 100644 src/api/wix/WixToolset.Data/ErrorMessages.cs create mode 100644 src/api/wix/WixToolset.Data/ISymbolDefinitionCreator.cs create mode 100644 src/api/wix/WixToolset.Data/Identifier.cs create mode 100644 src/api/wix/WixToolset.Data/Intermediate.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateField.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateFieldContext.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateFieldDefinition.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateFieldExtensions.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateFieldPathValue.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateFieldValue.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateFieldValueExtensions.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateLevels.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateSection.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateSymbolDefinition.cs create mode 100644 src/api/wix/WixToolset.Data/IntermediateSymbolExtensions.cs create mode 100644 src/api/wix/WixToolset.Data/Json/JsonObjectExtensions.cs create mode 100644 src/api/wix/WixToolset.Data/Json/SimpleJson.cs create mode 100644 src/api/wix/WixToolset.Data/Localization.cs create mode 100644 src/api/wix/WixToolset.Data/LocalizedControl.cs create mode 100644 src/api/wix/WixToolset.Data/Message.cs create mode 100644 src/api/wix/WixToolset.Data/MessageLevel.cs create mode 100644 src/api/wix/WixToolset.Data/OutputType.cs create mode 100644 src/api/wix/WixToolset.Data/PackagingType.cs create mode 100644 src/api/wix/WixToolset.Data/PdbType.cs create mode 100644 src/api/wix/WixToolset.Data/Platform.cs create mode 100644 src/api/wix/WixToolset.Data/SectionType.cs create mode 100644 src/api/wix/WixToolset.Data/SimpleSymbolDefinitionCreator.cs create mode 100644 src/api/wix/WixToolset.Data/SourceLineNumber.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ActionTextSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/AppIdSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/AppSearchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/AssemblySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/BBControlSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/BillboardSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/BinarySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/CCPSearchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/CheckBoxSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ClassSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ComboBoxSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/CompLocatorSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ComplusSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ComponentSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ConditionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ControlConditionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ControlEventSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ControlSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/CreateFolderSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/CustomActionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/DialogSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/DirectorySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/DrLocatorSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/DuplicateFileSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/EnvironmentSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ErrorSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/EventMappingSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ExtensionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/FeatureSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/FileSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/IconSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/IniFileSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/IniLocatorSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/InifFileActionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/LaunchConditionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ListBoxSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ListViewSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/LocatorSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/LockPermissionsSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MIMESymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MediaSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ModuleDependencySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MoveFileSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiFileHashSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ODBCDriverSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/PatchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ProgIdSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/PropertiesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/PropertySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/PublishComponentSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/RadioButtonSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/RegLocatorSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/RegistryRootType.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/RegistrySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/RemoveFileSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ReserveCostSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/SFPCatalogSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ServiceControlSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ServiceInstallSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/ShortcutSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/SignatureSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/SummaryInformationSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/TextStyleSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/TransformsFlags.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/TypeLibSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/UITextSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/UpgradeSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/VerbSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixActionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleTagSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixChainItemSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixChainSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixCustomTableSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixDependencySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixFileSearchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixFragmentSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixGroupSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixMergeSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixModuleSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixOrderingSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixPatchRefSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixPatchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixProductTagSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixPropertySymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixSearchSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixSetVariableSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixUISymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/Symbols/WixVariableSymbol.cs create mode 100644 src/api/wix/WixToolset.Data/VerboseMessages.cs create mode 100644 src/api/wix/WixToolset.Data/WarningMessages.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/ColumnCategory.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/ColumnType.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Field.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/ObjectField.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/RowOperation.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/SubStorage.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Table.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinition.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/TableOperation.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd create mode 100644 src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd create mode 100644 src/api/wix/WixToolset.Data/WixCorruptFileException.cs create mode 100644 src/api/wix/WixToolset.Data/WixDataStrings.Designer.cs create mode 100644 src/api/wix/WixToolset.Data/WixDataStrings.resx create mode 100644 src/api/wix/WixToolset.Data/WixException.cs create mode 100644 src/api/wix/WixToolset.Data/WixOutput.cs create mode 100644 src/api/wix/WixToolset.Data/WixToolset.Data.csproj create mode 100644 src/api/wix/WixToolset.Data/WixToolset.Data.v3.ncrunchproject create mode 100644 src/api/wix/WixToolset.Data/WixUnexpectedFileFormatException.cs create mode 100644 src/api/wix/WixToolset.Data/YesNoAlwaysType.cs create mode 100644 src/api/wix/WixToolset.Data/YesNoDefaultType.cs create mode 100644 src/api/wix/WixToolset.Data/YesNoType.cs create mode 100644 src/api/wix/appveyor.cmd create mode 100644 src/api/wix/appveyor.yml create mode 100644 src/api/wix/nuget.config create mode 100644 src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs create mode 100644 src/api/wix/test/WixToolsetTest.Data/TagFixture.cs create mode 100644 src/api/wix/test/WixToolsetTest.Data/TupleDefinitionFixture.cs create mode 100644 src/api/wix/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs create mode 100644 src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj delete mode 100644 src/test/WixToolsetTest.Data/SerializeFixture.cs delete mode 100644 src/test/WixToolsetTest.Data/TagFixture.cs delete mode 100644 src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs delete mode 100644 src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs delete mode 100644 src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj create mode 100644 src/version.json delete mode 100644 version.json (limited to 'src') diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 1d72e683..00000000 --- a/.editorconfig +++ /dev/null @@ -1,37 +0,0 @@ -# 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. -# -# Do NOT modify this file. Update the canonical version in Home\repo-template\src\.editorconfig -# then update all of the repos. - -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true - -[*.{cs,vb}] -dotnet_sort_system_directives_first = true - -[*.cs] -csharp_indent_case_contents = true : error -csharp_indent_switch_labels = true : error -csharp_new_line_before_open_brace = all -csharp_prefer_braces = true : error -csharp_style_expression_bodied_methods = when_on_single_line : suggestion -csharp_style_expression_bodied_constructors = when_on_single_line : suggestion -csharp_style_expression_bodied_operators = when_on_single_line : suggestion -csharp_style_expression_bodied_properties = when_on_single_line : suggestion -csharp_style_expression_bodied_indexers = when_on_single_line : suggestion -csharp_style_expression_bodied_accessors = when_on_single_line : suggestion -csharp_style_var_elsewhere = true : suggestion -csharp_style_var_for_built_in_types = true : suggestion -csharp_style_var_when_type_is_apparent = true : suggestion -dotnet_style_qualification_for_event = true : error -dotnet_style_qualification_for_field = true : error -dotnet_style_qualification_for_method = true : error -dotnet_style_qualification_for_property = true : error - -[*.targets] -indent_size = 2 diff --git a/README.md b/README.md deleted file mode 100644 index 720632c9..00000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Data -WixToolset.Data - data model for WiX Toolset tools - diff --git a/WixToolset.Data.sln b/WixToolset.Data.sln deleted file mode 100644 index d8c62b1d..00000000 --- a/WixToolset.Data.sln +++ /dev/null @@ -1,61 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2009 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Data", "src\WixToolset.Data\WixToolset.Data.csproj", "{73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Data", "src\test\WixToolsetTest.Data\WixToolsetTest.Data.csproj", "{6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|arm = Debug|arm - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|arm = Release|arm - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|arm.ActiveCfg = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|arm.Build.0 = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x64.ActiveCfg = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x64.Build.0 = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x86.ActiveCfg = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x86.Build.0 = Debug|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|Any CPU.Build.0 = Release|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|arm.ActiveCfg = Release|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|arm.Build.0 = Release|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x64.ActiveCfg = Release|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x64.Build.0 = Release|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x86.ActiveCfg = Release|Any CPU - {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x86.Build.0 = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|arm.ActiveCfg = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|arm.Build.0 = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x64.ActiveCfg = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x64.Build.0 = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x86.ActiveCfg = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x86.Build.0 = Debug|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|Any CPU.Build.0 = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|arm.ActiveCfg = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|arm.Build.0 = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x64.ActiveCfg = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x64.Build.0 = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x86.ActiveCfg = Release|Any CPU - {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2C73DAA1-A584-4542-A2C3-951EF6203ED5} - EndGlobalSection -EndGlobal diff --git a/WixToolset.Data.v3.ncrunchsolution b/WixToolset.Data.v3.ncrunchsolution deleted file mode 100644 index 10420ac9..00000000 --- a/WixToolset.Data.v3.ncrunchsolution +++ /dev/null @@ -1,6 +0,0 @@ - - - True - True - - \ No newline at end of file diff --git a/appveyor.cmd b/appveyor.cmd deleted file mode 100644 index 5e5debc9..00000000 --- a/appveyor.cmd +++ /dev/null @@ -1,19 +0,0 @@ -@setlocal -@pushd %~dp0 -@set _C=Release -@if /i "%1"=="debug" set _C=Debug - -:: Restore -msbuild -p:Configuration=%_C% -t:Restore || exit /b - -:: Build -msbuild -p:Configuration=%_C% || exit /b - -:: Test -dotnet test -c %_C% --no-build || exit /b - -:: Pack -msbuild -p:Configuration=%_C% -p:NoBuild=true -t:Pack || exit /b - -@popd -@endlocal diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index c53cc9cc..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,42 +0,0 @@ -# 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. -# -# Do NOT modify this file. Update the canonical version in Home\repo-template\src\appveyor.yml -# then update all of the repos. - -branches: - only: - - master - - develop - -image: Visual Studio 2019 - -version: 0.0.0.{build} -configuration: Release - -environment: - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - NUGET_XMLDOC_MODE: skip - -build_script: - - appveyor.cmd - -pull_requests: - do_not_increment_build_number: true - -nuget: - disable_publish_on_pr: true - -skip_branch_with_pr: true -skip_tags: true - -artifacts: -- path: build\Release\**\*.nupkg - name: nuget -- path: build\Release\**\*.snupkg - name: snupkg - -notifications: -- provider: Slack - incoming_webhook: - secure: p5xuu+4x2JHfwGDMDe5KcG1k7gZxqYc4jWVwvyNZv5cvkubPD2waJs5yXMAXZNN7Z63/3PWHb7q4KoY/99AjauYa1nZ4c5qYqRPFRBKTHfA= diff --git a/nuget.config b/nuget.config deleted file mode 100644 index d5ef8952..00000000 --- a/nuget.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/.editorconfig b/src/.editorconfig new file mode 100644 index 00000000..1d72e683 --- /dev/null +++ b/src/.editorconfig @@ -0,0 +1,37 @@ +# 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. +# +# Do NOT modify this file. Update the canonical version in Home\repo-template\src\.editorconfig +# then update all of the repos. + +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true + +[*.{cs,vb}] +dotnet_sort_system_directives_first = true + +[*.cs] +csharp_indent_case_contents = true : error +csharp_indent_switch_labels = true : error +csharp_new_line_before_open_brace = all +csharp_prefer_braces = true : error +csharp_style_expression_bodied_methods = when_on_single_line : suggestion +csharp_style_expression_bodied_constructors = when_on_single_line : suggestion +csharp_style_expression_bodied_operators = when_on_single_line : suggestion +csharp_style_expression_bodied_properties = when_on_single_line : suggestion +csharp_style_expression_bodied_indexers = when_on_single_line : suggestion +csharp_style_expression_bodied_accessors = when_on_single_line : suggestion +csharp_style_var_elsewhere = true : suggestion +csharp_style_var_for_built_in_types = true : suggestion +csharp_style_var_when_type_is_apparent = true : suggestion +dotnet_style_qualification_for_event = true : error +dotnet_style_qualification_for_field = true : error +dotnet_style_qualification_for_method = true : error +dotnet_style_qualification_for_property = true : error + +[*.targets] +indent_size = 2 diff --git a/src/Custom.Build.props b/src/Custom.Build.props deleted file mode 100644 index 889fb62e..00000000 --- a/src/Custom.Build.props +++ /dev/null @@ -1,6 +0,0 @@ - - - - true - - diff --git a/src/Directory.Build.props b/src/Directory.Build.props deleted file mode 100644 index b3c6287c..00000000 --- a/src/Directory.Build.props +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Debug - false - MSB3246 - - $(MSBuildProjectName) - $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\)) - $(BaseOutputPath)obj\$(ProjectName)\ - $(BaseOutputPath)$(Configuration)\ - - WiX Toolset Team - WiX Toolset - Copyright (c) .NET Foundation and contributors. All rights reserved. - MS-RL - WiX Toolset - - - - - diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets deleted file mode 100644 index 2fcc765a..00000000 --- a/src/Directory.Build.targets +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - true - $(SolutionPath) - $(NCrunchOriginalSolutionPath) - - - - - - - $([System.IO.File]::ReadAllText($(TheSolutionPath))) - $([System.IO.Path]::GetDirectoryName( $(TheSolutionPath) )) - (?<="[PackageName]", ")(.*)(?=", ") - - - - - - %(Identity) - $(SolutionFileContent.Contains('\%(Identity).csproj')) - - - - - $(RegexPattern.Replace('[PackageName]','%(PackageName)') ) - $([System.Text.RegularExpressions.Regex]::Match('$(SolutionFileContent)', '%(Pattern)')) - - - - - - - - - - - - - - diff --git a/src/Directory.csproj.props b/src/Directory.csproj.props deleted file mode 100644 index 81d24ad1..00000000 --- a/src/Directory.csproj.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - true - true - $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk)) - false - - diff --git a/src/Directory.csproj.targets b/src/Directory.csproj.targets deleted file mode 100644 index 623228ef..00000000 --- a/src/Directory.csproj.targets +++ /dev/null @@ -1,25 +0,0 @@ - - - - - false - $(OutputPath)\$(AssemblyName).xml - - - - - $(PrivateRepositoryUrl.Replace('.git','')) - - $(MSBuildProjectName).nuspec - $(OutputPath)..\ - $(NuspecProperties);Id=$(PackageId);Authors=$(Authors);Copyright=$(Copyright);Description=$(Description);Title=$(Title) - $(NuspecProperties);Version=$(PackageVersion);RepositoryCommit=$(SourceRevisionId);RepositoryType=$(RepositoryType);RepositoryUrl=$(PrivateRepositoryUrl);ProjectFolder=$(MSBuildProjectDirectory)\;ProjectUrl=$(ProjectUrl) - true - - - - diff --git a/src/WixToolset.Data/AccessModifier.cs b/src/WixToolset.Data/AccessModifier.cs deleted file mode 100644 index 191558b5..00000000 --- a/src/WixToolset.Data/AccessModifier.cs +++ /dev/null @@ -1,99 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public enum AccessModifier - { - /// - /// Indicates the identifier is globally visible to all other sections. - /// - Global, - [Obsolete] - Public = Global, - - /// - /// Indicates the identifier is visible only to sections in the same library. - /// - Library, - [Obsolete] - Internal = Library, - - /// - /// Indicates the identifier is visible only to sections in the same source file. - /// - File, - [Obsolete] - Protected = File, - - /// - /// Indicates the identifiers is visible only to the section where it is defined. - /// - Section, - [Obsolete] - Private = Section, - } - - /// - /// Extensions for converting AccessModifier to and from strings optimally. - /// - public static class AccessModifierExtensions - { - /// - /// Converts a string to an AccessModifier. - /// - /// String value to convert. - /// Converted AccessModifier. - public static AccessModifier AsAccessModifier(this string access) - { - switch (access) - { - case "global": - case "public": - return AccessModifier.Global; - - case "library": - case "internal": - return AccessModifier.Library; - - case "file": - case "protected": - return AccessModifier.File; - - case "section": - case "private": - return AccessModifier.Section; - - default: - throw new ArgumentException($"Unknown AccessModifier: {access}", nameof(access)); - } - } - - /// - /// Converts an AccessModifier to a string. - /// - /// AccessModifier value to convert. - /// Converted string. - public static string AsString(this AccessModifier access) - { - switch (access) - { - case AccessModifier.Global: - return "global"; - - case AccessModifier.Library: - return "library"; - - case AccessModifier.File: - return "file"; - - case AccessModifier.Section: - return "section"; - - default: - throw new ArgumentException($"Unknown AccessModifier: {access}", nameof(access)); - } - } - } -} diff --git a/src/WixToolset.Data/AssemblyInfo.cs b/src/WixToolset.Data/AssemblyInfo.cs deleted file mode 100644 index b3740b2a..00000000 --- a/src/WixToolset.Data/AssemblyInfo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// 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. - -using System; -using System.Reflection; -using System.Runtime.InteropServices; - -[assembly: AssemblyCulture("")] -[assembly: CLSCompliant(true)] -[assembly: ComVisible(false)] diff --git a/src/WixToolset.Data/Bind/BindVariable.cs b/src/WixToolset.Data/Bind/BindVariable.cs deleted file mode 100644 index 276dae38..00000000 --- a/src/WixToolset.Data/Bind/BindVariable.cs +++ /dev/null @@ -1,62 +0,0 @@ -// 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. - -namespace WixToolset.Data.Bind -{ - using SimpleJson; - - /// - /// Bind variable. - /// - public sealed class BindVariable - { - /// - /// Gets or sets the source line number. - /// - public SourceLineNumber SourceLineNumbers { get; set; } - - /// - /// Gets or sets the variable identifier. - /// - /// The variable identifier. - public string Id { get; set; } - - /// - /// Gets or sets the variable's value. - /// - /// The variable's value. - public string Value { get; set; } - - /// - /// Gets or sets whether this variable is overridable. - /// - /// Whether this variable is overridable. - public bool Overridable { get; set; } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "name", this.Id }, - }; - - jsonObject.AddIsNotNullOrEmpty("value", this.Value); - jsonObject.AddNonDefaultValue("overridable", this.Overridable, false); - jsonObject.AddNonDefaultValue("ln", this.SourceLineNumbers?.Serialize()); - - return jsonObject; - } - - internal static BindVariable Deserialize(JsonObject jsonObject) - { - var variable = new BindVariable() - { - Id = jsonObject.GetValueOrDefault("name"), - Value = jsonObject.GetValueOrDefault("value"), - Overridable = jsonObject.GetValueOrDefault("overridable", false), - SourceLineNumbers = jsonObject.GetValueOrDefault("ln") - }; - - return variable; - } - } -} diff --git a/src/WixToolset.Data/Burn/BurnConstants.cs b/src/WixToolset.Data/Burn/BurnConstants.cs deleted file mode 100644 index 484b144d..00000000 --- a/src/WixToolset.Data/Burn/BurnConstants.cs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -namespace WixToolset.Data.Burn -{ - public static class BurnConstants - { - public const string BurnUXContainerName = "WixUXContainer"; - public const string BurnDefaultAttachedContainerName = "WixAttachedContainer"; - public const string BundleChainPackageGroupId = "WixChain"; - public const string BundleDefaultBoundaryId = "WixDefaultBoundary"; - public const string BundleLayoutOnlyPayloadsName = "BundleLayoutOnlyPayloads"; - - public const string BurnManifestWixOutputStreamName = "wix-burndata.xml"; - public const string BundleExtensionDataWixOutputStreamName = "wix-bextdata"; - public const string BootstrapperApplicationDataWixOutputStreamName = "wix-badata.xml"; - - public const string BootstrapperApplicationDataSymbolDefinitionTag = "WixBootstrapperApplicationData"; - public const string BundleExtensionSearchSymbolDefinitionTag = "WixBundleExtensionSearch"; - - // The following constants must stay in sync with src\burn\engine\core.h - public const string BURN_BUNDLE_NAME = "WixBundleName"; - public const string BURN_BUNDLE_ORIGINAL_SOURCE = "WixBundleOriginalSource"; - public const string BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER = "WixBundleOriginalSourceFolder"; - public const string BURN_BUNDLE_LAST_USED_SOURCE = "WixBundleLastUsedSource"; - } -} diff --git a/src/WixToolset.Data/ComplexReferenceChildType.cs b/src/WixToolset.Data/ComplexReferenceChildType.cs deleted file mode 100644 index a5d4e7ac..00000000 --- a/src/WixToolset.Data/ComplexReferenceChildType.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Types of children in complex refernece. - /// - public enum ComplexReferenceChildType - { - /// Unknown complex reference type, default and invalid. - Unknown, - - /// Component child of complex reference. - Component, - - /// Feature child of complex reference. - Feature, - - /// ComponentGroup child of complex reference. - ComponentGroup, - - /// FeatureGroup child of complex reference. - FeatureGroup, - - /// Module child of complex reference. - Module, - - /// Payload child of complex reference. - Payload, - - /// PayloadGroup child of complex reference. - PayloadGroup, - - /// Package child of complex reference. - Package, - - /// PackageGroup child of complex reference. - PackageGroup, - - /// PackagePayload child of complex reference. - PackagePayload, - - /// PatchFamily child of complex reference. - PatchFamily, - - /// PatchFamilyGroup child of complex reference. - PatchFamilyGroup, - - /// ContainerPackage child of complex reference. - ContainerPackage, - } -} diff --git a/src/WixToolset.Data/ComplexReferenceParentType.cs b/src/WixToolset.Data/ComplexReferenceParentType.cs deleted file mode 100644 index 87731b97..00000000 --- a/src/WixToolset.Data/ComplexReferenceParentType.cs +++ /dev/null @@ -1,49 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Types of parents in complex reference. - /// - public enum ComplexReferenceParentType - { - /// Unknown complex reference type, default and invalid. - Unknown, - - /// Feature parent of complex reference. - Feature, - - /// ComponentGroup parent of complex reference. - ComponentGroup, - - /// FeatureGroup parent of complex reference. - FeatureGroup, - - /// Module parent of complex reference. - Module, - - /// Product parent of complex reference. - Product, - - /// PayloadGroup parent of complex reference. - PayloadGroup, - - /// Package parent of complex reference. - Package, - - /// PackageGroup parent of complex reference. - PackageGroup, - - /// Container parent of complex reference. - Container, - - /// Layout parent of complex reference. - Layout, - - /// Patch parent of complex reference. - Patch, - - /// PatchFamilyGroup parent of complex reference. - PatchFamilyGroup, - } -} diff --git a/src/WixToolset.Data/ComponentKeyPathType.cs b/src/WixToolset.Data/ComponentKeyPathType.cs deleted file mode 100644 index 443049d3..00000000 --- a/src/WixToolset.Data/ComponentKeyPathType.cs +++ /dev/null @@ -1,27 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public enum ComponentKeyPathType - { - /// - /// Folder as a key path. - /// - Directory, - - /// - /// File resource as a key path. - /// - File, - - /// - /// ODBC data source as a key path. - /// - OdbcDataSource, - - /// - /// A simple registry key acting as a key path. - /// - Registry, - } -} diff --git a/src/WixToolset.Data/CompressionLevel.cs b/src/WixToolset.Data/CompressionLevel.cs deleted file mode 100644 index 05aa3816..00000000 --- a/src/WixToolset.Data/CompressionLevel.cs +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Compression level to use when creating cabinet. - /// - public enum CompressionLevel - { - /// Use no compression. - None, - - /// Use low compression. - Low, - - /// Use medium compression. - Medium, - - /// Use high compression. - High, - - /// Use ms-zip compression. - Mszip - } -} diff --git a/src/WixToolset.Data/Data/messages.xml b/src/WixToolset.Data/Data/messages.xml deleted file mode 100644 index 5f03fef5..00000000 --- a/src/WixToolset.Data/Data/messages.xml +++ /dev/null @@ -1,4038 +0,0 @@ - - - - - - - - - - {0} Exception Type: {1} Stack Trace: {2} - - - - - - - - Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided. - - - - - - - - Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified. - - - - - - - The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. - - - - - - The {0} element contains an unexpected attribute '{1}'. - - - - - - - The {0} element contains an unexpected child element '{1}'. - - - - - - - The {0}/@{1} attribute's value cannot be an empty string. If a value is not required, simply remove the entire attribute. - - - - - The {0}/@{1} attribute's value cannot be an empty string. To use the default value "{2}", simply remove the entire attribute. - - - - - - - - The current version of the toolset is {0}, but version {1} is required. - - - - - The current version of the extension '{2}' is {0}, but version {1} is required. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal integer value. Legal integer values are from -2,147,483,648 to 2,147,483,647. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal guid value. - - - - - - - - The {0}/@{1} attribute was not found; it is required. - - - - - The {0} element must have a value for exactly one of the {1} or {2} attributes. - - - - - - - The {0}/@{1} attribute was not found; it is required when attribute {2} is specified. - - - - - - The {0}/@{1} attribute was not found; it is required when attribute {2} has a value of '{3}'. - - - - - - - The {0}/@{1} attribute was not found; it is required unless the attribute {2} has a value of '{3}'. - - - - - - - - - - The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a secure property, it must also be a public property. This means the Property/@Id value must be completely uppercase. - - - - - - - - The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a search property, it must also be a public property. This means the Property/@Id value must be completely uppercase. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long because it will be used to create a stream name. It cannot be more than than {4} characters long. - - - - - - - - The binary value in table '{0}' will be stored with a stream name, '{1}', that is {2} characters long. This is too long because the maximum allowed length for a stream name is 62 characters long. Since the stream name is created by concatenating the table name and values of the primary key for a row (delimited by periods), this error can be resolved by shortening a value that is part of the primary key. - - - - - - - - The {0} element's value, '{1}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. - - - - - The {0}/@{1} attribute's value is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. - - - - - - The {0}/@{1} attribute's value '{2}' contains an illegal identifier '{3}'. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal yes/no value. The only legal values are 'no' and 'yes'. - - - - - - - - Failed to create cab '{0}' while compressing file '{1}' with error 0x{2:X8}. - - - - - - Failed to create cab '{0}' with error 0x{1:X8}. - - - - - - - Failed to extract cab '{0}' to directory '{1}'. This is most likely due to a lack of available disk space on the destination drive. - - - - - Failed to extract cab '{0}' from merge module '{1}' to directory '{2}'. This is most likely due to a lack of available disk space on the destination drive. - - - - - - - - The {0}/@(1) attribute's value, '{2}' does not match the advertise state on its parent element: '{3}'. (Note: AppIds nested under Fragment, Module, or Product elements must be advertised.) - - - - - - - - - The {0}/@{1} attribute cannot be specified because the element is advertised. - - - - - - - The {0} element's inner text cannot be an empty string or completely whitespace. If you don't want a condition, then simply remove the entire {0} element. - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}'. - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', or '{4}'. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', or '{5}'. - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', or '{6}'. - - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', or '{7}'. - - - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', or '{8}'. - - - - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', or '{9}'. - - - - - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', or '{10}'. - - - - - - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', or '{28}'. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following source attributes specified at a time: {2}, {3}, {4}, {5}, or {6}. - - - - - - - - - - - - The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following target attributes specified at a time: {2}, {3}, {4}, {5}, {6}, {7}, or {8}. - - - - - - - - - - - - - - The {0} element contains illegal inner text: '{1}'. It may not contain inner text unless the {2} attribute is specified. - - - - - - - - The {0} element requires the {1} attribute because there is no parent {0} element. - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a valid 8.3-compliant name. Legal names contain no more than 8 non-period characters followed by an optional period and extension of no more than 3 non-period characters. Any character except for the follow may be used: \ ? | > < : / * " + , ; = [ ] (space). - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a valid filename because it contains illegal characters. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \ ? | > < : / * ". - - - - - - The {0}/@{1} attribute's value '{2}' contains a invalid filename '{3}'. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \ ? | > < : / * ". - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long. - - - - - - - - The {0}/@{1} attribute's value, '{2}', contains lowercase characters. Since this directory is user-configurable, it needs to be a public property. This means the value must be completely uppercase. - - - - - - - - The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'. These options would ask the installer to disallow the advertised state for this feature while at the same time favoring it. - - - - - - - - - - The {0}/@{1} attribute cannot be specified if the {2} attribute's value is '{3}'. These options would ask the installer to force this feature to follow the parent installation state and simultaneously favor a particular installation state just for this feature. - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is {3} characters long. The name is too long for an embedded cabinet. It cannot be more than than 62 characters long. - - - - - - - - - The {0}/{1} element cannot be specified if the {2} attribute's value is '{3}' or '{4}'. - - - - - - - - - - The {0}/@{1} attribute and a {0}/{2} element cannot both be specified. Only one may be specified if the {3} attribute's value is not 'multiString'. - - - - - - - - - The {0}/@{1} attribute cannot be specified when attribute {2} is present. - - - - - - The {0}/@{1} attribute cannot be specified when attribute {2} is present with value '{3}'. - - - - - - - - - The {0}/@{1} attribute cannot be specified when attribute {2} or {3} is also present. - - - - - - - The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, or {4} is also present. - - - - - - - - The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, {4}, or {5} is also present. - - - - - - - - - - - The {0}/@{1} attribute can only be specified with the following attribute {2} present. - - - - - - The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present. - - - - - - - The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present with value '{4}'. - - - - - - - - - The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, or {4} present. - - - - - - - - The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, {4}, or {5} present. - - - - - - - - - - - The {0}/@{1} attribute's value, '{2}', can only be specified with attribute {3} present with value '{4}'. - - - - - - - - The {0}/@{1} attribute's value, '{2}', cannot be specified without attribute {3} present. - - - - - - - - - The integer value {0} collides with a sentinel value in the compiler code. - - - - The long integral value {0} collides with a sentinel value in the compiler code. - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal Guid value. A Guid needs to be generated and put in place of '{2}' in the source file. - - - - - - - - The {0} element contains multiple {1} child elements. There can only be one {1} child element per {0} element. - - - - - - - The {0} element has multiple key paths set. The key path may only be set to '{2}' in extension elements that support it or one of the following locations: {0}/@{1}, {3}/@{1}, {4}/@{1}, or {5}/@{1}. - - - - - - - - - - - Failed to close cab '{0}'. - - - - Failed to close cab '{0}', error: {1}. - - - - - - - The {0} element's {1} or {2} attribute was not found; one of these is required. - - - - - - The {0} element's {1}, {2}, or {3} attribute was not found; one of these is required. - - - - - - - The {0} element's {1}, {2}, {3}, or {4} attribute was not found; one of these is required. - - - - - - - - The {0} element's {1}, {2}, {3}, {4}, or {5} attribute was not found; one of these is required. - - - - - - - - - The {0} element's {1}, {2}, {3}, {4}, {5}, or {6} attribute was not found; one of these is required. - - - - - - - - - - The {0} element's {1}, {2}, {3}, {4}, {5}, {6}, or {7} attribute was not found; one of these is required. - - - - - - - - - - - - - The {0} element's {1} or {2} attribute was not found; at least one of these attributes must be specified. - - - - - - The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} is present. - - - - - - - The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} has a value of '{4}'. - - - - - - - - - - The {0} element's {1} or {2} attribute was not found; one of these is required without attribute {3} present. - - - - - - - - - The {0} element is non-advertised and therefore requires a parent {1} element. - - - - - - - The document element name '{0}' is invalid. A WiX {1} file must use '{2}' as the document element name. - - - - - - - - The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2} element. - - - - - - The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2}/@{3} attribute. - - - - - - - - - Access to the path '{0}' is denied. - - - - - Cannot set both ExcludeLanguage and ExcludeExceptLanguage attributes on a ModuleExclusion element. - - - - The '{0}' dialog element does not have a valid tabbable control. You must either have a tabbable control that is not marked TabSkip='yes', or you must mark a control TabSkip='no'. If you have a page with no tabbable controls (a progress page, for example), you might want to set the first Text control to be TabSkip='no'. - - - - - - There is no data for column '{0}' in a contained row of custom table '{1}'. A non-null value must be supplied for this column. - - - - - - - The FileTypeMask/@Value and FileTypeMask/@Mask attributes must be the same length. - - - - - Only one search element can appear under a '{0}' element. - - - - - - The {1} attribute can only be specified on the {2} element. - - - - - - - - A '{0}' element must have a search element as a child. - - - - - - Under a '{0}' element, multiple identifiers were found: '{1}' and '{2}'. All search elements under this element must have the same id. - - - - - - - - The advertise state of this element: '{0}', does not match the advertise state set on the parent element: '{1}'. - - - - - - - The context value '{0}' was duplicated. Context values must be distinct. - - - - - - Cannot convert RelativePath into Registry elements. - - - - - The {0}/@{1} attribute cannot be specified when the {0} element is nested underneath a {2} element. If this {0} is a member of a ComponentGroup where ComponentGroup/@{1} is set, then the {0}/@{1} attribute should be removed. - - - - - - - - A {0} element must have at least one child element of type {1}. - - - - - A {0} element must have at least one child element of type {1} or {2}. - - - - - - A {0} element must have at least one child element of type {1}, {2}, or {3}. - - - - - - - A {0} element must have at least one child element of type {1}, {2}, {3}, or {4}. - - - - - - - - - - Registry/@Root attribute is invalid on a nested Registry element. Either remove the Root attribute or move the Registry element so it is not nested under another Registry element. - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/default value. The only legal values are 'default', 'no' or 'yes'. - - - - - - - - The {0}/@{1} attribute cannot be specified in a merge module. - - - - - - Permission elements cannot have GenericRead as the only permission specified. Include at least one other permission. - - - - The {0}/@{1} attribute cannot be specified when the element has body text as well. Specify either the attribute or the body, but not both. - - - - - - - A {0} element must have a search element as a child when the {0}/@{1} attribute has the value '{2}'. - - - - - - - - The {0} property was specified. Special MSI properties cannot be authored. Use the attributes on the Property element instead. - - - - - - A {0} element must have a Before attribute, After attribute, or a Sequence attribute. - - - - - - The {0}/@{1} attribute's value, '{2}, is not supported by the Windows Installer. - - - - - - - - A {0} element was specified with Type='{1}' and TabSkip='no'. Tabbable controls are not allowed in Billboards. - - - - - - - A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'. - - - - - - - Attempted to extract cab '{0}' from merge module '{1}' to directory '{2}'. The cab file was not found. This usually means that you have a merge module without a cabinet inside it. - - - - - - - All RadioButton elements in a RadioButtonGroup must be consistent with their use of the Bitmap, Icon, and Text attributes. Ensure all of the RadioButton elements in this group have the same attribute specified. - - - RadioButtonGroup elements that contain RadioButton elements with Bitmap or Icon attributes set to "yes" can only be specified under a Control element. Move your RadioButtonGroup element as a child of the appropriate Control element. - - - - Illegal value '{0}' for the -sw<N> command line option. Specify a particular warning number, like '-sw6' to suppress the warning with ID 6, or '-sw' alone to suppress all warnings. - - - - - - The variable named '{0}' is not allowed in a foreach expression. - - - - - - Could not find the prefix in parameter name: '{0}'. - - - - - - Could not find the preprocessor extension for parameter '{0}'. A preprocessor extension is expected because the parameter prefix, '{1}', is not one of the standard types: 'env', 'res', 'sys', or 'var'. - - - - - - - The file with id '{0}' and name '{1}' could not be found with source path: '{2}'. - - - - - - - - {0} - - - - - - Invalid file name '{0}'. - - - - - - A circular reference of groups was detected. The infinite loop includes: {0}. Group references must form a directed acyclic graph. - - - - - - The {0}/@{1} attribute's value, '{2}', is a mixed-case guid. All letters in a guid value should be uppercase. - - - - - - - - The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss. - - - - - - - - Multiple entry sections '{0}' and '{1}' found. Only one entry section may be present in a single target. - - - - - - Location of entry section related to previous error. - - - - Duplicate symbol '{0}' found. This typically means that an Id is duplicated. Access modifiers (internal, protected, private) cannot prevent these conflicts. Ensure all your identifiers of a given type (File, Component, Feature) are unique. - - - - Duplicate symbol '{0}' referenced by {1}. This typically means that an Id is duplicated. Ensure all your identifiers of a given type (File, Component, Feature) are unique or use an access modifier to scope the identfier. - - - - - - Location of symbol related to previous error. - - - - Could not find entry section in provided list of intermediates. Expected section of type '{0}'. - - - - - - The identifier '{0}' could not be found. Ensure you have typed the reference correctly and that all the necessary inputs are provided to the linker. - - - - The identifier '{0}' is inaccessible due to its protection level. - - - - - - - Multiple primary references were found for {0} '{1}' in {2} '{3}' and {4} '{5}'. - - - - - - - - - - - Component {0} cannot be contained in a Module twice. - - - - - - The merge module '{0}' contains a file identifier, '{1}', that is duplicated either in another merge module or in a File/@Id attribute. File identifiers must be unique. Please change one of the file identifiers to a different value. - - - - - - - The merge module '{0}' contains 2 or more file identifiers that only differ by case: '{1}' and '{2}'. The WiX toolset extracts merge module files to the file system using these identifiers. Since most file systems are not case-sensitive a collision is likely. Please contact the owner of the merge module for a fix. - - - - - - - - The component '{0}' does not have an explicit key path specified. If the ordering of the elements under the Component element changes, the key path will also change. To prevent accidental changes, the key path should be set to 'yes' in one of the following locations: Component/@KeyPath, File/@KeyPath, ODBCDataSource/@KeyPath, or Registry/@KeyPath. - - - - - - The localization variable !(loc.{0}) is unknown. Please ensure the variable is defined. - - - - - - The system cannot find the file '{0}'. - - - - The system cannot find the file '{0}' with type '{1}'. - - - - - - - Not a valid {0} file; detail: {1} - - - - - - ProgId elements may not be nested more than 1 level deep. - - - - The DirectorySearchRef {0} can not have a Parent attribute {1} and also be nested under parent element {2} - - - - - - - - Schema validation failed with the following error at line {1}, column {2}: {0} - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a valid version. Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a valid column width. Valid column widths are 2 or 4. - - - - - - - The CustomTable is missing a Column element with the PrimaryKey attribute set to 'yes'. At least one column must be marked as the primary key. - - - - The parameter '{0}' must be followed by the extension's type specification. The type specification should be a fully qualified class and assembly identity, for example: "MyNamespace.MyClass,myextension.dll". - - - - - - The parameter '{0}' must be followed by a file path. - - - - - - The parameter '{0}' must be followed by a directory path. - - - - - - The parameter '{0}' must be followed by a file or directory path. To specify a directory path the string must end with a backslash, for example: "C:\Path\". - - - - - - Path '{0}' contains a literal quote character. Quotes are often accidentally introduced when trying to refer to a directory path with spaces in it, such as "C:\Out Directory\" -- the backslash before the quote acts an escape character. The correct representation for that path is: "C:\Out Directory\\". - - - - - - Additional argument '{0}' was unexpected. Remove the argument and add the '-?' switch for more information. - - - - - - The {0}/@{1} attribute's value, '{2}', is incorrect. It should not contain values of '+', '-', or '*' when the {0}/@Value attribute is empty. Instead, use the proper element and attributes: for Name='+' use RegistryKey/@Action='createKey', for Name='-' use RemoveRegistryKey/@Action='removeOnUninstall', for Name='*' use RegistryKey/@Action='createAndRemoveOnUninstall'. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long for a family name because the maximum allowed length is 8 characters long. - - - - - - - - - The {0}/@{1} attribute's value, '{2}', contains illegal characters for a family name. Legal values include letters, numbers, and underscores. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal long value. Legal long values are from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}. - - - - - - - - - - The extension '{0}' uses the same xml schema namespace, '{1}', as previously loaded extension '{2}'. Please either remove one of the extensions or rename the xml schema namespace to avoid the collision. - - - - - - - - The extension '{0}' contains a definition for table '{1}' that collides with a previously loaded table definition. Please remove one of the conflicting extensions or rename one of the tables to avoid the collision. - - - - - - - The extension '{0}' uses the same preprocessor variable prefix, '{1}', as previously loaded extension '{2}'. Please remove one of the extensions or rename the prefix to avoid the collision. - - - - - - - - The process can not access the file '{0}' because it is being used by another process. - - - - - - Cannot open the merge module '{0}' from file '{1}'. - - - - - - - The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision. - - - - - - - The file row with identifier '{0}' could not be found. - - - - - - The assembly file '{0}' appears to be invalid. Please ensure this is a valid assembly file and that the user has the appropriate access rights to this file. More information: {1} - - - - - - - The end element matching the '{0}' start element was not found. - - - - - - The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. - - - - - - The file '{0}' should be compressed but is not part of a compressed media. Files will be compressed if either the File/@Compressed or Package/@Compressed attributes are set to 'yes'. This can be fixed by setting the Media/@Cabinet attribute for media '{1}'. - - - - - - - There was an error importing the file '{0}'. - - - - There was an error importing table '{1}' from file '{0}'. - - - - - - - Found an invalid sequence table '{0}'. - - - - - - The directory '{0}' could not be found. - - - - - - The component '{0}' is not assigned to a feature. The component's {1} '{2}' requires it to be assigned to at least one feature. - - - - - - - - The action '{0}' is recursively placed in the '{1}' table. - - - - - - - The {0} file format version {1} is not compatible with the expected {0} file format version {2}. - - - - - - - - The {0} element contains an unexpected xml node of type {1}. - - - - - - - A parsed row has more fields that contain data for table '{0}' than are defined. This is potentially because a standard table is being redefined as a custom table or is based on an older table schema. - - - - - - The extension '{0}' could not be loaded. - - - - The extension '{0}' could not be loaded because of the following reason: {1} - - - - - The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}'. - - - - - - The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}' or '{3}'. - - - - - - - - - Found invalid subexpression '{0}' in expression '{1}'. - - - - - - - Found a <?{1}?> processing instruction without a matching <?{0}?> before it. - - - - - - - Found a <?{0}?> processing instruction without a matching <?{1}?> after it. - - - - - - - Expecting an argument for 'NOT' in expression '{0}'. - - - - - - Ill-formed preprocessor variable '$({0})'. Variables must have a prefix (like 'var.', 'env.', or 'sys.') and a name at least 1 character long. If the literal string '$({0})' is desired, use '$$({0})'. - - - - - - Undefined preprocessor variable '$({0})'. - - - - - - The define statement '<?define {0}?>' is not well-formed. Define statements should be in the form <?define variableName = "variable value"?>. - - - - - - The variable '{0}' with value '{1}' was previously declared with value '{2}'. - - - - - - - - The variable '{0}' cannot be undefined because its already undefined. - - - - - - The foreach statement '{0}' is illegal. The proper format for foreach is <?foreach varName in valueList?>. - - - - - - The {0}/@{1} attribute cannot be specified when a {2} element is nested underneath the {0} element. - - - - - - - A <?foreach?> statement was found that had no matching <?endforeach?>. - - - - The quotes don't match in the expression '{0}'. - - - - - - The parenthesis don't match in the expression '{0}'. - - - - - - A required variable was missing in the expression '{0}'. - - - - - - An unexpected literal was found in the expression '{0}'. - - - - - - An illegal number was found in the expression '{0}'. - - - - - - The operator '{0}' is unexpected. - - - - - - The empty subexpression is unexpected in the expression '{0}'. - - - - - - The custom table column '{0}' is unknown. - - - - - - Encountered an unknown custom table column type '{0}'. - - - - - Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column. - - - - The {0} table contains an action '{1}' that is declared overridable in two different locations. Please remove one of the actions or the Overridable='yes' attribute from one of the actions. - - - - - - The location of the action related to previous error. - - - - The {0} table contains an action '{1}' that is declared in two different locations. Please remove one of the actions or set the Overridable='yes' attribute on one of their elements. - - - - - - The location of the action related to previous error. - - - - The {0} table contains an action '{1}' that cannot be suppressed because it is not declared overridable in the base definition. Please stop suppressing the action or make it overridable in its base declaration. - - - - - - The location of the non-overridable definition of the action related to previous error. - - - - The {0} table contains a custom action '{1}' that has a sequence number specified. The Sequence attribute is not allowed for custom actions in a merge module. Please remove the action or use the Before or After attributes to specify where this action should be sequenced relative to another action. - - - - - - - The {0} table contains a standard action '{1}' that does not have a sequence number specified. The Sequence attribute is required for standard actions in a merge module. Please remove the action or use the Sequence attribute. - - - - - - - The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is also scheduled to come before or after action '{1}'. Please remove this circular dependency by changing the Before or After attribute for one of the actions. - - - - - - - - The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is a special action which only occurs when the installer terminates. These special actions can be identified by their negative sequence numbers. Please schedule the action '{1}' to come before or after a different action. - - - - - - - The location of the special termination action related to previous error(s). - - - - The {0} table contains an action '{1}' which cannot have a unique sequence number because it is scheduled before or after action '{2}'. There is not enough room before or after this action to assign a unique sequence number. Please schedule one of the actions differently so that it will be in a position with more sequence numbers available. Please note that sequence numbers must be an integer in the range 1 - 32767 (inclusive). - - - - - - - The location of the sequenced action related to previous error. - - - - The {0}/@{1} attribute's value '{2}' is invalid because it would make this action dependent upon itself. Please change the value to the name of a different action. - - - - - - - - Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. - - - - - - Could not find a row in the '{0}' table for this patch creation package. Patch creation packages must contain at least one row in the '{0}' table. - - - - - - An unexpected row in the '{0}' table was found in this merge module. Merge modules cannot contain the '{0}' table. - - - - - - An unexpected row in the '{0}' table was found in this patch creation package. Patch creation packages cannot contain the '{0}' table. - - - - - - The module '{0}' cannot be merged because it excludes or is excluded by the merge module with signature '{1}'. - - - - - - - The {0} table contains a row with primary key(s) '{1}' which requires a feature to properly merge from the merge module '{2}'. Nest a MergeRef element with an Id attribute set to the value '{3}' under a Feature element to fix this error. - - - - - - - - - The language '{0}' is supported but uses an invalid language transform in the merge module '{1}'. - - - - - - - Could not locate language '{0}' (or a transform for this language) in the merge module '{1}'. This is likely due to an incorrectly authored Merge/@Language attribute. - - - - - - - Decompilation of the {0} table has not been implemented by its extension. - - - - - - MIME element cannot be marked as the default when its advertise state differs from its parent element. Ensure that the advertise state of the MIME element matches its parents element or remove the Mime/@Advertise attribute completely. - - - - - Version independent ProgIds cannot have Icons. Remove the Icon and/or IconIndex attributes from your ProgId element. - - - - - The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present. - - - - - - - The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present with value '{4}'. - - - - - - - - - - The Merge element '{0}' specified an invalid language '{1}'. Verify that localization tokens are being properly resolved to a numeric LCID. - - - - - - - The WiX variable '{0}' is declared in more than one location. Please remove one of the declarations. - - - - - - The WiX variable '{0}' was declared without a value. Please specify a value for the variable. - - - - - - The WiX variable !(wix.{0}) is unknown. Please ensure the variable is declared on the command line for light.exe, via a WixVariable element, or inline using the syntax !(wix.{0}=some value which doesn't contain parenthesis). - - - - - - The WiX variable $(wix.{0}) uses an illegal prefix '$'. Please use the '!' prefix instead. - - - - - - The {0} element has no namespace. Please make the {0} element look like the following: <{0} xmlns="{1}">. - - - - - The {0} element has an incorrect namespace of '{1}'. Please make the {0} element look like the following: <{0} xmlns="{2}">. - - - - - - - - The {0} element contains an unhandled extension element '{1}'. Please ensure that the extension for elements in the '{2}' namespace has been provided. - - - - - - - - The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided. - - - - - - - - The {0} element contains an unsupported extension attribute '{1}'. The {0} element does not currently support extension attributes. Is the {1} attribute using the correct XML namespace? - - - - - - - The {0} element contains an unsupported extension element '{1}'. The {0} element does not currently support extension elements. Is the {1} element using the correct XML namespace? - - - - - - - {0}: {1} - - - - - - - The Directory with Id '{0}' is not a valid root directory. There may only be a single root directory per product or module and its Id attribute value must be 'TARGETDIR' and its Name attribute value must be 'SourceDir'. - - - - - - The 'TARGETDIR' directory has an illegal DefaultDir value of '{0}'. The DefaultDir value is created from the *Name attributes of the Directory element. The TARGETDIR directory is a special directory which must have its Name attribute set to 'SourceDir'. - - - - - - The {0} element contains an unexpected child element '{1}'. The '{1}' element may only occur {2} time(s) under the {0} element. - - - - - - - The Column element specifies a binary column but does not have the correct Category specified. Windows Installer requires binary columns to specify their category as binary. Please set the Category attribute's value to 'Binary'. - - - The Feature element specifies a root feature with an illegal InstallDefault value of 'followParent'. Root features cannot follow their parent feature's install state because they don't have a parent feature. Please remove or change the value of the InstallDefault attribute. - - - - The {0}/@{1} attribute with value '{2}', is too long for a feature name. Due to limitations in the Windows Installer, feature names cannot be longer than 38 characters in length. - - - - - - - The DigitalSignature element cannot be nested under a Media element which specifies EmbedCab='yes'. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or change the value of the Media/@EmbedCab attribute to 'no'. - - - The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute. - - - - The localization variable '{0}' specifies an illegal inline default value of '{1}'. Localization variables cannot specify default values inline, instead the value should be specified in a WiX localization (.wxl) file. - - - - - - - The merge module '{0}' is not assigned to a feature. All merge modules must be assigned to at least one feature. - - - - - - An unexpected Win32 exception with error code 0x{0:X} occurred: {1} - - - - - An unexpected Win32 exception with error code 0x{0:X} occurred while accessing file '{1}': {2} - - - - - - - - Error executing unknown ICE action. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "{0}". - - - - Error executing ICE action '{1}'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "{0}". - - - - - - - Illegal number of threads to create cabinets: '{0}' for -ct <N> command line option. Specify the number of threads to use like -ct 2. - - - - - - The {0} environment variable is set to an invalid value of '{1}'. - - - - - - - The definition for the '{0}' table's '{1}' column is an invalid foreign key relationship to the {2} table's column number {3}. It is not a valid foreign key table column number because it is too small (less than 1) or greater than the count of columns in the foreign table's definition. - - - - - - - - - The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: one is {4} and the other is {5}. Change one of the modularization types so that they match. - - - - - - - - - - - The cube file '{0}' cannot be found. This file is required for MSI validation. - - - - - - Failed to open database '{0}'. Ensure it is a valid database, and it is not open by another process. - - - - - - The types of the outputs do not match. One output's type is '{0}' while the other is '{1}'. - - - - - - - The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched. - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal column name. It will collide with the sentinel values used in the _TransformView table. - - - - - - - - The transform being built did not contain any differences so it could not be created. - - - - - The code pages of the outputs do not match. One output's code page is '{0}' while the other is '{1}'. - - - - - - - The location of the mismatched code page related to the previous warning. - - - - - The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components using a Directory as a KeyPath or containing ODBCDataSource child elements cannot use an automatically generated guid. Make sure your component doesn't have a Directory as the KeyPath and move any ODBCDataSource child elements to components with explicit component guids. - - - The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with registry keypaths and files cannot use an automatically generated guid. Create multiple components, each with one file and/or one registry value keypath, to use automatically generated guids. - - - - - - The component '{0}' has a key file with path '{1}'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name "Common Files" under ProgramFilesFolder.) - - - - - - - The CustomAction/@TerminalServerAware attribute's value is 'yes' but the Execute attribute is not 'deferred,' 'rollback,' or 'commit.' Terminal-Server-aware custom actions must be deferred, rollback, or commit custom actions. For more information, see http://msdn.microsoft.com/library/aa372071.aspx." - - - - - The CustomAction sets a property but its Execute attribute is not 'immediate' (the default). Property-setting custom actions cannot be deferred." - - - - - Ill-formed preprocessor function '${0}'. Functions must have a prefix (like 'fun.'), a name at least 1 character long, and matching opening and closing parentheses. - - - - - - Undefined preprocessor function '$({0})'. - - - - - - In the preprocessor extension that handles prefix '{0}' while trying to call function '{1}({2})' and exception has occurred : {3} - - - - - - - - - In the preprocessor extension that handles prefix '{0}' while trying to get the value for variable '{1}' and exception has occured : {2} - - - - - - - - The manifest '{0}' does not have the required assembly/assemblyIdentity element. - - - - - - The file '{0}' is not a valid WiX Transform. - - - - - - The file '{0}' has an unexpected extension. Expected one of the following: '{1}'. - - - - - - - An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table. - - - - - - Invalid product version '{0}'. Product version must have a major version less than 256, a minor version less than 256, and a build version less than 65536. - - - - Invalid product version '{0}' in package '{1}'. When included in a bundle, all product version fields in an MSI package must be less than 65536. - - - - - - - Component '{0}' has a changed keypath in the transform '{1}'. Patches cannot change the keypath of a component. - - - - - - - The validator requires at least one extension. Add "ValidatorExtension, Wix" for the default implementation. - - - - - Unknown validation message type '{0}'. - - - - - - No transforms were provided to attach to the patch. - - - - - Multiple extensions were specified on the command line, only a single extension is supported. - - - - - The transform {0} was included twice on the command line. Each transform can be applied to a patch only once. - - - - - - No baseline was specified for one of the transforms specified. A baseline is required for all transforms in a patch. - - - - - {0} - - - - - - {0} is expected to be followed by a value argument. - - - - - - No valid transforms were provided to attach to the patch. Check to make sure the transforms you passed on the command line have a matching baseline authored in the patch. Also, make sure there are differences between your target and upgrade. - - - - - No decompiler was provided. {0} requires a decompiler. - - - - - - The table '{0}' was expected but was missing. - - - - - - The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}'. - - - - - - - The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}' or '{4}'. - - - - - - - - - - The WixMsp is missing the patch ID. - - - - - The WixMsp has no media rows defined. - - - - - The file '{0}' cannot be found. - - - - - - The WixMsp is missing the client patch ID. Recompile the patch source files with the latest WiX toolset. - - - - - Product '{0}': Table '{1}' has a new row '{2}' added. This makes the patch not uninstallable. - - - - - - - - This patch is not uninstallable. The 'Patch' element's attribute 'AllowRemoval' should be set to 'no'. - - - - - '{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. - - - - - - '{0}' is too large, file size must be less than 2147483648. - - - - - - The parameter '{0}' is missing or has an invalid value {1}. Possible values are x86, x64, or ia64. - - - - - - - The Platform attribute has an invalid value {0}. Possible values are x86, x64, or ia64. - - - - - - You may only specify a single default type using -t or specify custom validation using -serr and -val. - - - - - Found orphaned Component '{0}'. If this is a Product, every Component must have at least one parent Feature. To include a Component in a Module, you must include it directly as a Component element of the Module element or indirectly via ComponentRef, ComponentGroup, or ComponentGroupRef elements. - - - - - - '-{0}' cannot be specfied in combination with '-{1}'. - - - - - - - The value '*' is not valid for the ProductCode when used in a transform or in a patch. Copy the ProductCode from your target product MSI into the Product/@Id attribute value for your product authoring. - - - - - Invalid order of actions {1} and {2} in sequence table {0}. Action {3} must occur after {1} and before {2}, but {2} is currently sequenced after {1}. Please fix the ordering or explicitly supply a location for the action {3}. - - - - - - - - - Not enough space exists to sequence action {3} in table {0}. It must be sequenced after {1} and before {2}, but those two actions are currently sequenced next to each other. Please move one of those actions to allow {3} to be inserted between them. - - - - - - - - - File '{0}' is marked as a Win32 assembly but it refers to assembly manifest '{1}' that is not present in this product. - - - - - - - Unable to open merge module '{0}'. Check to make sure the module language is correct. '{1}' - - - - - - - The '{0}/@{1}' attribute was not found; it is required when element '{0}' is not nested under a '{2}' element. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal identifier. The {0}/@{1} attribute does not support formatted string values, such as property names enclosed in brackets ([LIKETHIS]). The value must be the identifier of another element, such as the Directory/@Id attribute value. - - - - - - - - The code page '{0}' is not a valid Windows code page. Please check the {1}/@{2} attribute value in your source file. - - - - - - - - The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'. - - - - - The transform schema does not match the database schema. The transform may have been generated from a different database. - - - - The table definition of '{0}' in the target database does not match the table definition in the updated database. A transform requires that the target database schema match the updated database schema. - - - - - - The {0} option requires a directory, but the provided path is a file: {1} - - - - - - - The {0} option requires a file, but the provided path is a directory: {1} - - - - - - - Assembly {0} in component {1} has no strong name and has been marked to be placed in the GAC. All assemblies installed to the GAC must have a valid strong name. - - - - - - - Error writing to the path: '{0}'. Error message: '{1}' - - - - - - - Invalid file name specified on the command line: '{0}'. Error message: '{1}' - - - - - - - When the {0}/@{1} attribute is specified, the {0} element must be nested under a {2} element. - - - - - - - - Illegal value '{0}' for the -wx<N> command line option. Specify a particular warning number, like '-wx6' to display the warning with ID 6 as an error, or '-wx' alone to suppress all warnings. - - - - - - Element '{0}' missing attribute '{1}' or child element '{2}'. Exactly one of those is required. - - - - - - - - The variable '{0}' with value '{1}' was previously declared with value '{2}'. - - - - - - - - The variable definition '{0}' is not valid. Variable definitions should be in the form -dname=value where the value is optional. - - - - - - Duplicate cabinet name '{0}' found. - - - - - - Duplicate cabinet name '{0}' error related to previous error. - - - - - - A row has been added to the File table with id '{1}' that does not have a sequence number assigned to it. Create your transform from a pair of msi's instead of xml outputs to get sequences assigned to your File table's rows. - - - - - - Multiple files with ID '{0}' exist. Windows Installer does not support file IDs that differ only by case. Change the file IDs to be unique. - - - - - - Unable to create temporary file. A common cause is that too many files that have names beginning with '{0}' are present. Delete any unneeded files in the '{1}' directory and try again. - - - - - - - An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file. - - - - - An error (ERROR_DISK_FULL) was returned while creating a CAB file. This means you have insufficient disk space - please clear more disk space and try this operation again. - - - - - Unresolved bind-time variable {0}. - - - - - - The destination name of file '{0}' does not match its assembly name '{1}' in your authoring. This will cause an installation failure for this assembly, because it will be installed to the Global Assembly Cache. To fix this error, update File/@Name of file '{0}' to be the actual name of the assembly. - - - - - - - Illegal characters in path '{0}'. Ensure you provided a valid path to the file. - - - - - - Failed to open the database. During validation, this most commonly happens when attempting to open a database using an unsupported code page or a file that is not a valid Windows Installer database. Please use a different code page in Module/@Codepage, Package/@SummaryCodepage, Product/@Codepage, or WixLocalization/@Codepage; or make sure you provide the path to a valid Windows Installer database. - - - - - You must specify an output file using the "-o" or "-out" switch when you provide more than one input file. - - - - - When the parent DirectorySearch/@Depth attribute is greater than 1 for the DirectorySearch '{1}', the FileSearch/@Id attribute must be absent for FileSearch '{0}' unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. Remove the FileSearch/@Id attribute for '{0}' to resolve this issue. - - - - - - - The {0}/@{1} attribute's value, '{2}', is too long. {0}/@{1} attribute's must be {3} characters long or less. - - - - - - - - - Removing component '{0}' from feature '{1}' is not supported. Either the component was removed or the guid changed in the transform '{2}'. Add the component back, undo the change to the component guid, or remove the entire feature. - - - - - - - - An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element. - - - - - Either '{1}' was not defined in the assembly or the type defined in extension '{0}' could not be loaded. - - - - - The extension type '{1}' in extension '{0}' does not inherit from the expected class '{2}'. - - - - - - The type '{1}' in extension '{0}' could not be loaded. Exception type '{2}' returned the following message: {3} - - - - - - - - - Failed to open merge module for validation. The most common cause of this error is specifying that the merge module supports multiple languages (using the Package/@Languages attribute) but not including language-specific embedded transforms. To fix this error, make the merge module language-neutral, make it language-specific, embed language transforms as specified in the MSI SDK at http://msdn.microsoft.com/library/aa367799.aspx, or disable validation. - - - - - Failed to open package for validation. The most common cause of this error is validating an x64 package on an x86 system. To fix this error, run validation on an x64 system or disable validation. - - - - - A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. - - - - - - The EmbeddedUI/@Name attribute value, '{0}', does not contain an extension. Windows Installer will not load an embedded UI DLL without an extension. Include an extension or just omit the Name attribute so it defaults to the file name portion of the Source attribute value. - - - - - - The DirectorySearch element '{0}' requires that the child {1} element has a unique Id when the DirectorySearch/@AssignToProperty attribute is set to 'yes'. - - - - - - - The {0}/@{1} attribute value, '{2}', cannot be specified when the {0} element is nested underneath a {3} element. - - - - - - - - - Source information is required for the product '{0}'. If you ran torch.exe with both target and updated .msi files, you must first perform an administrative installation of both .msi files then pass -a when running torch.exe. - - - - - - The PatchBaseline/@Id attribute value '{0}' is a child of multiple Media elements. This prevents transforms from being resolved to distinct media. Change the PatchBaseline/@Id attribute values to be unique. - - - - - - Two different source paths '{1}' and '{2}' were detected for the same file identifier '{0}'. You must either author these under Media elements with different Id attribute values or in different patches. - - - - - - - - A harvest source must be specified after the harvest type and can be followed by harvester arguments. - - - - - The '-out' or '-o' parameter must specify a file path. - - - - - The command line option '{0}' has already been loaded by another Heat extension. - - - - - - The harvest type was not found in the list of loaded Heat extensions. - - - The harvest type '{0}' was specified. Harvest types cannot start with a '-'. Remove the '-' to specify a valid harvest type. - - - - - - Both the target and updated product authoring must define the Product/@UpgradeCode attribute if the transform validates the UpgradeCode (default). Either define the Product/@UpgradeCode attribute in both the target and updated authoring, or set the Validate/@UpgradeCode attribute to 'no' in the patch authoring. - - - - - Illegal binder class name specified for -binder command line option. - - - - - The specified binder class '{0}' was not found in any extensions. - - - - - - Cannot load binder file manager: {0}. Light can only load one binder file manager and has already loaded binder file manager: {1}. - - - - - - - Cannot load linker extension: {0}. Light can only load one link extension and has already loaded link extension: {1}. - - - - - - - Unable to get the authenticode certificate of '{0}'. More information: {1} - - - - - - - Unable to get the authenticode certificate of '{0}'. The cryptography API has limitations on Windows XP and Windows Server 2003. More information: {1} - - - - - - - Unable to output to file '{0}' because it is marked as read-only. - - - - - - The Component/@Id attribute was not found; it is required when there is no valid keypath to use as the default id value. - - - - - The parent {0} element is missing the {1} attribute that is required for the {2} child element. - - - - - - - - Exception thrown while processing pragma '{0}'. The exception's message is: {1} - - - - - - - Malformed preprocessor pragma '{0}'. Pragmas must have a prefix, a name of at least 1 character long, and be followed by optional arguments. - - - - - - Unknown input file format - expected a .msi or .msm file. - - - - - Files with an extension of .msp are not currently supported. - - - - - Path contains one or more invalid characters. - - - - - Stub executable '{0}' is not a valid Win32 executable. - - - - - - Stub executable '{0}' does not contain a .wixburn data section. - - - - - - Stub executable '{0}' .wixburn data section is too small to store the Burn container header. - - - - - - The Bundle is missing '{0}' data, and cannot continue. - - - - - - A group parent ('{0}'/'{1}') had an unexpected child ('{2}'/'{3}'). - - - - - - - - - A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph. - - - - - - An expected identifier ('{1}', of type '{0}') was not found. - - - - - - - '{0}' is a 64-bit merge module but the product consuming it is 32-bit. 32-bit products can consume only 32-bit merge modules. - - - - - - The {0}/@{1} attribute's value, '{2}', is not a valid relative long name because it contains illegal characters. Legal relative long names contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: ? | > < : / * ". - - - - - - - - The {0}/@{1} attribute's value, '{2}', is not one of the legal options: {3}. - - - - - - - - - The {0}/@{1} attribute's value, '{2}', is one of the illegal options: {3}. - - - - - - - - - - The code page '{0}' is invalid for summary information. You must specify an ANSI code page. - - - - - - The package being validated requires a higher version of Windows Installer than is installed on this machine. Validation cannot continue. - - - - - Multiple source files ({0}) have resulted in the same output file '{1}'. This is likely because the source files only differ in extension or path. Rename the source files to avoid this problem. - - - - - - - Unable to read package '{0}'. {1} - - - - - - - A per-source file output specification has been provided ('{0}'), but multiple source files match the source specification ({1}). Specifying a unique output requires that only a single source file match. - - - - - - - Unable to read bundle executable '{0}'. This is not a valid WiX bundle. - - - - - - Unable to read bundle executable '{0}', because this bundle was created with a newer version of WiX (bundle version '{1}'). You must use a newer version of WiX in order to read this bundle. - - - - - - - - The extension '{0}' on the input specified '{1}' does not match the number of inputs required to handle an input with this extension. Check if you are missing an input or have too many. - - - - - - - Only one of Media and MediaTemplate tables should be authored. - - - - - CabinetTemplate attribute's value '{0}' must contain '{{0}}' and should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the follow may be used: \ ? | > < : / * " + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms). - - - - - - '{0}' is too large. Reduce the size of maximum uncompressed media size. - - - - - - File '{0}' could not be verified with a catalog file. - - - - - - Could not get hash of file '{0}'. Error: {2}. - - - - - - - The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix. - - - - - - - - The MSI '{0}' is explicitly marked to not elevate so it must be a per-user package but the ALLUSERS Property is set to '1' creating a per-machine package. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute to be explicit instead. - - - - - - The MSI '{0}' set the ALLUSERS Property to '{0}' which is not supported. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead. - - - - - - - The '{0}' MsiProperty is controlled by the bootstrapper and cannot be authored. (Illegal properties are: {1}.) Remove the MsiProperty element. - - - - - - - The merge module '{0}' from file '{1}' is either missing or has an invalid installer version. The value read from the installer version in module's summary information was '{2}'. This should be a numeric value representing a valid installer version such as 200 or 301. - - - - - - - - The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component's keypath is not versioned. Create multiple components to use automatically generated guids. - - - - - The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component has a non-keypath file that is versioned. Create multiple components to use automatically generated guids. - - - - - Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID. - - - - - - - The provider dependency key '{0}' was already imported from the package with Id '{1}'. Please remove the Provides element with the key '{0}' from the package authoring. - - - - - - - The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package. - - - - - - - The {0} element cannot have a child element '{1}' when attribute '{2}' is set. - - - - - - - - The {0} element must have attribute '{1}' when child element '{2}' is present. - - - - - - - - The localization for control {0} in dialog {1} is duplicated. Only one localization per control is allowed. - - - - - The localization for dialog {0} is duplicated. Only one localization per dialog is allowed. - - - - - - '{0}' is too large. Reduce the size of maximum cabinet size for large file splitting. The maximum permitted value is '{1}' MB. - - - - - - - Failed to register the copy command for cabinet '{0}' formed by splitting cabinet '{1}'. - - - - - - - The cabinet name '{0}' collides with the new cabinet formed by splitting cabinet '{1}', consider renaming cabinet '{0}'. - - - - - - - Could not find the last split cabinet '{2}' in the Media Table. So failed to add new cabinet '{0}' formed by splitting cabinet '{1}' to the installer package. - - - - - - - - Invalid AutoVersion template specified. - - - - - Invalid {0}/@Version '{1}'. {0} version has a max value of "65535.65535.65535.65535" and must be all numeric. - - - - - - - The element {1} does not support platform '{0}'. Consider removing the element or using the preprocessor to conditionally include the element based on the platform. - - - - - - - There is no media defined for disk id '{0}'. You must author either <Media Id='{0}' ...> or <MediaTemplate ...>. - - - - - - The RemotePayload element can only be used for ExePackage and MsuPackage payloads. - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/always value. The only legal values are 'always', 'no' or 'yes'. - - - - - - - - Include files cannot be nested more deeply than {0} times. Make sure included files don't accidentally include themselves. - - - - - - The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns. - - - - - - - - The {0}/@{1} attribute's value '{2}' only specifies a directory reference. The inline directory syntax requires that at least one directory be specified in addition to the value. For example, use '{3}:\foo\' to add a 'foo' directory. - - - - - - - - - The file name '{0}' creates an insecure bundle. Windows will load unnecessary compatibility shims into a bundle with that file name. These compatibility shims can be DLL hijacked allowing attackers to compromise your customers' computer. Choose a different bundle file name. - - - - - - The {0}/@{1} attribute's value, '{2}', is not a legal path name: Payload names must be relative to their cache directory and cannot contain '..'. - - - - - - - - MSI transactions must install all x64 packages before any x86 package. - - - - - - - - The {0}/@{1} attribute's value, '{2}', is {3} characters long. It will be too long if modularized. The identifier shouldn't be longer than {4} characters long to allow for modularization (appending a guid for merge modules). - - - - - - - - - - The {0}/@{1} attribute's value cannot be an empty string. If you want the value to be null or empty, simply remove the entire attribute. - - - - - - - Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break. - - - - - - Since the CopyFile/@FileId attribute was specified but none of the following attributes (DestinationName, DestinationDirectory, DestinationProperty) were specified, this authoring will not do anything. - - - - The {0}.{1} column's value, '{2}', indicates a nested install. Nested installations are not supported by the WiX team. This action will be left out of the decompiled output. - - - - - - - - ProgId '{0}' is orphaned. It has no associated component, so it will never install. Every ProgId should have either a parent Class element or child Extension element (at any distance). - - - - - - Property '{0}' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored. - - - - - The RemoveFile/@Name attribute will soon become required. In order to match the old functionality of not specifying this attribute, please use the new RemoveFolder element instead. - - - - The action '{0}' in the {1} table is being suppressed. - - - - - - - The merged action '{0}' in the {1} table is being suppressed. - - - - - - - The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output. - - - - - Access denied; cannot delete '{0}'. - - - - - - The directory '{0}' is in use and cannot be deleted. - - - - - - Access denied; cannot set attributes on '{0}'. - - - - - - The {0} table contains an action '{1}' which is not a known custom action, dialog, or standard action. This action will be left out of the decompiled output. - - - - - - - The {0}/@{1} attribute's value, '{2}', is too long for an identifier. Standard identifiers are 72 characters long or less. - - - - - - - - The {0} table contains a row with primary key '{1}' which has an unknown permission at bit {2}. - - - - - - - - The {0} element's {1} and {2} values are both '{3}'. This is redundant; the {2} attribute should be removed. - - - - - - - The {0} element's source and destination names are identical. This is redundant; the {1} and {2} attributes should be removed if present. - - - - - - - Unable to reset acls on destination files. - - - - The {0}/@{1} attribute's value, '{2}', is not a valid external cabinet name. Legal cabinet names should follow 8.3 format: they should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the following may be used: \ ? | > < : / * " + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms). - - - - - - - - The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead. - - - - - - - The {0} element's {1} and {2} attributes were found. Due to a bug with the Windows Installer, only the Name or LongName attribute should be used. Use the Name attribute for 8.3 compliant file names and the LongName attribute for longer ones. When using only the LongName attribute, ICE03 should be ignored for the Signature table's FileName column. - - - - - - - - The {0}/@{1} attribute's value '{2}' is an ambiguous short name because it ends with a '~' character followed by a number. Under some circumstances, this name could resolve to more than one file or directory name and lead to unpredictable results (for example 'MICROS~1' may correspond to 'Microsoft Shared' or 'Microsoft Foo' or literally 'Micros~1'). - - - - - - - - The Typelib table entry with Id '{0}' could have an incorrect version of '256.0'. InstallShield has a bug relating to the Typelib Version column: it will incorrectly set the value '65536' in to represent version '1.0'. However, this number actually corresponds to version '256.0'. This bug will not affect the typelib version that is registered during installation, however, it will prevent the Windows Installer from correctly identifying whether a typelib is already installed and lead to unnecessary reinstallations of the typelib. - - - - - - The component '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the ComponentRef/@Primary, ComponentGroupRef/@Primary, or FeatureGroupRef/@Primary locations for this component. - - - - - - The {0} table contains actions '{1}' and '{2}' which both have the same sequence number {3}. Please change the sequence number for one of these actions to avoid an ICE warning. - - - - - - - - The location of the action related to previous warning. - - - The location of the suppressed action related to previous warning. - - - - An unexpected row in the '{0}' table was found in this product. Products should not contain the '{0}' table. - - - - - - The {0}/@{1} attribute has been deprecated. - - - - - The {0}/@{1} attribute has been deprecated. Please use the {2} attribute instead. - - - - - - The {0}/@{1} attribute has been deprecated. Please use the {2} or {3} attribute instead. - - - - - - - - - The {0} table contains an action '{1}' which cannot be merged from the merge module '{2}'. This action is likely colliding with an action in the database that is being created. The colliding action may have been authored in the database or merged in from another merge module. If this is a standard action, it is likely colliding due to a difference in the condition for the action in the database and merge module. If this is a custom action, it should only be declared in the database or one merge module. - - - - - - - - The {0} table contains a row with primary key(s) '{1}' which cannot be merged from the merge module '{2}'. This is likely due to collision of rows with the same primary key(s) (but other different values in other columns) between the database and the merge module. - - - - - - - - The {0} table contains a standard action '{1}' that does not have a sequence number specified. A value in the Sequence column is required for standard actions in a merge module. Remove the action from the decompiled authoring to have WiX automatically sequence it. - - - - - - - The {0} table contains an action '{1}' which is not allowed in this table. If this is a standard action then it is not valid for this table, if it is a custom action or dialog then this table does not accept actions of that type. This action will be left out of the decompiled output. - - - - - - - The {0} table contains a row with primary key(s) '{1}' whose {2} column contains a value, '{3}', which specifies a foreign key relationship with the {4} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output. - - - - - - - - The {0} table contains a row with primary key(s) '{1}' whose {2} and {4} columns contain the values, '{3}' and '{5}', which specify a foreign key relationship with the {6} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output. - - - - - - - - - - - - The {0} table is being decompiled as a custom table. - - - - - - The {0} table is not legal in a patch creation file. The information in this table will be left out of the decompiled output. - - - - - - The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output. - - - - - - The {0} table can only be represented in WiX for patch creation files. The information in this table will be left out of the decompiled output. - - - - - - The {0}.{1} column's value, '{2}', cannot currently be represented in the WiX schema. - - - - - - - - The {0} table is not supported by the WiX toolset because it has been deprecated by the Windows Installer team. Any information in this table will be left out of the decompiled output. - - - - - - The {0} table is added to the install package by a transform from a patch package (.msp) and not authored directly into an install package (.msi). The information in this table will be left out of the decompiled output. - - - - - - The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output. - - - - - - - - The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute. - - - - - - - - - The short file name '{0}' was generated for multiple files that may be installed to the same directory. This could be due to conflicting long file names specified by the File/@Name attribute. If that is the case, please resolve the conflict in those attributes. Otherwise, please manually set the File/@ShortName attribute on the conflicting row to fix the collision. If one of the colliding files was added via a patch, that short file name should be specified manually to avoid disturbing the original short file name. - - - - - - The location of a conflicting generated short file name related to the previous warning. - - - - - Merge modules should not contain the '{0}' table because all merge conflicts cannot avoided. However, this warning can be suppressed if all of the consumers of the Merge Module agree to not duplicate identifiers in the '{0}' table. - - - - - - The localization variable $(loc.{0}) uses a deprecated prefix '$'. Please use the '!' prefix instead. Since the prefix '$' is also used by the preprocessor, it has been deprecated to avoid namespace collisions. - - - - - - The {0}/@{1} attribute's value, '{2}', is a placeholder value used in example files. Please replace this placeholder with the appropriate value. - - - - - - - The Product/@UpgradeCode attribute was not found; it is strongly recommended to ensure that this product can be upgraded. - - - - {0}: {1} - - - - - - - The '{0}' Property contains '[{1}]' in its value which is an illegal reference to another property. If this value is a string literal, not a property reference, please ignore this warning. To set a property with the value of another property, use a CustomAction with Property and Value attributes. - - - - - - Specifying a Property element as a child of an Upgrade element has been deprecated. Please specify this Property element as a child of a different element such as Product or Fragment. - - - - The cabinet '{0}' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it. - - - - The cabinet '{0}' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet. - - - - - - The Registry element has been deprecated. Please use one of the new elements which replaces its functionality: RegistryKey for creating registry keys, RegistryValue for writing registry values, RemoveRegistryKey for removing registry keys, and RemoveRegistryValue for removing registry values. - - - - Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath. - - - - - - - The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family. - - - - - - - The 'ProductID' property should not be directly authored because it will prevent the ValidateProductID standard action from performing any validation during the installation. This property will be set by the ValidateProductID standard action or control event. - - - - - The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component. - - - - - - The IgnoreModularization element has been deprecated. Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attribute instead. - - - - - The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. - - - - - The Package/@Compressed attribute is deprecated under the Module element because merge modules must always be compressed. - - - - - The Module/@Guid attribute is deprecated merge modules use their package code as the modularization guid. Use the Package/@Id attribute instead. - - - - - The {0}/@{1} attribute's value '????????-????-????-????-????????????' has been deprecated. Use '*' instead. - - - - - - - The Package/@Id attribute has been set. Setting this attribute will allow nonidentical .msi files to have the same package code. This may be a problem because the package code is the primary identifier used by the installer to search for and validate the correct package for a given installation. If a package is changed without changing the package code, the installer may not use the newer package if both are still accessible to the installer. Please remove the Id attribute in order to automatically generate a new package code for each new .msi file. - - - - - Invalid {0}/@Version '{1}'. {0} version has a max value of "65535.65535.65535.65535" and must be all numeric. - - - - - - - File '{0}' was removed from component '{1}'. Removing a file from a component will not result in the file being removed by a patch. You should author a RemoveFile element in your component to remove the file from the installation if you want the file to be removed. - - - - - - - {0} - - - - - - File '{0}' in Component '{1}' was changed, but the KeyPath file '{2}' was not. This file will not be patched on the target system if the REINSTALLMODE does not contain 'A'. The KeyPath file should also be changed and included in your patch. - - - - - - - - '{0}' is not a valid command line argument. - - - - - - Changing the ProductCode in a patch is not recommended because the patch cannot be uninstalled nor can it be sequenced along with other patches for the target product. See http://msdn2.microsoft.com/library/aa367571.aspx for more information. - - - - - Mismatch in RetainRangeCounts for the file '{0}' - ignoring the retain ranges. - - - - - - The DefaultLanguage '{0}' was used for file '{1}' which has no language. Specifying a language that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Either specify a value for DefaultLanguage or put the language in the version information resource to eliminate this warning. - - - - - - - The DefaultLanguage '{0}' was used for file '{1}' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning. - - - - - - - The DefaultVersion '{0}' was used for file '{1}' which has no version. No entry for this file will be placed in the MsiFileHash table. For unversioned files, specifying a version that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Version the resource to eliminate this warning. - - - - - - - Merge module '{0}' has an installer version of {1} which is greater than the product's installer version of {2}. Merging a module with a higher installer version than the product it is being merged into can result in invalid values in the resulting msi. You must set the Package/@InstallerVersion attribute to {1} or greater to merge this merge module into your product. - - - - - - - - Validation could not run due to system policy. To eliminate this warning, run the process as admin or suppress ICE validation. - - - - - Table '{0}' uses columns that require a version of Windows Installer greater than specified in your package ('{1}'). - - - - - - - Using table '{0}' requires a version of Windows Installer greater than specified in your package ('{1}'). - - - - - - - The command line switch '{0}' is deprecated. - - - - The command line switch '{0}' is deprecated. Please use '{1}' instead. - - - - - - - Found mismatched entry point <{0}>. Expected <{1}> for specified output package type {2}. - - - - - - - - Component '{0}' was added to feature '{1}' in the transform '{2}'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch. - - - - - - - - The value "{0}" for the {1}/@{2} attribute has been deprecated. Please use "{3}" instead. - - - - - - - - - Not enough permissions to harvest type library. On Windows Vista, you must either run Heat elevated, or install Windows Vista SP1 (or higher). - - - - - Because it is an advertised shortcut, the target of shortcut '{0}' will be the keypath of component '{2}' rather than parent file '{1}'. To eliminate this warning, you can (1) make the Shortcut element a child of the File element that is the keypath of component '{2}', (2) make file '{1}' the keypath of component '{2}', or (3) remove the @Advertise attribute so the shortcut is a non-advertised shortcut. - - - - - - - - Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output. - - - - - - - - The value '{0}' in table '{1}', column '{2}' is invalid according to the column's validation information. The decompiled output includes a best-effort representation of this value. - - - - - - - - The assembly in component '{0}' has a null or empty {1} assembly name value. - - - - - - - It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}. - - - - - - - - - The variable '{0}' with value '{1}' was previously declared with value '{2}'. - - - - - - - - The primary key '{0}' is duplicated in table '{1}' and will be ignored. Please remove one of the entries or rename a part of the primary key to avoid the collision. - - - - - - - Package/@InstallerVersion must be 200 or greater for a 64-bit package. The value will be changed to 200. Please specify a value of 200 or greater in order to eliminate this warning. - - - - - The installer database '{0}' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to run the insignia tool as part of your build. - - - - - - Failed to delete temporary directory: {0} - - - - - - The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders. - - - - - - - The pragma '{0}' is unknown. Please ensure you have referenced the extension that defines this pragma. - - - - - - The {0}/@Id attribute contains invalid characters for an identifier. Being able to use invalid identifier characters for a {0} identifier has been deprecated. - - - - - - A UX Payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, UX Payloads must be embedded in the Bundle, so the requested packaging is being ignored. - - - - - - The RollbackBoundary '{0}' was discarded because it was not followed by a package. Without a package the rollback boundary doesn't do anything. Verify that the RollbackBoundary element is not followed by another RollbackBoundary and that the element is not at the end of the chain. - - - - - - The {0} element has been deprecated. - - - - The {0} element has been deprecated. Please use the {1} element instead. - - - - - The {0} element has been deprecated. Please use the {1} or {2} element instead. - - - - - - - - Cannot update the timestamp of cached cabinet: '{0}'. If the timestamp is not updated, the build may rebuild more than is necessary. To fix the issue, ensure that the cabinet file is writable, error: {1} - - - - - - - The Payload '{0}' is embedded but included a @DownloadUrl attribute. Embedded Payloads cannot be downloaded so the download URL is being ignored. - - - - - - Bundles require a package to be either per-machine or per-user. The MSI '{0}' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-{1} and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead. - - - - - - - The MSI '{0}' does not explicitly indicate that it is a per-user package even though the ALLUSERS Property is blank. This suggests a per-user package so the Bundle will assume the package is per-user. If possible, use the Package/@InstallScope attribute to be explicit instead. - - - - - - The MSI '{0}' is a per-user package being forced to per-machine. Verify that the MsiPackage/@ForcePerMachine attribute is expected and that the per-user package works correctly when forced to install per-machine. - - - - - - The {0}/@{1} attribute value '{2}' should contain '{3}' when the {0}/@{4} attribute is set to '{5}'. - - - - - - - - - - - Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer but works as long as all components have mutually-exclusive conditions. It is recommended to give each component its own unique GUID. - - - - - - - The RegistryKey/@Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. - - - - - '{0}' is not a binary Wixlib and has no embedded files. - - - - - - Bundle dependencies will not be registered on per-machine package '{0}' for a per-user bundle. Either make sure that all packages are installed per-machine, or author any per-machine dependencies as permanent packages. - - - - - - The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored. - - - - - - The {0}/@{1} attribute is reserved for future use and has no effect in this version of the WiX toolset. - - - - - - - Package/@InstallerVersion must be 500 or greater for an Arm package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning. - - - - - The {0}/@Compressed attribute must have value 'no' when a RemotePayload child element is present. RemotePayload indicates that a package will always be downloaded and cannot be compressed into a bundle. To eliminate this warning, explicitly set the {0}/@Compressed attribute to 'no'. - - - - - - All changes between the baseline and upgraded packages will be included in the patch except for any change to the ProductCode. The 'All' element is supported primarily for testing purposes and negates the benefits of patch families. - - - - - Ignoring attribute {0} because attribute {1} is set to {2}. - - - - - - - - Backslash terminate the {0}/@{1} attribute's inline directory value '{2}'. A backslash ensures a directory name will not be mistaken for a directory reference. - - - - - - - - Product version {0} in package '{1}' is not valid per the MSI SDK and cannot be represented in a bundle. It has been truncated to {2}. - - - - - - - - {0} functionality is documented in the Windows Installer SDK to "not [work] as expected." Consider replacing {0} with the WixUtilExtension ServiceConfig element. - - - - - - - - - Importing binary stream from '{0}'. - - - - - - Importing icon stream from '{0}'. - - - - - - Copying file '{0}' to '{1}'. - - - - - - - Moving file '{0}' to '{1}'. - - - - - - - The directory '{0}' does not exist, creating it now. - - - - - - The destination file '{0}' already exists, attempting to remove it. - - - - - - Cabbing file {0} from '{1}'. - - - - - - Updating file information. - - - Generating database. - - - Merging modules. - - - Creating cabinet files. - - - Importing streams. - - - Laying out media. - - - - Decompiling the {0} table. - - - - - - {0}: {1} - - - - - - - Creating cabinet '{0}'. - - - - - Validating database. - - - - Opening merge module '{0}' with language '{1}'. - - - - - - - Merging merge module '{0}'. - - - - - - Connecting merge module '{0}' to feature '{1}'. - - - - - - Resequencing files from all merge modules. - - - - Binder temporary directory located at '{0}'. - - - - - - Validator temporary directory located at '{0}'. - - - - - - Generating Burn bundle '{0}' from stub '{1}'. - - - - - - - Generating resolved manifest '{0}'. - - - - - - Loading payload '{0}' into container. - - - - - - Assigning bundle GUID '{0}'. - - - - - - Copying external payload from '{0}' to '{1}'. - - - - - - - Embedding container '{0}' ({1} bytes) with '{2}' compression. - - - - - - - - Bundle switching from per-machine to per-user due to addition of per-user package '{0}'. - - - - - - There will be '{0}' threads used to produce CAB files. - - - - - - Multiple packages cannot reliably be validated simultaneously. This validation will resume when the other package being validated has completed. - - - - - Reusing cabinet '{0}' from cabinet cache path: '{1}'. - - - - - - - Multiple Cabinets with Large Files are splitting simultaneously. This current cabinet is waiting on a shared resource and splitting will resume when the other splitting has completed. - - - - - Validation complete: {0:N0}ms elapsed. - - - - - diff --git a/src/WixToolset.Data/DictionaryExtensions.cs b/src/WixToolset.Data/DictionaryExtensions.cs deleted file mode 100644 index cb6647ff..00000000 --- a/src/WixToolset.Data/DictionaryExtensions.cs +++ /dev/null @@ -1,14 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System.Collections.Generic; - - internal static class DictionaryExtensions - { - public static V GetValueOrDefault(this IDictionary dictionary, K key, V defaultValue = default(V)) - { - return dictionary.TryGetValue(key, out var value) ? value : defaultValue; - } - } -} diff --git a/src/WixToolset.Data/DisplayEventArgs.cs b/src/WixToolset.Data/DisplayEventArgs.cs deleted file mode 100644 index baa9b0e2..00000000 --- a/src/WixToolset.Data/DisplayEventArgs.cs +++ /dev/null @@ -1,15 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public delegate void DisplayEventHandler(object sender, DisplayEventArgs e); - - public class DisplayEventArgs : EventArgs - { - public MessageLevel Level { get; set; } - - public string Message { get; set; } - } -} diff --git a/src/WixToolset.Data/EmptyRule.cs b/src/WixToolset.Data/EmptyRule.cs deleted file mode 100644 index 0170e457..00000000 --- a/src/WixToolset.Data/EmptyRule.cs +++ /dev/null @@ -1,22 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public enum EmptyRule - { - /// - /// The trimmed value cannot be empty. - /// - MustHaveNonWhitespaceCharacters, - - /// - /// The trimmed value can be empty, but the value itself cannot be empty. - /// - CanBeWhitespaceOnly, - - /// - /// The value can be empty. - /// - CanBeEmpty - } -} diff --git a/src/WixToolset.Data/ErrorMessages.cs b/src/WixToolset.Data/ErrorMessages.cs deleted file mode 100644 index 86504f60..00000000 --- a/src/WixToolset.Data/ErrorMessages.cs +++ /dev/null @@ -1,2731 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.Resources; - - public static class ErrorMessages - { - public static Message ActionCircularDependency(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) - { - return Message(sourceLineNumbers, Ids.ActionCircularDependency, "The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is also scheduled to come before or after action '{1}'. Please remove this circular dependency by changing the Before or After attribute for one of the actions.", sequenceTableName, actionName1, actionName2); - } - - public static Message ActionCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.ActionCollision, "The {0} table contains an action '{1}' that is declared in two different locations. Please remove one of the actions or set the Overridable='yes' attribute on one of their elements.", sequenceTableName, actionName); - } - - public static Message ActionCollision2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ActionCollision2, "The location of the action related to previous error."); - } - - public static Message ActionScheduledRelativeToItself(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) - { - return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToItself, "The {0}/@{1} attribute's value '{2}' is invalid because it would make this action dependent upon itself. Please change the value to the name of a different action.", elementName, attributeName, attributeValue); - } - - public static Message ActionScheduledRelativeToTerminationAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) - { - return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToTerminationAction, "The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is a special action which only occurs when the installer terminates. These special actions can be identified by their negative sequence numbers. Please schedule the action '{1}' to come before or after a different action.", sequenceTableName, actionName1, actionName2); - } - - public static Message ActionScheduledRelativeToTerminationAction2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToTerminationAction2, "The location of the special termination action related to previous error(s)."); - } - - public static Message AdditionalArgumentUnexpected(string argument) - { - return Message(null, Ids.AdditionalArgumentUnexpected, "Additional argument '{0}' was unexpected. Remove the argument and add the '-?' switch for more information.", argument); - } - - public static Message AdminImageRequired(string productCode) - { - return Message(null, Ids.AdminImageRequired, "Source information is required for the product '{0}'. If you ran torch.exe with both target and updated .msi files, you must first perform an administrative installation of both .msi files then pass -a when running torch.exe.", productCode); - } - - public static Message AdvertiseStateMustMatch(SourceLineNumber sourceLineNumbers, string advertiseState, string parentAdvertiseState) - { - return Message(sourceLineNumbers, Ids.AdvertiseStateMustMatch, "The advertise state of this element: '{0}', does not match the advertise state set on the parent element: '{1}'.", advertiseState, parentAdvertiseState); - } - - public static Message AppIdIncompatibleAdvertiseState(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string parentValue) - { - return Message(sourceLineNumbers, Ids.AppIdIncompatibleAdvertiseState, "The {0}/@(1) attribute's value, '{2}' does not match the advertise state on its parent element: '{3}'. (Note: AppIds nested under Fragment, Module, or Product elements must be advertised.)", elementName, attributeName, value, parentValue); - } - - public static Message BaselineRequired() - { - return Message(null, Ids.BaselineRequired, "No baseline was specified for one of the transforms specified. A baseline is required for all transforms in a patch."); - } - - public static Message BinderFileManagerMissingFile(SourceLineNumber sourceLineNumbers, string exceptionMessage) - { - return Message(sourceLineNumbers, Ids.BinderFileManagerMissingFile, "{0}", exceptionMessage); - } - - public static Message BothUpgradeCodesRequired() - { - return Message(null, Ids.BothUpgradeCodesRequired, "Both the target and updated product authoring must define the Product/@UpgradeCode attribute if the transform validates the UpgradeCode (default). Either define the Product/@UpgradeCode attribute in both the target and updated authoring, or set the Validate/@UpgradeCode attribute to 'no' in the patch authoring."); - } - - public static Message BundleTooNew(string bundleExecutable, long bundleVersion) - { - return Message(null, Ids.BundleTooNew, "Unable to read bundle executable '{0}', because this bundle was created with a newer version of WiX (bundle version '{1}'). You must use a newer version of WiX in order to read this bundle.", bundleExecutable, bundleVersion); - } - - public static Message CabClosureFailed(string cabinet) - { - return Message(null, Ids.CabClosureFailed, "Failed to close cab '{0}'.", cabinet); - } - - public static Message CabClosureFailed(string cabinet, int error) - { - return Message(null, Ids.CabClosureFailed, "Failed to close cab '{0}', error: {1}.", cabinet, error); - } - - public static Message CabCreationFailed(string cabName, string fileName, int error) - { - return Message(null, Ids.CabCreationFailed, "Failed to create cab '{0}' while compressing file '{1}' with error 0x{2:X8}.", cabName, fileName, error); - } - - public static Message CabCreationFailed(string cabName, int error) - { - return Message(null, Ids.CabCreationFailed, "Failed to create cab '{0}' with error 0x{1:X8}.", cabName, error); - } - - public static Message CabExtractionFailed(string cabName, string directoryName) - { - return Message(null, Ids.CabExtractionFailed, "Failed to extract cab '{0}' to directory '{1}'. This is most likely due to a lack of available disk space on the destination drive.", cabName, directoryName); - } - - public static Message CabExtractionFailed(string cabName, string mergeModulePath, string directoryName) - { - return Message(null, Ids.CabExtractionFailed, "Failed to extract cab '{0}' from merge module '{1}' to directory '{2}'. This is most likely due to a lack of available disk space on the destination drive.", cabName, mergeModulePath, directoryName); - } - - public static Message CabFileDoesNotExist(string cabName, string mergeModulePath, string directoryName) - { - return Message(null, Ids.CabFileDoesNotExist, "Attempted to extract cab '{0}' from merge module '{1}' to directory '{2}'. The cab file was not found. This usually means that you have a merge module without a cabinet inside it.", cabName, mergeModulePath, directoryName); - } - - public static Message CannotAuthorSpecialProperties(SourceLineNumber sourceLineNumbers, string propertyName) - { - return Message(sourceLineNumbers, Ids.CannotAuthorSpecialProperties, "The {0} property was specified. Special MSI properties cannot be authored. Use the attributes on the Property element instead.", propertyName); - } - - public static Message CannotDefaultComponentId(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.CannotDefaultComponentId, "The Component/@Id attribute was not found; it is required when there is no valid keypath to use as the default id value."); - } - - public static Message CannotDefaultMismatchedAdvertiseStates(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.CannotDefaultMismatchedAdvertiseStates, "MIME element cannot be marked as the default when its advertise state differs from its parent element. Ensure that the advertise state of the MIME element matches its parents element or remove the Mime/@Advertise attribute completely."); - } - - public static Message CannotFindFile(SourceLineNumber sourceLineNumbers, string fileId, string fileName, string filePath) - { - return Message(sourceLineNumbers, Ids.CannotFindFile, "The file with id '{0}' and name '{1}' could not be found with source path: '{2}'.", fileId, fileName, filePath); - } - - public static Message CanNotHaveTwoParents(SourceLineNumber sourceLineNumbers, string directorySearch, string parentAttribute, string parentElement) - { - return Message(sourceLineNumbers, Ids.CanNotHaveTwoParents, "The DirectorySearchRef {0} can not have a Parent attribute {1} and also be nested under parent element {2}", directorySearch, parentAttribute, parentElement); - } - - public static Message CannotLoadBinderFileManager(string binderFileManager, string currentBinderFileManager) - { - return Message(null, Ids.CannotLoadBinderFileManager, "Cannot load binder file manager: {0}. Light can only load one binder file manager and has already loaded binder file manager: {1}.", binderFileManager, currentBinderFileManager); - } - - public static Message CannotLoadLinkerExtension(string linkerExtension, string currentLinkerExtension) - { - return Message(null, Ids.CannotLoadLinkerExtension, "Cannot load linker extension: {0}. Light can only load one link extension and has already loaded link extension: {1}.", linkerExtension, currentLinkerExtension); - } - - public static Message CannotOpenMergeModule(SourceLineNumber sourceLineNumbers, string mergeModuleIdentifier, string mergeModuleFile) - { - return Message(sourceLineNumbers, Ids.CannotOpenMergeModule, "Cannot open the merge module '{0}' from file '{1}'.", mergeModuleIdentifier, mergeModuleFile); - } - - public static Message CannotReundefineVariable(SourceLineNumber sourceLineNumbers, string variableName) - { - return Message(sourceLineNumbers, Ids.CannotReundefineVariable, "The variable '{0}' cannot be undefined because its already undefined.", variableName); - } - - public static Message CheckBoxValueOnlyValidWithCheckBox(SourceLineNumber sourceLineNumbers, string elementName, string controlType) - { - return Message(sourceLineNumbers, Ids.CheckBoxValueOnlyValidWithCheckBox, "A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'.", elementName, controlType); - } - - public static Message CircularSearchReference(string chain) - { - return Message(null, Ids.CircularSearchReference, "A circular reference of search ordering constraints was detected: {0}. Search ordering references must form a directed acyclic graph.", chain); - } - - public static Message ComponentExpectedFeature(SourceLineNumber sourceLineNumbers, string component, string type, string target) - { - return Message(sourceLineNumbers, Ids.ComponentExpectedFeature, "The component '{0}' is not assigned to a feature. The component's {1} '{2}' requires it to be assigned to at least one feature.", component, type, target); - } - - public static Message ComponentMultipleKeyPaths(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string fileElementName, string registryElementName, string odbcDataSourceElementName) - { - return Message(sourceLineNumbers, Ids.ComponentMultipleKeyPaths, "The {0} element has multiple key paths set. The key path may only be set to '{2}' in extension elements that support it or one of the following locations: {0}/@{1}, {3}/@{1}, {4}/@{1}, or {5}/@{1}.", elementName, attributeName, value, fileElementName, registryElementName, odbcDataSourceElementName); - } - - public static Message ComponentReferencedTwice(SourceLineNumber sourceLineNumbers, string crefChildId) - { - return Message(sourceLineNumbers, Ids.ComponentReferencedTwice, "Component {0} cannot be contained in a Module twice.", crefChildId); - } - - public static Message ConditionExpected(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.ConditionExpected, "The {0} element's inner text cannot be an empty string or completely whitespace. If you don't want a condition, then simply remove the entire {0} element.", elementName); - } - - public static Message CorruptFileFormat(string path, string format) - { - return Message(null, Ids.CorruptFileFormat, "Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified.", path, format.ToLowerInvariant()); - } - - public static Message CouldNotDetermineProductCodeFromTransformSummaryInfo() - { - return Message(null, Ids.CouldNotDetermineProductCodeFromTransformSummaryInfo, "Could not determine ProductCode from transform summary information."); - } - - public static Message CreateCabAddFileFailed() - { - return Message(null, Ids.CreateCabAddFileFailed, "An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file."); - } - - public static Message CreateCabInsufficientDiskSpace() - { - return Message(null, Ids.CreateCabInsufficientDiskSpace, "An error (ERROR_DISK_FULL) was returned while creating a CAB file. This means you have insufficient disk space - please clear more disk space and try this operation again."); - } - - public static Message CubeFileNotFound(string cubeFile) - { - return Message(null, Ids.CubeFileNotFound, "The cube file '{0}' cannot be found. This file is required for MSI validation.", cubeFile); - } - - public static Message CustomActionIllegalInnerText(SourceLineNumber sourceLineNumbers, string elementName, string innerText, string attributeName) - { - return Message(sourceLineNumbers, Ids.CustomActionIllegalInnerText, "The {0} element contains illegal inner text: '{1}'. It may not contain inner text unless the {2} attribute is specified.", elementName, innerText, attributeName); - } - - public static Message CustomActionMultipleSources(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5) - { - return Message(sourceLineNumbers, Ids.CustomActionMultipleSources, "The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following source attributes specified at a time: {2}, {3}, {4}, {5}, or {6}.", elementName, attributeName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5); - } - - public static Message CustomActionMultipleTargets(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6, string attributeName7) - { - return Message(sourceLineNumbers, Ids.CustomActionMultipleTargets, "The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following target attributes specified at a time: {2}, {3}, {4}, {5}, {6}, {7}, or {8}.", elementName, attributeName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6, attributeName7); - } - - public static Message CustomActionSequencedInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.CustomActionSequencedInModule, "The {0} table contains a custom action '{1}' that has a sequence number specified. The Sequence attribute is not allowed for custom actions in a merge module. Please remove the action or use the Before or After attributes to specify where this action should be sequenced relative to another action.", sequenceTableName, actionName); - } - - public static Message CustomTableIllegalColumnWidth(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int value) - { - return Message(sourceLineNumbers, Ids.CustomTableIllegalColumnWidth, "The {0}/@{1} attribute's value, '{2}', is not a valid column width. Valid column widths are 2 or 4.", elementName, attributeName, value); - } - - public static Message CustomTableMissingPrimaryKey(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.CustomTableMissingPrimaryKey, "The CustomTable is missing a Column element with the PrimaryKey attribute set to 'yes'. At least one column must be marked as the primary key."); - } - - public static Message CustomTableNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.CustomTableNameTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long.", elementName, attributeName, value); - } - - public static Message DatabaseSchemaMismatch(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.DatabaseSchemaMismatch, "The table definition of '{0}' in the target database does not match the table definition in the updated database. A transform requires that the target database schema match the updated database schema.", tableName); - } - - public static Message DirectoryPathRequired(string parameter) - { - return Message(null, Ids.DirectoryPathRequired, "The parameter '{0}' must be followed by a directory path.", parameter); - } - - public static Message DisallowedMsiProperty(SourceLineNumber sourceLineNumbers, string property, string illegalValueList) - { - return Message(sourceLineNumbers, Ids.DisallowedMsiProperty, "The '{0}' MsiProperty is controlled by the bootstrapper and cannot be authored. (Illegal properties are: {1}.) Remove the MsiProperty element.", property, illegalValueList); - } - - public static Message DuplicateCabinetName(SourceLineNumber sourceLineNumbers, string cabinetName) - { - return Message(sourceLineNumbers, Ids.DuplicateCabinetName, "Duplicate cabinet name '{0}' found.", cabinetName); - } - - public static Message DuplicateCabinetName2(SourceLineNumber sourceLineNumbers, string cabinetName) - { - return Message(sourceLineNumbers, Ids.DuplicateCabinetName2, "Duplicate cabinet name '{0}' error related to previous error.", cabinetName); - } - - public static Message DuplicateCommandLineOptionInExtension(string arg) - { - return Message(null, Ids.DuplicateCommandLineOptionInExtension, "The command line option '{0}' has already been loaded by another Heat extension.", arg); - } - - public static Message DuplicateComponentGuids(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) - { - return Message(sourceLineNumbers, Ids.DuplicateComponentGuids, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath); - } - - public static Message DuplicateContextValue(SourceLineNumber sourceLineNumbers, string contextValue) - { - return Message(sourceLineNumbers, Ids.DuplicateContextValue, "The context value '{0}' was duplicated. Context values must be distinct.", contextValue); - } - - public static Message DuplicatedUiLocalization(SourceLineNumber sourceLineNumbers, string controlName, string dialogName) - { - return Message(sourceLineNumbers, Ids.DuplicatedUiLocalization, "The localization for control {0} in dialog {1} is duplicated. Only one localization per control is allowed.", controlName, dialogName); - } - - public static Message DuplicatedUiLocalization(SourceLineNumber sourceLineNumbers, string dialogName) - { - return Message(sourceLineNumbers, Ids.DuplicatedUiLocalization, "The localization for dialog {0} is duplicated. Only one localization per dialog is allowed.", dialogName); - } - - public static Message DuplicateExtensionPreprocessorType(string extension, string variablePrefix, string collidingExtension) - { - return Message(null, Ids.DuplicateExtensionPreprocessorType, "The extension '{0}' uses the same preprocessor variable prefix, '{1}', as previously loaded extension '{2}'. Please remove one of the extensions or rename the prefix to avoid the collision.", extension, variablePrefix, collidingExtension); - } - - public static Message DuplicateExtensionTable(string extension, string tableName) - { - return Message(null, Ids.DuplicateExtensionTable, "The extension '{0}' contains a definition for table '{1}' that collides with a previously loaded table definition. Please remove one of the conflicting extensions or rename one of the tables to avoid the collision.", extension, tableName); - } - - public static Message DuplicateExtensionXmlSchemaNamespace(string extension, string extensionXmlSchemaNamespace, string collidingExtension) - { - return Message(null, Ids.DuplicateExtensionXmlSchemaNamespace, "The extension '{0}' uses the same xml schema namespace, '{1}', as previously loaded extension '{2}'. Please either remove one of the extensions or rename the xml schema namespace to avoid the collision.", extension, extensionXmlSchemaNamespace, collidingExtension); - } - - public static Message DuplicateFileId(string fileId) - { - return Message(null, Ids.DuplicateFileId, "Multiple files with ID '{0}' exist. Windows Installer does not support file IDs that differ only by case. Change the file IDs to be unique.", fileId); - } - - public static Message DuplicateLocalizationIdentifier(SourceLineNumber sourceLineNumbers, string localizationId) - { - return Message(sourceLineNumbers, Ids.DuplicateLocalizationIdentifier, "The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict.", localizationId); - } - - public static Message DuplicateModuleCaseInsensitiveFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId1, string fileId2) - { - return Message(sourceLineNumbers, Ids.DuplicateModuleCaseInsensitiveFileIdentifier, "The merge module '{0}' contains 2 or more file identifiers that only differ by case: '{1}' and '{2}'. The WiX toolset extracts merge module files to the file system using these identifiers. Since most file systems are not case-sensitive a collision is likely. Please contact the owner of the merge module for a fix.", moduleId, fileId1, fileId2); - } - - public static Message DuplicateModuleFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId) - { - return Message(sourceLineNumbers, Ids.DuplicateModuleFileIdentifier, "The merge module '{0}' contains a file identifier, '{1}', that is duplicated either in another merge module or in a File/@Id attribute. File identifiers must be unique. Please change one of the file identifiers to a different value.", moduleId, fileId); - } - - public static Message DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) - { - return Message(sourceLineNumbers, Ids.DuplicatePrimaryKey, "The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision.", primaryKey, tableName); - } - - public static Message DuplicateProviderDependencyKey(string providerKey, string packageId) - { - return Message(null, Ids.DuplicateProviderDependencyKey, "The provider dependency key '{0}' was already imported from the package with Id '{1}'. Please remove the Provides element with the key '{0}' from the package authoring.", providerKey, packageId); - } - - public static Message DuplicateSourcesForOutput(string sourceList, string outputFile) - { - return Message(null, Ids.DuplicateSourcesForOutput, "Multiple source files ({0}) have resulted in the same output file '{1}'. This is likely because the source files only differ in extension or path. Rename the source files to avoid this problem.", sourceList, outputFile); - } - - public static Message DuplicateSymbol(SourceLineNumber sourceLineNumbers, string symbolName) - { - return Message(sourceLineNumbers, Ids.DuplicateSymbol, "Duplicate symbol '{0}' found. This typically means that an Id is duplicated. Access modifiers (internal, protected, private) cannot prevent these conflicts. Ensure all your identifiers of a given type (File, Component, Feature) are unique.", symbolName); - } - - public static Message DuplicateSymbol(SourceLineNumber sourceLineNumbers, string symbolName, string referencingSourceLineNumber) - { - return Message(sourceLineNumbers, Ids.DuplicateSymbol, "Duplicate symbol '{0}' referenced by {1}. This typically means that an Id is duplicated. Ensure all your identifiers of a given type (File, Component, Feature) are unique or use an access modifier to scope the identfier.", symbolName, referencingSourceLineNumber); - } - - public static Message DuplicateSymbol2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.DuplicateSymbol2, "Location of symbol related to previous error."); - } - - public static Message DuplicateTransform(string transform) - { - return Message(null, Ids.DuplicateTransform, "The transform {0} was included twice on the command line. Each transform can be applied to a patch only once.", transform); - } - - public static Message DuplicateVariableDefinition(string variableName, string variableValue, string variableCollidingValue) - { - return Message(null, Ids.DuplicateVariableDefinition, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); - } - - public static Message ExampleGuid(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.ExampleGuid, "The {0}/@{1} attribute's value, '{2}', is not a legal Guid value. A Guid needs to be generated and put in place of '{2}' in the source file.", elementName, attributeName, value); - } - - public static Message ExpectedArgument(string argument) - { - return Message(null, Ids.ExpectedArgument, "{0} is expected to be followed by a value. See -? for additional detail.", argument); - } - - public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required.", elementName, attributeName); - } - - public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attribute1Name, string attribute2Name, Boolean eitherOr) - { - return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0} element must have a value for exactly one of the {1} or {2} attributes.", elementName, attribute1Name, attribute2Name, eitherOr); - } - - public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required when attribute {2} is specified.", elementName, attributeName, otherAttributeName); - } - - public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue) - { - return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required when attribute {2} has a value of '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue); - } - - public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue, Boolean otherAttributeValueUnless) - { - return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required unless the attribute {2} has a value of '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue, otherAttributeValueUnless); - } - - public static Message ExpectedAttributeInElementOrParent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeInElementOrParent, "The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2} element.", elementName, attributeName, parentElementName); - } - - public static Message ExpectedAttributeInElementOrParent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName, string parentAttributeName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeInElementOrParent, "The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2}/@{3} attribute.", elementName, attributeName, parentElementName, parentAttributeName); - } - - public static Message ExpectedAttributeWithValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName2) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeWithValueWithOtherAttribute, "The {0}/@{1} attribute is required to have a value when attribute {2} is present.", elementName, attributeName, attributeName2); - } - - public static Message ExpectedAttributeOrElement(SourceLineNumber sourceLineNumbers, string parentElement, string attribute, string childElement) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeOrElement, "Element '{0}' missing attribute '{1}' or child element '{2}'. Exactly one of those is required.", parentElement, attribute, childElement); - } - - public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1} or {2} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2); - } - - public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, or {3} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3); - } - - public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, or {4} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4); - } - - public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, or {5} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5); - } - - public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, {5}, or {6} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6); - } - - public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6, string attributeName7) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, {5}, {6}, or {7} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6, attributeName7); - } - - public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; at least one of these attributes must be specified.", elementName, attributeName1, attributeName2); - } - - public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} is present.", elementName, attributeName1, attributeName2, otherAttributeName); - } - - public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName, string otherAttributeValue) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} has a value of '{4}'.", elementName, attributeName1, attributeName2, otherAttributeName, otherAttributeValue); - } - - public static Message ExpectedAttributesWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributesWithoutOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required without attribute {3} present.", elementName, attributeName1, attributeName2, otherAttributeName); - } - - public static Message ExpectedAttributeWhenElementNotUnderElement(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeWhenElementNotUnderElement, "The '{0}/@{1}' attribute was not found; it is required when element '{0}' is not nested under a '{2}' element.", elementName, attributeName, parentElementName); - } - - public static Message ExpectedAttributeWithElement(SourceLineNumber sourceLineNumbers, string elementName, string attribute, string childElementName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeWithElement, "The {0} element must have attribute '{1}' when child element '{2}' is present.", elementName, attribute, childElementName); - } - - public static Message ExpectedAttributeWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeWithoutOtherAttributes, "The {0} element's {1} attribute was not found; it is required without attribute {2} present.", elementName, attributeName, otherAttributeName); - } - - public static Message ExpectedAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) - { - return Message(sourceLineNumbers, Ids.ExpectedAttributeWithoutOtherAttributes, "The {0} element's {1} attribute was not found; it is required without attribute {2} or {3} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); - } - - public static Message ExpectedBinaryCategory(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ExpectedBinaryCategory, "The Column element specifies a binary column but does not have the correct Category specified. Windows Installer requires binary columns to specify their category as binary. Please set the Category attribute's value to 'Binary'."); - } - - public static Message ExpectedClientPatchIdInWixMsp() - { - return Message(null, Ids.ExpectedClientPatchIdInWixMsp, "The WixMsp is missing the client patch ID. Recompile the patch source files with the latest WiX toolset."); - } - - public static Message ExpectedDecompiler(string identifier) - { - return Message(null, Ids.ExpectedDecompiler, "No decompiler was provided. {0} requires a decompiler.", identifier); - } - - public static Message ExpectedDirectory(string directory) - { - return Message(null, Ids.ExpectedDirectory, "The directory '{0}' could not be found.", directory); - } - - public static Message ExpectedDirectoryGotFile(string option, string path) - { - return Message(null, Ids.ExpectedDirectoryGotFile, "The {0} option requires a directory, but the provided path is a file: {1}", option, path); - } - - public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element.", elementName); - } - - public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName) - { - return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}.", elementName, childName); - } - - public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2) - { - return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1} or {2}.", elementName, childName1, childName2); - } - - public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2, string childName3) - { - return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}, {2}, or {3}.", elementName, childName1, childName2, childName3); - } - - public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2, string childName3, string childName4) - { - return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}, {2}, {3}, or {4}.", elementName, childName1, childName2, childName3, childName4); - } - - public static Message ExpectedEndElement(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.ExpectedEndElement, "The end element matching the '{0}' start element was not found.", elementName); - } - - public static Message ExpectedEndforeach(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ExpectedEndforeach, "A statement was found that had no matching ."); - } - - public static Message ExpectedExpressionAfterNot(SourceLineNumber sourceLineNumbers, string expression) - { - return Message(sourceLineNumbers, Ids.ExpectedExpressionAfterNot, "Expecting an argument for 'NOT' in expression '{0}'.", expression); - } - - public static Message ExpectedFileGotDirectory(string option, string path) - { - return Message(null, Ids.ExpectedFileGotDirectory, "The {0} option requires a file, but the provided path is a directory: {1}", option, path); - } - - public static Message ExpectedMediaCabinet(SourceLineNumber sourceLineNumbers, string fileId, int diskId) - { - return Message(sourceLineNumbers, Ids.ExpectedMediaCabinet, "The file '{0}' should be compressed but is not part of a compressed media. Files will be compressed if either the File/@Compressed or Package/@Compressed attributes are set to 'yes'. This can be fixed by setting the Media/@Cabinet attribute for media '{1}'.", fileId, diskId); - } - - public static Message ExpectedMediaRowsInWixMsp() - { - return Message(null, Ids.ExpectedMediaRowsInWixMsp, "The WixMsp has no media rows defined."); - } - - public static Message ExpectedParentWithAttribute(SourceLineNumber sourceLineNumbers, string parentElement, string attribute, string grandparentElement) - { - return Message(sourceLineNumbers, Ids.ExpectedParentWithAttribute, "When the {0}/@{1} attribute is specified, the {0} element must be nested under a {2} element.", parentElement, attribute, grandparentElement); - } - - public static Message ExpectedPatchIdInWixMsp() - { - return Message(null, Ids.ExpectedPatchIdInWixMsp, "The WixMsp is missing the patch ID."); - } - - public static Message ExpectedRowInPatchCreationPackage(string tableName) - { - return Message(null, Ids.ExpectedRowInPatchCreationPackage, "Could not find a row in the '{0}' table for this patch creation package. Patch creation packages must contain at least one row in the '{0}' table.", tableName); - } - - public static Message ExpectedSignedCabinetName(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ExpectedSignedCabinetName, "The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute."); - } - - public static Message ExpectedTableInMergeModule(string identifier) - { - return Message(null, Ids.ExpectedTableInMergeModule, "The table '{0}' was expected but was missing.", identifier); - } - - public static Message ExpectedVariable(SourceLineNumber sourceLineNumbers, string expression) - { - return Message(sourceLineNumbers, Ids.ExpectedVariable, "A required variable was missing in the expression '{0}'.", expression); - } - - public static Message ExpectedWixVariableValue(string variableId) - { - return Message(null, Ids.ExpectedWixVariableValue, "The WiX variable '{0}' was declared without a value. Please specify a value for the variable.", variableId); - } - - public static Message FamilyNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length) - { - return Message(sourceLineNumbers, Ids.FamilyNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long for a family name because the maximum allowed length is 8 characters long.", elementName, attributeName, value, length); - } - - public static Message FeatureCannotFavorAndDisallowAdvertise(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string otherAttributeName, string otherValue) - { - return Message(sourceLineNumbers, Ids.FeatureCannotFavorAndDisallowAdvertise, "The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'. These options would ask the installer to disallow the advertised state for this feature while at the same time favoring it.", elementName, attributeName, value, otherAttributeName, otherValue); - } - - public static Message FeatureCannotFollowParentAndFavorLocalOrSource(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherValue) - { - return Message(sourceLineNumbers, Ids.FeatureCannotFollowParentAndFavorLocalOrSource, "The {0}/@{1} attribute cannot be specified if the {2} attribute's value is '{3}'. These options would ask the installer to force this feature to follow the parent installation state and simultaneously favor a particular installation state just for this feature.", elementName, attributeName, otherAttributeName, otherValue); - } - - public static Message FeatureConfigurableDirectoryNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.FeatureConfigurableDirectoryNotUppercase, "The {0}/@{1} attribute's value, '{2}', contains lowercase characters. Since this directory is user-configurable, it needs to be a public property. This means the value must be completely uppercase.", elementName, attributeName, value); - } - - public static Message FeatureNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) - { - return Message(sourceLineNumbers, Ids.FeatureNameTooLong, "The {0}/@{1} attribute with value '{2}', is too long for a feature name. Due to limitations in the Windows Installer, feature names cannot be longer than 38 characters in length.", elementName, attributeName, attributeValue); - } - - public static Message FileIdentifierNotFound(SourceLineNumber sourceLineNumbers, string fileIdentifier) - { - return Message(sourceLineNumbers, Ids.FileIdentifierNotFound, "The file row with identifier '{0}' could not be found.", fileIdentifier); - } - - public static Message FileInUse(SourceLineNumber sourceLineNumbers, string file) - { - return Message(sourceLineNumbers, Ids.FileInUse, "The process can not access the file '{0}' because it is being used by another process.", file); - } - - public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file) - { - return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}'.", file); - } - - public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType) - { - return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}' with type '{1}'.", file, fileType); - } - - public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType, IEnumerable checkedPaths) - { - var combinedCheckedPaths = String.Join(", ", checkedPaths); - return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}' with type '{1}'. The following paths were checked: {2}", file, fileType, combinedCheckedPaths); - } - - public static Message FileOrDirectoryPathRequired(string parameter) - { - return Message(null, Ids.FileOrDirectoryPathRequired, "The parameter '{0}' must be followed by a file or directory path. To specify a directory path the string must end with a backslash, for example: \"C:\\Path\\\".", parameter); - } - - public static Message FilePathRequired(string parameter) - { - return Message(null, Ids.FilePathRequired, "The parameter '{0}' must be followed by a file path.", parameter); - } - - public static Message FileTooLarge(SourceLineNumber sourceLineNumbers, string fileName) - { - return Message(sourceLineNumbers, Ids.FileTooLarge, "'{0}' is too large, file size must be less than 2147483648.", fileName); - } - - public static Message FileWriteError(string path, string error) - { - return Message(null, Ids.FileWriteError, "Error writing to the path: '{0}'. Error message: '{1}'", path, error); - } - - public static Message FinishCabFailed() - { - return Message(null, Ids.FinishCabFailed, "An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it or a compressed size greater than 2GB. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element."); - } - - public static Message FullTempDirectory(string prefix, string directory) - { - return Message(null, Ids.FullTempDirectory, "Unable to create temporary file. A common cause is that too many files that have names beginning with '{0}' are present. Delete any unneeded files in the '{1}' directory and try again.", prefix, directory); - } - - public static Message GACAssemblyIdentityWarning(SourceLineNumber sourceLineNumbers, string fileName, string assemblyName) - { - return Message(sourceLineNumbers, Ids.GACAssemblyIdentityWarning, "The destination name of file '{0}' does not match its assembly name '{1}' in your authoring. This will cause an installation failure for this assembly, because it will be installed to the Global Assembly Cache. To fix this error, update File/@Name of file '{0}' to be the actual name of the assembly.", fileName, assemblyName); - } - - public static Message GacAssemblyNoStrongName(SourceLineNumber sourceLineNumbers, string assemblyName, string componentName) - { - return Message(sourceLineNumbers, Ids.GacAssemblyNoStrongName, "Assembly {0} in component {1} has no strong name and has been marked to be placed in the GAC. All assemblies installed to the GAC must have a valid strong name.", assemblyName, componentName); - } - - public static Message GenericReadNotAllowed(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.GenericReadNotAllowed, "Permission elements cannot have GenericRead as the only permission specified. Include at least one other permission."); - } - - public static Message GuidContainsLowercaseLetters(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.GuidContainsLowercaseLetters, "The {0}/@{1} attribute's value, '{2}', is a mixed-case guid. All letters in a guid value should be uppercase.", elementName, attributeName, value); - } - - public static Message HarvestSourceNotSpecified() - { - return Message(null, Ids.HarvestSourceNotSpecified, "A harvest source must be specified after the harvest type and can be followed by harvester arguments."); - } - - public static Message HarvestTypeNotFound() - { - return Message(null, Ids.HarvestTypeNotFound, "The harvest type was not found in the list of loaded Heat extensions."); - } - - public static Message HarvestTypeNotFound(string harvestType) - { - return Message(null, Ids.HarvestTypeNotFound, "The harvest type '{0}' was specified. Harvest types cannot start with a '-'. Remove the '-' to specify a valid harvest type.", harvestType); - } - - public static Message IdentifierNotFound(string type, string identifier) - { - return Message(null, Ids.IdentifierNotFound, "An expected identifier ('{1}', of type '{0}') was not found.", type, identifier); - } - - public static Message IdentifierTooLongError(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int maxLength) - { - return Message(sourceLineNumbers, Ids.IdentifierTooLongError, "The {0}/@{1} attribute's value, '{2}', is too long. {0}/@{1} attribute's must be {3} characters long or less.", elementName, attributeName, value, maxLength); - } - - public static Message IllegalAttributeExceptOnElement(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string expectedElementName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeExceptOnElement, "The {1} attribute can only be specified on the {2} element.", elementName, attributeName, expectedElementName); - } - - public static Message IllegalAttributeInMergeModule(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeInMergeModule, "The {0}/@{1} attribute cannot be specified in a merge module.", elementName, attributeName); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}'.", elementName, attributeName, value, legalValue1); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', or '{4}'.", elementName, attributeName, value, legalValue1, legalValue2); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', or '{5}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', or '{6}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', or '{7}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', or '{8}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', or '{9}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7, string legalValue8) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', or '{10}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7, legalValue8); - } - - public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7, string legalValue8, string legalValue9, string legalValue10, string legalValue11, string legalValue12, string legalValue13, string legalValue14, string legalValue15, string legalValue16, string legalValue17, string legalValue18, string legalValue19, string legalValue20, string legalValue21, string legalValue22, string legalValue23, string legalValue24, string legalValue25, string legalValue26) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', or '{28}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7, legalValue8, legalValue9, legalValue10, legalValue11, legalValue12, legalValue13, legalValue14, legalValue15, legalValue16, legalValue17, legalValue18, legalValue19, legalValue20, legalValue21, legalValue22, legalValue23, legalValue24, legalValue25, legalValue26); - } - - public static Message IllegalAttributeValueWhenNested(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attrivuteValue, string parentElementName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValueWhenNested, "The {0}/@{1} attribute value, '{2}', cannot be specified when the {0} element is nested underneath a {3} element.", elementName, attributeName, attrivuteValue, parentElementName); - } - - public static Message IllegalAttributeValueWithIllegalList(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string illegalValueList) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithIllegalList, "The {0}/@{1} attribute's value, '{2}', is one of the illegal options: {3}.", elementName, attributeName, value, illegalValueList); - } - - public static Message IllegalAttributeValueWithLegalList(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValueList) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithLegalList, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: {3}.", elementName, attributeName, value, legalValueList); - } - - public static Message IllegalAttributeValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present.", elementName, attributeName, attributeValue, otherAttributeName); - } - - public static Message IllegalAttributeValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName, string otherAttributeValue) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present with value '{4}'.", elementName, attributeName, attributeValue, otherAttributeName, otherAttributeValue); - } - - public static Message IllegalAttributeValueWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName, string otherAttributeValue) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithoutOtherAttribute, "The {0}/@{1} attribute's value, '{2}', can only be specified with attribute {3} present with value '{4}'.", elementName, attributeName, attributeValue, otherAttributeName, otherAttributeValue); - } - - public static Message IllegalAttributeValueWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithoutOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified without attribute {3} present.", elementName, attributeName, attributeValue, otherAttributeName); - } - - public static Message IllegalAttributeWhenAdvertised(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWhenAdvertised, "The {0}/@{1} attribute cannot be specified because the element is advertised.", elementName, attributeName); - } - - public static Message IllegalAttributeWhenNested(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElement) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWhenNested, "The {0}/@{1} attribute cannot be specified when the {0} element is nested underneath a {2} element. If this {0} is a member of a ComponentGroup where ComponentGroup/@{1} is set, then the {0}/@{1} attribute should be removed.", elementName, attributeName, parentElement); - } - - public static Message IllegalAttributeWithInnerText(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithInnerText, "The {0}/@{1} attribute cannot be specified when the element has body text as well. Specify either the attribute or the body, but not both.", elementName, attributeName); - } - - public static Message IllegalAttributeWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttribute, "The {0}/@{1} attribute cannot be specified when attribute {2} is present.", elementName, attributeName, otherAttributeName); - } - - public static Message IllegalAttributeWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttribute, "The {0}/@{1} attribute cannot be specified when attribute {2} is present with value '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue); - } - - public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2} or {3} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); - } - - public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, or {4} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3); - } - - public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3, string otherAttributeName4) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, {4}, or {5} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3, otherAttributeName4); - } - - public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with the following attribute {2} present.", elementName, attributeName, otherAttributeName); - } - - public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); - } - - public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeValue, Boolean uniquifier) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present with value '{4}'.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeValue, uniquifier); - } - - public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, or {4} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3); - } - - public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3, string otherAttributeName4) - { - return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, {4}, or {5} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3, otherAttributeName4); - } - - public static Message IllegalBinderClassName() - { - return Message(null, Ids.IllegalBinderClassName, "Illegal binder class name specified for -binder command line option."); - } - - public static Message IllegalCabbingThreadCount(string numThreads) - { - return Message(null, Ids.IllegalCabbingThreadCount, "Illegal number of threads to create cabinets: '{0}' for -ct command line option. Specify the number of threads to use like -ct 2.", numThreads); - } - - public static Message IllegalCharactersInPath(string pathName) - { - return Message(null, Ids.IllegalCharactersInPath, "Illegal characters in path '{0}'. Ensure you provided a valid path to the file.", pathName); - } - - public static Message IllegalCodepage(int codepage) - { - return Message(null, Ids.IllegalCodepage, "The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); - } - - public static Message IllegalCodepage(SourceLineNumber sourceLineNumbers, int codepage) - { - return Message(sourceLineNumbers, Ids.IllegalCodepage, "The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); - } - - public static Message IllegalCodepageAttribute(SourceLineNumber sourceLineNumbers, string codepage, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.IllegalCodepageAttribute, "The code page '{0}' is not a valid Windows code page. Please check the {1}/@{2} attribute value in your source file.", codepage, elementName, attributeName); - } - - public static Message IllegalColumnName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalColumnName, "The {0}/@{1} attribute's value, '{2}', is not a legal column name. It will collide with the sentinel values used in the _TransformView table.", elementName, attributeName, value); - } - - public static Message IllegalCommandlineArgumentCombination(string arg1, string arg2) - { - return Message(null, Ids.IllegalCommandlineArgumentCombination, "'-{0}' cannot be specfied in combination with '-{1}'.", arg1, arg2); - } - - public static Message IllegalComponentWithAutoGeneratedGuid(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.IllegalComponentWithAutoGeneratedGuid, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components using a Directory as a KeyPath or containing ODBCDataSource child elements cannot use an automatically generated guid. Make sure your component doesn't have a Directory as the KeyPath and move any ODBCDataSource child elements to components with explicit component guids."); - } - - public static Message IllegalComponentWithAutoGeneratedGuid(SourceLineNumber sourceLineNumbers, Boolean registryKeyPath) - { - return Message(sourceLineNumbers, Ids.IllegalComponentWithAutoGeneratedGuid, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with registry keypaths and files cannot use an automatically generated guid. Create multiple components, each with one file and/or one registry value keypath, to use automatically generated guids.", registryKeyPath); - } - - public static Message IllegalCompressionLevel(SourceLineNumber sourceLineNumbers, string compressionLevel) - { - return Message(sourceLineNumbers, Ids.IllegalCompressionLevel, "The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'.", compressionLevel); - } - - public static Message IllegalDefineStatement(SourceLineNumber sourceLineNumbers, string defineStatement) - { - return Message(sourceLineNumbers, Ids.IllegalDefineStatement, "The define statement '' is not well-formed. Define statements should be in the form .", defineStatement); - } - - public static Message IllegalEmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.IllegalEmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. If a value is not required, simply remove the entire attribute.", elementName, attributeName); - } - - public static Message IllegalEmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string defaultValue) - { - return Message(sourceLineNumbers, Ids.IllegalEmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. To use the default value \"{2}\", simply remove the entire attribute.", elementName, attributeName, defaultValue); - } - - public static Message IllegalEnvironmentVariable(string environmentVariable, string value) - { - return Message(null, Ids.IllegalEnvironmentVariable, "The {0} environment variable is set to an invalid value of '{1}'.", environmentVariable, value); - } - - public static Message IllegalFamilyName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalFamilyName, "The {0}/@{1} attribute's value, '{2}', contains illegal characters for a family name. Legal values include letters, numbers, and underscores.", elementName, attributeName, value); - } - - public static Message IllegalFileCompressionAttributes(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.IllegalFileCompressionAttributes, "Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column."); - } - - public static Message IllegalForeach(SourceLineNumber sourceLineNumbers, string foreachStatement) - { - return Message(sourceLineNumbers, Ids.IllegalForeach, "The foreach statement '{0}' is illegal. The proper format for foreach is .", foreachStatement); - } - - public static Message IllegalGeneratedGuidComponentUnversionedKeypath(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.IllegalGeneratedGuidComponentUnversionedKeypath, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component's keypath is not versioned. Create multiple components to use automatically generated guids."); - } - - public static Message IllegalGeneratedGuidComponentVersionedNonkeypath(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.IllegalGeneratedGuidComponentVersionedNonkeypath, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component has a non-keypath file that is versioned. Create multiple components to use automatically generated guids."); - } - - public static Message IllegalGuidValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalGuidValue, "The {0}/@{1} attribute's value, '{2}', is not a legal guid value.", elementName, attributeName, value); - } - - public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0} element's value, '{1}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, value); - } - - public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int disambiguator) - { - return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, disambiguator); - } - - public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value, '{2}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, value); - } - - public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string identifier) - { - return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value '{2}' contains an illegal identifier '{3}'. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, value, identifier); - } - - public static Message IllegalIdentifierLooksLikeFormatted(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalIdentifierLooksLikeFormatted, "The {0}/@{1} attribute's value, '{2}', is not a legal identifier. The {0}/@{1} attribute does not support formatted string values, such as property names enclosed in brackets ([LIKETHIS]). The value must be the identifier of another element, such as the Directory/@Id attribute value.", elementName, attributeName, value); - } - - public static Message IllegalInlineLocVariable(SourceLineNumber sourceLineNumbers, string variableName, string variableValue) - { - return Message(sourceLineNumbers, Ids.IllegalInlineLocVariable, "The localization variable '{0}' specifies an illegal inline default value of '{1}'. Localization variables cannot specify default values inline, instead the value should be specified in a WiX localization (.wxl) file.", variableName, variableValue); - } - - public static Message IllegalIntegerInExpression(SourceLineNumber sourceLineNumbers, string expression) - { - return Message(sourceLineNumbers, Ids.IllegalIntegerInExpression, "An illegal number was found in the expression '{0}'.", expression); - } - - public static Message IllegalIntegerValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalIntegerValue, "The {0}/@{1} attribute's value, '{2}', is not a legal integer value. Legal integer values are from -2,147,483,648 to 2,147,483,647.", elementName, attributeName, value); - } - - public static Message IllegalLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalLongFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid filename because it contains illegal characters. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \\ ? | > < : / * \".", elementName, attributeName, value); - } - - public static Message IllegalLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string filename) - { - return Message(sourceLineNumbers, Ids.IllegalLongFilename, "The {0}/@{1} attribute's value '{2}' contains a invalid filename '{3}'. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \\ ? | > < : / * \".", elementName, attributeName, value, filename); - } - - public static Message IllegalLongValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalLongValue, "The {0}/@{1} attribute's value, '{2}', is not a legal long value. Legal long values are from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.", elementName, attributeName, value); - } - - public static Message IllegalModuleExclusionLanguageAttributes(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.IllegalModuleExclusionLanguageAttributes, "Cannot set both ExcludeLanguage and ExcludeExceptLanguage attributes on a ModuleExclusion element."); - } - - public static Message IllegalParentAttributeWhenNested(SourceLineNumber sourceLineNumbers, string parentElementName, string parentAttributeName, string childElement) - { - return Message(sourceLineNumbers, Ids.IllegalParentAttributeWhenNested, "The {0}/@{1} attribute cannot be specified when a {2} element is nested underneath the {0} element.", parentElementName, parentAttributeName, childElement); - } - - public static Message IllegalPathForGeneratedComponentGuid(SourceLineNumber sourceLineNumbers, string componentName, string keyFilePath) - { - return Message(sourceLineNumbers, Ids.IllegalPathForGeneratedComponentGuid, "The component '{0}' has a key file with path '{1}'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name \"Common Files\" under ProgramFilesFolder.)", componentName, keyFilePath); - } - - public static Message IllegalPropertyCustomActionAttributes(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.IllegalPropertyCustomActionAttributes, "The CustomAction sets a property but its Execute attribute is not 'immediate' (the default). Property-setting custom actions cannot be deferred.\""); - } - - public static Message IllegalRelativeLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalRelativeLongFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid relative long name because it contains illegal characters. Legal relative long names contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: ? | > < : / * \".", elementName, attributeName, value); - } - - public static Message IllegalRootDirectory(SourceLineNumber sourceLineNumbers, string directoryId) - { - return Message(sourceLineNumbers, Ids.IllegalRootDirectory, "The Directory with Id '{0}' is not a valid root directory. There may only be a single root directory per product or module and its Id attribute value must be 'TARGETDIR' and its Name attribute value must be 'SourceDir'.", directoryId); - } - - public static Message IllegalSearchIdForParentDepth(SourceLineNumber sourceLineNumbers, string id, string parentId) - { - return Message(sourceLineNumbers, Ids.IllegalSearchIdForParentDepth, "When the parent DirectorySearch/@Depth attribute is greater than 1 for the DirectorySearch '{1}', the FileSearch/@Id attribute must be absent for FileSearch '{0}' unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. Remove the FileSearch/@Id attribute for '{0}' to resolve this issue.", id, parentId); - } - - public static Message IllegalShortFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalShortFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid 8.3-compliant name. Legal names contain no more than 8 non-period characters followed by an optional period and extension of no more than 3 non-period characters. Any character except for the follow may be used: \\ ? | > < : / * \" + , ; = [ ] (space).", elementName, attributeName, value); - } - - public static Message IllegalSuppressWarningId(string suppressedId) - { - return Message(null, Ids.IllegalSuppressWarningId, "Illegal value '{0}' for the -sw command line option. Specify a particular warning number, like '-sw6' to suppress the warning with ID 6, or '-sw' alone to suppress all warnings.", suppressedId); - } - - public static Message IllegalTargetDirDefaultDir(SourceLineNumber sourceLineNumbers, string defaultDir) - { - return Message(sourceLineNumbers, Ids.IllegalTargetDirDefaultDir, "The 'TARGETDIR' directory has an illegal DefaultDir value of '{0}'. The DefaultDir value is created from the *Name attributes of the Directory element. The TARGETDIR directory is a special directory which must have its Name attribute set to 'SourceDir'.", defaultDir); - } - - public static Message IllegalTerminalServerCustomActionAttributes(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.IllegalTerminalServerCustomActionAttributes, "The CustomAction/@TerminalServerAware attribute's value is 'yes' but the Execute attribute is not 'deferred,' 'rollback,' or 'commit.' Terminal-Server-aware custom actions must be deferred, rollback, or commit custom actions. For more information, see http://msdn.microsoft.com/library/aa372071.aspx.\""); - } - - public static Message IllegalValidationArguments() - { - return Message(null, Ids.IllegalValidationArguments, "You may only specify a single default type using -t or specify custom validation using -serr and -val."); - } - - public static Message IllegalVersionValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalVersionValue, "The {0}/@{1} attribute's value, '{2}', is not a valid version. Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534.", elementName, attributeName, value); - } - - public static Message IllegalWarningIdAsError(string warningId) - { - return Message(null, Ids.IllegalWarningIdAsError, "Illegal value '{0}' for the -wx command line option. Specify a particular warning number, like '-wx6' to display the warning with ID 6 as an error, or '-wx' alone to suppress all warnings.", warningId); - } - - public static Message IllegalWixVariablePrefix(SourceLineNumber sourceLineNumbers, string variableId) - { - return Message(sourceLineNumbers, Ids.IllegalWixVariablePrefix, "The WiX variable $(wix.{0}) uses an illegal prefix '$'. Please use the '!' prefix instead.", variableId); - } - - public static Message IllegalYesNoAlwaysValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalYesNoAlwaysValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/always value. The only legal values are 'always', 'no' or 'yes'.", elementName, attributeName, value); - } - - public static Message IllegalYesNoDefaultValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalYesNoDefaultValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/default value. The only legal values are 'default', 'no' or 'yes'.", elementName, attributeName, value); - } - - public static Message IllegalYesNoValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IllegalYesNoValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no value. The only legal values are 'no' and 'yes'.", elementName, attributeName, value); - } - - public static Message ImplicitComponentKeyPath(SourceLineNumber sourceLineNumbers, string componentId) - { - return Message(sourceLineNumbers, Ids.ImplicitComponentKeyPath, "The component '{0}' does not have an explicit key path specified. If the ordering of the elements under the Component element changes, the key path will also change. To prevent accidental changes, the key path should be set to 'yes' in one of the following locations: Component/@KeyPath, File/@KeyPath, ODBCDataSource/@KeyPath, or Registry/@KeyPath.", componentId); - } - - public static Message InlineDirectorySyntaxRequiresPath(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string identifier) - { - return Message(sourceLineNumbers, Ids.InlineDirectorySyntaxRequiresPath, "The {0}/@{1} attribute's value '{2}' only specifies a directory reference. The inline directory syntax requires that at least one directory be specified in addition to the value. For example, use '{3}:\\foo\\' to add a 'foo' directory.", elementName, attributeName, value, identifier); - } - - public static Message InsecureBundleFilename(string filename) - { - return Message(null, Ids.InsecureBundleFilename, "The file name '{0}' creates an insecure bundle. Windows will load unnecessary compatibility shims into a bundle with that file name. These compatibility shims can be DLL hijacked allowing attackers to compromise your customers' computer. Choose a different bundle file name.", filename); - } - - public static Message InsertInvalidSequenceActionOrder(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionNameBefore, string actionNameAfter, string actionNameNew) - { - return Message(sourceLineNumbers, Ids.InsertInvalidSequenceActionOrder, "Invalid order of actions {1} and {2} in sequence table {0}. Action {3} must occur after {1} and before {2}, but {2} is currently sequenced after {1}. Please fix the ordering or explicitly supply a location for the action {3}.", sequenceTableName, actionNameBefore, actionNameAfter, actionNameNew); - } - - public static Message InsertSequenceNoSpace(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionNameBefore, string actionNameAfter, string actionNameNew) - { - return Message(sourceLineNumbers, Ids.InsertSequenceNoSpace, "Not enough space exists to sequence action {3} in table {0}. It must be sequenced after {1} and before {2}, but those two actions are currently sequenced next to each other. Please move one of those actions to allow {3} to be inserted between them.", sequenceTableName, actionNameBefore, actionNameAfter, actionNameNew); - } - - public static Message InsufficientVersion(SourceLineNumber sourceLineNumbers, Version currentVersion, Version requiredVersion) - { - return Message(sourceLineNumbers, Ids.InsufficientVersion, "The current version of the toolset is {0}, but version {1} is required.", currentVersion, requiredVersion); - } - - public static Message InsufficientVersion(SourceLineNumber sourceLineNumbers, Version currentVersion, Version requiredVersion, string extension) - { - return Message(sourceLineNumbers, Ids.InsufficientVersion, "The current version of the extension '{2}' is {0}, but version {1} is required.", currentVersion, requiredVersion, extension); - } - - public static Message IntegralValueOutOfRange(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int value, int minimum, int maximum) - { - return Message(sourceLineNumbers, Ids.IntegralValueOutOfRange, "The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}.", elementName, attributeName, value, minimum, maximum); - } - - public static Message IntegralValueOutOfRange(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, long value, long minimum, long maximum) - { - return Message(sourceLineNumbers, Ids.IntegralValueOutOfRange, "The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}.", elementName, attributeName, value, minimum, maximum); - } - - public static Message IntegralValueSentinelCollision(SourceLineNumber sourceLineNumbers, int value) - { - return Message(sourceLineNumbers, Ids.IntegralValueSentinelCollision, "The integer value {0} collides with a sentinel value in the compiler code.", value); - } - - public static Message IntegralValueSentinelCollision(SourceLineNumber sourceLineNumbers, long value) - { - return Message(sourceLineNumbers, Ids.IntegralValueSentinelCollision, "The long integral value {0} collides with a sentinel value in the compiler code.", value); - } - - public static Message InvalidAddedFileRowWithoutSequence(SourceLineNumber sourceLineNumbers, string fileRowId) - { - return Message(sourceLineNumbers, Ids.InvalidAddedFileRowWithoutSequence, "A row has been added to the File table with id '{1}' that does not have a sequence number assigned to it. Create your transform from a pair of msi's instead of xml outputs to get sequences assigned to your File table's rows.", fileRowId); - } - - public static Message InvalidAssemblyFile(SourceLineNumber sourceLineNumbers, string assemblyFile, string moreInformation) - { - return Message(sourceLineNumbers, Ids.InvalidAssemblyFile, "The assembly file '{0}' appears to be invalid. Please ensure this is a valid assembly file and that the user has the appropriate access rights to this file. More information: {1}", assemblyFile, moreInformation); - } - - public static Message InvalidBundle(string bundleExecutable) - { - return Message(null, Ids.InvalidBundle, "Unable to read bundle executable '{0}'. This is not a valid WiX bundle.", bundleExecutable); - } - - public static Message InvalidCabinetTemplate(SourceLineNumber sourceLineNumbers, string cabinetTemplate) - { - return Message(sourceLineNumbers, Ids.InvalidCabinetTemplate, "CabinetTemplate attribute's value '{0}' must contain '{{0}}' and should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the follow may be used: \\ ? | > < : / * \" + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms).", cabinetTemplate); - } - - public static Message InvalidCommandLineFileName(string fileName, string error) - { - return Message(null, Ids.InvalidCommandLineFileName, "Invalid file name specified on the command line: '{0}'. Error message: '{1}'", fileName, error); - } - - public static Message InvalidDateTimeFormat(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.InvalidDateTimeFormat, "The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss.", elementName, attributeName, value); - } - - public static Message InvalidDocumentElement(SourceLineNumber sourceLineNumbers, string elementName, string fileType, string expectedElementName) - { - return Message(sourceLineNumbers, Ids.InvalidDocumentElement, "The document element name '{0}' is invalid. A WiX {1} file must use '{2}' as the document element name.", elementName, fileType, expectedElementName); - } - - public static Message InvalidEmbeddedUIFileName(SourceLineNumber sourceLineNumbers, string codepage) - { - return Message(sourceLineNumbers, Ids.InvalidEmbeddedUIFileName, "The EmbeddedUI/@Name attribute value, '{0}', does not contain an extension. Windows Installer will not load an embedded UI DLL without an extension. Include an extension or just omit the Name attribute so it defaults to the file name portion of the Source attribute value.", codepage); - } - - public static Message CouldNotFindExtensionInPaths(string extensionPath, IEnumerable checkedPaths) - { - return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be found. Checked paths: {1}", extensionPath, String.Join(", ", checkedPaths)); - } - - public static Message InvalidExtension(string extension) - { - return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be loaded.", extension); - } - - public static Message InvalidExtension(string extension, string invalidReason) - { - return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be loaded because of the following reason: {1}", extension, invalidReason); - } - - public static Message InvalidExtension(string extension, string extensionType, string expectedType) - { - return Message(null, Ids.InvalidExtension, "The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}'.", extension, extensionType, expectedType); - } - - public static Message InvalidExtension(string extension, string extensionType, string expectedType1, string expectedType2) - { - return Message(null, Ids.InvalidExtension, "The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}' or '{3}'.", extension, extensionType, expectedType1, expectedType2); - } - - public static Message InvalidExtensionType(string extension, string attributeType) - { - return Message(null, Ids.InvalidExtensionType, "Either '{1}' was not defined in the assembly or the type defined in extension '{0}' could not be loaded.", extension, attributeType); - } - - public static Message InvalidExtensionType(string extension, string className, string expectedType) - { - return Message(null, Ids.InvalidExtensionType, "The extension type '{1}' in extension '{0}' does not inherit from the expected class '{2}'.", extension, className, expectedType); - } - - public static Message InvalidExtensionType(string extension, string className, string exceptionType, string exceptionMessage) - { - return Message(null, Ids.InvalidExtensionType, "The type '{1}' in extension '{0}' could not be loaded. Exception type '{2}' returned the following message: {3}", extension, className, exceptionType, exceptionMessage); - } - - public static Message InvalidFileName(SourceLineNumber sourceLineNumbers, string fileName) - { - return Message(sourceLineNumbers, Ids.InvalidFileName, "Invalid file name '{0}'.", fileName); - } - - public static Message InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile) - { - return Message(sourceLineNumbers, Ids.InvalidIdt, "There was an error importing the file '{0}'.", idtFile); - } - - public static Message InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile, string tableName) - { - return Message(sourceLineNumbers, Ids.InvalidIdt, "There was an error importing table '{1}' from file '{0}'.", idtFile, tableName); - } - - public static Message InvalidKeyColumn(string tableName, string columnName, string foreignTableName, int foreignColumnNumber) - { - return Message(null, Ids.InvalidKeyColumn, "The definition for the '{0}' table's '{1}' column is an invalid foreign key relationship to the {2} table's column number {3}. It is not a valid foreign key table column number because it is too small (less than 1) or greater than the count of columns in the foreign table's definition.", tableName, columnName, foreignTableName, foreignColumnNumber); - } - - public static Message InvalidKeypathChange(SourceLineNumber sourceLineNumbers, string component, string transformPath) - { - return Message(sourceLineNumbers, Ids.InvalidKeypathChange, "Component '{0}' has a changed keypath in the transform '{1}'. Patches cannot change the keypath of a component.", component, transformPath); - } - - public static Message InvalidManifestContent(SourceLineNumber sourceLineNumbers, string fileName) - { - return Message(sourceLineNumbers, Ids.InvalidManifestContent, "The manifest '{0}' does not have the required assembly/assemblyIdentity element.", fileName); - } - - public static Message InvalidMergeLanguage(SourceLineNumber sourceLineNumbers, string mergeId, string mergeLanguage) - { - return Message(sourceLineNumbers, Ids.InvalidMergeLanguage, "The Merge element '{0}' specified an invalid language '{1}'. Verify that localization tokens are being properly resolved to a numeric LCID.", mergeId, mergeLanguage); - } - - public static Message InvalidModuleOrBundleVersion(SourceLineNumber sourceLineNumbers, string moduleOrBundle, string version) - { - return Message(sourceLineNumbers, Ids.InvalidModuleOrBundleVersion, "Invalid {0}/@Version '{1}'. {0} version has a max value of \"65535.65535.65535.65535\" and must be all numeric.", moduleOrBundle, version); - } - - public static Message InvalidPlatformValue(SourceLineNumber sourceLineNumbers, string value) - { - return Message(sourceLineNumbers, Ids.InvalidPlatformValue, "The Platform attribute has an invalid value {0}. Possible values are x86, x64, or arm64.", value); - } - - public static Message InvalidPreprocessorFunction(SourceLineNumber sourceLineNumbers, string variable) - { - return Message(sourceLineNumbers, Ids.InvalidPreprocessorFunction, "Ill-formed preprocessor function '${0}'. Functions must have a prefix (like 'fun.'), a name at least 1 character long, and matching opening and closing parentheses.", variable); - } - - public static Message InvalidPreprocessorFunctionAutoVersion(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.InvalidPreprocessorFunctionAutoVersion, "Invalid AutoVersion template specified."); - } - - public static Message InvalidPreprocessorPragma(SourceLineNumber sourceLineNumbers, string variable) - { - return Message(sourceLineNumbers, Ids.InvalidPreprocessorPragma, "Malformed preprocessor pragma '{0}'. Pragmas must have a prefix, a name of at least 1 character long, and be followed by optional arguments.", variable); - } - - public static Message InvalidPreprocessorVariable(SourceLineNumber sourceLineNumbers, string variable) - { - return Message(sourceLineNumbers, Ids.InvalidPreprocessorVariable, "Ill-formed preprocessor variable '$({0})'. Variables must have a prefix (like 'var.', 'env.', or 'sys.') and a name at least 1 character long. If the literal string '$({0})' is desired, use '$$({0})'.", variable); - } - - public static Message InvalidProductVersion(SourceLineNumber sourceLineNumbers, string version) - { - return Message(sourceLineNumbers, Ids.InvalidProductVersion, "Invalid product version '{0}'. Product version must have a major version less than 256, a minor version less than 256, and a build version less than 65536.", version); - } - - public static Message InvalidProductVersion(SourceLineNumber sourceLineNumbers, string version, string packagePath) - { - return Message(sourceLineNumbers, Ids.InvalidProductVersion, "Invalid product version '{0}' in package '{1}'. When included in a bundle, all product version fields in an MSI package must be less than 65536.", version, packagePath); - } - - public static Message InvalidRemoveComponent(SourceLineNumber sourceLineNumbers, string component, string feature, string transformPath) - { - return Message(sourceLineNumbers, Ids.InvalidRemoveComponent, "Removing component '{0}' from feature '{1}' is not supported. Either the component was removed or the guid changed in the transform '{2}'. Add the component back, undo the change to the component guid, or remove the entire feature.", component, feature, transformPath); - } - - public static Message InvalidSequenceTable(string sequenceTableName) - { - return Message(null, Ids.InvalidSequenceTable, "Found an invalid sequence table '{0}'.", sequenceTableName); - } - - public static Message InvalidStringForCodepage(SourceLineNumber sourceLineNumbers, string codepage) - { - return Message(sourceLineNumbers, Ids.InvalidStringForCodepage, "A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); - } - - public static Message InvalidStubExe(string filename) - { - return Message(null, Ids.InvalidStubExe, "Stub executable '{0}' is not a valid Win32 executable.", filename); - } - - public static Message InvalidSubExpression(SourceLineNumber sourceLineNumbers, string subExpression, string expression) - { - return Message(sourceLineNumbers, Ids.InvalidSubExpression, "Found invalid subexpression '{0}' in expression '{1}'.", subExpression, expression); - } - - public static Message InvalidSummaryInfoCodePage(SourceLineNumber sourceLineNumbers, int codePage) - { - return Message(sourceLineNumbers, Ids.InvalidSummaryInfoCodePage, "The code page '{0}' is invalid for summary information. You must specify an ANSI code page.", codePage); - } - - public static Message InvalidValidatorMessageType(string type) - { - return Message(null, Ids.InvalidValidatorMessageType, "Unknown validation message type '{0}'.", type); - } - - public static Message InvalidVariableDefinition(string variableDefinition) - { - return Message(null, Ids.InvalidVariableDefinition, "The variable definition '{0}' is not valid. Variable definitions should be in the form -dname=value where the value is optional.", variableDefinition); - } - - public static Message InvalidWixTransform(string fileName) - { - return Message(null, Ids.InvalidWixTransform, "The file '{0}' is not a valid WiX Transform.", fileName); - } - - public static Message InvalidWixXmlNamespace(SourceLineNumber sourceLineNumbers, string wixElementName, string wixNamespace) - { - return Message(sourceLineNumbers, Ids.InvalidWixXmlNamespace, "The {0} element has no namespace. Please make the {0} element look like the following: <{0} xmlns=\"{1}\">.", wixElementName, wixNamespace); - } - - public static Message InvalidWixXmlNamespace(SourceLineNumber sourceLineNumbers, string wixElementName, string elementNamespace, string wixNamespace) - { - return Message(sourceLineNumbers, Ids.InvalidWixXmlNamespace, "The {0} element has an incorrect namespace of '{1}'. Please make the {0} element look like the following: <{0} xmlns=\"{2}\">.", wixElementName, elementNamespace, wixNamespace); - } - - public static Message InvalidXml(SourceLineNumber sourceLineNumbers, string fileType, string detail) - { - return Message(sourceLineNumbers, Ids.InvalidXml, "Not a valid {0} file; detail: {1}", fileType, detail); - } - - public static Message LocalizationVariableUnknown(SourceLineNumber sourceLineNumbers, string variableId) - { - return Message(sourceLineNumbers, Ids.LocalizationVariableUnknown, "The localization variable !(loc.{0}) is unknown. Please ensure the variable is defined.", variableId); - } - - public static Message MaximumCabinetSizeForLargeFileSplittingTooLarge(SourceLineNumber sourceLineNumbers, int maximumCabinetSizeForLargeFileSplitting, int maxValueOfMaxCabSizeForLargeFileSplitting) - { - return Message(sourceLineNumbers, Ids.MaximumCabinetSizeForLargeFileSplittingTooLarge, "'{0}' is too large. Reduce the size of maximum cabinet size for large file splitting. The maximum permitted value is '{1}' MB.", maximumCabinetSizeForLargeFileSplitting, maxValueOfMaxCabSizeForLargeFileSplitting); - } - - public static Message MaximumUncompressedMediaSizeTooLarge(SourceLineNumber sourceLineNumbers, int maximumUncompressedMediaSize) - { - return Message(sourceLineNumbers, Ids.MaximumUncompressedMediaSizeTooLarge, "'{0}' is too large. Reduce the size of maximum uncompressed media size.", maximumUncompressedMediaSize); - } - - public static Message MediaEmbeddedCabinetNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length) - { - return Message(sourceLineNumbers, Ids.MediaEmbeddedCabinetNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. The name is too long for an embedded cabinet. It cannot be more than than 62 characters long.", elementName, attributeName, value, length); - } - - public static Message MediaTableCollision(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.MediaTableCollision, "Only one of Media and MediaTemplate tables should be authored."); - } - - public static Message MergeExcludedModule(SourceLineNumber sourceLineNumbers, string mergeId, string otherMergeId) - { - return Message(sourceLineNumbers, Ids.MergeExcludedModule, "The module '{0}' cannot be merged because it excludes or is excluded by the merge module with signature '{1}'.", mergeId, otherMergeId); - } - - public static Message MergeFeatureRequired(SourceLineNumber sourceLineNumbers, string tableName, string primaryKeys, string mergeModuleFile, string mergeId) - { - return Message(sourceLineNumbers, Ids.MergeFeatureRequired, "The {0} table contains a row with primary key(s) '{1}' which requires a feature to properly merge from the merge module '{2}'. Nest a MergeRef element with an Id attribute set to the value '{3}' under a Feature element to fix this error.", tableName, primaryKeys, mergeModuleFile, mergeId); - } - - public static Message MergeLanguageFailed(SourceLineNumber sourceLineNumbers, Int16 language, string mergeModuleFile) - { - return Message(sourceLineNumbers, Ids.MergeLanguageFailed, "The language '{0}' is supported but uses an invalid language transform in the merge module '{1}'.", language, mergeModuleFile); - } - - public static Message MergeLanguageUnsupported(SourceLineNumber sourceLineNumbers, Int16 language, string mergeModuleFile) - { - return Message(sourceLineNumbers, Ids.MergeLanguageUnsupported, "Could not locate language '{0}' (or a transform for this language) in the merge module '{1}'. This is likely due to an incorrectly authored Merge/@Language attribute.", language, mergeModuleFile); - } - - public static Message MergeModuleExpectedFeature(SourceLineNumber sourceLineNumbers, string mergeId) - { - return Message(sourceLineNumbers, Ids.MergeModuleExpectedFeature, "The merge module '{0}' is not assigned to a feature. All merge modules must be assigned to at least one feature.", mergeId); - } - - public static Message MergePlatformMismatch(SourceLineNumber sourceLineNumbers, string mergeModuleFile) - { - return Message(sourceLineNumbers, Ids.MergePlatformMismatch, "'{0}' is a 64-bit merge module but the product consuming it is 32-bit. 32-bit products can consume only 32-bit merge modules.", mergeModuleFile); - } - - public static Message MissingBundleInformation(string data) - { - return Message(null, Ids.MissingBundleInformation, "The Bundle is missing '{0}' data, and cannot continue.", data); - } - - public static Message MissingBundleSearch(SourceLineNumber sourceLineNumbers, string searchId) - { - return Message(sourceLineNumbers, Ids.MissingBundleSearch, "Bundle Search with id '{0}' has no corresponding implementation symbol.", searchId); - } - - public static Message MissingDependencyVersion(string packageId) - { - return Message(null, Ids.MissingDependencyVersion, "The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package.", packageId); - } - - public static Message MissingEntrySection() - { - return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Supported entry section types are: Product, Bundle, Patch, PatchCreation, Module."); - } - - public static Message MissingEntrySection(string sectionType) - { - return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Expected section of type '{0}'.", sectionType); - } - - public static Message MissingManifestForWin32Assembly(SourceLineNumber sourceLineNumbers, string file, string manifest) - { - return Message(sourceLineNumbers, Ids.MissingManifestForWin32Assembly, "File '{0}' is marked as a Win32 assembly but it refers to assembly manifest '{1}' that is not present in this product.", file, manifest); - } - - public static Message MissingMedia(SourceLineNumber sourceLineNumbers, int diskId) - { - return Message(sourceLineNumbers, Ids.MissingMedia, "There is no media defined for disk id '{0}'. You must author either or .", diskId); - } - - public static Message MissingOrInvalidModuleInstallerVersion(SourceLineNumber sourceLineNumbers, string moduleId, string mergeModuleFile, string productInstallerVersion) - { - return Message(sourceLineNumbers, Ids.MissingOrInvalidModuleInstallerVersion, "The merge module '{0}' from file '{1}' is either missing or has an invalid installer version. The value read from the installer version in module's summary information was '{2}'. This should be a numeric value representing a valid installer version such as 200 or 301.", moduleId, mergeModuleFile, productInstallerVersion); - } - - public static Message MissingPackagePayload(SourceLineNumber sourceLineNumbers, string packageId, string packageType) - { - return Message(sourceLineNumbers, Ids.MissingPackagePayload, "There is no payload defined for package '{0}'. This is specified on the {1}Package element or a child {1}PackagePayload element.", packageId, packageType); - } - - public static Message MissingTableDefinition(string tableName) - { - return Message(null, Ids.MissingTableDefinition, "Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter.", tableName); - } - - public static Message MissingTypeLibFile(SourceLineNumber sourceLineNumbers, string elementName, string fileElementName) - { - return Message(sourceLineNumbers, Ids.MissingTypeLibFile, "The {0} element is non-advertised and therefore requires a parent {1} element.", elementName, fileElementName); - } - - public static Message MissingValidatorExtension() - { - return Message(null, Ids.MissingValidatorExtension, "The validator requires at least one extension. Add \"ValidatorExtension, Wix\" for the default implementation."); - } - - public static Message MsiTransactionX86BeforeX64(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.MsiTransactionX86BeforeX64, "MSI transactions must install all x64 packages before any x86 package."); - } - - public static Message MultipleEntrySections(SourceLineNumber sourceLineNumbers, string sectionName1, string sectionName2) - { - return Message(sourceLineNumbers, Ids.MultipleEntrySections, "Multiple entry sections '{0}' and '{1}' found. Only one entry section may be present in a single target.", sectionName1, sectionName2); - } - - public static Message MultipleEntrySections2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.MultipleEntrySections2, "Location of entry section related to previous error."); - } - - public static Message MultipleFilesMatchedWithOutputSpecification(string sourceSpecification, string sourceList) - { - return Message(null, Ids.MultipleFilesMatchedWithOutputSpecification, "A per-source file output specification has been provided ('{0}'), but multiple source files match the source specification ({1}). Specifying a unique output requires that only a single source file match.", sourceSpecification, sourceList); - } - - public static Message MultipleIdentifiersFound(SourceLineNumber sourceLineNumbers, string elementName, string identifier, string mismatchIdentifier) - { - return Message(sourceLineNumbers, Ids.MultipleIdentifiersFound, "Under a '{0}' element, multiple identifiers were found: '{1}' and '{2}'. All search elements under this element must have the same id.", elementName, identifier, mismatchIdentifier); - } - - public static Message MultiplePackagePayloads(SourceLineNumber sourceLineNumbers, string packageId, string packagePayloadId1, string packagePayloadId2) - { - return Message(sourceLineNumbers, Ids.MultiplePackagePayloads, "The package '{0}' has multiple PackagePayloads: '{1}' and '{2}'. This normally happens when the payload is defined on the package element and a child PackagePayload element.", packageId, packagePayloadId1, packagePayloadId2); - } - - public static Message MultiplePackagePayloads2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.MultiplePackagePayloads2, "The location of the package payload related to previous error."); - } - - public static Message MultiplePackagePayloads3(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.MultiplePackagePayloads3, "The location of the package related to previous error."); - } - - public static Message MultiplePrimaryReferences(SourceLineNumber sourceLineNumbers, string crefChildType, string crefChildId, string crefParentType, string crefParentId, string conflictParentType, string conflictParentId) - { - return Message(sourceLineNumbers, Ids.MultiplePrimaryReferences, "Multiple primary references were found for {0} '{1}' in {2} '{3}' and {4} '{5}'.", crefChildType, crefChildId, crefParentType, crefParentId, conflictParentType, conflictParentId); - } - - public static Message MustSpecifyOutputWithMoreThanOneInput() - { - return Message(null, Ids.MustSpecifyOutputWithMoreThanOneInput, "You must specify an output file using the \"-o\" or \"-out\" switch when you provide more than one input file."); - } - - public static Message NeedSequenceBeforeOrAfter(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.NeedSequenceBeforeOrAfter, "A {0} element must have a Before attribute, After attribute, or a Sequence attribute.", elementName); - } - - public static Message NewRowAddedInTable(SourceLineNumber sourceLineNumbers, string productCode, string tableName, string rowId) - { - return Message(sourceLineNumbers, Ids.NewRowAddedInTable, "Product '{0}': Table '{1}' has a new row '{2}' added. This makes the patch not uninstallable.", productCode, tableName, rowId); - } - - public static Message NoDataForColumn(SourceLineNumber sourceLineNumbers, string columnName, string tableName) - { - return Message(sourceLineNumbers, Ids.NoDataForColumn, "There is no data for column '{0}' in a contained row of custom table '{1}'. A non-null value must be supplied for this column.", columnName, tableName); - } - - public static Message NoDifferencesInTransform(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.NoDifferencesInTransform, "The transform being built did not contain any differences so it could not be created."); - } - - public static Message NoFirstControlSpecified(SourceLineNumber sourceLineNumbers, string dialogName) - { - return Message(sourceLineNumbers, Ids.NoFirstControlSpecified, "The '{0}' dialog element does not have a valid tabbable control. You must either have a tabbable control that is not marked TabSkip='yes', or you must mark a control TabSkip='no'. If you have a page with no tabbable controls (a progress page, for example), you might want to set the first Text control to be TabSkip='no'.", dialogName); - } - - public static Message NonterminatedPreprocessorInstruction(SourceLineNumber sourceLineNumbers, string beginInstruction, string endInstruction) - { - return Message(sourceLineNumbers, Ids.NonterminatedPreprocessorInstruction, "Found a processing instruction without a matching after it.", beginInstruction, endInstruction); - } - - public static Message NoUniqueActionSequenceNumber(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) - { - return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber, "The {0} table contains an action '{1}' which cannot have a unique sequence number because it is scheduled before or after action '{2}'. There is not enough room before or after this action to assign a unique sequence number. Please schedule one of the actions differently so that it will be in a position with more sequence numbers available. Please note that sequence numbers must be an integer in the range 1 - 32767 (inclusive).", sequenceTableName, actionName1, actionName2); - } - - public static Message NoUniqueActionSequenceNumber2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber2, "The location of the sequenced action related to previous error."); - } - - public static Message OpenDatabaseFailed(string databaseFile) - { - return Message(null, Ids.OpenDatabaseFailed, "Failed to open database '{0}'. Ensure it is a valid database, and it is not open by another process.", databaseFile); - } - - public static Message OrderingReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList) - { - return Message(sourceLineNumbers, Ids.OrderingReferenceLoopDetected, "A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph.", loopList); - } - - public static Message OrphanedComponent(SourceLineNumber sourceLineNumbers, string componentName) - { - return Message(sourceLineNumbers, Ids.OrphanedComponent, "Found orphaned Component '{0}'. If this is a Product, every Component must have at least one parent Feature. To include a Component in a Module, you must include it directly as a Component element of the Module element or indirectly via ComponentRef, ComponentGroup, or ComponentGroupRef elements.", componentName); - } - - public static Message OutputCodepageMismatch(SourceLineNumber sourceLineNumbers, int beforeCodepage, int afterCodepage) - { - return Message(sourceLineNumbers, Ids.OutputCodepageMismatch, "The code pages of the outputs do not match. One output's code page is '{0}' while the other is '{1}'.", beforeCodepage, afterCodepage); - } - - public static Message OutputCodepageMismatch2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.OutputCodepageMismatch2, "The location of the mismatched code page related to the previous warning."); - } - - public static Message OutputTargetNotSpecified() - { - return Message(null, Ids.OutputTargetNotSpecified, "The '-out' or '-o' parameter must specify a file path."); - } - - public static Message OutputTypeMismatch(SourceLineNumber sourceLineNumbers, string beforeOutputType, string afterOutputType) - { - return Message(sourceLineNumbers, Ids.OutputTypeMismatch, "The types of the outputs do not match. One output's type is '{0}' while the other is '{1}'.", beforeOutputType, afterOutputType); - } - - public static Message OverridableActionCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.OverridableActionCollision, "The {0} table contains an action '{1}' that is declared overridable in two different locations. Please remove one of the actions or the Overridable='yes' attribute from one of the actions.", sequenceTableName, actionName); - } - - public static Message OverridableActionCollision2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.OverridableActionCollision2, "The location of the action related to previous error."); - } - - public static Message PackagePayloadUnsupported(SourceLineNumber sourceLineNumbers, string packageType) - { - return Message(sourceLineNumbers, Ids.PackagePayloadUnsupported, "The {0}PackagePayload element can only be used for {0}Packages.", packageType); - } - - public static Message PackagePayloadUnsupported2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.PackagePayloadUnsupported2, "The location of the package related to previous error."); - } - - public static Message ParentElementAttributeRequired(SourceLineNumber sourceLineNumbers, string parentElement, string parentAttribute, string childElement) - { - return Message(sourceLineNumbers, Ids.ParentElementAttributeRequired, "The parent {0} element is missing the {1} attribute that is required for the {2} child element.", parentElement, parentAttribute, childElement); - } - - public static Message PatchNotRemovable() - { - return Message(null, Ids.PatchNotRemovable, "This patch is not uninstallable. The 'Patch' element's attribute 'AllowRemoval' should be set to 'no'."); - } - - public static Message PatchWithoutTransforms() - { - return Message(null, Ids.PatchWithoutTransforms, "No transforms were provided to attach to the patch."); - } - - public static Message PatchWithoutValidTransforms() - { - return Message(null, Ids.PatchWithoutValidTransforms, "No valid transforms were provided to attach to the patch. Check to make sure the transforms you passed on the command line have a matching baseline authored in the patch. Also, make sure there are differences between your target and upgrade."); - } - - public static Message PathCannotContainQuote(string fileName) - { - return Message(null, Ids.PathCannotContainQuote, "Path '{0}' contains a literal quote character. Quotes are often accidentally introduced when trying to refer to a directory path with spaces in it, such as \"C:\\Out Directory\\\" -- the backslash before the quote acts an escape character. The correct representation for that path is: \"C:\\Out Directory\\\\\".", fileName); - } - - public static Message PathTooLong(SourceLineNumber sourceLineNumbers, string fileName) - { - return Message(sourceLineNumbers, Ids.PathTooLong, "'{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.", fileName); - } - - public static Message PayloadMustBeRelativeToCache(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) - { - return Message(sourceLineNumbers, Ids.PayloadMustBeRelativeToCache, "The {0}/@{1} attribute's value, '{2}', is not a relative path.", elementName, attributeName, attributeValue); - } - - public static Message PerUserButAllUsersEquals1(SourceLineNumber sourceLineNumbers, string path) - { - return Message(sourceLineNumbers, Ids.PerUserButAllUsersEquals1, "The MSI '{0}' is explicitly marked to not elevate so it must be a per-user package but the ALLUSERS Property is set to '1' creating a per-machine package. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute to be explicit instead.", path); - } - - public static Message PreprocessorError(SourceLineNumber sourceLineNumbers, string message) - { - return Message(sourceLineNumbers, Ids.PreprocessorError, "{0}", message); - } - - public static Message PreprocessorExtensionEvaluateFunctionFailed(SourceLineNumber sourceLineNumbers, string prefix, string function, string args, string message) - { - return Message(sourceLineNumbers, Ids.PreprocessorExtensionEvaluateFunctionFailed, "In the preprocessor extension that handles prefix '{0}' while trying to call function '{1}({2})' and exception has occurred : {3}", prefix, function, args, message); - } - - public static Message PreprocessorExtensionForParameterMissing(SourceLineNumber sourceLineNumbers, string parameterName, string parameterPrefix) - { - return Message(sourceLineNumbers, Ids.PreprocessorExtensionForParameterMissing, "Could not find the preprocessor extension for parameter '{0}'. A preprocessor extension is expected because the parameter prefix, '{1}', is not one of the standard types: 'env', 'res', 'sys', or 'var'.", parameterName, parameterPrefix); - } - - public static Message PreprocessorExtensionGetVariableValueFailed(SourceLineNumber sourceLineNumbers, string prefix, string variable, string message) - { - return Message(sourceLineNumbers, Ids.PreprocessorExtensionGetVariableValueFailed, "In the preprocessor extension that handles prefix '{0}' while trying to get the value for variable '{1}' and exception has occured : {2}", prefix, variable, message); - } - - public static Message PreprocessorExtensionPragmaFailed(SourceLineNumber sourceLineNumbers, string pragma, string message) - { - return Message(sourceLineNumbers, Ids.PreprocessorExtensionPragmaFailed, "Exception thrown while processing pragma '{0}'. The exception's message is: {1}", pragma, message); - } - - public static Message PreprocessorIllegalForeachVariable(SourceLineNumber sourceLineNumbers, string variableName) - { - return Message(sourceLineNumbers, Ids.PreprocessorIllegalForeachVariable, "The variable named '{0}' is not allowed in a foreach expression.", variableName); - } - - public static Message PreprocessorMissingParameterPrefix(SourceLineNumber sourceLineNumbers, string parameterName) - { - return Message(sourceLineNumbers, Ids.PreprocessorMissingParameterPrefix, "Could not find the prefix in parameter name: '{0}'.", parameterName); - } - - public static Message ProductCodeInvalidForTransform(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ProductCodeInvalidForTransform, "The value '*' is not valid for the ProductCode when used in a transform or in a patch. Copy the ProductCode from your target product MSI into the Product/@Id attribute value for your product authoring."); - } - - public static Message ProgIdNestedTooDeep(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ProgIdNestedTooDeep, "ProgId elements may not be nested more than 1 level deep."); - } - - public static Message RadioButtonBitmapAndIconDisallowed(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RadioButtonBitmapAndIconDisallowed, "RadioButtonGroup elements that contain RadioButton elements with Bitmap or Icon attributes set to \"yes\" can only be specified under a Control element. Move your RadioButtonGroup element as a child of the appropriate Control element."); - } - - public static Message RadioButtonTypeInconsistent(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RadioButtonTypeInconsistent, "All RadioButton elements in a RadioButtonGroup must be consistent with their use of the Bitmap, Icon, and Text attributes. Ensure all of the RadioButton elements in this group have the same attribute specified."); - } - - public static Message ReadOnlyOutputFile(string filePath) - { - return Message(null, Ids.ReadOnlyOutputFile, "Unable to output to file '{0}' because it is marked as read-only.", filePath); - } - - public static Message RealTableMissingPrimaryKeyColumn(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.RealTableMissingPrimaryKeyColumn, "The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched.", tableName); - } - - public static Message RecursiveAction(string action, string tableName) - { - return Message(null, Ids.RecursiveAction, "The action '{0}' is recursively placed in the '{1}' table.", action, tableName); - } - - public static Message ReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList) - { - return Message(sourceLineNumbers, Ids.ReferenceLoopDetected, "A circular reference of groups was detected. The infinite loop includes: {0}. Group references must form a directed acyclic graph.", loopList); - } - - public static Message RegistryMultipleValuesWithoutMultiString(SourceLineNumber sourceLineNumbers, string registryElementName, string valueAttributeName, string registryValueElementName, string typeAttributeName) - { - return Message(sourceLineNumbers, Ids.RegistryMultipleValuesWithoutMultiString, "The {0}/@{1} attribute and a {0}/{2} element cannot both be specified. Only one may be specified if the {3} attribute's value is not 'multiString'.", registryElementName, valueAttributeName, registryValueElementName, typeAttributeName); - } - - public static Message RegistryNameValueIncorrect(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.RegistryNameValueIncorrect, "The {0}/@{1} attribute's value, '{2}', is incorrect. It should not contain values of '+', '-', or '*' when the {0}/@Value attribute is empty. Instead, use the proper element and attributes: for Name='+' use RegistryKey/@Action='createKey', for Name='-' use RemoveRegistryKey/@Action='removeOnUninstall', for Name='*' use RegistryKey/@Action='createAndRemoveOnUninstall'.", elementName, attributeName, value); - } - - public static Message RegistryRootInvalid(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RegistryRootInvalid, "Registry/@Root attribute is invalid on a nested Registry element. Either remove the Root attribute or move the Registry element so it is not nested under another Registry element."); - } - - public static Message RegistrySubElementCannotBeRemoved(SourceLineNumber sourceLineNumbers, string registryElementName, string registryValueElementName, string actionAttributeName, string removeValue, string removeKeyOnInstallValue) - { - return Message(sourceLineNumbers, Ids.RegistrySubElementCannotBeRemoved, "The {0}/{1} element cannot be specified if the {2} attribute's value is '{3}' or '{4}'.", registryElementName, registryValueElementName, actionAttributeName, removeValue, removeKeyOnInstallValue); - } - - public static Message RelativePathForRegistryElement(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RelativePathForRegistryElement, "Cannot convert RelativePath into Registry elements."); - } - - public static Message ReservedNamespaceViolation(SourceLineNumber sourceLineNumbers, string element, string attribute, string prefix) - { - return Message(sourceLineNumbers, Ids.ReservedNamespaceViolation, "The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix.", element, attribute, prefix); - } - - public static Message RootFeatureCannotFollowParent(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RootFeatureCannotFollowParent, "The Feature element specifies a root feature with an illegal InstallDefault value of 'followParent'. Root features cannot follow their parent feature's install state because they don't have a parent feature. Please remove or change the value of the InstallDefault attribute."); - } - - public static Message SameFileIdDifferentSource(SourceLineNumber sourceLineNumbers, string fileId, string sourcePath1, string sourcePath2) - { - return Message(sourceLineNumbers, Ids.SameFileIdDifferentSource, "Two different source paths '{1}' and '{2}' were detected for the same file identifier '{0}'. You must either author these under Media elements with different Id attribute values or in different patches.", fileId, sourcePath1, sourcePath2); - } - - public static Message SamePatchBaselineId(SourceLineNumber sourceLineNumbers, string id) - { - return Message(sourceLineNumbers, Ids.SamePatchBaselineId, "The PatchBaseline/@Id attribute value '{0}' is a child of multiple Media elements. This prevents transforms from being resolved to distinct media. Change the PatchBaseline/@Id attribute values to be unique.", id); - } - - public static Message SchemaValidationFailed(SourceLineNumber sourceLineNumbers, string validationError, int lineNumber, int linePosition) - { - return Message(sourceLineNumbers, Ids.SchemaValidationFailed, "Schema validation failed with the following error at line {1}, column {2}: {0}", validationError, lineNumber, linePosition); - } - - public static Message SearchElementRequired(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.SearchElementRequired, "A '{0}' element must have a search element as a child.", elementName); - } - - public static Message SearchElementRequiredWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) - { - return Message(sourceLineNumbers, Ids.SearchElementRequiredWithAttribute, "A {0} element must have a search element as a child when the {0}/@{1} attribute has the value '{2}'.", elementName, attributeName, attributeValue); - } - - public static Message SearchPropertyNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.SearchPropertyNotUppercase, "The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a search property, it must also be a public property. This means the Property/@Id value must be completely uppercase.", elementName, attributeName, value); - } - - public static Message SecurePropertyNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string propertyId) - { - return Message(sourceLineNumbers, Ids.SecurePropertyNotUppercase, "The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a secure property, it must also be a public property. This means the Property/@Id value must be completely uppercase.", elementName, attributeName, propertyId); - } - - public static Message SignedEmbeddedCabinet(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.SignedEmbeddedCabinet, "The DigitalSignature element cannot be nested under a Media element which specifies EmbedCab='yes'. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or change the value of the Media/@EmbedCab attribute to 'no'."); - } - - public static Message SingleExtensionSupported() - { - return Message(null, Ids.SingleExtensionSupported, "Multiple extensions were specified on the command line, only a single extension is supported."); - } - - public static Message SmokeMalformedPath() - { - return Message(null, Ids.SmokeMalformedPath, "Path contains one or more invalid characters."); - } - - public static Message SmokeUnknownFileExtension() - { - return Message(null, Ids.SmokeUnknownFileExtension, "Unknown input file format - expected a .msi or .msm file."); - } - - public static Message SmokeUnsupportedFileExtension() - { - return Message(null, Ids.SmokeUnsupportedFileExtension, "Files with an extension of .msp are not currently supported."); - } - - public static Message SpecifiedBinderNotFound(string binderClass) - { - return Message(null, Ids.SpecifiedBinderNotFound, "The specified binder class '{0}' was not found in any extensions.", binderClass); - } - - public static Message SplitCabinetCopyRegistrationFailed(string newCabName, string firstCabName) - { - return Message(null, Ids.SplitCabinetCopyRegistrationFailed, "Failed to register the copy command for cabinet '{0}' formed by splitting cabinet '{1}'.", newCabName, firstCabName); - } - - public static Message SplitCabinetInsertionFailed(string newCabName, string firstCabName, string lastCabinetOfThisSequence) - { - return Message(null, Ids.SplitCabinetInsertionFailed, "Could not find the last split cabinet '{2}' in the Media Table. So failed to add new cabinet '{0}' formed by splitting cabinet '{1}' to the installer package.", newCabName, firstCabName, lastCabinetOfThisSequence); - } - - public static Message SplitCabinetNameCollision(string newCabName, string firstCabName) - { - return Message(null, Ids.SplitCabinetNameCollision, "The cabinet name '{0}' collides with the new cabinet formed by splitting cabinet '{1}', consider renaming cabinet '{0}'.", newCabName, firstCabName); - } - - public static Message StandardActionRelativelyScheduledInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.StandardActionRelativelyScheduledInModule, "The {0} table contains a standard action '{1}' that does not have a sequence number specified. The Sequence attribute is required for standard actions in a merge module. Please remove the action or use the Sequence attribute.", sequenceTableName, actionName); - } - - public static Message StreamNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length, int maximumLength) - { - return Message(sourceLineNumbers, Ids.StreamNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long because it will be used to create a stream name. It cannot be more than than {4} characters long.", elementName, attributeName, value, length, maximumLength); - } - - public static Message StreamNameTooLong(SourceLineNumber sourceLineNumbers, string tableName, string streamName, int streamLength) - { - return Message(sourceLineNumbers, Ids.StreamNameTooLong, "The binary value in table '{0}' will be stored with a stream name, '{1}', that is {2} characters long. This is too long because the maximum allowed length for a stream name is 62 characters long. Since the stream name is created by concatenating the table name and values of the primary key for a row (delimited by periods), this error can be resolved by shortening a value that is part of the primary key.", tableName, streamName, streamLength); - } - - public static Message StubMissingWixburnSection(string filename) - { - return Message(null, Ids.StubMissingWixburnSection, "Stub executable '{0}' does not contain a .wixburn data section.", filename); - } - - public static Message StubWixburnSectionTooSmall(string filename) - { - return Message(null, Ids.StubWixburnSectionTooSmall, "Stub executable '{0}' .wixburn data section is too small to store the Burn container header.", filename); - } - - public static Message SuppressNonoverridableAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.SuppressNonoverridableAction, "The {0} table contains an action '{1}' that cannot be suppressed because it is not declared overridable in the base definition. Please stop suppressing the action or make it overridable in its base declaration.", sequenceTableName, actionName); - } - - public static Message SuppressNonoverridableAction2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.SuppressNonoverridableAction2, "The location of the non-overridable definition of the action related to previous error."); - } - - public static Message TabbableControlNotAllowedInBillboard(SourceLineNumber sourceLineNumbers, string elementName, string controlType) - { - return Message(sourceLineNumbers, Ids.TabbableControlNotAllowedInBillboard, "A {0} element was specified with Type='{1}' and TabSkip='no'. Tabbable controls are not allowed in Billboards.", elementName, controlType); - } - - public static Message TableDecompilationUnimplemented(string tableName) - { - return Message(null, Ids.TableDecompilationUnimplemented, "Decompilation of the {0} table has not been implemented by its extension.", tableName); - } - - public static Message TableNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.TableNameTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long.", elementName, attributeName, value); - } - - public static Message TooDeeplyIncluded(SourceLineNumber sourceLineNumbers, int depth) - { - return Message(sourceLineNumbers, Ids.TooDeeplyIncluded, "Include files cannot be nested more deeply than {0} times. Make sure included files don't accidentally include themselves.", depth); - } - - public static Message TooManyChildren(SourceLineNumber sourceLineNumbers, string elementName, string childElementName) - { - return Message(sourceLineNumbers, Ids.TooManyChildren, "The {0} element contains multiple {1} child elements. There can only be one {1} child element per {0} element.", elementName, childElementName); - } - - public static Message TooManyColumnsInRealTable(string tableName, int columnCount, int supportedColumnCount) - { - return Message(null, Ids.TooManyColumnsInRealTable, "The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns.", tableName, columnCount, supportedColumnCount); - } - - public static Message TooManyElements(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, int expectedInstances) - { - return Message(sourceLineNumbers, Ids.TooManyElements, "The {0} element contains an unexpected child element '{1}'. The '{1}' element may only occur {2} time(s) under the {0} element.", elementName, childElementName, expectedInstances); - } - - public static Message TooManySearchElements(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.TooManySearchElements, "Only one search element can appear under a '{0}' element.", elementName); - } - - public static Message TransformSchemaMismatch() - { - return Message(null, Ids.TransformSchemaMismatch, "The transform schema does not match the database schema. The transform may have been generated from a different database."); - } - - public static Message TypeSpecificationForExtensionRequired(string parameter) - { - return Message(null, Ids.TypeSpecificationForExtensionRequired, "The parameter '{0}' must be followed by the extension's type specification. The type specification should be a fully qualified class and assembly identity, for example: \"MyNamespace.MyClass,myextension.dll\".", parameter); - } - - public static Message UnableToGetAuthenticodeCertOfFile(string filePath, string moreInformation) - { - return Message(null, Ids.UnableToGetAuthenticodeCertOfFile, "Unable to get the authenticode certificate of '{0}'. More information: {1}", filePath, moreInformation); - } - - public static Message UnableToGetAuthenticodeCertOfFileDownlevelOS(string filePath, string moreInformation) - { - return Message(null, Ids.UnableToGetAuthenticodeCertOfFileDownlevelOS, "Unable to get the authenticode certificate of '{0}'. The cryptography API has limitations on Windows XP and Windows Server 2003. More information: {1}", filePath, moreInformation); - } - - public static Message UnableToConvertFieldToNumber(string value) - { - return Message(null, Ids.UnableToConvertFieldToNumber, "Unable to convert intermediate symbol field value '{0}' to a number. This means the intermediate is corrupt or of an unsupported version.", value); - } - - public static Message UnableToOpenModule(SourceLineNumber sourceLineNumbers, string modulePath, string message) - { - return Message(sourceLineNumbers, Ids.UnableToOpenModule, "Unable to open merge module '{0}'. Check to make sure the module language is correct. '{1}'", modulePath, message); - } - - public static Message UnableToReadPackageInformation(SourceLineNumber sourceLineNumbers, string packagePath, string detailedErrorMessage) - { - return Message(sourceLineNumbers, Ids.UnableToReadPackageInformation, "Unable to read package '{0}'. {1}", packagePath, detailedErrorMessage); - } - - public static Message UnauthorizedAccess(string filePath) - { - return Message(null, Ids.UnauthorizedAccess, "Access to the path '{0}' is denied.", filePath); - } - - public static Message UndefinedPreprocessorFunction(SourceLineNumber sourceLineNumbers, string variableName) - { - return Message(sourceLineNumbers, Ids.UndefinedPreprocessorFunction, "Undefined preprocessor function '$({0})'.", variableName); - } - - public static Message UndefinedPreprocessorVariable(SourceLineNumber sourceLineNumbers, string variableName) - { - return Message(sourceLineNumbers, Ids.UndefinedPreprocessorVariable, "Undefined preprocessor variable '$({0})'.", variableName); - } - - public static Message UnexpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.UnexpectedAttribute, "The {0} element contains an unexpected attribute '{1}'.", elementName, attributeName); - } - - public static Message UnexpectedColumnCount(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.UnexpectedColumnCount, "A parsed row has more fields that contain data for table '{0}' than are defined. This is potentially because a standard table is being redefined as a custom table or is based on an older table schema.", tableName); - } - - public static Message UnexpectedContentNode(SourceLineNumber sourceLineNumbers, string elementName, string unexpectedNodeType) - { - return Message(sourceLineNumbers, Ids.UnexpectedContentNode, "The {0} element contains an unexpected xml node of type {1}.", elementName, unexpectedNodeType); - } - - public static Message UnexpectedCustomTableColumn(SourceLineNumber sourceLineNumbers, string column) - { - return Message(sourceLineNumbers, Ids.UnexpectedCustomTableColumn, "The custom table column '{0}' is unknown.", column); - } - - public static Message UnexpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childElementName) - { - return Message(sourceLineNumbers, Ids.UnexpectedElement, "The {0} element contains an unexpected child element '{1}'.", elementName, childElementName); - } - - public static Message UnexpectedElementWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute) - { - return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttribute, "The {0} element cannot have a child element '{1}' when attribute '{2}' is set.", elementName, childElementName, attribute); - } - - public static Message UnexpectedElementWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute1, string attribute2, string attribute3, string attribute4) - { - return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttribute, "The {0} element cannot have a child element '{1}' when any of attributes '{2}', '{3}', '{4}', or '{5}' are set.", elementName, childElementName, attribute1, attribute2, attribute3, attribute4); - } - - public static Message UnexpectedElementWithAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute, string attributeValue) - { - return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttributeValue, "The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}'.", elementName, childElementName, attribute, attributeValue); - } - - public static Message UnexpectedElementWithAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute, string attributeValue1, string attributeValue2) - { - return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttributeValue, "The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}' or '{4}'.", elementName, childElementName, attribute, attributeValue1, attributeValue2); - } - - public static Message UnexpectedEmptySubexpression(SourceLineNumber sourceLineNumbers, string expression) - { - return Message(sourceLineNumbers, Ids.UnexpectedEmptySubexpression, "The empty subexpression is unexpected in the expression '{0}'.", expression); - } - - public static Message UnexpectedException(Exception exception) - { - return Message(null, Ids.UnexpectedException, exception.ToString()); - } - - public static Message UnexpectedException(string message, string type, string stackTrace) - { - return Message(null, Ids.UnexpectedException, "{0}\r\n\r\nException Type: {1}\r\n\r\nStack Trace:\r\n{2}", message, type, stackTrace); - } - - public static Message UnexpectedExternalUIMessage(string message) - { - return Message(null, Ids.UnexpectedExternalUIMessage, "Error executing unknown ICE action. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: \"{0}\".", message); - } - - public static Message UnexpectedExternalUIMessage(string message, string action) - { - return Message(null, Ids.UnexpectedExternalUIMessage, "Error executing ICE action '{1}'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: \"{0}\".", message, action); - } - - public static Message UnexpectedFileExtension(string fileName, string expectedExtensions) - { - return Message(null, Ids.UnexpectedFileExtension, "The file '{0}' has an unexpected extension. Expected one of the following: '{1}'.", fileName, expectedExtensions); - } - - public static Message UnexpectedFileFormat(string path, string expectedFormat, string actualFormat) - { - return Message(null, Ids.UnexpectedFileFormat, "Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided.", path, expectedFormat.ToLowerInvariant(), actualFormat.ToLowerInvariant()); - } - - public static Message UnexpectedGroupChild(string parentType, string parentId, string childType, string childId) - { - return Message(null, Ids.UnexpectedGroupChild, "A group parent ('{0}'/'{1}') had an unexpected child ('{2}'/'{3}').", parentType, parentId, childType, childId); - } - - public static Message UnexpectedLiteral(SourceLineNumber sourceLineNumbers, string expression) - { - return Message(sourceLineNumbers, Ids.UnexpectedLiteral, "An unexpected literal was found in the expression '{0}'.", expression); - } - - public static Message UnexpectedPreprocessorOperator(SourceLineNumber sourceLineNumbers, string op) - { - return Message(sourceLineNumbers, Ids.UnexpectedPreprocessorOperator, "The operator '{0}' is unexpected.", op); - } - - public static Message UnexpectedTableInMergeModule(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.UnexpectedTableInMergeModule, "An unexpected row in the '{0}' table was found in this merge module. Merge modules cannot contain the '{0}' table.", tableName); - } - - public static Message UnexpectedTableInPatch(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.UnexpectedTableInPatch, "An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table.", tableName); - } - - public static Message UnexpectedTableInPatchCreationPackage(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.UnexpectedTableInPatchCreationPackage, "An unexpected row in the '{0}' table was found in this patch creation package. Patch creation packages cannot contain the '{0}' table.", tableName); - } - - public static Message UnhandledExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionAttributeName, string extensionNamespace) - { - return Message(sourceLineNumbers, Ids.UnhandledExtensionAttribute, "The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided.", elementName, extensionAttributeName, extensionNamespace); - } - - public static Message UnhandledExtensionElement(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName, string extensionNamespace) - { - return Message(sourceLineNumbers, Ids.UnhandledExtensionElement, "The {0} element contains an unhandled extension element '{1}'. Please ensure that the extension for elements in the '{2}' namespace has been provided.", elementName, extensionElementName, extensionNamespace); - } - - public static Message UniqueFileSearchIdRequired(SourceLineNumber sourceLineNumbers, string id, string elementName) - { - return Message(sourceLineNumbers, Ids.UniqueFileSearchIdRequired, "The DirectorySearch element '{0}' requires that the child {1} element has a unique Id when the DirectorySearch/@AssignToProperty attribute is set to 'yes'.", id, elementName); - } - - public static Message UnknownCustomTableColumnType(SourceLineNumber sourceLineNumbers, string columnType) - { - return Message(sourceLineNumbers, Ids.UnknownCustomTableColumnType, "Encountered an unknown custom table column type '{0}'.", columnType); - } - - public static Message UnmatchedParenthesisInExpression(SourceLineNumber sourceLineNumbers, string expression) - { - return Message(sourceLineNumbers, Ids.UnmatchedParenthesisInExpression, "The parenthesis don't match in the expression '{0}'.", expression); - } - - public static Message UnmatchedPreprocessorInstruction(SourceLineNumber sourceLineNumbers, string beginInstruction, string endInstruction) - { - return Message(sourceLineNumbers, Ids.UnmatchedPreprocessorInstruction, "Found a processing instruction without a matching before it.", beginInstruction, endInstruction); - } - - public static Message UnmatchedQuotesInExpression(SourceLineNumber sourceLineNumbers, string expression) - { - return Message(sourceLineNumbers, Ids.UnmatchedQuotesInExpression, "The quotes don't match in the expression '{0}'.", expression); - } - - public static Message UnresolvedBindReference(SourceLineNumber sourceLineNumbers, string BindRef) - { - return Message(sourceLineNumbers, Ids.UnresolvedBindReference, "Unresolved bind-time variable {0}.", BindRef); - } - - public static Message UnresolvedReference(SourceLineNumber sourceLineNumbers, string symbolName) - { - return Message(sourceLineNumbers, Ids.UnresolvedReference, "The identifier '{0}' could not be found. Ensure you have typed the reference correctly and that all the necessary inputs are provided to the linker.", symbolName); - } - - public static Message UnresolvedReference(SourceLineNumber sourceLineNumbers, string symbolName, WixToolset.Data.AccessModifier accessModifier) - { - return Message(sourceLineNumbers, Ids.UnresolvedReference, "The identifier '{0}' is inaccessible due to its protection level.", symbolName, accessModifier); - } - - public static Message UnsupportedAllUsersValue(SourceLineNumber sourceLineNumbers, string path, string value) - { - return Message(sourceLineNumbers, Ids.UnsupportedAllUsersValue, "The MSI '{0}' set the ALLUSERS Property to '{0}' which is not supported. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead.", path, value); - } - - public static Message UnsupportedExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName) - { - return Message(sourceLineNumbers, Ids.UnsupportedExtensionAttribute, "The {0} element contains an unsupported extension attribute '{1}'. The {0} element does not currently support extension attributes. Is the {1} attribute using the correct XML namespace?", elementName, extensionElementName); - } - - public static Message UnsupportedExtensionElement(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName) - { - return Message(sourceLineNumbers, Ids.UnsupportedExtensionElement, "The {0} element contains an unsupported extension element '{1}'. The {0} element does not currently support extension elements. Is the {1} element using the correct XML namespace?", elementName, extensionElementName); - } - - public static Message UnsupportedPlatformForElement(SourceLineNumber sourceLineNumbers, string platform, string elementName) - { - return Message(sourceLineNumbers, Ids.UnsupportedPlatformForElement, "The element {1} does not support platform '{0}'. Consider removing the element or using the preprocessor to conditionally include the element based on the platform.", platform, elementName); - } - - public static Message ValidationError(SourceLineNumber sourceLineNumbers, string ice, string message) - { - return Message(sourceLineNumbers, Ids.ValidationError, "{0}: {1}", ice, message); - } - - public static Message ValidationFailedDueToInvalidPackage() - { - return Message(null, Ids.ValidationFailedDueToInvalidPackage, "Failed to open package for validation. The most common cause of this error is validating an x64 package on an x86 system. To fix this error, run validation on an x64 system or disable validation."); - } - - public static Message ValidationFailedDueToLowMsiEngine() - { - return Message(null, Ids.ValidationFailedDueToLowMsiEngine, "The package being validated requires a higher version of Windows Installer than is installed on this machine. Validation cannot continue."); - } - - public static Message ValidationFailedDueToMultilanguageMergeModule() - { - return Message(null, Ids.ValidationFailedDueToMultilanguageMergeModule, "Failed to open merge module for validation. The most common cause of this error is specifying that the merge module supports multiple languages (using the Package/@Languages attribute) but not including language-specific embedded transforms. To fix this error, make the merge module language-neutral, make it language-specific, embed language transforms as specified in the MSI SDK at http://msdn.microsoft.com/library/aa367799.aspx, or disable validation."); - } - - public static Message ValidationFailedToOpenDatabase() - { - return Message(null, Ids.ValidationFailedToOpenDatabase, "Failed to open the database. During validation, this most commonly happens when attempting to open a database using an unsupported code page or a file that is not a valid Windows Installer database. Please use a different code page in Module/@Codepage, Package/@SummaryCodepage, Product/@Codepage, or WixLocalization/@Codepage; or make sure you provide the path to a valid Windows Installer database."); - } - - public static Message ValueAndMaskMustBeSameLength(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ValueAndMaskMustBeSameLength, "The FileTypeMask/@Value and FileTypeMask/@Mask attributes must be the same length."); - } - - public static Message ValueNotSupported(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) - { - return Message(sourceLineNumbers, Ids.ValueNotSupported, "The {0}/@{1} attribute's value, '{2}, is not supported by the Windows Installer.", elementName, attributeName, attributeValue); - } - - public static Message VariableDeclarationCollision(SourceLineNumber sourceLineNumbers, string variableName, string variableValue, string variableCollidingValue) - { - return Message(sourceLineNumbers, Ids.VariableDeclarationCollision, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); - } - - public static Message VersionIndependentProgIdsCannotHaveIcons(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.VersionIndependentProgIdsCannotHaveIcons, "Version independent ProgIds cannot have Icons. Remove the Icon and/or IconIndex attributes from your ProgId element."); - } - - public static Message VersionMismatch(SourceLineNumber sourceLineNumbers, string fileType, string version, string expectedVersion) - { - return Message(sourceLineNumbers, Ids.VersionMismatch, "The {0} file format version {1} is not compatible with the expected {0} file format version {2}.", fileType, version, expectedVersion); - } - - public static Message Win32Exception(int nativeErrorCode, string message) - { - return Message(null, Ids.Win32Exception, "An unexpected Win32 exception with error code 0x{0:X} occurred: {1}", nativeErrorCode, message); - } - - public static Message Win32Exception(int nativeErrorCode, string file, string message) - { - return Message(null, Ids.Win32Exception, "An unexpected Win32 exception with error code 0x{0:X} occurred while accessing file '{1}': {2}", nativeErrorCode, file, message); - } - - public static Message WixFileNotFound(string file) - { - return Message(null, Ids.WixFileNotFound, "The file '{0}' cannot be found.", file); - } - - public static Message WixVariableCollision(SourceLineNumber sourceLineNumbers, string variableId) - { - return Message(sourceLineNumbers, Ids.WixVariableCollision, "The WiX variable '{0}' is declared in more than one location. Please remove one of the declarations.", variableId); - } - - public static Message WixVariableUnknown(SourceLineNumber sourceLineNumbers, string variableId) - { - return Message(sourceLineNumbers, Ids.WixVariableUnknown, "The WiX variable !(wix.{0}) is unknown. Please ensure the variable is declared on the command line for light.exe, via a WixVariable element, or inline using the syntax !(wix.{0}=some value which doesn't contain parenthesis).", variableId); - } - - public static Message WrongFileExtensionForNumberOfInputs(string inputExtension, string input) - { - return Message(null, Ids.WrongFileExtensionForNumberOfInputs, "The extension '{0}' on the input specified '{1}' does not match the number of inputs required to handle an input with this extension. Check if you are missing an input or have too many.", inputExtension, input); - } - - public static Message NoSourceFiles() - { - return Message(null, Ids.NoSourceFiles, "No source files specified."); - } - - public static Message WixiplSourceFileIsExclusive() - { - return Message(null, Ids.WixiplSourceFileIsExclusive, "When an intermediate post link source file is specified, it must be the only source file provided."); - } - - public static Message IntermediatesMustBeCompiled(string invalidIntermediates) - { - return Message(null, Ids.IntermediatesMustBeCompiled, "Intermediates being linked must have been compiled. Intermediates with these ids were not compiled: {0}", invalidIntermediates); - } - - public static Message IntermediatesMustBeResolved(string invalidIntermediate) - { - return Message(null, Ids.IntermediatesMustBeResolved, "Intermediates being bound must have been resolved. This intermediate was not resolved: {0}", invalidIntermediate); - } - - public static Message UnknownSymbolType(string symbolName) - { - return Message(null, Ids.UnknownSymbolType, "Could not deserialize symbol of type type '{0}' because it is not a standard symbol type or one provided by a loaded extension.", symbolName); - } - - public static Message IllegalInnerText(SourceLineNumber sourceLineNumbers, string elementName, string innerText) - { - return Message(sourceLineNumbers, Ids.IllegalInnerText, "The {0} element contains illegal inner text: '{1}'.", elementName, innerText); - } - - private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) - { - return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); - } - - private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) - { - return new Message(sourceLineNumber, MessageLevel.Error, (int)id, resourceManager, resourceName, args); - } - - public enum Ids - { - UnexpectedException = 1, - UnexpectedFileFormat = 2, - CorruptFileFormat = 3, - UnexpectedAttribute = 4, - UnexpectedElement = 5, - IllegalEmptyAttributeValue = 6, - InsufficientVersion = 7, - IllegalIntegerValue = 8, - IllegalGuidValue = 9, - ExpectedAttribute = 10, - SecurePropertyNotUppercase = 11, - SearchPropertyNotUppercase = 12, - StreamNameTooLong = 13, - IllegalIdentifier = 14, - IllegalYesNoValue = 15, - CabCreationFailed = 16, - CabExtractionFailed = 17, - AppIdIncompatibleAdvertiseState = 18, - IllegalAttributeWhenAdvertised = 19, - ConditionExpected = 20, - IllegalAttributeValue = 21, - CustomActionMultipleSources = 22, - CustomActionMultipleTargets = 23, - CustomActionIllegalInnerText = 24, - IllegalShortFilename = 26, - IllegalLongFilename = 27, - TableNameTooLong = 28, - FeatureConfigurableDirectoryNotUppercase = 29, - FeatureCannotFavorAndDisallowAdvertise = 30, - FeatureCannotFollowParentAndFavorLocalOrSource = 31, - MediaEmbeddedCabinetNameTooLong = 32, - RegistrySubElementCannotBeRemoved = 33, - RegistryMultipleValuesWithoutMultiString = 34, - IllegalAttributeWithOtherAttribute = 35, - IllegalAttributeWithOtherAttributes = 36, - IllegalAttributeWithoutOtherAttributes = 37, - IllegalAttributeValueWithoutOtherAttribute = 38, - IntegralValueSentinelCollision = 39, - ExampleGuid = 40, - TooManyChildren = 41, - ComponentMultipleKeyPaths = 42, - CabClosureFailed = 43, - ExpectedAttributes = 44, - ExpectedAttributesWithOtherAttribute = 45, - ExpectedAttributesWithoutOtherAttribute = 46, - MissingTypeLibFile = 47, - InvalidDocumentElement = 48, - ExpectedAttributeInElementOrParent = 49, - UnauthorizedAccess = 50, - IllegalModuleExclusionLanguageAttributes = 51, - NoFirstControlSpecified = 52, - NoDataForColumn = 53, - ValueAndMaskMustBeSameLength = 54, - TooManySearchElements = 55, - IllegalAttributeExceptOnElement = 56, - SearchElementRequired = 57, - MultipleIdentifiersFound = 58, - AdvertiseStateMustMatch = 59, - DuplicateContextValue = 60, - RelativePathForRegistryElement = 61, - IllegalAttributeWhenNested = 62, - ExpectedElement = 63, - RegistryRootInvalid = 64, - IllegalYesNoDefaultValue = 65, - IllegalAttributeInMergeModule = 66, - GenericReadNotAllowed = 67, - IllegalAttributeWithInnerText = 68, - SearchElementRequiredWithAttribute = 69, - CannotAuthorSpecialProperties = 70, - NeedSequenceBeforeOrAfter = 72, - ValueNotSupported = 73, - TabbableControlNotAllowedInBillboard = 74, - CheckBoxValueOnlyValidWithCheckBox = 75, - CabFileDoesNotExist = 76, - RadioButtonTypeInconsistent = 77, - RadioButtonBitmapAndIconDisallowed = 78, - IllegalSuppressWarningId = 79, - PreprocessorIllegalForeachVariable = 80, - PreprocessorMissingParameterPrefix = 81, - PreprocessorExtensionForParameterMissing = 82, - CannotFindFile = 83, - BinderFileManagerMissingFile = 84, - InvalidFileName = 85, - ReferenceLoopDetected = 86, - GuidContainsLowercaseLetters = 87, - InvalidDateTimeFormat = 88, - MultipleEntrySections = 89, - MultipleEntrySections2 = 90, - DuplicateSymbol = 91, - DuplicateSymbol2 = 92, - MissingEntrySection = 93, - UnresolvedReference = 94, - MultiplePrimaryReferences = 95, - ComponentReferencedTwice = 96, - DuplicateModuleFileIdentifier = 97, - DuplicateModuleCaseInsensitiveFileIdentifier = 98, - ImplicitComponentKeyPath = 99, - DuplicateLocalizationIdentifier = 100, - LocalizationVariableUnknown = 102, - FileNotFound = 103, - InvalidXml = 104, - ProgIdNestedTooDeep = 105, - CanNotHaveTwoParents = 106, - SchemaValidationFailed = 107, - IllegalVersionValue = 108, - CustomTableNameTooLong = 109, - CustomTableIllegalColumnWidth = 110, - CustomTableMissingPrimaryKey = 111, - TypeSpecificationForExtensionRequired = 113, - FilePathRequired = 114, - DirectoryPathRequired = 115, - FileOrDirectoryPathRequired = 116, - PathCannotContainQuote = 117, - AdditionalArgumentUnexpected = 118, - RegistryNameValueIncorrect = 119, - FamilyNameTooLong = 120, - IllegalFamilyName = 121, - IllegalLongValue = 122, - IntegralValueOutOfRange = 123, - DuplicateExtensionXmlSchemaNamespace = 125, - DuplicateExtensionTable = 126, - DuplicateExtensionPreprocessorType = 127, - FileInUse = 128, - CannotOpenMergeModule = 129, - DuplicatePrimaryKey = 130, - FileIdentifierNotFound = 131, - InvalidAssemblyFile = 132, - ExpectedEndElement = 133, - IllegalCodepage = 134, - ExpectedMediaCabinet = 135, - InvalidIdt = 136, - InvalidSequenceTable = 137, - ExpectedDirectory = 138, - ComponentExpectedFeature = 139, - RecursiveAction = 140, - VersionMismatch = 141, - UnexpectedContentNode = 142, - UnexpectedColumnCount = 143, - InvalidExtension = 144, - InvalidSubExpression = 145, - UnmatchedPreprocessorInstruction = 146, - NonterminatedPreprocessorInstruction = 147, - ExpectedExpressionAfterNot = 148, - InvalidPreprocessorVariable = 149, - UndefinedPreprocessorVariable = 150, - IllegalDefineStatement = 151, - VariableDeclarationCollision = 152, - CannotReundefineVariable = 153, - IllegalForeach = 154, - IllegalParentAttributeWhenNested = 155, - ExpectedEndforeach = 156, - UnmatchedQuotesInExpression = 158, - UnmatchedParenthesisInExpression = 159, - ExpectedVariable = 160, - UnexpectedLiteral = 161, - IllegalIntegerInExpression = 162, - UnexpectedPreprocessorOperator = 163, - UnexpectedEmptySubexpression = 164, - UnexpectedCustomTableColumn = 165, - UnknownCustomTableColumnType = 166, - IllegalFileCompressionAttributes = 167, - OverridableActionCollision = 168, - OverridableActionCollision2 = 169, - ActionCollision = 170, - ActionCollision2 = 171, - SuppressNonoverridableAction = 172, - SuppressNonoverridableAction2 = 173, - CustomActionSequencedInModule = 174, - StandardActionRelativelyScheduledInModule = 175, - ActionCircularDependency = 176, - ActionScheduledRelativeToTerminationAction = 177, - ActionScheduledRelativeToTerminationAction2 = 178, - NoUniqueActionSequenceNumber = 179, - NoUniqueActionSequenceNumber2 = 180, - ActionScheduledRelativeToItself = 181, - MissingTableDefinition = 182, - ExpectedRowInPatchCreationPackage = 183, - UnexpectedTableInMergeModule = 184, - UnexpectedTableInPatchCreationPackage = 185, - MergeExcludedModule = 186, - MergeFeatureRequired = 187, - MergeLanguageFailed = 188, - MergeLanguageUnsupported = 189, - TableDecompilationUnimplemented = 190, - CannotDefaultMismatchedAdvertiseStates = 191, - VersionIndependentProgIdsCannotHaveIcons = 192, - IllegalAttributeValueWithOtherAttribute = 193, - InvalidMergeLanguage = 194, - WixVariableCollision = 195, - ExpectedWixVariableValue = 196, - WixVariableUnknown = 197, - IllegalWixVariablePrefix = 198, - InvalidWixXmlNamespace = 199, - UnhandledExtensionElement = 200, - UnhandledExtensionAttribute = 201, - UnsupportedExtensionAttribute = 202, - UnsupportedExtensionElement = 203, - ValidationError = 204, - IllegalRootDirectory = 205, - IllegalTargetDirDefaultDir = 206, - TooManyElements = 207, - ExpectedBinaryCategory = 208, - RootFeatureCannotFollowParent = 209, - FeatureNameTooLong = 210, - SignedEmbeddedCabinet = 211, - ExpectedSignedCabinetName = 212, - IllegalInlineLocVariable = 213, - MergeModuleExpectedFeature = 215, - Win32Exception = 216, - UnexpectedExternalUIMessage = 217, - IllegalCabbingThreadCount = 218, - IllegalEnvironmentVariable = 219, - InvalidKeyColumn = 220, - CollidingModularizationTypes = 221, - CubeFileNotFound = 222, - OpenDatabaseFailed = 223, - OutputTypeMismatch = 224, - RealTableMissingPrimaryKeyColumn = 225, - IllegalColumnName = 226, - NoDifferencesInTransform = 227, - OutputCodepageMismatch = 228, - OutputCodepageMismatch2 = 229, - IllegalComponentWithAutoGeneratedGuid = 230, - IllegalPathForGeneratedComponentGuid = 231, - IllegalTerminalServerCustomActionAttributes = 232, - IllegalPropertyCustomActionAttributes = 233, - InvalidPreprocessorFunction = 234, - UndefinedPreprocessorFunction = 235, - PreprocessorExtensionEvaluateFunctionFailed = 236, - PreprocessorExtensionGetVariableValueFailed = 237, - InvalidManifestContent = 238, - InvalidWixTransform = 239, - UnexpectedFileExtension = 240, - UnexpectedTableInPatch = 241, - InvalidProductVersion = 242, - InvalidKeypathChange = 243, - MissingValidatorExtension = 244, - InvalidValidatorMessageType = 245, - PatchWithoutTransforms = 246, - SingleExtensionSupported = 247, - DuplicateTransform = 248, - BaselineRequired = 249, - PreprocessorError = 250, - ExpectedArgument = 251, - PatchWithoutValidTransforms = 252, - ExpectedDecompiler = 253, - ExpectedTableInMergeModule = 254, - UnexpectedElementWithAttributeValue = 255, - ExpectedPatchIdInWixMsp = 256, - ExpectedMediaRowsInWixMsp = 257, - WixFileNotFound = 258, - ExpectedClientPatchIdInWixMsp = 259, - NewRowAddedInTable = 260, - PatchNotRemovable = 261, - PathTooLong = 262, - FileTooLarge = 263, - InvalidPlatformParameter = 264, - InvalidPlatformValue = 265, - IllegalValidationArguments = 266, - OrphanedComponent = 267, - IllegalCommandlineArgumentCombination = 268, - ProductCodeInvalidForTransform = 269, - InsertInvalidSequenceActionOrder = 270, - InsertSequenceNoSpace = 271, - MissingManifestForWin32Assembly = 272, - UnableToOpenModule = 273, - ExpectedAttributeWhenElementNotUnderElement = 274, - IllegalIdentifierLooksLikeFormatted = 275, - IllegalCodepageAttribute = 276, - IllegalCompressionLevel = 277, - TransformSchemaMismatch = 278, - DatabaseSchemaMismatch = 279, - ExpectedDirectoryGotFile = 280, - ExpectedFileGotDirectory = 281, - GacAssemblyNoStrongName = 282, - FileWriteError = 283, - InvalidCommandLineFileName = 284, - ExpectedParentWithAttribute = 285, - IllegalWarningIdAsError = 286, - ExpectedAttributeOrElement = 287, - DuplicateVariableDefinition = 288, - InvalidVariableDefinition = 289, - DuplicateCabinetName = 290, - DuplicateCabinetName2 = 291, - InvalidAddedFileRowWithoutSequence = 292, - DuplicateFileId = 293, - FullTempDirectory = 294, - CreateCabAddFileFailed = 296, - CreateCabInsufficientDiskSpace = 297, - UnresolvedBindReference = 298, - GACAssemblyIdentityWarning = 299, - IllegalCharactersInPath = 300, - ValidationFailedToOpenDatabase = 301, - MustSpecifyOutputWithMoreThanOneInput = 302, - IllegalSearchIdForParentDepth = 303, - IdentifierTooLongError = 304, - InvalidRemoveComponent = 305, - FinishCabFailed = 306, - InvalidExtensionType = 307, - ValidationFailedDueToMultilanguageMergeModule = 309, - ValidationFailedDueToInvalidPackage = 310, - InvalidStringForCodepage = 311, - InvalidEmbeddedUIFileName = 312, - UniqueFileSearchIdRequired = 313, - IllegalAttributeValueWhenNested = 314, - AdminImageRequired = 315, - SamePatchBaselineId = 316, - SameFileIdDifferentSource = 317, - HarvestSourceNotSpecified = 318, - OutputTargetNotSpecified = 319, - DuplicateCommandLineOptionInExtension = 320, - HarvestTypeNotFound = 321, - BothUpgradeCodesRequired = 322, - IllegalBinderClassName = 323, - SpecifiedBinderNotFound = 324, - CannotLoadBinderFileManager = 325, - CannotLoadLinkerExtension = 326, - UnableToGetAuthenticodeCertOfFile = 327, - UnableToGetAuthenticodeCertOfFileDownlevelOS = 328, - ReadOnlyOutputFile = 329, - CannotDefaultComponentId = 330, - ParentElementAttributeRequired = 331, - PreprocessorExtensionPragmaFailed = 333, - InvalidPreprocessorPragma = 334, - SmokeUnknownFileExtension = 335, - SmokeUnsupportedFileExtension = 336, - SmokeMalformedPath = 337, - InvalidStubExe = 338, - StubMissingWixburnSection = 339, - StubWixburnSectionTooSmall = 340, - MissingBundleInformation = 341, - UnexpectedGroupChild = 342, - OrderingReferenceLoopDetected = 343, - IdentifierNotFound = 344, - MergePlatformMismatch = 345, - IllegalRelativeLongFilename = 346, - IllegalAttributeValueWithLegalList = 347, - IllegalAttributeValueWithIllegalList = 348, - InvalidSummaryInfoCodePage = 349, - ValidationFailedDueToLowMsiEngine = 350, - DuplicateSourcesForOutput = 351, - UnableToReadPackageInformation = 352, - MultipleFilesMatchedWithOutputSpecification = 353, - InvalidBundle = 354, - BundleTooNew = 355, - WrongFileExtensionForNumberOfInputs = 356, - MediaTableCollision = 357, - InvalidCabinetTemplate = 358, - MaximumUncompressedMediaSizeTooLarge = 359, - ReservedNamespaceViolation = 362, - PerUserButAllUsersEquals1 = 363, - UnsupportedAllUsersValue = 364, - DisallowedMsiProperty = 365, - MissingOrInvalidModuleInstallerVersion = 366, - IllegalGeneratedGuidComponentUnversionedKeypath = 367, - IllegalGeneratedGuidComponentVersionedNonkeypath = 368, - DuplicateComponentGuids = 369, - DuplicateProviderDependencyKey = 370, - MissingDependencyVersion = 371, - UnexpectedElementWithAttribute = 372, - ExpectedAttributeWithElement = 373, - DuplicatedUiLocalization = 374, - MaximumCabinetSizeForLargeFileSplittingTooLarge = 375, - SplitCabinetCopyRegistrationFailed = 376, - SplitCabinetNameCollision = 377, - SplitCabinetInsertionFailed = 378, - InvalidPreprocessorFunctionAutoVersion = 379, - InvalidModuleOrBundleVersion = 380, - UnsupportedPlatformForElement = 381, - MissingMedia = 382, - IllegalYesNoAlwaysValue = 384, - TooDeeplyIncluded = 385, - TooManyColumnsInRealTable = 386, - InlineDirectorySyntaxRequiresPath = 387, - InsecureBundleFilename = 388, - PayloadMustBeRelativeToCache = 389, - MsiTransactionX86BeforeX64 = 390, - NoSourceFiles = 391, - WixiplSourceFileIsExclusive = 392, - UnableToConvertFieldToNumber = 393, - CouldNotDetermineProductCodeFromTransformSummaryInfo = 394, - IntermediatesMustBeCompiled = 395, - IntermediatesMustBeResolved = 396, - MissingBundleSearch = 397, - CircularSearchReference = 398, - UnknownSymbolType = 399, - IllegalInnerText = 400, - ExpectedAttributeWithValueWithOtherAttribute = 401, - PackagePayloadUnsupported = 402, - PackagePayloadUnsupported2 = 403, - MultiplePackagePayloads = 404, - MultiplePackagePayloads2 = 405, - MultiplePackagePayloads3 = 406, - MissingPackagePayload = 407, - ExpectedAttributeWithoutOtherAttributes = 408, - } - } -} diff --git a/src/WixToolset.Data/ISymbolDefinitionCreator.cs b/src/WixToolset.Data/ISymbolDefinitionCreator.cs deleted file mode 100644 index 93b10ce8..00000000 --- a/src/WixToolset.Data/ISymbolDefinitionCreator.cs +++ /dev/null @@ -1,11 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public interface ISymbolDefinitionCreator - { - void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition); - - bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition); - } -} diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs deleted file mode 100644 index 8333198f..00000000 --- a/src/WixToolset.Data/Identifier.cs +++ /dev/null @@ -1,77 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Diagnostics; - using SimpleJson; - - /// - /// Class to define the identifier and access for a symbol. - /// - [DebuggerDisplay("{Access} {Id,nq}")] - public class Identifier - { - public static Identifier Invalid = new Identifier(AccessModifier.Section, (string)null); - - [Obsolete] - public Identifier(string id, AccessModifier access) - { - this.Id = id; - this.Access = access; - } - - public Identifier(AccessModifier access, string id) - { - this.Access = access; - this.Id = id; - } - - public Identifier(AccessModifier access, params string[] ids) - { - this.Access = access; - this.Id = String.Join("/", ids); - } - - public Identifier(AccessModifier access, params object[] ids) - { - this.Access = access; - this.Id = String.Join("/", ids); - } - - public Identifier(AccessModifier access, int id) - { - this.Access = access; - this.Id = id.ToString(); - } - - /// - /// Access modifier for a symbol. - /// - public AccessModifier Access { get; } - - /// - /// Identifier for the symbol. - /// - public string Id { get; } - - internal static Identifier Deserialize(JsonObject jsonObject) - { - var id = jsonObject.GetValueOrDefault("id"); - var accessValue = jsonObject.GetValueOrDefault("access", "global"); - - return new Identifier(accessValue.AsAccessModifier(), id); - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "id", this.Id }, - { "access", this.Access.AsString() } - }; - - return jsonObject; - } - } -} diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs deleted file mode 100644 index 64f9810d..00000000 --- a/src/WixToolset.Data/Intermediate.cs +++ /dev/null @@ -1,484 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Reflection; - using SimpleJson; - - /// - /// Container class for an intermediate object. - /// - public sealed class Intermediate - { - private static readonly Version CurrentVersion = new Version("4.0.0.0"); - private const string WixOutputStreamName = "wix-ir.json"; - - private readonly Dictionary localizationsByCulture; - private readonly List sections; - - /// - /// Instantiate a new Intermediate. - /// - public Intermediate() - { - this.Id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); - this.localizationsByCulture = new Dictionary(StringComparer.OrdinalIgnoreCase); - this.sections = new List(); - } - - public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture) : this(id, level: null, sections, localizationsByCulture) - { - } - - public Intermediate(string id, string level, IEnumerable sections, IDictionary localizationsByCulture) - { - this.Id = id; - this.Level = level; - this.localizationsByCulture = (localizationsByCulture != null) ? new Dictionary(localizationsByCulture, StringComparer.OrdinalIgnoreCase) : new Dictionary(StringComparer.OrdinalIgnoreCase); - this.sections = (sections != null) ? new List(sections) : new List(); - } - - /// - /// Get the id for the intermediate. - /// - public string Id { get; } - - /// - /// Get the level of the intermediate. - /// - public string Level { get; private set; } - - /// - /// Get the localizations contained in this intermediate. - /// - public IReadOnlyCollection Localizations => this.localizationsByCulture.Values; - - /// - /// Get the sections contained in this intermediate. - /// - public IReadOnlyCollection Sections => this.sections; - - /// - /// Loads an intermediate from a path on disk. - /// - /// Path to intermediate file saved on disk. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - public static Intermediate Load(string path, bool suppressVersionCheck = false) - { - var creator = new SimpleSymbolDefinitionCreator(); - return Intermediate.Load(path, creator, suppressVersionCheck); - } - - /// - /// Loads an intermediate from a stream. - /// - /// Assembly with intermediate embedded in resource stream. - /// Name of resource stream. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - public static Intermediate Load(Assembly assembly, string resourceName, bool suppressVersionCheck = false) - { - var creator = new SimpleSymbolDefinitionCreator(); - return Intermediate.Load(assembly, resourceName, creator, suppressVersionCheck); - } - - /// - /// Loads an intermediate from a stream. - /// - /// Assembly with intermediate embedded in resource stream. - /// Name of resource stream. - /// ISymbolDefinitionCreator to use when reconstituting the intermediate. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - public static Intermediate Load(Assembly assembly, string resourceName, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) - { - using (var wixout = WixOutput.Read(assembly, resourceName)) - { - return Intermediate.LoadIntermediate(wixout, creator, suppressVersionCheck); - } - } - - /// - /// Loads an intermediate from a path on disk. - /// - /// Path to intermediate file saved on disk. - /// ISymbolDefinitionCreator to use when reconstituting the intermediate. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - public static Intermediate Load(string path, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) - { - using (var wixout = WixOutput.Read(path)) - { - return Intermediate.LoadIntermediate(wixout, creator, suppressVersionCheck); - } - } - - /// - /// Loads an intermediate from a WixOutput object. - /// - /// WixOutput object. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - public static Intermediate Load(WixOutput wixOutput, bool suppressVersionCheck = false) - { - var creator = new SimpleSymbolDefinitionCreator(); - return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); - } - - /// - /// Loads an intermediate from a WixOutput object. - /// - /// WixOutput object. - /// ISymbolDefinitionCreator to use when reconstituting the intermediate. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - public static Intermediate Load(WixOutput wixOutput, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) - { - return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); - } - - /// - /// Loads several intermediates from paths on disk using the same definitions. - /// - /// Paths to intermediate files saved on disk. - /// Returns the loaded intermediates - public static IReadOnlyList Load(IEnumerable intermediateFiles) - { - var creator = new SimpleSymbolDefinitionCreator(); - return Intermediate.Load(intermediateFiles, creator); - } - - /// - /// Loads several intermediates from paths on disk using the same definitions. - /// - /// Paths to intermediate files saved on disk. - /// ISymbolDefinitionCreator to use when reconstituting the intermediates. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediates - public static IReadOnlyList Load(IEnumerable intermediateFiles, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) - { - var jsons = new Queue(); - var intermediates = new List(); - - foreach (var path in intermediateFiles) - { - using (var wixout = WixOutput.Read(path)) - { - var data = wixout.GetData(WixOutputStreamName); - var json = Intermediate.LoadJson(data, wixout.Uri, suppressVersionCheck); - - Intermediate.LoadDefinitions(json, creator); - - jsons.Enqueue(new JsonWithPath { Json = json, Path = wixout.Uri }); - } - } - - while (jsons.Count > 0) - { - var jsonWithPath = jsons.Dequeue(); - - var intermediate = Intermediate.FinalizeLoad(jsonWithPath.Json, jsonWithPath.Path, creator); - - intermediates.Add(intermediate); - } - - return intermediates; - } - - /// - /// Adds a section to the intermedaite. - /// - /// Section to add to the intermediate. - /// Section added to the intermediate. - public IntermediateSection AddSection(IntermediateSection section) - { - this.sections.Add(section); - return section; - } - - /// - /// Removes a section from the intermediate. - /// - /// Section to remove. - /// True if the section was removed; otherwise false. - public bool RemoveSection(IntermediateSection section) - { - return this.sections.Remove(section); - } - - /// - /// Updates the intermediate level to the specified level. - /// - /// Intermediate level. - public void UpdateLevel(string level) - { - this.Level = String.IsNullOrEmpty(this.Level) ? level : String.Concat(this.Level, ";", level); - } - - /// - /// Returns whether a specifed intermediate level has been set for this intermediate. - /// - /// Intermediate level. - /// True if the specifed intermediate level has been set for this intermediate. - public bool HasLevel(string level) - { - return this.Level?.Contains(level) == true; - } - - /// - /// Saves an intermediate to a path on disk. - /// - /// Path to save intermediate file to disk. - public void Save(string path) - { - Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); - - using (var wixout = WixOutput.Create(path)) - { - this.Save(wixout); - } - } - - /// - /// Saves an intermediate to a WixOutput. - /// - /// Destination to save. - public void Save(WixOutput wixout) - { - this.SaveEmbedFiles(wixout); - - this.SaveIR(wixout); - } - - /// - /// Loads an intermediate from a WixOutput. - /// - /// Source to load from. - /// ISymbolDefinitionCreator to use when reconstituting the intermediate. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded intermediate. - private static Intermediate LoadIntermediate(WixOutput wixout, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) - { - var data = wixout.GetData(WixOutputStreamName); - var json = Intermediate.LoadJson(data, wixout.Uri, suppressVersionCheck); - - Intermediate.LoadDefinitions(json, creator); - - return Intermediate.FinalizeLoad(json, wixout.Uri, creator); - } - - /// - /// Loads json form of intermediate. - /// - /// Source to load from. - /// Path name of intermediate file. - /// Suppress checking for wix.dll version mismatches. - /// Returns the loaded json. - private static JsonObject LoadJson(string json, Uri baseUri, bool suppressVersionCheck) - { - var jsonObject = SimpleJson.DeserializeObject(json) as JsonObject; - - if (!suppressVersionCheck) - { - var versionJson = jsonObject.GetValueOrDefault("version"); - - if (!Version.TryParse(versionJson, out var version) || !Intermediate.CurrentVersion.Equals(version)) - { - throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(baseUri.AbsoluteUri), "intermediate", versionJson, Intermediate.CurrentVersion.ToString())); - } - } - - return jsonObject; - } - - /// - /// Loads custom definitions in intermediate json into the creator. - /// - /// Json version of intermediate. - /// ISymbolDefinitionCreator to use when reconstituting the intermediate. - private static void LoadDefinitions(JsonObject json, ISymbolDefinitionCreator creator) - { - var definitionsJson = json.GetValueOrDefault("definitions"); - - if (definitionsJson != null) - { - foreach (JsonObject definitionJson in definitionsJson) - { - var definition = IntermediateSymbolDefinition.Deserialize(definitionJson); - creator.AddCustomSymbolDefinition(definition); - } - } - } - - /// - /// Loads the sections and localization for the intermediate. - /// - /// Json version of intermediate. - /// Path to the intermediate. - /// ISymbolDefinitionCreator to use when reconstituting the intermediate. - /// The finalized intermediate. - private static Intermediate FinalizeLoad(JsonObject json, Uri baseUri, ISymbolDefinitionCreator creator) - { - var id = json.GetValueOrDefault("id"); - var level = json.GetValueOrDefault("level"); - - var sections = new List(); - - var sectionsJson = json.GetValueOrDefault("sections"); - foreach (JsonObject sectionJson in sectionsJson) - { - var section = IntermediateSection.Deserialize(creator, baseUri, sectionJson); - sections.Add(section); - } - - var localizations = new Dictionary(StringComparer.OrdinalIgnoreCase); - - var localizationsJson = json.GetValueOrDefault("localizations") ?? new JsonArray(); - foreach (JsonObject localizationJson in localizationsJson) - { - var localization = Localization.Deserialize(localizationJson); - localizations.Add(localization.Culture, localization); - } - - return new Intermediate(id, level, sections, localizations); - } - - private void SaveEmbedFiles(WixOutput wixout) - { - var embeddedFields = this.Sections.SelectMany(s => s.Symbols) - .SelectMany(t => t.Fields) - .Where(f => f?.Type == IntermediateFieldType.Path) - .Select(f => f.AsPath()) - .Where(f => f.Embed) - .ToList(); - - var savedEmbedFields = new Dictionary(StringComparer.OrdinalIgnoreCase); - var uniqueEntryNames = new HashSet(StringComparer.OrdinalIgnoreCase); - - foreach (var embeddedField in embeddedFields) - { - var key = String.Concat(embeddedField.BaseUri?.AbsoluteUri, "?", embeddedField.Path); - - if (savedEmbedFields.TryGetValue(key, out var existing)) - { - embeddedField.Path = existing.Path; - } - else - { - var entryName = CalculateUniqueEntryName(uniqueEntryNames, embeddedField.Path); - - if (embeddedField.BaseUri == null) - { - wixout.ImportDataStream(entryName, embeddedField.Path); - } - else // open the container specified in baseUri and copy the correct stream out of it. - { - using (var otherWixout = WixOutput.Read(embeddedField.BaseUri)) - using (var stream = otherWixout.GetDataStream(embeddedField.Path)) - using (var target = wixout.CreateDataStream(entryName)) - { - stream.CopyTo(target); - } - } - - embeddedField.Path = entryName; - - savedEmbedFields.Add(key, embeddedField); - } - } - } - - private void SaveIR(WixOutput wixout) - { - using (var writer = new StreamWriter(wixout.CreateDataStream(WixOutputStreamName))) - { - var jsonObject = new JsonObject - { - { "id", this.Id }, - { "level", this.Level }, - { "version", Intermediate.CurrentVersion.ToString() } - }; - - var sectionsJson = new JsonArray(this.Sections.Count); - foreach (var section in this.Sections) - { - var sectionJson = section.Serialize(); - sectionsJson.Add(sectionJson); - } - - jsonObject.Add("sections", sectionsJson); - - var customDefinitions = this.GetCustomDefinitionsInSections(); - - if (customDefinitions.Count > 0) - { - var customDefinitionsJson = new JsonArray(customDefinitions.Count); - - foreach (var kvp in customDefinitions.OrderBy(d => d.Key)) - { - var customDefinitionJson = kvp.Value.Serialize(); - customDefinitionsJson.Add(customDefinitionJson); - } - - jsonObject.Add("definitions", customDefinitionsJson); - } - - if (this.Localizations.Any()) - { - var localizationsJson = new JsonArray(); - foreach (var localization in this.Localizations) - { - var localizationJson = localization.Serialize(); - localizationsJson.Add(localizationJson); - } - - jsonObject.Add("localizations", localizationsJson); - } - - var json = SimpleJson.SerializeObject(jsonObject); - writer.Write(json); - } - } - - private static string CalculateUniqueEntryName(ISet entryNames, string path) - { - var filename = Path.GetFileName(path); - var entryName = "wix-ir/" + filename; - var i = 0; - - while (!entryNames.Add(entryName)) - { - entryName = $"wix-ir/{filename}-{++i}"; - } - - return entryName; - } - - private Dictionary GetCustomDefinitionsInSections() - { - var customDefinitions = new Dictionary(); - - foreach (var symbol in this.Sections.SelectMany(s => s.Symbols).Where(t => t.Definition.Type == SymbolDefinitionType.MustBeFromAnExtension)) - { - if (!customDefinitions.ContainsKey(symbol.Definition.Name)) - { - customDefinitions.Add(symbol.Definition.Name, symbol.Definition); - } - } - - return customDefinitions; - } - - private struct JsonWithPath - { - public JsonObject Json { get; set; } - - public Uri Path { get; set; } - } - } -} diff --git a/src/WixToolset.Data/IntermediateField.cs b/src/WixToolset.Data/IntermediateField.cs deleted file mode 100644 index 2310f447..00000000 --- a/src/WixToolset.Data/IntermediateField.cs +++ /dev/null @@ -1,56 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Diagnostics; - using SimpleJson; - - [DebuggerDisplay("Name={Name,nq} Type={Type} Value={Value?.AsString()}")] - public class IntermediateField - { - public IntermediateField(IntermediateFieldDefinition definition) => this.Definition = definition; - - public IntermediateFieldDefinition Definition { get; } - - public string Name => this.Definition.Name; - - public IntermediateFieldType Type => this.Definition.Type; - - public string Context => this.Value?.Context; - - public IntermediateFieldValue PreviousValue => this.Value?.PreviousValue; - - internal IntermediateFieldValue Value { get; set; } - - public static explicit operator bool(IntermediateField field) => field.AsBool(); - - public static explicit operator bool? (IntermediateField field) => field.AsNullableBool(); - - public static explicit operator long(IntermediateField field) => field.AsLargeNumber(); - - public static explicit operator long?(IntermediateField field) => field.AsNullableLargeNumber(); - - public static explicit operator int(IntermediateField field) => field.AsNumber(); - - public static explicit operator int? (IntermediateField field) => field.AsNullableNumber(); - - public static explicit operator string(IntermediateField field) => field.AsString(); - - internal static IntermediateField Deserialize(IntermediateFieldDefinition definition, Uri baseUri, JsonObject jsonObject) - { - IntermediateField field = null; - - if (jsonObject != null) - { - field = new IntermediateField(definition); - - field.Value = IntermediateFieldValue.Deserialize(jsonObject, baseUri, definition.Type); - } - - return field; - } - - internal JsonObject Serialize() => this.Value?.Serialize(); - } -} diff --git a/src/WixToolset.Data/IntermediateFieldContext.cs b/src/WixToolset.Data/IntermediateFieldContext.cs deleted file mode 100644 index 785a959f..00000000 --- a/src/WixToolset.Data/IntermediateFieldContext.cs +++ /dev/null @@ -1,38 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public class IntermediateFieldContext : IDisposable - { - private readonly string previous; - private bool disposed; - - public IntermediateFieldContext(string context) - { - this.previous = IntermediateFieldExtensions.valueContext; - - IntermediateFieldExtensions.valueContext = context; - } - - public void Dispose() - { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - if (!this.disposed) - { - if (disposing) - { - IntermediateFieldExtensions.valueContext = this.previous; - } - - this.disposed = true; - } - } - } -} diff --git a/src/WixToolset.Data/IntermediateFieldDefinition.cs b/src/WixToolset.Data/IntermediateFieldDefinition.cs deleted file mode 100644 index 5e1d8f29..00000000 --- a/src/WixToolset.Data/IntermediateFieldDefinition.cs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public enum IntermediateFieldType - { - String, - Bool, - Number, - LargeNumber, - Path, - } - - public class IntermediateFieldDefinition - { - public IntermediateFieldDefinition(string name, IntermediateFieldType type) - { - this.Name = name; - this.Type = type; - } - - public string Name { get; } - - public IntermediateFieldType Type { get; } - } -} diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs deleted file mode 100644 index c70eb230..00000000 --- a/src/WixToolset.Data/IntermediateFieldExtensions.cs +++ /dev/null @@ -1,481 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public static class IntermediateFieldExtensions - { - [ThreadStatic] - internal static string valueContext; - - public static bool IsNull(this IntermediateField field) => field?.Value?.Data == null; - - public static bool AsBool(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return false; - } - - switch (field.Definition.Type) - { - case IntermediateFieldType.Bool: - return field.Value.AsBool(); - - case IntermediateFieldType.LargeNumber: - case IntermediateFieldType.Number: - return field.Value.AsLargeNumber() != 0; - - case IntermediateFieldType.String: - return !String.IsNullOrEmpty(field.Value.AsString()); - - case IntermediateFieldType.Path: - return !String.IsNullOrEmpty(field.Value.AsPath()?.Path); - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); - } - } - - public static bool? AsNullableBool(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return null; - } - - return field.AsBool(); - } - - public static long AsLargeNumber(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return 0; - } - - switch (field.Definition.Type) - { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? 1 : 0; - - case IntermediateFieldType.LargeNumber: - case IntermediateFieldType.Number: - return field.Value.AsLargeNumber(); - - case IntermediateFieldType.String: - return Convert.ToInt64(field.Value.AsString()); - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to large number"); - } - } - - public static long? AsNullableLargeNumber(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return null; - } - - return field.AsLargeNumber(); - } - - public static int AsNumber(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return 0; - } - - switch (field.Definition.Type) - { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? 1 : 0; - - case IntermediateFieldType.LargeNumber: - case IntermediateFieldType.Number: - return field.Value.AsNumber(); - - case IntermediateFieldType.String: - return Convert.ToInt32(field.Value.AsString()); - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); - } - } - - public static int? AsNullableNumber(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return null; - } - - return field.AsNumber(); - } - - public static IntermediateFieldPathValue AsPath(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return null; - } - - switch (field.Definition.Type) - { - case IntermediateFieldType.String: - return new IntermediateFieldPathValue { Path = field.Value.AsString() }; - - case IntermediateFieldType.Path: - return field.Value.AsPath(); - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); - } - } - - public static string AsString(this IntermediateField field) - { - if (field == null || field.Value == null || field.Value.Data == null) - { - return null; - } - - switch (field.Definition.Type) - { - case IntermediateFieldType.Bool: - return field.Value.AsBool() ? "true" : "false"; - - case IntermediateFieldType.LargeNumber: - case IntermediateFieldType.Number: - return field.Value.AsLargeNumber().ToString(); - - case IntermediateFieldType.String: - return field.Value.AsString(); - - case IntermediateFieldType.Path: - return field.Value.AsPath()?.Path; - - default: - throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); - } - } - - public static object AsObject(this IntermediateField field) - { - return field?.Value.Data; - } - - public static IntermediateField Set(this IntermediateField field, bool value) - { - object data; - - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - - switch (field.Type) - { - case IntermediateFieldType.Bool: - data = value; - break; - - case IntermediateFieldType.LargeNumber: - data = value ? (long)1 : (long)0; - break; - - case IntermediateFieldType.Number: - data = value ? 1 : 0; - break; - - case IntermediateFieldType.Path: - throw new ArgumentException($"Cannot convert bool '{value}' to a 'Path' field type.", nameof(value)); - - case IntermediateFieldType.String: - data = value ? "true" : "false"; - break; - - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); - }; - - return AssignFieldValue(field, data); - } - - public static IntermediateField Set(this IntermediateField field, bool? value) - { - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - - return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); - } - - public static IntermediateField Set(this IntermediateField field, long value) - { - object data; - - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - - switch (field.Type) - { - case IntermediateFieldType.Bool: - data = (value != 0); - break; - - case IntermediateFieldType.LargeNumber: - data = value; - break; - - case IntermediateFieldType.Number: - data = (int)value; - break; - - case IntermediateFieldType.Path: - throw new ArgumentException($"Cannot convert large number '{value}' to a 'Path' field type.", nameof(value)); - - case IntermediateFieldType.String: - data = value.ToString(); - break; - - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); - }; - - return AssignFieldValue(field, data); - } - - public static IntermediateField Set(this IntermediateField field, long? value) - { - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - - return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); - } - - public static IntermediateField Set(this IntermediateField field, int value) - { - object data; - - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - - switch (field.Type) - { - case IntermediateFieldType.Bool: - data = (value != 0); - break; - - case IntermediateFieldType.LargeNumber: - data = (long)value; - break; - - case IntermediateFieldType.Number: - data = value; - break; - - case IntermediateFieldType.Path: - throw new ArgumentException($"Cannot convert number '{value}' to a 'Path' field type.", nameof(value)); - - case IntermediateFieldType.String: - data = value.ToString(); - break; - - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); - }; - - return AssignFieldValue(field, data); - } - - public static IntermediateField Set(this IntermediateField field, int? value) - { - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - - return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldPathValue value) - { - object data; - - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - else if (value == null) // null is always allowed. - { - data = null; - } - else - { - switch (field.Type) - { - case IntermediateFieldType.Bool: - throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'bool' field type.", nameof(value)); - - case IntermediateFieldType.LargeNumber: - throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'large number' field type.", nameof(value)); - - case IntermediateFieldType.Number: - throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'number' field type.", nameof(value)); - - case IntermediateFieldType.Path: - data = value; - break; - - case IntermediateFieldType.String: - data = value.Path; - break; - - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); - } - } - - return AssignFieldValue(field, data); - } - - public static IntermediateField Set(this IntermediateField field, string value) - { - object data; - - if (field == null) - { - throw new ArgumentNullException(nameof(field)); - } - else if (value == null) // Null is always allowed. - { - data = null; - } - else - { - switch (field.Type) - { - case IntermediateFieldType.Bool: - if (value.Equals("yes", StringComparison.OrdinalIgnoreCase) || value.Equals("true", StringComparison.OrdinalIgnoreCase)) - { - data = true; - } - else if (value.Equals("no", StringComparison.OrdinalIgnoreCase) || value.Equals("false", StringComparison.OrdinalIgnoreCase)) - { - data = false; - } - else - { - throw new ArgumentException($"Cannot convert string '{value}' to a 'bool' field type.", nameof(value)); - } - break; - - case IntermediateFieldType.LargeNumber: - if (Int64.TryParse(value, out var largeNumber)) - { - data = largeNumber; - } - else - { - throw new ArgumentException($"Cannot convert string '{value}' to a 'large number' field type.", nameof(value)); - } - break; - - case IntermediateFieldType.Number: - if (Int32.TryParse(value, out var number)) - { - data = number; - } - else - { - throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", field.Name); - } - break; - - case IntermediateFieldType.Path: - data = new IntermediateFieldPathValue { Path = value }; - break; - - case IntermediateFieldType.String: - data = value; - break; - - default: - throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); - } - } - - return AssignFieldValue(field, data); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, bool value) - { - return EnsureField(field, definition).Set(value); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, bool? value) - { - return EnsureField(field, definition).Set(value); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, long value) - { - return EnsureField(field, definition).Set(value); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, long? value) - { - return EnsureField(field, definition).Set(value); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, int value) - { - return EnsureField(field, definition).Set(value); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, int? value) - { - return EnsureField(field, definition).Set(value); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, IntermediateFieldPathValue value) - { - return EnsureField(field, definition).Set(value); - } - - public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, string value) - { - return EnsureField(field, definition).Set(value); - } - - public static void Overwrite(this IntermediateField field, string value) => field.Value.Data = value; - - private static IntermediateField AssignFieldValue(IntermediateField field, object data) - { - field.Value = new IntermediateFieldValue - { - Context = valueContext, - Data = data, - PreviousValue = field.Value - }; - - return field; - } - - private static IntermediateField EnsureField(IntermediateField field, IntermediateFieldDefinition definition) - { - return field ?? new IntermediateField(definition); - } - } -} diff --git a/src/WixToolset.Data/IntermediateFieldPathValue.cs b/src/WixToolset.Data/IntermediateFieldPathValue.cs deleted file mode 100644 index a8d2735a..00000000 --- a/src/WixToolset.Data/IntermediateFieldPathValue.cs +++ /dev/null @@ -1,26 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public class IntermediateFieldPathValue - { - /// - /// Indicates whether to embed the path to the file when the intermediate field is saved. - /// - public bool Embed { get; set; } - - /// - /// Gets the base URI of the path field. - /// - /// The base URI of the path field. - public Uri BaseUri { get; set; } - - /// - /// Gets or sets the data for this field. - /// - /// Data in the field. - public string Path { get; set; } - } -} diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs deleted file mode 100644 index 84a23931..00000000 --- a/src/WixToolset.Data/IntermediateFieldValue.cs +++ /dev/null @@ -1,146 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Diagnostics; - using SimpleJson; - - [DebuggerDisplay("{Data}")] - public class IntermediateFieldValue - { - public string Context { get; internal set; } - - internal object Data { get; set; } - - public IntermediateFieldValue PreviousValue { get; internal set; } - - public static explicit operator bool(IntermediateFieldValue value) => value.AsBool(); - - public static explicit operator bool?(IntermediateFieldValue value) => value.AsNullableBool(); - - public static explicit operator int(IntermediateFieldValue value) => value.AsNumber(); - - public static explicit operator int?(IntermediateFieldValue value) => value.AsNullableNumber(); - - public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath(); - - public static explicit operator string(IntermediateFieldValue value) => value.AsString(); - - internal static IntermediateFieldValue Deserialize(JsonObject jsonObject, Uri baseUri, IntermediateFieldType type) - { - var context = jsonObject.GetValueOrDefault("context"); - if (!jsonObject.TryGetValue("data", out var data)) - { - throw new ArgumentException(); - } - - var value = data; - - switch (value) - { - case int intData: - switch (type) - { - case IntermediateFieldType.Bool: - value = intData != 0; - break; - - case IntermediateFieldType.LargeNumber: - value = Convert.ToInt64(data); - break; - - case IntermediateFieldType.Path: - case IntermediateFieldType.String: - value = intData.ToString(); - break; - } - break; - - case long longData: - switch (type) - { - case IntermediateFieldType.Bool: - value = longData != 0; - break; - - case IntermediateFieldType.Number: - value = Convert.ToInt32(longData); - break; - - case IntermediateFieldType.Path: - case IntermediateFieldType.String: - value = longData.ToString(); - break; - } - break; - - case JsonObject jsonData: - jsonData.TryGetValue("embed", out var embed); - - value = new IntermediateFieldPathValue - { - BaseUri = (embed != null) ? baseUri : null, - Embed = embed != null, - Path = jsonData.GetValueOrDefault("path"), - }; - break; - - // Nothing to do for this case, so leave it out. - // case string stringData: - // break; - } - - var previousValueJson = jsonObject.GetValueOrDefault("prev"); - var previousValue = (previousValueJson == null) ? null : IntermediateFieldValue.Deserialize(previousValueJson, baseUri, type); - - return new IntermediateFieldValue - { - Context = context, - Data = value, - PreviousValue = previousValue - }; - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject(); - - if (!String.IsNullOrEmpty(this.Context)) - { - jsonObject.Add("context", this.Context); - } - - if (this.Data is IntermediateFieldPathValue pathField) - { - var jsonData = new JsonObject(); - - // pathField.BaseUri is set during load, not saved. - - if (pathField.Embed) - { - jsonData.Add("embed", "true"); - } - - if (!String.IsNullOrEmpty(pathField.Path)) - { - jsonData.Add("path", pathField.Path); - } - - jsonObject.Add("data", jsonData); - } - else - { - jsonObject.Add("data", this.Data); - } - - if (this.PreviousValue != null) - { - var previousValueJson = this.PreviousValue.Serialize(); - jsonObject.Add("prev", previousValueJson); - } - - return jsonObject; - } - } -} diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs deleted file mode 100644 index 8ff923a7..00000000 --- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs +++ /dev/null @@ -1,161 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public static class IntermediateFieldValueExtensions - { - public static bool AsBool(this IntermediateFieldValue value) - { - if (value.Data is bool b) - { - return b; - } - else if (value.Data is int n) - { - return n != 0; - } - else if (value.Data is long l) - { - return l != 0; - } - else if (value.Data is string s) - { - if (s.Equals("yes", StringComparison.OrdinalIgnoreCase) || s.Equals("true", StringComparison.OrdinalIgnoreCase)) - { - return true; - } - else if (s.Equals("no", StringComparison.OrdinalIgnoreCase) || s.Equals("false", StringComparison.OrdinalIgnoreCase)) - { - return false; - } - } - - return (bool)value.Data; - } - - public static bool? AsNullableBool(this IntermediateFieldValue value) - { - if (value?.Data == null) - { - return null; - } - - return value.AsBool(); - } - - public static long AsLargeNumber(this IntermediateFieldValue value) - { - if (value.Data is long l) - { - return l; - } - else if (value.Data is int n) - { - return n; - } - else if (value.Data is bool b) - { - return b ? 1 : 0; - } - else if (value.Data is string s) - { - try - { - return Convert.ToInt32(s); - } - catch (FormatException) - { - throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s)); - } - } - - return (long)value.Data; - } - - public static long? AsNullableLargeNumber(this IntermediateFieldValue value) - { - if (value?.Data == null) - { - return null; - } - - return value.AsLargeNumber(); - } - - public static int AsNumber(this IntermediateFieldValue value) - { - if (value.Data is int n) - { - return n; - } - else if (value.Data is long l) - { - return (int)l; - } - else if (value.Data is bool b) - { - return b ? 1 : 0; - } - else if (value.Data is string s) - { - try - { - return Convert.ToInt32(s); - } - catch (FormatException) - { - throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s)); - } - } - - return (int)value.Data; - } - - public static int? AsNullableNumber(this IntermediateFieldValue value) - { - if (value?.Data == null) - { - return null; - } - - return value.AsNumber(); - } - - public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) - { - return (IntermediateFieldPathValue)value?.Data; - } - - public static string AsString(this IntermediateFieldValue value) - { - if (value?.Data == null) - { - return null; - } - else if (value.Data is string s) - { - return s; - } - else if (value.Data is int n) - { - return n.ToString(); - } - else if (value.Data is long l) - { - return l.ToString(); - } - else if (value.Data is bool b) - { - return b ? "true" : "false"; - } - else if (value.Data is IntermediateFieldPathValue p) - { - return p.Path; - } - - return (string)value.Data; - } - } -} diff --git a/src/WixToolset.Data/IntermediateLevels.cs b/src/WixToolset.Data/IntermediateLevels.cs deleted file mode 100644 index 64c19ae1..00000000 --- a/src/WixToolset.Data/IntermediateLevels.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace WixToolset.Data -{ - public static class IntermediateLevels - { - public const string Compiled = "compiled"; - public const string Combined = "combined"; - public const string Linked = "linked"; - public const string Resolved = "resolved"; - } -} diff --git a/src/WixToolset.Data/IntermediateSection.cs b/src/WixToolset.Data/IntermediateSection.cs deleted file mode 100644 index b9157875..00000000 --- a/src/WixToolset.Data/IntermediateSection.cs +++ /dev/null @@ -1,139 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using SimpleJson; - - /// - /// Section in an intermediate file. - /// - public class IntermediateSection - { - private readonly List symbols; - - /// - /// Creates a new section as part of an intermediate. - /// - /// Identifier for section. - /// Type of section. - /// Optional compilation identifier - public IntermediateSection(string id, SectionType type, string compilationId = null) - { - this.Id = id; - this.Type = type; - this.CompilationId = compilationId; - this.symbols = new List(); - } - - /// - /// Gets the identifier for the section. - /// - /// Section identifier. - public string Id { get; } - - /// - /// Gets the type of the section. - /// - /// Type of section. - public SectionType Type { get; } - - /// - /// Gets and sets the identifier of the compilation of the source file containing the section. - /// - public string CompilationId { get; } - - /// - /// Gets and sets the identifier of the library that combined the section. - /// - public string LibraryId { get; private set; } - - /// - /// Symbols in the section. - /// - public IReadOnlyCollection Symbols => this.symbols; - - /// - /// Adds a symbol to the section. - /// - /// Type of IntermediateSymbol to add to the section. - /// Symbol to add to the section. - /// Symbol added to the section. - public T AddSymbol(T symbol) where T : IntermediateSymbol - { - this.symbols.Add(symbol); - return symbol; - } - - /// - /// Assigns the section to a library. - /// - /// Identifier of the library. - public void AssignToLibrary(string libraryId) - { - this.LibraryId = libraryId; - } - - /// - /// Removes a symbol from the section. - /// - /// Symbol to remove. - /// True if the symbol was removed; otherwise false. - public bool RemoveSymbol(IntermediateSymbol symbol) - { - return this.symbols.Remove(symbol); - } - - /// - /// Parse a section from the JSON data. - /// - internal static IntermediateSection Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) - { - var id = jsonObject.GetValueOrDefault("id"); - var type = jsonObject.GetEnumOrDefault("type", SectionType.Unknown); - - if (SectionType.Unknown == type) - { - throw new ArgumentException("JSON object is not a valid section, unknown section type", nameof(type)); - } - - var section = new IntermediateSection(id, type); - - var symbolsJson = jsonObject.GetValueOrDefault("symbols"); - - foreach (JsonObject symbolJson in symbolsJson) - { - var symbol = IntermediateSymbol.Deserialize(creator, baseUri, symbolJson); - section.symbols.Add(symbol); - } - - return section; - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "type", this.Type.ToString().ToLowerInvariant() } - }; - - if (!String.IsNullOrEmpty(this.Id)) - { - jsonObject.Add("id", this.Id); - } - - var symbolsJson = new JsonArray(this.Symbols.Count); - - foreach (var symbol in this.Symbols) - { - var symbolJson = symbol.Serialize(); - symbolsJson.Add(symbolJson); - } - - jsonObject.Add("symbols", symbolsJson); - - return jsonObject; - } - } -} diff --git a/src/WixToolset.Data/IntermediateSymbol.cs b/src/WixToolset.Data/IntermediateSymbol.cs deleted file mode 100644 index 4be17094..00000000 --- a/src/WixToolset.Data/IntermediateSymbol.cs +++ /dev/null @@ -1,300 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Diagnostics; - using SimpleJson; - - /// - /// Intermediate symbol. - /// - [DebuggerDisplay("{DebuggerDisplay,nq}")] - public class IntermediateSymbol - { - private object tags; - - /// - /// Creates an intermediate symbol. - /// - /// Symbol definition. - public IntermediateSymbol(IntermediateSymbolDefinition definition) : this(definition, null, null) - { - } - - /// - /// Creates an intermediate symbol with source line number and identifier. - /// - /// Symbol definition. - /// Source line number. - /// Symbol identifier. - public IntermediateSymbol(IntermediateSymbolDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) - { - this.Definition = definition; - this.Fields = new IntermediateField[definition.FieldDefinitions.Length]; - this.SourceLineNumbers = sourceLineNumber; - this.Id = id; - } - - /// - /// Gets the symbol's definition. - /// - public IntermediateSymbolDefinition Definition { get; } - - /// - /// Gets the symbol's fields. - /// - public IntermediateField[] Fields { get; } - - /// - /// Gets the optional source line number of the symbol. - /// - public SourceLineNumber SourceLineNumbers { get; internal set; } - - /// - /// Gets the optional identifier for the symbol. - /// - public Identifier Id { get; internal set; } - - /// - /// Direct access by index to the symbol's fields. - /// - /// Index of the field to access. - /// Symbol's field. - public IntermediateField this[int index] => this.Fields[index]; - - private string DebuggerDisplay => $"{this.Definition?.Name} {this.Id?.Id}"; - - /// - /// Add a custom tag to the symbol. - /// - /// String tag to add to the symbol. - /// True if the tag was added; otherwise false if th tag was already present. - public bool AddTag(string add) - { - if (this.tags == null) - { - this.tags = add; - } - else if (this.tags is string tag) - { - if (tag == add) - { - return false; - } - - this.tags = new[] { tag, add }; - } - else - { - var tagsArray = (string[])this.tags; - var array = new string[tagsArray.Length + 1]; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == add) - { - return false; - } - - array[i] = tagsArray[i]; - } - - array[tagsArray.Length] = add; - - this.tags = array; - } - - return true; - } - - /// - /// Tests whether a symbol has a tag. - /// - /// String tag to find. - /// True if the symbol has the tag; otherwise false. - public bool HasTag(string has) - { - if (this.tags == null) - { - return false; - } - else if (this.tags is string tag) - { - return tag == has; - } - else - { - foreach (var element in (string[])this.tags) - { - if (element == has) - { - return true; - } - } - } - - return false; - } - - /// - /// Removes a tag from the symbol. - /// - /// String tag to remove. - /// True if the tag was removed; otherwise false if the tag was not present. - public bool RemoveTag(string remove) - { - if (this.tags is string tag) - { - if (tag == remove) - { - this.tags = null; - return true; - } - } - else if (this.tags is string[] tagsArray) - { - if (tagsArray.Length == 2) - { - if (tagsArray[0] == remove) - { - this.tags = tagsArray[1]; - return true; - } - else if (tagsArray[1] == remove) - { - this.tags = tagsArray[0]; - return true; - } - } - else - { - var array = new string[tagsArray.Length - 1]; - var arrayIndex = 0; - var found = false; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == remove) - { - found = true; - continue; - } - else if (arrayIndex == array.Length) - { - break; - } - - array[arrayIndex++] = tagsArray[i]; - } - - if (found) - { - this.tags = array; - return true; - } - } - } - - return false; - } - - internal static IntermediateSymbol Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) - { - var definitionName = jsonObject.GetValueOrDefault("type"); - var idJson = jsonObject.GetValueOrDefault("id"); - var sourceLineNumbersJson = jsonObject.GetValueOrDefault("ln"); - var fieldsJson = jsonObject.GetValueOrDefault("fields"); - var tagsJson = jsonObject.GetValueOrDefault("tags"); - - var id = (idJson == null) ? null : Identifier.Deserialize(idJson); - var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); - - if (!creator.TryGetSymbolDefinitionByName(definitionName, out var definition)) - { - throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); - } - - var symbol = definition.CreateSymbol(sourceLineNumbers, id); - - for (var i = 0; i < fieldsJson.Count && i < symbol.Fields.Length; ++i) - { - if (fieldsJson[i] is JsonObject fieldJson) - { - symbol.Fields[i] = IntermediateField.Deserialize(symbol.Definition.FieldDefinitions[i], baseUri, fieldJson); - } - } - - if (tagsJson == null || tagsJson.Count == 0) - { - } - else if (tagsJson.Count == 1) - { - symbol.tags = (string)tagsJson[0]; - } - else - { - var tags = new string[tagsJson.Count]; - - for (var i = 0; i < tagsJson.Count; ++i) - { - tags[i] = (string)tagsJson[i]; - } - - symbol.tags = tags; - } - - return symbol; - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "type", this.Definition.Name } - }; - - var idJson = this.Id?.Serialize(); - if (idJson != null) - { - jsonObject.Add("id", idJson); - } - - var lnJson = this.SourceLineNumbers?.Serialize(); - if (lnJson != null) - { - jsonObject.Add("ln", lnJson); - } - - var fieldsJson = new JsonArray(this.Fields.Length); - - foreach (var field in this.Fields) - { - var fieldJson = field?.Serialize(); - fieldsJson.Add(fieldJson); - } - - jsonObject.Add("fields", fieldsJson); - - if (this.tags is string || this.tags is string[]) - { - JsonArray tagsJson; - - if (this.tags is string tag) - { - tagsJson = new JsonArray(1) { tag }; - } - else - { - var array = (string[])this.tags; - tagsJson = new JsonArray(array.Length); - tagsJson.AddRange(array); - } - - jsonObject.Add("tags", tagsJson); - } - - return jsonObject; - } - } -} diff --git a/src/WixToolset.Data/IntermediateSymbolDefinition.cs b/src/WixToolset.Data/IntermediateSymbolDefinition.cs deleted file mode 100644 index dc913704..00000000 --- a/src/WixToolset.Data/IntermediateSymbolDefinition.cs +++ /dev/null @@ -1,270 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using SimpleJson; - - public class IntermediateSymbolDefinition - { - private object tags; - - public IntermediateSymbolDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - : this(SymbolDefinitionType.MustBeFromAnExtension, name, 0, fieldDefinitions, strongSymbolType) - { - } - - public IntermediateSymbolDefinition(string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - : this(SymbolDefinitionType.MustBeFromAnExtension, name, revision, fieldDefinitions, strongSymbolType) - { - } - - internal IntermediateSymbolDefinition(SymbolDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - : this(type, type.ToString(), 0, fieldDefinitions, strongSymbolType) - { - } - - private IntermediateSymbolDefinition(SymbolDefinitionType type, string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) - { - this.Type = type; - this.Name = name; - this.Revision = revision; - this.FieldDefinitions = fieldDefinitions; - this.StrongSymbolType = strongSymbolType ?? typeof(IntermediateSymbol); -#if DEBUG - if (this.StrongSymbolType != typeof(IntermediateSymbol) && !this.StrongSymbolType.IsSubclassOf(typeof(IntermediateSymbol))) { throw new ArgumentException(nameof(strongSymbolType)); } -#endif - } - - public int Revision { get; } - - public SymbolDefinitionType Type { get; } - - public string Name { get; } - - public IntermediateFieldDefinition[] FieldDefinitions { get; } - - private Type StrongSymbolType { get; } - - public IntermediateSymbol CreateSymbol(SourceLineNumber sourceLineNumber = null, Identifier id = null) - { - var symbol = (this.StrongSymbolType == typeof(IntermediateSymbol)) ? (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType, this) : (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType); - symbol.SourceLineNumbers = sourceLineNumber; - symbol.Id = id; - - return symbol; - } - - public bool AddTag(string add) - { - if (this.tags == null) - { - this.tags = add; - } - else if (this.tags is string tag) - { - if (tag == add) - { - return false; - } - - this.tags = new[] { tag, add }; - } - else - { - var tagsArray = (string[])this.tags; - var array = new string[tagsArray.Length + 1]; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == add) - { - return false; - } - - array[i] = tagsArray[i]; - } - - array[tagsArray.Length] = add; - - this.tags = array; - } - - return true; - } - - public bool HasTag(string has) - { - if (this.tags == null) - { - return false; - } - else if (this.tags is string tag) - { - return tag == has; - } - else - { - foreach (var element in (string[])this.tags) - { - if (element == has) - { - return true; - } - } - } - - return false; - } - - public bool RemoveTag(string remove) - { - if (this.tags is string tag) - { - if (tag == remove) - { - this.tags = null; - return true; - } - } - else if (this.tags is string[] tagsArray) - { - if (tagsArray.Length == 2) - { - if (tagsArray[0] == remove) - { - this.tags = tagsArray[1]; - return true; - } - else if (tagsArray[1] == remove) - { - this.tags = tagsArray[0]; - return true; - } - } - else - { - var array = new string[tagsArray.Length - 1]; - var arrayIndex = 0; - var found = false; - - for (var i = 0; i < tagsArray.Length; ++i) - { - if (tagsArray[i] == remove) - { - found = true; - continue; - } - else if (arrayIndex == array.Length) - { - break; - } - - array[arrayIndex++] = tagsArray[i]; - } - - if (found) - { - this.tags = array; - return true; - } - } - } - - return false; - } - - internal static IntermediateSymbolDefinition Deserialize(JsonObject jsonObject) - { - var name = jsonObject.GetValueOrDefault("name"); - var revision = jsonObject.GetValueOrDefault("rev", 0); - var definitionsJson = jsonObject.GetValueOrDefault("fields"); - var tagsJson = jsonObject.GetValueOrDefault("tags"); - - var fieldDefinitions = new IntermediateFieldDefinition[definitionsJson.Count]; - - for (var i = 0; i < definitionsJson.Count; ++i) - { - var definitionJson = (JsonObject)definitionsJson[i]; - var fieldName = definitionJson.GetValueOrDefault("name"); - var fieldType = definitionJson.GetEnumOrDefault("type", IntermediateFieldType.String); - fieldDefinitions[i] = new IntermediateFieldDefinition(fieldName, fieldType); - } - - var definition = new IntermediateSymbolDefinition(name, revision, fieldDefinitions, null); - - if (tagsJson == null || tagsJson.Count == 0) - { - } - else if (tagsJson.Count == 1) - { - definition.tags = (string)tagsJson[0]; - } - else - { - var tags = new string[tagsJson.Count]; - - for (var i = 0; i < tagsJson.Count; ++i) - { - tags[i] = (string)tagsJson[i]; - } - - definition.tags = tags; - } - - return definition; - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "name", this.Name } - }; - - if (this.Revision > 0) - { - jsonObject.Add("rev", this.Revision); - } - - var fieldsJson = new JsonArray(this.FieldDefinitions.Length); - - foreach (var fieldDefinition in this.FieldDefinitions) - { - var fieldJson = new JsonObject - { - { "name", fieldDefinition.Name }, - }; - - if (fieldDefinition.Type != IntermediateFieldType.String) - { - fieldJson.Add("type", fieldDefinition.Type.ToString().ToLowerInvariant()); - } - - fieldsJson.Add(fieldJson); - } - - jsonObject.Add("fields", fieldsJson); - - if (this.tags is string || this.tags is string[]) - { - JsonArray tagsJson; - - if (this.tags is string tag) - { - tagsJson = new JsonArray(1) { tag }; - } - else - { - var array = (string[])this.tags; - tagsJson = new JsonArray(array.Length); - tagsJson.AddRange(array); - } - - jsonObject.Add("tags", tagsJson); - } - - return jsonObject; - } - } -} diff --git a/src/WixToolset.Data/IntermediateSymbolExtensions.cs b/src/WixToolset.Data/IntermediateSymbolExtensions.cs deleted file mode 100644 index 10f0d7f0..00000000 --- a/src/WixToolset.Data/IntermediateSymbolExtensions.cs +++ /dev/null @@ -1,121 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public static class IntermediateSymbolExtensions - { - public static bool AsBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsBool() ?? false; - - public static bool? AsNullableBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableBool(); - - public static int AsNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNumber() ?? 0; - - public static int? AsNullableNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableNumber(); - - public static string AsString(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsString(); - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool value) - { - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool? value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, long value) - { - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, long? value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, int value) - { - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, int? value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, IntermediateFieldPathValue value) - { - if (value?.Path == null && value?.BaseUri == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - public static IntermediateField Set(this IntermediateSymbol symbol, int index, string value) - { - if (value == null && NoFieldMetadata(symbol, index)) - { - return symbol.Fields[index] = null; - } - - var definition = symbol.Definition.FieldDefinitions[index]; - - var field = symbol.Fields[index].Set(definition, value); - - return symbol.Fields[index] = field; - } - - private static bool NoFieldMetadata(IntermediateSymbol symbol, int index) - { - var field = symbol?.Fields[index]; - - return field?.Context == null && field?.PreviousValue == null; - } - } -} diff --git a/src/WixToolset.Data/Json/JsonObjectExtensions.cs b/src/WixToolset.Data/Json/JsonObjectExtensions.cs deleted file mode 100644 index bc52333c..00000000 --- a/src/WixToolset.Data/Json/JsonObjectExtensions.cs +++ /dev/null @@ -1,79 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using SimpleJson; - - internal static class JsonObjectExtensions - { - public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, bool value, bool defaultValue = default(bool)) - { - if (value != defaultValue) - { - jsonObject.Add(key, value); - } - - return jsonObject; - } - - public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, int value, int defaultValue = default(int)) - { - if (value != defaultValue) - { - jsonObject.Add(key, value); - } - - return jsonObject; - } - - public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, object value, object defaultValue = null) - { - if (value != defaultValue) - { - jsonObject.Add(key, value); - } - - return jsonObject; - } - - public static JsonObject AddIsNotNullOrEmpty(this JsonObject jsonObject, string key, string value) - { - if (!String.IsNullOrEmpty(value)) - { - jsonObject.Add(key, value); - } - - return jsonObject; - } - - public static bool GetValueOrDefault(this JsonObject jsonObject, string key, bool defaultValue) - { - return jsonObject.TryGetValue(key, out var value) ? Convert.ToBoolean(value) : defaultValue; - } - - public static int GetValueOrDefault(this JsonObject jsonObject, string key, int defaultValue) - { - return jsonObject.TryGetValue(key, out var value) ? Convert.ToInt32(value) : defaultValue; - } - - public static int? GetValueOrDefault(this JsonObject jsonObject, string key, int? defaultValue) - { - return jsonObject.TryGetValue(key, out var value) ? Convert.ToInt32(value) : defaultValue; - } - - public static T GetValueOrDefault(this JsonObject jsonObject, string key, T defaultValue = default(T)) where T : class - { - return jsonObject.TryGetValue(key, out var value) ? value as T : defaultValue; - } - - public static T GetEnumOrDefault(this JsonObject jsonObject, string key, T defaultValue) where T : struct - { -#if DEBUG - if (!typeof(T).IsEnum) { throw new ArgumentException("This method only supports enums.", nameof(T)); } -#endif - var value = jsonObject.GetValueOrDefault(key); - return Enum.TryParse(value, true, out T e) ? e : defaultValue; - } - } -} diff --git a/src/WixToolset.Data/Json/SimpleJson.cs b/src/WixToolset.Data/Json/SimpleJson.cs deleted file mode 100644 index 3d956f6e..00000000 --- a/src/WixToolset.Data/Json/SimpleJson.cs +++ /dev/null @@ -1,2127 +0,0 @@ -//----------------------------------------------------------------------- -// -// Copyright (c) 2011, The Outercurve Foundation. -// -// Licensed under the MIT License (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.opensource.org/licenses/mit-license.php -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Nathan Totten (ntotten.com), Jim Zimmerman (jimzimmerman.com) and Prabir Shrestha (prabir.me) -// https://github.com/facebook-csharp-sdk/simple-json -//----------------------------------------------------------------------- - -// VERSION: - -// NOTE: uncomment the following line to make SimpleJson class internal. -#define SIMPLE_JSON_INTERNAL - -// NOTE: uncomment the following line to make JsonArray and JsonObject class internal. -#define SIMPLE_JSON_OBJARRAYINTERNAL - -// NOTE: uncomment the following line to enable dynamic support. -//#define SIMPLE_JSON_DYNAMIC - -// NOTE: uncomment the following line to enable DataContract support. -//#define SIMPLE_JSON_DATACONTRACT - -// NOTE: uncomment the following line to enable IReadOnlyCollection and IReadOnlyList support. -//#define SIMPLE_JSON_READONLY_COLLECTIONS - -// NOTE: uncomment the following line to disable linq expressions/compiled lambda (better performance) instead of method.invoke(). -// define if you are using .net framework <= 3.0 or < WP7.5 -//#define SIMPLE_JSON_NO_LINQ_EXPRESSION - -// NOTE: uncomment the following line if you are compiling under Window Metro style application/library. -// usually already defined in properties -//#define NETFX_CORE; - -// If you are targetting WinStore, WP8 and NET4.5+ PCL make sure to #define SIMPLE_JSON_TYPEINFO; - -// original json parsing code from http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html - -#if NETFX_CORE -#define SIMPLE_JSON_TYPEINFO -#endif - -using System; -using System.CodeDom.Compiler; -using System.Collections; -using System.Collections.Generic; -#if !SIMPLE_JSON_NO_LINQ_EXPRESSION -using System.Linq.Expressions; -#endif -using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -#if SIMPLE_JSON_DYNAMIC -using System.Dynamic; -#endif -using System.Globalization; -using System.Reflection; -using System.Runtime.Serialization; -using System.Text; -using SimpleJson.Reflection; - -// ReSharper disable LoopCanBeConvertedToQuery -// ReSharper disable RedundantExplicitArrayCreation -// ReSharper disable SuggestUseVarKeywordEvident -namespace SimpleJson -{ - /// - /// Represents the json array. - /// - [GeneratedCode("simple-json", "1.0.0")] - [EditorBrowsable(EditorBrowsableState.Never)] - [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] -#if SIMPLE_JSON_OBJARRAYINTERNAL - internal -#else - public -#endif - class JsonArray : List - { - /// - /// Initializes a new instance of the class. - /// - public JsonArray() { } - - /// - /// Initializes a new instance of the class. - /// - /// The capacity of the json array. - public JsonArray(int capacity) : base(capacity) { } - - /// - /// The json representation of the array. - /// - /// The json representation of the array. - public override string ToString() - { - return SimpleJson.SerializeObject(this) ?? string.Empty; - } - } - - /// - /// Represents the json object. - /// - [GeneratedCode("simple-json", "1.0.0")] - [EditorBrowsable(EditorBrowsableState.Never)] - [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] -#if SIMPLE_JSON_OBJARRAYINTERNAL - internal -#else - public -#endif - class JsonObject : -#if SIMPLE_JSON_DYNAMIC - DynamicObject, -#endif - IDictionary - { - /// - /// The internal member dictionary. - /// - private readonly Dictionary _members; - - /// - /// Initializes a new instance of . - /// - public JsonObject() - { - _members = new Dictionary(); - } - - /// - /// Initializes a new instance of . - /// - /// The implementation to use when comparing keys, or null to use the default for the type of the key. - public JsonObject(IEqualityComparer comparer) - { - _members = new Dictionary(comparer); - } - - /// - /// Gets the at the specified index. - /// - /// - public object this[int index] - { - get { return GetAtIndex(_members, index); } - } - - internal static object GetAtIndex(IDictionary obj, int index) - { - if (obj == null) - throw new ArgumentNullException("obj"); - if (index >= obj.Count) - throw new ArgumentOutOfRangeException("index"); - int i = 0; - foreach (KeyValuePair o in obj) - if (i++ == index) return o.Value; - return null; - } - - /// - /// Adds the specified key. - /// - /// The key. - /// The value. - public void Add(string key, object value) - { - _members.Add(key, value); - } - - /// - /// Determines whether the specified key contains key. - /// - /// The key. - /// - /// true if the specified key contains key; otherwise, false. - /// - public bool ContainsKey(string key) - { - return _members.ContainsKey(key); - } - - /// - /// Gets the keys. - /// - /// The keys. - public ICollection Keys - { - get { return _members.Keys; } - } - - /// - /// Removes the specified key. - /// - /// The key. - /// - public bool Remove(string key) - { - return _members.Remove(key); - } - - /// - /// Tries the get value. - /// - /// The key. - /// The value. - /// - public bool TryGetValue(string key, out object value) - { - return _members.TryGetValue(key, out value); - } - - /// - /// Gets the values. - /// - /// The values. - public ICollection Values - { - get { return _members.Values; } - } - - /// - /// Gets or sets the with the specified key. - /// - /// - public object this[string key] - { - get { return _members[key]; } - set { _members[key] = value; } - } - - /// - /// Adds the specified item. - /// - /// The item. - public void Add(KeyValuePair item) - { - _members.Add(item.Key, item.Value); - } - - /// - /// Clears this instance. - /// - public void Clear() - { - _members.Clear(); - } - - /// - /// Determines whether [contains] [the specified item]. - /// - /// The item. - /// - /// true if [contains] [the specified item]; otherwise, false. - /// - public bool Contains(KeyValuePair item) - { - return _members.ContainsKey(item.Key) && _members[item.Key] == item.Value; - } - - /// - /// Copies to. - /// - /// The array. - /// Index of the array. - public void CopyTo(KeyValuePair[] array, int arrayIndex) - { - if (array == null) throw new ArgumentNullException("array"); - int num = Count; - foreach (KeyValuePair kvp in this) - { - array[arrayIndex++] = kvp; - if (--num <= 0) - return; - } - } - - /// - /// Gets the count. - /// - /// The count. - public int Count - { - get { return _members.Count; } - } - - /// - /// Gets a value indicating whether this instance is read only. - /// - /// - /// true if this instance is read only; otherwise, false. - /// - public bool IsReadOnly - { - get { return false; } - } - - /// - /// Removes the specified item. - /// - /// The item. - /// - public bool Remove(KeyValuePair item) - { - return _members.Remove(item.Key); - } - - /// - /// Gets the enumerator. - /// - /// - public IEnumerator> GetEnumerator() - { - return _members.GetEnumerator(); - } - - /// - /// Returns an enumerator that iterates through a collection. - /// - /// - /// An object that can be used to iterate through the collection. - /// - IEnumerator IEnumerable.GetEnumerator() - { - return _members.GetEnumerator(); - } - - /// - /// Returns a json that represents the current . - /// - /// - /// A json that represents the current . - /// - public override string ToString() - { - return SimpleJson.SerializeObject(this); - } - -#if SIMPLE_JSON_DYNAMIC - /// - /// Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. - /// - /// Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. - /// The result of the type conversion operation. - /// - /// Alwasy returns true. - /// - public override bool TryConvert(ConvertBinder binder, out object result) - { - // - if (binder == null) - throw new ArgumentNullException("binder"); - // - Type targetType = binder.Type; - - if ((targetType == typeof(IEnumerable)) || - (targetType == typeof(IEnumerable>)) || - (targetType == typeof(IDictionary)) || - (targetType == typeof(IDictionary))) - { - result = this; - return true; - } - - return base.TryConvert(binder, out result); - } - - /// - /// Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. - /// - /// Provides information about the deletion. - /// - /// Alwasy returns true. - /// - public override bool TryDeleteMember(DeleteMemberBinder binder) - { - // - if (binder == null) - throw new ArgumentNullException("binder"); - // - return _members.Remove(binder.Name); - } - - /// - /// Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. - /// - /// Provides information about the operation. - /// The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3. - /// The result of the index operation. - /// - /// Alwasy returns true. - /// - public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) - { - if (indexes == null) throw new ArgumentNullException("indexes"); - if (indexes.Length == 1) - { - result = ((IDictionary)this)[(string)indexes[0]]; - return true; - } - result = null; - return true; - } - - /// - /// Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. - /// - /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. - /// The result of the get operation. For example, if the method is called for a property, you can assign the property value to . - /// - /// Alwasy returns true. - /// - public override bool TryGetMember(GetMemberBinder binder, out object result) - { - object value; - if (_members.TryGetValue(binder.Name, out value)) - { - result = value; - return true; - } - result = null; - return true; - } - - /// - /// Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. - /// - /// Provides information about the operation. - /// The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. - /// The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. - /// - /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. - /// - public override bool TrySetIndex(SetIndexBinder binder, object[] indexes, object value) - { - if (indexes == null) throw new ArgumentNullException("indexes"); - if (indexes.Length == 1) - { - ((IDictionary)this)[(string)indexes[0]] = value; - return true; - } - return base.TrySetIndex(binder, indexes, value); - } - - /// - /// Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. - /// - /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. - /// The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". - /// - /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) - /// - public override bool TrySetMember(SetMemberBinder binder, object value) - { - // - if (binder == null) - throw new ArgumentNullException("binder"); - // - _members[binder.Name] = value; - return true; - } - - /// - /// Returns the enumeration of all dynamic member names. - /// - /// - /// A sequence that contains dynamic member names. - /// - public override IEnumerable GetDynamicMemberNames() - { - foreach (var key in Keys) - yield return key; - } -#endif - } -} - -namespace SimpleJson -{ - /// - /// This class encodes and decodes JSON strings. - /// Spec. details, see http://www.json.org/ - /// - /// JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). - /// All numbers are parsed to doubles. - /// - [GeneratedCode("simple-json", "1.0.0")] -#if SIMPLE_JSON_INTERNAL - internal -#else - public -#endif - static class SimpleJson - { - private const int TOKEN_NONE = 0; - private const int TOKEN_CURLY_OPEN = 1; - private const int TOKEN_CURLY_CLOSE = 2; - private const int TOKEN_SQUARED_OPEN = 3; - private const int TOKEN_SQUARED_CLOSE = 4; - private const int TOKEN_COLON = 5; - private const int TOKEN_COMMA = 6; - private const int TOKEN_STRING = 7; - private const int TOKEN_NUMBER = 8; - private const int TOKEN_TRUE = 9; - private const int TOKEN_FALSE = 10; - private const int TOKEN_NULL = 11; - private const int BUILDER_CAPACITY = 2000; - - private static readonly char[] EscapeTable; - private static readonly char[] EscapeCharacters = new char[] { '"', '\\', '\b', '\f', '\n', '\r', '\t' }; - private static readonly string EscapeCharactersString = new string(EscapeCharacters); - - static SimpleJson() - { - EscapeTable = new char[93]; - EscapeTable['"'] = '"'; - EscapeTable['\\'] = '\\'; - EscapeTable['\b'] = 'b'; - EscapeTable['\f'] = 'f'; - EscapeTable['\n'] = 'n'; - EscapeTable['\r'] = 'r'; - EscapeTable['\t'] = 't'; - } - - /// - /// Parses the string json into a value - /// - /// A JSON string. - /// An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false - public static object DeserializeObject(string json) - { - object obj; - if (TryDeserializeObject(json, out obj)) - return obj; - throw new SerializationException("Invalid JSON string"); - } - - /// - /// Try parsing the json string into a value. - /// - /// - /// A JSON string. - /// - /// - /// The object. - /// - /// - /// Returns true if successfull otherwise false. - /// - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] - public static bool TryDeserializeObject(string json, out object obj) - { - bool success = true; - if (json != null) - { - char[] charArray = json.ToCharArray(); - int index = 0; - obj = ParseValue(charArray, ref index, ref success); - } - else - obj = null; - - return success; - } - - public static object DeserializeObject(string json, Type type, IJsonSerializerStrategy jsonSerializerStrategy) - { - object jsonObject = DeserializeObject(json); - return type == null || jsonObject != null && ReflectionUtils.IsAssignableFrom(jsonObject.GetType(), type) - ? jsonObject - : (jsonSerializerStrategy ?? CurrentJsonSerializerStrategy).DeserializeObject(jsonObject, type); - } - - public static object DeserializeObject(string json, Type type) - { - return DeserializeObject(json, type, null); - } - - public static T DeserializeObject(string json, IJsonSerializerStrategy jsonSerializerStrategy) - { - return (T)DeserializeObject(json, typeof(T), jsonSerializerStrategy); - } - - public static T DeserializeObject(string json) - { - return (T)DeserializeObject(json, typeof(T), null); - } - - /// - /// Converts a IDictionary<string,object> / IList<object> object into a JSON string - /// - /// A IDictionary<string,object> / IList<object> - /// Serializer strategy to use - /// A JSON encoded string, or null if object 'json' is not serializable - public static string SerializeObject(object json, IJsonSerializerStrategy jsonSerializerStrategy) - { - StringBuilder builder = new StringBuilder(BUILDER_CAPACITY); - bool success = SerializeValue(jsonSerializerStrategy, json, builder); - return (success ? builder.ToString() : null); - } - - public static string SerializeObject(object json) - { - return SerializeObject(json, CurrentJsonSerializerStrategy); - } - - public static string EscapeToJavascriptString(string jsonString) - { - if (string.IsNullOrEmpty(jsonString)) - return jsonString; - - StringBuilder sb = new StringBuilder(); - char c; - - for (int i = 0; i < jsonString.Length;) - { - c = jsonString[i++]; - - if (c == '\\') - { - int remainingLength = jsonString.Length - i; - if (remainingLength >= 2) - { - char lookahead = jsonString[i]; - if (lookahead == '\\') - { - sb.Append('\\'); - ++i; - } - else if (lookahead == '"') - { - sb.Append("\""); - ++i; - } - else if (lookahead == 't') - { - sb.Append('\t'); - ++i; - } - else if (lookahead == 'b') - { - sb.Append('\b'); - ++i; - } - else if (lookahead == 'n') - { - sb.Append('\n'); - ++i; - } - else if (lookahead == 'r') - { - sb.Append('\r'); - ++i; - } - } - } - else - { - sb.Append(c); - } - } - return sb.ToString(); - } - - static IDictionary ParseObject(char[] json, ref int index, ref bool success) - { - IDictionary table = new JsonObject(); - int token; - - // { - NextToken(json, ref index); - - bool done = false; - while (!done) - { - token = LookAhead(json, index); - if (token == TOKEN_NONE) - { - success = false; - return null; - } - else if (token == TOKEN_COMMA) - NextToken(json, ref index); - else if (token == TOKEN_CURLY_CLOSE) - { - NextToken(json, ref index); - return table; - } - else - { - // name - string name = ParseString(json, ref index, ref success); - if (!success) - { - success = false; - return null; - } - // : - token = NextToken(json, ref index); - if (token != TOKEN_COLON) - { - success = false; - return null; - } - // value - object value = ParseValue(json, ref index, ref success); - if (!success) - { - success = false; - return null; - } - table[name] = value; - } - } - return table; - } - - static JsonArray ParseArray(char[] json, ref int index, ref bool success) - { - JsonArray array = new JsonArray(); - - // [ - NextToken(json, ref index); - - bool done = false; - while (!done) - { - int token = LookAhead(json, index); - if (token == TOKEN_NONE) - { - success = false; - return null; - } - else if (token == TOKEN_COMMA) - NextToken(json, ref index); - else if (token == TOKEN_SQUARED_CLOSE) - { - NextToken(json, ref index); - break; - } - else - { - object value = ParseValue(json, ref index, ref success); - if (!success) - return null; - array.Add(value); - } - } - return array; - } - - static object ParseValue(char[] json, ref int index, ref bool success) - { - switch (LookAhead(json, index)) - { - case TOKEN_STRING: - return ParseString(json, ref index, ref success); - case TOKEN_NUMBER: - return ParseNumber(json, ref index, ref success); - case TOKEN_CURLY_OPEN: - return ParseObject(json, ref index, ref success); - case TOKEN_SQUARED_OPEN: - return ParseArray(json, ref index, ref success); - case TOKEN_TRUE: - NextToken(json, ref index); - return true; - case TOKEN_FALSE: - NextToken(json, ref index); - return false; - case TOKEN_NULL: - NextToken(json, ref index); - return null; - case TOKEN_NONE: - break; - } - success = false; - return null; - } - - static string ParseString(char[] json, ref int index, ref bool success) - { - StringBuilder s = new StringBuilder(BUILDER_CAPACITY); - char c; - - EatWhitespace(json, ref index); - - // " - c = json[index++]; - bool complete = false; - while (!complete) - { - if (index == json.Length) - break; - - c = json[index++]; - if (c == '"') - { - complete = true; - break; - } - else if (c == '\\') - { - if (index == json.Length) - break; - c = json[index++]; - if (c == '"') - s.Append('"'); - else if (c == '\\') - s.Append('\\'); - else if (c == '/') - s.Append('/'); - else if (c == 'b') - s.Append('\b'); - else if (c == 'f') - s.Append('\f'); - else if (c == 'n') - s.Append('\n'); - else if (c == 'r') - s.Append('\r'); - else if (c == 't') - s.Append('\t'); - else if (c == 'u') - { - int remainingLength = json.Length - index; - if (remainingLength >= 4) - { - // parse the 32 bit hex into an integer codepoint - uint codePoint; - if (!(success = UInt32.TryParse(new string(json, index, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out codePoint))) - return ""; - - // convert the integer codepoint to a unicode char and add to string - if (0xD800 <= codePoint && codePoint <= 0xDBFF) // if high surrogate - { - index += 4; // skip 4 chars - remainingLength = json.Length - index; - if (remainingLength >= 6) - { - uint lowCodePoint; - if (new string(json, index, 2) == "\\u" && UInt32.TryParse(new string(json, index + 2, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out lowCodePoint)) - { - if (0xDC00 <= lowCodePoint && lowCodePoint <= 0xDFFF) // if low surrogate - { - s.Append((char)codePoint); - s.Append((char)lowCodePoint); - index += 6; // skip 6 chars - continue; - } - } - } - success = false; // invalid surrogate pair - return ""; - } - s.Append(ConvertFromUtf32((int)codePoint)); - // skip 4 chars - index += 4; - } - else - break; - } - } - else - s.Append(c); - } - if (!complete) - { - success = false; - return null; - } - return s.ToString(); - } - - private static string ConvertFromUtf32(int utf32) - { - // http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Char.cs.htm - if (utf32 < 0 || utf32 > 0x10FFFF) - throw new ArgumentOutOfRangeException("utf32", "The argument must be from 0 to 0x10FFFF."); - if (0xD800 <= utf32 && utf32 <= 0xDFFF) - throw new ArgumentOutOfRangeException("utf32", "The argument must not be in surrogate pair range."); - if (utf32 < 0x10000) - return new string((char)utf32, 1); - utf32 -= 0x10000; - return new string(new char[] { (char)((utf32 >> 10) + 0xD800), (char)(utf32 % 0x0400 + 0xDC00) }); - } - - static object ParseNumber(char[] json, ref int index, ref bool success) - { - EatWhitespace(json, ref index); - int lastIndex = GetLastIndexOfNumber(json, index); - int charLength = (lastIndex - index) + 1; - object returnNumber; - string str = new string(json, index, charLength); - if (str.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || str.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1) - { - double number; - success = double.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); - returnNumber = number; - } - else - { - long number; - success = long.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); - returnNumber = number; - } - index = lastIndex + 1; - return returnNumber; - } - - static int GetLastIndexOfNumber(char[] json, int index) - { - int lastIndex; - for (lastIndex = index; lastIndex < json.Length; lastIndex++) - if ("0123456789+-.eE".IndexOf(json[lastIndex]) == -1) break; - return lastIndex - 1; - } - - static void EatWhitespace(char[] json, ref int index) - { - for (; index < json.Length; index++) - if (" \t\n\r\b\f".IndexOf(json[index]) == -1) break; - } - - static int LookAhead(char[] json, int index) - { - int saveIndex = index; - return NextToken(json, ref saveIndex); - } - - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - static int NextToken(char[] json, ref int index) - { - EatWhitespace(json, ref index); - if (index == json.Length) - return TOKEN_NONE; - char c = json[index]; - index++; - switch (c) - { - case '{': - return TOKEN_CURLY_OPEN; - case '}': - return TOKEN_CURLY_CLOSE; - case '[': - return TOKEN_SQUARED_OPEN; - case ']': - return TOKEN_SQUARED_CLOSE; - case ',': - return TOKEN_COMMA; - case '"': - return TOKEN_STRING; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case '-': - return TOKEN_NUMBER; - case ':': - return TOKEN_COLON; - } - index--; - int remainingLength = json.Length - index; - // false - if (remainingLength >= 5) - { - if (json[index] == 'f' && json[index + 1] == 'a' && json[index + 2] == 'l' && json[index + 3] == 's' && json[index + 4] == 'e') - { - index += 5; - return TOKEN_FALSE; - } - } - // true - if (remainingLength >= 4) - { - if (json[index] == 't' && json[index + 1] == 'r' && json[index + 2] == 'u' && json[index + 3] == 'e') - { - index += 4; - return TOKEN_TRUE; - } - } - // null - if (remainingLength >= 4) - { - if (json[index] == 'n' && json[index + 1] == 'u' && json[index + 2] == 'l' && json[index + 3] == 'l') - { - index += 4; - return TOKEN_NULL; - } - } - return TOKEN_NONE; - } - - static bool SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, object value, StringBuilder builder) - { - bool success = true; - string stringValue = value as string; - if (stringValue != null) - success = SerializeString(stringValue, builder); - else - { - IDictionary dict = value as IDictionary; - if (dict != null) - { - success = SerializeObject(jsonSerializerStrategy, dict.Keys, dict.Values, builder); - } - else - { - IDictionary stringDictionary = value as IDictionary; - if (stringDictionary != null) - { - success = SerializeObject(jsonSerializerStrategy, stringDictionary.Keys, stringDictionary.Values, builder); - } - else - { - IEnumerable enumerableValue = value as IEnumerable; - if (enumerableValue != null) - success = SerializeArray(jsonSerializerStrategy, enumerableValue, builder); - else if (IsNumeric(value)) - success = SerializeNumber(value, builder); - else if (value is bool) - builder.Append((bool)value ? "true" : "false"); - else if (value == null) - builder.Append("null"); - else - { - object serializedObject; - success = jsonSerializerStrategy.TrySerializeNonPrimitiveObject(value, out serializedObject); - if (success) - SerializeValue(jsonSerializerStrategy, serializedObject, builder); - } - } - } - } - return success; - } - - static bool SerializeObject(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable keys, IEnumerable values, StringBuilder builder) - { - builder.Append("{"); - IEnumerator ke = keys.GetEnumerator(); - IEnumerator ve = values.GetEnumerator(); - bool first = true; - while (ke.MoveNext() && ve.MoveNext()) - { - object key = ke.Current; - object value = ve.Current; - if (!first) - builder.Append(","); - string stringKey = key as string; - if (stringKey != null) - SerializeString(stringKey, builder); - else - if (!SerializeValue(jsonSerializerStrategy, value, builder)) return false; - builder.Append(":"); - if (!SerializeValue(jsonSerializerStrategy, value, builder)) - return false; - first = false; - } - builder.Append("}"); - return true; - } - - static bool SerializeArray(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable anArray, StringBuilder builder) - { - builder.Append("["); - bool first = true; - foreach (object value in anArray) - { - if (!first) - builder.Append(","); - if (!SerializeValue(jsonSerializerStrategy, value, builder)) - return false; - first = false; - } - builder.Append("]"); - return true; - } - - static bool SerializeString(string aString, StringBuilder builder) - { - // Happy path if there's nothing to be escaped. IndexOfAny is highly optimized (and unmanaged) - if (aString.IndexOfAny(EscapeCharacters) == -1) - { - builder.Append('"'); - builder.Append(aString); - builder.Append('"'); - - return true; - } - - builder.Append('"'); - int safeCharacterCount = 0; - char[] charArray = aString.ToCharArray(); - - for (int i = 0; i < charArray.Length; i++) - { - char c = charArray[i]; - - // Non ascii characters are fine, buffer them up and send them to the builder - // in larger chunks if possible. The escape table is a 1:1 translation table - // with \0 [default(char)] denoting a safe character. - if (c >= EscapeTable.Length || EscapeTable[c] == default(char)) - { - safeCharacterCount++; - } - else - { - if (safeCharacterCount > 0) - { - builder.Append(charArray, i - safeCharacterCount, safeCharacterCount); - safeCharacterCount = 0; - } - - builder.Append('\\'); - builder.Append(EscapeTable[c]); - } - } - - if (safeCharacterCount > 0) - { - builder.Append(charArray, charArray.Length - safeCharacterCount, safeCharacterCount); - } - - builder.Append('"'); - return true; - } - - static bool SerializeNumber(object number, StringBuilder builder) - { - if (number is long) - builder.Append(((long)number).ToString(CultureInfo.InvariantCulture)); - else if (number is ulong) - builder.Append(((ulong)number).ToString(CultureInfo.InvariantCulture)); - else if (number is int) - builder.Append(((int)number).ToString(CultureInfo.InvariantCulture)); - else if (number is uint) - builder.Append(((uint)number).ToString(CultureInfo.InvariantCulture)); - else if (number is decimal) - builder.Append(((decimal)number).ToString(CultureInfo.InvariantCulture)); - else if (number is float) - builder.Append(((float)number).ToString(CultureInfo.InvariantCulture)); - else - builder.Append(Convert.ToDouble(number, CultureInfo.InvariantCulture).ToString("r", CultureInfo.InvariantCulture)); - return true; - } - - /// - /// Determines if a given object is numeric in any way - /// (can be integer, double, null, etc). - /// - static bool IsNumeric(object value) - { - if (value is sbyte) return true; - if (value is byte) return true; - if (value is short) return true; - if (value is ushort) return true; - if (value is int) return true; - if (value is uint) return true; - if (value is long) return true; - if (value is ulong) return true; - if (value is float) return true; - if (value is double) return true; - if (value is decimal) return true; - return false; - } - - private static IJsonSerializerStrategy _currentJsonSerializerStrategy; - public static IJsonSerializerStrategy CurrentJsonSerializerStrategy - { - get - { - return _currentJsonSerializerStrategy ?? - (_currentJsonSerializerStrategy = -#if SIMPLE_JSON_DATACONTRACT - DataContractJsonSerializerStrategy -#else - PocoJsonSerializerStrategy -#endif -); - } - set - { - _currentJsonSerializerStrategy = value; - } - } - - private static PocoJsonSerializerStrategy _pocoJsonSerializerStrategy; - [EditorBrowsable(EditorBrowsableState.Advanced)] - public static PocoJsonSerializerStrategy PocoJsonSerializerStrategy - { - get - { - return _pocoJsonSerializerStrategy ?? (_pocoJsonSerializerStrategy = new PocoJsonSerializerStrategy()); - } - } - -#if SIMPLE_JSON_DATACONTRACT - - private static DataContractJsonSerializerStrategy _dataContractJsonSerializerStrategy; - [System.ComponentModel.EditorBrowsable(EditorBrowsableState.Advanced)] - public static DataContractJsonSerializerStrategy DataContractJsonSerializerStrategy - { - get - { - return _dataContractJsonSerializerStrategy ?? (_dataContractJsonSerializerStrategy = new DataContractJsonSerializerStrategy()); - } - } - -#endif - } - - [GeneratedCode("simple-json", "1.0.0")] -#if SIMPLE_JSON_INTERNAL - internal -#else - public -#endif - interface IJsonSerializerStrategy - { - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] - bool TrySerializeNonPrimitiveObject(object input, out object output); - object DeserializeObject(object value, Type type); - } - - [GeneratedCode("simple-json", "1.0.0")] -#if SIMPLE_JSON_INTERNAL - internal -#else - public -#endif - class PocoJsonSerializerStrategy : IJsonSerializerStrategy - { - internal IDictionary ConstructorCache; - internal IDictionary> GetCache; - internal IDictionary>> SetCache; - - internal static readonly Type[] EmptyTypes = new Type[0]; - internal static readonly Type[] ArrayConstructorParameterTypes = new Type[] { typeof(int) }; - - private static readonly string[] Iso8601Format = new string[] - { - @"yyyy-MM-dd\THH:mm:ss.FFFFFFF\Z", - @"yyyy-MM-dd\THH:mm:ss\Z", - @"yyyy-MM-dd\THH:mm:ssK" - }; - - public PocoJsonSerializerStrategy() - { - ConstructorCache = new ReflectionUtils.ThreadSafeDictionary(ContructorDelegateFactory); - GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); - SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); - } - - protected virtual string MapClrMemberNameToJsonFieldName(string clrPropertyName) - { - return clrPropertyName; - } - - internal virtual ReflectionUtils.ConstructorDelegate ContructorDelegateFactory(Type key) - { - return ReflectionUtils.GetContructor(key, key.IsArray ? ArrayConstructorParameterTypes : EmptyTypes); - } - - internal virtual IDictionary GetterValueFactory(Type type) - { - IDictionary result = new Dictionary(); - foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) - { - if (propertyInfo.CanRead) - { - MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); - if (getMethod.IsStatic || !getMethod.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = ReflectionUtils.GetGetMethod(propertyInfo); - } - } - foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) - { - if (fieldInfo.IsStatic || !fieldInfo.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = ReflectionUtils.GetGetMethod(fieldInfo); - } - return result; - } - - internal virtual IDictionary> SetterValueFactory(Type type) - { - IDictionary> result = new Dictionary>(); - foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) - { - if (propertyInfo.CanWrite) - { - MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); - if (setMethod.IsStatic || !setMethod.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); - } - } - foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) - { - if (fieldInfo.IsInitOnly || fieldInfo.IsStatic || !fieldInfo.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); - } - return result; - } - - public virtual bool TrySerializeNonPrimitiveObject(object input, out object output) - { - return TrySerializeKnownTypes(input, out output) || TrySerializeUnknownTypes(input, out output); - } - - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual object DeserializeObject(object value, Type type) - { - if (type == null) throw new ArgumentNullException("type"); - string str = value as string; - - if (type == typeof(Guid) && string.IsNullOrEmpty(str)) - return default(Guid); - - if (value == null) - return null; - - object obj = null; - - if (str != null) - { - if (str.Length != 0) // We know it can't be null now. - { - if (type == typeof(DateTime) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTime))) - return DateTime.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); - if (type == typeof(DateTimeOffset) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTimeOffset))) - return DateTimeOffset.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); - if (type == typeof(Guid) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid))) - return new Guid(str); - if (type == typeof(Uri)) - { - bool isValid = Uri.IsWellFormedUriString(str, UriKind.RelativeOrAbsolute); - - Uri result; - if (isValid && Uri.TryCreate(str, UriKind.RelativeOrAbsolute, out result)) - return result; - - return null; - } - - if (type == typeof(string)) - return str; - - return Convert.ChangeType(str, type, CultureInfo.InvariantCulture); - } - else - { - if (type == typeof(Guid)) - obj = default(Guid); - else if (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) - obj = null; - else - obj = str; - } - // Empty string case - if (!ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) - return str; - } - else if (value is bool) - return value; - - bool valueIsLong = value is long; - bool valueIsDouble = value is double; - if ((valueIsLong && type == typeof(long)) || (valueIsDouble && type == typeof(double))) - return value; - if ((valueIsDouble && type != typeof(double)) || (valueIsLong && type != typeof(long))) - { - obj = type == typeof(int) || type == typeof(long) || type == typeof(double) || type == typeof(float) || type == typeof(bool) || type == typeof(decimal) || type == typeof(byte) || type == typeof(short) - ? Convert.ChangeType(value, type, CultureInfo.InvariantCulture) - : value; - } - else - { - IDictionary objects = value as IDictionary; - if (objects != null) - { - IDictionary jsonObject = objects; - - if (ReflectionUtils.IsTypeDictionary(type)) - { - // if dictionary then - Type[] types = ReflectionUtils.GetGenericTypeArguments(type); - Type keyType = types[0]; - Type valueType = types[1]; - - Type genericType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType); - - IDictionary dict = (IDictionary)ConstructorCache[genericType](); - - foreach (KeyValuePair kvp in jsonObject) - dict.Add(kvp.Key, DeserializeObject(kvp.Value, valueType)); - - obj = dict; - } - else - { - if (type == typeof(object)) - obj = value; - else - { - obj = ConstructorCache[type](); - foreach (KeyValuePair> setter in SetCache[type]) - { - object jsonValue; - if (jsonObject.TryGetValue(setter.Key, out jsonValue)) - { - jsonValue = DeserializeObject(jsonValue, setter.Value.Key); - setter.Value.Value(obj, jsonValue); - } - } - } - } - } - else - { - IList valueAsList = value as IList; - if (valueAsList != null) - { - IList jsonObject = valueAsList; - IList list = null; - - if (type.IsArray) - { - list = (IList)ConstructorCache[type](jsonObject.Count); - int i = 0; - foreach (object o in jsonObject) - list[i++] = DeserializeObject(o, type.GetElementType()); - } - else if (ReflectionUtils.IsTypeGenericeCollectionInterface(type) || ReflectionUtils.IsAssignableFrom(typeof(IList), type)) - { - Type innerType = ReflectionUtils.GetGenericListElementType(type); - list = (IList)(ConstructorCache[type] ?? ConstructorCache[typeof(List<>).MakeGenericType(innerType)])(jsonObject.Count); - foreach (object o in jsonObject) - list.Add(DeserializeObject(o, innerType)); - } - obj = list; - } - } - return obj; - } - if (ReflectionUtils.IsNullableType(type)) - return ReflectionUtils.ToNullableType(obj, type); - return obj; - } - - protected virtual object SerializeEnum(Enum p) - { - return Convert.ToDouble(p, CultureInfo.InvariantCulture); - } - - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] - protected virtual bool TrySerializeKnownTypes(object input, out object output) - { - bool returnValue = true; - if (input is DateTime) - output = ((DateTime)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); - else if (input is DateTimeOffset) - output = ((DateTimeOffset)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); - else if (input is Guid) - output = ((Guid)input).ToString("D"); - else if (input is Uri) - output = input.ToString(); - else - { - Enum inputEnum = input as Enum; - if (inputEnum != null) - output = SerializeEnum(inputEnum); - else - { - returnValue = false; - output = null; - } - } - return returnValue; - } - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] - protected virtual bool TrySerializeUnknownTypes(object input, out object output) - { - if (input == null) throw new ArgumentNullException("input"); - output = null; - Type type = input.GetType(); - if (type.FullName == null) - return false; - IDictionary obj = new JsonObject(); - IDictionary getters = GetCache[type]; - foreach (KeyValuePair getter in getters) - { - if (getter.Value != null) - obj.Add(MapClrMemberNameToJsonFieldName(getter.Key), getter.Value(input)); - } - output = obj; - return true; - } - } - -#if SIMPLE_JSON_DATACONTRACT - [GeneratedCode("simple-json", "1.0.0")] -#if SIMPLE_JSON_INTERNAL - internal -#else - public -#endif - class DataContractJsonSerializerStrategy : PocoJsonSerializerStrategy - { - public DataContractJsonSerializerStrategy() - { - GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); - SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); - } - - internal override IDictionary GetterValueFactory(Type type) - { - bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; - if (!hasDataContract) - return base.GetterValueFactory(type); - string jsonKey; - IDictionary result = new Dictionary(); - foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) - { - if (propertyInfo.CanRead) - { - MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); - if (!getMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) - result[jsonKey] = ReflectionUtils.GetGetMethod(propertyInfo); - } - } - foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) - { - if (!fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) - result[jsonKey] = ReflectionUtils.GetGetMethod(fieldInfo); - } - return result; - } - - internal override IDictionary> SetterValueFactory(Type type) - { - bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; - if (!hasDataContract) - return base.SetterValueFactory(type); - string jsonKey; - IDictionary> result = new Dictionary>(); - foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) - { - if (propertyInfo.CanWrite) - { - MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); - if (!setMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) - result[jsonKey] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); - } - } - foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) - { - if (!fieldInfo.IsInitOnly && !fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) - result[jsonKey] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); - } - // todo implement sorting for DATACONTRACT. - return result; - } - - private static bool CanAdd(MemberInfo info, out string jsonKey) - { - jsonKey = null; - if (ReflectionUtils.GetAttribute(info, typeof(IgnoreDataMemberAttribute)) != null) - return false; - DataMemberAttribute dataMemberAttribute = (DataMemberAttribute)ReflectionUtils.GetAttribute(info, typeof(DataMemberAttribute)); - if (dataMemberAttribute == null) - return false; - jsonKey = string.IsNullOrEmpty(dataMemberAttribute.Name) ? info.Name : dataMemberAttribute.Name; - return true; - } - } - -#endif - - namespace Reflection - { - // This class is meant to be copied into other libraries. So we want to exclude it from Code Analysis rules - // that might be in place in the target project. - [GeneratedCode("reflection-utils", "1.0.0")] -#if SIMPLE_JSON_REFLECTION_UTILS_PUBLIC - public -#else - internal -#endif - class ReflectionUtils - { - private static readonly object[] EmptyObjects = new object[] { }; - - public delegate object GetDelegate(object source); - public delegate void SetDelegate(object source, object value); - public delegate object ConstructorDelegate(params object[] args); - - public delegate TValue ThreadSafeDictionaryValueFactory(TKey key); - -#if SIMPLE_JSON_TYPEINFO - public static TypeInfo GetTypeInfo(Type type) - { - return type.GetTypeInfo(); - } -#else - public static Type GetTypeInfo(Type type) - { - return type; - } -#endif - - public static Attribute GetAttribute(MemberInfo info, Type type) - { -#if SIMPLE_JSON_TYPEINFO - if (info == null || type == null || !info.IsDefined(type)) - return null; - return info.GetCustomAttribute(type); -#else - if (info == null || type == null || !Attribute.IsDefined(info, type)) - return null; - return Attribute.GetCustomAttribute(info, type); -#endif - } - - public static Type GetGenericListElementType(Type type) - { - IEnumerable interfaces; -#if SIMPLE_JSON_TYPEINFO - interfaces = type.GetTypeInfo().ImplementedInterfaces; -#else - interfaces = type.GetInterfaces(); -#endif - foreach (Type implementedInterface in interfaces) - { - if (IsTypeGeneric(implementedInterface) && - implementedInterface.GetGenericTypeDefinition() == typeof(IList<>)) - { - return GetGenericTypeArguments(implementedInterface)[0]; - } - } - return GetGenericTypeArguments(type)[0]; - } - - public static Attribute GetAttribute(Type objectType, Type attributeType) - { - -#if SIMPLE_JSON_TYPEINFO - if (objectType == null || attributeType == null || !objectType.GetTypeInfo().IsDefined(attributeType)) - return null; - return objectType.GetTypeInfo().GetCustomAttribute(attributeType); -#else - if (objectType == null || attributeType == null || !Attribute.IsDefined(objectType, attributeType)) - return null; - return Attribute.GetCustomAttribute(objectType, attributeType); -#endif - } - - public static Type[] GetGenericTypeArguments(Type type) - { -#if SIMPLE_JSON_TYPEINFO - return type.GetTypeInfo().GenericTypeArguments; -#else - return type.GetGenericArguments(); -#endif - } - - public static bool IsTypeGeneric(Type type) - { - return GetTypeInfo(type).IsGenericType; - } - - public static bool IsTypeGenericeCollectionInterface(Type type) - { - if (!IsTypeGeneric(type)) - return false; - - Type genericDefinition = type.GetGenericTypeDefinition(); - - return (genericDefinition == typeof(IList<>) - || genericDefinition == typeof(ICollection<>) - || genericDefinition == typeof(IEnumerable<>) -#if SIMPLE_JSON_READONLY_COLLECTIONS - || genericDefinition == typeof(IReadOnlyCollection<>) - || genericDefinition == typeof(IReadOnlyList<>) -#endif - ); - } - - public static bool IsAssignableFrom(Type type1, Type type2) - { - return GetTypeInfo(type1).IsAssignableFrom(GetTypeInfo(type2)); - } - - public static bool IsTypeDictionary(Type type) - { -#if SIMPLE_JSON_TYPEINFO - if (typeof(IDictionary<,>).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo())) - return true; -#else - if (typeof(System.Collections.IDictionary).IsAssignableFrom(type)) - return true; -#endif - if (!GetTypeInfo(type).IsGenericType) - return false; - - Type genericDefinition = type.GetGenericTypeDefinition(); - return genericDefinition == typeof(IDictionary<,>); - } - - public static bool IsNullableType(Type type) - { - return GetTypeInfo(type).IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>); - } - - public static object ToNullableType(object obj, Type nullableType) - { - return obj == null ? null : Convert.ChangeType(obj, Nullable.GetUnderlyingType(nullableType), CultureInfo.InvariantCulture); - } - - public static bool IsValueType(Type type) - { - return GetTypeInfo(type).IsValueType; - } - - public static IEnumerable GetConstructors(Type type) - { -#if SIMPLE_JSON_TYPEINFO - return type.GetTypeInfo().DeclaredConstructors; -#else - return type.GetConstructors(); -#endif - } - - public static ConstructorInfo GetConstructorInfo(Type type, params Type[] argsType) - { - IEnumerable constructorInfos = GetConstructors(type); - int i; - bool matches; - foreach (ConstructorInfo constructorInfo in constructorInfos) - { - ParameterInfo[] parameters = constructorInfo.GetParameters(); - if (argsType.Length != parameters.Length) - continue; - - i = 0; - matches = true; - foreach (ParameterInfo parameterInfo in constructorInfo.GetParameters()) - { - if (parameterInfo.ParameterType != argsType[i]) - { - matches = false; - break; - } - } - - if (matches) - return constructorInfo; - } - - return null; - } - - public static IEnumerable GetProperties(Type type) - { -#if SIMPLE_JSON_TYPEINFO - return type.GetRuntimeProperties(); -#else - return type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); -#endif - } - - public static IEnumerable GetFields(Type type) - { -#if SIMPLE_JSON_TYPEINFO - return type.GetRuntimeFields(); -#else - return type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); -#endif - } - - public static MethodInfo GetGetterMethodInfo(PropertyInfo propertyInfo) - { -#if SIMPLE_JSON_TYPEINFO - return propertyInfo.GetMethod; -#else - return propertyInfo.GetGetMethod(true); -#endif - } - - public static MethodInfo GetSetterMethodInfo(PropertyInfo propertyInfo) - { -#if SIMPLE_JSON_TYPEINFO - return propertyInfo.SetMethod; -#else - return propertyInfo.GetSetMethod(true); -#endif - } - - public static ConstructorDelegate GetContructor(ConstructorInfo constructorInfo) - { -#if SIMPLE_JSON_NO_LINQ_EXPRESSION - return GetConstructorByReflection(constructorInfo); -#else - return GetConstructorByExpression(constructorInfo); -#endif - } - - public static ConstructorDelegate GetContructor(Type type, params Type[] argsType) - { -#if SIMPLE_JSON_NO_LINQ_EXPRESSION - return GetConstructorByReflection(type, argsType); -#else - return GetConstructorByExpression(type, argsType); -#endif - } - - public static ConstructorDelegate GetConstructorByReflection(ConstructorInfo constructorInfo) - { - return delegate (object[] args) { return constructorInfo.Invoke(args); }; - } - - public static ConstructorDelegate GetConstructorByReflection(Type type, params Type[] argsType) - { - ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); - return constructorInfo == null ? null : GetConstructorByReflection(constructorInfo); - } - -#if !SIMPLE_JSON_NO_LINQ_EXPRESSION - - public static ConstructorDelegate GetConstructorByExpression(ConstructorInfo constructorInfo) - { - ParameterInfo[] paramsInfo = constructorInfo.GetParameters(); - ParameterExpression param = Expression.Parameter(typeof(object[]), "args"); - Expression[] argsExp = new Expression[paramsInfo.Length]; - for (int i = 0; i < paramsInfo.Length; i++) - { - Expression index = Expression.Constant(i); - Type paramType = paramsInfo[i].ParameterType; - Expression paramAccessorExp = Expression.ArrayIndex(param, index); - Expression paramCastExp = Expression.Convert(paramAccessorExp, paramType); - argsExp[i] = paramCastExp; - } - NewExpression newExp = Expression.New(constructorInfo, argsExp); - Expression> lambda = Expression.Lambda>(newExp, param); - Func compiledLambda = lambda.Compile(); - return delegate (object[] args) { return compiledLambda(args); }; - } - - public static ConstructorDelegate GetConstructorByExpression(Type type, params Type[] argsType) - { - ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); - return constructorInfo == null ? null : GetConstructorByExpression(constructorInfo); - } - -#endif - - public static GetDelegate GetGetMethod(PropertyInfo propertyInfo) - { -#if SIMPLE_JSON_NO_LINQ_EXPRESSION - return GetGetMethodByReflection(propertyInfo); -#else - return GetGetMethodByExpression(propertyInfo); -#endif - } - - public static GetDelegate GetGetMethod(FieldInfo fieldInfo) - { -#if SIMPLE_JSON_NO_LINQ_EXPRESSION - return GetGetMethodByReflection(fieldInfo); -#else - return GetGetMethodByExpression(fieldInfo); -#endif - } - - public static GetDelegate GetGetMethodByReflection(PropertyInfo propertyInfo) - { - MethodInfo methodInfo = GetGetterMethodInfo(propertyInfo); - return delegate (object source) { return methodInfo.Invoke(source, EmptyObjects); }; - } - - public static GetDelegate GetGetMethodByReflection(FieldInfo fieldInfo) - { - return delegate (object source) { return fieldInfo.GetValue(source); }; - } - -#if !SIMPLE_JSON_NO_LINQ_EXPRESSION - - public static GetDelegate GetGetMethodByExpression(PropertyInfo propertyInfo) - { - MethodInfo getMethodInfo = GetGetterMethodInfo(propertyInfo); - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); - Func compiled = Expression.Lambda>(Expression.TypeAs(Expression.Call(instanceCast, getMethodInfo), typeof(object)), instance).Compile(); - return delegate (object source) { return compiled(source); }; - } - - public static GetDelegate GetGetMethodByExpression(FieldInfo fieldInfo) - { - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - MemberExpression member = Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo); - GetDelegate compiled = Expression.Lambda(Expression.Convert(member, typeof(object)), instance).Compile(); - return delegate (object source) { return compiled(source); }; - } - -#endif - - public static SetDelegate GetSetMethod(PropertyInfo propertyInfo) - { -#if SIMPLE_JSON_NO_LINQ_EXPRESSION - return GetSetMethodByReflection(propertyInfo); -#else - return GetSetMethodByExpression(propertyInfo); -#endif - } - - public static SetDelegate GetSetMethod(FieldInfo fieldInfo) - { -#if SIMPLE_JSON_NO_LINQ_EXPRESSION - return GetSetMethodByReflection(fieldInfo); -#else - return GetSetMethodByExpression(fieldInfo); -#endif - } - - public static SetDelegate GetSetMethodByReflection(PropertyInfo propertyInfo) - { - MethodInfo methodInfo = GetSetterMethodInfo(propertyInfo); - return delegate (object source, object value) { methodInfo.Invoke(source, new object[] { value }); }; - } - - public static SetDelegate GetSetMethodByReflection(FieldInfo fieldInfo) - { - return delegate (object source, object value) { fieldInfo.SetValue(source, value); }; - } - -#if !SIMPLE_JSON_NO_LINQ_EXPRESSION - - public static SetDelegate GetSetMethodByExpression(PropertyInfo propertyInfo) - { - MethodInfo setMethodInfo = GetSetterMethodInfo(propertyInfo); - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - ParameterExpression value = Expression.Parameter(typeof(object), "value"); - UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); - UnaryExpression valueCast = (!IsValueType(propertyInfo.PropertyType)) ? Expression.TypeAs(value, propertyInfo.PropertyType) : Expression.Convert(value, propertyInfo.PropertyType); - Action compiled = Expression.Lambda>(Expression.Call(instanceCast, setMethodInfo, valueCast), new ParameterExpression[] { instance, value }).Compile(); - return delegate (object source, object val) { compiled(source, val); }; - } - - public static SetDelegate GetSetMethodByExpression(FieldInfo fieldInfo) - { - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - ParameterExpression value = Expression.Parameter(typeof(object), "value"); - Action compiled = Expression.Lambda>( - Assign(Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo), Expression.Convert(value, fieldInfo.FieldType)), instance, value).Compile(); - return delegate (object source, object val) { compiled(source, val); }; - } - - public static BinaryExpression Assign(Expression left, Expression right) - { -#if SIMPLE_JSON_TYPEINFO - return Expression.Assign(left, right); -#else - MethodInfo assign = typeof(Assigner<>).MakeGenericType(left.Type).GetMethod("Assign"); - BinaryExpression assignExpr = Expression.Add(left, right, assign); - return assignExpr; -#endif - } - - private static class Assigner - { - public static T Assign(ref T left, T right) - { - return (left = right); - } - } - -#endif - - public sealed class ThreadSafeDictionary : IDictionary - { - private readonly object _lock = new object(); - private readonly ThreadSafeDictionaryValueFactory _valueFactory; - private Dictionary _dictionary; - - public ThreadSafeDictionary(ThreadSafeDictionaryValueFactory valueFactory) - { - _valueFactory = valueFactory; - } - - private TValue Get(TKey key) - { - if (_dictionary == null) - return AddValue(key); - TValue value; - if (!_dictionary.TryGetValue(key, out value)) - return AddValue(key); - return value; - } - - private TValue AddValue(TKey key) - { - TValue value = _valueFactory(key); - lock (_lock) - { - if (_dictionary == null) - { - _dictionary = new Dictionary(); - _dictionary[key] = value; - } - else - { - TValue val; - if (_dictionary.TryGetValue(key, out val)) - return val; - Dictionary dict = new Dictionary(_dictionary); - dict[key] = value; - _dictionary = dict; - } - } - return value; - } - - public void Add(TKey key, TValue value) - { - throw new NotImplementedException(); - } - - public bool ContainsKey(TKey key) - { - return _dictionary.ContainsKey(key); - } - - public ICollection Keys - { - get { return _dictionary.Keys; } - } - - public bool Remove(TKey key) - { - throw new NotImplementedException(); - } - - public bool TryGetValue(TKey key, out TValue value) - { - value = this[key]; - return true; - } - - public ICollection Values - { - get { return _dictionary.Values; } - } - - public TValue this[TKey key] - { - get { return Get(key); } - set { throw new NotImplementedException(); } - } - - public void Add(KeyValuePair item) - { - throw new NotImplementedException(); - } - - public void Clear() - { - throw new NotImplementedException(); - } - - public bool Contains(KeyValuePair item) - { - throw new NotImplementedException(); - } - - public void CopyTo(KeyValuePair[] array, int arrayIndex) - { - throw new NotImplementedException(); - } - - public int Count - { - get { return _dictionary.Count; } - } - - public bool IsReadOnly - { - get { throw new NotImplementedException(); } - } - - public bool Remove(KeyValuePair item) - { - throw new NotImplementedException(); - } - - public IEnumerator> GetEnumerator() - { - return _dictionary.GetEnumerator(); - } - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return _dictionary.GetEnumerator(); - } - } - - } - } -} -// ReSharper restore LoopCanBeConvertedToQuery -// ReSharper restore RedundantExplicitArrayCreation -// ReSharper restore SuggestUseVarKeywordEvident \ No newline at end of file diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs deleted file mode 100644 index 70c096de..00000000 --- a/src/WixToolset.Data/Localization.cs +++ /dev/null @@ -1,137 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Collections.Generic; - using SimpleJson; - using WixToolset.Data.Bind; - - /// - /// Object that represents a localization file. - /// - public sealed class Localization - { - private readonly Dictionary variables = new Dictionary(); - private readonly Dictionary localizedControls = new Dictionary(); - - /// - /// Instantiates a new localization object. - /// - public Localization(int? codepage, int? summaryInformationCodepage, string culture, IDictionary variables, IDictionary localizedControls) - { - this.Codepage = codepage; - this.SummaryInformationCodepage = summaryInformationCodepage; - this.Culture = culture?.ToLowerInvariant() ?? String.Empty; - this.variables = new Dictionary(variables); - this.localizedControls = new Dictionary(localizedControls); - } - - /// - /// Gets the codepage. - /// - /// The codepage. - public int? Codepage { get; private set; } - - /// - /// Gets the summary information codepage. - /// - /// The summary information codepage. - public int? SummaryInformationCodepage { get; private set; } - - /// - /// Gets the culture. - /// - /// The culture. - public string Culture { get; private set; } - - /// - /// Gets the variables. - /// - /// The variables. - public ICollection Variables => this.variables.Values; - - /// - /// Gets the localized controls. - /// - /// The localized controls. - public ICollection> LocalizedControls => this.localizedControls; - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject(); - - if (this.Codepage.HasValue) - { - jsonObject.Add("codepage", this.Codepage.Value); - } - - if (this.SummaryInformationCodepage.HasValue) - { - jsonObject.Add("summaryCodepage", this.SummaryInformationCodepage.Value); - } - - jsonObject.AddIsNotNullOrEmpty("culture", this.Culture); - - // Serialize bind variables. - if (this.Variables.Count > 0) - { - var variablesJson = new JsonArray(this.Variables.Count); - - foreach (var variable in this.Variables) - { - var variableJson = variable.Serialize(); - - variablesJson.Add(variableJson); - } - - jsonObject.Add("variables", variablesJson); - } - - // Serialize localized control. - if (this.LocalizedControls.Count > 0) - { - var controlsJson = new JsonObject(); - - foreach (var controlWithKey in this.LocalizedControls) - { - var controlJson = controlWithKey.Value.Serialize(); - - controlsJson.Add(controlWithKey.Key, controlJson); - } - - jsonObject.Add("controls", controlsJson); - } - - return jsonObject; - } - - internal static Localization Deserialize(JsonObject jsonObject) - { - var codepage = jsonObject.GetValueOrDefault("codepage", null); - var summaryCodepage = jsonObject.GetValueOrDefault("summaryCodepage", null); - var culture = jsonObject.GetValueOrDefault("culture"); - - var variables = new Dictionary(); - var variablesJson = jsonObject.GetValueOrDefault("variables", new JsonArray()); - foreach (JsonObject variableJson in variablesJson) - { - var bindPath = BindVariable.Deserialize(variableJson); - variables.Add(bindPath.Id, bindPath); - } - - var controls = new Dictionary(); - var controlsJson = jsonObject.GetValueOrDefault("controls"); - if (controlsJson != null) - { - foreach (var controlJsonWithKey in controlsJson) - { - var control = LocalizedControl.Deserialize((JsonObject)controlJsonWithKey.Value); - controls.Add(controlJsonWithKey.Key, control); - } - } - - return new Localization(codepage, summaryCodepage, culture, variables, controls); - } - } -} diff --git a/src/WixToolset.Data/LocalizedControl.cs b/src/WixToolset.Data/LocalizedControl.cs deleted file mode 100644 index 1252842b..00000000 --- a/src/WixToolset.Data/LocalizedControl.cs +++ /dev/null @@ -1,94 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using SimpleJson; - - public class LocalizedControl - { - public LocalizedControl(string dialog, string control, int x, int y, int width, int height, bool rightToLeft, bool rightAligned, bool leftScroll, string text) - { - this.Dialog = dialog; - this.Control = control; - this.X = x; - this.Y = y; - this.Width = width; - this.Height = height; - this.RightToLeft = rightToLeft; - this.RightAligned = rightAligned; - this.LeftScroll = leftScroll; - this.Text = text; - } - - public string Dialog { get; } - - public string Control { get; } - - public int X { get; } - - public int Y { get; } - - public int Width { get; } - - public int Height { get; } - - public bool RightToLeft { get; } - - public bool RightAligned { get; } - - public bool LeftScroll { get; } - - public string Text { get; } - - /// - /// Get key for a localized control. - /// - /// The localized control id. - public string GetKey() => LocalizedControl.GetKey(this.Dialog, this.Control); - - /// - /// Get key for a localized control. - /// - /// The optional id of the control's dialog. - /// The id of the control. - /// The localized control id. - public static string GetKey(string dialog, string control) => String.Concat(dialog, "/", control); - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "dialog", this.Dialog }, - }; - - jsonObject.AddIsNotNullOrEmpty("control", this.Control); - jsonObject.AddNonDefaultValue("x", this.X); - jsonObject.AddNonDefaultValue("y", this.Y); - jsonObject.AddNonDefaultValue("width", this.Width); - jsonObject.AddNonDefaultValue("height", this.Height); - jsonObject.AddNonDefaultValue("rightToLeft", this.RightToLeft); - jsonObject.AddNonDefaultValue("rightAligned", this.RightAligned); - jsonObject.AddNonDefaultValue("leftScroll", this.LeftScroll); - jsonObject.AddIsNotNullOrEmpty("text", this.Text); - - return jsonObject; - } - - internal static LocalizedControl Deserialize(JsonObject jsonObject) - { - var dialog = jsonObject.GetValueOrDefault("dialog"); - var control = jsonObject.GetValueOrDefault("control"); - var x = jsonObject.GetValueOrDefault("x", 0); - var y = jsonObject.GetValueOrDefault("y", 0); - var width = jsonObject.GetValueOrDefault("width", 0); - var height = jsonObject.GetValueOrDefault("height", 0); - var rightToLeft = jsonObject.GetValueOrDefault("rightToLeft", false); - var rightAligned = jsonObject.GetValueOrDefault("rightAligned", false); - var leftScroll = jsonObject.GetValueOrDefault("leftScroll", false); - var text = jsonObject.GetValueOrDefault("text"); - - return new LocalizedControl(dialog, control, x, y, width, height, rightToLeft, rightAligned, leftScroll, text); - } - } -} diff --git a/src/WixToolset.Data/Message.cs b/src/WixToolset.Data/Message.cs deleted file mode 100644 index 85a402e5..00000000 --- a/src/WixToolset.Data/Message.cs +++ /dev/null @@ -1,97 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Resources; - - /// - /// Event args for message events. - /// - public class Message - { - /// - /// Creates a new Message using a format string. - /// - /// Source line numbers for the message. - /// Message level. - /// Id for the message. - /// Format . - /// Arguments for the format string. - public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, string format, params object[] messageArgs) - { - this.SourceLineNumbers = sourceLineNumbers; - this.Level = level; - this.Id = id; - this.ResourceNameOrFormat = format; - this.MessageArgs = messageArgs; - } - - /// - /// Creates a new Message using a format string from a resource manager. - /// - /// Source line numbers for the message. - /// Message level. - /// Id for the message. - /// Resource manager. - /// Name of the resource. - /// Arguments for the format string. - public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, ResourceManager resourceManager, string resourceName, params object[] messageArgs) - { - this.SourceLineNumbers = sourceLineNumbers; - this.Level = level; - this.Id = id; - this.ResourceManager = resourceManager; - this.ResourceNameOrFormat = resourceName; - this.MessageArgs = messageArgs; - } - - /// - /// Gets the source line numbers. - /// - /// The source line numbers. - public SourceLineNumber SourceLineNumbers { get; } - - /// - /// Gets the Id for the message. - /// - /// The Id for the message. - public int Id { get; } - - /// - /// Gets the resource manager for this event args. - /// - /// The resource manager for this event args. - public ResourceManager ResourceManager { get; } - - /// - /// Gets the name of the resource or format string if no resource manager was provided. - /// - /// The name of the resource or format string. - public string ResourceNameOrFormat { get; } - - /// - /// Gets or sets the for the message. - /// - /// The for the message. - public MessageLevel Level { get; private set; } - - /// - /// Gets the arguments for the format string. - /// - /// The arguments for the format string. - public object[] MessageArgs { get; } - - public override string ToString() - { - if (this.ResourceManager == null) - { - return String.Format(this.ResourceNameOrFormat, this.MessageArgs); - } - else - { - return String.Format(this.ResourceManager.GetString(this.ResourceNameOrFormat), this.MessageArgs); - } - } - } -} diff --git a/src/WixToolset.Data/MessageLevel.cs b/src/WixToolset.Data/MessageLevel.cs deleted file mode 100644 index d980e371..00000000 --- a/src/WixToolset.Data/MessageLevel.cs +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Enum for message to display. - /// - public enum MessageLevel - { - /// Display nothing. - Nothing, - - /// Display verbose information. - Verbose, - - /// Display information. - Information, - - /// Display warning. - Warning, - - /// Display error. - Error, - } -} diff --git a/src/WixToolset.Data/OutputType.cs b/src/WixToolset.Data/OutputType.cs deleted file mode 100644 index 3bbdddcc..00000000 --- a/src/WixToolset.Data/OutputType.cs +++ /dev/null @@ -1,37 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Various types of output. - /// - public enum OutputType - { - /// Unknown output type. - Unknown, - - /// Bundle output type. - Bundle, - - /// Library output type. - Library, - - /// Module output type. - Module, - - /// Patch output type. - Patch, - - /// Patch Creation output type. - PatchCreation, - - /// Product output type. - Product, - - /// Transform output type. - Transform, - - /// Intermediate representation post-link output type. - IntermediatePostLink, - } -} diff --git a/src/WixToolset.Data/PackagingType.cs b/src/WixToolset.Data/PackagingType.cs deleted file mode 100644 index a50f1236..00000000 --- a/src/WixToolset.Data/PackagingType.cs +++ /dev/null @@ -1,11 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - public enum PackagingType - { - Unknown, - Embedded, - External, - } -} diff --git a/src/WixToolset.Data/PdbType.cs b/src/WixToolset.Data/PdbType.cs deleted file mode 100644 index fcbf9cb7..00000000 --- a/src/WixToolset.Data/PdbType.cs +++ /dev/null @@ -1,16 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Platforms supported by compiler. - /// - public enum PdbType - { - /// A .wixpdb file matching the generated output (default). - Full, - - /// No .wixpdb file. - None, - } -} diff --git a/src/WixToolset.Data/Platform.cs b/src/WixToolset.Data/Platform.cs deleted file mode 100644 index f939ac55..00000000 --- a/src/WixToolset.Data/Platform.cs +++ /dev/null @@ -1,19 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Platforms supported by compiler. - /// - public enum Platform - { - /// x86. - X86, - - /// x64. - X64, - - /// arm64. - ARM64, - } -} diff --git a/src/WixToolset.Data/SectionType.cs b/src/WixToolset.Data/SectionType.cs deleted file mode 100644 index 3322ba1a..00000000 --- a/src/WixToolset.Data/SectionType.cs +++ /dev/null @@ -1,31 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Type of section. - /// - public enum SectionType - { - /// Unknown section type, default and invalid. - Unknown, - - /// Bundle section type. - Bundle, - - /// Fragment section type. - Fragment, - - /// Module section type. - Module, - - /// Product section type. - Product, - - /// Patch creation section type. - PatchCreation, - - /// Patch section type. - Patch - } -} diff --git a/src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs b/src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs deleted file mode 100644 index e22d53e7..00000000 --- a/src/WixToolset.Data/SimpleSymbolDefinitionCreator.cs +++ /dev/null @@ -1,31 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System.Collections.Generic; - - internal class SimpleSymbolDefinitionCreator : ISymbolDefinitionCreator - { - private Dictionary CustomDefinitionByName { get; } = new Dictionary(); - - public void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition) - { - if (!this.CustomDefinitionByName.TryGetValue(definition.Name, out var existing) || definition.Revision > existing.Revision) - { - this.CustomDefinitionByName[definition.Name] = definition; - } - } - - public bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition) - { - symbolDefinition = SymbolDefinitions.ByName(name); - - if (symbolDefinition == null) - { - symbolDefinition = this.CustomDefinitionByName.GetValueOrDefault(name); - } - - return symbolDefinition != null; - } - } -} diff --git a/src/WixToolset.Data/SourceLineNumber.cs b/src/WixToolset.Data/SourceLineNumber.cs deleted file mode 100644 index 970f17e7..00000000 --- a/src/WixToolset.Data/SourceLineNumber.cs +++ /dev/null @@ -1,275 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.IO; - using System.Text; - using System.Xml; - using System.Xml.Linq; - using SimpleJson; - - /// - /// Represents file name and line number for source file - /// - public sealed class SourceLineNumber - { - /// - /// Constructor for a source with no line information. - /// - /// File name of the source. - public SourceLineNumber(string fileName) - { - this.FileName = fileName; - } - - /// - /// Constructor for a source with line information. - /// - /// File name of the source. - /// Line number of the source. - public SourceLineNumber(string fileName, int lineNumber) - { - this.FileName = fileName; - this.LineNumber = lineNumber; - } - - /// - /// Constructor for a source with a parent and no line information. - /// - /// File name of the source. - /// Parent of this source line number - public SourceLineNumber(string fileName, SourceLineNumber parent) - { - this.FileName = fileName; - this.Parent = parent; - } - - /// - /// Constructor for a source with a parent and line information. - /// - /// File name of the source. - /// Parent of this source line number - /// Line number of the source. - public SourceLineNumber(string fileName, SourceLineNumber parent, int lineNumber) - { - this.FileName = fileName; - this.Parent = parent; - this.LineNumber = lineNumber; - } - - /// - /// Gets the file name of the source. - /// - /// File name for the source. - public string FileName { get; } - - /// - /// Gets or sets the line number of the source. - /// - /// Line number of the source. - public int? LineNumber { get; set; } - - /// - /// Gets or sets the parent source line number that included this source line number. - /// - public SourceLineNumber Parent { get; private set; } - - /// - /// Gets the file name and line information. - /// - /// File name and line information. - public string QualifiedFileName => this.LineNumber.HasValue ? String.Concat(this.FileName, "*", this.LineNumber) : this.FileName; - - internal static SourceLineNumber Deserialize(JsonObject jsonObject) - { - var fileName = jsonObject.GetValueOrDefault("file"); - var lineNumber = jsonObject.GetValueOrDefault("line", null); - - var parentJson = jsonObject.GetValueOrDefault("parent"); - var parent = (parentJson == null) ? null : SourceLineNumber.Deserialize(parentJson); - - return new SourceLineNumber(fileName) - { - LineNumber = lineNumber, - Parent = parent - }; - } - - internal JsonObject Serialize() - { - var jsonObject = new JsonObject - { - { "file", this.FileName }, - { "line", this.LineNumber } - }; - - if (this.Parent != null) - { - var parentJson = this.Parent.Serialize(); - jsonObject.Add("parent", parentJson); - } - - return jsonObject; - } - - /// - /// Creates a source line number from an encoded string. - /// - /// Encoded string to parse. - public static SourceLineNumber CreateFromEncoded(string encodedSourceLineNumbers) - { - var linesSplitIndex = encodedSourceLineNumbers.IndexOf('|'); - - // The most common case is that there is a single encoded line, - // so optimize for that case. - if (linesSplitIndex < 0) - { - return DecodeSourceLineNumber(encodedSourceLineNumbers, 0, -1); - } - else // decode the multiple lines. - { - var startLine = 0; - - SourceLineNumber first = null; - SourceLineNumber parent = null; - while (startLine < encodedSourceLineNumbers.Length) - { - var source = DecodeSourceLineNumber(encodedSourceLineNumbers, startLine, linesSplitIndex - 1); - - if (null != parent) - { - parent.Parent = source; - } - - parent = source; - if (null == first) - { - first = parent; - } - - if (linesSplitIndex < 0) - { - break; - } - - startLine = linesSplitIndex + 1; - linesSplitIndex = encodedSourceLineNumbers.IndexOf('|', startLine); - } - - return first; - } - } - - /// - /// Creates a source line number from a URI. - /// - /// Uri to convert into source line number - public static SourceLineNumber CreateFromUri(string uri) - { - if (String.IsNullOrEmpty(uri)) - { - return null; - } - - // make the local path look like a normal local path - var localPath = new Uri(uri).LocalPath; - localPath = localPath.TrimStart(Path.AltDirectorySeparatorChar).Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar); - - return new SourceLineNumber(localPath); - } - - /// - /// Creates a source line number from an XObject. - /// - /// XML node to create source line number from. - /// Optional line number offset into XML file not already included in the line information. - public static SourceLineNumber CreateFromXObject(XObject node, int offset = 0) - { - var result = CreateFromUri(node.BaseUri); - if (null != result && node is IXmlLineInfo lineInfo) - { - result.LineNumber = lineInfo.LineNumber + offset; - } - - return result; - } - - /// - /// Get the source line information for the current element. Typically this information - /// is set by the precompiler for each element that it encounters. - /// - /// Element to get source line information for. - /// - /// The source line number used to author the element being processed or - /// null if the preprocessor did not process the element or the node is - /// not an element. - /// - public static SourceLineNumber GetFromXAnnotation(XObject node) - { - return node.Annotation(); - } - - /// - /// Returns the SourceLineNumber and parents encoded as a string. - /// - public string GetEncoded() - { - var sb = new StringBuilder(this.QualifiedFileName); - - for (var parent = this.Parent; null != parent; parent = parent.Parent) - { - sb.Append("|"); - sb.Append(parent.QualifiedFileName); - } - - return sb.ToString(); - } - - /// - /// Determines if two SourceLineNumbers are equivalent. - /// - /// Object to compare. - /// True if SourceLineNumbers are equivalent. - public override bool Equals(object obj) - { - return obj is SourceLineNumber other && - this.LineNumber.HasValue == other.LineNumber.HasValue && - (!this.LineNumber.HasValue || this.LineNumber == other.LineNumber) && - this.FileName.Equals(other.FileName, StringComparison.OrdinalIgnoreCase) && - (null == this.Parent && null == other.Parent || this.Parent.Equals(other.Parent)); - } - - /// - /// Serves as a hash code for a particular type. - /// - /// The hash code. - public override int GetHashCode() - { - return this.GetEncoded().GetHashCode(); - } - - /// - /// Shows a string representation of a source line number. - /// - /// String representation of a source line number. - public override string ToString() - { - return this.LineNumber.HasValue && !String.IsNullOrEmpty(this.FileName) ? String.Concat(this.FileName, "(", this.LineNumber, ")") : this.FileName ?? String.Empty; - } - - private static SourceLineNumber DecodeSourceLineNumber(string encoded, int startIndex, int endIndex) - { - if (endIndex < 0) - { - endIndex = encoded.Length - 1; - } - - var count = endIndex - startIndex; - var filenameSplitIndex = encoded.LastIndexOf('*', endIndex - 1, count); - return (filenameSplitIndex < 0) ? new SourceLineNumber(encoded) : - new SourceLineNumber(encoded.Substring(startIndex, filenameSplitIndex - startIndex), - Convert.ToInt32(encoded.Substring(filenameSplitIndex + 1, endIndex - filenameSplitIndex))); - } - } -} diff --git a/src/WixToolset.Data/Symbols/ActionTextSymbol.cs b/src/WixToolset.Data/Symbols/ActionTextSymbol.cs deleted file mode 100644 index 80662060..00000000 --- a/src/WixToolset.Data/Symbols/ActionTextSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ActionText = new IntermediateSymbolDefinition( - SymbolDefinitionType.ActionText, - new[] - { - new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Template), IntermediateFieldType.String), - }, - typeof(ActionTextSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ActionTextSymbolFields - { - Action, - Description, - Template, - } - - public class ActionTextSymbol : IntermediateSymbol - { - public ActionTextSymbol() : base(SymbolDefinitions.ActionText, null, null) - { - } - - public ActionTextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ActionText, sourceLineNumber, id) - { - } - - public IntermediateField this[ActionTextSymbolFields index] => this.Fields[(int)index]; - - public string Action - { - get => (string)this.Fields[(int)ActionTextSymbolFields.Action]; - set => this.Set((int)ActionTextSymbolFields.Action, value); - } - - public string Description - { - get => (string)this.Fields[(int)ActionTextSymbolFields.Description]; - set => this.Set((int)ActionTextSymbolFields.Description, value); - } - - public string Template - { - get => (string)this.Fields[(int)ActionTextSymbolFields.Template]; - set => this.Set((int)ActionTextSymbolFields.Template, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/AppIdSymbol.cs b/src/WixToolset.Data/Symbols/AppIdSymbol.cs deleted file mode 100644 index 3eafa26f..00000000 --- a/src/WixToolset.Data/Symbols/AppIdSymbol.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition AppId = new IntermediateSymbolDefinition( - SymbolDefinitionType.AppId, - new[] - { - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.AppId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RemoteServerName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.LocalService), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ServiceParameters), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.DllSurrogate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ActivateAtStorage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RunAsInteractiveUser), IntermediateFieldType.Number), - }, - typeof(AppIdSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum AppIdSymbolFields - { - AppId, - RemoteServerName, - LocalService, - ServiceParameters, - DllSurrogate, - ActivateAtStorage, - RunAsInteractiveUser, - } - - public class AppIdSymbol : IntermediateSymbol - { - public AppIdSymbol() : base(SymbolDefinitions.AppId, null, null) - { - } - - public AppIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppId, sourceLineNumber, id) - { - } - - public IntermediateField this[AppIdSymbolFields index] => this.Fields[(int)index]; - - public string AppId - { - get => (string)this.Fields[(int)AppIdSymbolFields.AppId]; - set => this.Set((int)AppIdSymbolFields.AppId, value); - } - - public string RemoteServerName - { - get => (string)this.Fields[(int)AppIdSymbolFields.RemoteServerName]; - set => this.Set((int)AppIdSymbolFields.RemoteServerName, value); - } - - public string LocalService - { - get => (string)this.Fields[(int)AppIdSymbolFields.LocalService]; - set => this.Set((int)AppIdSymbolFields.LocalService, value); - } - - public string ServiceParameters - { - get => (string)this.Fields[(int)AppIdSymbolFields.ServiceParameters]; - set => this.Set((int)AppIdSymbolFields.ServiceParameters, value); - } - - public string DllSurrogate - { - get => (string)this.Fields[(int)AppIdSymbolFields.DllSurrogate]; - set => this.Set((int)AppIdSymbolFields.DllSurrogate, value); - } - - public bool? ActivateAtStorage - { - get => (bool?)this.Fields[(int)AppIdSymbolFields.ActivateAtStorage]; - set => this.Set((int)AppIdSymbolFields.ActivateAtStorage, value); - } - - public bool? RunAsInteractiveUser - { - get => (bool?)this.Fields[(int)AppIdSymbolFields.RunAsInteractiveUser]; - set => this.Set((int)AppIdSymbolFields.RunAsInteractiveUser, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/AppSearchSymbol.cs b/src/WixToolset.Data/Symbols/AppSearchSymbol.cs deleted file mode 100644 index 2bd3d6ba..00000000 --- a/src/WixToolset.Data/Symbols/AppSearchSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition AppSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.AppSearch, - new[] - { - new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.PropertyRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.SignatureRef), IntermediateFieldType.String), - }, - typeof(AppSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum AppSearchSymbolFields - { - PropertyRef, - SignatureRef, - } - - public class AppSearchSymbol : IntermediateSymbol - { - public AppSearchSymbol() : base(SymbolDefinitions.AppSearch, null, null) - { - } - - public AppSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[AppSearchSymbolFields index] => this.Fields[(int)index]; - - public string PropertyRef - { - get => (string)this.Fields[(int)AppSearchSymbolFields.PropertyRef]; - set => this.Set((int)AppSearchSymbolFields.PropertyRef, value); - } - - public string SignatureRef - { - get => (string)this.Fields[(int)AppSearchSymbolFields.SignatureRef]; - set => this.Set((int)AppSearchSymbolFields.SignatureRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/AssemblySymbol.cs b/src/WixToolset.Data/Symbols/AssemblySymbol.cs deleted file mode 100644 index 192ca4eb..00000000 --- a/src/WixToolset.Data/Symbols/AssemblySymbol.cs +++ /dev/null @@ -1,96 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Assembly = new IntermediateSymbolDefinition( - SymbolDefinitionType.Assembly, - new[] - { - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ManifestFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ApplicationFileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ProcessorArchitecture), IntermediateFieldType.String), - }, - typeof(AssemblySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum AssemblySymbolFields - { - ComponentRef, - FeatureRef, - ManifestFileRef, - ApplicationFileRef, - Type, - ProcessorArchitecture, - } - - public enum AssemblyType - { - /// File is not an assembly. - NotAnAssembly, - - /// File is a Common Language Runtime Assembly. - DotNetAssembly, - - /// File is Win32 SxS assembly. - Win32Assembly, - } - - public class AssemblySymbol : IntermediateSymbol - { - public AssemblySymbol() : base(SymbolDefinitions.Assembly, null, null) - { - } - - public AssemblySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Assembly, sourceLineNumber, id) - { - } - - public IntermediateField this[AssemblySymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.ComponentRef]; - set => this.Set((int)AssemblySymbolFields.ComponentRef, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.FeatureRef]; - set => this.Set((int)AssemblySymbolFields.FeatureRef, value); - } - - public string ManifestFileRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.ManifestFileRef]; - set => this.Set((int)AssemblySymbolFields.ManifestFileRef, value); - } - - public string ApplicationFileRef - { - get => (string)this.Fields[(int)AssemblySymbolFields.ApplicationFileRef]; - set => this.Set((int)AssemblySymbolFields.ApplicationFileRef, value); - } - - public AssemblyType Type - { - get => (AssemblyType)this.Fields[(int)AssemblySymbolFields.Type].AsNumber(); - set => this.Set((int)AssemblySymbolFields.Type, (int)value); - } - - public string ProcessorArchitecture - { - get => (string)this.Fields[(int)AssemblySymbolFields.ProcessorArchitecture]; - set => this.Set((int)AssemblySymbolFields.ProcessorArchitecture, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/BBControlSymbol.cs b/src/WixToolset.Data/Symbols/BBControlSymbol.cs deleted file mode 100644 index 277d1d85..00000000 --- a/src/WixToolset.Data/Symbols/BBControlSymbol.cs +++ /dev/null @@ -1,180 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition BBControl = new IntermediateSymbolDefinition( - SymbolDefinitionType.BBControl, - new[] - { - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BillboardRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BBControl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Enabled), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Indirect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Integer), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Sunken), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BBControlSymbolFields.SourceFile), IntermediateFieldType.Path), - }, - typeof(BBControlSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum BBControlSymbolFields - { - BillboardRef, - BBControl, - Type, - X, - Y, - Width, - Height, - Attributes, - Enabled, - Indirect, - Integer, - LeftScroll, - RightAligned, - RightToLeft, - Sunken, - Visible, - Text, - SourceFile - } - - public class BBControlSymbol : IntermediateSymbol - { - public BBControlSymbol() : base(SymbolDefinitions.BBControl, null, null) - { - } - - public BBControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.BBControl, sourceLineNumber, id) - { - } - - public IntermediateField this[BBControlSymbolFields index] => this.Fields[(int)index]; - - public string BillboardRef - { - get => (string)this.Fields[(int)BBControlSymbolFields.BillboardRef]; - set => this.Set((int)BBControlSymbolFields.BillboardRef, value); - } - - public string BBControl - { - get => (string)this.Fields[(int)BBControlSymbolFields.BBControl]; - set => this.Set((int)BBControlSymbolFields.BBControl, value); - } - - public string Type - { - get => (string)this.Fields[(int)BBControlSymbolFields.Type]; - set => this.Set((int)BBControlSymbolFields.Type, value); - } - - public int X - { - get => (int)this.Fields[(int)BBControlSymbolFields.X]; - set => this.Set((int)BBControlSymbolFields.X, value); - } - - public int Y - { - get => (int)this.Fields[(int)BBControlSymbolFields.Y]; - set => this.Set((int)BBControlSymbolFields.Y, value); - } - - public int Width - { - get => (int)this.Fields[(int)BBControlSymbolFields.Width].AsNumber(); - set => this.Set((int)BBControlSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)BBControlSymbolFields.Height]; - set => this.Set((int)BBControlSymbolFields.Height, value); - } - - public int Attributes - { - get => this.Fields[(int)BBControlSymbolFields.Attributes].AsNumber(); - set => this.Set((int)BBControlSymbolFields.Attributes, value); - } - - public bool Enabled - { - get => this.Fields[(int)BBControlSymbolFields.Enabled].AsBool(); - set => this.Set((int)BBControlSymbolFields.Enabled, value); - } - - public bool Indirect - { - get => this.Fields[(int)BBControlSymbolFields.Indirect].AsBool(); - set => this.Set((int)BBControlSymbolFields.Indirect, value); - } - - public bool Integer - { - get => this.Fields[(int)BBControlSymbolFields.Integer].AsBool(); - set => this.Set((int)BBControlSymbolFields.Integer, value); - } - - public bool LeftScroll - { - get => this.Fields[(int)BBControlSymbolFields.LeftScroll].AsBool(); - set => this.Set((int)BBControlSymbolFields.LeftScroll, value); - } - - public bool RightAligned - { - get => this.Fields[(int)BBControlSymbolFields.RightAligned].AsBool(); - set => this.Set((int)BBControlSymbolFields.RightAligned, value); - } - - public bool RightToLeft - { - get => this.Fields[(int)BBControlSymbolFields.RightToLeft].AsBool(); - set => this.Set((int)BBControlSymbolFields.RightToLeft, value); - } - - public bool Sunken - { - get => this.Fields[(int)BBControlSymbolFields.Sunken].AsBool(); - set => this.Set((int)BBControlSymbolFields.Sunken, value); - } - - public bool Visible - { - get => this.Fields[(int)BBControlSymbolFields.Visible].AsBool(); - set => this.Set((int)BBControlSymbolFields.Visible, value); - } - - public string Text - { - get => (string)this.Fields[(int)BBControlSymbolFields.Text]; - set => this.Set((int)BBControlSymbolFields.Text, value); - } - - public IntermediateFieldPathValue SourceFile - { - get => this.Fields[(int)BBControlSymbolFields.SourceFile].AsPath(); - set => this.Set((int)BBControlSymbolFields.SourceFile, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/BillboardSymbol.cs b/src/WixToolset.Data/Symbols/BillboardSymbol.cs deleted file mode 100644 index 77f60bcb..00000000 --- a/src/WixToolset.Data/Symbols/BillboardSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Billboard = new IntermediateSymbolDefinition( - SymbolDefinitionType.Billboard, - new[] - { - new IntermediateFieldDefinition(nameof(BillboardSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Ordering), IntermediateFieldType.Number), - }, - typeof(BillboardSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum BillboardSymbolFields - { - FeatureRef, - Action, - Ordering, - } - - public class BillboardSymbol : IntermediateSymbol - { - public BillboardSymbol() : base(SymbolDefinitions.Billboard, null, null) - { - } - - public BillboardSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Billboard, sourceLineNumber, id) - { - } - - public IntermediateField this[BillboardSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)BillboardSymbolFields.FeatureRef]; - set => this.Set((int)BillboardSymbolFields.FeatureRef, value); - } - - public string Action - { - get => (string)this.Fields[(int)BillboardSymbolFields.Action]; - set => this.Set((int)BillboardSymbolFields.Action, value); - } - - public int? Ordering - { - get => (int?)this.Fields[(int)BillboardSymbolFields.Ordering]; - set => this.Set((int)BillboardSymbolFields.Ordering, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/BinarySymbol.cs b/src/WixToolset.Data/Symbols/BinarySymbol.cs deleted file mode 100644 index ec26b01a..00000000 --- a/src/WixToolset.Data/Symbols/BinarySymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Binary = new IntermediateSymbolDefinition( - SymbolDefinitionType.Binary, - new[] - { - new IntermediateFieldDefinition(nameof(BinarySymbolFields.Data), IntermediateFieldType.Path), - }, - typeof(BinarySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum BinarySymbolFields - { - Data, - } - - public class BinarySymbol : IntermediateSymbol - { - public BinarySymbol() : base(SymbolDefinitions.Binary, null, null) - { - } - - public BinarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Binary, sourceLineNumber, id) - { - } - - public IntermediateField this[BinarySymbolFields index] => this.Fields[(int)index]; - - public IntermediateFieldPathValue Data - { - get => this.Fields[(int)BinarySymbolFields.Data].AsPath(); - set => this.Set((int)BinarySymbolFields.Data, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CCPSearchSymbol.cs b/src/WixToolset.Data/Symbols/CCPSearchSymbol.cs deleted file mode 100644 index 6f6227fd..00000000 --- a/src/WixToolset.Data/Symbols/CCPSearchSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CCPSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.CCPSearch, - new IntermediateFieldDefinition[] - { - }, - typeof(CCPSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CCPSearchSymbolFields - { - } - - public class CCPSearchSymbol : IntermediateSymbol - { - public CCPSearchSymbol() : base(SymbolDefinitions.CCPSearch, null, null) - { - } - - public CCPSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CCPSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[CCPSearchSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CheckBoxSymbol.cs b/src/WixToolset.Data/Symbols/CheckBoxSymbol.cs deleted file mode 100644 index cd6355c4..00000000 --- a/src/WixToolset.Data/Symbols/CheckBoxSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CheckBox = new IntermediateSymbolDefinition( - SymbolDefinitionType.CheckBox, - new[] - { - new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(CheckBoxSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CheckBoxSymbolFields - { - Property, - Value, - } - - public class CheckBoxSymbol : IntermediateSymbol - { - public CheckBoxSymbol() : base(SymbolDefinitions.CheckBox, null, null) - { - } - - public CheckBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CheckBox, sourceLineNumber, id) - { - } - - public IntermediateField this[CheckBoxSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)CheckBoxSymbolFields.Property]; - set => this.Set((int)CheckBoxSymbolFields.Property, value); - } - - public string Value - { - get => (string)this.Fields[(int)CheckBoxSymbolFields.Value]; - set => this.Set((int)CheckBoxSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ClassSymbol.cs b/src/WixToolset.Data/Symbols/ClassSymbol.cs deleted file mode 100644 index 833867b1..00000000 --- a/src/WixToolset.Data/Symbols/ClassSymbol.cs +++ /dev/null @@ -1,140 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Class = new IntermediateSymbolDefinition( - SymbolDefinitionType.Class, - new[] - { - new IntermediateFieldDefinition(nameof(ClassSymbolFields.CLSID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.Context), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefaultProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.AppIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.FileTypeMask), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefInprocHandler), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ClassSymbolFields.RelativePath), IntermediateFieldType.Bool), - }, - typeof(ClassSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ClassSymbolFields - { - CLSID, - Context, - ComponentRef, - DefaultProgIdRef, - Description, - AppIdRef, - FileTypeMask, - IconRef, - IconIndex, - DefInprocHandler, - Argument, - FeatureRef, - RelativePath, - } - - public class ClassSymbol : IntermediateSymbol - { - public ClassSymbol() : base(SymbolDefinitions.Class, null, null) - { - } - - public ClassSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Class, sourceLineNumber, id) - { - } - - public IntermediateField this[ClassSymbolFields index] => this.Fields[(int)index]; - - public string CLSID - { - get => (string)this.Fields[(int)ClassSymbolFields.CLSID]; - set => this.Set((int)ClassSymbolFields.CLSID, value); - } - - public string Context - { - get => (string)this.Fields[(int)ClassSymbolFields.Context]; - set => this.Set((int)ClassSymbolFields.Context, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ClassSymbolFields.ComponentRef]; - set => this.Set((int)ClassSymbolFields.ComponentRef, value); - } - - public string DefaultProgIdRef - { - get => (string)this.Fields[(int)ClassSymbolFields.DefaultProgIdRef]; - set => this.Set((int)ClassSymbolFields.DefaultProgIdRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ClassSymbolFields.Description]; - set => this.Set((int)ClassSymbolFields.Description, value); - } - - public string AppIdRef - { - get => (string)this.Fields[(int)ClassSymbolFields.AppIdRef]; - set => this.Set((int)ClassSymbolFields.AppIdRef, value); - } - - public string FileTypeMask - { - get => (string)this.Fields[(int)ClassSymbolFields.FileTypeMask]; - set => this.Set((int)ClassSymbolFields.FileTypeMask, value); - } - - public string IconRef - { - get => (string)this.Fields[(int)ClassSymbolFields.IconRef]; - set => this.Set((int)ClassSymbolFields.IconRef, value); - } - - public int? IconIndex - { - get => (int?)this.Fields[(int)ClassSymbolFields.IconIndex]; - set => this.Set((int)ClassSymbolFields.IconIndex, value); - } - - public string DefInprocHandler - { - get => (string)this.Fields[(int)ClassSymbolFields.DefInprocHandler]; - set => this.Set((int)ClassSymbolFields.DefInprocHandler, value); - } - - public string Argument - { - get => (string)this.Fields[(int)ClassSymbolFields.Argument]; - set => this.Set((int)ClassSymbolFields.Argument, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)ClassSymbolFields.FeatureRef]; - set => this.Set((int)ClassSymbolFields.FeatureRef, value); - } - - public bool RelativePath - { - get => this.Fields[(int)ClassSymbolFields.RelativePath].AsBool(); - set => this.Set((int)ClassSymbolFields.RelativePath, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ComboBoxSymbol.cs b/src/WixToolset.Data/Symbols/ComboBoxSymbol.cs deleted file mode 100644 index c7d8d986..00000000 --- a/src/WixToolset.Data/Symbols/ComboBoxSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ComboBox = new IntermediateSymbolDefinition( - SymbolDefinitionType.ComboBox, - new[] - { - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Text), IntermediateFieldType.String), - }, - typeof(ComboBoxSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ComboBoxSymbolFields - { - Property, - Order, - Value, - Text, - } - - public class ComboBoxSymbol : IntermediateSymbol - { - public ComboBoxSymbol() : base(SymbolDefinitions.ComboBox, null, null) - { - } - - public ComboBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ComboBox, sourceLineNumber, id) - { - } - - public IntermediateField this[ComboBoxSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)ComboBoxSymbolFields.Property]; - set => this.Set((int)ComboBoxSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)ComboBoxSymbolFields.Order]; - set => this.Set((int)ComboBoxSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)ComboBoxSymbolFields.Value]; - set => this.Set((int)ComboBoxSymbolFields.Value, value); - } - - public string Text - { - get => (string)this.Fields[(int)ComboBoxSymbolFields.Text]; - set => this.Set((int)ComboBoxSymbolFields.Text, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CompLocatorSymbol.cs b/src/WixToolset.Data/Symbols/CompLocatorSymbol.cs deleted file mode 100644 index 9004859c..00000000 --- a/src/WixToolset.Data/Symbols/CompLocatorSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CompLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.CompLocator, - new[] - { - new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.Type), IntermediateFieldType.Number), - }, - typeof(CompLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CompLocatorSymbolFields - { - SignatureRef, - ComponentId, - Type, - } - - public class CompLocatorSymbol : IntermediateSymbol - { - public CompLocatorSymbol() : base(SymbolDefinitions.CompLocator, null, null) - { - } - - public CompLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CompLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[CompLocatorSymbolFields index] => this.Fields[(int)index]; - - public string SignatureRef - { - get => (string)this.Fields[(int)CompLocatorSymbolFields.SignatureRef]; - set => this.Set((int)CompLocatorSymbolFields.SignatureRef, value); - } - - public string ComponentId - { - get => (string)this.Fields[(int)CompLocatorSymbolFields.ComponentId]; - set => this.Set((int)CompLocatorSymbolFields.ComponentId, value); - } - - public LocatorType Type - { - get => (LocatorType)this.Fields[(int)CompLocatorSymbolFields.Type].AsNumber(); - set => this.Set((int)CompLocatorSymbolFields.Type, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ComplusSymbol.cs b/src/WixToolset.Data/Symbols/ComplusSymbol.cs deleted file mode 100644 index fa16af86..00000000 --- a/src/WixToolset.Data/Symbols/ComplusSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Complus = new IntermediateSymbolDefinition( - SymbolDefinitionType.Complus, - new[] - { - new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ExpType), IntermediateFieldType.Number), - }, - typeof(ComplusSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ComplusSymbolFields - { - ComponentRef, - ExpType, - } - - public class ComplusSymbol : IntermediateSymbol - { - public ComplusSymbol() : base(SymbolDefinitions.Complus, null, null) - { - } - - public ComplusSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Complus, sourceLineNumber, id) - { - } - - public IntermediateField this[ComplusSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ComplusSymbolFields.ComponentRef]; - set => this.Set((int)ComplusSymbolFields.ComponentRef, value); - } - - public int? ExpType - { - get => (int?)this.Fields[(int)ComplusSymbolFields.ExpType]; - set => this.Set((int)ComplusSymbolFields.ExpType, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ComponentSymbol.cs b/src/WixToolset.Data/Symbols/ComponentSymbol.cs deleted file mode 100644 index 13d398b1..00000000 --- a/src/WixToolset.Data/Symbols/ComponentSymbol.cs +++ /dev/null @@ -1,155 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Component = new IntermediateSymbolDefinition( - SymbolDefinitionType.Component, - new[] - { - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Location), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DisableRegistryReflection), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.NeverOverwrite), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Permanent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.SharedDllRefCount), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Shared), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Transitive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.UninstallWhenSuperseded), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Win64), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPathType), IntermediateFieldType.Number), - }, - typeof(ComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ComponentSymbolFields - { - ComponentId, - DirectoryRef, - Location, - DisableRegistryReflection, - NeverOverwrite, - Permanent, - SharedDllRefCount, - Shared, - Transitive, - UninstallWhenSuperseded, - Win64, - Condition, - KeyPath, - KeyPathType, - } - - public enum ComponentLocation - { - LocalOnly, - SourceOnly, - Either - } - - public class ComponentSymbol : IntermediateSymbol - { - public ComponentSymbol() : base(SymbolDefinitions.Component, null, null) - { - } - - public ComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Component, sourceLineNumber, id) - { - } - - public IntermediateField this[ComponentSymbolFields index] => this.Fields[(int)index]; - - public string ComponentId - { - get => (string)this.Fields[(int)ComponentSymbolFields.ComponentId]; - set => this.Set((int)ComponentSymbolFields.ComponentId, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)ComponentSymbolFields.DirectoryRef]; - set => this.Set((int)ComponentSymbolFields.DirectoryRef, value); - } - - public ComponentLocation Location - { - get => (ComponentLocation)this.Fields[(int)ComponentSymbolFields.Location].AsNumber(); - set => this.Set((int)ComponentSymbolFields.Location, (int)value); - } - - public bool DisableRegistryReflection - { - get => this.Fields[(int)ComponentSymbolFields.DisableRegistryReflection].AsBool(); - set => this.Set((int)ComponentSymbolFields.DisableRegistryReflection, value); - } - - public bool NeverOverwrite - { - get => this.Fields[(int)ComponentSymbolFields.NeverOverwrite].AsBool(); - set => this.Set((int)ComponentSymbolFields.NeverOverwrite, value); - } - - public bool Permanent - { - get => this.Fields[(int)ComponentSymbolFields.Permanent].AsBool(); - set => this.Set((int)ComponentSymbolFields.Permanent, value); - } - - public bool SharedDllRefCount - { - get => this.Fields[(int)ComponentSymbolFields.SharedDllRefCount].AsBool(); - set => this.Set((int)ComponentSymbolFields.SharedDllRefCount, value); - } - - public bool Shared - { - get => this.Fields[(int)ComponentSymbolFields.Shared].AsBool(); - set => this.Set((int)ComponentSymbolFields.Shared, value); - } - - public bool Transitive - { - get => this.Fields[(int)ComponentSymbolFields.Transitive].AsBool(); - set => this.Set((int)ComponentSymbolFields.Transitive, value); - } - - public bool UninstallWhenSuperseded - { - get => this.Fields[(int)ComponentSymbolFields.UninstallWhenSuperseded].AsBool(); - set => this.Set((int)ComponentSymbolFields.UninstallWhenSuperseded, value); - } - - public bool Win64 - { - get => this.Fields[(int)ComponentSymbolFields.Win64].AsBool(); - set => this.Set((int)ComponentSymbolFields.Win64, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ComponentSymbolFields.Condition]; - set => this.Set((int)ComponentSymbolFields.Condition, value); - } - - public string KeyPath - { - get => (string)this.Fields[(int)ComponentSymbolFields.KeyPath]; - set => this.Set((int)ComponentSymbolFields.KeyPath, value); - } - - public ComponentKeyPathType KeyPathType - { - get => (ComponentKeyPathType)this.Fields[(int)ComponentSymbolFields.KeyPathType].AsNumber(); - set => this.Set((int)ComponentSymbolFields.KeyPathType, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ConditionSymbol.cs b/src/WixToolset.Data/Symbols/ConditionSymbol.cs deleted file mode 100644 index 3a94ebb1..00000000 --- a/src/WixToolset.Data/Symbols/ConditionSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Condition = new IntermediateSymbolDefinition( - SymbolDefinitionType.Condition, - new[] - { - new IntermediateFieldDefinition(nameof(ConditionSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(ConditionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ConditionSymbolFields - { - FeatureRef, - Level, - Condition, - } - - public class ConditionSymbol : IntermediateSymbol - { - public ConditionSymbol() : base(SymbolDefinitions.Condition, null, null) - { - } - - public ConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Condition, sourceLineNumber, id) - { - } - - public IntermediateField this[ConditionSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)ConditionSymbolFields.FeatureRef]; - set => this.Set((int)ConditionSymbolFields.FeatureRef, value); - } - - public int Level - { - get => (int)this.Fields[(int)ConditionSymbolFields.Level]; - set => this.Set((int)ConditionSymbolFields.Level, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ConditionSymbolFields.Condition]; - set => this.Set((int)ConditionSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ControlConditionSymbol.cs b/src/WixToolset.Data/Symbols/ControlConditionSymbol.cs deleted file mode 100644 index cc5f2d74..00000000 --- a/src/WixToolset.Data/Symbols/ControlConditionSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ControlCondition = new IntermediateSymbolDefinition( - SymbolDefinitionType.ControlCondition, - new[] - { - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(ControlConditionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ControlConditionSymbolFields - { - DialogRef, - ControlRef, - Action, - Condition, - } - - public class ControlConditionSymbol : IntermediateSymbol - { - public ControlConditionSymbol() : base(SymbolDefinitions.ControlCondition, null, null) - { - } - - public ControlConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlCondition, sourceLineNumber, id) - { - } - - public IntermediateField this[ControlConditionSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.DialogRef]; - set => this.Set((int)ControlConditionSymbolFields.DialogRef, value); - } - - public string ControlRef - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.ControlRef]; - set => this.Set((int)ControlConditionSymbolFields.ControlRef, value); - } - - public string Action - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.Action]; - set => this.Set((int)ControlConditionSymbolFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ControlConditionSymbolFields.Condition]; - set => this.Set((int)ControlConditionSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ControlEventSymbol.cs b/src/WixToolset.Data/Symbols/ControlEventSymbol.cs deleted file mode 100644 index 3cf6da53..00000000 --- a/src/WixToolset.Data/Symbols/ControlEventSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ControlEvent = new IntermediateSymbolDefinition( - SymbolDefinitionType.ControlEvent, - new[] - { - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Event), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Ordering), IntermediateFieldType.Number), - }, - typeof(ControlEventSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ControlEventSymbolFields - { - DialogRef, - ControlRef, - Event, - Argument, - Condition, - Ordering, - } - - public class ControlEventSymbol : IntermediateSymbol - { - public ControlEventSymbol() : base(SymbolDefinitions.ControlEvent, null, null) - { - } - - public ControlEventSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlEvent, sourceLineNumber, id) - { - } - - public IntermediateField this[ControlEventSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)ControlEventSymbolFields.DialogRef]; - set => this.Set((int)ControlEventSymbolFields.DialogRef, value); - } - - public string ControlRef - { - get => (string)this.Fields[(int)ControlEventSymbolFields.ControlRef]; - set => this.Set((int)ControlEventSymbolFields.ControlRef, value); - } - - public string Event - { - get => (string)this.Fields[(int)ControlEventSymbolFields.Event]; - set => this.Set((int)ControlEventSymbolFields.Event, value); - } - - public string Argument - { - get => (string)this.Fields[(int)ControlEventSymbolFields.Argument]; - set => this.Set((int)ControlEventSymbolFields.Argument, value); - } - - public string Condition - { - get => (string)this.Fields[(int)ControlEventSymbolFields.Condition]; - set => this.Set((int)ControlEventSymbolFields.Condition, value); - } - - public int? Ordering - { - get => (int?)this.Fields[(int)ControlEventSymbolFields.Ordering]; - set => this.Set((int)ControlEventSymbolFields.Ordering, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ControlSymbol.cs b/src/WixToolset.Data/Symbols/ControlSymbol.cs deleted file mode 100644 index 732566d5..00000000 --- a/src/WixToolset.Data/Symbols/ControlSymbol.cs +++ /dev/null @@ -1,303 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Control = new IntermediateSymbolDefinition( - SymbolDefinitionType.Control, - new[] - { - new IntermediateFieldDefinition(nameof(ControlSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Control), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Enabled), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Indirect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Integer), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Sunken), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.NextControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.Help), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ControlSymbolFields.SourceFile), IntermediateFieldType.Path), - }, - typeof(ControlSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ControlSymbolFields - { - DialogRef, - Control, - Type, - X, - Y, - Width, - Height, - Attributes, - Enabled, - Indirect, - Integer, - LeftScroll, - RightAligned, - RightToLeft, - Sunken, - Visible, - Property, - Text, - NextControlRef, - Help, - TrackDiskSpace, - SourceFile, - } - - public class ControlSymbol : IntermediateSymbol - { - public ControlSymbol() : base(SymbolDefinitions.Control, null, null) - { - } - - public ControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Control, sourceLineNumber, id) - { - } - - public IntermediateField this[ControlSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)ControlSymbolFields.DialogRef]; - set => this.Set((int)ControlSymbolFields.DialogRef, value); - } - - public string Control - { - get => (string)this.Fields[(int)ControlSymbolFields.Control]; - set => this.Set((int)ControlSymbolFields.Control, value); - } - - public string Type - { - get => (string)this.Fields[(int)ControlSymbolFields.Type]; - set => this.Set((int)ControlSymbolFields.Type, value); - } - - public int X - { - get => (int)this.Fields[(int)ControlSymbolFields.X]; - set => this.Set((int)ControlSymbolFields.X, value); - } - - public int Y - { - get => (int)this.Fields[(int)ControlSymbolFields.Y]; - set => this.Set((int)ControlSymbolFields.Y, value); - } - - public int Width - { - get => (int)this.Fields[(int)ControlSymbolFields.Width]; - set => this.Set((int)ControlSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)ControlSymbolFields.Height]; - set => this.Set((int)ControlSymbolFields.Height, value); - } - - public int? Attributes - { - get => (int?)this.Fields[(int)ControlSymbolFields.Attributes]; - set => this.Set((int)ControlSymbolFields.Attributes, value); - } - - public bool Enabled - { - get => this.Fields[(int)ControlSymbolFields.Enabled].AsBool(); - set => this.Set((int)ControlSymbolFields.Enabled, value); - } - - public bool Indirect - { - get => this.Fields[(int)ControlSymbolFields.Indirect].AsBool(); - set => this.Set((int)ControlSymbolFields.Indirect, value); - } - - public bool Integer - { - get => this.Fields[(int)ControlSymbolFields.Integer].AsBool(); - set => this.Set((int)ControlSymbolFields.Integer, value); - } - /* - /// PictureButton control - public bool Bitmap - { - get => this.Fields[(int)ControlSymbolFields.Bitmap].AsBool(); - set => this.Set((int)ControlSymbolFields.Bitmap, value); - } - - /// RadioButton control - public bool Border - { - get => this.Fields[(int)ControlSymbolFields.Border].AsBool(); - set => this.Set((int)ControlSymbolFields.Border, value); - } - - /// ListBox and ComboBox control - public bool ComboList - { - get => this.Fields[(int)ControlSymbolFields.ComboList].AsBool(); - set => this.Set((int)ControlSymbolFields.ComboList, value); - } - - /// PushButton control - public bool ElevationShield - { - get => this.Fields[(int)ControlSymbolFields.ElevationShield].AsBool(); - set => this.Set((int)ControlSymbolFields.ElevationShield, value); - } - - /// PictureButton control - public bool FixedSize - { - get => this.Fields[(int)ControlSymbolFields.FixedSize].AsBool(); - set => this.Set((int)ControlSymbolFields.FixedSize, value); - } - - /// PictureButton control - public bool Icon - { - get => this.Fields[(int)ControlSymbolFields.Icon].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon, value); - } - - /// PictureButton control - public bool Icon16 - { - get => this.Fields[(int)ControlSymbolFields.Icon16].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon16, value); - } - - /// PictureButton control - public bool Icon32 - { - get => this.Fields[(int)ControlSymbolFields.Icon32].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon32, value); - } - - /// PictureButton control - public bool Icon48 - { - get => this.Fields[(int)ControlSymbolFields.Icon48].AsBool(); - set => this.Set((int)ControlSymbolFields.Icon48, value); - } - */ - public bool LeftScroll - { - get => this.Fields[(int)ControlSymbolFields.LeftScroll].AsBool(); - set => this.Set((int)ControlSymbolFields.LeftScroll, value); - } - /* - /// PictureButton control - public bool PushLike - { - get => this.Fields[(int)ControlSymbolFields.PushLike].AsBool(); - set => this.Set((int)ControlSymbolFields.PushLike, value); - } - - /// Edit control - public bool Mulitline - { - get => this.Fields[(int)ControlSymbolFields.Mulitline].AsBool(); - set => this.Set((int)ControlSymbolFields.Mulitline, value); - } - */ - public bool RightAligned - { - get => this.Fields[(int)ControlSymbolFields.RightAligned].AsBool(); - set => this.Set((int)ControlSymbolFields.RightAligned, value); - } - - public bool RightToLeft - { - get => this.Fields[(int)ControlSymbolFields.RightToLeft].AsBool(); - set => this.Set((int)ControlSymbolFields.RightToLeft, value); - } - /* - /// VolumeCostList control - public bool ShowRollbackCost - { - get => this.Fields[(int)ControlSymbolFields.ShowRollbackCost].AsBool(); - set => this.Set((int)ControlSymbolFields.ShowRollbackCost, value); - } - - /// ListBox and ComboBox control - public bool Sorted - { - get => this.Fields[(int)ControlSymbolFields.Sorted].AsBool(); - set => this.Set((int)ControlSymbolFields.Sorted, value); - } - */ - public bool Sunken - { - get => this.Fields[(int)ControlSymbolFields.Sunken].AsBool(); - set => this.Set((int)ControlSymbolFields.Sunken, value); - } - - public bool Visible - { - get => this.Fields[(int)ControlSymbolFields.Visible].AsBool(); - set => this.Set((int)ControlSymbolFields.Visible, value); - } - - public string Property - { - get => (string)this.Fields[(int)ControlSymbolFields.Property]; - set => this.Set((int)ControlSymbolFields.Property, value); - } - - public string Text - { - get => (string)this.Fields[(int)ControlSymbolFields.Text]; - set => this.Set((int)ControlSymbolFields.Text, value); - } - - public string NextControlRef - { - get => (string)this.Fields[(int)ControlSymbolFields.NextControlRef]; - set => this.Set((int)ControlSymbolFields.NextControlRef, value); - } - - public string Help - { - get => (string)this.Fields[(int)ControlSymbolFields.Help]; - set => this.Set((int)ControlSymbolFields.Help, value); - } - - public bool TrackDiskSpace - { - get => this.Fields[(int)ControlSymbolFields.TrackDiskSpace].AsBool(); - set => this.Set((int)ControlSymbolFields.TrackDiskSpace, value); - } - - public IntermediateFieldPathValue SourceFile - { - get => this.Fields[(int)ControlSymbolFields.SourceFile].AsPath(); - set => this.Set((int)ControlSymbolFields.SourceFile, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CreateFolderSymbol.cs b/src/WixToolset.Data/Symbols/CreateFolderSymbol.cs deleted file mode 100644 index 2b282266..00000000 --- a/src/WixToolset.Data/Symbols/CreateFolderSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CreateFolder = new IntermediateSymbolDefinition( - SymbolDefinitionType.CreateFolder, - new[] - { - new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(CreateFolderSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CreateFolderSymbolFields - { - DirectoryRef, - ComponentRef, - } - - public class CreateFolderSymbol : IntermediateSymbol - { - public CreateFolderSymbol() : base(SymbolDefinitions.CreateFolder, null, null) - { - } - - public CreateFolderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CreateFolder, sourceLineNumber, id) - { - } - - public IntermediateField this[CreateFolderSymbolFields index] => this.Fields[(int)index]; - - public string DirectoryRef - { - get => (string)this.Fields[(int)CreateFolderSymbolFields.DirectoryRef]; - set => this.Set((int)CreateFolderSymbolFields.DirectoryRef, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)CreateFolderSymbolFields.ComponentRef]; - set => this.Set((int)CreateFolderSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/CustomActionSymbol.cs b/src/WixToolset.Data/Symbols/CustomActionSymbol.cs deleted file mode 100644 index 1180dab4..00000000 --- a/src/WixToolset.Data/Symbols/CustomActionSymbol.cs +++ /dev/null @@ -1,168 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition CustomAction = new IntermediateSymbolDefinition( - SymbolDefinitionType.CustomAction, - new[] - { - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ExecutionType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.SourceType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TargetType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Async), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.IgnoreResult), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Impersonate), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.PatchUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TSAware), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Win64), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ScriptFile), IntermediateFieldType.Path), - }, - typeof(CustomActionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum CustomActionSymbolFields - { - ExecutionType, - Source, - SourceType, - Target, - TargetType, - Async, - Hidden, - IgnoreResult, - Impersonate, - PatchUninstall, - TSAware, - Win64, - ScriptFile - } - - public enum CustomActionExecutionType - { - Immediate, - FirstSequence = 256, - OncePerProcess = 512, - ClientRepeat = 768, - Deferred = 1024, - Rollback = 1280, - Commit = 1536, - } - - public enum CustomActionSourceType - { - Binary, - File = 0x10, - Directory = 0x20, - Property = 0x30, - } - - public enum CustomActionTargetType - { - Dll = 1, - Exe = 2, - TextData = 3, - JScript = 5, - VBScript = 6, - } - - public class CustomActionSymbol : IntermediateSymbol - { - public CustomActionSymbol() : base(SymbolDefinitions.CustomAction, null, null) - { - } - - public CustomActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CustomAction, sourceLineNumber, id) - { - } - - public IntermediateField this[CustomActionSymbolFields index] => this.Fields[(int)index]; - - public CustomActionExecutionType ExecutionType - { - get => (CustomActionExecutionType)this.Fields[(int)CustomActionSymbolFields.ExecutionType].AsNumber(); - set => this.Set((int)CustomActionSymbolFields.ExecutionType, (int)value); - } - - public string Source - { - get => (string)this.Fields[(int)CustomActionSymbolFields.Source]; - set => this.Set((int)CustomActionSymbolFields.Source, value); - } - - public CustomActionSourceType SourceType - { - get => (CustomActionSourceType)this.Fields[(int)CustomActionSymbolFields.SourceType].AsNumber(); - set => this.Set((int)CustomActionSymbolFields.SourceType, (int)value); - } - - public string Target - { - get => (string)this.Fields[(int)CustomActionSymbolFields.Target]; - set => this.Set((int)CustomActionSymbolFields.Target, value); - } - - public CustomActionTargetType TargetType - { - get => (CustomActionTargetType)this.Fields[(int)CustomActionSymbolFields.TargetType].AsNumber(); - set => this.Set((int)CustomActionSymbolFields.TargetType, (int)value); - } - - public bool Async - { - get => this.Fields[(int)CustomActionSymbolFields.Async].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Async, value); - } - - public bool Hidden - { - get => this.Fields[(int)CustomActionSymbolFields.Hidden].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Hidden, value); - } - - public bool IgnoreResult - { - get => this.Fields[(int)CustomActionSymbolFields.IgnoreResult].AsBool(); - set => this.Set((int)CustomActionSymbolFields.IgnoreResult, value); - } - - public bool Impersonate - { - get => this.Fields[(int)CustomActionSymbolFields.Impersonate].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Impersonate, value); - } - - public bool PatchUninstall - { - get => this.Fields[(int)CustomActionSymbolFields.PatchUninstall].AsBool(); - set => this.Set((int)CustomActionSymbolFields.PatchUninstall, value); - } - - public bool TSAware - { - get => this.Fields[(int)CustomActionSymbolFields.TSAware].AsBool(); - set => this.Set((int)CustomActionSymbolFields.TSAware, value); - } - - public bool Win64 - { - get => this.Fields[(int)CustomActionSymbolFields.Win64].AsBool(); - set => this.Set((int)CustomActionSymbolFields.Win64, value); - } - - public IntermediateFieldPathValue ScriptFile - { - get => this.Fields[(int)CustomActionSymbolFields.ScriptFile].AsPath(); - set => this.Set((int)CustomActionSymbolFields.ScriptFile, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/DialogSymbol.cs b/src/WixToolset.Data/Symbols/DialogSymbol.cs deleted file mode 100644 index ee030405..00000000 --- a/src/WixToolset.Data/Symbols/DialogSymbol.cs +++ /dev/null @@ -1,188 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Dialog = new IntermediateSymbolDefinition( - SymbolDefinitionType.Dialog, - new[] - { - new IntermediateFieldDefinition(nameof(DialogSymbolFields.HCentering), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.VCentering), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.CustomPalette), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.ErrorDialog), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Visible), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Modal), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.KeepModeless), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.LeftScroll), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Minimize), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightAligned), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightToLeft), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.SystemModal), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.FirstControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.DefaultControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DialogSymbolFields.CancelControlRef), IntermediateFieldType.String), - }, - typeof(DialogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DialogSymbolFields - { - HCentering, - VCentering, - Width, - Height, - CustomPalette, - ErrorDialog, - Visible, - Modal, - KeepModeless, - LeftScroll, - Minimize, - RightAligned, - RightToLeft, - SystemModal, - TrackDiskSpace, - Title, - FirstControlRef, - DefaultControlRef, - CancelControlRef, - } - - public class DialogSymbol : IntermediateSymbol - { - public DialogSymbol() : base(SymbolDefinitions.Dialog, null, null) - { - } - - public DialogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Dialog, sourceLineNumber, id) - { - } - - public IntermediateField this[DialogSymbolFields index] => this.Fields[(int)index]; - - public int HCentering - { - get => (int)this.Fields[(int)DialogSymbolFields.HCentering]; - set => this.Set((int)DialogSymbolFields.HCentering, value); - } - - public int VCentering - { - get => (int)this.Fields[(int)DialogSymbolFields.VCentering]; - set => this.Set((int)DialogSymbolFields.VCentering, value); - } - - public int Width - { - get => (int)this.Fields[(int)DialogSymbolFields.Width]; - set => this.Set((int)DialogSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)DialogSymbolFields.Height]; - set => this.Set((int)DialogSymbolFields.Height, value); - } - - public bool CustomPalette - { - get => this.Fields[(int)DialogSymbolFields.CustomPalette].AsBool(); - set => this.Set((int)DialogSymbolFields.CustomPalette, value); - } - - public bool ErrorDialog - { - get => this.Fields[(int)DialogSymbolFields.ErrorDialog].AsBool(); - set => this.Set((int)DialogSymbolFields.ErrorDialog, value); - } - - public bool Visible - { - get => this.Fields[(int)DialogSymbolFields.Visible].AsBool(); - set => this.Set((int)DialogSymbolFields.Visible, value); - } - - public bool Modal - { - get => this.Fields[(int)DialogSymbolFields.Modal].AsBool(); - set => this.Set((int)DialogSymbolFields.Modal, value); - } - - public bool KeepModeless - { - get => this.Fields[(int)DialogSymbolFields.KeepModeless].AsBool(); - set => this.Set((int)DialogSymbolFields.KeepModeless, value); - } - - public bool LeftScroll - { - get => this.Fields[(int)DialogSymbolFields.LeftScroll].AsBool(); - set => this.Set((int)DialogSymbolFields.LeftScroll, value); - } - - public bool Minimize - { - get => this.Fields[(int)DialogSymbolFields.Minimize].AsBool(); - set => this.Set((int)DialogSymbolFields.Minimize, value); - } - - public bool RightAligned - { - get => this.Fields[(int)DialogSymbolFields.RightAligned].AsBool(); - set => this.Set((int)DialogSymbolFields.RightAligned, value); - } - - public bool RightToLeft - { - get => this.Fields[(int)DialogSymbolFields.RightToLeft].AsBool(); - set => this.Set((int)DialogSymbolFields.RightToLeft, value); - } - - public bool TrackDiskSpace - { - get => this.Fields[(int)DialogSymbolFields.TrackDiskSpace].AsBool(); - set => this.Set((int)DialogSymbolFields.TrackDiskSpace, value); - } - - public bool SystemModal - { - get => this.Fields[(int)DialogSymbolFields.SystemModal].AsBool(); - set => this.Set((int)DialogSymbolFields.SystemModal, value); - } - - public string Title - { - get => (string)this.Fields[(int)DialogSymbolFields.Title]; - set => this.Set((int)DialogSymbolFields.Title, value); - } - - public string FirstControlRef - { - get => (string)this.Fields[(int)DialogSymbolFields.FirstControlRef]; - set => this.Set((int)DialogSymbolFields.FirstControlRef, value); - } - - public string DefaultControlRef - { - get => (string)this.Fields[(int)DialogSymbolFields.DefaultControlRef]; - set => this.Set((int)DialogSymbolFields.DefaultControlRef, value); - } - - public string CancelControlRef - { - get => (string)this.Fields[(int)DialogSymbolFields.CancelControlRef]; - set => this.Set((int)DialogSymbolFields.CancelControlRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/DirectorySymbol.cs b/src/WixToolset.Data/Symbols/DirectorySymbol.cs deleted file mode 100644 index 209f5ca1..00000000 --- a/src/WixToolset.Data/Symbols/DirectorySymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Directory = new IntermediateSymbolDefinition( - SymbolDefinitionType.Directory, - new[] - { - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ParentDirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), - }, - typeof(DirectorySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DirectorySymbolFields - { - ParentDirectoryRef, - Name, - ShortName, - SourceName, - SourceShortName, - ComponentGuidGenerationSeed, - } - - public class DirectorySymbol : IntermediateSymbol - { - public DirectorySymbol() : base(SymbolDefinitions.Directory, null, null) - { - } - - public DirectorySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Directory, sourceLineNumber, id) - { - } - - public IntermediateField this[DirectorySymbolFields index] => this.Fields[(int)index]; - - public string ParentDirectoryRef - { - get => (string)this.Fields[(int)DirectorySymbolFields.ParentDirectoryRef]; - set => this.Set((int)DirectorySymbolFields.ParentDirectoryRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)DirectorySymbolFields.Name]; - set => this.Set((int)DirectorySymbolFields.Name, value); - } - - public string ShortName - { - get => (string)this.Fields[(int)DirectorySymbolFields.ShortName]; - set => this.Set((int)DirectorySymbolFields.ShortName, value); - } - - public string SourceName - { - get => (string)this.Fields[(int)DirectorySymbolFields.SourceName]; - set => this.Set((int)DirectorySymbolFields.SourceName, value); - } - - public string SourceShortName - { - get => (string)this.Fields[(int)DirectorySymbolFields.SourceShortName]; - set => this.Set((int)DirectorySymbolFields.SourceShortName, value); - } - - public string ComponentGuidGenerationSeed - { - get => (string)this.Fields[(int)DirectorySymbolFields.ComponentGuidGenerationSeed]; - set => this.Set((int)DirectorySymbolFields.ComponentGuidGenerationSeed, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/DrLocatorSymbol.cs b/src/WixToolset.Data/Symbols/DrLocatorSymbol.cs deleted file mode 100644 index e403c61c..00000000 --- a/src/WixToolset.Data/Symbols/DrLocatorSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition DrLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.DrLocator, - new[] - { - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Path), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Depth), IntermediateFieldType.Number), - }, - typeof(DrLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DrLocatorSymbolFields - { - SignatureRef, - Parent, - Path, - Depth, - } - - public class DrLocatorSymbol : IntermediateSymbol - { - public DrLocatorSymbol() : base(SymbolDefinitions.DrLocator, null, null) - { - } - - public DrLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DrLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[DrLocatorSymbolFields index] => this.Fields[(int)index]; - - public string SignatureRef - { - get => (string)this.Fields[(int)DrLocatorSymbolFields.SignatureRef]; - set => this.Set((int)DrLocatorSymbolFields.SignatureRef, value); - } - - public string Parent - { - get => (string)this.Fields[(int)DrLocatorSymbolFields.Parent]; - set => this.Set((int)DrLocatorSymbolFields.Parent, value); - } - - public string Path - { - get => (string)this.Fields[(int)DrLocatorSymbolFields.Path]; - set => this.Set((int)DrLocatorSymbolFields.Path, value); - } - - public int? Depth - { - get => (int?)this.Fields[(int)DrLocatorSymbolFields.Depth]; - set => this.Set((int)DrLocatorSymbolFields.Depth, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs b/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs deleted file mode 100644 index f2d1d94f..00000000 --- a/src/WixToolset.Data/Symbols/DuplicateFileSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition DuplicateFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.DuplicateFile, - new[] - { - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationFolder), IntermediateFieldType.String), - }, - typeof(DuplicateFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum DuplicateFileSymbolFields - { - ComponentRef, - FileRef, - DestinationName, - DestinationShortName, - DestinationFolder, - } - - public class DuplicateFileSymbol : IntermediateSymbol - { - public DuplicateFileSymbol() : base(SymbolDefinitions.DuplicateFile, null, null) - { - } - - public DuplicateFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DuplicateFile, sourceLineNumber, id) - { - } - - public IntermediateField this[DuplicateFileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.ComponentRef]; - set => this.Set((int)DuplicateFileSymbolFields.ComponentRef, value); - } - - public string FileRef - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.FileRef]; - set => this.Set((int)DuplicateFileSymbolFields.FileRef, value); - } - - public string DestinationName - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationName]; - set => this.Set((int)DuplicateFileSymbolFields.DestinationName, value); - } - - public string DestinationShortName - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationShortName]; - set => this.Set((int)DuplicateFileSymbolFields.DestinationShortName, value); - } - - public string DestinationFolder - { - get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationFolder]; - set => this.Set((int)DuplicateFileSymbolFields.DestinationFolder, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/EnvironmentSymbol.cs b/src/WixToolset.Data/Symbols/EnvironmentSymbol.cs deleted file mode 100644 index 3fe12d4b..00000000 --- a/src/WixToolset.Data/Symbols/EnvironmentSymbol.cs +++ /dev/null @@ -1,114 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Environment = new IntermediateSymbolDefinition( - SymbolDefinitionType.Environment, - new[] - { - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Separator), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Part), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Permanent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.System), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(EnvironmentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum EnvironmentSymbolFields - { - Name, - Value, - Separator, - Action, - Part, - Permanent, - System, - ComponentRef, - } - - public enum EnvironmentActionType - { - Set, - Create, - Remove - } - - public enum EnvironmentPartType - { - All, - First, - Last - } - - public class EnvironmentSymbol : IntermediateSymbol - { - public EnvironmentSymbol() : base(SymbolDefinitions.Environment, null, null) - { - } - - public EnvironmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Environment, sourceLineNumber, id) - { - } - - public IntermediateField this[EnvironmentSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.Name]; - set => this.Set((int)EnvironmentSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.Value]; - set => this.Set((int)EnvironmentSymbolFields.Value, value); - } - - public string Separator - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.Separator]; - set => this.Set((int)EnvironmentSymbolFields.Separator, value); - } - - public EnvironmentActionType? Action - { - get => (EnvironmentActionType?)this.Fields[(int)EnvironmentSymbolFields.Action].AsNullableNumber(); - set => this.Set((int)EnvironmentSymbolFields.Action, (int?)value); - } - - public EnvironmentPartType? Part - { - get => (EnvironmentPartType?)this.Fields[(int)EnvironmentSymbolFields.Part].AsNullableNumber(); - set => this.Set((int)EnvironmentSymbolFields.Part, (int?)value); - } - - public bool Permanent - { - get => this.Fields[(int)EnvironmentSymbolFields.Permanent].AsBool(); - set => this.Set((int)EnvironmentSymbolFields.Permanent, value); - } - - public bool System - { - get => this.Fields[(int)EnvironmentSymbolFields.System].AsBool(); - set => this.Set((int)EnvironmentSymbolFields.System, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)EnvironmentSymbolFields.ComponentRef]; - set => this.Set((int)EnvironmentSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ErrorSymbol.cs b/src/WixToolset.Data/Symbols/ErrorSymbol.cs deleted file mode 100644 index d2994598..00000000 --- a/src/WixToolset.Data/Symbols/ErrorSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Error = new IntermediateSymbolDefinition( - SymbolDefinitionType.Error, - new[] - { - new IntermediateFieldDefinition(nameof(ErrorSymbolFields.Message), IntermediateFieldType.String), - }, - typeof(ErrorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ErrorSymbolFields - { - Message, - } - - public class ErrorSymbol : IntermediateSymbol - { - public ErrorSymbol() : base(SymbolDefinitions.Error, null, null) - { - } - - public ErrorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Error, sourceLineNumber, id) - { - } - - public IntermediateField this[ErrorSymbolFields index] => this.Fields[(int)index]; - - public string Message - { - get => (string)this.Fields[(int)ErrorSymbolFields.Message]; - set => this.Set((int)ErrorSymbolFields.Message, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/EventMappingSymbol.cs b/src/WixToolset.Data/Symbols/EventMappingSymbol.cs deleted file mode 100644 index fec7be3b..00000000 --- a/src/WixToolset.Data/Symbols/EventMappingSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition EventMapping = new IntermediateSymbolDefinition( - SymbolDefinitionType.EventMapping, - new[] - { - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.DialogRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.ControlRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Event), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Attribute), IntermediateFieldType.String), - }, - typeof(EventMappingSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum EventMappingSymbolFields - { - DialogRef, - ControlRef, - Event, - Attribute, - } - - public class EventMappingSymbol : IntermediateSymbol - { - public EventMappingSymbol() : base(SymbolDefinitions.EventMapping, null, null) - { - } - - public EventMappingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.EventMapping, sourceLineNumber, id) - { - } - - public IntermediateField this[EventMappingSymbolFields index] => this.Fields[(int)index]; - - public string DialogRef - { - get => (string)this.Fields[(int)EventMappingSymbolFields.DialogRef]; - set => this.Set((int)EventMappingSymbolFields.DialogRef, value); - } - - public string ControlRef - { - get => (string)this.Fields[(int)EventMappingSymbolFields.ControlRef]; - set => this.Set((int)EventMappingSymbolFields.ControlRef, value); - } - - public string Event - { - get => (string)this.Fields[(int)EventMappingSymbolFields.Event]; - set => this.Set((int)EventMappingSymbolFields.Event, value); - } - - public string Attribute - { - get => (string)this.Fields[(int)EventMappingSymbolFields.Attribute]; - set => this.Set((int)EventMappingSymbolFields.Attribute, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ExtensionSymbol.cs b/src/WixToolset.Data/Symbols/ExtensionSymbol.cs deleted file mode 100644 index b8806971..00000000 --- a/src/WixToolset.Data/Symbols/ExtensionSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Extension = new IntermediateSymbolDefinition( - SymbolDefinitionType.Extension, - new[] - { - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.Extension), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.MimeRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.FeatureRef), IntermediateFieldType.String), - }, - typeof(ExtensionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ExtensionSymbolFields - { - Extension, - ComponentRef, - ProgIdRef, - MimeRef, - FeatureRef, - } - - public class ExtensionSymbol : IntermediateSymbol - { - public ExtensionSymbol() : base(SymbolDefinitions.Extension, null, null) - { - } - - public ExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Extension, sourceLineNumber, id) - { - } - - public IntermediateField this[ExtensionSymbolFields index] => this.Fields[(int)index]; - - public string Extension - { - get => (string)this.Fields[(int)ExtensionSymbolFields.Extension]; - set => this.Set((int)ExtensionSymbolFields.Extension, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.ComponentRef]; - set => this.Set((int)ExtensionSymbolFields.ComponentRef, value); - } - - public string ProgIdRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.ProgIdRef]; - set => this.Set((int)ExtensionSymbolFields.ProgIdRef, value); - } - - public string MimeRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.MimeRef]; - set => this.Set((int)ExtensionSymbolFields.MimeRef, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)ExtensionSymbolFields.FeatureRef]; - set => this.Set((int)ExtensionSymbolFields.FeatureRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs b/src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs deleted file mode 100644 index 87888f0b..00000000 --- a/src/WixToolset.Data/Symbols/ExternalFilesSymbol.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ExternalFiles = new IntermediateSymbolDefinition( - SymbolDefinitionType.ExternalFiles, - new[] - { - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FilePath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Order), IntermediateFieldType.Number), - }, - typeof(ExternalFilesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ExternalFilesSymbolFields - { - Family, - FTK, - FilePath, - SymbolPaths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - Order, - } - - public class ExternalFilesSymbol : IntermediateSymbol - { - public ExternalFilesSymbol() : base(SymbolDefinitions.ExternalFiles, null, null) - { - } - - public ExternalFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ExternalFiles, sourceLineNumber, id) - { - } - - public IntermediateField this[ExternalFilesSymbolFields index] => this.Fields[(int)index]; - - public string Family - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.Family]; - set => this.Set((int)ExternalFilesSymbolFields.Family, value); - } - - public string FTK - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.FTK]; - set => this.Set((int)ExternalFilesSymbolFields.FTK, value); - } - - public string FilePath - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.FilePath]; - set => this.Set((int)ExternalFilesSymbolFields.FilePath, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.SymbolPaths]; - set => this.Set((int)ExternalFilesSymbolFields.SymbolPaths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreOffsets]; - set => this.Set((int)ExternalFilesSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreLengths]; - set => this.Set((int)ExternalFilesSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)ExternalFilesSymbolFields.RetainOffsets]; - set => this.Set((int)ExternalFilesSymbolFields.RetainOffsets, value); - } - - public int Order - { - get => (int)this.Fields[(int)ExternalFilesSymbolFields.Order]; - set => this.Set((int)ExternalFilesSymbolFields.Order, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs b/src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs deleted file mode 100644 index 84cd5b4b..00000000 --- a/src/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition FamilyFileRanges = new IntermediateSymbolDefinition( - SymbolDefinitionType.FamilyFileRanges, - new[] - { - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainLengths), IntermediateFieldType.String), - }, - typeof(FamilyFileRangesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FamilyFileRangesSymbolFields - { - Family, - FTK, - RetainOffsets, - RetainLengths, - } - - public class FamilyFileRangesSymbol : IntermediateSymbol - { - public FamilyFileRangesSymbol() : base(SymbolDefinitions.FamilyFileRanges, null, null) - { - } - - public FamilyFileRangesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FamilyFileRanges, sourceLineNumber, id) - { - } - - public IntermediateField this[FamilyFileRangesSymbolFields index] => this.Fields[(int)index]; - - public string Family - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.Family]; - set => this.Set((int)FamilyFileRangesSymbolFields.Family, value); - } - - public string FTK - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.FTK]; - set => this.Set((int)FamilyFileRangesSymbolFields.FTK, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainOffsets]; - set => this.Set((int)FamilyFileRangesSymbolFields.RetainOffsets, value); - } - - public string RetainLengths - { - get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainLengths]; - set => this.Set((int)FamilyFileRangesSymbolFields.RetainLengths, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs b/src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs deleted file mode 100644 index af51daed..00000000 --- a/src/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition FeatureComponents = new IntermediateSymbolDefinition( - SymbolDefinitionType.FeatureComponents, - new[] - { - new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(FeatureComponentsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FeatureComponentsSymbolFields - { - FeatureRef, - ComponentRef, - } - - public class FeatureComponentsSymbol : IntermediateSymbol - { - public FeatureComponentsSymbol() : base(SymbolDefinitions.FeatureComponents, null, null) - { - } - - public FeatureComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FeatureComponents, sourceLineNumber, id) - { - } - - public IntermediateField this[FeatureComponentsSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)FeatureComponentsSymbolFields.FeatureRef]; - set => this.Set((int)FeatureComponentsSymbolFields.FeatureRef, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)FeatureComponentsSymbolFields.ComponentRef]; - set => this.Set((int)FeatureComponentsSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FeatureSymbol.cs b/src/WixToolset.Data/Symbols/FeatureSymbol.cs deleted file mode 100644 index 67972b63..00000000 --- a/src/WixToolset.Data/Symbols/FeatureSymbol.cs +++ /dev/null @@ -1,129 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Feature = new IntermediateSymbolDefinition( - SymbolDefinitionType.Feature, - new[] - { - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.ParentFeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Display), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAbsent), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAdvertise), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.InstallDefault), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FeatureSymbolFields.TypicalDefault), IntermediateFieldType.Number), - }, - typeof(FeatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FeatureSymbolFields - { - ParentFeatureRef, - Title, - Description, - Display, - Level, - DirectoryRef, - DisallowAbsent, - DisallowAdvertise, - InstallDefault, - TypicalDefault, - } - - public enum FeatureInstallDefault - { - Local, - Source, - FollowParent, - } - - public enum FeatureTypicalDefault - { - Install, - Advertise - } - - public class FeatureSymbol : IntermediateSymbol - { - public FeatureSymbol() : base(SymbolDefinitions.Feature, null, null) - { - } - - public FeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Feature, sourceLineNumber, id) - { - } - - public IntermediateField this[FeatureSymbolFields index] => this.Fields[(int)index]; - - public string ParentFeatureRef - { - get => (string)this.Fields[(int)FeatureSymbolFields.ParentFeatureRef]; - set => this.Set((int)FeatureSymbolFields.ParentFeatureRef, value); - } - - public string Title - { - get => (string)this.Fields[(int)FeatureSymbolFields.Title]; - set => this.Set((int)FeatureSymbolFields.Title, value); - } - - public string Description - { - get => (string)this.Fields[(int)FeatureSymbolFields.Description]; - set => this.Set((int)FeatureSymbolFields.Description, value); - } - - public int Display - { - get => (int)this.Fields[(int)FeatureSymbolFields.Display]; - set => this.Set((int)FeatureSymbolFields.Display, value); - } - - public int Level - { - get => (int)this.Fields[(int)FeatureSymbolFields.Level]; - set => this.Set((int)FeatureSymbolFields.Level, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)FeatureSymbolFields.DirectoryRef]; - set => this.Set((int)FeatureSymbolFields.DirectoryRef, value); - } - - public bool DisallowAbsent - { - get => this.Fields[(int)FeatureSymbolFields.DisallowAbsent].AsBool(); - set => this.Set((int)FeatureSymbolFields.DisallowAbsent, value); - } - - public bool DisallowAdvertise - { - get => this.Fields[(int)FeatureSymbolFields.DisallowAdvertise].AsBool(); - set => this.Set((int)FeatureSymbolFields.DisallowAdvertise, value); - } - - public FeatureInstallDefault InstallDefault - { - get => (FeatureInstallDefault)this.Fields[(int)FeatureSymbolFields.InstallDefault].AsNumber(); - set => this.Set((int)FeatureSymbolFields.InstallDefault, (int)value); - } - - public FeatureTypicalDefault TypicalDefault - { - get => (FeatureTypicalDefault)this.Fields[(int)FeatureSymbolFields.TypicalDefault].AsNumber(); - set => this.Set((int)FeatureSymbolFields.TypicalDefault, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs b/src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs deleted file mode 100644 index 3abf2915..00000000 --- a/src/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition FileSFPCatalog = new IntermediateSymbolDefinition( - SymbolDefinitionType.FileSFPCatalog, - new[] - { - new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.SFPCatalogRef), IntermediateFieldType.String), - }, - typeof(FileSFPCatalogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum FileSFPCatalogSymbolFields - { - FileRef, - SFPCatalogRef, - } - - public class FileSFPCatalogSymbol : IntermediateSymbol - { - public FileSFPCatalogSymbol() : base(SymbolDefinitions.FileSFPCatalog, null, null) - { - } - - public FileSFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FileSFPCatalog, sourceLineNumber, id) - { - } - - public IntermediateField this[FileSFPCatalogSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.FileRef]; - set => this.Set((int)FileSFPCatalogSymbolFields.FileRef, value); - } - - public string SFPCatalogRef - { - get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.SFPCatalogRef]; - set => this.Set((int)FileSFPCatalogSymbolFields.SFPCatalogRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/FileSymbol.cs b/src/WixToolset.Data/Symbols/FileSymbol.cs deleted file mode 100644 index 784b7846..00000000 --- a/src/WixToolset.Data/Symbols/FileSymbol.cs +++ /dev/null @@ -1,256 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition File = new IntermediateSymbolDefinition( - SymbolDefinitionType.File, - new[] - { - new IntermediateFieldDefinition(nameof(FileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.FileSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.Source), IntermediateFieldType.Path), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.FontTitle), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.SelfRegCost), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.BindPath), IntermediateFieldType.String), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.Sequence), IntermediateFieldType.Number), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchGroup), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(FileSymbolFields.DeltaPatchHeaderSource), IntermediateFieldType.String), - - new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(FileSymbolFields.SymbolPaths), IntermediateFieldType.String), - }, - typeof(FileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum FileSymbolFields - { - ComponentRef, - Name, - ShortName, - FileSize, - Version, - Language, - Attributes, - DirectoryRef, - DiskId, - Source, - - FontTitle, - SelfRegCost, - BindPath, - - Sequence, - - PatchGroup, - PatchAttributes, - DeltaPatchHeaderSource, - - RetainLengths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - SymbolPaths, - } - - [Flags] - public enum FileSymbolAttributes : int - { - None = 0x0, - ReadOnly = 0x1, - Hidden = 0x2, - System = 0x4, - Vital = 0x8, - Compressed = 0x10, - Uncompressed = 0x20, - Checksum = 0x40, - } - - /// - /// PatchAttribute values - /// - [Flags] - public enum PatchAttributeType - { - None = 0, - - /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. - Ignore = 1, - - /// Set if the entire file should be installed rather than creating a binary patch. - IncludeWholeFile = 2, - - /// Set to indicate that the patch is non-vital. - AllowIgnoreOnError = 4, - - /// Allowed bits. - Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError - } - - public class FileSymbol : IntermediateSymbol - { - public FileSymbol() : base(SymbolDefinitions.File, null, null) - { - } - - public FileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.File, sourceLineNumber, id) - { - } - - public IntermediateField this[FileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)FileSymbolFields.ComponentRef]; - set => this.Set((int)FileSymbolFields.ComponentRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)FileSymbolFields.Name]; - set => this.Set((int)FileSymbolFields.Name, value); - } - - public string ShortName - { - get => (string)this.Fields[(int)FileSymbolFields.ShortName]; - set => this.Set((int)FileSymbolFields.ShortName, value); - } - - public int FileSize - { - get => (int)this.Fields[(int)FileSymbolFields.FileSize]; - set => this.Set((int)FileSymbolFields.FileSize, value); - } - - public string Version - { - get => (string)this.Fields[(int)FileSymbolFields.Version]; - set => this.Set((int)FileSymbolFields.Version, value); - } - - public string Language - { - get => (string)this.Fields[(int)FileSymbolFields.Language]; - set => this.Set((int)FileSymbolFields.Language, value); - } - - public FileSymbolAttributes Attributes - { - get => (FileSymbolAttributes)this.Fields[(int)FileSymbolFields.Attributes].AsNumber(); - set => this.Set((int)FileSymbolFields.Attributes, (int)value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)FileSymbolFields.DirectoryRef]; - set => this.Set((int)FileSymbolFields.DirectoryRef, value); - } - - public int? DiskId - { - get => (int?)this.Fields[(int)FileSymbolFields.DiskId]; - set => this.Set((int)FileSymbolFields.DiskId, value); - } - - public IntermediateFieldPathValue Source - { - get => this.Fields[(int)FileSymbolFields.Source].AsPath(); - set => this.Set((int)FileSymbolFields.Source, value); - } - - public string FontTitle - { - get => (string)this.Fields[(int)FileSymbolFields.FontTitle]; - set => this.Set((int)FileSymbolFields.FontTitle, value); - } - - public int? SelfRegCost - { - get => (int?)this.Fields[(int)FileSymbolFields.SelfRegCost]; - set => this.Set((int)FileSymbolFields.SelfRegCost, value); - } - - public string BindPath - { - get => (string)this.Fields[(int)FileSymbolFields.BindPath]; - set => this.Set((int)FileSymbolFields.BindPath, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)FileSymbolFields.Sequence]; - set => this.Set((int)FileSymbolFields.Sequence, value); - } - - public int? PatchGroup - { - get => (int?)this.Fields[(int)FileSymbolFields.PatchGroup]; - set => this.Set((int)FileSymbolFields.PatchGroup, value); - } - - public PatchAttributeType? PatchAttributes - { - get => (PatchAttributeType?)this.Fields[(int)FileSymbolFields.PatchAttributes].AsNullableNumber(); - set => this.Set((int)FileSymbolFields.PatchAttributes, (int?)value); - } - - public string DeltaPatchHeaderSource - { - get => (string)this.Fields[(int)FileSymbolFields.DeltaPatchHeaderSource]; - set => this.Set((int)FileSymbolFields.DeltaPatchHeaderSource, value); - } - - public string RetainLengths - { - get => (string)this.Fields[(int)FileSymbolFields.RetainLengths]; - set => this.Set((int)FileSymbolFields.RetainLengths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)FileSymbolFields.IgnoreOffsets]; - set => this.Set((int)FileSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)FileSymbolFields.IgnoreLengths]; - set => this.Set((int)FileSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)FileSymbolFields.RetainOffsets]; - set => this.Set((int)FileSymbolFields.RetainOffsets, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)FileSymbolFields.SymbolPaths]; - set => this.Set((int)FileSymbolFields.SymbolPaths, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/IconSymbol.cs b/src/WixToolset.Data/Symbols/IconSymbol.cs deleted file mode 100644 index f3c825ec..00000000 --- a/src/WixToolset.Data/Symbols/IconSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Icon = new IntermediateSymbolDefinition( - SymbolDefinitionType.Icon, - new[] - { - new IntermediateFieldDefinition(nameof(IconSymbolFields.Data), IntermediateFieldType.Path), - }, - typeof(IconSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IconSymbolFields - { - Data, - } - - public class IconSymbol : IntermediateSymbol - { - public IconSymbol() : base(SymbolDefinitions.Icon, null, null) - { - } - - public IconSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Icon, sourceLineNumber, id) - { - } - - public IntermediateField this[IconSymbolFields index] => this.Fields[(int)index]; - - public IntermediateFieldPathValue Data - { - get => this.Fields[(int)IconSymbolFields.Data].AsPath(); - set => this.Set((int)IconSymbolFields.Data, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs b/src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs deleted file mode 100644 index 090628ef..00000000 --- a/src/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ImageFamilies = new IntermediateSymbolDefinition( - SymbolDefinitionType.ImageFamilies, - new[] - { - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.Family), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaSrcPropName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaDiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.FileSequenceStart), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.VolumeLabel), IntermediateFieldType.String), - }, - typeof(ImageFamiliesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ImageFamiliesSymbolFields - { - Family, - MediaSrcPropName, - MediaDiskId, - FileSequenceStart, - DiskPrompt, - VolumeLabel, - } - - public class ImageFamiliesSymbol : IntermediateSymbol - { - public ImageFamiliesSymbol() : base(SymbolDefinitions.ImageFamilies, null, null) - { - } - - public ImageFamiliesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ImageFamilies, sourceLineNumber, id) - { - } - - public IntermediateField this[ImageFamiliesSymbolFields index] => this.Fields[(int)index]; - - public string Family - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.Family]; - set => this.Set((int)ImageFamiliesSymbolFields.Family, value); - } - - public string MediaSrcPropName - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.MediaSrcPropName]; - set => this.Set((int)ImageFamiliesSymbolFields.MediaSrcPropName, value); - } - - public int? MediaDiskId - { - get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.MediaDiskId]; - set => this.Set((int)ImageFamiliesSymbolFields.MediaDiskId, value); - } - - public int? FileSequenceStart - { - get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.FileSequenceStart]; - set => this.Set((int)ImageFamiliesSymbolFields.FileSequenceStart, value); - } - - public string DiskPrompt - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.DiskPrompt]; - set => this.Set((int)ImageFamiliesSymbolFields.DiskPrompt, value); - } - - public string VolumeLabel - { - get => (string)this.Fields[(int)ImageFamiliesSymbolFields.VolumeLabel]; - set => this.Set((int)ImageFamiliesSymbolFields.VolumeLabel, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/IniFileSymbol.cs b/src/WixToolset.Data/Symbols/IniFileSymbol.cs deleted file mode 100644 index 051acdbb..00000000 --- a/src/WixToolset.Data/Symbols/IniFileSymbol.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition IniFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.IniFile, - new[] - { - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ShortFileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.DirProperty), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Section), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(IniFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IniFileSymbolFields - { - FileName, - ShortFileName, - DirProperty, - Section, - Key, - Value, - Action, - ComponentRef, - } - - public class IniFileSymbol : IntermediateSymbol - { - public IniFileSymbol() : base(SymbolDefinitions.IniFile, null, null) - { - } - - public IniFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniFile, sourceLineNumber, id) - { - } - - public IntermediateField this[IniFileSymbolFields index] => this.Fields[(int)index]; - - public string FileName - { - get => (string)this.Fields[(int)IniFileSymbolFields.FileName]; - set => this.Set((int)IniFileSymbolFields.FileName, value); - } - - public string ShortFileName - { - get => (string)this.Fields[(int)IniFileSymbolFields.ShortFileName]; - set => this.Set((int)IniFileSymbolFields.ShortFileName, value); - } - - public string DirProperty - { - get => (string)this.Fields[(int)IniFileSymbolFields.DirProperty]; - set => this.Set((int)IniFileSymbolFields.DirProperty, value); - } - - public string Section - { - get => (string)this.Fields[(int)IniFileSymbolFields.Section]; - set => this.Set((int)IniFileSymbolFields.Section, value); - } - - public string Key - { - get => (string)this.Fields[(int)IniFileSymbolFields.Key]; - set => this.Set((int)IniFileSymbolFields.Key, value); - } - - public string Value - { - get => (string)this.Fields[(int)IniFileSymbolFields.Value]; - set => this.Set((int)IniFileSymbolFields.Value, value); - } - - public IniFileActionType Action - { - get => (IniFileActionType)this.Fields[(int)IniFileSymbolFields.Action]?.AsNumber(); - set => this.Set((int)IniFileSymbolFields.Action, (int)value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)IniFileSymbolFields.ComponentRef]; - set => this.Set((int)IniFileSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs b/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs deleted file mode 100644 index c36f0dfc..00000000 --- a/src/WixToolset.Data/Symbols/IniLocatorSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition IniLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.IniLocator, - new[] - { - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.ShortFileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Section), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Field), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Type), IntermediateFieldType.Number), - }, - typeof(IniLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IniLocatorSymbolFields - { - FileName, - ShortFileName, - Section, - Key, - Field, - Type, - } - - public class IniLocatorSymbol : IntermediateSymbol - { - public IniLocatorSymbol() : base(SymbolDefinitions.IniLocator, null, null) - { - } - - public IniLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[IniLocatorSymbolFields index] => this.Fields[(int)index]; - - public string FileName - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.FileName]; - set => this.Set((int)IniLocatorSymbolFields.FileName, value); - } - - public string ShortFileName - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.ShortFileName]; - set => this.Set((int)IniLocatorSymbolFields.ShortFileName, value); - } - - public string Section - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.Section]; - set => this.Set((int)IniLocatorSymbolFields.Section, value); - } - - public string Key - { - get => (string)this.Fields[(int)IniLocatorSymbolFields.Key]; - set => this.Set((int)IniLocatorSymbolFields.Key, value); - } - - public int? Field - { - get => (int?)this.Fields[(int)IniLocatorSymbolFields.Field]; - set => this.Set((int)IniLocatorSymbolFields.Field, value); - } - - public int? Type - { - get => (int?)this.Fields[(int)IniLocatorSymbolFields.Type]; - set => this.Set((int)IniLocatorSymbolFields.Type, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs b/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs deleted file mode 100644 index a04567ec..00000000 --- a/src/WixToolset.Data/Symbols/InifFileActionSymbol.cs +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - public enum IniFileActionType - { - AddLine, - AddTag, - CreateLine, - RemoveLine, - RemoveTag, - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs b/src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs deleted file mode 100644 index 681f1030..00000000 --- a/src/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition IsolatedComponent = new IntermediateSymbolDefinition( - SymbolDefinitionType.IsolatedComponent, - new[] - { - new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.SharedComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.ApplicationComponentRef), IntermediateFieldType.String), - }, - typeof(IsolatedComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum IsolatedComponentSymbolFields - { - SharedComponentRef, - ApplicationComponentRef, - } - - public class IsolatedComponentSymbol : IntermediateSymbol - { - public IsolatedComponentSymbol() : base(SymbolDefinitions.IsolatedComponent, null, null) - { - } - - public IsolatedComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IsolatedComponent, sourceLineNumber, id) - { - } - - public IntermediateField this[IsolatedComponentSymbolFields index] => this.Fields[(int)index]; - - public string SharedComponentRef - { - get => (string)this.Fields[(int)IsolatedComponentSymbolFields.SharedComponentRef]; - set => this.Set((int)IsolatedComponentSymbolFields.SharedComponentRef, value); - } - - public string ApplicationComponentRef - { - get => (string)this.Fields[(int)IsolatedComponentSymbolFields.ApplicationComponentRef]; - set => this.Set((int)IsolatedComponentSymbolFields.ApplicationComponentRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs b/src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs deleted file mode 100644 index a160f25f..00000000 --- a/src/WixToolset.Data/Symbols/LaunchConditionSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition LaunchCondition = new IntermediateSymbolDefinition( - SymbolDefinitionType.LaunchCondition, - new[] - { - new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Description), IntermediateFieldType.String), - }, - typeof(LaunchConditionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum LaunchConditionSymbolFields - { - Condition, - Description, - } - - public class LaunchConditionSymbol : IntermediateSymbol - { - public LaunchConditionSymbol() : base(SymbolDefinitions.LaunchCondition, null, null) - { - } - - public LaunchConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LaunchCondition, sourceLineNumber, id) - { - } - - public IntermediateField this[LaunchConditionSymbolFields index] => this.Fields[(int)index]; - - public string Condition - { - get => (string)this.Fields[(int)LaunchConditionSymbolFields.Condition]; - set => this.Set((int)LaunchConditionSymbolFields.Condition, value); - } - - public string Description - { - get => (string)this.Fields[(int)LaunchConditionSymbolFields.Description]; - set => this.Set((int)LaunchConditionSymbolFields.Description, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ListBoxSymbol.cs b/src/WixToolset.Data/Symbols/ListBoxSymbol.cs deleted file mode 100644 index 174327d1..00000000 --- a/src/WixToolset.Data/Symbols/ListBoxSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ListBox = new IntermediateSymbolDefinition( - SymbolDefinitionType.ListBox, - new[] - { - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Text), IntermediateFieldType.String), - }, - typeof(ListBoxSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ListBoxSymbolFields - { - Property, - Order, - Value, - Text, - } - - public class ListBoxSymbol : IntermediateSymbol - { - public ListBoxSymbol() : base(SymbolDefinitions.ListBox, null, null) - { - } - - public ListBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListBox, sourceLineNumber, id) - { - } - - public IntermediateField this[ListBoxSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)ListBoxSymbolFields.Property]; - set => this.Set((int)ListBoxSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)ListBoxSymbolFields.Order]; - set => this.Set((int)ListBoxSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)ListBoxSymbolFields.Value]; - set => this.Set((int)ListBoxSymbolFields.Value, value); - } - - public string Text - { - get => (string)this.Fields[(int)ListBoxSymbolFields.Text]; - set => this.Set((int)ListBoxSymbolFields.Text, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ListViewSymbol.cs b/src/WixToolset.Data/Symbols/ListViewSymbol.cs deleted file mode 100644 index 09543ab1..00000000 --- a/src/WixToolset.Data/Symbols/ListViewSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ListView = new IntermediateSymbolDefinition( - SymbolDefinitionType.ListView, - new[] - { - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ListViewSymbolFields.BinaryRef), IntermediateFieldType.String), - }, - typeof(ListViewSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ListViewSymbolFields - { - Property, - Order, - Value, - Text, - BinaryRef, - } - - public class ListViewSymbol : IntermediateSymbol - { - public ListViewSymbol() : base(SymbolDefinitions.ListView, null, null) - { - } - - public ListViewSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListView, sourceLineNumber, id) - { - } - - public IntermediateField this[ListViewSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)ListViewSymbolFields.Property]; - set => this.Set((int)ListViewSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)ListViewSymbolFields.Order]; - set => this.Set((int)ListViewSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)ListViewSymbolFields.Value]; - set => this.Set((int)ListViewSymbolFields.Value, value); - } - - public string Text - { - get => (string)this.Fields[(int)ListViewSymbolFields.Text]; - set => this.Set((int)ListViewSymbolFields.Text, value); - } - - public string BinaryRef - { - get => (string)this.Fields[(int)ListViewSymbolFields.BinaryRef]; - set => this.Set((int)ListViewSymbolFields.BinaryRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/LocatorSymbol.cs b/src/WixToolset.Data/Symbols/LocatorSymbol.cs deleted file mode 100644 index 6f136389..00000000 --- a/src/WixToolset.Data/Symbols/LocatorSymbol.cs +++ /dev/null @@ -1,12 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - public enum LocatorType - { - Directory, - Filename, - RawValue, - x64 = 16, - } -} diff --git a/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs b/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs deleted file mode 100644 index b9337446..00000000 --- a/src/WixToolset.Data/Symbols/LockPermissionsSymbol.cs +++ /dev/null @@ -1,157 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition LockPermissions = new IntermediateSymbolDefinition( - SymbolDefinitionType.LockPermissions, - new[] - { - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.LockObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Domain), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.User), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Permission), IntermediateFieldType.Number), - }, - typeof(LockPermissionsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum LockPermissionsSymbolFields - { - LockObject, - Table, - Domain, - User, - Permission, - } - - /// - ///------------------------------------------------------------------------------------------------- - /// Layout of an Access Mask (from http://technet.microsoft.com/en-us/library/cc783530(WS.10).aspx) - /// - /// ------------------------------------------------------------------------------------------------- - /// |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00| - /// ------------------------------------------------------------------------------------------------- - /// |GR|GW|GE|GA| Reserved |AS|StandardAccessRights| Object-Specific Access Rights | - /// - /// Key - /// GR = Generic Read - /// GW = Generic Write - /// GE = Generic Execute - /// GA = Generic All - /// AS = Right to access SACL - /// - public static class LockPermissionConstants - { - /// - /// Generic Access Rights (per WinNT.h) - /// --------------------- - /// GENERIC_ALL (0x10000000L) - /// GENERIC_EXECUTE (0x20000000L) - /// GENERIC_WRITE (0x40000000L) - /// GENERIC_READ (0x80000000L) - /// - public static readonly string[] GenericPermissions = { "GenericAll", "GenericExecute", "GenericWrite", "GenericRead" }; - - /// - /// Standard Access Rights (per WinNT.h) - /// ---------------------- - /// DELETE (0x00010000L) - /// READ_CONTROL (0x00020000L) - /// WRITE_DAC (0x00040000L) - /// WRITE_OWNER (0x00080000L) - /// SYNCHRONIZE (0x00100000L) - /// - public static readonly string[] StandardPermissions = { "Delete", "ReadPermission", "ChangePermission", "TakeOwnership", "Synchronize" }; - - /// - /// Object-Specific Access Rights - /// ============================= - /// Directory Access Rights (per WinNT.h) - /// ----------------------- - /// FILE_LIST_DIRECTORY ( 0x0001 ) - /// FILE_ADD_FILE ( 0x0002 ) - /// FILE_ADD_SUBDIRECTORY ( 0x0004 ) - /// FILE_READ_EA ( 0x0008 ) - /// FILE_WRITE_EA ( 0x0010 ) - /// FILE_TRAVERSE ( 0x0020 ) - /// FILE_DELETE_CHILD ( 0x0040 ) - /// FILE_READ_ATTRIBUTES ( 0x0080 ) - /// FILE_WRITE_ATTRIBUTES ( 0x0100 ) - /// - public static readonly string[] FolderPermissions = { "Read", "CreateFile", "CreateChild", "ReadExtendedAttributes", "WriteExtendedAttributes", "Traverse", "DeleteChild", "ReadAttributes", "WriteAttributes" }; - - /// - /// Registry Access Rights - /// ---------------------- - /// - public static readonly string[] RegistryPermissions = { "Read", "Write", "CreateSubkeys", "EnumerateSubkeys", "Notify", "CreateLink" }; - - /// - /// File Access Rights (per WinNT.h) - /// ------------------ - /// FILE_READ_DATA ( 0x0001 ) - /// FILE_WRITE_DATA ( 0x0002 ) - /// FILE_APPEND_DATA ( 0x0004 ) - /// FILE_READ_EA ( 0x0008 ) - /// FILE_WRITE_EA ( 0x0010 ) - /// FILE_EXECUTE ( 0x0020 ) - /// via mask FILE_ALL_ACCESS ( 0x0040 ) - /// FILE_READ_ATTRIBUTES ( 0x0080 ) - /// FILE_WRITE_ATTRIBUTES ( 0x0100 ) - /// - /// STANDARD_RIGHTS_REQUIRED (0x000F0000L) - /// FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) - /// - public static readonly string[] FilePermissions = { "Read", "Write", "Append", "ReadExtendedAttributes", "WriteExtendedAttributes", "Execute", "FileAllRights", "ReadAttributes", "WriteAttributes" }; - } - - public class LockPermissionsSymbol : IntermediateSymbol - { - public LockPermissionsSymbol() : base(SymbolDefinitions.LockPermissions, null, null) - { - } - - public LockPermissionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LockPermissions, sourceLineNumber, id) - { - } - - public IntermediateField this[LockPermissionsSymbolFields index] => this.Fields[(int)index]; - - public string LockObject - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.LockObject]; - set => this.Set((int)LockPermissionsSymbolFields.LockObject, value); - } - - public string Table - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.Table]; - set => this.Set((int)LockPermissionsSymbolFields.Table, value); - } - - public string Domain - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.Domain]; - set => this.Set((int)LockPermissionsSymbolFields.Domain, value); - } - - public string User - { - get => (string)this.Fields[(int)LockPermissionsSymbolFields.User]; - set => this.Set((int)LockPermissionsSymbolFields.User, value); - } - - public int? Permission - { - get => (int?)this.Fields[(int)LockPermissionsSymbolFields.Permission]; - set => this.Set((int)LockPermissionsSymbolFields.Permission, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MIMESymbol.cs b/src/WixToolset.Data/Symbols/MIMESymbol.cs deleted file mode 100644 index f66d05b8..00000000 --- a/src/WixToolset.Data/Symbols/MIMESymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MIME = new IntermediateSymbolDefinition( - SymbolDefinitionType.MIME, - new[] - { - new IntermediateFieldDefinition(nameof(MIMESymbolFields.ContentType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MIMESymbolFields.ExtensionRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MIMESymbolFields.CLSID), IntermediateFieldType.String), - }, - typeof(MIMESymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MIMESymbolFields - { - ContentType, - ExtensionRef, - CLSID, - } - - public class MIMESymbol : IntermediateSymbol - { - public MIMESymbol() : base(SymbolDefinitions.MIME, null, null) - { - } - - public MIMESymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MIME, sourceLineNumber, id) - { - } - - public IntermediateField this[MIMESymbolFields index] => this.Fields[(int)index]; - - public string ContentType - { - get => (string)this.Fields[(int)MIMESymbolFields.ContentType]; - set => this.Set((int)MIMESymbolFields.ContentType, value); - } - - public string ExtensionRef - { - get => (string)this.Fields[(int)MIMESymbolFields.ExtensionRef]; - set => this.Set((int)MIMESymbolFields.ExtensionRef, value); - } - - public string CLSID - { - get => (string)this.Fields[(int)MIMESymbolFields.CLSID]; - set => this.Set((int)MIMESymbolFields.CLSID, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MediaSymbol.cs b/src/WixToolset.Data/Symbols/MediaSymbol.cs deleted file mode 100644 index f216cddc..00000000 --- a/src/WixToolset.Data/Symbols/MediaSymbol.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Media = new IntermediateSymbolDefinition( - SymbolDefinitionType.Media, - new[] - { - new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.LastSequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.Cabinet), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.VolumeLabel), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.CompressionLevel), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MediaSymbolFields.Layout), IntermediateFieldType.String), - }, - typeof(MediaSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MediaSymbolFields - { - DiskId, - LastSequence, - DiskPrompt, - Cabinet, - VolumeLabel, - Source, - CompressionLevel, - Layout, - } - - public class MediaSymbol : IntermediateSymbol - { - public MediaSymbol() : base(SymbolDefinitions.Media, null, null) - { - } - - public MediaSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Media, sourceLineNumber, id) - { - } - - public IntermediateField this[MediaSymbolFields index] => this.Fields[(int)index]; - - public int DiskId - { - get => (int)this.Fields[(int)MediaSymbolFields.DiskId]; - set => this.Set((int)MediaSymbolFields.DiskId, value); - } - - public int? LastSequence - { - get => (int?)this.Fields[(int)MediaSymbolFields.LastSequence]; - set => this.Set((int)MediaSymbolFields.LastSequence, value); - } - - public string DiskPrompt - { - get => (string)this.Fields[(int)MediaSymbolFields.DiskPrompt]; - set => this.Set((int)MediaSymbolFields.DiskPrompt, value); - } - - public string Cabinet - { - get => (string)this.Fields[(int)MediaSymbolFields.Cabinet]; - set => this.Set((int)MediaSymbolFields.Cabinet, value); - } - - public string VolumeLabel - { - get => (string)this.Fields[(int)MediaSymbolFields.VolumeLabel]; - set => this.Set((int)MediaSymbolFields.VolumeLabel, value); - } - - public string Source - { - get => (string)this.Fields[(int)MediaSymbolFields.Source]; - set => this.Set((int)MediaSymbolFields.Source, value); - } - - public CompressionLevel? CompressionLevel - { - get => (CompressionLevel?)this.Fields[(int)MediaSymbolFields.CompressionLevel].AsNullableNumber(); - set => this.Set((int)MediaSymbolFields.CompressionLevel, (int?)value); - } - - public string Layout - { - get => (string)this.Fields[(int)MediaSymbolFields.Layout]; - set => this.Set((int)MediaSymbolFields.Layout, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs b/src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs deleted file mode 100644 index 287819ab..00000000 --- a/src/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleComponents = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleComponents, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Component), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Language), IntermediateFieldType.Number), - }, - typeof(ModuleComponentsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleComponentsSymbolFields - { - Component, - ModuleID, - Language, - } - - public class ModuleComponentsSymbol : IntermediateSymbol - { - public ModuleComponentsSymbol() : base(SymbolDefinitions.ModuleComponents, null, null) - { - } - - public ModuleComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleComponents, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleComponentsSymbolFields index] => this.Fields[(int)index]; - - public string Component - { - get => (string)this.Fields[(int)ModuleComponentsSymbolFields.Component]; - set => this.Set((int)ModuleComponentsSymbolFields.Component, value); - } - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleComponentsSymbolFields.ModuleID]; - set => this.Set((int)ModuleComponentsSymbolFields.ModuleID, value); - } - - public int Language - { - get => (int)this.Fields[(int)ModuleComponentsSymbolFields.Language]; - set => this.Set((int)ModuleComponentsSymbolFields.Language, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs b/src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs deleted file mode 100644 index 8188dc87..00000000 --- a/src/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleConfiguration = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleConfiguration, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Format), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.ContextData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DefaultValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.KeyNoOrphan), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.NonNullable), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpLocation), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpKeyword), IntermediateFieldType.String), - }, - typeof(ModuleConfigurationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleConfigurationSymbolFields - { - Format, - Type, - ContextData, - DefaultValue, - KeyNoOrphan, - NonNullable, - DisplayName, - Description, - HelpLocation, - HelpKeyword, - } - - public class ModuleConfigurationSymbol : IntermediateSymbol - { - public ModuleConfigurationSymbol() : base(SymbolDefinitions.ModuleConfiguration, null, null) - { - } - - public ModuleConfigurationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleConfiguration, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleConfigurationSymbolFields index] => this.Fields[(int)index]; - - public int Format - { - get => (int)this.Fields[(int)ModuleConfigurationSymbolFields.Format]; - set => this.Set((int)ModuleConfigurationSymbolFields.Format, value); - } - - public string Type - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Type]; - set => this.Set((int)ModuleConfigurationSymbolFields.Type, value); - } - - public string ContextData - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.ContextData]; - set => this.Set((int)ModuleConfigurationSymbolFields.ContextData, value); - } - - public string DefaultValue - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DefaultValue]; - set => this.Set((int)ModuleConfigurationSymbolFields.DefaultValue, value); - } - - public bool KeyNoOrphan - { - get => this.Fields[(int)ModuleConfigurationSymbolFields.KeyNoOrphan].AsBool(); - set => this.Set((int)ModuleConfigurationSymbolFields.KeyNoOrphan, value); - } - - public bool NonNullable - { - get => this.Fields[(int)ModuleConfigurationSymbolFields.NonNullable].AsBool(); - set => this.Set((int)ModuleConfigurationSymbolFields.NonNullable, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DisplayName]; - set => this.Set((int)ModuleConfigurationSymbolFields.DisplayName, value); - } - - public string Description - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Description]; - set => this.Set((int)ModuleConfigurationSymbolFields.Description, value); - } - - public string HelpLocation - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpLocation]; - set => this.Set((int)ModuleConfigurationSymbolFields.HelpLocation, value); - } - - public string HelpKeyword - { - get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpKeyword]; - set => this.Set((int)ModuleConfigurationSymbolFields.HelpKeyword, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs b/src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs deleted file mode 100644 index 80d2d5f6..00000000 --- a/src/WixToolset.Data/Symbols/ModuleDependencySymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleDependency = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleDependency, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredVersion), IntermediateFieldType.String), - }, - typeof(ModuleDependencySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleDependencySymbolFields - { - ModuleID, - ModuleLanguage, - RequiredID, - RequiredLanguage, - RequiredVersion, - } - - public class ModuleDependencySymbol : IntermediateSymbol - { - public ModuleDependencySymbol() : base(SymbolDefinitions.ModuleDependency, null, null) - { - } - - public ModuleDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleDependency, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleDependencySymbolFields index] => this.Fields[(int)index]; - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleDependencySymbolFields.ModuleID]; - set => this.Set((int)ModuleDependencySymbolFields.ModuleID, value); - } - - public int ModuleLanguage - { - get => (int)this.Fields[(int)ModuleDependencySymbolFields.ModuleLanguage]; - set => this.Set((int)ModuleDependencySymbolFields.ModuleLanguage, value); - } - - public string RequiredID - { - get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredID]; - set => this.Set((int)ModuleDependencySymbolFields.RequiredID, value); - } - - public int RequiredLanguage - { - get => (int)this.Fields[(int)ModuleDependencySymbolFields.RequiredLanguage]; - set => this.Set((int)ModuleDependencySymbolFields.RequiredLanguage, value); - } - - public string RequiredVersion - { - get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredVersion]; - set => this.Set((int)ModuleDependencySymbolFields.RequiredVersion, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs b/src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs deleted file mode 100644 index 0c45abfa..00000000 --- a/src/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleExclusion = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleExclusion, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedID), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMaxVersion), IntermediateFieldType.String), - }, - typeof(ModuleExclusionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleExclusionSymbolFields - { - ModuleID, - ModuleLanguage, - ExcludedID, - ExcludedLanguage, - ExcludedMinVersion, - ExcludedMaxVersion, - } - - public class ModuleExclusionSymbol : IntermediateSymbol - { - public ModuleExclusionSymbol() : base(SymbolDefinitions.ModuleExclusion, null, null) - { - } - - public ModuleExclusionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleExclusion, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleExclusionSymbolFields index] => this.Fields[(int)index]; - - public string ModuleID - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ModuleID]; - set => this.Set((int)ModuleExclusionSymbolFields.ModuleID, value); - } - - public int ModuleLanguage - { - get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ModuleLanguage]; - set => this.Set((int)ModuleExclusionSymbolFields.ModuleLanguage, value); - } - - public string ExcludedID - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedID]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedID, value); - } - - public int ExcludedLanguage - { - get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedLanguage]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedLanguage, value); - } - - public string ExcludedMinVersion - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMinVersion]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMinVersion, value); - } - - public string ExcludedMaxVersion - { - get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMaxVersion]; - set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMaxVersion, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs b/src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs deleted file mode 100644 index 07302df8..00000000 --- a/src/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleIgnoreTable = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleIgnoreTable, - new IntermediateFieldDefinition[] - { - }, - typeof(ModuleIgnoreTableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleIgnoreTableSymbolFields - { - } - - public class ModuleIgnoreTableSymbol : IntermediateSymbol - { - public ModuleIgnoreTableSymbol() : base(SymbolDefinitions.ModuleIgnoreTable, null, null) - { - } - - public ModuleIgnoreTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleIgnoreTable, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleIgnoreTableSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs b/src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs deleted file mode 100644 index 50d615b0..00000000 --- a/src/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ModuleSubstitution = new IntermediateSymbolDefinition( - SymbolDefinitionType.ModuleSubstitution, - new[] - { - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Row), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Column), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(ModuleSubstitutionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ModuleSubstitutionSymbolFields - { - Table, - Row, - Column, - Value, - } - - public class ModuleSubstitutionSymbol : IntermediateSymbol - { - public ModuleSubstitutionSymbol() : base(SymbolDefinitions.ModuleSubstitution, null, null) - { - } - - public ModuleSubstitutionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSubstitution, sourceLineNumber, id) - { - } - - public IntermediateField this[ModuleSubstitutionSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Table]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Table, value); - } - - public string Row - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Row]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Row, value); - } - - public string Column - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Column]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Column, value); - } - - public string Value - { - get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Value]; - set => this.Set((int)ModuleSubstitutionSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MoveFileSymbol.cs b/src/WixToolset.Data/Symbols/MoveFileSymbol.cs deleted file mode 100644 index 6e9e32a5..00000000 --- a/src/WixToolset.Data/Symbols/MoveFileSymbol.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MoveFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.MoveFile, - new[] - { - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestinationName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestinationShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.Delete), IntermediateFieldType.Bool), - }, - typeof(MoveFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MoveFileSymbolFields - { - ComponentRef, - SourceName, - DestinationName, - DestinationShortName, - SourceFolder, - DestFolder, - Delete, - } - - public class MoveFileSymbol : IntermediateSymbol - { - public MoveFileSymbol() : base(SymbolDefinitions.MoveFile, null, null) - { - } - - public MoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MoveFile, sourceLineNumber, id) - { - } - - public IntermediateField this[MoveFileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)MoveFileSymbolFields.ComponentRef]; - set => this.Set((int)MoveFileSymbolFields.ComponentRef, value); - } - - public string SourceName - { - get => (string)this.Fields[(int)MoveFileSymbolFields.SourceName]; - set => this.Set((int)MoveFileSymbolFields.SourceName, value); - } - - public string DestinationName - { - get => (string)this.Fields[(int)MoveFileSymbolFields.DestinationName]; - set => this.Set((int)MoveFileSymbolFields.DestinationName, value); - } - - public string DestinationShortName - { - get => (string)this.Fields[(int)MoveFileSymbolFields.DestinationShortName]; - set => this.Set((int)MoveFileSymbolFields.DestinationShortName, value); - } - - public string SourceFolder - { - get => (string)this.Fields[(int)MoveFileSymbolFields.SourceFolder]; - set => this.Set((int)MoveFileSymbolFields.SourceFolder, value); - } - - public string DestFolder - { - get => (string)this.Fields[(int)MoveFileSymbolFields.DestFolder]; - set => this.Set((int)MoveFileSymbolFields.DestFolder, value); - } - - public bool Delete - { - get => (bool)this.Fields[(int)MoveFileSymbolFields.Delete]; - set => this.Set((int)MoveFileSymbolFields.Delete, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs b/src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs deleted file mode 100644 index 99c9806d..00000000 --- a/src/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiAssemblyName = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiAssemblyName, - new[] - { - new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(MsiAssemblyNameSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiAssemblyNameSymbolFields - { - ComponentRef, - Name, - Value, - } - - public class MsiAssemblyNameSymbol : IntermediateSymbol - { - public MsiAssemblyNameSymbol() : base(SymbolDefinitions.MsiAssemblyName, null, null) - { - } - - public MsiAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiAssemblyName, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiAssemblyNameSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.ComponentRef]; - set => this.Set((int)MsiAssemblyNameSymbolFields.ComponentRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Name]; - set => this.Set((int)MsiAssemblyNameSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Value]; - set => this.Set((int)MsiAssemblyNameSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs b/src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs deleted file mode 100644 index febd51cc..00000000 --- a/src/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiDigitalCertificate = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiDigitalCertificate, - new[] - { - new IntermediateFieldDefinition(nameof(MsiDigitalCertificateSymbolFields.CertData), IntermediateFieldType.Path), - }, - typeof(MsiDigitalCertificateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiDigitalCertificateSymbolFields - { - CertData, - } - - public class MsiDigitalCertificateSymbol : IntermediateSymbol - { - public MsiDigitalCertificateSymbol() : base(SymbolDefinitions.MsiDigitalCertificate, null, null) - { - } - - public MsiDigitalCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalCertificate, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiDigitalCertificateSymbolFields index] => this.Fields[(int)index]; - - public string CertData - { - get => (string)this.Fields[(int)MsiDigitalCertificateSymbolFields.CertData]; - set => this.Set((int)MsiDigitalCertificateSymbolFields.CertData, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs b/src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs deleted file mode 100644 index 560f3590..00000000 --- a/src/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiDigitalSignature = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiDigitalSignature, - new[] - { - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.SignObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Hash), IntermediateFieldType.Path), - }, - typeof(MsiDigitalSignatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiDigitalSignatureSymbolFields - { - Table, - SignObject, - DigitalCertificateRef, - Hash, - } - - public class MsiDigitalSignatureSymbol : IntermediateSymbol - { - public MsiDigitalSignatureSymbol() : base(SymbolDefinitions.MsiDigitalSignature, null, null) - { - } - - public MsiDigitalSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalSignature, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiDigitalSignatureSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Table]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.Table, value); - } - - public string SignObject - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.SignObject]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.SignObject, value); - } - - public string DigitalCertificateRef - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef, value); - } - - public string Hash - { - get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Hash]; - set => this.Set((int)MsiDigitalSignatureSymbolFields.Hash, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs b/src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs deleted file mode 100644 index eeed1673..00000000 --- a/src/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiEmbeddedChainer = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiEmbeddedChainer, - new[] - { - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.CommandLine), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Source), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Type), IntermediateFieldType.Number), - }, - typeof(MsiEmbeddedChainerSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiEmbeddedChainerSymbolFields - { - Condition, - CommandLine, - Source, - Type, - } - - public class MsiEmbeddedChainerSymbol : IntermediateSymbol - { - public MsiEmbeddedChainerSymbol() : base(SymbolDefinitions.MsiEmbeddedChainer, null, null) - { - } - - public MsiEmbeddedChainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiEmbeddedChainerSymbolFields index] => this.Fields[(int)index]; - - public string Condition - { - get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Condition]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.Condition, value); - } - - public string CommandLine - { - get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.CommandLine]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.CommandLine, value); - } - - public string Source - { - get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Source]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.Source, value); - } - - public int Type - { - get => (int)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Type]; - set => this.Set((int)MsiEmbeddedChainerSymbolFields.Type, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs b/src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs deleted file mode 100644 index 87c9481a..00000000 --- a/src/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiEmbeddedUI = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiEmbeddedUI, - new[] - { - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.EntryPoint), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.SupportsBasicUI), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.MessageFilter), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.Source), IntermediateFieldType.Path), - }, - typeof(MsiEmbeddedUISymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiEmbeddedUISymbolFields - { - FileName, - EntryPoint, - SupportsBasicUI, - MessageFilter, - Source, - } - - public class MsiEmbeddedUISymbol : IntermediateSymbol - { - public MsiEmbeddedUISymbol() : base(SymbolDefinitions.MsiEmbeddedUI, null, null) - { - } - - public MsiEmbeddedUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedUI, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiEmbeddedUISymbolFields index] => this.Fields[(int)index]; - - public string FileName - { - get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.FileName]; - set => this.Set((int)MsiEmbeddedUISymbolFields.FileName, value); - } - - public bool EntryPoint - { - get => this.Fields[(int)MsiEmbeddedUISymbolFields.EntryPoint].AsBool(); - set => this.Set((int)MsiEmbeddedUISymbolFields.EntryPoint, value); - } - - public bool SupportsBasicUI - { - get => this.Fields[(int)MsiEmbeddedUISymbolFields.SupportsBasicUI].AsBool(); - set => this.Set((int)MsiEmbeddedUISymbolFields.SupportsBasicUI, value); - } - - public int? MessageFilter - { - get => (int?)this.Fields[(int)MsiEmbeddedUISymbolFields.MessageFilter]; - set => this.Set((int)MsiEmbeddedUISymbolFields.MessageFilter, value); - } - - public string Source - { - get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.Source]; - set => this.Set((int)MsiEmbeddedUISymbolFields.Source, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs b/src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs deleted file mode 100644 index bfec1c12..00000000 --- a/src/WixToolset.Data/Symbols/MsiFileHashSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiFileHash = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiFileHash, - new[] - { - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.Options), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart1), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart2), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart3), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart4), IntermediateFieldType.Number), - }, - typeof(MsiFileHashSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiFileHashSymbolFields - { - Options, - HashPart1, - HashPart2, - HashPart3, - HashPart4, - } - - public class MsiFileHashSymbol : IntermediateSymbol - { - public MsiFileHashSymbol() : base(SymbolDefinitions.MsiFileHash, null, null) - { - } - - public MsiFileHashSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiFileHash, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiFileHashSymbolFields index] => this.Fields[(int)index]; - - public int Options - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.Options]; - set => this.Set((int)MsiFileHashSymbolFields.Options, value); - } - - public int HashPart1 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart1]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart1, value); - } - - public int HashPart2 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart2]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart2, value); - } - - public int HashPart3 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart3]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart3, value); - } - - public int HashPart4 - { - get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart4]; - set => this.Set((int)MsiFileHashSymbolFields.HashPart4, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs b/src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs deleted file mode 100644 index 88e7d019..00000000 --- a/src/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiLockPermissionsEx = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiLockPermissionsEx, - new[] - { - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.LockObject), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.SDDLText), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(MsiLockPermissionsExSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiLockPermissionsExSymbolFields - { - LockObject, - Table, - SDDLText, - Condition, - } - - public class MsiLockPermissionsExSymbol : IntermediateSymbol - { - public MsiLockPermissionsExSymbol() : base(SymbolDefinitions.MsiLockPermissionsEx, null, null) - { - } - - public MsiLockPermissionsExSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiLockPermissionsExSymbolFields index] => this.Fields[(int)index]; - - public string LockObject - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.LockObject]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.LockObject, value); - } - - public string Table - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Table]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.Table, value); - } - - public string SDDLText - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.SDDLText]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.SDDLText, value); - } - - public string Condition - { - get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Condition]; - set => this.Set((int)MsiLockPermissionsExSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs b/src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs deleted file mode 100644 index 4a6774b1..00000000 --- a/src/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPackageCertificate = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPackageCertificate, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.PackageCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), - }, - typeof(MsiPackageCertificateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPackageCertificateSymbolFields - { - PackageCertificate, - DigitalCertificateRef, - } - - public class MsiPackageCertificateSymbol : IntermediateSymbol - { - public MsiPackageCertificateSymbol() : base(SymbolDefinitions.MsiPackageCertificate, null, null) - { - } - - public MsiPackageCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPackageCertificate, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPackageCertificateSymbolFields index] => this.Fields[(int)index]; - - public string PackageCertificate - { - get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.PackageCertificate]; - set => this.Set((int)MsiPackageCertificateSymbolFields.PackageCertificate, value); - } - - public string DigitalCertificateRef - { - get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.DigitalCertificateRef]; - set => this.Set((int)MsiPackageCertificateSymbolFields.DigitalCertificateRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs deleted file mode 100644 index 7d6ce24e..00000000 --- a/src/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchCertificate = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchCertificate, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.PatchCertificate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), - }, - typeof(MsiPatchCertificateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchCertificateSymbolFields - { - PatchCertificate, - DigitalCertificateRef, - } - - public class MsiPatchCertificateSymbol : IntermediateSymbol - { - public MsiPatchCertificateSymbol() : base(SymbolDefinitions.MsiPatchCertificate, null, null) - { - } - - public MsiPatchCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchCertificate, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchCertificateSymbolFields index] => this.Fields[(int)index]; - - public string PatchCertificate - { - get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.PatchCertificate]; - set => this.Set((int)MsiPatchCertificateSymbolFields.PatchCertificate, value); - } - - public string DigitalCertificateRef - { - get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.DigitalCertificateRef]; - set => this.Set((int)MsiPatchCertificateSymbolFields.DigitalCertificateRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs deleted file mode 100644 index 0c68b164..00000000 --- a/src/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchHeaders = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchHeaders, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.StreamRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.Header), IntermediateFieldType.Path), - }, - typeof(MsiPatchHeadersSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchHeadersSymbolFields - { - StreamRef, - Header, - } - - public class MsiPatchHeadersSymbol : IntermediateSymbol - { - public MsiPatchHeadersSymbol() : base(SymbolDefinitions.MsiPatchHeaders, null, null) - { - } - - public MsiPatchHeadersSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchHeaders, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchHeadersSymbolFields index] => this.Fields[(int)index]; - - public string StreamRef - { - get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.StreamRef]; - set => this.Set((int)MsiPatchHeadersSymbolFields.StreamRef, value); - } - - public string Header - { - get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.Header]; - set => this.Set((int)MsiPatchHeadersSymbolFields.Header, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs deleted file mode 100644 index 682adbca..00000000 --- a/src/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchMetadata = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchMetadata, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Company), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(MsiPatchMetadataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchMetadataSymbolFields - { - Company, - Property, - Value, - } - - public class MsiPatchMetadataSymbol : IntermediateSymbol - { - public MsiPatchMetadataSymbol() : base(SymbolDefinitions.MsiPatchMetadata, null, null) - { - } - - public MsiPatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchMetadata, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchMetadataSymbolFields index] => this.Fields[(int)index]; - - public string Company - { - get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Company]; - set => this.Set((int)MsiPatchMetadataSymbolFields.Company, value); - } - - public string Property - { - get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Property]; - set => this.Set((int)MsiPatchMetadataSymbolFields.Property, value); - } - - public string Value - { - get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Value]; - set => this.Set((int)MsiPatchMetadataSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs deleted file mode 100644 index 75385ba8..00000000 --- a/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchOldAssemblyFile, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.AssemblyRef), IntermediateFieldType.String), - }, - typeof(MsiPatchOldAssemblyFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchOldAssemblyFileSymbolFields - { - FileRef, - AssemblyRef, - } - - public class MsiPatchOldAssemblyFileSymbol : IntermediateSymbol - { - public MsiPatchOldAssemblyFileSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyFile, null, null) - { - } - - public MsiPatchOldAssemblyFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchOldAssemblyFileSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.FileRef]; - set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.FileRef, value); - } - - public string AssemblyRef - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef]; - set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs deleted file mode 100644 index 199f5ff7..00000000 --- a/src/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyName = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchOldAssemblyName, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Assembly), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(MsiPatchOldAssemblyNameSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchOldAssemblyNameSymbolFields - { - Assembly, - Name, - Value, - } - - public class MsiPatchOldAssemblyNameSymbol : IntermediateSymbol - { - public MsiPatchOldAssemblyNameSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyName, null, null) - { - } - - public MsiPatchOldAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchOldAssemblyNameSymbolFields index] => this.Fields[(int)index]; - - public string Assembly - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Assembly]; - set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Assembly, value); - } - - public string Name - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Name]; - set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Value]; - set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs b/src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs deleted file mode 100644 index ac2b0dc4..00000000 --- a/src/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiPatchSequence = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiPatchSequence, - new[] - { - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(MsiPatchSequenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiPatchSequenceSymbolFields - { - PatchFamily, - ProductCode, - Sequence, - Attributes, - } - - public class MsiPatchSequenceSymbol : IntermediateSymbol - { - public MsiPatchSequenceSymbol() : base(SymbolDefinitions.MsiPatchSequence, null, null) - { - } - - public MsiPatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiPatchSequenceSymbolFields index] => this.Fields[(int)index]; - - public string PatchFamily - { - get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.PatchFamily]; - set => this.Set((int)MsiPatchSequenceSymbolFields.PatchFamily, value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.ProductCode]; - set => this.Set((int)MsiPatchSequenceSymbolFields.ProductCode, value); - } - - public string Sequence - { - get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.Sequence]; - set => this.Set((int)MsiPatchSequenceSymbolFields.Sequence, value); - } - - public int? Attributes - { - get => (int?)this.Fields[(int)MsiPatchSequenceSymbolFields.Attributes]; - set => this.Set((int)MsiPatchSequenceSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs b/src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs deleted file mode 100644 index 92ca4059..00000000 --- a/src/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiServiceConfigFailureActions = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiServiceConfigFailureActions, - new[] - { - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ResetPeriod), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.RebootMessage), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Command), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Actions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.DelayActions), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(MsiServiceConfigFailureActionsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiServiceConfigFailureActionsSymbolFields - { - Name, - OnInstall, - OnReinstall, - OnUninstall, - ResetPeriod, - RebootMessage, - Command, - Actions, - DelayActions, - ComponentRef, - } - - public class MsiServiceConfigFailureActionsSymbol : IntermediateSymbol - { - public MsiServiceConfigFailureActionsSymbol() : base(SymbolDefinitions.MsiServiceConfigFailureActions, null, null) - { - } - - public MsiServiceConfigFailureActionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiServiceConfigFailureActionsSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Name]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Name, value); - } - - public bool OnInstall - { - get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnInstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnInstall, value); - } - - public bool OnReinstall - { - get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall, value); - } - - public bool OnUninstall - { - get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall].AsBool(); - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall, value); - } - - public int? ResetPeriod - { - get => (int?)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod, value); - } - - public string RebootMessage - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage, value); - } - - public string Command - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Command]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Command, value); - } - - public string Actions - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Actions]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Actions, value); - } - - public string DelayActions - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.DelayActions]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.DelayActions, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef]; - set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs b/src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs deleted file mode 100644 index 9ad72d1e..00000000 --- a/src/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs +++ /dev/null @@ -1,101 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiServiceConfig = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiServiceConfig, - new[] - { - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ConfigType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Argument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(MsiServiceConfigSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiServiceConfigSymbolFields - { - Name, - OnInstall, - OnReinstall, - OnUninstall, - ConfigType, - Argument, - ComponentRef, - } - - public enum MsiServiceConfigType - { - DelayedAutoStart = 3, - FailureActionsFlag, - ServiceSidInfo, - RequiredPrivilegesInfo, - PreshutdownInfo, - } - - public class MsiServiceConfigSymbol : IntermediateSymbol - { - public MsiServiceConfigSymbol() : base(SymbolDefinitions.MsiServiceConfig, null, null) - { - } - - public MsiServiceConfigSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfig, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiServiceConfigSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Name]; - set => this.Set((int)MsiServiceConfigSymbolFields.Name, value); - } - - public bool OnInstall - { - get => this.Fields[(int)MsiServiceConfigSymbolFields.OnInstall].AsBool(); - set => this.Set((int)MsiServiceConfigSymbolFields.OnInstall, value); - } - - public bool OnReinstall - { - get => this.Fields[(int)MsiServiceConfigSymbolFields.OnReinstall].AsBool(); - set => this.Set((int)MsiServiceConfigSymbolFields.OnReinstall, value); - } - - public bool OnUninstall - { - get => this.Fields[(int)MsiServiceConfigSymbolFields.OnUninstall].AsBool(); - set => this.Set((int)MsiServiceConfigSymbolFields.OnUninstall, value); - } - - public MsiServiceConfigType ConfigType - { - get => (MsiServiceConfigType)this.Fields[(int)MsiServiceConfigSymbolFields.ConfigType].AsNumber(); - set => this.Set((int)MsiServiceConfigSymbolFields.ConfigType, (int)value); - } - - public string Argument - { - get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Argument]; - set => this.Set((int)MsiServiceConfigSymbolFields.Argument, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.ComponentRef]; - set => this.Set((int)MsiServiceConfigSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs b/src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs deleted file mode 100644 index 5d5a46e5..00000000 --- a/src/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition MsiShortcutProperty = new IntermediateSymbolDefinition( - SymbolDefinitionType.MsiShortcutProperty, - new[] - { - new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.ShortcutRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropertyKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropVariantValue), IntermediateFieldType.String), - }, - typeof(MsiShortcutPropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum MsiShortcutPropertySymbolFields - { - ShortcutRef, - PropertyKey, - PropVariantValue, - } - - public class MsiShortcutPropertySymbol : IntermediateSymbol - { - public MsiShortcutPropertySymbol() : base(SymbolDefinitions.MsiShortcutProperty, null, null) - { - } - - public MsiShortcutPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiShortcutProperty, sourceLineNumber, id) - { - } - - public IntermediateField this[MsiShortcutPropertySymbolFields index] => this.Fields[(int)index]; - - public string ShortcutRef - { - get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.ShortcutRef]; - set => this.Set((int)MsiShortcutPropertySymbolFields.ShortcutRef, value); - } - - public string PropertyKey - { - get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropertyKey]; - set => this.Set((int)MsiShortcutPropertySymbolFields.PropertyKey, value); - } - - public string PropVariantValue - { - get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropVariantValue]; - set => this.Set((int)MsiShortcutPropertySymbolFields.PropVariantValue, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs b/src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs deleted file mode 100644 index 45ca6ed8..00000000 --- a/src/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCAttribute = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCAttribute, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.DriverRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Attribute), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(ODBCAttributeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCAttributeSymbolFields - { - DriverRef, - Attribute, - Value, - } - - public class ODBCAttributeSymbol : IntermediateSymbol - { - public ODBCAttributeSymbol() : base(SymbolDefinitions.ODBCAttribute, null, null) - { - } - - public ODBCAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCAttribute, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCAttributeSymbolFields index] => this.Fields[(int)index]; - - public string DriverRef - { - get => (string)this.Fields[(int)ODBCAttributeSymbolFields.DriverRef]; - set => this.Set((int)ODBCAttributeSymbolFields.DriverRef, value); - } - - public string Attribute - { - get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Attribute]; - set => this.Set((int)ODBCAttributeSymbolFields.Attribute, value); - } - - public string Value - { - get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Value]; - set => this.Set((int)ODBCAttributeSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs b/src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs deleted file mode 100644 index 6af140bd..00000000 --- a/src/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCDataSource = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCDataSource, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.DriverDescription), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Registration), IntermediateFieldType.Number), - }, - typeof(ODBCDataSourceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCDataSourceSymbolFields - { - ComponentRef, - Description, - DriverDescription, - Registration, - } - - public class ODBCDataSourceSymbol : IntermediateSymbol - { - public ODBCDataSourceSymbol() : base(SymbolDefinitions.ODBCDataSource, null, null) - { - } - - public ODBCDataSourceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDataSource, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCDataSourceSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.ComponentRef]; - set => this.Set((int)ODBCDataSourceSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.Description]; - set => this.Set((int)ODBCDataSourceSymbolFields.Description, value); - } - - public string DriverDescription - { - get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.DriverDescription]; - set => this.Set((int)ODBCDataSourceSymbolFields.DriverDescription, value); - } - - public int Registration - { - get => (int)this.Fields[(int)ODBCDataSourceSymbolFields.Registration]; - set => this.Set((int)ODBCDataSourceSymbolFields.Registration, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs b/src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs deleted file mode 100644 index b31cc4cb..00000000 --- a/src/WixToolset.Data/Symbols/ODBCDriverSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCDriver = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCDriver, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.SetupFileRef), IntermediateFieldType.String), - }, - typeof(ODBCDriverSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCDriverSymbolFields - { - ComponentRef, - Description, - FileRef, - SetupFileRef, - } - - public class ODBCDriverSymbol : IntermediateSymbol - { - public ODBCDriverSymbol() : base(SymbolDefinitions.ODBCDriver, null, null) - { - } - - public ODBCDriverSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDriver, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCDriverSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.ComponentRef]; - set => this.Set((int)ODBCDriverSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.Description]; - set => this.Set((int)ODBCDriverSymbolFields.Description, value); - } - - public string FileRef - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.FileRef]; - set => this.Set((int)ODBCDriverSymbolFields.FileRef, value); - } - - public string SetupFileRef - { - get => (string)this.Fields[(int)ODBCDriverSymbolFields.SetupFileRef]; - set => this.Set((int)ODBCDriverSymbolFields.SetupFileRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs b/src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs deleted file mode 100644 index 2e25a5f7..00000000 --- a/src/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCSourceAttribute = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCSourceAttribute, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.DataSourceRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Attribute), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(ODBCSourceAttributeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCSourceAttributeSymbolFields - { - DataSourceRef, - Attribute, - Value, - } - - public class ODBCSourceAttributeSymbol : IntermediateSymbol - { - public ODBCSourceAttributeSymbol() : base(SymbolDefinitions.ODBCSourceAttribute, null, null) - { - } - - public ODBCSourceAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCSourceAttribute, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCSourceAttributeSymbolFields index] => this.Fields[(int)index]; - - public string DataSourceRef - { - get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.DataSourceRef]; - set => this.Set((int)ODBCSourceAttributeSymbolFields.DataSourceRef, value); - } - - public string Attribute - { - get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Attribute]; - set => this.Set((int)ODBCSourceAttributeSymbolFields.Attribute, value); - } - - public string Value - { - get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Value]; - set => this.Set((int)ODBCSourceAttributeSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs b/src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs deleted file mode 100644 index c444b834..00000000 --- a/src/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ODBCTranslator = new IntermediateSymbolDefinition( - SymbolDefinitionType.ODBCTranslator, - new[] - { - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.SetupFileRef), IntermediateFieldType.String), - }, - typeof(ODBCTranslatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ODBCTranslatorSymbolFields - { - ComponentRef, - Description, - FileRef, - SetupFileRef, - } - - public class ODBCTranslatorSymbol : IntermediateSymbol - { - public ODBCTranslatorSymbol() : base(SymbolDefinitions.ODBCTranslator, null, null) - { - } - - public ODBCTranslatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCTranslator, sourceLineNumber, id) - { - } - - public IntermediateField this[ODBCTranslatorSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.ComponentRef]; - set => this.Set((int)ODBCTranslatorSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.Description]; - set => this.Set((int)ODBCTranslatorSymbolFields.Description, value); - } - - public string FileRef - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.FileRef]; - set => this.Set((int)ODBCTranslatorSymbolFields.FileRef, value); - } - - public string SetupFileRef - { - get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.SetupFileRef]; - set => this.Set((int)ODBCTranslatorSymbolFields.SetupFileRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs b/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs deleted file mode 100644 index 201b8444..00000000 --- a/src/WixToolset.Data/Symbols/PatchMetadataSymbol.cs +++ /dev/null @@ -1,89 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PatchMetadata = new IntermediateSymbolDefinition( - SymbolDefinitionType.PatchMetadata, - new[] - { - new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Company), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(PatchMetadataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum PatchMetadataSymbolFields - { - Company, - Property, - Value, - } - - /// - /// Values for the OptimizeCA MsiPatchMetdata property, which indicates whether custom actions can be skipped when applying the patch. - /// - [Flags] - public enum OptimizeCAFlags - { - /// - /// No custom actions are skipped. - /// - None = 0, - - /// - /// Skip property (type 51) and directory (type 35) assignment custom actions. - /// - SkipAssignment = 1, - - /// - /// Skip immediate custom actions that are not property or directory assignment custom actions. - /// - SkipImmediate = 2, - - /// - /// Skip custom actions that run within the script. - /// - SkipDeferred = 4 - } - - public class PatchMetadataSymbol : IntermediateSymbol - { - public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null) - { - } - - public PatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchMetadata, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchMetadataSymbolFields index] => this.Fields[(int)index]; - - public string Company - { - get => (string)this.Fields[(int)PatchMetadataSymbolFields.Company]; - set => this.Set((int)PatchMetadataSymbolFields.Company, value); - } - - public string Property - { - get => (string)this.Fields[(int)PatchMetadataSymbolFields.Property]; - set => this.Set((int)PatchMetadataSymbolFields.Property, value); - } - - public string Value - { - get => (string)this.Fields[(int)PatchMetadataSymbolFields.Value]; - set => this.Set((int)PatchMetadataSymbolFields.Value, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/PatchPackageSymbol.cs b/src/WixToolset.Data/Symbols/PatchPackageSymbol.cs deleted file mode 100644 index 0efdfd25..00000000 --- a/src/WixToolset.Data/Symbols/PatchPackageSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PatchPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.PatchPackage, - new[] - { - new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.PatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.MediaDiskIdRef), IntermediateFieldType.Number), - }, - typeof(PatchPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PatchPackageSymbolFields - { - PatchId, - MediaDiskIdRef, - } - - public class PatchPackageSymbol : IntermediateSymbol - { - public PatchPackageSymbol() : base(SymbolDefinitions.PatchPackage, null, null) - { - } - - public PatchPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchPackageSymbolFields index] => this.Fields[(int)index]; - - public string PatchId - { - get => (string)this.Fields[(int)PatchPackageSymbolFields.PatchId]; - set => this.Set((int)PatchPackageSymbolFields.PatchId, value); - } - - public int MediaDiskIdRef - { - get => (int)this.Fields[(int)PatchPackageSymbolFields.MediaDiskIdRef]; - set => this.Set((int)PatchPackageSymbolFields.MediaDiskIdRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs b/src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs deleted file mode 100644 index a4cbca61..00000000 --- a/src/WixToolset.Data/Symbols/PatchSequenceSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PatchSequence = new IntermediateSymbolDefinition( - SymbolDefinitionType.PatchSequence, - new[] - { - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Supersede), IntermediateFieldType.Number), - }, - typeof(PatchSequenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PatchSequenceSymbolFields - { - PatchFamily, - Target, - Sequence, - Supersede, - } - - public class PatchSequenceSymbol : IntermediateSymbol - { - public PatchSequenceSymbol() : base(SymbolDefinitions.PatchSequence, null, null) - { - } - - public PatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchSequence, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchSequenceSymbolFields index] => this.Fields[(int)index]; - - public string PatchFamily - { - get => (string)this.Fields[(int)PatchSequenceSymbolFields.PatchFamily]; - set => this.Set((int)PatchSequenceSymbolFields.PatchFamily, value); - } - - public string Target - { - get => (string)this.Fields[(int)PatchSequenceSymbolFields.Target]; - set => this.Set((int)PatchSequenceSymbolFields.Target, value); - } - - public string Sequence - { - get => (string)this.Fields[(int)PatchSequenceSymbolFields.Sequence]; - set => this.Set((int)PatchSequenceSymbolFields.Sequence, value); - } - - public int? Supersede - { - get => (int?)this.Fields[(int)PatchSequenceSymbolFields.Supersede]; - set => this.Set((int)PatchSequenceSymbolFields.Supersede, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PatchSymbol.cs b/src/WixToolset.Data/Symbols/PatchSymbol.cs deleted file mode 100644 index 31e68d76..00000000 --- a/src/WixToolset.Data/Symbols/PatchSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Patch = new IntermediateSymbolDefinition( - SymbolDefinitionType.Patch, - new[] - { - new IntermediateFieldDefinition(nameof(PatchSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.PatchSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.Header), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(PatchSymbolFields.StreamRef), IntermediateFieldType.String), - }, - typeof(PatchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PatchSymbolFields - { - FileRef, - Sequence, - PatchSize, - Attributes, - Header, - StreamRef, - } - - public class PatchSymbol : IntermediateSymbol - { - public PatchSymbol() : base(SymbolDefinitions.Patch, null, null) - { - } - - public PatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Patch, sourceLineNumber, id) - { - } - - public IntermediateField this[PatchSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)PatchSymbolFields.FileRef]; - set => this.Set((int)PatchSymbolFields.FileRef, value); - } - - public int Sequence - { - get => (int)this.Fields[(int)PatchSymbolFields.Sequence]; - set => this.Set((int)PatchSymbolFields.Sequence, value); - } - - public int PatchSize - { - get => (int)this.Fields[(int)PatchSymbolFields.PatchSize]; - set => this.Set((int)PatchSymbolFields.PatchSize, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)PatchSymbolFields.Attributes]; - set => this.Set((int)PatchSymbolFields.Attributes, value); - } - - public string Header - { - get => (string)this.Fields[(int)PatchSymbolFields.Header]; - set => this.Set((int)PatchSymbolFields.Header, value); - } - - public string StreamRef - { - get => (string)this.Fields[(int)PatchSymbolFields.StreamRef]; - set => this.Set((int)PatchSymbolFields.StreamRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ProgIdSymbol.cs b/src/WixToolset.Data/Symbols/ProgIdSymbol.cs deleted file mode 100644 index 57ac758f..00000000 --- a/src/WixToolset.Data/Symbols/ProgIdSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ProgId = new IntermediateSymbolDefinition( - SymbolDefinitionType.ProgId, - new[] - { - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ProgId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ParentProgIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ClassRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconIndex), IntermediateFieldType.Number), - }, - typeof(ProgIdSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ProgIdSymbolFields - { - ProgId, - ParentProgIdRef, - ClassRef, - Description, - IconRef, - IconIndex, - } - - public class ProgIdSymbol : IntermediateSymbol - { - public ProgIdSymbol() : base(SymbolDefinitions.ProgId, null, null) - { - } - - public ProgIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProgId, sourceLineNumber, id) - { - } - - public IntermediateField this[ProgIdSymbolFields index] => this.Fields[(int)index]; - - public string ProgId - { - get => (string)this.Fields[(int)ProgIdSymbolFields.ProgId]; - set => this.Set((int)ProgIdSymbolFields.ProgId, value); - } - - public string ParentProgIdRef - { - get => (string)this.Fields[(int)ProgIdSymbolFields.ParentProgIdRef]; - set => this.Set((int)ProgIdSymbolFields.ParentProgIdRef, value); - } - - public string ClassRef - { - get => (string)this.Fields[(int)ProgIdSymbolFields.ClassRef]; - set => this.Set((int)ProgIdSymbolFields.ClassRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ProgIdSymbolFields.Description]; - set => this.Set((int)ProgIdSymbolFields.Description, value); - } - - public string IconRef - { - get => (string)this.Fields[(int)ProgIdSymbolFields.IconRef]; - set => this.Set((int)ProgIdSymbolFields.IconRef, value); - } - - public int? IconIndex - { - get => (int?)this.Fields[(int)ProgIdSymbolFields.IconIndex]; - set => this.Set((int)ProgIdSymbolFields.IconIndex, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PropertiesSymbol.cs b/src/WixToolset.Data/Symbols/PropertiesSymbol.cs deleted file mode 100644 index 61059aa6..00000000 --- a/src/WixToolset.Data/Symbols/PropertiesSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Properties = new IntermediateSymbolDefinition( - SymbolDefinitionType.Properties, - new[] - { - new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(PropertiesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PropertiesSymbolFields - { - Name, - Value, - } - - public class PropertiesSymbol : IntermediateSymbol - { - public PropertiesSymbol() : base(SymbolDefinitions.Properties, null, null) - { - } - - public PropertiesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Properties, sourceLineNumber, id) - { - } - - public IntermediateField this[PropertiesSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)PropertiesSymbolFields.Name]; - set => this.Set((int)PropertiesSymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)PropertiesSymbolFields.Value]; - set => this.Set((int)PropertiesSymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PropertySymbol.cs b/src/WixToolset.Data/Symbols/PropertySymbol.cs deleted file mode 100644 index b93d962a..00000000 --- a/src/WixToolset.Data/Symbols/PropertySymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Property = new IntermediateSymbolDefinition( - SymbolDefinitionType.Property, - new[] - { - new IntermediateFieldDefinition(nameof(PropertySymbolFields.Value), IntermediateFieldType.String), - }, - typeof(PropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PropertySymbolFields - { - Value, - } - - public class PropertySymbol : IntermediateSymbol - { - public PropertySymbol() : base(SymbolDefinitions.Property, null, null) - { - } - - public PropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Property, sourceLineNumber, id) - { - } - - public IntermediateField this[PropertySymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)PropertySymbolFields.Value]; - set => this.Set((int)PropertySymbolFields.Value, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/PublishComponentSymbol.cs b/src/WixToolset.Data/Symbols/PublishComponentSymbol.cs deleted file mode 100644 index 3fb81801..00000000 --- a/src/WixToolset.Data/Symbols/PublishComponentSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition PublishComponent = new IntermediateSymbolDefinition( - SymbolDefinitionType.PublishComponent, - new[] - { - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.Qualifier), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.AppData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.FeatureRef), IntermediateFieldType.String), - }, - typeof(PublishComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum PublishComponentSymbolFields - { - ComponentId, - Qualifier, - ComponentRef, - AppData, - FeatureRef, - } - - public class PublishComponentSymbol : IntermediateSymbol - { - public PublishComponentSymbol() : base(SymbolDefinitions.PublishComponent, null, null) - { - } - - public PublishComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PublishComponent, sourceLineNumber, id) - { - } - - public IntermediateField this[PublishComponentSymbolFields index] => this.Fields[(int)index]; - - public string ComponentId - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentId]; - set => this.Set((int)PublishComponentSymbolFields.ComponentId, value); - } - - public string Qualifier - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.Qualifier]; - set => this.Set((int)PublishComponentSymbolFields.Qualifier, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentRef]; - set => this.Set((int)PublishComponentSymbolFields.ComponentRef, value); - } - - public string AppData - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.AppData]; - set => this.Set((int)PublishComponentSymbolFields.AppData, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)PublishComponentSymbolFields.FeatureRef]; - set => this.Set((int)PublishComponentSymbolFields.FeatureRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RadioButtonSymbol.cs b/src/WixToolset.Data/Symbols/RadioButtonSymbol.cs deleted file mode 100644 index 6a26e937..00000000 --- a/src/WixToolset.Data/Symbols/RadioButtonSymbol.cs +++ /dev/null @@ -1,108 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RadioButton = new IntermediateSymbolDefinition( - SymbolDefinitionType.RadioButton, - new[] - { - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Property), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.X), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Y), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Height), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Text), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Help), IntermediateFieldType.String), - }, - typeof(RadioButtonSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RadioButtonSymbolFields - { - Property, - Order, - Value, - X, - Y, - Width, - Height, - Text, - Help, - } - - public class RadioButtonSymbol : IntermediateSymbol - { - public RadioButtonSymbol() : base(SymbolDefinitions.RadioButton, null, null) - { - } - - public RadioButtonSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RadioButton, sourceLineNumber, id) - { - } - - public IntermediateField this[RadioButtonSymbolFields index] => this.Fields[(int)index]; - - public string Property - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Property]; - set => this.Set((int)RadioButtonSymbolFields.Property, value); - } - - public int Order - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Order]; - set => this.Set((int)RadioButtonSymbolFields.Order, value); - } - - public string Value - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Value]; - set => this.Set((int)RadioButtonSymbolFields.Value, value); - } - - public int X - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.X]; - set => this.Set((int)RadioButtonSymbolFields.X, value); - } - - public int Y - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Y]; - set => this.Set((int)RadioButtonSymbolFields.Y, value); - } - - public int Width - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Width]; - set => this.Set((int)RadioButtonSymbolFields.Width, value); - } - - public int Height - { - get => (int)this.Fields[(int)RadioButtonSymbolFields.Height]; - set => this.Set((int)RadioButtonSymbolFields.Height, value); - } - - public string Text - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Text]; - set => this.Set((int)RadioButtonSymbolFields.Text, value); - } - - public string Help - { - get => (string)this.Fields[(int)RadioButtonSymbolFields.Help]; - set => this.Set((int)RadioButtonSymbolFields.Help, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RegLocatorSymbol.cs b/src/WixToolset.Data/Symbols/RegLocatorSymbol.cs deleted file mode 100644 index bf50dab7..00000000 --- a/src/WixToolset.Data/Symbols/RegLocatorSymbol.cs +++ /dev/null @@ -1,83 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RegLocator = new IntermediateSymbolDefinition( - SymbolDefinitionType.RegLocator, - new[] - { - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Win64), IntermediateFieldType.Bool), - }, - typeof(RegLocatorSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RegLocatorSymbolFields - { - Root, - Key, - Name, - Type, - Win64, - } - - public enum RegLocatorType - { - Directory, - FileName, - Raw - }; - - public class RegLocatorSymbol : IntermediateSymbol - { - public RegLocatorSymbol() : base(SymbolDefinitions.RegLocator, null, null) - { - } - - public RegLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RegLocator, sourceLineNumber, id) - { - } - - public IntermediateField this[RegLocatorSymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)RegLocatorSymbolFields.Root].AsNumber(); - set => this.Set((int)RegLocatorSymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)RegLocatorSymbolFields.Key]; - set => this.Set((int)RegLocatorSymbolFields.Key, value); - } - - public string Name - { - get => (string)this.Fields[(int)RegLocatorSymbolFields.Name]; - set => this.Set((int)RegLocatorSymbolFields.Name, value); - } - - public RegLocatorType Type - { - get => (RegLocatorType)this.Fields[(int)RegLocatorSymbolFields.Type].AsNumber(); - set => this.Set((int)RegLocatorSymbolFields.Type, (int)value); - } - - public bool Win64 - { - get => this.Fields[(int)RegLocatorSymbolFields.Win64].AsBool(); - set => this.Set((int)RegLocatorSymbolFields.Win64, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/RegistryRootType.cs b/src/WixToolset.Data/Symbols/RegistryRootType.cs deleted file mode 100644 index 9f60727c..00000000 --- a/src/WixToolset.Data/Symbols/RegistryRootType.cs +++ /dev/null @@ -1,21 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - using System; - - /// - /// Registry root mapping. - /// - public enum RegistryRootType - { - Unknown = Int32.MaxValue, - - /// HKLM in a per-machine and HKCU in per-user. - MachineUser = -1, - ClassesRoot = 0, - CurrentUser = 1, - LocalMachine = 2, - Users = 3 - } -} diff --git a/src/WixToolset.Data/Symbols/RegistrySymbol.cs b/src/WixToolset.Data/Symbols/RegistrySymbol.cs deleted file mode 100644 index 371bfe98..00000000 --- a/src/WixToolset.Data/Symbols/RegistrySymbol.cs +++ /dev/null @@ -1,108 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Registry = new IntermediateSymbolDefinition( - SymbolDefinitionType.Registry, - new[] - { - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueAction), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(RegistrySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RegistrySymbolFields - { - Root, - Key, - Name, - Value, - ValueType, - ValueAction, - ComponentRef, - } - - public enum RegistryValueType - { - String, - Binary, - Expandable, - Integer, - MultiString, - } - - public enum RegistryValueActionType - { - Write, - Append, - Prepend, - } - - public class RegistrySymbol : IntermediateSymbol - { - public RegistrySymbol() : base(SymbolDefinitions.Registry, null, null) - { - } - - public RegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Registry, sourceLineNumber, id) - { - } - - public IntermediateField this[RegistrySymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)RegistrySymbolFields.Root].AsNumber(); - set => this.Set((int)RegistrySymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)RegistrySymbolFields.Key]; - set => this.Set((int)RegistrySymbolFields.Key, value); - } - - public string Name - { - get => (string)this.Fields[(int)RegistrySymbolFields.Name]; - set => this.Set((int)RegistrySymbolFields.Name, value); - } - - public string Value - { - get => this.Fields[(int)RegistrySymbolFields.Value].AsString(); - set => this.Set((int)RegistrySymbolFields.Value, value); - } - - public RegistryValueType ValueType - { - get => (RegistryValueType)this.Fields[(int)RegistrySymbolFields.ValueType].AsNumber(); - set => this.Set((int)RegistrySymbolFields.ValueType, (int)value); - } - - public RegistryValueActionType ValueAction - { - get => (RegistryValueActionType)this.Fields[(int)RegistrySymbolFields.ValueAction].AsNumber(); - set => this.Set((int)RegistrySymbolFields.ValueAction, (int)value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)RegistrySymbolFields.ComponentRef]; - set => this.Set((int)RegistrySymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs b/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs deleted file mode 100644 index 0167b070..00000000 --- a/src/WixToolset.Data/Symbols/RemoveFileSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RemoveFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.RemoveFile, - new[] - { - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ShortFileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.DirPropertyRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnInstall), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnUninstall), IntermediateFieldType.Bool), - }, - typeof(RemoveFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RemoveFileSymbolFields - { - ComponentRef, - FileName, - ShortFileName, - DirPropertyRef, - OnInstall, - OnUninstall, - } - - public class RemoveFileSymbol : IntermediateSymbol - { - public RemoveFileSymbol() : base(SymbolDefinitions.RemoveFile, null, null) - { - } - - public RemoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveFile, sourceLineNumber, id) - { - } - - public IntermediateField this[RemoveFileSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)RemoveFileSymbolFields.ComponentRef]; - set => this.Set((int)RemoveFileSymbolFields.ComponentRef, value); - } - - public string FileName - { - get => (string)this.Fields[(int)RemoveFileSymbolFields.FileName]; - set => this.Set((int)RemoveFileSymbolFields.FileName, value); - } - - public string ShortFileName - { - get => (string)this.Fields[(int)RemoveFileSymbolFields.ShortFileName]; - set => this.Set((int)RemoveFileSymbolFields.ShortFileName, value); - } - - public string DirPropertyRef - { - get => (string)this.Fields[(int)RemoveFileSymbolFields.DirPropertyRef]; - set => this.Set((int)RemoveFileSymbolFields.DirPropertyRef, value); - } - - public bool? OnInstall - { - get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnInstall]; - set => this.Set((int)RemoveFileSymbolFields.OnInstall, value); - } - - public bool? OnUninstall - { - get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnUninstall]; - set => this.Set((int)RemoveFileSymbolFields.OnUninstall, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs b/src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs deleted file mode 100644 index a797cd33..00000000 --- a/src/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs +++ /dev/null @@ -1,82 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition RemoveRegistry = new IntermediateSymbolDefinition( - SymbolDefinitionType.RemoveRegistry, - new[] - { - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Action), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(RemoveRegistrySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum RemoveRegistrySymbolFields - { - Root, - Key, - Name, - Action, - ComponentRef, - } - - public enum RemoveRegistryActionType - { - RemoveOnInstall, - RemoveOnUninstall - }; - - public class RemoveRegistrySymbol : IntermediateSymbol - { - public RemoveRegistrySymbol() : base(SymbolDefinitions.RemoveRegistry, null, null) - { - } - - public RemoveRegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveRegistry, sourceLineNumber, id) - { - } - - public IntermediateField this[RemoveRegistrySymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)RemoveRegistrySymbolFields.Root].AsNumber(); - set => this.Set((int)RemoveRegistrySymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Key]; - set => this.Set((int)RemoveRegistrySymbolFields.Key, value); - } - - public string Name - { - get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Name]; - set => this.Set((int)RemoveRegistrySymbolFields.Name, value); - } - - public RemoveRegistryActionType Action - { - get => (RemoveRegistryActionType)this.Fields[(int)RemoveRegistrySymbolFields.Action].AsNumber(); - set => this.Set((int)RemoveRegistrySymbolFields.Action, (int)value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)RemoveRegistrySymbolFields.ComponentRef]; - set => this.Set((int)RemoveRegistrySymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ReserveCostSymbol.cs b/src/WixToolset.Data/Symbols/ReserveCostSymbol.cs deleted file mode 100644 index b59dea2f..00000000 --- a/src/WixToolset.Data/Symbols/ReserveCostSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ReserveCost = new IntermediateSymbolDefinition( - SymbolDefinitionType.ReserveCost, - new[] - { - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveFolder), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveLocal), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveSource), IntermediateFieldType.Number), - }, - typeof(ReserveCostSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ReserveCostSymbolFields - { - ComponentRef, - ReserveFolder, - ReserveLocal, - ReserveSource, - } - - public class ReserveCostSymbol : IntermediateSymbol - { - public ReserveCostSymbol() : base(SymbolDefinitions.ReserveCost, null, null) - { - } - - public ReserveCostSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ReserveCost, sourceLineNumber, id) - { - } - - public IntermediateField this[ReserveCostSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)ReserveCostSymbolFields.ComponentRef]; - set => this.Set((int)ReserveCostSymbolFields.ComponentRef, value); - } - - public string ReserveFolder - { - get => (string)this.Fields[(int)ReserveCostSymbolFields.ReserveFolder]; - set => this.Set((int)ReserveCostSymbolFields.ReserveFolder, value); - } - - public int ReserveLocal - { - get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveLocal]; - set => this.Set((int)ReserveCostSymbolFields.ReserveLocal, value); - } - - public int ReserveSource - { - get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveSource]; - set => this.Set((int)ReserveCostSymbolFields.ReserveSource, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs b/src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs deleted file mode 100644 index 0d3f1558..00000000 --- a/src/WixToolset.Data/Symbols/SFPCatalogSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition SFPCatalog = new IntermediateSymbolDefinition( - SymbolDefinitionType.SFPCatalog, - new[] - { - new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.SFPCatalog), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Catalog), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Dependency), IntermediateFieldType.String), - }, - typeof(SFPCatalogSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum SFPCatalogSymbolFields - { - SFPCatalog, - Catalog, - Dependency, - } - - public class SFPCatalogSymbol : IntermediateSymbol - { - public SFPCatalogSymbol() : base(SymbolDefinitions.SFPCatalog, null, null) - { - } - - public SFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SFPCatalog, sourceLineNumber, id) - { - } - - public IntermediateField this[SFPCatalogSymbolFields index] => this.Fields[(int)index]; - - public string SFPCatalog - { - get => (string)this.Fields[(int)SFPCatalogSymbolFields.SFPCatalog]; - set => this.Set((int)SFPCatalogSymbolFields.SFPCatalog, value); - } - - public string Catalog - { - get => (string)this.Fields[(int)SFPCatalogSymbolFields.Catalog]; - set => this.Set((int)SFPCatalogSymbolFields.Catalog, value); - } - - public string Dependency - { - get => (string)this.Fields[(int)SFPCatalogSymbolFields.Dependency]; - set => this.Set((int)SFPCatalogSymbolFields.Dependency, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ServiceControlSymbol.cs b/src/WixToolset.Data/Symbols/ServiceControlSymbol.cs deleted file mode 100644 index 6e129681..00000000 --- a/src/WixToolset.Data/Symbols/ServiceControlSymbol.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ServiceControl = new IntermediateSymbolDefinition( - SymbolDefinitionType.ServiceControl, - new[] - { - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallRemove), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallRemove), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStart), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStart), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStop), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStop), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Wait), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(ServiceControlSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ServiceControlSymbolFields - { - Name, - InstallRemove, - UninstallRemove, - InstallStart, - UninstallStart, - InstallStop, - UninstallStop, - Arguments, - Wait, - ComponentRef, - } - - public class ServiceControlSymbol : IntermediateSymbol - { - public ServiceControlSymbol() : base(SymbolDefinitions.ServiceControl, null, null) - { - } - - public ServiceControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceControl, sourceLineNumber, id) - { - } - - public IntermediateField this[ServiceControlSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)ServiceControlSymbolFields.Name]; - set => this.Set((int)ServiceControlSymbolFields.Name, value); - } - - public bool InstallRemove - { - get => this.Fields[(int)ServiceControlSymbolFields.InstallRemove].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.InstallRemove, value); - } - - public bool UninstallRemove - { - get => this.Fields[(int)ServiceControlSymbolFields.UninstallRemove].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.UninstallRemove, value); - } - - public bool InstallStart - { - get => this.Fields[(int)ServiceControlSymbolFields.InstallStart].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.InstallStart, value); - } - - public bool UninstallStart - { - get => this.Fields[(int)ServiceControlSymbolFields.UninstallStart].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.UninstallStart, value); - } - - public bool InstallStop - { - get => this.Fields[(int)ServiceControlSymbolFields.InstallStop].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.InstallStop, value); - } - - public bool UninstallStop - { - get => this.Fields[(int)ServiceControlSymbolFields.UninstallStop].AsBool(); - set => this.Set((int)ServiceControlSymbolFields.UninstallStop, value); - } - - public string Arguments - { - get => (string)this.Fields[(int)ServiceControlSymbolFields.Arguments]; - set => this.Set((int)ServiceControlSymbolFields.Arguments, value); - } - - public bool? Wait - { - get => this.Fields[(int)ServiceControlSymbolFields.Wait].AsNullableBool(); - set => this.Set((int)ServiceControlSymbolFields.Wait, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ServiceControlSymbolFields.ComponentRef]; - set => this.Set((int)ServiceControlSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs b/src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs deleted file mode 100644 index f7ec8dbf..00000000 --- a/src/WixToolset.Data/Symbols/ServiceInstallSymbol.cs +++ /dev/null @@ -1,173 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition ServiceInstall = new IntermediateSymbolDefinition( - SymbolDefinitionType.ServiceInstall, - new[] - { - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ServiceType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ErrorControl), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.LoadOrderGroup), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Dependencies), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Password), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Interactive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Vital), IntermediateFieldType.Bool), - }, - typeof(ServiceInstallSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ServiceInstallSymbolFields - { - Name, - DisplayName, - ServiceType, - StartType, - ErrorControl, - LoadOrderGroup, - Dependencies, - StartName, - Password, - Arguments, - ComponentRef, - Description, - Interactive, - Vital, - } - - public enum ServiceType - { - KernelDriver, - SystemDriver, - OwnProcess = 0x10, - ShareProcess = 0x20, - InteractiveProcess = 0x100, - } - - public enum ServiceStartType - { - Boot, - System, - Auto, - Demand, - Disabled, - } - - public enum ServiceErrorControl - { - Ignore, - Normal, - Critical = 3, - } - - public class ServiceInstallSymbol : IntermediateSymbol - { - public ServiceInstallSymbol() : base(SymbolDefinitions.ServiceInstall, null, null) - { - } - - public ServiceInstallSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceInstall, sourceLineNumber, id) - { - } - - public IntermediateField this[ServiceInstallSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Name]; - set => this.Set((int)ServiceInstallSymbolFields.Name, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.DisplayName]; - set => this.Set((int)ServiceInstallSymbolFields.DisplayName, value); - } - - public ServiceType ServiceType - { - get => (ServiceType)this.Fields[(int)ServiceInstallSymbolFields.ServiceType].AsNumber(); - set => this.Set((int)ServiceInstallSymbolFields.ServiceType, (int)value); - } - - public ServiceStartType StartType - { - get => (ServiceStartType)this.Fields[(int)ServiceInstallSymbolFields.StartType].AsNumber(); - set => this.Set((int)ServiceInstallSymbolFields.StartType, (int)value); - } - - public ServiceErrorControl ErrorControl - { - get => (ServiceErrorControl)this.Fields[(int)ServiceInstallSymbolFields.ErrorControl].AsNumber(); - set => this.Set((int)ServiceInstallSymbolFields.ErrorControl, (int)value); - } - - public string LoadOrderGroup - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.LoadOrderGroup]; - set => this.Set((int)ServiceInstallSymbolFields.LoadOrderGroup, value); - } - - public string Dependencies - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Dependencies]; - set => this.Set((int)ServiceInstallSymbolFields.Dependencies, value); - } - - public string StartName - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.StartName]; - set => this.Set((int)ServiceInstallSymbolFields.StartName, value); - } - - public string Password - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Password]; - set => this.Set((int)ServiceInstallSymbolFields.Password, value); - } - - public string Arguments - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Arguments]; - set => this.Set((int)ServiceInstallSymbolFields.Arguments, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.ComponentRef]; - set => this.Set((int)ServiceInstallSymbolFields.ComponentRef, value); - } - - public string Description - { - get => (string)this.Fields[(int)ServiceInstallSymbolFields.Description]; - set => this.Set((int)ServiceInstallSymbolFields.Description, value); - } - - public bool Interactive - { - get => this.Fields[(int)ServiceInstallSymbolFields.Interactive].AsBool(); - set => this.Set((int)ServiceInstallSymbolFields.Interactive, value); - } - - public bool Vital - { - get => this.Fields[(int)ServiceInstallSymbolFields.Vital].AsBool(); - set => this.Set((int)ServiceInstallSymbolFields.Vital, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/ShortcutSymbol.cs b/src/WixToolset.Data/Symbols/ShortcutSymbol.cs deleted file mode 100644 index f32fe4af..00000000 --- a/src/WixToolset.Data/Symbols/ShortcutSymbol.cs +++ /dev/null @@ -1,171 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Shortcut = new IntermediateSymbolDefinition( - SymbolDefinitionType.Shortcut, - new[] - { - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ShortName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Arguments), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Hotkey), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Show), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.WkDir), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceDLL), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceDLL), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceId), IntermediateFieldType.Number), - }, - typeof(ShortcutSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum ShortcutSymbolFields - { - DirectoryRef, - Name, - ShortName, - ComponentRef, - Target, - Arguments, - Description, - Hotkey, - IconRef, - IconIndex, - Show, - WkDir, - DisplayResourceDLL, - DisplayResourceId, - DescriptionResourceDLL, - DescriptionResourceId, - } - - public enum ShortcutShowType - { - Normal = 1, - Maximized = 3, - Minimized = 7 - } - - public class ShortcutSymbol : IntermediateSymbol - { - public ShortcutSymbol() : base(SymbolDefinitions.Shortcut, null, null) - { - } - - public ShortcutSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Shortcut, sourceLineNumber, id) - { - } - - public IntermediateField this[ShortcutSymbolFields index] => this.Fields[(int)index]; - - public string DirectoryRef - { - get => (string)this.Fields[(int)ShortcutSymbolFields.DirectoryRef]; - set => this.Set((int)ShortcutSymbolFields.DirectoryRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Name]; - set => this.Set((int)ShortcutSymbolFields.Name, value); - } - - public string ShortName - { - get => (string)this.Fields[(int)ShortcutSymbolFields.ShortName]; - set => this.Set((int)ShortcutSymbolFields.ShortName, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)ShortcutSymbolFields.ComponentRef]; - set => this.Set((int)ShortcutSymbolFields.ComponentRef, value); - } - - public string Target - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Target]; - set => this.Set((int)ShortcutSymbolFields.Target, value); - } - - public string Arguments - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Arguments]; - set => this.Set((int)ShortcutSymbolFields.Arguments, value); - } - - public string Description - { - get => (string)this.Fields[(int)ShortcutSymbolFields.Description]; - set => this.Set((int)ShortcutSymbolFields.Description, value); - } - - public int? Hotkey - { - get => this.Fields[(int)ShortcutSymbolFields.Hotkey].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.Hotkey, value); - } - - public string IconRef - { - get => (string)this.Fields[(int)ShortcutSymbolFields.IconRef]; - set => this.Set((int)ShortcutSymbolFields.IconRef, value); - } - - public int? IconIndex - { - get => this.Fields[(int)ShortcutSymbolFields.IconIndex].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.IconIndex, value); - } - - public ShortcutShowType? Show - { - get => (ShortcutShowType?)this.Fields[(int)ShortcutSymbolFields.Show].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.Show, (int?)value); - } - - public string WorkingDirectory - { - get => (string)this.Fields[(int)ShortcutSymbolFields.WkDir]; - set => this.Set((int)ShortcutSymbolFields.WkDir, value); - } - - public string DisplayResourceDll - { - get => (string)this.Fields[(int)ShortcutSymbolFields.DisplayResourceDLL]; - set => this.Set((int)ShortcutSymbolFields.DisplayResourceDLL, value); - } - - public int? DisplayResourceId - { - get => this.Fields[(int)ShortcutSymbolFields.DisplayResourceId].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.DisplayResourceId, value); - } - - public string DescriptionResourceDll - { - get => (string)this.Fields[(int)ShortcutSymbolFields.DescriptionResourceDLL]; - set => this.Set((int)ShortcutSymbolFields.DescriptionResourceDLL, value); - } - - public int? DescriptionResourceId - { - get => this.Fields[(int)ShortcutSymbolFields.DescriptionResourceId].AsNullableNumber(); - set => this.Set((int)ShortcutSymbolFields.DescriptionResourceId, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/SignatureSymbol.cs b/src/WixToolset.Data/Symbols/SignatureSymbol.cs deleted file mode 100644 index fc2ce088..00000000 --- a/src/WixToolset.Data/Symbols/SignatureSymbol.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Signature = new IntermediateSymbolDefinition( - SymbolDefinitionType.Signature, - new[] - { - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.FileName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SignatureSymbolFields.Languages), IntermediateFieldType.String), - }, - typeof(SignatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum SignatureSymbolFields - { - FileName, - MinVersion, - MaxVersion, - MinSize, - MaxSize, - MinDate, - MaxDate, - Languages, - } - - public class SignatureSymbol : IntermediateSymbol - { - public SignatureSymbol() : base(SymbolDefinitions.Signature, null, null) - { - } - - public SignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Signature, sourceLineNumber, id) - { - } - - public IntermediateField this[SignatureSymbolFields index] => this.Fields[(int)index]; - - public string FileName - { - get => (string)this.Fields[(int)SignatureSymbolFields.FileName]; - set => this.Set((int)SignatureSymbolFields.FileName, value); - } - - public string MinVersion - { - get => (string)this.Fields[(int)SignatureSymbolFields.MinVersion]; - set => this.Set((int)SignatureSymbolFields.MinVersion, value); - } - - public string MaxVersion - { - get => (string)this.Fields[(int)SignatureSymbolFields.MaxVersion]; - set => this.Set((int)SignatureSymbolFields.MaxVersion, value); - } - - public int? MinSize - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MinSize]; - set => this.Set((int)SignatureSymbolFields.MinSize, value); - } - - public int? MaxSize - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MaxSize]; - set => this.Set((int)SignatureSymbolFields.MaxSize, value); - } - - public int? MinDate - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MinDate]; - set => this.Set((int)SignatureSymbolFields.MinDate, value); - } - - public int? MaxDate - { - get => (int?)this.Fields[(int)SignatureSymbolFields.MaxDate]; - set => this.Set((int)SignatureSymbolFields.MaxDate, value); - } - - public string Languages - { - get => (string)this.Fields[(int)SignatureSymbolFields.Languages]; - set => this.Set((int)SignatureSymbolFields.Languages, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs b/src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs deleted file mode 100644 index 60bf22a2..00000000 --- a/src/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition SoftwareIdentificationTag = new IntermediateSymbolDefinition( - SymbolDefinitionType.SoftwareIdentificationTag, - new[] - { - new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.Regid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.UniqueId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.PersistentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.Alias), IntermediateFieldType.String), - }, - typeof(SoftwareIdentificationTagSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum SoftwareIdentificationTagSymbolFields - { - FileRef, - Regid, - UniqueId, - PersistentId, - Alias, - } - - public class SoftwareIdentificationTagSymbol : IntermediateSymbol - { - public SoftwareIdentificationTagSymbol() : base(SymbolDefinitions.SoftwareIdentificationTag, null, null) - { - } - - public SoftwareIdentificationTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SoftwareIdentificationTag, sourceLineNumber, id) - { - } - - public IntermediateField this[SoftwareIdentificationTagSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.FileRef].AsString(); - set => this.Set((int)SoftwareIdentificationTagSymbolFields.FileRef, value); - } - - public string Regid - { - get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.Regid].AsString(); - set => this.Set((int)SoftwareIdentificationTagSymbolFields.Regid, value); - } - - public string TagId - { - get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.UniqueId].AsString(); - set => this.Set((int)SoftwareIdentificationTagSymbolFields.UniqueId, value); - } - - public string PersistentId - { - get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.PersistentId].AsString(); - set => this.Set((int)SoftwareIdentificationTagSymbolFields.PersistentId, value); - } - - public string Alias - { - get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.Alias].AsString(); - set => this.Set((int)SoftwareIdentificationTagSymbolFields.Alias, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs b/src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs deleted file mode 100644 index b3b233fe..00000000 --- a/src/WixToolset.Data/Symbols/SummaryInformationSymbol.cs +++ /dev/null @@ -1,102 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition SummaryInformation = new IntermediateSymbolDefinition( - SymbolDefinitionType.SummaryInformation, - new[] - { - new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.PropertyId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(SummaryInformationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum SummaryInformationSymbolFields - { - PropertyId, - Value, - } - - public enum SummaryInformationType - { - Codepage = 1, - Title, - Subject, - PatchPackageName = 3, //used by patches - Author, - Keywords, - Comments, - PlatformAndLanguage, - PatchProductCodes = 7, // used by patches - TransformPlatformAndLanguageOrStorageNames, - TransformNames = 8, // used by patches - PackageCode, - PatchCode = 9, // used by patches - TransformProductCodes = 9, // used by transforms - Reserved11 = 11, // reserved by patches - Created, - LastSaved, - WindowsInstallerVersion, - Reserved14 = 14, // reserved by patches - WordCount, - PatchInstallerRequirement = 15, // used by patches - Reserved16, // reserved by patches - TransformValidationFlags = 16, // used by transforms - CreatingApplication = 18, - Security - } - - /// - /// Summary information values for the PachInstallerRequirement property. - /// - public enum PatchInstallerRequirement - { - /// Any version of the installer will do - Version10 = 1, - - /// At least 1.2 - Version12 = 2, - - /// At least 2.0 - Version20 = 3, - - /// At least 3.0 - Version30 = 4, - - /// At least 3.1 - Version31 = 5, - } - - public class SummaryInformationSymbol : IntermediateSymbol - { - public SummaryInformationSymbol() : base(SymbolDefinitions.SummaryInformation, null, null) - { - } - - public SummaryInformationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SummaryInformation, sourceLineNumber, id) - { - } - - public IntermediateField this[SummaryInformationSymbolFields index] => this.Fields[(int)index]; - - public SummaryInformationType PropertyId - { - get => (SummaryInformationType)this.Fields[(int)SummaryInformationSymbolFields.PropertyId].AsNumber(); - set => this.Set((int)SummaryInformationSymbolFields.PropertyId, (int)value); - } - - public string Value - { - get => (string)this.Fields[(int)SummaryInformationSymbolFields.Value]; - set => this.Set((int)SummaryInformationSymbolFields.Value, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs deleted file mode 100644 index 0ed0a4ec..00000000 --- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ /dev/null @@ -1,776 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - public enum SymbolDefinitionType - { - SummaryInformation, - ActionText, - AppId, - AppSearch, - BBControl, - Billboard, - Binary, - CCPSearch, - CheckBox, - Class, - ComboBox, - CompLocator, - Complus, - Component, - Condition, - Control, - ControlCondition, - ControlEvent, - CreateFolder, - CustomAction, - Dialog, - Directory, - DrLocator, - DuplicateFile, - Environment, - Error, - EventMapping, - Extension, - ExternalFiles, - FamilyFileRanges, - Feature, - FeatureComponents, - File, - FileSFPCatalog, - Icon, - ImageFamilies, - IniFile, - IniLocator, - IsolatedComponent, - LaunchCondition, - ListBox, - ListView, - LockPermissions, - Media, - MIME, - ModuleComponents, - ModuleConfiguration, - ModuleDependency, - ModuleExclusion, - ModuleIgnoreTable, - WixModule, - ModuleSubstitution, - MoveFile, - Assembly, - MsiAssemblyName, - MsiDigitalCertificate, - MsiDigitalSignature, - MsiEmbeddedChainer, - MsiEmbeddedUI, - MsiFileHash, - MsiLockPermissionsEx, - MsiPackageCertificate, - MsiPatchCertificate, - MsiPatchHeaders, - MsiPatchMetadata, - MsiPatchOldAssemblyFile, - MsiPatchOldAssemblyName, - MsiPatchSequence, - MsiServiceConfig, - MsiServiceConfigFailureActions, - MsiShortcutProperty, - ODBCAttribute, - ODBCDataSource, - ODBCDriver, - ODBCSourceAttribute, - ODBCTranslator, - Patch, - PatchMetadata, - PatchPackage, - PatchSequence, - ProgId, - Properties, - Property, - ProvidesDependency, - PublishComponent, - RadioButton, - Registry, - RegLocator, - RemoveFile, - RemoveRegistry, - ReserveCost, - ServiceControl, - ServiceInstall, - SFPCatalog, - Shortcut, - Signature, - SoftwareIdentificationTag, - TargetFilesOptionalData, - TargetImages, - TextStyle, - TypeLib, - UIText, - Upgrade, - UpgradedFilesOptionalData, - UpgradedFilesToIgnore, - UpgradedImages, - Verb, - WixAction, - WixApprovedExeForElevation, - WixBindUpdatedFiles, - WixBootstrapperApplication, - WixBootstrapperApplicationDll, - WixBuildInfo, - WixBundle, - WixBundleContainer, - WixBundleCustomData, - WixBundleCustomDataAttribute, - WixBundleCustomDataCell, - WixBundleExePackage, - WixBundleExePackagePayload, - WixBundleExtension, - WixBundleMsiFeature, - WixBundleMsiPackage, - WixBundleMsiPackagePayload, - WixBundleMsiProperty, - WixBundleMspPackage, - WixBundleMspPackagePayload, - WixBundleMsuPackage, - WixBundleMsuPackagePayload, - WixBundlePackage, - WixBundlePackageCommandLine, - WixBundlePackageExitCode, - WixBundlePackageGroup, - WixBundlePatchTargetCode, - WixBundlePayload, - WixBundlePayloadGroup, - WixBundleRelatedPackage, - WixBundleRollbackBoundary, - WixBundleSlipstreamMsp, - WixBundleTag, - WixBundleUpdate, - WixBundleVariable, - WixChain, - WixChainItem, - WixComplexReference, - WixComponentGroup, - WixComponentSearch, - WixCustomTable, - WixCustomTableCell, - WixCustomTableColumn, - WixDeltaPatchFile, - WixDeltaPatchSymbolPaths, - WixDependency, - WixDependencyRef, - WixDependencyProvider, - WixEnsureTable, - WixFeatureGroup, - WixFeatureModules, - WixFileSearch, - WixFragment, - WixGroup, - WixInstanceComponent, - WixInstanceTransforms, - WixMediaTemplate, - WixMerge, - WixOrdering, - WixPackage, - WixPatchBaseline, - WixPatchFamilyGroup, - WixPatch, - WixPatchRef, - WixPatchTarget, - WixProductSearch, - WixProductTag, - WixProperty, - WixRegistrySearch, - WixRelatedBundle, - WixSearch, - WixSearchRelation, - WixSetVariable, - WixSimpleReference, - WixSuppressAction, - WixSuppressModularization, - WixUI, - WixUpdateRegistration, - WixVariable, - MustBeFromAnExtension, - } - - public static partial class SymbolDefinitions - { - public static readonly Version Version = new Version("4.0.0"); - - public static IntermediateSymbolDefinition ByName(string name) - { - if (!Enum.TryParse(name, out SymbolDefinitionType type) || type == SymbolDefinitionType.MustBeFromAnExtension) - { - return null; - } - - return ByType(type); - } - - public static IntermediateSymbolDefinition ByType(SymbolDefinitionType type) - { - switch (type) - { - case SymbolDefinitionType.SummaryInformation: - return SymbolDefinitions.SummaryInformation; - - case SymbolDefinitionType.ActionText: - return SymbolDefinitions.ActionText; - - case SymbolDefinitionType.AppId: - return SymbolDefinitions.AppId; - - case SymbolDefinitionType.AppSearch: - return SymbolDefinitions.AppSearch; - - case SymbolDefinitionType.BBControl: - return SymbolDefinitions.BBControl; - - case SymbolDefinitionType.Billboard: - return SymbolDefinitions.Billboard; - - case SymbolDefinitionType.Binary: - return SymbolDefinitions.Binary; - - case SymbolDefinitionType.CCPSearch: - return SymbolDefinitions.CCPSearch; - - case SymbolDefinitionType.CheckBox: - return SymbolDefinitions.CheckBox; - - case SymbolDefinitionType.Class: - return SymbolDefinitions.Class; - - case SymbolDefinitionType.ComboBox: - return SymbolDefinitions.ComboBox; - - case SymbolDefinitionType.CompLocator: - return SymbolDefinitions.CompLocator; - - case SymbolDefinitionType.Complus: - return SymbolDefinitions.Complus; - - case SymbolDefinitionType.Component: - return SymbolDefinitions.Component; - - case SymbolDefinitionType.Condition: - return SymbolDefinitions.Condition; - - case SymbolDefinitionType.Control: - return SymbolDefinitions.Control; - - case SymbolDefinitionType.ControlCondition: - return SymbolDefinitions.ControlCondition; - - case SymbolDefinitionType.ControlEvent: - return SymbolDefinitions.ControlEvent; - - case SymbolDefinitionType.CreateFolder: - return SymbolDefinitions.CreateFolder; - - case SymbolDefinitionType.CustomAction: - return SymbolDefinitions.CustomAction; - - case SymbolDefinitionType.Dialog: - return SymbolDefinitions.Dialog; - - case SymbolDefinitionType.Directory: - return SymbolDefinitions.Directory; - - case SymbolDefinitionType.DrLocator: - return SymbolDefinitions.DrLocator; - - case SymbolDefinitionType.DuplicateFile: - return SymbolDefinitions.DuplicateFile; - - case SymbolDefinitionType.Environment: - return SymbolDefinitions.Environment; - - case SymbolDefinitionType.Error: - return SymbolDefinitions.Error; - - case SymbolDefinitionType.EventMapping: - return SymbolDefinitions.EventMapping; - - case SymbolDefinitionType.Extension: - return SymbolDefinitions.Extension; - - case SymbolDefinitionType.ExternalFiles: - return SymbolDefinitions.ExternalFiles; - - case SymbolDefinitionType.FamilyFileRanges: - return SymbolDefinitions.FamilyFileRanges; - - case SymbolDefinitionType.Feature: - return SymbolDefinitions.Feature; - - case SymbolDefinitionType.FeatureComponents: - return SymbolDefinitions.FeatureComponents; - - case SymbolDefinitionType.File: - return SymbolDefinitions.File; - - case SymbolDefinitionType.FileSFPCatalog: - return SymbolDefinitions.FileSFPCatalog; - - case SymbolDefinitionType.Icon: - return SymbolDefinitions.Icon; - - case SymbolDefinitionType.ImageFamilies: - return SymbolDefinitions.ImageFamilies; - - case SymbolDefinitionType.IniFile: - return SymbolDefinitions.IniFile; - - case SymbolDefinitionType.IniLocator: - return SymbolDefinitions.IniLocator; - - case SymbolDefinitionType.IsolatedComponent: - return SymbolDefinitions.IsolatedComponent; - - case SymbolDefinitionType.LaunchCondition: - return SymbolDefinitions.LaunchCondition; - - case SymbolDefinitionType.ListBox: - return SymbolDefinitions.ListBox; - - case SymbolDefinitionType.ListView: - return SymbolDefinitions.ListView; - - case SymbolDefinitionType.LockPermissions: - return SymbolDefinitions.LockPermissions; - - case SymbolDefinitionType.Media: - return SymbolDefinitions.Media; - - case SymbolDefinitionType.MIME: - return SymbolDefinitions.MIME; - - case SymbolDefinitionType.ModuleComponents: - return SymbolDefinitions.ModuleComponents; - - case SymbolDefinitionType.ModuleConfiguration: - return SymbolDefinitions.ModuleConfiguration; - - case SymbolDefinitionType.ModuleDependency: - return SymbolDefinitions.ModuleDependency; - - case SymbolDefinitionType.ModuleExclusion: - return SymbolDefinitions.ModuleExclusion; - - case SymbolDefinitionType.ModuleIgnoreTable: - return SymbolDefinitions.ModuleIgnoreTable; - - case SymbolDefinitionType.WixModule: - return SymbolDefinitions.WixModule; - - case SymbolDefinitionType.ModuleSubstitution: - return SymbolDefinitions.ModuleSubstitution; - - case SymbolDefinitionType.MoveFile: - return SymbolDefinitions.MoveFile; - - case SymbolDefinitionType.Assembly: - return SymbolDefinitions.Assembly; - - case SymbolDefinitionType.MsiAssemblyName: - return SymbolDefinitions.MsiAssemblyName; - - case SymbolDefinitionType.MsiDigitalCertificate: - return SymbolDefinitions.MsiDigitalCertificate; - - case SymbolDefinitionType.MsiDigitalSignature: - return SymbolDefinitions.MsiDigitalSignature; - - case SymbolDefinitionType.MsiEmbeddedChainer: - return SymbolDefinitions.MsiEmbeddedChainer; - - case SymbolDefinitionType.MsiEmbeddedUI: - return SymbolDefinitions.MsiEmbeddedUI; - - case SymbolDefinitionType.MsiFileHash: - return SymbolDefinitions.MsiFileHash; - - case SymbolDefinitionType.MsiLockPermissionsEx: - return SymbolDefinitions.MsiLockPermissionsEx; - - case SymbolDefinitionType.MsiPackageCertificate: - return SymbolDefinitions.MsiPackageCertificate; - - case SymbolDefinitionType.MsiPatchCertificate: - return SymbolDefinitions.MsiPatchCertificate; - - case SymbolDefinitionType.MsiPatchHeaders: - return SymbolDefinitions.MsiPatchHeaders; - - case SymbolDefinitionType.MsiPatchMetadata: - return SymbolDefinitions.MsiPatchMetadata; - - case SymbolDefinitionType.MsiPatchOldAssemblyFile: - return SymbolDefinitions.MsiPatchOldAssemblyFile; - - case SymbolDefinitionType.MsiPatchOldAssemblyName: - return SymbolDefinitions.MsiPatchOldAssemblyName; - - case SymbolDefinitionType.MsiPatchSequence: - return SymbolDefinitions.MsiPatchSequence; - - case SymbolDefinitionType.MsiServiceConfig: - return SymbolDefinitions.MsiServiceConfig; - - case SymbolDefinitionType.MsiServiceConfigFailureActions: - return SymbolDefinitions.MsiServiceConfigFailureActions; - - case SymbolDefinitionType.MsiShortcutProperty: - return SymbolDefinitions.MsiShortcutProperty; - - case SymbolDefinitionType.ODBCAttribute: - return SymbolDefinitions.ODBCAttribute; - - case SymbolDefinitionType.ODBCDataSource: - return SymbolDefinitions.ODBCDataSource; - - case SymbolDefinitionType.ODBCDriver: - return SymbolDefinitions.ODBCDriver; - - case SymbolDefinitionType.ODBCSourceAttribute: - return SymbolDefinitions.ODBCSourceAttribute; - - case SymbolDefinitionType.ODBCTranslator: - return SymbolDefinitions.ODBCTranslator; - - case SymbolDefinitionType.Patch: - return SymbolDefinitions.Patch; - - case SymbolDefinitionType.PatchMetadata: - return SymbolDefinitions.PatchMetadata; - - case SymbolDefinitionType.PatchPackage: - return SymbolDefinitions.PatchPackage; - - case SymbolDefinitionType.PatchSequence: - return SymbolDefinitions.PatchSequence; - - case SymbolDefinitionType.ProgId: - return SymbolDefinitions.ProgId; - - case SymbolDefinitionType.Properties: - return SymbolDefinitions.Properties; - - case SymbolDefinitionType.Property: - return SymbolDefinitions.Property; - - case SymbolDefinitionType.PublishComponent: - return SymbolDefinitions.PublishComponent; - - case SymbolDefinitionType.RadioButton: - return SymbolDefinitions.RadioButton; - - case SymbolDefinitionType.Registry: - return SymbolDefinitions.Registry; - - case SymbolDefinitionType.RegLocator: - return SymbolDefinitions.RegLocator; - - case SymbolDefinitionType.RemoveFile: - return SymbolDefinitions.RemoveFile; - - case SymbolDefinitionType.RemoveRegistry: - return SymbolDefinitions.RemoveRegistry; - - case SymbolDefinitionType.ReserveCost: - return SymbolDefinitions.ReserveCost; - - case SymbolDefinitionType.ServiceControl: - return SymbolDefinitions.ServiceControl; - - case SymbolDefinitionType.ServiceInstall: - return SymbolDefinitions.ServiceInstall; - - case SymbolDefinitionType.SFPCatalog: - return SymbolDefinitions.SFPCatalog; - - case SymbolDefinitionType.Shortcut: - return SymbolDefinitions.Shortcut; - - case SymbolDefinitionType.Signature: - return SymbolDefinitions.Signature; - - case SymbolDefinitionType.SoftwareIdentificationTag: - return SymbolDefinitions.SoftwareIdentificationTag; - - case SymbolDefinitionType.TargetFilesOptionalData: - return SymbolDefinitions.TargetFilesOptionalData; - - case SymbolDefinitionType.TargetImages: - return SymbolDefinitions.TargetImages; - - case SymbolDefinitionType.TextStyle: - return SymbolDefinitions.TextStyle; - - case SymbolDefinitionType.TypeLib: - return SymbolDefinitions.TypeLib; - - case SymbolDefinitionType.UIText: - return SymbolDefinitions.UIText; - - case SymbolDefinitionType.Upgrade: - return SymbolDefinitions.Upgrade; - - case SymbolDefinitionType.UpgradedFilesOptionalData: - return SymbolDefinitions.UpgradedFilesOptionalData; - - case SymbolDefinitionType.UpgradedFilesToIgnore: - return SymbolDefinitions.UpgradedFilesToIgnore; - - case SymbolDefinitionType.UpgradedImages: - return SymbolDefinitions.UpgradedImages; - - case SymbolDefinitionType.Verb: - return SymbolDefinitions.Verb; - - case SymbolDefinitionType.WixAction: - return SymbolDefinitions.WixAction; - - case SymbolDefinitionType.WixApprovedExeForElevation: - return SymbolDefinitions.WixApprovedExeForElevation; - - case SymbolDefinitionType.WixBindUpdatedFiles: - return SymbolDefinitions.WixBindUpdatedFiles; - - case SymbolDefinitionType.WixBootstrapperApplication: - return SymbolDefinitions.WixBootstrapperApplication; - - case SymbolDefinitionType.WixBootstrapperApplicationDll: - return SymbolDefinitions.WixBootstrapperApplicationDll; - - case SymbolDefinitionType.WixBuildInfo: - return SymbolDefinitions.WixBuildInfo; - - case SymbolDefinitionType.WixBundle: - return SymbolDefinitions.WixBundle; - - case SymbolDefinitionType.WixBundleContainer: - return SymbolDefinitions.WixBundleContainer; - - case SymbolDefinitionType.WixBundleCustomData: - return SymbolDefinitions.WixBundleCustomData; - - case SymbolDefinitionType.WixBundleCustomDataAttribute: - return SymbolDefinitions.WixBundleCustomDataAttribute; - - case SymbolDefinitionType.WixBundleCustomDataCell: - return SymbolDefinitions.WixBundleCustomDataCell; - - case SymbolDefinitionType.WixBundleExtension: - return SymbolDefinitions.WixBundleExtension; - - case SymbolDefinitionType.WixBundleExePackage: - return SymbolDefinitions.WixBundleExePackage; - - case SymbolDefinitionType.WixBundleExePackagePayload: - return SymbolDefinitions.WixBundleExePackagePayload; - - case SymbolDefinitionType.WixBundleMsiFeature: - return SymbolDefinitions.WixBundleMsiFeature; - - case SymbolDefinitionType.WixBundleMsiPackage: - return SymbolDefinitions.WixBundleMsiPackage; - - case SymbolDefinitionType.WixBundleMsiPackagePayload: - return SymbolDefinitions.WixBundleMsiPackagePayload; - - case SymbolDefinitionType.WixBundleMsiProperty: - return SymbolDefinitions.WixBundleMsiProperty; - - case SymbolDefinitionType.WixBundleMspPackage: - return SymbolDefinitions.WixBundleMspPackage; - - case SymbolDefinitionType.WixBundleMspPackagePayload: - return SymbolDefinitions.WixBundleMspPackagePayload; - - case SymbolDefinitionType.WixBundleMsuPackage: - return SymbolDefinitions.WixBundleMsuPackage; - - case SymbolDefinitionType.WixBundleMsuPackagePayload: - return SymbolDefinitions.WixBundleMsuPackagePayload; - - case SymbolDefinitionType.WixBundlePackage: - return SymbolDefinitions.WixBundlePackage; - - case SymbolDefinitionType.WixBundlePackageCommandLine: - return SymbolDefinitions.WixBundlePackageCommandLine; - - case SymbolDefinitionType.WixBundlePackageExitCode: - return SymbolDefinitions.WixBundlePackageExitCode; - - case SymbolDefinitionType.WixBundlePackageGroup: - return SymbolDefinitions.WixBundlePackageGroup; - - case SymbolDefinitionType.WixBundlePatchTargetCode: - return SymbolDefinitions.WixBundlePatchTargetCode; - - case SymbolDefinitionType.WixBundlePayload: - return SymbolDefinitions.WixBundlePayload; - - case SymbolDefinitionType.WixBundlePayloadGroup: - return SymbolDefinitions.WixBundlePayloadGroup; - - case SymbolDefinitionType.WixBundleRelatedPackage: - return SymbolDefinitions.WixBundleRelatedPackage; - - case SymbolDefinitionType.WixBundleRollbackBoundary: - return SymbolDefinitions.WixBundleRollbackBoundary; - - case SymbolDefinitionType.WixBundleSlipstreamMsp: - return SymbolDefinitions.WixBundleSlipstreamMsp; - - case SymbolDefinitionType.WixBundleTag: - return SymbolDefinitions.WixBundleTag; - - case SymbolDefinitionType.WixBundleUpdate: - return SymbolDefinitions.WixBundleUpdate; - - case SymbolDefinitionType.WixBundleVariable: - return SymbolDefinitions.WixBundleVariable; - - case SymbolDefinitionType.WixChain: - return SymbolDefinitions.WixChain; - - case SymbolDefinitionType.WixChainItem: - return SymbolDefinitions.WixChainItem; - - case SymbolDefinitionType.WixComplexReference: - return SymbolDefinitions.WixComplexReference; - - case SymbolDefinitionType.WixComponentGroup: - return SymbolDefinitions.WixComponentGroup; - - case SymbolDefinitionType.WixComponentSearch: - return SymbolDefinitions.WixComponentSearch; - - case SymbolDefinitionType.WixCustomTable: - return SymbolDefinitions.WixCustomTable; - - case SymbolDefinitionType.WixCustomTableCell: - return SymbolDefinitions.WixCustomTableCell; - - case SymbolDefinitionType.WixCustomTableColumn: - return SymbolDefinitions.WixCustomTableColumn; - - case SymbolDefinitionType.WixDeltaPatchFile: - return SymbolDefinitions.WixDeltaPatchFile; - - case SymbolDefinitionType.WixDeltaPatchSymbolPaths: - return SymbolDefinitions.WixDeltaPatchSymbolPaths; - - case SymbolDefinitionType.WixDependency: - return SymbolDefinitions.WixDependency; - - case SymbolDefinitionType.WixDependencyRef: - return SymbolDefinitions.WixDependencyRef; - - case SymbolDefinitionType.WixDependencyProvider: - return SymbolDefinitions.WixDependencyProvider; - - case SymbolDefinitionType.WixEnsureTable: - return SymbolDefinitions.WixEnsureTable; - - case SymbolDefinitionType.WixFeatureGroup: - return SymbolDefinitions.WixFeatureGroup; - - case SymbolDefinitionType.WixFeatureModules: - return SymbolDefinitions.WixFeatureModules; - - case SymbolDefinitionType.WixFileSearch: - return SymbolDefinitions.WixFileSearch; - - case SymbolDefinitionType.WixFragment: - return SymbolDefinitions.WixFragment; - - case SymbolDefinitionType.WixGroup: - return SymbolDefinitions.WixGroup; - - case SymbolDefinitionType.WixInstanceComponent: - return SymbolDefinitions.WixInstanceComponent; - - case SymbolDefinitionType.WixInstanceTransforms: - return SymbolDefinitions.WixInstanceTransforms; - - case SymbolDefinitionType.WixMediaTemplate: - return SymbolDefinitions.WixMediaTemplate; - - case SymbolDefinitionType.WixMerge: - return SymbolDefinitions.WixMerge; - - case SymbolDefinitionType.WixOrdering: - return SymbolDefinitions.WixOrdering; - - case SymbolDefinitionType.WixPackage: - return SymbolDefinitions.WixPackage; - - case SymbolDefinitionType.WixPatchBaseline: - return SymbolDefinitions.WixPatchBaseline; - - case SymbolDefinitionType.WixPatchFamilyGroup: - return SymbolDefinitions.WixPatchFamilyGroup; - - case SymbolDefinitionType.WixPatch: - return SymbolDefinitions.WixPatchId; - - case SymbolDefinitionType.WixPatchRef: - return SymbolDefinitions.WixPatchRef; - - case SymbolDefinitionType.WixPatchTarget: - return SymbolDefinitions.WixPatchTarget; - - case SymbolDefinitionType.WixProductSearch: - return SymbolDefinitions.WixProductSearch; - - case SymbolDefinitionType.WixProductTag: - return SymbolDefinitions.WixProductTag; - - case SymbolDefinitionType.WixProperty: - return SymbolDefinitions.WixProperty; - - case SymbolDefinitionType.WixRegistrySearch: - return SymbolDefinitions.WixRegistrySearch; - - case SymbolDefinitionType.WixRelatedBundle: - return SymbolDefinitions.WixRelatedBundle; - - case SymbolDefinitionType.WixSearch: - return SymbolDefinitions.WixSearch; - - case SymbolDefinitionType.WixSearchRelation: - return SymbolDefinitions.WixSearchRelation; - - case SymbolDefinitionType.WixSetVariable: - return SymbolDefinitions.WixSetVariable; - - case SymbolDefinitionType.WixSimpleReference: - return SymbolDefinitions.WixSimpleReference; - - case SymbolDefinitionType.WixSuppressAction: - return SymbolDefinitions.WixSuppressAction; - - case SymbolDefinitionType.WixSuppressModularization: - return SymbolDefinitions.WixSuppressModularization; - - case SymbolDefinitionType.WixUI: - return SymbolDefinitions.WixUI; - - case SymbolDefinitionType.WixUpdateRegistration: - return SymbolDefinitions.WixUpdateRegistration; - - case SymbolDefinitionType.WixVariable: - return SymbolDefinitions.WixVariable; - - default: - throw new ArgumentOutOfRangeException($"{nameof(type)} ({type})"); - } - } - } -} diff --git a/src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs b/src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs deleted file mode 100644 index 66fdc30c..00000000 --- a/src/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TargetFilesOptionalData = new IntermediateSymbolDefinition( - SymbolDefinitionType.TargetFilesOptionalData, - new[] - { - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.RetainOffsets), IntermediateFieldType.String), - }, - typeof(TargetFilesOptionalDataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TargetFilesOptionalDataSymbolFields - { - Target, - FTK, - SymbolPaths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - } - - public class TargetFilesOptionalDataSymbol : IntermediateSymbol - { - public TargetFilesOptionalDataSymbol() : base(SymbolDefinitions.TargetFilesOptionalData, null, null) - { - } - - public TargetFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetFilesOptionalData, sourceLineNumber, id) - { - } - - public IntermediateField this[TargetFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; - - public string Target - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.Target]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.Target, value); - } - - public string FTK - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.FTK]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.FTK, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.SymbolPaths]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.SymbolPaths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreLengths]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.RetainOffsets]; - set => this.Set((int)TargetFilesOptionalDataSymbolFields.RetainOffsets, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/TargetImagesSymbol.cs b/src/WixToolset.Data/Symbols/TargetImagesSymbol.cs deleted file mode 100644 index 4748b1f3..00000000 --- a/src/WixToolset.Data/Symbols/TargetImagesSymbol.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TargetImages = new IntermediateSymbolDefinition( - SymbolDefinitionType.TargetImages, - new[] - { - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Target), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.MsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Order), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.ProductValidateFlags), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.IgnoreMissingSrcFiles), IntermediateFieldType.Bool), - }, - typeof(TargetImagesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TargetImagesSymbolFields - { - Target, - MsiPath, - SymbolPaths, - Upgraded, - Order, - ProductValidateFlags, - IgnoreMissingSrcFiles, - } - - public class TargetImagesSymbol : IntermediateSymbol - { - public TargetImagesSymbol() : base(SymbolDefinitions.TargetImages, null, null) - { - } - - public TargetImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetImages, sourceLineNumber, id) - { - } - - public IntermediateField this[TargetImagesSymbolFields index] => this.Fields[(int)index]; - - public string Target - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.Target]; - set => this.Set((int)TargetImagesSymbolFields.Target, value); - } - - public string MsiPath - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.MsiPath]; - set => this.Set((int)TargetImagesSymbolFields.MsiPath, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.SymbolPaths]; - set => this.Set((int)TargetImagesSymbolFields.SymbolPaths, value); - } - - public string Upgraded - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.Upgraded]; - set => this.Set((int)TargetImagesSymbolFields.Upgraded, value); - } - - public int Order - { - get => (int)this.Fields[(int)TargetImagesSymbolFields.Order]; - set => this.Set((int)TargetImagesSymbolFields.Order, value); - } - - public string ProductValidateFlags - { - get => (string)this.Fields[(int)TargetImagesSymbolFields.ProductValidateFlags]; - set => this.Set((int)TargetImagesSymbolFields.ProductValidateFlags, value); - } - - public bool IgnoreMissingSrcFiles - { - get => (bool)this.Fields[(int)TargetImagesSymbolFields.IgnoreMissingSrcFiles]; - set => this.Set((int)TargetImagesSymbolFields.IgnoreMissingSrcFiles, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/TextStyleSymbol.cs b/src/WixToolset.Data/Symbols/TextStyleSymbol.cs deleted file mode 100644 index 53415714..00000000 --- a/src/WixToolset.Data/Symbols/TextStyleSymbol.cs +++ /dev/null @@ -1,114 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TextStyle = new IntermediateSymbolDefinition( - SymbolDefinitionType.TextStyle, - new[] - { - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.FaceName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Size), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Red), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Green), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Blue), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Bold), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Italic), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Strike), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Underline), IntermediateFieldType.Bool), - }, - typeof(TextStyleSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TextStyleSymbolFields - { - FaceName, - Size, - Red, - Green, - Blue, - Bold, - Italic, - Strike, - Underline, - } - - public class TextStyleSymbol : IntermediateSymbol - { - public TextStyleSymbol() : base(SymbolDefinitions.TextStyle, null, null) - { - } - - public TextStyleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TextStyle, sourceLineNumber, id) - { - } - - public IntermediateField this[TextStyleSymbolFields index] => this.Fields[(int)index]; - - public string FaceName - { - get => (string)this.Fields[(int)TextStyleSymbolFields.FaceName]; - set => this.Set((int)TextStyleSymbolFields.FaceName, value); - } - - public string LocalizedSize - { - get => (string)this.Fields[(int)TextStyleSymbolFields.Size]; - set => this.Set((int)TextStyleSymbolFields.Size, value); - } - - public int Size - { - get => (int)this.Fields[(int)TextStyleSymbolFields.Size]; - set => this.Set((int)TextStyleSymbolFields.Size, value); - } - - public int? Red - { - get => (int?)this.Fields[(int)TextStyleSymbolFields.Red]; - set => this.Set((int)TextStyleSymbolFields.Red, value); - } - - public int? Green - { - get => (int?)this.Fields[(int)TextStyleSymbolFields.Green]; - set => this.Set((int)TextStyleSymbolFields.Green, value); - } - - public int? Blue - { - get => (int?)this.Fields[(int)TextStyleSymbolFields.Blue]; - set => this.Set((int)TextStyleSymbolFields.Blue, value); - } - - public bool Bold - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Bold]; - set => this.Set((int)TextStyleSymbolFields.Bold, value); - } - - public bool Italic - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Italic]; - set => this.Set((int)TextStyleSymbolFields.Italic, value); - } - - public bool Strike - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Strike]; - set => this.Set((int)TextStyleSymbolFields.Strike, value); - } - - public bool Underline - { - get => (bool)this.Fields[(int)TextStyleSymbolFields.Underline]; - set => this.Set((int)TextStyleSymbolFields.Underline, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/TransformsFlags.cs b/src/WixToolset.Data/Symbols/TransformsFlags.cs deleted file mode 100644 index 90f22cb4..00000000 --- a/src/WixToolset.Data/Symbols/TransformsFlags.cs +++ /dev/null @@ -1,79 +0,0 @@ -// 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. - -namespace WixToolset.Data.Symbols -{ - using System; - - /// - /// Summary information values for the CharCount property in transforms. - /// - [Flags] - public enum TransformFlags - { - /// Ignore error when adding a row that exists. - ErrorAddExistingRow = 0x1, - - /// Ignore error when deleting a row that does not exist. - ErrorDeleteMissingRow = 0x2, - - /// Ignore error when adding a table that exists. - ErrorAddExistingTable = 0x4, - - /// Ignore error when deleting a table that does not exist. - ErrorDeleteMissingTable = 0x8, - - /// Ignore error when updating a row that does not exist. - ErrorUpdateMissingRow = 0x10, - - /// Ignore error when transform and database code pages do not match, and their code pages are neutral. - ErrorChangeCodePage = 0x20, - - /// Default language must match base database. - ValidateLanguage = 0x10000, - - /// Product must match base database. - ValidateProduct = 0x20000, - - /// Check major version only. - ValidateMajorVersion = 0x80000, - - /// Check major and minor versions only. - ValidateMinorVersion = 0x100000, - - /// Check major, minor, and update versions. - ValidateUpdateVersion = 0x200000, - - /// Installed version lt base version. - ValidateNewLessBaseVersion = 0x400000, - - /// Installed version lte base version. - ValidateNewLessEqualBaseVersion = 0x800000, - - /// Installed version eq base version. - ValidateNewEqualBaseVersion = 0x1000000, - - /// Installed version gte base version. - ValidateNewGreaterEqualBaseVersion = 0x2000000, - - /// Installed version gt base version. - ValidateNewGreaterBaseVersion = 0x4000000, - - /// UpgradeCode must match base database. - ValidateUpgradeCode = 0x8000000, - - /// Masks all version checks on ProductVersion. - ProductVersionMask = ValidateMajorVersion | ValidateMinorVersion | ValidateUpdateVersion, - - /// Masks all operations on ProductVersion. - ProductVersionOperatorMask = ValidateNewLessBaseVersion | ValidateNewLessEqualBaseVersion | ValidateNewEqualBaseVersion | ValidateNewGreaterEqualBaseVersion | ValidateNewGreaterBaseVersion, - - /// Default value for instance transforms. - InstanceTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct | ValidateUpdateVersion | ValidateNewGreaterEqualBaseVersion, - - /// Default value for language transforms. - LanguageTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct, - - /// Default value for patch transforms. - PatchTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ValidateProduct | ValidateUpdateVersion | ValidateNewEqualBaseVersion | ValidateUpgradeCode, - } -} diff --git a/src/WixToolset.Data/Symbols/TypeLibSymbol.cs b/src/WixToolset.Data/Symbols/TypeLibSymbol.cs deleted file mode 100644 index 736ee292..00000000 --- a/src/WixToolset.Data/Symbols/TypeLibSymbol.cs +++ /dev/null @@ -1,100 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition TypeLib = new IntermediateSymbolDefinition( - SymbolDefinitionType.TypeLib, - new[] - { - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.LibId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.ComponentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Version), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Cost), IntermediateFieldType.Number), - }, - typeof(TypeLibSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum TypeLibSymbolFields - { - LibId, - Language, - ComponentRef, - Version, - Description, - DirectoryRef, - FeatureRef, - Cost, - } - - public class TypeLibSymbol : IntermediateSymbol - { - public TypeLibSymbol() : base(SymbolDefinitions.TypeLib, null, null) - { - } - - public TypeLibSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TypeLib, sourceLineNumber, id) - { - } - - public IntermediateField this[TypeLibSymbolFields index] => this.Fields[(int)index]; - - public string LibId - { - get => (string)this.Fields[(int)TypeLibSymbolFields.LibId]; - set => this.Set((int)TypeLibSymbolFields.LibId, value); - } - - public int Language - { - get => (int)this.Fields[(int)TypeLibSymbolFields.Language]; - set => this.Set((int)TypeLibSymbolFields.Language, value); - } - - public string ComponentRef - { - get => (string)this.Fields[(int)TypeLibSymbolFields.ComponentRef]; - set => this.Set((int)TypeLibSymbolFields.ComponentRef, value); - } - - public int? Version - { - get => (int?)this.Fields[(int)TypeLibSymbolFields.Version]; - set => this.Set((int)TypeLibSymbolFields.Version, value); - } - - public string Description - { - get => (string)this.Fields[(int)TypeLibSymbolFields.Description]; - set => this.Set((int)TypeLibSymbolFields.Description, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)TypeLibSymbolFields.DirectoryRef]; - set => this.Set((int)TypeLibSymbolFields.DirectoryRef, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)TypeLibSymbolFields.FeatureRef]; - set => this.Set((int)TypeLibSymbolFields.FeatureRef, value); - } - - public int? Cost - { - get => (int?)this.Fields[(int)TypeLibSymbolFields.Cost]; - set => this.Set((int)TypeLibSymbolFields.Cost, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/UITextSymbol.cs b/src/WixToolset.Data/Symbols/UITextSymbol.cs deleted file mode 100644 index 39b99398..00000000 --- a/src/WixToolset.Data/Symbols/UITextSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UIText = new IntermediateSymbolDefinition( - SymbolDefinitionType.UIText, - new[] - { - new IntermediateFieldDefinition(nameof(UITextSymbolFields.Text), IntermediateFieldType.String), - }, - typeof(UITextSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UITextSymbolFields - { - Text, - } - - public class UITextSymbol : IntermediateSymbol - { - public UITextSymbol() : base(SymbolDefinitions.UIText, null, null) - { - } - - public UITextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UIText, sourceLineNumber, id) - { - } - - public IntermediateField this[UITextSymbolFields index] => this.Fields[(int)index]; - - public string Text - { - get => (string)this.Fields[(int)UITextSymbolFields.Text]; - set => this.Set((int)UITextSymbolFields.Text, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/UpgradeSymbol.cs b/src/WixToolset.Data/Symbols/UpgradeSymbol.cs deleted file mode 100644 index 51eb74ef..00000000 --- a/src/WixToolset.Data/Symbols/UpgradeSymbol.cs +++ /dev/null @@ -1,155 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Upgrade = new IntermediateSymbolDefinition( - SymbolDefinitionType.Upgrade, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMin), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMax), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ExcludeLanguages), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.IgnoreRemoveFailures), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.MigrateFeatures), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.OnlyDetect), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMaxInclusive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMinInclusive), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Remove), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ActionProperty), IntermediateFieldType.String), - }, - typeof(UpgradeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradeSymbolFields - { - UpgradeCode, - VersionMin, - VersionMax, - Language, - ExcludeLanguages, - IgnoreRemoveFailures, - MigrateFeatures, - OnlyDetect, - VersionMaxInclusive, - VersionMinInclusive, - Remove, - ActionProperty, - } - - public static class WixUpgradeConstants - { - /// - /// Standard property for detecting upgrades. - /// - public const string UpgradeDetectedProperty = "WIX_UPGRADE_DETECTED"; - - /// - /// Standard condition to prevent upgrades. - /// - public const string UpgradePreventedCondition = "NOT WIX_UPGRADE_DETECTED"; - - /// - /// Standard property for downgrade detected. - /// - public const string DowngradeDetectedProperty = "WIX_DOWNGRADE_DETECTED"; - - /// - /// Standard condition to prevent downgrades. - /// - public const string DowngradePreventedCondition = "NOT WIX_DOWNGRADE_DETECTED"; - } - - public class UpgradeSymbol : IntermediateSymbol - { - public UpgradeSymbol() : base(SymbolDefinitions.Upgrade, null, null) - { - } - - public UpgradeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Upgrade, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradeSymbolFields index] => this.Fields[(int)index]; - - public string UpgradeCode - { - get => (string)this.Fields[(int)UpgradeSymbolFields.UpgradeCode]; - set => this.Set((int)UpgradeSymbolFields.UpgradeCode, value); - } - - public string VersionMin - { - get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMin]; - set => this.Set((int)UpgradeSymbolFields.VersionMin, value); - } - - public string VersionMax - { - get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMax]; - set => this.Set((int)UpgradeSymbolFields.VersionMax, value); - } - - public string Language - { - get => (string)this.Fields[(int)UpgradeSymbolFields.Language]; - set => this.Set((int)UpgradeSymbolFields.Language, value); - } - - public bool ExcludeLanguages - { - get => this.Fields[(int)UpgradeSymbolFields.ExcludeLanguages].AsBool(); - set => this.Set((int)UpgradeSymbolFields.ExcludeLanguages, value); - } - - public bool IgnoreRemoveFailures - { - get => this.Fields[(int)UpgradeSymbolFields.IgnoreRemoveFailures].AsBool(); - set => this.Set((int)UpgradeSymbolFields.IgnoreRemoveFailures, value); - } - - public bool MigrateFeatures - { - get => this.Fields[(int)UpgradeSymbolFields.MigrateFeatures].AsBool(); - set => this.Set((int)UpgradeSymbolFields.MigrateFeatures, value); - } - - public bool OnlyDetect - { - get => this.Fields[(int)UpgradeSymbolFields.OnlyDetect].AsBool(); - set => this.Set((int)UpgradeSymbolFields.OnlyDetect, value); - } - - public bool VersionMaxInclusive - { - get => this.Fields[(int)UpgradeSymbolFields.VersionMaxInclusive].AsBool(); - set => this.Set((int)UpgradeSymbolFields.VersionMaxInclusive, value); - } - - public bool VersionMinInclusive - { - get => this.Fields[(int)UpgradeSymbolFields.VersionMinInclusive].AsBool(); - set => this.Set((int)UpgradeSymbolFields.VersionMinInclusive, value); - } - - public string Remove - { - get => (string)this.Fields[(int)UpgradeSymbolFields.Remove]; - set => this.Set((int)UpgradeSymbolFields.Remove, value); - } - - public string ActionProperty - { - get => (string)this.Fields[(int)UpgradeSymbolFields.ActionProperty]; - set => this.Set((int)UpgradeSymbolFields.ActionProperty, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs b/src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs deleted file mode 100644 index 9e669ec3..00000000 --- a/src/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UpgradedFilesOptionalData = new IntermediateSymbolDefinition( - SymbolDefinitionType.UpgradedFilesOptionalData, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile), IntermediateFieldType.Bool), - }, - typeof(UpgradedFilesOptionalDataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradedFilesOptionalDataSymbolFields - { - Upgraded, - FTK, - SymbolPaths, - AllowIgnoreOnPatchError, - IncludeWholeFile, - } - - public class UpgradedFilesOptionalDataSymbol : IntermediateSymbol - { - public UpgradedFilesOptionalDataSymbol() : base(SymbolDefinitions.UpgradedFilesOptionalData, null, null) - { - } - - public UpgradedFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesOptionalData, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradedFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; - - public string Upgraded - { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.Upgraded]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.Upgraded, value); - } - - public string FTK - { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.FTK]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.FTK, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths, value); - } - - public bool? AllowIgnoreOnPatchError - { - get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError, value); - } - - public bool? IncludeWholeFile - { - get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile]; - set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs b/src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs deleted file mode 100644 index e21af6a2..00000000 --- a/src/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UpgradedFilesToIgnore = new IntermediateSymbolDefinition( - SymbolDefinitionType.UpgradedFilesToIgnore, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.FTK), IntermediateFieldType.String), - }, - typeof(UpgradedFilesToIgnoreSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradedFilesToIgnoreSymbolFields - { - Upgraded, - FTK, - } - - public class UpgradedFilesToIgnoreSymbol : IntermediateSymbol - { - public UpgradedFilesToIgnoreSymbol() : base(SymbolDefinitions.UpgradedFilesToIgnore, null, null) - { - } - - public UpgradedFilesToIgnoreSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradedFilesToIgnoreSymbolFields index] => this.Fields[(int)index]; - - public string Upgraded - { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.Upgraded]; - set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.Upgraded, value); - } - - public string FTK - { - get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.FTK]; - set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.FTK, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs b/src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs deleted file mode 100644 index 28eae08a..00000000 --- a/src/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition UpgradedImages = new IntermediateSymbolDefinition( - SymbolDefinitionType.UpgradedImages, - new[] - { - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Upgraded), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.MsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.PatchMsiPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Family), IntermediateFieldType.String), - }, - typeof(UpgradedImagesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum UpgradedImagesSymbolFields - { - Upgraded, - MsiPath, - PatchMsiPath, - SymbolPaths, - Family, - } - - public class UpgradedImagesSymbol : IntermediateSymbol - { - public UpgradedImagesSymbol() : base(SymbolDefinitions.UpgradedImages, null, null) - { - } - - public UpgradedImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedImages, sourceLineNumber, id) - { - } - - public IntermediateField this[UpgradedImagesSymbolFields index] => this.Fields[(int)index]; - - public string Upgraded - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Upgraded]; - set => this.Set((int)UpgradedImagesSymbolFields.Upgraded, value); - } - - public string MsiPath - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.MsiPath]; - set => this.Set((int)UpgradedImagesSymbolFields.MsiPath, value); - } - - public string PatchMsiPath - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.PatchMsiPath]; - set => this.Set((int)UpgradedImagesSymbolFields.PatchMsiPath, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.SymbolPaths]; - set => this.Set((int)UpgradedImagesSymbolFields.SymbolPaths, value); - } - - public string Family - { - get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Family]; - set => this.Set((int)UpgradedImagesSymbolFields.Family, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/VerbSymbol.cs b/src/WixToolset.Data/Symbols/VerbSymbol.cs deleted file mode 100644 index 95f045d6..00000000 --- a/src/WixToolset.Data/Symbols/VerbSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition Verb = new IntermediateSymbolDefinition( - SymbolDefinitionType.Verb, - new[] - { - new IntermediateFieldDefinition(nameof(VerbSymbolFields.ExtensionRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Verb), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Command), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(VerbSymbolFields.Argument), IntermediateFieldType.String), - }, - typeof(VerbSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum VerbSymbolFields - { - ExtensionRef, - Verb, - Sequence, - Command, - Argument, - } - - public class VerbSymbol : IntermediateSymbol - { - public VerbSymbol() : base(SymbolDefinitions.Verb, null, null) - { - } - - public VerbSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Verb, sourceLineNumber, id) - { - } - - public IntermediateField this[VerbSymbolFields index] => this.Fields[(int)index]; - - public string ExtensionRef - { - get => (string)this.Fields[(int)VerbSymbolFields.ExtensionRef]; - set => this.Set((int)VerbSymbolFields.ExtensionRef, value); - } - - public string Verb - { - get => (string)this.Fields[(int)VerbSymbolFields.Verb]; - set => this.Set((int)VerbSymbolFields.Verb, value); - } - - public int? Sequence - { - get => (int?)this.Fields[(int)VerbSymbolFields.Sequence]; - set => this.Set((int)VerbSymbolFields.Sequence, value); - } - - public string Command - { - get => (string)this.Fields[(int)VerbSymbolFields.Command]; - set => this.Set((int)VerbSymbolFields.Command, value); - } - - public string Argument - { - get => (string)this.Fields[(int)VerbSymbolFields.Argument]; - set => this.Set((int)VerbSymbolFields.Argument, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixActionSymbol.cs b/src/WixToolset.Data/Symbols/WixActionSymbol.cs deleted file mode 100644 index a055d68f..00000000 --- a/src/WixToolset.Data/Symbols/WixActionSymbol.cs +++ /dev/null @@ -1,101 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixAction = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixAction, - new[] - { - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.SequenceTable), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Action), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Sequence), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Before), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.After), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Overridable), IntermediateFieldType.Bool), - }, - typeof(WixActionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixActionSymbolFields - { - SequenceTable, - Action, - Condition, - Sequence, - Before, - After, - Overridable, - } - - public enum SequenceTable - { - AdminUISequence, - AdminExecuteSequence, - AdvertiseExecuteSequence, - InstallUISequence, - InstallExecuteSequence - } - - public class WixActionSymbol : IntermediateSymbol - { - public WixActionSymbol() : base(SymbolDefinitions.WixAction, null, null) - { - } - - public WixActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixAction, sourceLineNumber, id) - { - } - - public IntermediateField this[WixActionSymbolFields index] => this.Fields[(int)index]; - - public SequenceTable SequenceTable - { - get => (SequenceTable)this.Fields[(int)WixActionSymbolFields.SequenceTable].AsNumber(); - set => this.Set((int)WixActionSymbolFields.SequenceTable, (int)value); - } - - public string Action - { - get => (string)this.Fields[(int)WixActionSymbolFields.Action]; - set => this.Set((int)WixActionSymbolFields.Action, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixActionSymbolFields.Condition]; - set => this.Set((int)WixActionSymbolFields.Condition, value); - } - - public int? Sequence - { - get => (int?)this.Fields[(int)WixActionSymbolFields.Sequence]; - set => this.Set((int)WixActionSymbolFields.Sequence, value); - } - - public string Before - { - get => (string)this.Fields[(int)WixActionSymbolFields.Before]; - set => this.Set((int)WixActionSymbolFields.Before, value); - } - - public string After - { - get => (string)this.Fields[(int)WixActionSymbolFields.After]; - set => this.Set((int)WixActionSymbolFields.After, value); - } - - public bool Overridable - { - get => this.Fields[(int)WixActionSymbolFields.Overridable].AsBool(); - set => this.Set((int)WixActionSymbolFields.Overridable, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs b/src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs deleted file mode 100644 index 04c6e712..00000000 --- a/src/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs +++ /dev/null @@ -1,71 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixApprovedExeForElevation = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixApprovedExeForElevation, - new[] - { - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.ValueName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixApprovedExeForElevationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixApprovedExeForElevationSymbolFields - { - Key, - ValueName, - Attributes, - } - - [Flags] - public enum WixApprovedExeForElevationAttributes - { - None = 0x0, - Win64 = 0x1, - } - - public class WixApprovedExeForElevationSymbol : IntermediateSymbol - { - public WixApprovedExeForElevationSymbol() : base(SymbolDefinitions.WixApprovedExeForElevation, null, null) - { - } - - public WixApprovedExeForElevationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) - { - } - - public IntermediateField this[WixApprovedExeForElevationSymbolFields index] => this.Fields[(int)index]; - - public string Key - { - get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Key]; - set => this.Set((int)WixApprovedExeForElevationSymbolFields.Key, value); - } - - public string ValueName - { - get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.ValueName]; - set => this.Set((int)WixApprovedExeForElevationSymbolFields.ValueName, value); - } - - public WixApprovedExeForElevationAttributes Attributes - { - get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixApprovedExeForElevationSymbolFields.Attributes, (int)value); - } - - public bool Win64 => (this.Attributes & WixApprovedExeForElevationAttributes.Win64) == WixApprovedExeForElevationAttributes.Win64; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs b/src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs deleted file mode 100644 index 03bdb69b..00000000 --- a/src/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBindUpdatedFiles = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBindUpdatedFiles, - new[] - { - new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesSymbolFields.FileRef), IntermediateFieldType.String), - }, - typeof(WixBindUpdatedFilesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBindUpdatedFilesSymbolFields - { - FileRef, - } - - public class WixBindUpdatedFilesSymbol : IntermediateSymbol - { - public WixBindUpdatedFilesSymbol() : base(SymbolDefinitions.WixBindUpdatedFiles, null, null) - { - } - - public WixBindUpdatedFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBindUpdatedFilesSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)WixBindUpdatedFilesSymbolFields.FileRef]; - set => this.Set((int)WixBindUpdatedFilesSymbolFields.FileRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs deleted file mode 100644 index d3a66754..00000000 --- a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs +++ /dev/null @@ -1,53 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBootstrapperApplicationDll = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBootstrapperApplicationDll, - new IntermediateFieldDefinition[] - { - new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationDllSymbolFields.DpiAwareness), IntermediateFieldType.Number), - }, - typeof(WixBootstrapperApplicationDllSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBootstrapperApplicationDllSymbolFields - { - DpiAwareness, - } - - public enum WixBootstrapperApplicationDpiAwarenessType - { - Unaware, - System, - PerMonitor, - PerMonitorV2, - GdiScaled, - } - - public class WixBootstrapperApplicationDllSymbol : IntermediateSymbol - { - public WixBootstrapperApplicationDllSymbol() : base(SymbolDefinitions.WixBootstrapperApplicationDll, null, null) - { - } - - public WixBootstrapperApplicationDllSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplicationDll, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBootstrapperApplicationDllSymbolFields index] => this.Fields[(int)index]; - - public WixBootstrapperApplicationDpiAwarenessType DpiAwareness - { - get => (WixBootstrapperApplicationDpiAwarenessType)this.Fields[(int)WixBootstrapperApplicationDllSymbolFields.DpiAwareness].AsNumber(); - set => this.Set((int)WixBootstrapperApplicationDllSymbolFields.DpiAwareness, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs b/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs deleted file mode 100644 index 3d7876fd..00000000 --- a/src/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBootstrapperApplication = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBootstrapperApplication, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBootstrapperApplicationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBootstrapperApplicationSymbolFields - { - } - - public class WixBootstrapperApplicationSymbol : IntermediateSymbol - { - public WixBootstrapperApplicationSymbol() : base(SymbolDefinitions.WixBootstrapperApplication, null, null) - { - } - - public WixBootstrapperApplicationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplication, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBootstrapperApplicationSymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs b/src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs deleted file mode 100644 index 66e04d4b..00000000 --- a/src/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBuildInfo = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBuildInfo, - new[] - { - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixOutputFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixProjectFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixPdbFile), IntermediateFieldType.String), - }, - typeof(WixBuildInfoSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBuildInfoSymbolFields - { - WixVersion, - WixOutputFile, - WixProjectFile, - WixPdbFile, - } - - public class WixBuildInfoSymbol : IntermediateSymbol - { - public WixBuildInfoSymbol() : base(SymbolDefinitions.WixBuildInfo, null, null) - { - } - - public WixBuildInfoSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBuildInfo, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBuildInfoSymbolFields index] => this.Fields[(int)index]; - - public string WixVersion - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixVersion]; - set => this.Set((int)WixBuildInfoSymbolFields.WixVersion, value); - } - - public string WixOutputFile - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixOutputFile]; - set => this.Set((int)WixBuildInfoSymbolFields.WixOutputFile, value); - } - - public string WixProjectFile - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixProjectFile]; - set => this.Set((int)WixBuildInfoSymbolFields.WixProjectFile, value); - } - - public string WixPdbFile - { - get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixPdbFile]; - set => this.Set((int)WixBuildInfoSymbolFields.WixPdbFile, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs deleted file mode 100644 index 80beda0a..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs +++ /dev/null @@ -1,103 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleContainer = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleContainer, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Size), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Hash), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.AttachedContainerIndex), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.WorkingPath), IntermediateFieldType.String), - }, - typeof(WixBundleContainerSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleContainerSymbolFields - { - Name, - Type, - DownloadUrl, - Size, - Hash, - AttachedContainerIndex, - WorkingPath, - } - - /// - /// Types of bundle packages. - /// - public enum ContainerType - { - Attached, - Detached, - } - - public class WixBundleContainerSymbol : IntermediateSymbol - { - public WixBundleContainerSymbol() : base(SymbolDefinitions.WixBundleContainer, null, null) - { - } - - public WixBundleContainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleContainer, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleContainerSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Name]; - set => this.Set((int)WixBundleContainerSymbolFields.Name, value); - } - - public ContainerType Type - { - get => (ContainerType)this.Fields[(int)WixBundleContainerSymbolFields.Type].AsNumber(); - set => this.Set((int)WixBundleContainerSymbolFields.Type, (int)value); - } - - public string DownloadUrl - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.DownloadUrl]; - set => this.Set((int)WixBundleContainerSymbolFields.DownloadUrl, value); - } - - public long? Size - { - get => (long?)this.Fields[(int)WixBundleContainerSymbolFields.Size]; - set => this.Set((int)WixBundleContainerSymbolFields.Size, value); - } - - public string Hash - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Hash]; - set => this.Set((int)WixBundleContainerSymbolFields.Hash, value); - } - - public int? AttachedContainerIndex - { - get => (int?)this.Fields[(int)WixBundleContainerSymbolFields.AttachedContainerIndex]; - set => this.Set((int)WixBundleContainerSymbolFields.AttachedContainerIndex, value); - } - - public string WorkingPath - { - get => (string)this.Fields[(int)WixBundleContainerSymbolFields.WorkingPath]; - set => this.Set((int)WixBundleContainerSymbolFields.WorkingPath, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs deleted file mode 100644 index c0a657ee..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCustomDataAttribute = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCustomDataAttribute, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.CustomDataRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.Name), IntermediateFieldType.String), - }, - typeof(WixBundleCustomDataAttributeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCustomDataAttributeSymbolFields - { - CustomDataRef, - Name, - } - - public class WixBundleCustomDataAttributeSymbol : IntermediateSymbol - { - public WixBundleCustomDataAttributeSymbol() : base(SymbolDefinitions.WixBundleCustomDataAttribute, null, null) - { - } - - public WixBundleCustomDataAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCustomDataAttributeSymbolFields index] => this.Fields[(int)index]; - - public string CustomDataRef - { - get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef]; - set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.Name]; - set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.Name, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs deleted file mode 100644 index 0488969a..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCustomDataCell = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCustomDataCell, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.CustomDataRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.AttributeRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.ElementId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.Value), IntermediateFieldType.String), - }, - typeof(WixBundleCustomDataCellSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCustomDataCellSymbolFields - { - CustomDataRef, - AttributeRef, - ElementId, - Value, - } - - public class WixBundleCustomDataCellSymbol : IntermediateSymbol - { - public WixBundleCustomDataCellSymbol() : base(SymbolDefinitions.WixBundleCustomDataCell, null, null) - { - } - - public WixBundleCustomDataCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCustomDataCellSymbolFields index] => this.Fields[(int)index]; - - public string CustomDataRef - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.CustomDataRef]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.CustomDataRef, value); - } - - public string AttributeRef - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.AttributeRef]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.AttributeRef, value); - } - - public string ElementId - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.ElementId]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.ElementId, value); - } - - public string Value - { - get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.Value]; - set => this.Set((int)WixBundleCustomDataCellSymbolFields.Value, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs deleted file mode 100644 index 0490f9f7..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs +++ /dev/null @@ -1,71 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleCustomData = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleCustomData, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.AttributeNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.Type), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.BundleExtensionRef), IntermediateFieldType.String), - }, - typeof(WixBundleCustomDataSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleCustomDataSymbolFields - { - AttributeNames, - Type, - BundleExtensionRef, - } - - public enum WixBundleCustomDataType - { - Unknown, - BootstrapperApplication, - BundleExtension, - } - - public class WixBundleCustomDataSymbol : IntermediateSymbol - { - public const char AttributeNamesSeparator = '\x85'; - - public WixBundleCustomDataSymbol() : base(SymbolDefinitions.WixBundleCustomData, null, null) - { - } - - public WixBundleCustomDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomData, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleCustomDataSymbolFields index] => this.Fields[(int)index]; - - public string AttributeNames - { - get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.AttributeNames]; - set => this.Set((int)WixBundleCustomDataSymbolFields.AttributeNames, value); - } - - public WixBundleCustomDataType Type - { - get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataSymbolFields.Type].AsNumber(); - set => this.Set((int)WixBundleCustomDataSymbolFields.Type, (int)value); - } - - public string BundleExtensionRef - { - get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.BundleExtensionRef]; - set => this.Set((int)WixBundleCustomDataSymbolFields.BundleExtensionRef, value); - } - - public string[] AttributeNamesSeparated => this.AttributeNames.Split(AttributeNamesSeparator); - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs deleted file mode 100644 index c0bf603f..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleExePackagePayload = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleExePackagePayload, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundleExePackagePayloadSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleExePackagePayloadSymbolFields - { - } - - public class WixBundleExePackagePayloadSymbol : IntermediateSymbol - { - public WixBundleExePackagePayloadSymbol() : base(SymbolDefinitions.WixBundleExePackagePayload, null, null) - { - } - - public WixBundleExePackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackagePayload, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleExePackagePayloadSymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs deleted file mode 100644 index 8a8cff1b..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs +++ /dev/null @@ -1,94 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleExePackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleExePackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.DetectCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.InstallCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.UninstallCommand), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.ExeProtocol), IntermediateFieldType.String), - }, - typeof(WixBundleExePackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleExePackageSymbolFields - { - Attributes, - DetectCondition, - InstallCommand, - RepairCommand, - UninstallCommand, - ExeProtocol, - } - - [Flags] - public enum WixBundleExePackageAttributes - { - None = 0, - } - - public class WixBundleExePackageSymbol : IntermediateSymbol - { - public WixBundleExePackageSymbol() : base(SymbolDefinitions.WixBundleExePackage, null, null) - { - } - - public WixBundleExePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleExePackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundleExePackageAttributes Attributes - { - get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageSymbolFields.Attributes]; - set => this.Set((int)WixBundleExePackageSymbolFields.Attributes, (int)value); - } - - public string DetectCondition - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.DetectCondition]; - set => this.Set((int)WixBundleExePackageSymbolFields.DetectCondition, value); - } - - public string InstallCommand - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.InstallCommand]; - set => this.Set((int)WixBundleExePackageSymbolFields.InstallCommand, value); - } - - public string RepairCommand - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.RepairCommand]; - set => this.Set((int)WixBundleExePackageSymbolFields.RepairCommand, value); - } - - public string UninstallCommand - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.UninstallCommand]; - set => this.Set((int)WixBundleExePackageSymbolFields.UninstallCommand, value); - } - - public string ExeProtocol - { - get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.ExeProtocol]; - set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); - } - - public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs deleted file mode 100644 index 8e6bea58..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleExtension = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleExtension, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleExtensionSymbolFields.PayloadRef), IntermediateFieldType.String), - }, - typeof(WixBundleExtensionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleExtensionSymbolFields - { - PayloadRef, - } - - public class WixBundleExtensionSymbol : IntermediateSymbol - { - public WixBundleExtensionSymbol() : base(SymbolDefinitions.WixBundleExtension, null, null) - { - } - - public WixBundleExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExtension, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleExtensionSymbolFields index] => this.Fields[(int)index]; - - public string PayloadRef - { - get => (string)this.Fields[(int)WixBundleExtensionSymbolFields.PayloadRef]; - set => this.Set((int)WixBundleExtensionSymbolFields.PayloadRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs deleted file mode 100644 index f81da5b8..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs +++ /dev/null @@ -1,116 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsiFeature = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsiFeature, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Size), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Title), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Display), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Level), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Directory), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundleMsiFeatureSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsiFeatureSymbolFields - { - PackageRef, - Name, - Size, - Parent, - Title, - Description, - Display, - Level, - Directory, - Attributes, - } - - public class WixBundleMsiFeatureSymbol : IntermediateSymbol - { - public WixBundleMsiFeatureSymbol() : base(SymbolDefinitions.WixBundleMsiFeature, null, null) - { - } - - public WixBundleMsiFeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiFeature, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsiFeatureSymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.PackageRef]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.PackageRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Name]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Name, value); - } - - public long Size - { - get => (long)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Size]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Size, value); - } - - public string Parent - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Parent]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Parent, value); - } - - public string Title - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Title]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Title, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Description]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Description, value); - } - - public int Display - { - get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Display]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Display, value); - } - - public int Level - { - get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Level]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Level, value); - } - - public string Directory - { - get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Directory]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Directory, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Attributes]; - set => this.Set((int)WixBundleMsiFeatureSymbolFields.Attributes, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs deleted file mode 100644 index e5af1044..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsiPackagePayload = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsiPackagePayload, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundleMsiPackagePayloadSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsiPackagePayloadSymbolFields - { - } - - public class WixBundleMsiPackagePayloadSymbol : IntermediateSymbol - { - public WixBundleMsiPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMsiPackagePayload, null, null) - { - } - - public WixBundleMsiPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackagePayload, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsiPackagePayloadSymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs deleted file mode 100644 index 21735f64..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs +++ /dev/null @@ -1,105 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsiPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsiPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductLanguage), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Manufacturer), IntermediateFieldType.String), - }, - typeof(WixBundleMsiPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleMsiPackageSymbolFields - { - Attributes, - ProductCode, - UpgradeCode, - ProductVersion, - ProductLanguage, - ProductName, - Manufacturer, - } - - [Flags] - public enum WixBundleMsiPackageAttributes - { - EnableFeatureSelection = 0x4, - ForcePerMachine = 0x2, - } - - public class WixBundleMsiPackageSymbol : IntermediateSymbol - { - public WixBundleMsiPackageSymbol() : base(SymbolDefinitions.WixBundleMsiPackage, null, null) - { - } - - public WixBundleMsiPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsiPackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundleMsiPackageAttributes Attributes - { - get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageSymbolFields.Attributes]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.Attributes, (int)value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductCode]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductCode, value); - } - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.UpgradeCode]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.UpgradeCode, value); - } - - public string ProductVersion - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductVersion]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductVersion, value); - } - - public int ProductLanguage - { - get => (int)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductLanguage]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductLanguage, value); - } - - public string ProductName - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductName]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductName, value); - } - - public string Manufacturer - { - get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.Manufacturer]; - set => this.Set((int)WixBundleMsiPackageSymbolFields.Manufacturer, value); - } - - public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; - - public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs deleted file mode 100644 index 0d87f87d..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsiProperty = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsiProperty, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(WixBundleMsiPropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsiPropertySymbolFields - { - PackageRef, - Name, - Value, - Condition, - } - - public class WixBundleMsiPropertySymbol : IntermediateSymbol - { - public WixBundleMsiPropertySymbol() : base(SymbolDefinitions.WixBundleMsiProperty, null, null) - { - } - - public WixBundleMsiPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiProperty, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsiPropertySymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.PackageRef]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.PackageRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Name]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.Name, value); - } - - public string Value - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Value]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.Value, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Condition]; - set => this.Set((int)WixBundleMsiPropertySymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs deleted file mode 100644 index d1a21243..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMspPackagePayload = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMspPackagePayload, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundleMspPackagePayloadSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMspPackagePayloadSymbolFields - { - } - - public class WixBundleMspPackagePayloadSymbol : IntermediateSymbol - { - public WixBundleMspPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMspPackagePayload, null, null) - { - } - - public WixBundleMspPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackagePayload, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMspPackagePayloadSymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs deleted file mode 100644 index 3784c2ff..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs +++ /dev/null @@ -1,81 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMspPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMspPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchXml), IntermediateFieldType.String), - }, - typeof(WixBundleMspPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleMspPackageSymbolFields - { - Attributes, - PatchCode, - Manufacturer, - PatchXml, - } - - [Flags] - public enum WixBundleMspPackageAttributes - { - Slipstream = 0x2, - TargetUnspecified = 0x4, - } - - public class WixBundleMspPackageSymbol : IntermediateSymbol - { - public WixBundleMspPackageSymbol() : base(SymbolDefinitions.WixBundleMspPackage, null, null) - { - } - - public WixBundleMspPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMspPackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundleMspPackageAttributes Attributes - { - get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageSymbolFields.Attributes]; - set => this.Set((int)WixBundleMspPackageSymbolFields.Attributes, (int)value); - } - - public string PatchCode - { - get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchCode]; - set => this.Set((int)WixBundleMspPackageSymbolFields.PatchCode, value); - } - - public string Manufacturer - { - get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.Manufacturer]; - set => this.Set((int)WixBundleMspPackageSymbolFields.Manufacturer, value); - } - - public string PatchXml - { - get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchXml]; - set => this.Set((int)WixBundleMspPackageSymbolFields.PatchXml, value); - } - - public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; - - public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs deleted file mode 100644 index 88c7deb2..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsuPackagePayload = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsuPackagePayload, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundleMsuPackagePayloadSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsuPackagePayloadSymbolFields - { - } - - public class WixBundleMsuPackagePayloadSymbol : IntermediateSymbol - { - public WixBundleMsuPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMsuPackagePayload, null, null) - { - } - - public WixBundleMsuPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackagePayload, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsuPackagePayloadSymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs deleted file mode 100644 index e52a9b2d..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleMsuPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleMsuPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.DetectCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.MsuKB), IntermediateFieldType.String), - }, - typeof(WixBundleMsuPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleMsuPackageSymbolFields - { - DetectCondition, - MsuKB, - } - - public class WixBundleMsuPackageSymbol : IntermediateSymbol - { - public WixBundleMsuPackageSymbol() : base(SymbolDefinitions.WixBundleMsuPackage, null, null) - { - } - - public WixBundleMsuPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleMsuPackageSymbolFields index] => this.Fields[(int)index]; - - public string DetectCondition - { - get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.DetectCondition]; - set => this.Set((int)WixBundleMsuPackageSymbolFields.DetectCondition, value); - } - - public string MsuKB - { - get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.MsuKB]; - set => this.Set((int)WixBundleMsuPackageSymbolFields.MsuKB, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs deleted file mode 100644 index 7ef254a6..00000000 --- a/src/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackageCommandLine = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackageCommandLine, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.InstallArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.UninstallArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.RepairArgument), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.Condition), IntermediateFieldType.String), - }, - typeof(WixBundlePackageCommandLineSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundlePackageCommandLineSymbolFields - { - WixBundlePackageRef, - InstallArgument, - UninstallArgument, - RepairArgument, - Condition, - } - - public class WixBundlePackageCommandLineSymbol : IntermediateSymbol - { - public WixBundlePackageCommandLineSymbol() : base(SymbolDefinitions.WixBundlePackageCommandLine, null, null) - { - } - - public WixBundlePackageCommandLineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageCommandLineSymbolFields index] => this.Fields[(int)index]; - - public string WixBundlePackageRef - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef, value); - } - - public string InstallArgument - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.InstallArgument]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.InstallArgument, value); - } - - public string UninstallArgument - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.UninstallArgument]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.UninstallArgument, value); - } - - public string RepairArgument - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.RepairArgument]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.RepairArgument, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.Condition]; - set => this.Set((int)WixBundlePackageCommandLineSymbolFields.Condition, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs deleted file mode 100644 index d77d9d58..00000000 --- a/src/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs +++ /dev/null @@ -1,71 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackageExitCode = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackageExitCode, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.ChainPackageId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Code), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Behavior), IntermediateFieldType.String), - }, - typeof(WixBundlePackageExitCodeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePackageExitCodeSymbolFields - { - ChainPackageId, - Code, - Behavior, - } - - public enum ExitCodeBehaviorType - { - NotSet = -1, - Success, - Error, - ScheduleReboot, - ForceReboot, - } - - public class WixBundlePackageExitCodeSymbol : IntermediateSymbol - { - public WixBundlePackageExitCodeSymbol() : base(SymbolDefinitions.WixBundlePackageExitCode, null, null) - { - } - - public WixBundlePackageExitCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageExitCodeSymbolFields index] => this.Fields[(int)index]; - - public string ChainPackageId - { - get => (string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.ChainPackageId]; - set => this.Set((int)WixBundlePackageExitCodeSymbolFields.ChainPackageId, value); - } - - public int? Code - { - get => (int?)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Code]; - set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Code, value); - } - - public ExitCodeBehaviorType Behavior - { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Behavior], true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; - set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Behavior, value.ToString()); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs deleted file mode 100644 index a5e1943b..00000000 --- a/src/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackageGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackageGroup, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundlePackageGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundlePackageGroupSymbolFields - { - } - - public class WixBundlePackageGroupSymbol : IntermediateSymbol - { - public WixBundlePackageGroupSymbol() : base(SymbolDefinitions.WixBundlePackageGroup, null, null) - { - } - - public WixBundlePackageGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageGroupSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs deleted file mode 100644 index cbe7f761..00000000 --- a/src/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs +++ /dev/null @@ -1,212 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PayloadRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallCondition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Cache), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.CacheId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Vital), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PerMachine), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackLogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Win64), IntermediateFieldType.Bool), - }, - typeof(WixBundlePackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePackageSymbolFields - { - Type, - PayloadRef, - Attributes, - InstallCondition, - Cache, - CacheId, - Vital, - PerMachine, - LogPathVariable, - RollbackLogPathVariable, - Size, - InstallSize, - Version, - Language, - DisplayName, - Description, - RollbackBoundaryRef, - RollbackBoundaryBackwardRef, - Win64, - } - - /// - /// Types of bundle packages. - /// - public enum WixBundlePackageType - { - Exe, - Msi, - Msp, - Msu, - } - - [Flags] - public enum WixBundlePackageAttributes - { - Permanent = 0x1, - Visible = 0x2, - PerMachine = 0x4, - Win64 = 0x8, - } - - public class WixBundlePackageSymbol : IntermediateSymbol - { - public WixBundlePackageSymbol() : base(SymbolDefinitions.WixBundlePackage, null, null) - { - } - - public WixBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePackageSymbolFields index] => this.Fields[(int)index]; - - public WixBundlePackageType Type - { - get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageSymbolFields.Type], true); - set => this.Set((int)WixBundlePackageSymbolFields.Type, value.ToString()); - } - - public string PayloadRef - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.PayloadRef]; - set => this.Set((int)WixBundlePackageSymbolFields.PayloadRef, value); - } - - public WixBundlePackageAttributes Attributes - { - get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageSymbolFields.Attributes]; - set => this.Set((int)WixBundlePackageSymbolFields.Attributes, (int)value); - } - - public string InstallCondition - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.InstallCondition]; - set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value); - } - - public YesNoAlwaysType Cache - { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; - set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant()); - } - - public string CacheId - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.CacheId]; - set => this.Set((int)WixBundlePackageSymbolFields.CacheId, value); - } - - public bool? Vital - { - get => (bool?)this.Fields[(int)WixBundlePackageSymbolFields.Vital]; - set => this.Set((int)WixBundlePackageSymbolFields.Vital, value); - } - - public YesNoDefaultType PerMachine - { - get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; - set => this.Set((int)WixBundlePackageSymbolFields.PerMachine, value.ToString().ToLowerInvariant()); - } - - public string LogPathVariable - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.LogPathVariable]; - set => this.Set((int)WixBundlePackageSymbolFields.LogPathVariable, value); - } - - public string RollbackLogPathVariable - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackLogPathVariable]; - set => this.Set((int)WixBundlePackageSymbolFields.RollbackLogPathVariable, value); - } - - public long Size - { - get => (long)this.Fields[(int)WixBundlePackageSymbolFields.Size]; - set => this.Set((int)WixBundlePackageSymbolFields.Size, value); - } - - public long? InstallSize - { - get => (long?)this.Fields[(int)WixBundlePackageSymbolFields.InstallSize]; - set => this.Set((int)WixBundlePackageSymbolFields.InstallSize, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Version]; - set => this.Set((int)WixBundlePackageSymbolFields.Version, value); - } - - public int? Language - { - get => (int?)this.Fields[(int)WixBundlePackageSymbolFields.Language]; - set => this.Set((int)WixBundlePackageSymbolFields.Language, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.DisplayName]; - set => this.Set((int)WixBundlePackageSymbolFields.DisplayName, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Description]; - set => this.Set((int)WixBundlePackageSymbolFields.Description, value); - } - - public string RollbackBoundaryRef - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryRef]; - set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryRef, value); - } - - public string RollbackBoundaryBackwardRef - { - get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef]; - set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef, value); - } - - public bool Win64 - { - get => (bool)this.Fields[(int)WixBundlePackageSymbolFields.Win64]; - set => this.Set((int)WixBundlePackageSymbolFields.Win64, value); - } - - public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs deleted file mode 100644 index b1aa9c77..00000000 --- a/src/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs +++ /dev/null @@ -1,82 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePatchTargetCode = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePatchTargetCode, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.TargetCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundlePatchTargetCodeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePatchTargetCodeSymbolFields - { - PackageRef, - TargetCode, - Attributes, - } - - [Flags] - public enum WixBundlePatchTargetCodeAttributes : int - { - None = 0, - - /// - /// The transform targets a specific ProductCode. - /// - TargetsProductCode = 1, - - /// - /// The transform targets a specific UpgradeCode. - /// - TargetsUpgradeCode = 2, - } - - public class WixBundlePatchTargetCodeSymbol : IntermediateSymbol - { - public WixBundlePatchTargetCodeSymbol() : base(SymbolDefinitions.WixBundlePatchTargetCode, null, null) - { - } - - public WixBundlePatchTargetCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePatchTargetCodeSymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.PackageRef]; - set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.PackageRef, value); - } - - public string TargetCode - { - get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.TargetCode]; - set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.TargetCode, value); - } - - public WixBundlePatchTargetCodeAttributes Attributes - { - get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.Attributes, (int)value); - } - - public bool TargetsProductCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsProductCode) == WixBundlePatchTargetCodeAttributes.TargetsProductCode; - - public bool TargetsUpgradeCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode) == WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs deleted file mode 100644 index c53f6e73..00000000 --- a/src/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePayloadGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePayloadGroup, - new IntermediateFieldDefinition[] - { - }, - typeof(WixBundlePayloadGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundlePayloadGroupSymbolFields - { - } - - public class WixBundlePayloadGroupSymbol : IntermediateSymbol - { - public WixBundlePayloadGroupSymbol() : base(SymbolDefinitions.WixBundlePayloadGroup, null, null) - { - } - - public WixBundlePayloadGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePayloadGroupSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs b/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs deleted file mode 100644 index 82b75285..00000000 --- a/src/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs +++ /dev/null @@ -1,166 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundlePayload = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundlePayload, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.SourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DownloadUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Compressed), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.UnresolvedSourceFile), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.LargeNumber), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EmbeddedId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.LayoutOnly), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Packaging), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ParentPackagePayloadRef), IntermediateFieldType.String), - }, - typeof(WixBundlePayloadSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundlePayloadSymbolFields - { - Name, - SourceFile, - DownloadUrl, - Compressed, - UnresolvedSourceFile, - DisplayName, - Description, - FileSize, - Version, - Hash, - ContainerRef, - ContentFile, - EmbeddedId, - LayoutOnly, - Packaging, - ParentPackagePayloadRef, - } - - public class WixBundlePayloadSymbol : IntermediateSymbol - { - public WixBundlePayloadSymbol() : base(SymbolDefinitions.WixBundlePayload, null, null) - { - } - - public WixBundlePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayload, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundlePayloadSymbolFields index] => this.Fields[(int)index]; - - public string Name - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Name]; - set => this.Set((int)WixBundlePayloadSymbolFields.Name, value); - } - - public IntermediateFieldPathValue SourceFile - { - get => this.Fields[(int)WixBundlePayloadSymbolFields.SourceFile].AsPath(); - set => this.Set((int)WixBundlePayloadSymbolFields.SourceFile, value); - } - - public string DownloadUrl - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DownloadUrl]; - set => this.Set((int)WixBundlePayloadSymbolFields.DownloadUrl, value); - } - - public bool? Compressed - { - get => (bool?)this.Fields[(int)WixBundlePayloadSymbolFields.Compressed]; - set => this.Set((int)WixBundlePayloadSymbolFields.Compressed, value); - } - - public string UnresolvedSourceFile - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.UnresolvedSourceFile]; - set => this.Set((int)WixBundlePayloadSymbolFields.UnresolvedSourceFile, value); - } - - public string DisplayName - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DisplayName]; - set => this.Set((int)WixBundlePayloadSymbolFields.DisplayName, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Description]; - set => this.Set((int)WixBundlePayloadSymbolFields.Description, value); - } - - public long? FileSize - { - get => (long?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; - set => this.Set((int)WixBundlePayloadSymbolFields.FileSize, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Version]; - set => this.Set((int)WixBundlePayloadSymbolFields.Version, value); - } - - public string Hash - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Hash]; - set => this.Set((int)WixBundlePayloadSymbolFields.Hash, value); - } - - public string ContainerRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ContainerRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.ContainerRef, value); - } - - public bool ContentFile - { - get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.ContentFile]; - set => this.Set((int)WixBundlePayloadSymbolFields.ContentFile, value); - } - - public string EmbeddedId - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.EmbeddedId]; - set => this.Set((int)WixBundlePayloadSymbolFields.EmbeddedId, value); - } - - public bool LayoutOnly - { - get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.LayoutOnly]; - set => this.Set((int)WixBundlePayloadSymbolFields.LayoutOnly, value); - } - - public PackagingType? Packaging - { - get => (PackagingType?)this.Fields[(int)WixBundlePayloadSymbolFields.Packaging].AsNumber(); - set => this.Set((int)WixBundlePayloadSymbolFields.Packaging, (int?)value); - } - - public string ParentPackagePayloadRef - { - get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef]; - set => this.Set((int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs deleted file mode 100644 index 7bd67b7f..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs +++ /dev/null @@ -1,104 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleRelatedPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleRelatedPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.PackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.RelatedId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Languages), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundleRelatedPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleRelatedPackageSymbolFields - { - PackageRef, - RelatedId, - MinVersion, - MaxVersion, - Languages, - Attributes, - } - - [Flags] - public enum WixBundleRelatedPackageAttributes - { - None = 0x0, - OnlyDetect = 0x1, - MinInclusive = 0x2, - MaxInclusive = 0x4, - LangInclusive = 0x8, - } - - public class WixBundleRelatedPackageSymbol : IntermediateSymbol - { - public WixBundleRelatedPackageSymbol() : base(SymbolDefinitions.WixBundleRelatedPackage, null, null) - { - } - - public WixBundleRelatedPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleRelatedPackageSymbolFields index] => this.Fields[(int)index]; - - public string PackageRef - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.PackageRef]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.PackageRef, value); - } - - public string RelatedId - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.RelatedId]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.RelatedId, value); - } - - public string MinVersion - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MinVersion]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.MinVersion, value); - } - - public string MaxVersion - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MaxVersion]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.MaxVersion, value); - } - - public string Languages - { - get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Languages]; - set => this.Set((int)WixBundleRelatedPackageSymbolFields.Languages, value); - } - - public WixBundleRelatedPackageAttributes Attributes - { - get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixBundleRelatedPackageSymbolFields.Attributes, (int)value); - } - - public bool MinInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MinInclusive) == WixBundleRelatedPackageAttributes.MinInclusive; - - public bool MaxInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MaxInclusive) == WixBundleRelatedPackageAttributes.MaxInclusive; - - public bool OnlyDetect => (this.Attributes & WixBundleRelatedPackageAttributes.OnlyDetect) == WixBundleRelatedPackageAttributes.OnlyDetect; - - public bool LangInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.LangInclusive) == WixBundleRelatedPackageAttributes.LangInclusive; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs b/src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs deleted file mode 100644 index e54e898e..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleRollbackBoundary = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleRollbackBoundary, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Vital), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Transaction), IntermediateFieldType.Number), - }, - typeof(WixBundleRollbackBoundarySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleRollbackBoundarySymbolFields - { - Vital, - Transaction, - } - - public class WixBundleRollbackBoundarySymbol : IntermediateSymbol - { - public WixBundleRollbackBoundarySymbol() : base(SymbolDefinitions.WixBundleRollbackBoundary, null, null) - { - } - - public WixBundleRollbackBoundarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleRollbackBoundarySymbolFields index] => this.Fields[(int)index]; - - public bool? Vital - { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Vital]; - set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Vital, value); - } - - public bool? Transaction - { - get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Transaction]; - set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Transaction, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs deleted file mode 100644 index d8e9db3f..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleSlipstreamMsp = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleSlipstreamMsp, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.TargetPackageRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.MspPackageRef), IntermediateFieldType.String), - }, - typeof(WixBundleSlipstreamMspSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleSlipstreamMspSymbolFields - { - TargetPackageRef, - MspPackageRef, - } - - public class WixBundleSlipstreamMspSymbol : IntermediateSymbol - { - public WixBundleSlipstreamMspSymbol() : base(SymbolDefinitions.WixBundleSlipstreamMsp, null, null) - { - } - - public WixBundleSlipstreamMspSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleSlipstreamMspSymbolFields index] => this.Fields[(int)index]; - - public string TargetPackageRef - { - get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef]; - set => this.Set((int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef, value); - } - - public string MspPackageRef - { - get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.MspPackageRef]; - set => this.Set((int)WixBundleSlipstreamMspSymbolFields.MspPackageRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleSymbol.cs deleted file mode 100644 index 8cad5c36..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleSymbol.cs +++ /dev/null @@ -1,234 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundle = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundle, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Copyright), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.AboutUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpTelephone), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpdateUrl), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Compressed), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPathVariable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPrefix), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogExtension), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.IconSourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.SplashScreenSourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Tag), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Platform), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ParentName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.BundleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ProviderKey), IntermediateFieldType.String), - }, - typeof(WixBundleSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleSymbolFields - { - UpgradeCode, - Version, - Copyright, - Name, - Manufacturer, - Attributes, - AboutUrl, - HelpUrl, - HelpTelephone, - UpdateUrl, - Compressed, - LogPathVariable, - LogPrefix, - LogExtension, - IconSourceFile, - SplashScreenSourceFile, - Condition, - Tag, - Platform, - ParentName, - BundleId, - ProviderKey, - } - - [Flags] - public enum WixBundleAttributes - { - None = 0x0, - DisableModify = 0x1, - DisableRemove = 0x2, - SingleChangeUninstallButton = 0x4, - PerMachine = 0x8, - } - - public class WixBundleSymbol : IntermediateSymbol - { - public WixBundleSymbol() : base(SymbolDefinitions.WixBundle, null, null) - { - } - - public WixBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundle, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleSymbolFields index] => this.Fields[(int)index]; - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixBundleSymbolFields.UpgradeCode]; - set => this.Set((int)WixBundleSymbolFields.UpgradeCode, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Version]; - set => this.Set((int)WixBundleSymbolFields.Version, value); - } - - public string Copyright - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Copyright]; - set => this.Set((int)WixBundleSymbolFields.Copyright, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Name]; - set => this.Set((int)WixBundleSymbolFields.Name, value); - } - - public string Manufacturer - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Manufacturer]; - set => this.Set((int)WixBundleSymbolFields.Manufacturer, value); - } - - public WixBundleAttributes Attributes - { - get => (WixBundleAttributes)this.Fields[(int)WixBundleSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixBundleSymbolFields.Attributes, (int)value); - } - - public string AboutUrl - { - get => (string)this.Fields[(int)WixBundleSymbolFields.AboutUrl]; - set => this.Set((int)WixBundleSymbolFields.AboutUrl, value); - } - - public string HelpTelephone - { - get => (string)this.Fields[(int)WixBundleSymbolFields.HelpTelephone]; - set => this.Set((int)WixBundleSymbolFields.HelpTelephone, value); - } - - public string HelpUrl - { - get => (string)this.Fields[(int)WixBundleSymbolFields.HelpUrl]; - set => this.Set((int)WixBundleSymbolFields.HelpUrl, value); - } - - public string UpdateUrl - { - get => (string)this.Fields[(int)WixBundleSymbolFields.UpdateUrl]; - set => this.Set((int)WixBundleSymbolFields.UpdateUrl, value); - } - - public bool? Compressed - { - get => (bool?)this.Fields[(int)WixBundleSymbolFields.Compressed]; - set => this.Set((int)WixBundleSymbolFields.Compressed, value); - } - - public string LogPathVariable - { - get => (string)this.Fields[(int)WixBundleSymbolFields.LogPathVariable]; - set => this.Set((int)WixBundleSymbolFields.LogPathVariable, value); - } - - public string LogPrefix - { - get => (string)this.Fields[(int)WixBundleSymbolFields.LogPrefix]; - set => this.Set((int)WixBundleSymbolFields.LogPrefix, value); - } - - public string LogExtension - { - get => (string)this.Fields[(int)WixBundleSymbolFields.LogExtension]; - set => this.Set((int)WixBundleSymbolFields.LogExtension, value); - } - - public string IconSourceFile - { - get => (string)this.Fields[(int)WixBundleSymbolFields.IconSourceFile]; - set => this.Set((int)WixBundleSymbolFields.IconSourceFile, value); - } - - public string SplashScreenSourceFile - { - get => (string)this.Fields[(int)WixBundleSymbolFields.SplashScreenSourceFile]; - set => this.Set((int)WixBundleSymbolFields.SplashScreenSourceFile, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Condition]; - set => this.Set((int)WixBundleSymbolFields.Condition, value); - } - - public string Tag - { - get => (string)this.Fields[(int)WixBundleSymbolFields.Tag]; - set => this.Set((int)WixBundleSymbolFields.Tag, value); - } - - public Platform Platform - { - get => (Platform)this.Fields[(int)WixBundleSymbolFields.Platform].AsNumber(); - set => this.Set((int)WixBundleSymbolFields.Platform, (int)value); - } - - public string ParentName - { - get => (string)this.Fields[(int)WixBundleSymbolFields.ParentName]; - set => this.Set((int)WixBundleSymbolFields.ParentName, value); - } - - public string BundleId - { - get => (string)this.Fields[(int)WixBundleSymbolFields.BundleId]; - set => this.Set((int)WixBundleSymbolFields.BundleId, value); - } - - public string ProviderKey - { - get => (string)this.Fields[(int)WixBundleSymbolFields.ProviderKey]; - set => this.Set((int)WixBundleSymbolFields.ProviderKey, value); - } - - public PackagingType DefaultPackagingType => (this.Compressed.HasValue && !this.Compressed.Value) ? PackagingType.External : PackagingType.Embedded; - - public bool DisableModify => (this.Attributes & WixBundleAttributes.DisableModify) == WixBundleAttributes.DisableModify; - - public bool DisableRemove => (this.Attributes & WixBundleAttributes.DisableRemove) == WixBundleAttributes.DisableRemove; - - public bool PerMachine => (this.Attributes & WixBundleAttributes.PerMachine) == WixBundleAttributes.PerMachine; - - public bool SingleChangeUninstallButton => (this.Attributes & WixBundleAttributes.SingleChangeUninstallButton) == WixBundleAttributes.SingleChangeUninstallButton; - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs deleted file mode 100644 index d550dae0..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleTagSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleTag = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleTag, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Filename), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Regid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.InstallPath), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Xml), IntermediateFieldType.String), - }, - typeof(WixBundleTagSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleTagSymbolFields - { - Filename, - Regid, - Name, - InstallPath, - Attributes, - Xml, - } - - public class WixBundleTagSymbol : IntermediateSymbol - { - public WixBundleTagSymbol() : base(SymbolDefinitions.WixBundleTag, null, null) - { - } - - public WixBundleTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleTag, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleTagSymbolFields index] => this.Fields[(int)index]; - - public string Filename - { - get => this.Fields[(int)WixBundleTagSymbolFields.Filename].AsString(); - set => this.Set((int)WixBundleTagSymbolFields.Filename, value); - } - - public string Regid - { - get => this.Fields[(int)WixBundleTagSymbolFields.Regid].AsString(); - set => this.Set((int)WixBundleTagSymbolFields.Regid, value); - } - - public string Name - { - get => this.Fields[(int)WixBundleTagSymbolFields.Name].AsString(); - set => this.Set((int)WixBundleTagSymbolFields.Name, value); - } - - public string InstallPath - { - get => this.Fields[(int)WixBundleTagSymbolFields.InstallPath].AsString(); - set => this.Set((int)WixBundleTagSymbolFields.InstallPath, value); - } - - public int Attributes - { - get => this.Fields[(int)WixBundleTagSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixBundleTagSymbolFields.Attributes, value); - } - - public string Xml - { - get => this.Fields[(int)WixBundleTagSymbolFields.Xml].AsString(); - set => this.Set((int)WixBundleTagSymbolFields.Xml, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs deleted file mode 100644 index d27bbc32..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleUpdate = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleUpdate, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Location), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixBundleUpdateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixBundleUpdateSymbolFields - { - Location, - Attributes, - } - - public class WixBundleUpdateSymbol : IntermediateSymbol - { - public WixBundleUpdateSymbol() : base(SymbolDefinitions.WixBundleUpdate, null, null) - { - } - - public WixBundleUpdateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleUpdate, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleUpdateSymbolFields index] => this.Fields[(int)index]; - - public string Location - { - get => (string)this.Fields[(int)WixBundleUpdateSymbolFields.Location]; - set => this.Set((int)WixBundleUpdateSymbolFields.Location, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)WixBundleUpdateSymbolFields.Attributes]; - set => this.Set((int)WixBundleUpdateSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs deleted file mode 100644 index d68ac682..00000000 --- a/src/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs +++ /dev/null @@ -1,79 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixBundleVariable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixBundleVariable, - new[] - { - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Persisted), IntermediateFieldType.Bool), - }, - typeof(WixBundleVariableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixBundleVariableSymbolFields - { - Value, - Type, - Hidden, - Persisted, - } - - public enum WixBundleVariableType - { - Unknown, - Formatted, - Numeric, - String, - Version, - } - - public class WixBundleVariableSymbol : IntermediateSymbol - { - public WixBundleVariableSymbol() : base(SymbolDefinitions.WixBundleVariable, null, null) - { - } - - public WixBundleVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleVariable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixBundleVariableSymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Value]; - set => this.Set((int)WixBundleVariableSymbolFields.Value, value); - } - - public WixBundleVariableType Type - { - get => Enum.TryParse((string)this.Fields[(int)WixBundleVariableSymbolFields.Type], true, out WixBundleVariableType value) ? value : WixBundleVariableType.Unknown; - set => this.Set((int)WixBundleVariableSymbolFields.Type, value.ToString().ToLowerInvariant()); - } - - public bool Hidden - { - get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Hidden]; - set => this.Set((int)WixBundleVariableSymbolFields.Hidden, value); - } - - public bool Persisted - { - get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Persisted]; - set => this.Set((int)WixBundleVariableSymbolFields.Persisted, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixChainItemSymbol.cs b/src/WixToolset.Data/Symbols/WixChainItemSymbol.cs deleted file mode 100644 index c657678c..00000000 --- a/src/WixToolset.Data/Symbols/WixChainItemSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixChainItem = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixChainItem, - new IntermediateFieldDefinition[] - { - }, - typeof(WixChainItemSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixChainItemSymbolFields - { - } - - public class WixChainItemSymbol : IntermediateSymbol - { - public WixChainItemSymbol() : base(SymbolDefinitions.WixChainItem, null, null) - { - } - - public WixChainItemSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChainItem, sourceLineNumber, id) - { - } - - public IntermediateField this[WixChainItemSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixChainSymbol.cs b/src/WixToolset.Data/Symbols/WixChainSymbol.cs deleted file mode 100644 index 8ec5fc63..00000000 --- a/src/WixToolset.Data/Symbols/WixChainSymbol.cs +++ /dev/null @@ -1,61 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixChain = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixChain, - new[] - { - new IntermediateFieldDefinition(nameof(WixChainSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixChainSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixChainSymbolFields - { - Attributes, - } - - [Flags] - public enum WixChainAttributes - { - None = 0x0, - DisableRollback = 0x1, - DisableSystemRestore = 0x2, - ParallelCache = 0x4, - } - - public class WixChainSymbol : IntermediateSymbol - { - public WixChainSymbol() : base(SymbolDefinitions.WixChain, null, null) - { - } - - public WixChainSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChain, sourceLineNumber, id) - { - } - - public IntermediateField this[WixChainSymbolFields index] => this.Fields[(int)index]; - - public WixChainAttributes Attributes - { - get => (WixChainAttributes)(int)this.Fields[(int)WixChainSymbolFields.Attributes]; - set => this.Set((int)WixChainSymbolFields.Attributes, (int)value); - } - - public bool DisableRollback => (this.Attributes & WixChainAttributes.DisableRollback) == WixChainAttributes.DisableRollback; - - public bool DisableSystemRestore => (this.Attributes & WixChainAttributes.DisableSystemRestore) == WixChainAttributes.DisableSystemRestore; - - public bool ParallelCache => (this.Attributes & WixChainAttributes.ParallelCache) == WixChainAttributes.ParallelCache; - } -} diff --git a/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs deleted file mode 100644 index 3db9bcd5..00000000 --- a/src/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs +++ /dev/null @@ -1,86 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixComplexReference = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixComplexReference, - new[] - { - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Parent), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentLanguage), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Child), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ChildAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Attributes), IntermediateFieldType.Bool), - }, - typeof(WixComplexReferenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixComplexReferenceSymbolFields - { - Parent, - ParentAttributes, - ParentLanguage, - Child, - ChildAttributes, - Attributes, - } - - public class WixComplexReferenceSymbol : IntermediateSymbol - { - public WixComplexReferenceSymbol() : base(SymbolDefinitions.WixComplexReference, null, null) - { - } - - public WixComplexReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComplexReference, sourceLineNumber, id) - { - } - - public IntermediateField this[WixComplexReferenceSymbolFields index] => this.Fields[(int)index]; - - public string Parent - { - get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Parent]; - set => this.Set((int)WixComplexReferenceSymbolFields.Parent, value); - } - - public ComplexReferenceParentType ParentType - { - get => (ComplexReferenceParentType)this.Fields[(int)WixComplexReferenceSymbolFields.ParentAttributes].AsNumber(); - set => this.Set((int)WixComplexReferenceSymbolFields.ParentAttributes, (int)value); - } - - public string ParentLanguage - { - get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentLanguage]; - set => this.Set((int)WixComplexReferenceSymbolFields.ParentLanguage, value); - } - - public string Child - { - get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Child]; - set => this.Set((int)WixComplexReferenceSymbolFields.Child, value); - } - - public ComplexReferenceChildType ChildType - { - get => (ComplexReferenceChildType)this.Fields[(int)WixComplexReferenceSymbolFields.ChildAttributes].AsNumber(); - set => this.Set((int)WixComplexReferenceSymbolFields.ChildAttributes, (int)value); - } - - public bool IsPrimary - { - get => (bool)this.Fields[(int)WixComplexReferenceSymbolFields.Attributes]; - set => this.Set((int)WixComplexReferenceSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs deleted file mode 100644 index 4dd5a3b5..00000000 --- a/src/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixComponentGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixComponentGroup, - new[] - { - new IntermediateFieldDefinition(nameof(WixComponentGroupSymbolFields.WixComponentGroup), IntermediateFieldType.String), - }, - typeof(WixComponentGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixComponentGroupSymbolFields - { - WixComponentGroup, - } - - public class WixComponentGroupSymbol : IntermediateSymbol - { - public WixComponentGroupSymbol() : base(SymbolDefinitions.WixComponentGroup, null, null) - { - } - - public WixComponentGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixComponentGroupSymbolFields index] => this.Fields[(int)index]; - - public string WixComponentGroup - { - get => (string)this.Fields[(int)WixComponentGroupSymbolFields.WixComponentGroup]; - set => this.Set((int)WixComponentGroupSymbolFields.WixComponentGroup, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs deleted file mode 100644 index 63f7179f..00000000 --- a/src/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs +++ /dev/null @@ -1,70 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixComponentSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixComponentSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Guid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixComponentSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixComponentSearchSymbolFields - { - Guid, - ProductCode, - Attributes, - } - - [Flags] - public enum WixComponentSearchAttributes - { - KeyPath = 0x1, - State = 0x2, - WantDirectory = 0x4, - } - - public class WixComponentSearchSymbol : IntermediateSymbol - { - public WixComponentSearchSymbol() : base(SymbolDefinitions.WixComponentSearch, null, null) - { - } - - public WixComponentSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixComponentSearchSymbolFields index] => this.Fields[(int)index]; - - public string Guid - { - get => (string)this.Fields[(int)WixComponentSearchSymbolFields.Guid]; - set => this.Set((int)WixComponentSearchSymbolFields.Guid, value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)WixComponentSearchSymbolFields.ProductCode]; - set => this.Set((int)WixComponentSearchSymbolFields.ProductCode, value); - } - - public WixComponentSearchAttributes Attributes - { - get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixComponentSearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs b/src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs deleted file mode 100644 index b45cda43..00000000 --- a/src/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixCustomTableCell = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixCustomTableCell, - new[] - { - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.TableRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.ColumnRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.RowId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.Data), IntermediateFieldType.String), - }, - typeof(WixCustomTableCellSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixCustomTableCellSymbolFields - { - TableRef, - ColumnRef, - RowId, - Data, - } - - public class WixCustomTableCellSymbol : IntermediateSymbol - { - public WixCustomTableCellSymbol() : base(SymbolDefinitions.WixCustomTableCell, null, null) - { - } - - public WixCustomTableCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableCell, sourceLineNumber, id) - { - } - - public IntermediateField this[WixCustomTableCellSymbolFields index] => this.Fields[(int)index]; - - public string TableRef - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.TableRef]; - set => this.Set((int)WixCustomTableCellSymbolFields.TableRef, value); - } - - public string ColumnRef - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.ColumnRef]; - set => this.Set((int)WixCustomTableCellSymbolFields.ColumnRef, value); - } - - public string RowId - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.RowId]; - set => this.Set((int)WixCustomTableCellSymbolFields.RowId, value); - } - - public string Data - { - get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.Data]; - set => this.Set((int)WixCustomTableCellSymbolFields.Data, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs b/src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs deleted file mode 100644 index 9ae2a904..00000000 --- a/src/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs +++ /dev/null @@ -1,203 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixCustomTableColumn = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixCustomTableColumn, - new[] - { - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.TableRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Type), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Width), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MinValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MaxValue), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyTable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyColumn), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Category), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Set), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Description), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Modularize), IntermediateFieldType.Number) - }, - typeof(WixCustomTableColumnSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixCustomTableColumnSymbolFields - { - TableRef, - Name, - Type, - Attributes, - Width, - MinValue, - MaxValue, - KeyTable, - KeyColumn, - Category, - Set, - Description, - Modularize, - } - - [Flags] - public enum WixCustomTableColumnSymbolAttributes - { - None = 0x0, - PrimaryKey = 0x1, - Localizable = 0x2, - Nullable = 0x4, - Unreal = 0x8, - } - - public enum WixCustomTableColumnCategoryType - { - Text, - UpperCase, - LowerCase, - Integer, - DoubleInteger, - TimeDate, - Identifier, - Property, - Filename, - WildCardFilename, - Path, - Paths, - AnyPath, - DefaultDir, - RegPath, - Formatted, - FormattedSddl, - Template, - Condition, - Guid, - Version, - Language, - Binary, - CustomSource, - Cabinet, - Shortcut, - } - - public enum WixCustomTableColumnModularizeType - { - None, - Column, - CompanionFile, - Condition, - ControlEventArgument, - ControlText, - Icon, - Property, - SemicolonDelimited, - } - - public class WixCustomTableColumnSymbol : IntermediateSymbol - { - public WixCustomTableColumnSymbol() : base(SymbolDefinitions.WixCustomTableColumn, null, null) - { - } - - public WixCustomTableColumnSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableColumn, sourceLineNumber, id) - { - } - - public IntermediateField this[WixCustomTableColumnSymbolFields index] => this.Fields[(int)index]; - - public string TableRef - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.TableRef]; - set => this.Set((int)WixCustomTableColumnSymbolFields.TableRef, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Name]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Name, value); - } - - public IntermediateFieldType Type - { - get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnSymbolFields.Type].AsNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Type, (int)value); - } - - public WixCustomTableColumnSymbolAttributes Attributes - { - get => (WixCustomTableColumnSymbolAttributes)this.Fields[(int)WixCustomTableColumnSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Attributes, (int)value); - } - - public int Width - { - get => (int)this.Fields[(int)WixCustomTableColumnSymbolFields.Width]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Width, value); - } - - public long? MinValue - { - get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MinValue]; - set => this.Set((int)WixCustomTableColumnSymbolFields.MinValue, value); - } - - public long? MaxValue - { - get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MaxValue]; - set => this.Set((int)WixCustomTableColumnSymbolFields.MaxValue, value); - } - - public string KeyTable - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyTable]; - set => this.Set((int)WixCustomTableColumnSymbolFields.KeyTable, value); - } - - public int? KeyColumn - { - get => (int?)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyColumn]; - set => this.Set((int)WixCustomTableColumnSymbolFields.KeyColumn, value); - } - - public WixCustomTableColumnCategoryType? Category - { - get => (WixCustomTableColumnCategoryType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Category].AsNullableNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Category, (int?)value); - } - - public string Set - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Set]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Set, value); - } - - public string Description - { - get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Description]; - set => this.Set((int)WixCustomTableColumnSymbolFields.Description, value); - } - - public WixCustomTableColumnModularizeType? Modularize - { - get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Modularize].AsNullableNumber(); - set => this.Set((int)WixCustomTableColumnSymbolFields.Modularize, (int?)value); - } - - public bool PrimaryKey => (this.Attributes & WixCustomTableColumnSymbolAttributes.PrimaryKey) == WixCustomTableColumnSymbolAttributes.PrimaryKey; - - public bool Localizable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Localizable) == WixCustomTableColumnSymbolAttributes.Localizable; - - public bool Nullable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Nullable) == WixCustomTableColumnSymbolAttributes.Nullable; - - public bool Unreal => (this.Attributes & WixCustomTableColumnSymbolAttributes.Unreal) == WixCustomTableColumnSymbolAttributes.Unreal; - } -} diff --git a/src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs b/src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs deleted file mode 100644 index af731443..00000000 --- a/src/WixToolset.Data/Symbols/WixCustomTableSymbol.cs +++ /dev/null @@ -1,56 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixCustomTable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixCustomTable, - new[] - { - new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.ColumnNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.Unreal), IntermediateFieldType.Bool), - }, - typeof(WixCustomTableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixCustomTableSymbolFields - { - ColumnNames, - Unreal, - } - - public class WixCustomTableSymbol : IntermediateSymbol - { - public const char ColumnNamesSeparator = '\x85'; - - public WixCustomTableSymbol() : base(SymbolDefinitions.WixCustomTable, null, null) - { - } - - public WixCustomTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixCustomTableSymbolFields index] => this.Fields[(int)index]; - - public string ColumnNames - { - get => (string)this.Fields[(int)WixCustomTableSymbolFields.ColumnNames]; - set => this.Set((int)WixCustomTableSymbolFields.ColumnNames, value); - } - - public bool Unreal - { - get => (bool)this.Fields[(int)WixCustomTableSymbolFields.Unreal]; - set => this.Set((int)WixCustomTableSymbolFields.Unreal, value); - } - - public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); - } -} diff --git a/src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs b/src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs deleted file mode 100644 index 77203b03..00000000 --- a/src/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs +++ /dev/null @@ -1,84 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDeltaPatchFile = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDeltaPatchFile, - new[] - { - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreLengths), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainOffsets), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.SymbolPaths), IntermediateFieldType.String), - }, - typeof(WixDeltaPatchFileSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixDeltaPatchFileSymbolFields - { - FileRef, - RetainLengths, - IgnoreOffsets, - IgnoreLengths, - RetainOffsets, - SymbolPaths, - } - - public class WixDeltaPatchFileSymbol : IntermediateSymbol - { - public WixDeltaPatchFileSymbol() : base(SymbolDefinitions.WixDeltaPatchFile, null, null) - { - } - - public WixDeltaPatchFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchFile, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDeltaPatchFileSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.FileRef]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.FileRef, value); - } - - public string RetainLengths - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainLengths]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainLengths, value); - } - - public string IgnoreOffsets - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreOffsets]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreOffsets, value); - } - - public string IgnoreLengths - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreLengths]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreLengths, value); - } - - public string RetainOffsets - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainOffsets]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainOffsets, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.SymbolPaths]; - set => this.Set((int)WixDeltaPatchFileSymbolFields.SymbolPaths, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs b/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs deleted file mode 100644 index 20f30da4..00000000 --- a/src/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs +++ /dev/null @@ -1,73 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDeltaPatchSymbolPaths = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDeltaPatchSymbolPaths, - new[] - { - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths), IntermediateFieldType.String), - }, - typeof(WixDeltaPatchSymbolPathsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixDeltaPatchSymbolPathsSymbolFields - { - SymbolType, - SymbolId, - SymbolPaths, - } - - /// - /// The types that the WixDeltaPatchSymbolPaths table can hold. - /// - /// The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type. - public enum SymbolPathType - { - File, - Component, - Directory, - Media, - Product - }; - - public class WixDeltaPatchSymbolPathsSymbol : IntermediateSymbol - { - public WixDeltaPatchSymbolPathsSymbol() : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, null, null) - { - } - - public WixDeltaPatchSymbolPathsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDeltaPatchSymbolPathsSymbolFields index] => this.Fields[(int)index]; - - public SymbolPathType SymbolType - { - get => (SymbolPathType)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType].AsNumber(); - set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType, (int)value); - } - - public string SymbolId - { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId]; - set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId, value); - } - - public string SymbolPaths - { - get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths]; - set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs deleted file mode 100644 index 0212bfab..00000000 --- a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs +++ /dev/null @@ -1,90 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDependencyProvider = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDependencyProvider, - new[] - { - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ParentRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixDependencyProviderSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - using WixToolset.Data; - - public enum WixDependencyProviderSymbolFields - { - ParentRef, - ProviderKey, - Version, - DisplayName, - Attributes, - } - - [Flags] - public enum WixDependencyProviderAttributes - { - ProvidesAttributesBundle = 0x10000, - ProvidesAttributesImported = 0x20000 - } - - public class WixDependencyProviderSymbol : IntermediateSymbol - { - public WixDependencyProviderSymbol() : base(SymbolDefinitions.WixDependencyProvider, null, null) - { - } - - public WixDependencyProviderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyProvider, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index]; - - public string ParentRef - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.ParentRef].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.ParentRef, value); - } - - public string ProviderKey - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.ProviderKey].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.ProviderKey, value); - } - - public string Version - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.Version].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.Version, value); - } - - public string DisplayName - { - get => this.Fields[(int)WixDependencyProviderSymbolFields.DisplayName].AsString(); - set => this.Set((int)WixDependencyProviderSymbolFields.DisplayName, value); - } - - public WixDependencyProviderAttributes Attributes - { - get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderSymbolFields.Attributes]; - set => this.Set((int)WixDependencyProviderSymbolFields.Attributes, (int)value); - } - - public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle; - - public bool Imported => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesImported) == WixDependencyProviderAttributes.ProvidesAttributesImported; - } -} diff --git a/src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs deleted file mode 100644 index d6076d57..00000000 --- a/src/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDependencyRef = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDependencyRef, - new[] - { - new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyProviderRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyRef), IntermediateFieldType.String), - }, - typeof(WixDependencyRefSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixDependencyRefSymbolFields - { - WixDependencyProviderRef, - WixDependencyRef, - } - - public class WixDependencyRefSymbol : IntermediateSymbol - { - public WixDependencyRefSymbol() : base(SymbolDefinitions.WixDependencyRef, null, null) - { - } - - public WixDependencyRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyRef, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDependencyRefSymbolFields index] => this.Fields[(int)index]; - - public string WixDependencyProviderRef - { - get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyProviderRef].AsString(); - set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyProviderRef, value); - } - - public string WixDependencyRef - { - get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyRef].AsString(); - set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixDependencySymbol.cs b/src/WixToolset.Data/Symbols/WixDependencySymbol.cs deleted file mode 100644 index 840331bb..00000000 --- a/src/WixToolset.Data/Symbols/WixDependencySymbol.cs +++ /dev/null @@ -1,82 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixDependency = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixDependency, - new[] - { - new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.ProviderKey), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixDependencySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixDependencySymbolFields - { - ProviderKey, - MinVersion, - MaxVersion, - Attributes, - } - - [Flags] - public enum WixDependencySymbolAttributes : int - { - None = 0x0, - RequiresAttributesMinVersionInclusive = 0x100, - RequiresAttributesMaxVersionInclusive = 0x200, - } - - public class WixDependencySymbol : IntermediateSymbol - { - public WixDependencySymbol() : base(SymbolDefinitions.WixDependency, null, null) - { - } - - public WixDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependency, sourceLineNumber, id) - { - } - - public IntermediateField this[WixDependencySymbolFields index] => this.Fields[(int)index]; - - public string ProviderKey - { - get => this.Fields[(int)WixDependencySymbolFields.ProviderKey].AsString(); - set => this.Set((int)WixDependencySymbolFields.ProviderKey, value); - } - - public string MinVersion - { - get => this.Fields[(int)WixDependencySymbolFields.MinVersion].AsString(); - set => this.Set((int)WixDependencySymbolFields.MinVersion, value); - } - - public string MaxVersion - { - get => this.Fields[(int)WixDependencySymbolFields.MaxVersion].AsString(); - set => this.Set((int)WixDependencySymbolFields.MaxVersion, value); - } - - public WixDependencySymbolAttributes Attributes - { - get => (WixDependencySymbolAttributes)this.Fields[(int)WixDependencySymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixDependencySymbolFields.Attributes, (int)value); - } - - public bool RequiresAttributesMinVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive; - - public bool RequiresAttributesMaxVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive; - } -} diff --git a/src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs b/src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs deleted file mode 100644 index d13063b7..00000000 --- a/src/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixEnsureTable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixEnsureTable, - new[] - { - new IntermediateFieldDefinition(nameof(WixEnsureTableSymbolFields.Table), IntermediateFieldType.String), - }, - typeof(WixEnsureTableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixEnsureTableSymbolFields - { - Table, - } - - public class WixEnsureTableSymbol : IntermediateSymbol - { - public WixEnsureTableSymbol() : base(SymbolDefinitions.WixEnsureTable, null, null) - { - } - - public WixEnsureTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixEnsureTable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixEnsureTableSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)WixEnsureTableSymbolFields.Table]; - set => this.Set((int)WixEnsureTableSymbolFields.Table, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs deleted file mode 100644 index ac002bb6..00000000 --- a/src/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFeatureGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFeatureGroup, - new IntermediateFieldDefinition[] - { - }, - typeof(WixFeatureGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixFeatureGroupSymbolFields - { - } - - public class WixFeatureGroupSymbol : IntermediateSymbol - { - public WixFeatureGroupSymbol() : base(SymbolDefinitions.WixFeatureGroup, null, null) - { - } - - public WixFeatureGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFeatureGroupSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs b/src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs deleted file mode 100644 index b8b3d4b9..00000000 --- a/src/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFeatureModules = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFeatureModules, - new[] - { - new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.FeatureRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.WixMergeRef), IntermediateFieldType.String), - }, - typeof(WixFeatureModulesSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixFeatureModulesSymbolFields - { - FeatureRef, - WixMergeRef, - } - - public class WixFeatureModulesSymbol : IntermediateSymbol - { - public WixFeatureModulesSymbol() : base(SymbolDefinitions.WixFeatureModules, null, null) - { - } - - public WixFeatureModulesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureModules, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFeatureModulesSymbolFields index] => this.Fields[(int)index]; - - public string FeatureRef - { - get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.FeatureRef]; - set => this.Set((int)WixFeatureModulesSymbolFields.FeatureRef, value); - } - - public string WixMergeRef - { - get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.WixMergeRef]; - set => this.Set((int)WixFeatureModulesSymbolFields.WixMergeRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs deleted file mode 100644 index 027605c7..00000000 --- a/src/WixToolset.Data/Symbols/WixFileSearchSymbol.cs +++ /dev/null @@ -1,125 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFileSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFileSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Path), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxVersion), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxDate), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Languages), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixFileSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixFileSearchSymbolFields - { - Path, - MinVersion, - MaxVersion, - MinSize, - MaxSize, - MinDate, - MaxDate, - Languages, - Attributes, - } - - [Flags] - public enum WixFileSearchAttributes - { - Default = 0x001, - MinVersionInclusive = 0x002, - MaxVersionInclusive = 0x004, - MinSizeInclusive = 0x008, - MaxSizeInclusive = 0x010, - MinDateInclusive = 0x020, - MaxDateInclusive = 0x040, - WantVersion = 0x080, - WantExists = 0x100, - IsDirectory = 0x200, - } - - public class WixFileSearchSymbol : IntermediateSymbol - { - public WixFileSearchSymbol() : base(SymbolDefinitions.WixFileSearch, null, null) - { - } - - public WixFileSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFileSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFileSearchSymbolFields index] => this.Fields[(int)index]; - - public string Path - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.Path]; - set => this.Set((int)WixFileSearchSymbolFields.Path, value); - } - - public string MinVersion - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.MinVersion]; - set => this.Set((int)WixFileSearchSymbolFields.MinVersion, value); - } - - public string MaxVersion - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.MaxVersion]; - set => this.Set((int)WixFileSearchSymbolFields.MaxVersion, value); - } - - public int? MinSize - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinSize]; - set => this.Set((int)WixFileSearchSymbolFields.MinSize, value); - } - - public int? MaxSize - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxSize]; - set => this.Set((int)WixFileSearchSymbolFields.MaxSize, value); - } - - public int? MinDate - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinDate]; - set => this.Set((int)WixFileSearchSymbolFields.MinDate, value); - } - - public int? MaxDate - { - get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxDate]; - set => this.Set((int)WixFileSearchSymbolFields.MaxDate, value); - } - - public string Languages - { - get => (string)this.Fields[(int)WixFileSearchSymbolFields.Languages]; - set => this.Set((int)WixFileSearchSymbolFields.Languages, value); - } - - public WixFileSearchAttributes Attributes - { - get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixFileSearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixFragmentSymbol.cs b/src/WixToolset.Data/Symbols/WixFragmentSymbol.cs deleted file mode 100644 index 9c31b79c..00000000 --- a/src/WixToolset.Data/Symbols/WixFragmentSymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixFragment = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixFragment, - new IntermediateFieldDefinition[] - { - }, - typeof(WixFragmentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixFragmentSymbolFields - { - } - - public class WixFragmentSymbol : IntermediateSymbol - { - public WixFragmentSymbol() : base(SymbolDefinitions.WixFragment, null, null) - { - } - - public WixFragmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFragment, sourceLineNumber, id) - { - } - - public IntermediateField this[WixFragmentSymbolFields index] => this.Fields[(int)index]; - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixGroupSymbol.cs deleted file mode 100644 index f8adf78d..00000000 --- a/src/WixToolset.Data/Symbols/WixGroupSymbol.cs +++ /dev/null @@ -1,71 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixGroup, - new[] - { - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentType), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildType), IntermediateFieldType.Number), - }, - typeof(WixGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System.Diagnostics; - - public enum WixGroupSymbolFields - { - ParentId, - ParentType, - ChildId, - ChildType, - } - - [DebuggerDisplay("WixGroupSymbol {ParentType} {ParentId,nq} -> {ChildType} {ChildId,nq}")] - public class WixGroupSymbol : IntermediateSymbol - { - public WixGroupSymbol() : base(SymbolDefinitions.WixGroup, null, null) - { - } - - public WixGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixGroupSymbolFields index] => this.Fields[(int)index]; - - public string ParentId - { - get => (string)this.Fields[(int)WixGroupSymbolFields.ParentId]; - set => this.Set((int)WixGroupSymbolFields.ParentId, value); - } - - public ComplexReferenceParentType ParentType - { - get => (ComplexReferenceParentType)this.Fields[(int)WixGroupSymbolFields.ParentType].AsNumber(); - set => this.Set((int)WixGroupSymbolFields.ParentType, (int)value); - } - - public string ChildId - { - get => (string)this.Fields[(int)WixGroupSymbolFields.ChildId]; - set => this.Set((int)WixGroupSymbolFields.ChildId, value); - } - - public ComplexReferenceChildType ChildType - { - get => (ComplexReferenceChildType)this.Fields[(int)WixGroupSymbolFields.ChildType].AsNumber(); - set => this.Set((int)WixGroupSymbolFields.ChildType, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs b/src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs deleted file mode 100644 index c9e4470c..00000000 --- a/src/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixInstanceComponent = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixInstanceComponent, - new[] - { - new IntermediateFieldDefinition(nameof(WixInstanceComponentSymbolFields.ComponentRef), IntermediateFieldType.String), - }, - typeof(WixInstanceComponentSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixInstanceComponentSymbolFields - { - ComponentRef, - } - - public class WixInstanceComponentSymbol : IntermediateSymbol - { - public WixInstanceComponentSymbol() : base(SymbolDefinitions.WixInstanceComponent, null, null) - { - } - - public WixInstanceComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceComponent, sourceLineNumber, id) - { - } - - public IntermediateField this[WixInstanceComponentSymbolFields index] => this.Fields[(int)index]; - - public string ComponentRef - { - get => (string)this.Fields[(int)WixInstanceComponentSymbolFields.ComponentRef]; - set => this.Set((int)WixInstanceComponentSymbolFields.ComponentRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs b/src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs deleted file mode 100644 index 3a58cb31..00000000 --- a/src/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixInstanceTransforms = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixInstanceTransforms, - new[] - { - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.PropertyId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductName), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.UpgradeCode), IntermediateFieldType.String), - }, - typeof(WixInstanceTransformsSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixInstanceTransformsSymbolFields - { - PropertyId, - ProductCode, - ProductName, - UpgradeCode, - } - - public class WixInstanceTransformsSymbol : IntermediateSymbol - { - public WixInstanceTransformsSymbol() : base(SymbolDefinitions.WixInstanceTransforms, null, null) - { - } - - public WixInstanceTransformsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceTransforms, sourceLineNumber, id) - { - } - - public IntermediateField this[WixInstanceTransformsSymbolFields index] => this.Fields[(int)index]; - - public string PropertyId - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.PropertyId]; - set => this.Set((int)WixInstanceTransformsSymbolFields.PropertyId, value); - } - - public string ProductCode - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductCode]; - set => this.Set((int)WixInstanceTransformsSymbolFields.ProductCode, value); - } - - public string ProductName - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductName]; - set => this.Set((int)WixInstanceTransformsSymbolFields.ProductName, value); - } - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.UpgradeCode]; - set => this.Set((int)WixInstanceTransformsSymbolFields.UpgradeCode, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs b/src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs deleted file mode 100644 index 28695b3e..00000000 --- a/src/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs +++ /dev/null @@ -1,86 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixMediaTemplate = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixMediaTemplate, - new[] - { - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CabinetTemplate), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CompressionLevel), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.DiskPrompt), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.VolumeLabel), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), - }, - typeof(WixMediaTemplateSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixMediaTemplateSymbolFields - { - CabinetTemplate, - CompressionLevel, - DiskPrompt, - VolumeLabel, - MaximumUncompressedMediaSize, - MaximumCabinetSizeForLargeFileSplitting, - } - - public class WixMediaTemplateSymbol : IntermediateSymbol - { - public WixMediaTemplateSymbol() : base(SymbolDefinitions.WixMediaTemplate, null, null) - { - } - - public WixMediaTemplateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMediaTemplate, sourceLineNumber, id) - { - } - - public IntermediateField this[WixMediaTemplateSymbolFields index] => this.Fields[(int)index]; - - public string CabinetTemplate - { - get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.CabinetTemplate]; - set => this.Set((int)WixMediaTemplateSymbolFields.CabinetTemplate, value); - } - - public CompressionLevel? CompressionLevel - { - get => (CompressionLevel?)this.Fields[(int)WixMediaTemplateSymbolFields.CompressionLevel].AsNullableNumber(); - set => this.Set((int)WixMediaTemplateSymbolFields.CompressionLevel, (int?)value); - } - - public string DiskPrompt - { - get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.DiskPrompt]; - set => this.Set((int)WixMediaTemplateSymbolFields.DiskPrompt, value); - } - - public string VolumeLabel - { - get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.VolumeLabel]; - set => this.Set((int)WixMediaTemplateSymbolFields.VolumeLabel, value); - } - - public int? MaximumUncompressedMediaSize - { - get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize]; - set => this.Set((int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize, value); - } - - public int? MaximumCabinetSizeForLargeFileSplitting - { - get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting]; - set => this.Set((int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixMergeSymbol.cs b/src/WixToolset.Data/Symbols/WixMergeSymbol.cs deleted file mode 100644 index d066fa8e..00000000 --- a/src/WixToolset.Data/Symbols/WixMergeSymbol.cs +++ /dev/null @@ -1,92 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixMerge = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixMerge, - new[] - { - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.Language), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DirectoryRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.SourceFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FileAttributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.ConfigurationData), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FeatureRef), IntermediateFieldType.String), - }, - typeof(WixMergeSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixMergeSymbolFields - { - Language, - DirectoryRef, - SourceFile, - DiskId, - FileAttributes, - ConfigurationData, - FeatureRef, - } - - public class WixMergeSymbol : IntermediateSymbol - { - public WixMergeSymbol() : base(SymbolDefinitions.WixMerge, null, null) - { - } - - public WixMergeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMerge, sourceLineNumber, id) - { - } - - public IntermediateField this[WixMergeSymbolFields index] => this.Fields[(int)index]; - - public int Language - { - get => (int)this.Fields[(int)WixMergeSymbolFields.Language]; - set => this.Set((int)WixMergeSymbolFields.Language, value); - } - - public string DirectoryRef - { - get => (string)this.Fields[(int)WixMergeSymbolFields.DirectoryRef]; - set => this.Set((int)WixMergeSymbolFields.DirectoryRef, value); - } - - public string SourceFile - { - get => (string)this.Fields[(int)WixMergeSymbolFields.SourceFile]; - set => this.Set((int)WixMergeSymbolFields.SourceFile, value); - } - - public int DiskId - { - get => (int)this.Fields[(int)WixMergeSymbolFields.DiskId]; - set => this.Set((int)WixMergeSymbolFields.DiskId, value); - } - - public FileSymbolAttributes FileAttributes - { - get => (FileSymbolAttributes)this.Fields[(int)WixMergeSymbolFields.FileAttributes].AsNumber(); - set => this.Set((int)WixMergeSymbolFields.FileAttributes, (int)value); - } - - public string ConfigurationData - { - get => (string)this.Fields[(int)WixMergeSymbolFields.ConfigurationData]; - set => this.Set((int)WixMergeSymbolFields.ConfigurationData, value); - } - - public string FeatureRef - { - get => (string)this.Fields[(int)WixMergeSymbolFields.FeatureRef]; - set => this.Set((int)WixMergeSymbolFields.FeatureRef, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixModuleSymbol.cs b/src/WixToolset.Data/Symbols/WixModuleSymbol.cs deleted file mode 100644 index fbb16764..00000000 --- a/src/WixToolset.Data/Symbols/WixModuleSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixModule = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixModule, - new[] - { - new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.ModuleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Codepage), IntermediateFieldType.String), - }, - typeof(WixModuleSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixModuleSymbolFields - { - ModuleId, - Language, - Version, - Codepage, - } - - public class WixModuleSymbol : IntermediateSymbol - { - public WixModuleSymbol() : base(SymbolDefinitions.WixModule, null, null) - { - } - - public WixModuleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixModule, sourceLineNumber, id) - { - } - - public IntermediateField this[WixModuleSymbolFields index] => this.Fields[(int)index]; - - public string ModuleId - { - get => (string)this.Fields[(int)WixModuleSymbolFields.ModuleId]; - set => this.Set((int)WixModuleSymbolFields.ModuleId, value); - } - - public string Language - { - get => (string)this.Fields[(int)WixModuleSymbolFields.Language]; - set => this.Set((int)WixModuleSymbolFields.Language, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixModuleSymbolFields.Version]; - set => this.Set((int)WixModuleSymbolFields.Version, value); - } - - public string Codepage - { - get => (string)this.Fields[(int)WixModuleSymbolFields.Codepage]; - set => this.Set((int)WixModuleSymbolFields.Codepage, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixOrderingSymbol.cs b/src/WixToolset.Data/Symbols/WixOrderingSymbol.cs deleted file mode 100644 index 5e6dc980..00000000 --- a/src/WixToolset.Data/Symbols/WixOrderingSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixOrdering = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixOrdering, - new[] - { - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemIdRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnType), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnIdRef), IntermediateFieldType.String), - }, - typeof(WixOrderingSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixOrderingSymbolFields - { - ItemType, - ItemIdRef, - DependsOnType, - DependsOnIdRef, - } - - public class WixOrderingSymbol : IntermediateSymbol - { - public WixOrderingSymbol() : base(SymbolDefinitions.WixOrdering, null, null) - { - } - - public WixOrderingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixOrdering, sourceLineNumber, id) - { - } - - public IntermediateField this[WixOrderingSymbolFields index] => this.Fields[(int)index]; - - public ComplexReferenceChildType ItemType - { - get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.ItemType].AsNumber(); - set => this.Set((int)WixOrderingSymbolFields.ItemType, (int)value); - } - - public string ItemIdRef - { - get => (string)this.Fields[(int)WixOrderingSymbolFields.ItemIdRef]; - set => this.Set((int)WixOrderingSymbolFields.ItemIdRef, value); - } - - public ComplexReferenceChildType DependsOnType - { - get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.DependsOnType].AsNumber(); - set => this.Set((int)WixOrderingSymbolFields.DependsOnType, (int)value); - } - - public string DependsOnIdRef - { - get => (string)this.Fields[(int)WixOrderingSymbolFields.DependsOnIdRef]; - set => this.Set((int)WixOrderingSymbolFields.DependsOnIdRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixPackageSymbol.cs deleted file mode 100644 index e1720033..00000000 --- a/src/WixToolset.Data/Symbols/WixPackageSymbol.cs +++ /dev/null @@ -1,111 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPackage = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPackage, - new[] - { - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.PackageId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Language), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Version), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Attributes), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Codepage), IntermediateFieldType.String), - }, - typeof(WixPackageSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixPackageSymbolFields - { - PackageId, - UpgradeCode, - Name, - Language, - Version, - Manufacturer, - Attributes, - Codepage, - } - - [Flags] - public enum WixPackageAttributes - { - None = 0x0, - PerMachine = 0x1, - } - - public class WixPackageSymbol : IntermediateSymbol - { - public WixPackageSymbol() : base(SymbolDefinitions.WixPackage, null, null) - { - } - - public WixPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPackage, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPackageSymbolFields index] => this.Fields[(int)index]; - - public string PackageId - { - get => (string)this.Fields[(int)WixPackageSymbolFields.PackageId]; - set => this.Set((int)WixPackageSymbolFields.PackageId, value); - } - - public string UpgradeCode - { - get => (string)this.Fields[(int)WixPackageSymbolFields.UpgradeCode]; - set => this.Set((int)WixPackageSymbolFields.UpgradeCode, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixPackageSymbolFields.Name]; - set => this.Set((int)WixPackageSymbolFields.Name, value); - } - - public string Language - { - get => (string)this.Fields[(int)WixPackageSymbolFields.Language]; - set => this.Set((int)WixPackageSymbolFields.Language, value); - } - - public string Version - { - get => (string)this.Fields[(int)WixPackageSymbolFields.Version]; - set => this.Set((int)WixPackageSymbolFields.Version, value); - } - - public string Manufacturer - { - get => (string)this.Fields[(int)WixPackageSymbolFields.Manufacturer]; - set => this.Set((int)WixPackageSymbolFields.Manufacturer, value); - } - - public WixPackageAttributes Attributes - { - get => (WixPackageAttributes)this.Fields[(int)WixPackageSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixPackageSymbolFields.Attributes, (int)value); - } - - public string Codepage - { - get => (string)this.Fields[(int)WixPackageSymbolFields.Codepage]; - set => this.Set((int)WixPackageSymbolFields.Codepage, value); - } - - public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine; - } -} diff --git a/src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs deleted file mode 100644 index d7295424..00000000 --- a/src/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchBaseline = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchBaseline, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.DiskId), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.ValidationFlags), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.BaselineFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.UpdateFile), IntermediateFieldType.Path), - new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.TransformFile), IntermediateFieldType.Path), - }, - typeof(WixPatchBaselineSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchBaselineSymbolFields - { - DiskId, - ValidationFlags, - BaselineFile, - UpdateFile, - TransformFile, - } - - public class WixPatchBaselineSymbol : IntermediateSymbol - { - public WixPatchBaselineSymbol() : base(SymbolDefinitions.WixPatchBaseline, null, null) - { - } - - public WixPatchBaselineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchBaseline, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchBaselineSymbolFields index] => this.Fields[(int)index]; - - public int DiskId - { - get => (int)this.Fields[(int)WixPatchBaselineSymbolFields.DiskId]; - set => this.Set((int)WixPatchBaselineSymbolFields.DiskId, value); - } - - public TransformFlags ValidationFlags - { - get => (TransformFlags)this.Fields[(int)WixPatchBaselineSymbolFields.ValidationFlags].AsNumber(); - set => this.Set((int)WixPatchBaselineSymbolFields.ValidationFlags, (int)value); - } - - public IntermediateFieldPathValue BaselineFile - { - get => this.Fields[(int)WixPatchBaselineSymbolFields.BaselineFile].AsPath(); - set => this.Set((int)WixPatchBaselineSymbolFields.BaselineFile, value); - } - - public IntermediateFieldPathValue UpdateFile - { - get => this.Fields[(int)WixPatchBaselineSymbolFields.UpdateFile].AsPath(); - set => this.Set((int)WixPatchBaselineSymbolFields.UpdateFile, value); - } - - public IntermediateFieldPathValue TransformFile - { - get => this.Fields[(int)WixPatchBaselineSymbolFields.TransformFile].AsPath(); - set => this.Set((int)WixPatchBaselineSymbolFields.TransformFile, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs deleted file mode 100644 index 3ab34f1f..00000000 --- a/src/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchFamilyGroup = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchFamilyGroup, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup), IntermediateFieldType.String), - }, - typeof(WixPatchFamilyGroupSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchFamilyGroupSymbolFields - { - WixPatchFamilyGroup, - } - - public class WixPatchFamilyGroupSymbol : IntermediateSymbol - { - public WixPatchFamilyGroupSymbol() : base(SymbolDefinitions.WixPatchFamilyGroup, null, null) - { - } - - public WixPatchFamilyGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchFamilyGroupSymbolFields index] => this.Fields[(int)index]; - - public string WixPatchFamilyGroup - { - get => (string)this.Fields[(int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup]; - set => this.Set((int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs deleted file mode 100644 index 66257d84..00000000 --- a/src/WixToolset.Data/Symbols/WixPatchRefSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchRef = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchRef, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.PrimaryKeys), IntermediateFieldType.String), - }, - typeof(WixPatchRefSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchRefSymbolFields - { - Table, - PrimaryKeys, - } - - public class WixPatchRefSymbol : IntermediateSymbol - { - public WixPatchRefSymbol() : base(SymbolDefinitions.WixPatchRef, null, null) - { - } - - public WixPatchRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchRef, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchRefSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)WixPatchRefSymbolFields.Table]; - set => this.Set((int)WixPatchRefSymbolFields.Table, value); - } - - public string PrimaryKeys - { - get => (string)this.Fields[(int)WixPatchRefSymbolFields.PrimaryKeys]; - set => this.Set((int)WixPatchRefSymbolFields.PrimaryKeys, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchSymbol.cs deleted file mode 100644 index 3f1f20bb..00000000 --- a/src/WixToolset.Data/Symbols/WixPatchSymbol.cs +++ /dev/null @@ -1,98 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatch, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ClientPatchId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.Codepage), IntermediateFieldType.String), - }, - typeof(WixPatchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixPatchSymbolFields - { - ClientPatchId, - OptimizePatchSizeForLargeFiles, - ApiPatchingSymbolFlags, - Codepage, - } - - /// - /// The following flags are used with PATCH_OPTION_DATA SymbolOptionFlags: - /// - [Flags] - [CLSCompliant(false)] - public enum PatchSymbolFlags : uint - { - /// - /// Don't use imagehlp.dll - /// - PatchSymbolNoImagehlp = 0x00000001, - - /// - /// Don't fail patch due to imagehlp failures. - /// - PatchSymbolNoFailures = 0x00000002, - - /// - /// After matching decorated symbols, try to match remaining by undecorated names. - /// - PatchSymbolUndecoratedToo = 0x00000004, - - /// - /// (used internally) - /// - PatchSymbolReserved = 0x80000000, - } - - public class WixPatchSymbol : IntermediateSymbol - { - public WixPatchSymbol() : base(SymbolDefinitions.WixPatchId, null, null) - { - } - - public WixPatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchSymbolFields index] => this.Fields[(int)index]; - - public string ClientPatchId - { - get => (string)this.Fields[(int)WixPatchSymbolFields.ClientPatchId]; - set => this.Set((int)WixPatchSymbolFields.ClientPatchId, value); - } - - public bool? OptimizePatchSizeForLargeFiles - { - get => (bool?)this.Fields[(int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles]; - set => this.Set((int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles, value); - } - - public int? ApiPatchingSymbolFlags - { - get => (int?)this.Fields[(int)WixPatchSymbolFields.ApiPatchingSymbolFlags]; - set => this.Set((int)WixPatchSymbolFields.ApiPatchingSymbolFlags, value); - } - - public string Codepage - { - get => (string)this.Fields[(int)WixPatchSymbolFields.Codepage]; - set => this.Set((int)WixPatchSymbolFields.Codepage, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs b/src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs deleted file mode 100644 index e8c01c26..00000000 --- a/src/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixPatchTarget = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixPatchTarget, - new[] - { - new IntermediateFieldDefinition(nameof(WixPatchTargetSymbolFields.ProductCode), IntermediateFieldType.String), - }, - typeof(WixPatchTargetSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPatchTargetSymbolFields - { - ProductCode, - } - - public class WixPatchTargetSymbol : IntermediateSymbol - { - public WixPatchTargetSymbol() : base(SymbolDefinitions.WixPatchTarget, null, null) - { - } - - public WixPatchTargetSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchTarget, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPatchTargetSymbolFields index] => this.Fields[(int)index]; - - public string ProductCode - { - get => (string)this.Fields[(int)WixPatchTargetSymbolFields.ProductCode]; - set => this.Set((int)WixPatchTargetSymbolFields.ProductCode, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs deleted file mode 100644 index f8a17b64..00000000 --- a/src/WixToolset.Data/Symbols/WixProductSearchSymbol.cs +++ /dev/null @@ -1,64 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixProductSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixProductSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Guid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixProductSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixProductSearchSymbolFields - { - Guid, - Attributes, - } - - [Flags] - public enum WixProductSearchAttributes - { - Version = 0x1, - Language = 0x2, - State = 0x4, - Assignment = 0x8, - UpgradeCode = 0x10, - } - - public class WixProductSearchSymbol : IntermediateSymbol - { - public WixProductSearchSymbol() : base(SymbolDefinitions.WixProductSearch, null, null) - { - } - - public WixProductSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixProductSearchSymbolFields index] => this.Fields[(int)index]; - - public string Guid - { - get => (string)this.Fields[(int)WixProductSearchSymbolFields.Guid]; - set => this.Set((int)WixProductSearchSymbolFields.Guid, value); - } - - public WixProductSearchAttributes Attributes - { - get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixProductSearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixProductTagSymbol.cs b/src/WixToolset.Data/Symbols/WixProductTagSymbol.cs deleted file mode 100644 index a2f1ed11..00000000 --- a/src/WixToolset.Data/Symbols/WixProductTagSymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixProductTag = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixProductTag, - new[] - { - new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.FileRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Regid), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Attributes), IntermediateFieldType.Number) - }, - typeof(WixProductTagSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixProductTagSymbolFields - { - FileRef, - Regid, - Name, - Attributes - } - - public class WixProductTagSymbol : IntermediateSymbol - { - public WixProductTagSymbol() : base(SymbolDefinitions.WixProductTag, null, null) - { - } - - public WixProductTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductTag, sourceLineNumber, id) - { - } - - public IntermediateField this[WixProductTagSymbolFields index] => this.Fields[(int)index]; - - public string FileRef - { - get => this.Fields[(int)WixProductTagSymbolFields.FileRef].AsString(); - set => this.Set((int)WixProductTagSymbolFields.FileRef, value); - } - - public string Regid - { - get => this.Fields[(int)WixProductTagSymbolFields.Regid].AsString(); - set => this.Set((int)WixProductTagSymbolFields.Regid, value); - } - - public string Name - { - get => this.Fields[(int)WixProductTagSymbolFields.Name].AsString(); - set => this.Set((int)WixProductTagSymbolFields.Name, value); - } - - public int Attributes - { - get => this.Fields[(int)WixProductTagSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixProductTagSymbolFields.Attributes, value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixPropertySymbol.cs b/src/WixToolset.Data/Symbols/WixPropertySymbol.cs deleted file mode 100644 index 17cf59ce..00000000 --- a/src/WixToolset.Data/Symbols/WixPropertySymbol.cs +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixProperty = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixProperty, - new[] - { - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.PropertyRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Admin), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Hidden), IntermediateFieldType.Bool), - new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Secure), IntermediateFieldType.Bool), - }, - typeof(WixPropertySymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixPropertySymbolFields - { - PropertyRef, - Admin, - Hidden, - Secure, - } - - public class WixPropertySymbol : IntermediateSymbol - { - public WixPropertySymbol() : base(SymbolDefinitions.WixProperty, null, null) - { - } - - public WixPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProperty, sourceLineNumber, id) - { - } - - public IntermediateField this[WixPropertySymbolFields index] => this.Fields[(int)index]; - - public string PropertyRef - { - get => (string)this.Fields[(int)WixPropertySymbolFields.PropertyRef]; - set => this.Set((int)WixPropertySymbolFields.PropertyRef, value); - } - - public bool Admin - { - get => (bool)this.Fields[(int)WixPropertySymbolFields.Admin]; - set => this.Set((int)WixPropertySymbolFields.Admin, value); - } - - public bool Hidden - { - get => (bool)this.Fields[(int)WixPropertySymbolFields.Hidden]; - set => this.Set((int)WixPropertySymbolFields.Hidden, value); - } - - public bool Secure - { - get => (bool)this.Fields[(int)WixPropertySymbolFields.Secure]; - set => this.Set((int)WixPropertySymbolFields.Secure, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs b/src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs deleted file mode 100644 index dffa8410..00000000 --- a/src/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs +++ /dev/null @@ -1,81 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixRegistrySearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixRegistrySearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Root), IntermediateFieldType.Number), - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Key), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixRegistrySearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixRegistrySearchSymbolFields - { - Root, - Key, - Value, - Attributes, - } - - [Flags] - public enum WixRegistrySearchAttributes - { - Raw = 0x01, - Compatible = 0x02, - ExpandEnvironmentVariables = 0x04, - WantValue = 0x08, - WantExists = 0x10, - Win64 = 0x20, - } - - public class WixRegistrySearchSymbol : IntermediateSymbol - { - public WixRegistrySearchSymbol() : base(SymbolDefinitions.WixRegistrySearch, null, null) - { - } - - public WixRegistrySearchSymbol(SourceLineNumber sourceLineNumber , Identifier id = null) : base(SymbolDefinitions.WixRegistrySearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixRegistrySearchSymbolFields index] => this.Fields[(int)index]; - - public RegistryRootType Root - { - get => (RegistryRootType)this.Fields[(int)WixRegistrySearchSymbolFields.Root].AsNumber(); - set => this.Set((int)WixRegistrySearchSymbolFields.Root, (int)value); - } - - public string Key - { - get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Key]; - set => this.Set((int)WixRegistrySearchSymbolFields.Key, value); - } - - public string Value - { - get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Value]; - set => this.Set((int)WixRegistrySearchSymbolFields.Value, value); - } - - public WixRegistrySearchAttributes Attributes - { - get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchSymbolFields.Attributes].AsNumber(); - set => this.Set((int)WixRegistrySearchSymbolFields.Attributes, (int)value); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs b/src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs deleted file mode 100644 index dc544e29..00000000 --- a/src/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixRelatedBundle = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixRelatedBundle, - new[] - { - new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.BundleId), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.Action), IntermediateFieldType.Number), - }, - typeof(WixRelatedBundleSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixRelatedBundleSymbolFields - { - BundleId, - Action, - } - - public enum RelatedBundleActionType - { - Detect, - Upgrade, - Addon, - Patch - } - - public class WixRelatedBundleSymbol : IntermediateSymbol - { - public WixRelatedBundleSymbol() : base(SymbolDefinitions.WixRelatedBundle, null, null) - { - } - - public WixRelatedBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixRelatedBundle, sourceLineNumber, id) - { - } - - public IntermediateField this[WixRelatedBundleSymbolFields index] => this.Fields[(int)index]; - - public string BundleId - { - get => (string)this.Fields[(int)WixRelatedBundleSymbolFields.BundleId]; - set => this.Set((int)WixRelatedBundleSymbolFields.BundleId, value); - } - - public RelatedBundleActionType Action - { - get => (RelatedBundleActionType)this.Fields[(int)WixRelatedBundleSymbolFields.Action].AsNumber(); - set => this.Set((int)WixRelatedBundleSymbolFields.Action, (int)value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs b/src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs deleted file mode 100644 index 6b47833a..00000000 --- a/src/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSearchRelation = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSearchRelation, - new[] - { - new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.ParentSearchRef), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.Attributes), IntermediateFieldType.Number), - }, - typeof(WixSearchRelationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixSearchRelationSymbolFields - { - ParentSearchRef, - Attributes, - } - - public class WixSearchRelationSymbol : IntermediateSymbol - { - public WixSearchRelationSymbol() : base(SymbolDefinitions.WixSearchRelation, null, null) - { - } - - public WixSearchRelationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearchRelation, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSearchRelationSymbolFields index] => this.Fields[(int)index]; - - public string ParentSearchRef - { - get => (string)this.Fields[(int)WixSearchRelationSymbolFields.ParentSearchRef]; - set => this.Set((int)WixSearchRelationSymbolFields.ParentSearchRef, value); - } - - public int Attributes - { - get => (int)this.Fields[(int)WixSearchRelationSymbolFields.Attributes]; - set => this.Set((int)WixSearchRelationSymbolFields.Attributes, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSearchSymbol.cs b/src/WixToolset.Data/Symbols/WixSearchSymbol.cs deleted file mode 100644 index 2d6a927c..00000000 --- a/src/WixToolset.Data/Symbols/WixSearchSymbol.cs +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSearch = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSearch, - new[] - { - new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Variable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Condition), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.BundleExtensionRef), IntermediateFieldType.String), - }, - typeof(WixSearchSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixSearchSymbolFields - { - Variable, - Condition, - BundleExtensionRef, - } - - public class WixSearchSymbol : IntermediateSymbol - { - public WixSearchSymbol() : base(SymbolDefinitions.WixSearch, null, null) - { - } - - public WixSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearch, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSearchSymbolFields index] => this.Fields[(int)index]; - - public string Variable - { - get => (string)this.Fields[(int)WixSearchSymbolFields.Variable]; - set => this.Set((int)WixSearchSymbolFields.Variable, value); - } - - public string Condition - { - get => (string)this.Fields[(int)WixSearchSymbolFields.Condition]; - set => this.Set((int)WixSearchSymbolFields.Condition, value); - } - - public string BundleExtensionRef - { - get => (string)this.Fields[(int)WixSearchSymbolFields.BundleExtensionRef]; - set => this.Set((int)WixSearchSymbolFields.BundleExtensionRef, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs deleted file mode 100644 index 05fdf561..00000000 --- a/src/WixToolset.Data/Symbols/WixSetVariableSymbol.cs +++ /dev/null @@ -1,54 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSetVariable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSetVariable, - new[] - { - new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Type), IntermediateFieldType.String), - }, - typeof(WixSetVariableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixSetVariableSymbolFields - { - Value, - Type, - } - - public class WixSetVariableSymbol : IntermediateSymbol - { - public WixSetVariableSymbol() : base(SymbolDefinitions.WixSetVariable, null, null) - { - } - - public WixSetVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSetVariable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSetVariableSymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)WixSetVariableSymbolFields.Value]; - set => this.Set((int)WixSetVariableSymbolFields.Value, value); - } - - public WixBundleVariableType Type - { - get => Enum.TryParse((string)this.Fields[(int)WixSetVariableSymbolFields.Type], true, out WixBundleVariableType value) ? value : WixBundleVariableType.Unknown; - set => this.Set((int)WixSetVariableSymbolFields.Type, value.ToString().ToLowerInvariant()); - } - } -} diff --git a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs deleted file mode 100644 index 86e410ff..00000000 --- a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs +++ /dev/null @@ -1,62 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSimpleReference = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSimpleReference, - new[] - { - new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.Table), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.PrimaryKeys), IntermediateFieldType.String), - }, - typeof(WixSimpleReferenceSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - using System.Diagnostics; - - public enum WixSimpleReferenceSymbolFields - { - Table, - PrimaryKeys, - } - - [DebuggerDisplay("Ref {SymbolicName,nq}")] - public class WixSimpleReferenceSymbol : IntermediateSymbol - { - public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) - { - } - - public WixSimpleReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSimpleReference, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSimpleReferenceSymbolFields index] => this.Fields[(int)index]; - - public string Table - { - get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.Table]; - set => this.Set((int)WixSimpleReferenceSymbolFields.Table, value); - } - - public string PrimaryKeys - { - get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.PrimaryKeys]; - set => this.Set((int)WixSimpleReferenceSymbolFields.PrimaryKeys, value); - } - - /// - /// Gets the symbolic name. - /// - /// Symbolic name. - public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs b/src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs deleted file mode 100644 index f99246f0..00000000 --- a/src/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs +++ /dev/null @@ -1,54 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSuppressAction = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSuppressAction, - new[] - { - new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.SequenceTable), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.Action), IntermediateFieldType.String), - }, - typeof(WixSuppressActionSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - using System; - - public enum WixSuppressActionSymbolFields - { - SequenceTable, - Action, - } - - public class WixSuppressActionSymbol : IntermediateSymbol - { - public WixSuppressActionSymbol() : base(SymbolDefinitions.WixSuppressAction, null, null) - { - } - - public WixSuppressActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressAction, sourceLineNumber, id) - { - } - - public IntermediateField this[WixSuppressActionSymbolFields index] => this.Fields[(int)index]; - - public SequenceTable SequenceTable - { - get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionSymbolFields.SequenceTable]); - set => this.Set((int)WixSuppressActionSymbolFields.SequenceTable, value.ToString()); - } - - public string Action - { - get => (string)this.Fields[(int)WixSuppressActionSymbolFields.Action]; - set => this.Set((int)WixSuppressActionSymbolFields.Action, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs b/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs deleted file mode 100644 index dca86820..00000000 --- a/src/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixSuppressModularization = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixSuppressModularization, - new IntermediateFieldDefinition[] - { - new IntermediateFieldDefinition(nameof(WixSuppressModularizationSymbolFields.SuppressIdentifier), IntermediateFieldType.String), - }, - typeof(WixSuppressModularizationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixSuppressModularizationSymbolFields - { - SuppressIdentifier, - } - - public class WixSuppressModularizationSymbol : IntermediateSymbol - { - public WixSuppressModularizationSymbol() : base(SymbolDefinitions.WixSuppressModularization, null, null) - { - } - - public WixSuppressModularizationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressModularization, sourceLineNumber, id) - { - } - - public string SuppressIdentifier - { - get => (string)this.Fields[(int)WixSuppressModularizationSymbolFields.SuppressIdentifier]; - set => this.Set((int)WixSuppressModularizationSymbolFields.SuppressIdentifier, value); - } - - public IntermediateField this[WixSuppressModularizationSymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Symbols/WixUISymbol.cs b/src/WixToolset.Data/Symbols/WixUISymbol.cs deleted file mode 100644 index f1254952..00000000 --- a/src/WixToolset.Data/Symbols/WixUISymbol.cs +++ /dev/null @@ -1,36 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixUI = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixUI, - new IntermediateFieldDefinition[] - { - }, - typeof(WixUISymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixUISymbolFields - { - } - - public class WixUISymbol : IntermediateSymbol - { - public WixUISymbol() : base(SymbolDefinitions.WixUI, null, null) - { - } - - public WixUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUI, sourceLineNumber, id) - { - } - - public IntermediateField this[WixUISymbolFields index] => this.Fields[(int)index]; - } -} diff --git a/src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs b/src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs deleted file mode 100644 index 1320dfd5..00000000 --- a/src/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs +++ /dev/null @@ -1,76 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixUpdateRegistration = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixUpdateRegistration, - new[] - { - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Manufacturer), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Department), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.ProductFamily), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Name), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Classification), IntermediateFieldType.String), - }, - typeof(WixUpdateRegistrationSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixUpdateRegistrationSymbolFields - { - Manufacturer, - Department, - ProductFamily, - Name, - Classification, - } - - public class WixUpdateRegistrationSymbol : IntermediateSymbol - { - public WixUpdateRegistrationSymbol() : base(SymbolDefinitions.WixUpdateRegistration, null, null) - { - } - - public WixUpdateRegistrationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUpdateRegistration, sourceLineNumber, id) - { - } - - public IntermediateField this[WixUpdateRegistrationSymbolFields index] => this.Fields[(int)index]; - - public string Manufacturer - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Manufacturer]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Manufacturer, value); - } - - public string Department - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Department]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Department, value); - } - - public string ProductFamily - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.ProductFamily]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.ProductFamily, value); - } - - public string Name - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Name]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Name, value); - } - - public string Classification - { - get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Classification]; - set => this.Set((int)WixUpdateRegistrationSymbolFields.Classification, value); - } - } -} \ No newline at end of file diff --git a/src/WixToolset.Data/Symbols/WixVariableSymbol.cs b/src/WixToolset.Data/Symbols/WixVariableSymbol.cs deleted file mode 100644 index 0a56dcbf..00000000 --- a/src/WixToolset.Data/Symbols/WixVariableSymbol.cs +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using WixToolset.Data.Symbols; - - public static partial class SymbolDefinitions - { - public static readonly IntermediateSymbolDefinition WixVariable = new IntermediateSymbolDefinition( - SymbolDefinitionType.WixVariable, - new[] - { - new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Value), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Overridable), IntermediateFieldType.Bool), - }, - typeof(WixVariableSymbol)); - } -} - -namespace WixToolset.Data.Symbols -{ - public enum WixVariableSymbolFields - { - Value, - Overridable, - } - - public class WixVariableSymbol : IntermediateSymbol - { - public WixVariableSymbol() : base(SymbolDefinitions.WixVariable, null, null) - { - } - - public WixVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixVariable, sourceLineNumber, id) - { - } - - public IntermediateField this[WixVariableSymbolFields index] => this.Fields[(int)index]; - - public string Value - { - get => (string)this.Fields[(int)WixVariableSymbolFields.Value]; - set => this.Set((int)WixVariableSymbolFields.Value, value); - } - - public bool Overridable - { - get => (bool)this.Fields[(int)WixVariableSymbolFields.Overridable]; - set => this.Set((int)WixVariableSymbolFields.Overridable, value); - } - } -} diff --git a/src/WixToolset.Data/VerboseMessages.cs b/src/WixToolset.Data/VerboseMessages.cs deleted file mode 100644 index 8342aa5e..00000000 --- a/src/WixToolset.Data/VerboseMessages.cs +++ /dev/null @@ -1,234 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Resources; - - public static class VerboseMessages - { - public static Message BinderTempDirLocatedAt(string directory) - { - return Message(null, Ids.BinderTempDirLocatedAt, "Binder temporary directory located at '{0}'.", directory); - } - - public static Message BundleGuid(string bundleGuid) - { - return Message(null, Ids.BundleGuid, "Assigning bundle GUID '{0}'.", bundleGuid); - } - - public static Message CabFile(string fileId, string filePath) - { - return Message(null, Ids.CabFile, "Cabbing file {0} from '{1}'.", fileId, filePath); - } - - public static Message CabinetsSplitInParallel() - { - return Message(null, Ids.CabinetsSplitInParallel, "Multiple Cabinets with Large Files are splitting simultaneously. This current cabinet is waiting on a shared resource and splitting will resume when the other splitting has completed."); - } - - public static Message ConnectingMergeModule(string modulePath, string feature) - { - return Message(null, Ids.ConnectingMergeModule, "Connecting merge module '{0}' to feature '{1}'.", modulePath, feature); - } - - public static Message CopyFile(string sourceFile, string destinationFile) - { - return Message(null, Ids.CopyFile, "Copying file '{0}' to '{1}'.", sourceFile, destinationFile); - } - - public static Message CopyingExternalPayload(string payload, string outputDirectory) - { - return Message(null, Ids.CopyingExternalPayload, "Copying external payload from '{0}' to '{1}'.", payload, outputDirectory); - } - - public static Message CreateCabinet(string cabinet) - { - return Message(null, Ids.CreateCabinet, "Creating cabinet '{0}'.", cabinet); - } - - public static Message CreateDirectory(string directory) - { - return Message(null, Ids.CreateDirectory, "The directory '{0}' does not exist, creating it now.", directory); - } - - public static Message CreatingCabinetFiles() - { - return Message(null, Ids.CreatingCabinetFiles, "Creating cabinet files."); - } - - public static Message DecompilingTable(string tableName) - { - return Message(null, Ids.DecompilingTable, "Decompiling the {0} table.", tableName); - } - - public static Message EmbeddingContainer(string container, long size, string compression) - { - return Message(null, Ids.EmbeddingContainer, "Embedding container '{0}' ({1} bytes) with '{2}' compression.", container, size, compression); - } - - public static Message GeneratingBundle(string bundleFile, string stubFile) - { - return Message(null, Ids.GeneratingBundle, "Generating Burn bundle '{0}' from stub '{1}'.", bundleFile, stubFile); - } - - public static Message GeneratingDatabase() - { - return Message(null, Ids.GeneratingDatabase, "Generating database."); - } - - public static Message ImportBinaryStream(string streamSource) - { - return Message(null, Ids.ImportBinaryStream, "Importing binary stream from '{0}'.", streamSource); - } - - public static Message ImportIconStream(string streamSource) - { - return Message(null, Ids.ImportIconStream, "Importing icon stream from '{0}'.", streamSource); - } - - public static Message ImportingStreams() - { - return Message(null, Ids.ImportingStreams, "Importing streams."); - } - - public static Message LayingOutMedia() - { - return Message(null, Ids.LayingOutMedia, "Laying out media."); - } - - public static Message LoadingPayload(string payload) - { - return Message(null, Ids.LoadingPayload, "Loading payload '{0}' into container.", payload); - } - - public static Message MergingMergeModule(string modulePath) - { - return Message(null, Ids.MergingMergeModule, "Merging merge module '{0}'.", modulePath); - } - - public static Message MergingModules() - { - return Message(null, Ids.MergingModules, "Merging modules."); - } - - public static Message MoveFile(string sourceFile, string destinationFile) - { - return Message(null, Ids.MoveFile, "Moving file '{0}' to '{1}'.", sourceFile, destinationFile); - } - - public static Message OpeningMergeModule(string modulePath, Int16 language) - { - return Message(null, Ids.OpeningMergeModule, "Opening merge module '{0}' with language '{1}'.", modulePath, language); - } - - public static Message RemoveDestinationFile(string destinationFile) - { - return Message(null, Ids.RemoveDestinationFile, "The destination file '{0}' already exists, attempting to remove it.", destinationFile); - } - - public static Message ResequencingMergeModuleFiles() - { - return Message(null, Ids.ResequencingMergeModuleFiles, "Resequencing files from all merge modules."); - } - - public static Message ResolvingManifest(string manifestFile) - { - return Message(null, Ids.ResolvingManifest, "Generating resolved manifest '{0}'.", manifestFile); - } - - public static Message ReusingCabCache(SourceLineNumber sourceLineNumbers, string cabinetName, string source) - { - return Message(sourceLineNumbers, Ids.ReusingCabCache, "Reusing cabinet '{0}' from cabinet cache path: '{1}'.", cabinetName, source); - } - - public static Message SetCabbingThreadCount(string threads) - { - return Message(null, Ids.SetCabbingThreadCount, "There will be '{0}' threads used to produce CAB files.", threads); - } - - public static Message SwitchingToPerUserPackage(SourceLineNumber sourceLineNumbers, string path) - { - return Message(sourceLineNumbers, Ids.SwitchingToPerUserPackage, "Bundle switching from per-machine to per-user due to addition of per-user package '{0}'.", path); - } - - public static Message UpdatingFileInformation() - { - return Message(null, Ids.UpdatingFileInformation, "Updating file information."); - } - - public static Message ValidatedDatabase(long size) - { - return Message(null, Ids.ValidatedDatabase, "Validation complete: {0:N0}ms elapsed.", size); - } - - public static Message ValidatingDatabase() - { - return Message(null, Ids.ValidatingDatabase, "Validating database."); - } - - public static Message ValidationInfo(string ice, string message) - { - return Message(null, Ids.ValidationInfo, "{0}: {1}", ice, message); - } - - public static Message ValidationSerialized() - { - return Message(null, Ids.ValidationSerialized, "Multiple packages cannot reliably be validated simultaneously. This validation will resume when the other package being validated has completed."); - } - - public static Message ValidatorTempDirLocatedAt(string directory) - { - return Message(null, Ids.ValidatorTempDirLocatedAt, "Validator temporary directory located at '{0}'.", directory); - } - - private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) - { - return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, format, args); - } - - private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) - { - return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, resourceManager, resourceName, args); - } - - public enum Ids - { - ImportBinaryStream = 9000, - ImportIconStream = 9001, - CopyFile = 9002, - MoveFile = 9003, - CreateDirectory = 9004, - RemoveDestinationFile = 9005, - CabFile = 9006, - UpdatingFileInformation = 9007, - GeneratingDatabase = 9008, - MergingModules = 9009, - CreatingCabinetFiles = 9010, - ImportingStreams = 9011, - LayingOutMedia = 9012, - DecompilingTable = 9013, - ValidationInfo = 9014, - CreateCabinet = 9015, - ValidatingDatabase = 9016, - OpeningMergeModule = 9017, - MergingMergeModule = 9018, - ConnectingMergeModule = 9019, - ResequencingMergeModuleFiles = 9020, - BinderTempDirLocatedAt = 9021, - ValidatorTempDirLocatedAt = 9022, - GeneratingBundle = 9023, - ResolvingManifest = 9024, - LoadingPayload = 9025, - BundleGuid = 9026, - CopyingExternalPayload = 9027, - EmbeddingContainer = 9028, - SwitchingToPerUserPackage = 9029, - SetCabbingThreadCount = 9030, - ValidationSerialized = 9031, - ReusingCabCache = 9032, - CabinetsSplitInParallel = 9033, - ValidatedDatabase = 9034, - } - } -} diff --git a/src/WixToolset.Data/WarningMessages.cs b/src/WixToolset.Data/WarningMessages.cs deleted file mode 100644 index 78ed87af..00000000 --- a/src/WixToolset.Data/WarningMessages.cs +++ /dev/null @@ -1,816 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.Resources; - - public static class WarningMessages - { - public static Message AccessDeniedForDeletion(SourceLineNumber sourceLineNumbers, string tempFilesBasePath) - { - return Message(sourceLineNumbers, Ids.AccessDeniedForDeletion, "Access denied; cannot delete '{0}'.", tempFilesBasePath); - } - - public static Message AccessDeniedForSettingAttributes(SourceLineNumber sourceLineNumbers, string filePath) - { - return Message(sourceLineNumbers, Ids.AccessDeniedForSettingAttributes, "Access denied; cannot set attributes on '{0}'.", filePath); - } - - public static Message ActionSequenceCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2, int sequenceNumber) - { - return Message(sourceLineNumbers, Ids.ActionSequenceCollision, "The {0} table contains actions '{1}' and '{2}' which both have the same sequence number {3}. Please change the sequence number for one of these actions to avoid an ICE warning.", sequenceTableName, actionName1, actionName2, sequenceNumber); - } - - public static Message ActionSequenceCollision2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ActionSequenceCollision2, "The location of the action related to previous warning."); - } - - public static Message AllChangesIncludedInPatch(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.AllChangesIncludedInPatch, "All changes between the baseline and upgraded packages will be included in the patch except for any change to the ProductCode. The 'All' element is supported primarily for testing purposes and negates the benefits of patch families."); - } - - public static Message AmbiguousFileOrDirectoryName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.AmbiguousFileOrDirectoryName, "The {0}/@{1} attribute's value '{2}' is an ambiguous short name because it ends with a '~' character followed by a number. Under some circumstances, this name could resolve to more than one file or directory name and lead to unpredictable results (for example 'MICROS~1' may correspond to 'Microsoft Shared' or 'Microsoft Foo' or literally 'Micros~1').", elementName, attributeName, value); - } - - public static Message AttributeShouldContain(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string expectedContains, string otherAttributeName, string otherAttributeValue) - { - return Message(sourceLineNumbers, Ids.AttributeShouldContain, "The {0}/@{1} attribute value '{2}' should contain '{3}' when the {0}/@{4} attribute is set to '{5}'.", elementName, attributeName, attributeValue, expectedContains, otherAttributeName, otherAttributeValue); - } - - public static Message BackslashTerminateInlineDirectorySyntax(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.BackslashTerminateInlineDirectorySyntax, "Backslash terminate the {0}/@{1} attribute's inline directory value '{2}'. A backslash ensures a directory name will not be mistaken for a directory reference.", elementName, attributeName, value); - } - - public static Message BadColumnDataIgnored(SourceLineNumber sourceLineNumbers, string value, string tableName, string columnName) - { - return Message(sourceLineNumbers, Ids.BadColumnDataIgnored, "The value '{0}' in table '{1}', column '{2}' is invalid according to the column's validation information. The decompiled output includes a best-effort representation of this value.", value, tableName, columnName); - } - - public static Message CannotUpdateCabCache(SourceLineNumber sourceLineNumbers, string cabinetPath, string detail) - { - return Message(sourceLineNumbers, Ids.CannotUpdateCabCache, "Cannot update the timestamp of cached cabinet: '{0}'. If the timestamp is not updated, the build may rebuild more than is necessary. To fix the issue, ensure that the cabinet file is writable, error: {1}", cabinetPath, detail); - } - - public static Message ColumnsIncompatibleWithInstallerVersion(SourceLineNumber sourceLineNumbers, string tableName, int productInstallerVersion) - { - return Message(sourceLineNumbers, Ids.ColumnsIncompatibleWithInstallerVersion, "Table '{0}' uses columns that require a version of Windows Installer greater than specified in your package ('{1}').", tableName, productInstallerVersion); - } - - public static Message CopyFileFileIdUseless(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.CopyFileFileIdUseless, "Since the CopyFile/@FileId attribute was specified but none of the following attributes (DestinationName, DestinationDirectory, DestinationProperty) were specified, this authoring will not do anything."); - } - - public static Message DangerousTableInMergeModule(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.DangerousTableInMergeModule, "Merge modules should not contain the '{0}' table because all merge conflicts cannot avoided. However, this warning can be suppressed if all of the consumers of the Merge Module agree to not duplicate identifiers in the '{0}' table.", tableName); - } - - public static Message DecompiledStandardActionRelativelyScheduledInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.DecompiledStandardActionRelativelyScheduledInModule, "The {0} table contains a standard action '{1}' that does not have a sequence number specified. A value in the Sequence column is required for standard actions in a merge module. Remove the action from the decompiled authoring to have WiX automatically sequence it.", sequenceTableName, actionName); - } - - public static Message DecompilingAsCustomTable(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.DecompilingAsCustomTable, "The {0} table is being decompiled as a custom table.", tableName); - } - - public static Message DefaultLanguageUsedForUnversionedFile(SourceLineNumber sourceLineNumbers, string language, string fileId) - { - return Message(sourceLineNumbers, Ids.DefaultLanguageUsedForUnversionedFile, "The DefaultLanguage '{0}' was used for file '{1}' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning.", language, fileId); - } - - public static Message DefaultLanguageUsedForVersionedFile(SourceLineNumber sourceLineNumbers, string language, string fileId) - { - return Message(sourceLineNumbers, Ids.DefaultLanguageUsedForVersionedFile, "The DefaultLanguage '{0}' was used for file '{1}' which has no language. Specifying a language that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Either specify a value for DefaultLanguage or put the language in the version information resource to eliminate this warning.", language, fileId); - } - - public static Message DefaultVersionUsedForUnversionedFile(SourceLineNumber sourceLineNumbers, string version, string fileId) - { - return Message(sourceLineNumbers, Ids.DefaultVersionUsedForUnversionedFile, "The DefaultVersion '{0}' was used for file '{1}' which has no version. No entry for this file will be placed in the MsiFileHash table. For unversioned files, specifying a version that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Version the resource to eliminate this warning.", version, fileId); - } - - public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated.", elementName, attributeName); - } - - public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string newAttributeName) - { - return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated. Please use the {2} attribute instead.", elementName, attributeName, newAttributeName); - } - - public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string newAttributeName1, string newAttributeName2) - { - return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated. Please use the {2} or {3} attribute instead.", elementName, attributeName, newAttributeName1, newAttributeName2); - } - - public static Message DeprecatedAttributeValue(SourceLineNumber sourceLineNumbers, string attributeValue, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Remove the attribute.", attributeValue, elementName, attributeName); - } - - public static Message DeprecatedAttributeValue(SourceLineNumber sourceLineNumbers, string attributeValue, string elementName, string attributeName, string newAttributeValue) - { - return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Please use \"{3}\" instead.", attributeValue, elementName, attributeName, newAttributeValue); - } - - public static Message DeprecatedCommandLineSwitch(string oldSwitch) - { - return Message(null, Ids.DeprecatedCommandLineSwitch, "The command line switch '{0}' is deprecated.", oldSwitch); - } - - public static Message DeprecatedCommandLineSwitch(string oldSwitch, string newSwitch) - { - return Message(null, Ids.DeprecatedCommandLineSwitch, "The command line switch '{0}' is deprecated. Please use '{1}' instead.", oldSwitch, newSwitch); - } - - public static Message DeprecatedComponentGroupId(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.DeprecatedComponentGroupId, "The {0}/@Id attribute contains invalid characters for an identifier. Being able to use invalid identifier characters for a {0} identifier has been deprecated.", elementName); - } - - public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated.", elementName); - } - - public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName) - { - return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} element instead.", elementName, newElementName); - } - - public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName1, string newElementName2) - { - return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} or {2} element instead.", elementName, newElementName1, newElementName2); - } - - public static Message DeprecatedIgnoreModularizationElement(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.DeprecatedIgnoreModularizationElement, "The IgnoreModularization element has been deprecated. Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attribute instead."); - } - - public static Message DeprecatedLocalizationVariablePrefix(SourceLineNumber sourceLineNumbers, string variableId) - { - return Message(sourceLineNumbers, Ids.DeprecatedLocalizationVariablePrefix, "The localization variable $(loc.{0}) uses a deprecated prefix '$'. Please use the '!' prefix instead. Since the prefix '$' is also used by the preprocessor, it has been deprecated to avoid namespace collisions.", variableId); - } - - public static Message DeprecatedLongNameAttribute(SourceLineNumber sourceLineNumbers, string elementName, string longNameAttributeName, string nameAttributeName, string shortNameAttributeName) - { - return Message(sourceLineNumbers, Ids.DeprecatedLongNameAttribute, "The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute.", elementName, longNameAttributeName, nameAttributeName, shortNameAttributeName); - } - - public static Message DeprecatedPatchSequenceTargetAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.DeprecatedPatchSequenceTargetAttribute, "The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family.", elementName, attributeName); - } - - public static Message DeprecatedPreProcVariable(SourceLineNumber sourceLineNumbers, string oldName, string newName) - { - return Message(sourceLineNumbers, Ids.DeprecatedPreProcVariable, "The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead.", oldName, newName); - } - - public static Message DeprecatedQuestionMarksGuid(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.DeprecatedQuestionMarksGuid, "The {0}/@{1} attribute's value '????????-????-????-????-????????????' has been deprecated. Use '*' instead.", elementName, attributeName); - } - - public static Message DeprecatedRegistryElement(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.DeprecatedRegistryElement, "The Registry element has been deprecated. Please use one of the new elements which replaces its functionality: RegistryKey for creating registry keys, RegistryValue for writing registry values, RemoveRegistryKey for removing registry keys, and RemoveRegistryValue for removing registry values."); - } - - public static Message DeprecatedRegistryKeyActionAttribute(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.DeprecatedRegistryKeyActionAttribute, "The RegistryKey/@Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead."); - } - - public static Message DeprecatedTable(string tableName) - { - return Message(null, Ids.DeprecatedTable, "The {0} table is not supported by the WiX toolset because it has been deprecated by the Windows Installer team. Any information in this table will be left out of the decompiled output.", tableName); - } - - public static Message DeprecatedUpgradeProperty(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.DeprecatedUpgradeProperty, "Specifying a Property element as a child of an Upgrade element has been deprecated. Please specify this Property element as a child of a different element such as Product or Fragment."); - } - - public static Message DirectoryInUse(SourceLineNumber sourceLineNumbers, string filePath) - { - return Message(sourceLineNumbers, Ids.DirectoryInUse, "The directory '{0}' is in use and cannot be deleted.", filePath); - } - - public static Message DirectoryRedundantNames(SourceLineNumber sourceLineNumbers, string elementName, string shortNameAttributeName, string longNameAttributeName, string attributeValue) - { - return Message(sourceLineNumbers, Ids.DirectoryRedundantNames, "The {0} element's {1} and {2} values are both '{3}'. This is redundant; the {2} attribute should be removed.", elementName, shortNameAttributeName, longNameAttributeName, attributeValue); - } - - public static Message DirectoryRedundantNames(SourceLineNumber sourceLineNumbers, string elementName, string sourceNameAttributeName, string longSourceAttributeName) - { - return Message(sourceLineNumbers, Ids.DirectoryRedundantNames, "The {0} element's source and destination names are identical. This is redundant; the {1} and {2} attributes should be removed if present.", elementName, sourceNameAttributeName, longSourceAttributeName); - } - - public static Message DiscardedRollbackBoundary(SourceLineNumber sourceLineNumbers, string rollbackBoundaryId) - { - return Message(sourceLineNumbers, Ids.DiscardedRollbackBoundary, "The RollbackBoundary '{0}' was discarded because it was not followed by a package. Without a package the rollback boundary doesn't do anything. Verify that the RollbackBoundary element is not followed by another RollbackBoundary and that the element is not at the end of the chain.", rollbackBoundaryId); - } - - public static Message DiscouragedAllUsersValue(SourceLineNumber sourceLineNumbers, string path, string machineOrUser) - { - return Message(sourceLineNumbers, Ids.DiscouragedAllUsersValue, "Bundles require a package to be either per-machine or per-user. The MSI '{0}' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-{1} and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead.", path, machineOrUser); - } - - public static Message DetectConditionRecommended(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.DetectConditionRecommended, "The {0}/@DetectCondition attribute is recommended so the package is only installed when absent.", elementName); - } - - public static Message DownloadUrlNotSupportedForAttachedContainers(SourceLineNumber sourceLineNumbers, string containerId) - { - return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForAttachedContainers, "The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored.", containerId); - } - - public static Message DownloadUrlNotSupportedForBAPayloads(SourceLineNumber sourceLineNumbers, string payloadId) - { - return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForBAPayloads, "The BootstrapperApplication Payload '{0}' included a @DownloadUrl attribute. BootstrapperApplication Payloads cannot be downloaded so the download URL is being ignored.", payloadId); - } - - public static Message DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) - { - return Message(sourceLineNumbers, Ids.DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer and cannot be used when creating patches. It otherwise works as long as all components with the same GUID have mutually-exclusive conditions. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath); - } - - public static Message DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) - { - return Message(sourceLineNumbers, Ids.DuplicatePrimaryKey, "The primary key '{0}' is duplicated in table '{1}' and will be ignored. Please remove one of the entries or rename a part of the primary key to avoid the collision.", primaryKey, tableName); - } - - public static Message EmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.EmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. If you want the value to be null or empty, simply remove the entire attribute.", elementName, attributeName); - } - - public static Message EmptyCabinet(SourceLineNumber sourceLineNumbers, string cabinetName) - { - return Message(sourceLineNumbers, Ids.EmptyCabinet, "The cabinet '{0}' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it.", cabinetName); - } - - public static Message EmptyCabinet(SourceLineNumber sourceLineNumbers, string cabinetName, Boolean isPatch) - { - return Message(sourceLineNumbers, Ids.EmptyCabinet, "The cabinet '{0}' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet.", cabinetName, isPatch); - } - - public static Message ExpectedForeignRow(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, string columnName, string columnValue, string foreignTableName) - { - return Message(sourceLineNumbers, Ids.ExpectedForeignRow, "The {0} table contains a row with primary key(s) '{1}' whose {2} column contains a value, '{3}', which specifies a foreign key relationship with the {4} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output.", tableName, primaryKey, columnName, columnValue, foreignTableName); - } - - public static Message ExpectedForeignRow(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, string columnName1, string columnValue1, string columnName2, string columnValue2, string foreignTableName) - { - return Message(sourceLineNumbers, Ids.ExpectedForeignRow, "The {0} table contains a row with primary key(s) '{1}' whose {2} and {4} columns contain the values, '{3}' and '{5}', which specify a foreign key relationship with the {6} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output.", tableName, primaryKey, columnName1, columnValue1, columnName2, columnValue2, foreignTableName); - } - - public static Message ExperimentalBundlePlatform(string platform) - { - return Message(null, Ids.ExperimentalBundlePlatform, "The platform {0} is experimental for bundles. Use the x86 platform instead.", platform); - } - - public static Message ExternalCabsAreNotSigned(string databaseFile) - { - return Message(null, Ids.ExternalCabsAreNotSigned, "The installer database '{0}' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to run the insignia tool as part of your build.", databaseFile); - } - - public static Message FailedToDeleteTempDir(string directory) - { - return Message(null, Ids.FailedToDeleteTempDir, "Failed to delete temporary directory: {0}", directory); - } - - public static Message FileSearchFileNameIssue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) - { - return Message(sourceLineNumbers, Ids.FileSearchFileNameIssue, "The {0} element's {1} and {2} attributes were found. Due to a bug with the Windows Installer, only the Name or LongName attribute should be used. Use the Name attribute for 8.3 compliant file names and the LongName attribute for longer ones. When using only the LongName attribute, ICE03 should be ignored for the Signature table's FileName column.", elementName, attributeName1, attributeName2); - } - - public static Message GeneratedShortFileNameConflict(SourceLineNumber sourceLineNumbers, string shortFileName) - { - return Message(sourceLineNumbers, Ids.GeneratedShortFileNameConflict, "The short file name '{0}' was generated for multiple files that may be installed to the same directory. This could be due to conflicting long file names specified by the File/@Name attribute. If that is the case, please resolve the conflict in those attributes. Otherwise, please manually set the File/@ShortName attribute on the conflicting row to fix the collision. If one of the colliding files was added via a patch, that short file name should be specified manually to avoid disturbing the original short file name.", shortFileName); - } - - public static Message GeneratedShortFileNameConflict2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.GeneratedShortFileNameConflict2, "The location of a conflicting generated short file name related to the previous warning."); - } - - public static Message IdentifierCannotBeModularized(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string identifier, int length, int maximumLength) - { - return Message(sourceLineNumbers, Ids.IdentifierCannotBeModularized, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. It will be too long if modularized. The identifier shouldn't be longer than {4} characters long to allow for modularization (appending a guid for merge modules).", elementName, attributeName, identifier, length, maximumLength); - } - - public static Message IdentifierTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.IdentifierTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for an identifier. Standard identifiers are 72 characters long or less.", elementName, attributeName, value); - } - - public static Message IllegalActionInSequence(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.IllegalActionInSequence, "The {0} table contains an action '{1}' which is not allowed in this table. If this is a standard action then it is not valid for this table, if it is a custom action or dialog then this table does not accept actions of that type. This action will be left out of the decompiled output.", sequenceTableName, actionName); - } - - public static Message IllegalColumnValue(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) - { - return Message(sourceLineNumbers, Ids.IllegalColumnValue, "The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output.", tableName, columnName, value); - } - - public static Message IllegalPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.IllegalPatchCreationTable, "The {0} table is not legal in a patch creation file. The information in this table will be left out of the decompiled output.", tableName); - } - - public static Message IllegalRegistryKeyPath(SourceLineNumber sourceLineNumbers, string componentName, string registryId) - { - return Message(sourceLineNumbers, Ids.IllegalRegistryKeyPath, "Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath.", componentName, registryId); - } - - public static Message ImplicitComponentPrimaryFeature(string componentId) - { - return Message(null, Ids.ImplicitComponentPrimaryFeature, "The component '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the ComponentRef/@Primary, ComponentGroupRef/@Primary, or FeatureGroupRef/@Primary locations for this component.", componentId); - } - - public static Message ImplicitlyPerUser(SourceLineNumber sourceLineNumbers, string path) - { - return Message(sourceLineNumbers, Ids.ImplicitlyPerUser, "The MSI '{0}' does not explicitly indicate that it is a per-user package even though the ALLUSERS Property is blank. This suggests a per-user package so the Bundle will assume the package is per-user. If possible, use the Package/@InstallScope attribute to be explicit instead.", path); - } - - public static Message ImplicitMergeModulePrimaryFeature(string componentId) - { - return Message(null, Ids.ImplicitMergeModulePrimaryFeature, "The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component.", componentId); - } - - public static Message InsufficientPermissionHarvestTypeLib() - { - return Message(null, Ids.InsufficientPermissionHarvestTypeLib, "Not enough permissions to harvest type library. On Windows Vista, you must either run Heat elevated, or install Windows Vista SP1 (or higher)."); - } - - public static Message InvalidAttributeCombination(SourceLineNumber sourceLineNumbers, string attrib1, string attrib2, string name, string value) - { - return Message(sourceLineNumbers, Ids.InvalidAttributeCombination, "It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}.", attrib1, attrib2, name, value); - } - - public static Message InvalidHigherInstallerVersionInModule(SourceLineNumber sourceLineNumbers, string moduleId, int moduleInstallerVersion, int productInstallerVersion) - { - return Message(sourceLineNumbers, Ids.InvalidHigherInstallerVersionInModule, "Merge module '{0}' has an installer version of {1} which is greater than the product's installer version of {2}. Merging a module with a higher installer version than the product it is being merged into can result in invalid values in the resulting msi. You must set the Package/@InstallerVersion attribute to {1} or greater to merge this merge module into your product.", moduleId, moduleInstallerVersion, productInstallerVersion); - } - - public static Message InvalidModuleOrBundleVersion(SourceLineNumber sourceLineNumbers, string moduleOrBundle, string version) - { - return Message(sourceLineNumbers, Ids.InvalidModuleOrBundleVersion, "Invalid {0}/@Version '{1}'. {0} version has a max value of \"65535.65535.65535.65535\" and must be all numeric.", moduleOrBundle, version); - } - - public static Message InvalidRemoveFile(SourceLineNumber sourceLineNumbers, string file, string component) - { - return Message(sourceLineNumbers, Ids.InvalidRemoveFile, "File '{0}' was removed from component '{1}'. Removing a file from a component will not result in the file being removed by a patch. You should author a RemoveFile element in your component to remove the file from the installation if you want the file to be removed.", file, component); - } - - public static Message MajorUpgradePatchNotRecommended() - { - return Message(null, Ids.MajorUpgradePatchNotRecommended, "Changing the ProductCode in a patch is not recommended because the patch cannot be uninstalled nor can it be sequenced along with other patches for the target product. See http://msdn2.microsoft.com/library/aa367571.aspx for more information."); - } - - public static Message MediaExternalCabinetFilenameIllegal(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.MediaExternalCabinetFilenameIllegal, "The {0}/@{1} attribute's value, '{2}', is not a valid external cabinet name. Legal cabinet names should follow 8.3 format: they should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the following may be used: \\ ? | > < : / * \" + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms).", elementName, attributeName, value); - } - - public static Message MergeRescheduledAction(SourceLineNumber sourceLineNumbers, string tableName, string actionName, string mergeModuleFile) - { - return Message(sourceLineNumbers, Ids.MergeRescheduledAction, "The {0} table contains an action '{1}' which cannot be merged from the merge module '{2}'. This action is likely colliding with an action in the database that is being created. The colliding action may have been authored in the database or merged in from another merge module. If this is a standard action, it is likely colliding due to a difference in the condition for the action in the database and merge module. If this is a custom action, it should only be declared in the database or one merge module.", tableName, actionName, mergeModuleFile); - } - - public static Message MergeTableFailed(SourceLineNumber sourceLineNumbers, string tableName, string primaryKeys, string mergeModuleFile) - { - return Message(sourceLineNumbers, Ids.MergeTableFailed, "The {0} table contains a row with primary key(s) '{1}' which cannot be merged from the merge module '{2}'. This is likely due to collision of rows with the same primary key(s) (but other different values in other columns) between the database and the merge module.", tableName, primaryKeys, mergeModuleFile); - } - - public static Message MissingUpgradeCode(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.MissingUpgradeCode, "The Product/@UpgradeCode attribute was not found; it is strongly recommended to ensure that this product can be upgraded."); - } - - public static Message MsiTransactionLimitations(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.MsiTransactionLimitations, "MSI transactions have limitations that make it hard to use them successfully in a bundle. Test the bundle thoroughly, especially in upgrade scenarios and the scenario that required them in the first place."); - } - - public static Message NestedInstall(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) - { - return Message(sourceLineNumbers, Ids.NestedInstall, "The {0}.{1} column's value, '{2}', indicates a nested install. Nested installations are not supported by the WiX team. This action will be left out of the decompiled output.", tableName, columnName, value); - } - - public static Message NewComponentAddedToExistingFeature(SourceLineNumber sourceLineNumbers, string component, string feature, string transformPath) - { - return Message(sourceLineNumbers, Ids.NewComponentAddedToExistingFeature, "Component '{0}' was added to feature '{1}' in the transform '{2}'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch.", component, feature, transformPath); - } - - public static Message NoPerMachineDependencies(SourceLineNumber sourceLineNumbers, string packageId) - { - return Message(sourceLineNumbers, Ids.NoPerMachineDependencies, "Bundle dependencies will not be registered on per-machine package '{0}' for a per-user bundle. Either make sure that all packages are installed per-machine, or author any per-machine dependencies as permanent packages.", packageId); - } - - public static Message NotABinaryWixlib(string wixlib) - { - return Message(null, Ids.NotABinaryWixlib, "'{0}' is not a binary Wixlib and has no embedded files.", wixlib); - } - - public static Message NullMsiAssemblyNameValue(SourceLineNumber sourceLineNumbers, string componentName, string name) - { - return Message(sourceLineNumbers, Ids.NullMsiAssemblyNameValue, "The assembly in component '{0}' has a null or empty {1} assembly name value.", componentName, name); - } - - public static Message OrphanedProgId(SourceLineNumber sourceLineNumbers, string progId) - { - return Message(sourceLineNumbers, Ids.OrphanedProgId, "ProgId '{0}' is orphaned. It has no associated component, so it will never install. Every ProgId should have either a parent Class element or child Extension element (at any distance).", progId); - } - - public static Message PackageCodeSet(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.PackageCodeSet, "The Package/@Id attribute has been set. Setting this attribute will allow nonidentical .msi files to have the same package code. This may be a problem because the package code is the primary identifier used by the installer to search for and validate the correct package for a given installation. If a package is changed without changing the package code, the installer may not use the newer package if both are still accessible to the installer. Please remove the Id attribute in order to automatically generate a new package code for each new .msi file."); - } - - public static Message PatchTable(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.PatchTable, "The {0} table is added to the install package by a transform from a patch package (.msp) and not authored directly into an install package (.msi). The information in this table will be left out of the decompiled output.", tableName); - } - - public static Message PathCanonicalized(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string originalValue, string canonicalValue) - { - return Message(sourceLineNumbers, Ids.PathCanonicalized, "The {0}/@{1} attribute's value, '{2}', has been canonicalized to '{3}'.", elementName, attributeName, originalValue, canonicalValue); - } - - public static Message PerUserButForcingPerMachine(SourceLineNumber sourceLineNumbers, string path) - { - return Message(sourceLineNumbers, Ids.PerUserButForcingPerMachine, "The MSI '{0}' is a per-user package being forced to per-machine. Verify that the MsiPackage/@ForcePerMachine attribute is expected and that the per-user package works correctly when forced to install per-machine.", path); - } - - public static Message PlaceholderValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) - { - return Message(sourceLineNumbers, Ids.PlaceholderValue, "The {0}/@{1} attribute's value, '{2}', is a placeholder value used in example files. Please replace this placeholder with the appropriate value.", elementName, attributeName, value); - } - - public static Message PossiblyIncorrectTypelibVersion(SourceLineNumber sourceLineNumbers, string id) - { - return Message(sourceLineNumbers, Ids.PossiblyIncorrectTypelibVersion, "The Typelib table entry with Id '{0}' could have an incorrect version of '256.0'. InstallShield has a bug relating to the Typelib Version column: it will incorrectly set the value '65536' in to represent version '1.0'. However, this number actually corresponds to version '256.0'. This bug will not affect the typelib version that is registered during installation, however, it will prevent the Windows Installer from correctly identifying whether a typelib is already installed and lead to unnecessary reinstallations of the typelib.", id); - } - - public static Message PreprocessorUnknownPragma(SourceLineNumber sourceLineNumbers, string pragmaName) - { - return Message(sourceLineNumbers, Ids.PreprocessorUnknownPragma, "The pragma '{0}' is unknown. Please ensure you have referenced the extension that defines this pragma.", pragmaName); - } - - public static Message PreprocessorWarning(SourceLineNumber sourceLineNumbers, string message) - { - return Message(sourceLineNumbers, Ids.PreprocessorWarning, "{0}", message); - } - - public static Message ProductIdAuthored(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.ProductIdAuthored, "The 'ProductID' property should not be directly authored because it will prevent the ValidateProductID standard action from performing any validation during the installation. This property will be set by the ValidateProductID standard action or control event."); - } - - public static Message PropertyModularizationSuppressed(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.PropertyModularizationSuppressed, "The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios."); - } - - public static Message PropertyUseless(SourceLineNumber sourceLineNumbers, string id) - { - return Message(sourceLineNumbers, Ids.PropertyUseless, "Property '{0}' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored.", id); - } - - public static Message PropertyValueContainsPropertyReference(SourceLineNumber sourceLineNumbers, string propertyId, string otherProperty) - { - return Message(sourceLineNumbers, Ids.PropertyValueContainsPropertyReference, "The '{0}' Property contains '[{1}]' in its value which is an illegal reference to another property. If this value is a string literal, not a property reference, please ignore this warning. To set a property with the value of another property, use a CustomAction with Property and Value attributes.", propertyId, otherProperty); - } - - public static Message RelatedAttributeConditionallyIgnored(SourceLineNumber sourceLineNumbers, string recessiveAttribute, string dominantAttribute, string dominantValue) - { - return Message(sourceLineNumbers, Ids.RelatedAttributeConditionallyIgnored, "Ignoring attribute {0} because attribute {1} is set to {2}.", recessiveAttribute, dominantAttribute, dominantValue); - } - - public static Message RemotePayloadsMustNotAlsoBeCompressed(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.RemotePayloadsMustNotAlsoBeCompressed, "The {0}/@Compressed attribute must have value 'no' when a RemotePayload child element is present. RemotePayload indicates that a package will always be downloaded and cannot be compressed into a bundle. To eliminate this warning, explicitly set the {0}/@Compressed attribute to 'no'.", elementName); - } - - public static Message RemoveFileNameRequired(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RemoveFileNameRequired, "The RemoveFile/@Name attribute will soon become required. In order to match the old functionality of not specifying this attribute, please use the new RemoveFolder element instead."); - } - - public static Message RequiresMsi200for64bitPackage(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RequiresMsi200for64bitPackage, "Package/@InstallerVersion must be 200 or greater for a 64-bit package. The value will be changed to 200. Please specify a value of 200 or greater in order to eliminate this warning."); - } - - public static Message RequiresMsi500forArmPackage(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an ARM64 package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning."); - } - - public static Message ReservedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) - { - return Message(sourceLineNumbers, Ids.ReservedAttribute, "The {0}/@{1} attribute is reserved for future use and has no effect in this version of the WiX toolset.", elementName, attributeName); - } - - public static Message RetainRangeMismatch(SourceLineNumber sourceLineNumbers, string fileId) - { - return Message(sourceLineNumbers, Ids.RetainRangeMismatch, "Mismatch in RetainRangeCounts for the file '{0}' - ignoring the retain ranges.", fileId); - } - - public static Message ServiceConfigFamilyNotSupported(SourceLineNumber sourceLineNumbers, string elementName) - { - return Message(sourceLineNumbers, Ids.ServiceConfigFamilyNotSupported, "{0} functionality is documented in the Windows Installer SDK to \"not [work] as expected.\" Consider replacing {0} with the WixUtilExtension ServiceConfig element.", elementName); - } - - public static Message SkippingMergeModuleTable(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.SkippingMergeModuleTable, "The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output.", tableName); - } - - public static Message SkippingPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.SkippingPatchCreationTable, "The {0} table can only be represented in WiX for patch creation files. The information in this table will be left out of the decompiled output.", tableName); - } - - public static Message StandardDirectoryConflictInMergeModule(SourceLineNumber sourceLineNumbers, string directory, string standardDirectory) - { - return Message(sourceLineNumbers, Ids.StandardDirectoryConflictInMergeModule, "The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders.", directory, standardDirectory); - } - - public static Message SuppressAction(SourceLineNumber sourceLineNumbers, string action, string sequenceName) - { - return Message(sourceLineNumbers, Ids.SuppressAction, "The action '{0}' in the {1} table is being suppressed.", action, sequenceName); - } - - public static Message SuppressAction2(SourceLineNumber sourceLineNumbers) - { - return Message(sourceLineNumbers, Ids.SuppressAction2, "The location of the suppressed action related to previous warning."); - } - - public static Message SuppressMergedAction(string action, string sequenceName) - { - return Message(null, Ids.SuppressMergedAction, "The merged action '{0}' in the {1} table is being suppressed.", action, sequenceName); - } - - public static Message TableIncompatibleWithInstallerVersion(SourceLineNumber sourceLineNumbers, string tableName, int productInstallerVersion) - { - return Message(sourceLineNumbers, Ids.TableIncompatibleWithInstallerVersion, "Using table '{0}' requires a version of Windows Installer greater than specified in your package ('{1}').", tableName, productInstallerVersion); - } - - public static Message TargetDirCorrectedDefaultDir() - { - return Message(null, Ids.TargetDirCorrectedDefaultDir, "The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output."); - } - - public static Message TooManyProgIds(SourceLineNumber sourceLineNumbers, string clsId, string progId, string otherClsId) - { - return Message(sourceLineNumbers, Ids.TooManyProgIds, "Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output.", clsId, progId, otherClsId); - } - - public static Message SymbolNotTranslatedToOutput(IntermediateSymbol symbol) - { - var symbolString = $"SymbolName: '{symbol.Definition.Name}', Id: '{symbol.Id?.Id}'"; - return Message(symbol.SourceLineNumbers, Ids.SymbolNotTranslatedToOutput, "The binder doesn't know how to place the following symbol into the output: {0}", symbolString); - } - - public static Message UnableToFindFileFromCabOrImage(SourceLineNumber sourceLineNumbers, string existingFileSpec, string srcFileSpec) - { - return Message(sourceLineNumbers, Ids.UnableToFindFileFromCabOrImage, "Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break.", existingFileSpec, srcFileSpec); - } - - public static Message UnableToResetAcls(string error) - { - return Message(null, Ids.UnableToResetAcls, "Unable to reset acls on destination files. Exception detail: {0}", error); - } - - public static Message UnclearShortcut(SourceLineNumber sourceLineNumbers, string shortcutId, string fileId, string componentId) - { - return Message(sourceLineNumbers, Ids.UnclearShortcut, "Because it is an advertised shortcut, the target of shortcut '{0}' will be the keypath of component '{2}' rather than parent file '{1}'. To eliminate this warning, you can (1) make the Shortcut element a child of the File element that is the keypath of component '{2}', (2) make file '{1}' the keypath of component '{2}', or (3) remove the @Advertise attribute so the shortcut is a non-advertised shortcut.", shortcutId, fileId, componentId); - } - - public static Message UnexpectedEntrySection(SourceLineNumber sourceLineNumbers, string sectionType, string expectedType, string outputExtension) - { - return Message(sourceLineNumbers, Ids.UnexpectedEntrySection, "Found mismatched entry point <{0}>. Expected <{1}> for specified output package type {2}.", sectionType, expectedType, outputExtension); - } - - public static Message UnexpectedTableInProduct(SourceLineNumber sourceLineNumbers, string tableName) - { - return Message(sourceLineNumbers, Ids.UnexpectedTableInProduct, "An unexpected row in the '{0}' table was found in this product. Products should not contain the '{0}' table.", tableName); - } - - public static Message UnknownAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) - { - return Message(sourceLineNumbers, Ids.UnknownAction, "The {0} table contains an action '{1}' which is not a known custom action, dialog, or standard action. This action will be left out of the decompiled output.", sequenceTableName, actionName); - } - - public static Message UnknownPermission(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, int bitPosition) - { - return Message(sourceLineNumbers, Ids.UnknownPermission, "The {0} table contains a row with primary key '{1}' which has an unknown permission at bit {2}.", tableName, primaryKey, bitPosition); - } - - public static Message UnrepresentableColumnValue(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) - { - return Message(sourceLineNumbers, Ids.UnrepresentableColumnValue, "The {0}.{1} column's value, '{2}', cannot currently be represented in the WiX schema.", tableName, columnName, value); - } - - public static Message UnsupportedCommandLineArgument(string arg) - { - return Message(null, Ids.UnsupportedCommandLineArgument, "'{0}' is not a valid command line argument.", arg); - } - - public static Message UpdateOfNonKeyPathFile(string nonKeyPathFileId, string componentId, string keyPathFileId) - { - return Message(null, Ids.UpdateOfNonKeyPathFile, "File '{0}' in Component '{1}' was changed, but the KeyPath file '{2}' was not. This file will not be patched on the target system if the REINSTALLMODE does not contain 'A'. The KeyPath file should also be changed and included in your patch.", nonKeyPathFileId, componentId, keyPathFileId); - } - - public static Message UxPayloadsOnlySupportEmbedding(SourceLineNumber sourceLineNumbers, string sourceFile) - { - return Message(sourceLineNumbers, Ids.UxPayloadsOnlySupportEmbedding, "A bootstrapper application payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, bootstrapper application payloads must be embedded in the bundle, so the requested packaging is being ignored.", sourceFile); - } - - public static Message ValidationFailedDueToSystemPolicy() - { - return Message(null, Ids.ValidationFailedDueToSystemPolicy, "Validation could not run due to system policy. To eliminate this warning, run the process as admin or suppress ICE validation."); - } - - public static Message ValidationWarning(SourceLineNumber sourceLineNumbers, string ice, string message) - { - return Message(sourceLineNumbers, Ids.ValidationWarning, "{0}: {1}", ice, message); - } - - public static Message VariableDeclarationCollision(SourceLineNumber sourceLineNumbers, string variableName, string variableValue, string variableCollidingValue) - { - return Message(sourceLineNumbers, Ids.VariableDeclarationCollision, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); - } - - public static Message VersionTruncated(SourceLineNumber sourceLineNumbers, string originalVersion, string package, string truncatedVersion) - { - return Message(sourceLineNumbers, Ids.VersionTruncated, "Product version {0} in package '{1}' is not valid per the MSI SDK and cannot be represented in a bundle. It has been truncated to {2}.", originalVersion, package, truncatedVersion); - } - - public static Message CollidingModularizationTypes(string tableName, string columnName, string foreignTableName, int foreignColumnNumber, string modularizationType, string foreignModularizationType) - { - return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: table '{0}' uses type {4} and table '{2}' uses type {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); - } - - public static Message InvalidEnvironmentVariable(string environmentVariable, string value, string defaultValue) - { - return Message(null, Ids.InvalidEnvironmentVariable, "The {0} environment variable is set to an invalid value of '{1}'. The default value '{2}' will be used instead.", environmentVariable, value, defaultValue); - } - - private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) - { - return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, format, args); - } - - private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) - { - return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, resourceManager, resourceName, args); - } - - public enum Ids - { - IdentifierCannotBeModularized = 1000, - EmptyAttributeValue = 1001, - UnableToFindFileFromCabOrImage = 1002, - CopyFileFileIdUseless = 1003, - NestedInstall = 1004, - OrphanedProgId = 1005, - PropertyUseless = 1006, - RemoveFileNameRequired = 1007, - SuppressAction = 1008, - SuppressMergedAction = 1009, - TargetDirCorrectedDefaultDir = 1010, - AccessDeniedForDeletion = 1011, - DirectoryInUse = 1012, - AccessDeniedForSettingAttributes = 1013, - UnknownAction = 1024, - IdentifierTooLong = 1026, - UnknownPermission = 1030, - DirectoryRedundantNames = 1031, - UnableToResetAcls = 1032, - MediaExternalCabinetFilenameIllegal = 1033, - DeprecatedPreProcVariable = 1034, - FileSearchFileNameIssue = 1043, - AmbiguousFileOrDirectoryName = 1044, - PossiblyIncorrectTypelibVersion = 1048, - ImplicitComponentPrimaryFeature = 1049, - ActionSequenceCollision = 1050, - ActionSequenceCollision2 = 1051, - SuppressAction2 = 1052, - UnexpectedTableInProduct = 1053, - DeprecatedAttribute = 1054, - MergeRescheduledAction = 1055, - MergeTableFailed = 1056, - DecompiledStandardActionRelativelyScheduledInModule = 1057, - IllegalActionInSequence = 1058, - ExpectedForeignRow = 1059, - DecompilingAsCustomTable = 1060, - IllegalPatchCreationTable = 1061, - SkippingMergeModuleTable = 1062, - SkippingPatchCreationTable = 1063, - UnrepresentableColumnValue = 1064, - DeprecatedTable = 1065, - PatchTable = 1066, - IllegalColumnValue = 1067, - DeprecatedLongNameAttribute = 1069, - GeneratedShortFileNameConflict = 1070, - GeneratedShortFileNameConflict2 = 1071, - DangerousTableInMergeModule = 1072, - DeprecatedLocalizationVariablePrefix = 1073, - PlaceholderValue = 1074, - MissingUpgradeCode = 1075, - ValidationWarning = 1076, - PropertyValueContainsPropertyReference = 1077, - DeprecatedUpgradeProperty = 1078, - EmptyCabinet = 1079, - DeprecatedRegistryElement = 1080, - IllegalRegistryKeyPath = 1081, - DeprecatedPatchSequenceTargetAttribute = 1082, - ProductIdAuthored = 1083, - ImplicitMergeModulePrimaryFeature = 1084, - DeprecatedIgnoreModularizationElement = 1085, - PropertyModularizationSuppressed = 1086, - DeprecatedPackageCompressedAttribute = 1087, - DeprecatedQuestionMarksGuid = 1090, - PackageCodeSet = 1091, - InvalidModuleOrBundleVersion = 1093, - InvalidRemoveFile = 1095, - PreprocessorWarning = 1096, - UpdateOfNonKeyPathFile = 1097, - UnsupportedCommandLineArgument = 1098, - MajorUpgradePatchNotRecommended = 1099, - RetainRangeMismatch = 1100, - DefaultLanguageUsedForVersionedFile = 1101, - DefaultLanguageUsedForUnversionedFile = 1102, - DefaultVersionUsedForUnversionedFile = 1103, - InvalidHigherInstallerVersionInModule = 1104, - ValidationFailedDueToSystemPolicy = 1105, - ColumnsIncompatibleWithInstallerVersion = 1106, - TableIncompatibleWithInstallerVersion = 1107, - DeprecatedCommandLineSwitch = 1108, - UnexpectedEntrySection = 1109, - NewComponentAddedToExistingFeature = 1110, - DeprecatedAttributeValue = 1111, - InsufficientPermissionHarvestTypeLib = 1112, - UnclearShortcut = 1113, - TooManyProgIds = 1114, - BadColumnDataIgnored = 1115, - NullMsiAssemblyNameValue = 1116, - InvalidAttributeCombination = 1117, - VariableDeclarationCollision = 1118, - DuplicatePrimaryKey = 1119, - RequiresMsi200for64bitPackage = 1121, - ExternalCabsAreNotSigned = 1122, - FailedToDeleteTempDir = 1123, - StandardDirectoryConflictInMergeModule = 1124, - PreprocessorUnknownPragma = 1125, - DeprecatedComponentGroupId = 1126, - UxPayloadsOnlySupportEmbedding = 1127, - DiscardedRollbackBoundary = 1129, - DeprecatedElement = 1130, - CannotUpdateCabCache = 1131, - DownloadUrlNotSupportedForBAPayloads = 1132, - DiscouragedAllUsersValue = 1133, - ImplicitlyPerUser = 1134, - PerUserButForcingPerMachine = 1135, - AttributeShouldContain = 1136, - DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions = 1137, - DeprecatedRegistryKeyActionAttribute = 1138, - NotABinaryWixlib = 1139, - NoPerMachineDependencies = 1140, - DownloadUrlNotSupportedForAttachedContainers = 1141, - ReservedAttribute = 1142, - RequiresMsi500forArmPackage = 1143, - RemotePayloadsMustNotAlsoBeCompressed = 1144, - AllChangesIncludedInPatch = 1145, - RelatedAttributeConditionallyIgnored = 1146, - BackslashTerminateInlineDirectorySyntax = 1147, - VersionTruncated = 1148, - ServiceConfigFamilyNotSupported = 1149, - SymbolNotTranslatedToOutput = 1150, - MsiTransactionLimitations = 1151, - PathCanonicalized = 1152, - DetectConditionRecommended = 1153, - ExperimentalBundlePlatform = 1154, - - CollidingModularizationTypes = 1156, - InvalidEnvironmentVariable = 1157, - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/ColumnCategory.cs b/src/WixToolset.Data/WindowsInstaller/ColumnCategory.cs deleted file mode 100644 index 0d50b7fd..00000000 --- a/src/WixToolset.Data/WindowsInstaller/ColumnCategory.cs +++ /dev/null @@ -1,91 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - /// - /// Column validation category type - /// - public enum ColumnCategory - { - /// Unknown category, default and invalid. - Unknown, - - /// Text category. - Text, - - /// UpperCase category. - UpperCase, - - /// LowerCase category. - LowerCase, - - /// Integer category. - Integer, - - /// DoubleInteger category. - DoubleInteger, - - /// TimeDate category. - TimeDate, - - /// Identifier category. - Identifier, - - /// Property category. - Property, - - /// Filename category. - Filename, - - /// WildCardFilename category. - WildCardFilename, - - /// Path category. - Path, - - /// Paths category. - Paths, - - /// AnyPath category. - AnyPath, - - /// DefaultDir category. - DefaultDir, - - /// RegPath category. - RegPath, - - /// Formatted category. - Formatted, - - /// Template category. - Template, - - /// Condition category. - Condition, - - /// Guid category. - Guid, - - /// Version category. - Version, - - /// Language category. - Language, - - /// Binary category. - Binary, - - /// CustomSource category. - CustomSource, - - /// Cabinet category. - Cabinet, - - /// Shortcut category. - Shortcut, - - /// Formatted SDDL category. - FormattedSDDLText, - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs b/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs deleted file mode 100644 index f4dbab34..00000000 --- a/src/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs +++ /dev/null @@ -1,702 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Globalization; - using System.Xml; - - /// - /// Definition of a table's column. - /// - public sealed class ColumnDefinition : IComparable - { - /// - /// Creates a new column definition. - /// - /// Name of column. - /// Type of column - /// Length of column. - /// If column is primary key. - /// If column is nullable. - /// Validation category for column. - /// Optional minimum value for the column. - /// Optional maximum value for the colum. - /// Optional name of table for foreign key. - /// Optional name of column for foreign key. - /// Set of possible values for column. - /// Description of column in vaidation table. - /// Type of modularization for column - /// If the column is localizable. - /// If whitespace should be preserved in a CDATA node. - /// If not saved to MSI. - public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnCategory category, long? minValue = null, long? maxValue = null, string keyTable = null, int? keyColumn = null, string possibilities = null, string description = null, ColumnModularizeType? modularizeType = null, bool forceLocalizable = false, bool useCData = false, bool unreal = false) - { - this.Name = name; - this.Type = type; - this.Length = length; - this.PrimaryKey = primaryKey; - this.Nullable = nullable; - this.ModularizeType = CalculateModularizationType(modularizeType, category); - this.IsLocalizable = forceLocalizable || ColumnType.Localized == type; - this.MinValue = minValue; - this.MaxValue = maxValue; - this.KeyTable = keyTable; - this.KeyColumn = keyColumn; - this.Category = category; - this.Possibilities = possibilities; - this.Description = description; - this.UseCData = useCData; - this.Unreal = unreal; - } - - /// - /// Gets whether this column was added via a transform. - /// - /// Whether this column was added via a transform. - public bool Added { get; set; } - - /// - /// Gets the name of the column. - /// - /// Name of column. - public string Name { get; } - - /// - /// Gets the type of the column. - /// - /// Type of column. - public ColumnType Type { get; } - - /// - /// Gets the length of the column. - /// - /// Length of column. - public int Length { get; } - - /// - /// Gets if the column is a primary key. - /// - /// true if column is primary key. - public bool PrimaryKey { get; } - - /// - /// Gets if the column is nullable. - /// - /// true if column is nullable. - public bool Nullable { get; } - - /// - /// Gets the type of modularization for this column. - /// - /// Column's modularization type. - public ColumnModularizeType ModularizeType { get; } - - /// - /// Gets if the column is localizable. Can be because the type is localizable, or because the column - /// was explicitly set to be so. - /// - /// true if column is localizable. - public bool IsLocalizable { get; } - - /// - /// Gets the minimum value for the column. - /// - /// Minimum value for the column. - public long? MinValue { get; } - - /// - /// Gets the maximum value for the column. - /// - /// Maximum value for the column. - public long? MaxValue { get; } - - /// - /// Gets the table that has the foreign key for this column - /// - /// Foreign key table name. - public string KeyTable { get; } - - /// - /// Gets the foreign key column that this column refers to. - /// - /// Foreign key column. - public int? KeyColumn { get; } - - /// - /// Gets the validation category for this column. - /// - /// Validation category. - public ColumnCategory Category { get; } - - /// - /// Gets the set of possibilities for this column. - /// - /// Set of possibilities for this column. - public string Possibilities { get; } - - /// - /// Gets the description for this column. - /// - /// Description of column. - public string Description { get; } - - /// - /// Gets if whitespace should be preserved in a CDATA node. - /// - /// true if whitespace should be preserved in a CDATA node. - public bool UseCData { get; } - - /// - /// Gets if column is Unreal. - /// - /// true if column should not be included in idts. - public bool Unreal { get; } - - /// - /// Parses a column definition in a table definition. - /// - /// Reader to get data from. - /// The ColumnDefintion represented by the Xml. - internal static ColumnDefinition Read(XmlReader reader) - { - if (!reader.LocalName.Equals("columnDefinition")) - { - throw new XmlException(); - } - - bool added = false; - ColumnCategory category = ColumnCategory.Unknown; - string description = null; - bool empty = reader.IsEmptyElement; - int? keyColumn = null; - string keyTable = null; - int length = -1; - bool localizable = false; - long? maxValue = null; - long? minValue = null; - var modularize = ColumnModularizeType.None; - string name = null; - bool nullable = false; - string possibilities = null; - bool primaryKey = false; - var type = ColumnType.Unknown; - bool useCData = false; - bool unreal = false; - - // parse the attributes - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "added": - added = reader.Value.Equals("yes"); - break; - case "category": - switch (reader.Value) - { - case "anyPath": - category = ColumnCategory.AnyPath; - break; - case "binary": - category = ColumnCategory.Binary; - break; - case "cabinet": - category = ColumnCategory.Cabinet; - break; - case "condition": - category = ColumnCategory.Condition; - break; - case "customSource": - category = ColumnCategory.CustomSource; - break; - case "defaultDir": - category = ColumnCategory.DefaultDir; - break; - case "doubleInteger": - category = ColumnCategory.DoubleInteger; - break; - case "filename": - category = ColumnCategory.Filename; - break; - case "formatted": - category = ColumnCategory.Formatted; - break; - case "formattedSddl": - category = ColumnCategory.FormattedSDDLText; - break; - case "guid": - category = ColumnCategory.Guid; - break; - case "identifier": - category = ColumnCategory.Identifier; - break; - case "integer": - category = ColumnCategory.Integer; - break; - case "language": - category = ColumnCategory.Language; - break; - case "lowerCase": - category = ColumnCategory.LowerCase; - break; - case "path": - category = ColumnCategory.Path; - break; - case "paths": - category = ColumnCategory.Paths; - break; - case "property": - category = ColumnCategory.Property; - break; - case "regPath": - category = ColumnCategory.RegPath; - break; - case "shortcut": - category = ColumnCategory.Shortcut; - break; - case "template": - category = ColumnCategory.Template; - break; - case "text": - category = ColumnCategory.Text; - break; - case "timeDate": - category = ColumnCategory.TimeDate; - break; - case "upperCase": - category = ColumnCategory.UpperCase; - break; - case "version": - category = ColumnCategory.Version; - break; - case "wildCardFilename": - category = ColumnCategory.WildCardFilename; - break; - default: - throw new InvalidOperationException(); - } - break; - case "description": - description = reader.Value; - break; - case "keyColumn": - keyColumn = Convert.ToInt32(reader.Value, 10); - break; - case "keyTable": - keyTable = reader.Value; - break; - case "length": - length = Convert.ToInt32(reader.Value, 10); - break; - case "localizable": - localizable = reader.Value.Equals("yes"); - break; - case "maxValue": - maxValue = Convert.ToInt32(reader.Value, 10); - break; - case "minValue": - minValue = Convert.ToInt32(reader.Value, 10); - break; - case "modularize": - switch (reader.Value) - { - case "column": - modularize = ColumnModularizeType.Column; - break; - case "companionFile": - modularize = ColumnModularizeType.CompanionFile; - break; - case "condition": - modularize = ColumnModularizeType.Condition; - break; - case "controlEventArgument": - modularize = ColumnModularizeType.ControlEventArgument; - break; - case "controlText": - modularize = ColumnModularizeType.ControlText; - break; - case "icon": - modularize = ColumnModularizeType.Icon; - break; - case "none": - modularize = ColumnModularizeType.None; - break; - case "property": - modularize = ColumnModularizeType.Property; - break; - case "semicolonDelimited": - modularize = ColumnModularizeType.SemicolonDelimited; - break; - default: - throw new XmlException(); - } - break; - case "name": - switch (reader.Value) - { - case "CREATE": - case "DELETE": - case "DROP": - case "INSERT": - throw new XmlException(); - default: - name = reader.Value; - break; - } - break; - case "nullable": - nullable = reader.Value.Equals("yes"); - break; - case "primaryKey": - primaryKey = reader.Value.Equals("yes"); - break; - case "set": - possibilities = reader.Value; - break; - case "type": - switch (reader.Value) - { - case "localized": - type = ColumnType.Localized; - break; - case "number": - type = ColumnType.Number; - break; - case "object": - type = ColumnType.Object; - break; - case "string": - type = ColumnType.String; - break; - case "preserved": - type = ColumnType.Preserved; - break; - default: - throw new XmlException(); - } - break; - case "useCData": - useCData = reader.Value.Equals("yes"); - break; - case "unreal": - unreal = reader.Value.Equals("yes"); - break; - } - } - - // parse the child elements (there should be none) - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - throw new XmlException(); - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - ColumnDefinition columnDefinition = new ColumnDefinition(name, type, length, primaryKey, nullable, category, minValue, maxValue, keyTable, keyColumn, possibilities, description, modularize, localizable, useCData, unreal); - columnDefinition.Added = added; - - return columnDefinition; - } - - /// - /// Persists a ColumnDefinition in an XML format. - /// - /// XmlWriter where the Output should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("columnDefinition", TableDefinitionCollection.XmlNamespaceUri); - - writer.WriteAttributeString("name", this.Name); - - switch (this.Type) - { - case ColumnType.Localized: - writer.WriteAttributeString("type", "localized"); - break; - case ColumnType.Number: - writer.WriteAttributeString("type", "number"); - break; - case ColumnType.Object: - writer.WriteAttributeString("type", "object"); - break; - case ColumnType.String: - writer.WriteAttributeString("type", "string"); - break; - case ColumnType.Preserved: - writer.WriteAttributeString("type", "preserved"); - break; - } - - writer.WriteAttributeString("length", this.Length.ToString(CultureInfo.InvariantCulture.NumberFormat)); - - if (this.PrimaryKey) - { - writer.WriteAttributeString("primaryKey", "yes"); - } - - if (this.Nullable) - { - writer.WriteAttributeString("nullable", "yes"); - } - - if (this.IsLocalizable) - { - writer.WriteAttributeString("localizable", "yes"); - } - - if (this.Added) - { - writer.WriteAttributeString("added", "yes"); - } - - switch (this.ModularizeType) - { - case ColumnModularizeType.Column: - writer.WriteAttributeString("modularize", "column"); - break; - case ColumnModularizeType.CompanionFile: - writer.WriteAttributeString("modularize", "companionFile"); - break; - case ColumnModularizeType.Condition: - writer.WriteAttributeString("modularize", "condition"); - break; - case ColumnModularizeType.ControlEventArgument: - writer.WriteAttributeString("modularize", "controlEventArgument"); - break; - case ColumnModularizeType.ControlText: - writer.WriteAttributeString("modularize", "controlText"); - break; - case ColumnModularizeType.Icon: - writer.WriteAttributeString("modularize", "icon"); - break; - case ColumnModularizeType.None: - // this is the default value - break; - case ColumnModularizeType.Property: - writer.WriteAttributeString("modularize", "property"); - break; - case ColumnModularizeType.SemicolonDelimited: - writer.WriteAttributeString("modularize", "semicolonDelimited"); - break; - } - - if (this.MinValue.HasValue) - { - writer.WriteAttributeString("minValue", this.MinValue.Value.ToString(CultureInfo.InvariantCulture.NumberFormat)); - } - - if (this.MaxValue.HasValue) - { - writer.WriteAttributeString("maxValue", this.MaxValue.Value.ToString(CultureInfo.InvariantCulture.NumberFormat)); - } - - if (!String.IsNullOrEmpty(this.KeyTable)) - { - writer.WriteAttributeString("keyTable", this.KeyTable); - } - - if (this.KeyColumn.HasValue) - { - writer.WriteAttributeString("keyColumn", this.KeyColumn.Value.ToString(CultureInfo.InvariantCulture.NumberFormat)); - } - - switch (this.Category) - { - case ColumnCategory.AnyPath: - writer.WriteAttributeString("category", "anyPath"); - break; - case ColumnCategory.Binary: - writer.WriteAttributeString("category", "binary"); - break; - case ColumnCategory.Cabinet: - writer.WriteAttributeString("category", "cabinet"); - break; - case ColumnCategory.Condition: - writer.WriteAttributeString("category", "condition"); - break; - case ColumnCategory.CustomSource: - writer.WriteAttributeString("category", "customSource"); - break; - case ColumnCategory.DefaultDir: - writer.WriteAttributeString("category", "defaultDir"); - break; - case ColumnCategory.DoubleInteger: - writer.WriteAttributeString("category", "doubleInteger"); - break; - case ColumnCategory.Filename: - writer.WriteAttributeString("category", "filename"); - break; - case ColumnCategory.Formatted: - writer.WriteAttributeString("category", "formatted"); - break; - case ColumnCategory.FormattedSDDLText: - writer.WriteAttributeString("category", "formattedSddl"); - break; - case ColumnCategory.Guid: - writer.WriteAttributeString("category", "guid"); - break; - case ColumnCategory.Identifier: - writer.WriteAttributeString("category", "identifier"); - break; - case ColumnCategory.Integer: - writer.WriteAttributeString("category", "integer"); - break; - case ColumnCategory.Language: - writer.WriteAttributeString("category", "language"); - break; - case ColumnCategory.LowerCase: - writer.WriteAttributeString("category", "lowerCase"); - break; - case ColumnCategory.Path: - writer.WriteAttributeString("category", "path"); - break; - case ColumnCategory.Paths: - writer.WriteAttributeString("category", "paths"); - break; - case ColumnCategory.Property: - writer.WriteAttributeString("category", "property"); - break; - case ColumnCategory.RegPath: - writer.WriteAttributeString("category", "regPath"); - break; - case ColumnCategory.Shortcut: - writer.WriteAttributeString("category", "shortcut"); - break; - case ColumnCategory.Template: - writer.WriteAttributeString("category", "template"); - break; - case ColumnCategory.Text: - writer.WriteAttributeString("category", "text"); - break; - case ColumnCategory.TimeDate: - writer.WriteAttributeString("category", "timeDate"); - break; - case ColumnCategory.UpperCase: - writer.WriteAttributeString("category", "upperCase"); - break; - case ColumnCategory.Version: - writer.WriteAttributeString("category", "version"); - break; - case ColumnCategory.WildCardFilename: - writer.WriteAttributeString("category", "wildCardFilename"); - break; - } - - if (!String.IsNullOrEmpty(this.Possibilities)) - { - writer.WriteAttributeString("set", this.Possibilities); - } - - if (!String.IsNullOrEmpty(this.Description)) - { - writer.WriteAttributeString("description", this.Description); - } - - if (this.UseCData) - { - writer.WriteAttributeString("useCData", "yes"); - } - - if (this.Unreal) - { - writer.WriteAttributeString("unreal", "yes"); - } - - writer.WriteEndElement(); - } - - /// - /// Compare this column definition to another column definition. - /// - /// - /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. - /// - /// The to compare with this one. - /// 0 if the columns' core propeties are the same; otherwise, non-0. - public int CompareTo(ColumnDefinition other) - { - // by definition, this object is greater than null - if (null == other) - { - return 1; - } - - // compare column names - int ret = String.Compare(this.Name, other.Name, StringComparison.Ordinal); - - // compare column types - if (0 == ret) - { - ret = this.Type == other.Type ? 0 : -1; - - // compare column lengths - if (0 == ret) - { - ret = this.Length == other.Length ? 0 : -1; - - // compare whether both are primary keys - if (0 == ret) - { - ret = this.PrimaryKey == other.PrimaryKey ? 0 : -1; - - // compare nullability - if (0 == ret) - { - ret = this.Nullable == other.Nullable ? 0 : -1; - } - } - } - } - - return ret; - } - - private static ColumnModularizeType CalculateModularizationType(ColumnModularizeType? modularizeType, ColumnCategory category) - { - if (modularizeType.HasValue) - { - return modularizeType.Value; - } - - switch (category) - { - case ColumnCategory.Identifier: - case ColumnCategory.CustomSource: - return ColumnModularizeType.Column; - - case ColumnCategory.Condition: - return ColumnModularizeType.Condition; - - case ColumnCategory.AnyPath: - case ColumnCategory.Formatted: - case ColumnCategory.FormattedSDDLText: - case ColumnCategory.Path: - case ColumnCategory.Paths: - case ColumnCategory.RegPath: - case ColumnCategory.Template: - return ColumnModularizeType.Property; - - case ColumnCategory.Shortcut: - return ColumnModularizeType.Property; - } - - return ColumnModularizeType.None; - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs b/src/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs deleted file mode 100644 index d44f55a7..00000000 --- a/src/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs +++ /dev/null @@ -1,37 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - /// - /// Specifies if the column should be modularized. - /// - public enum ColumnModularizeType - { - /// Column should not be modularized. - None, - - /// Column should be modularized. - Column, - - /// When the column is an primary or foreign key to the Icon table it should be modularized special. - Icon, - - /// When the column is a companion file it should be modularized. - CompanionFile, - - /// Column is a condition and should be modularized. - Condition, - - /// Special modularization type for the ControlEvent table's Argument column. - ControlEventArgument, - - /// Special modularization type for the Control table's Text column. - ControlText, - - /// Any Properties in the column should be modularized. - Property, - - /// Semi-colon list of keys, all of which need to be modularized. - SemicolonDelimited, - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/ColumnType.cs b/src/WixToolset.Data/WindowsInstaller/ColumnType.cs deleted file mode 100644 index 423125db..00000000 --- a/src/WixToolset.Data/WindowsInstaller/ColumnType.cs +++ /dev/null @@ -1,28 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - /// - /// Defines MSI column types. - /// - public enum ColumnType - { - /// Unknown column type, default and invalid. - Unknown, - - /// Column is a string. - String, - - /// Column is a localizable string. - Localized, - - /// Column is a number. - Number, - - /// Column is a binary stream. - Object, - - /// Column is a string that is preserved in transforms (like Object). - Preserved, - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Field.cs b/src/WixToolset.Data/WindowsInstaller/Field.cs deleted file mode 100644 index e5edd552..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Field.cs +++ /dev/null @@ -1,304 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Diagnostics; - using System.Globalization; - using System.Xml; - - /// - /// Field containing data for a column in a row. - /// - public class Field - { - private object data; - - /// - /// Instantiates a new Field. - /// - /// Column definition for this field. - protected Field(ColumnDefinition columnDefinition) - { - this.Column = columnDefinition; - } - - /// - /// Gets or sets the column definition for this field. - /// - /// Column definition. - public ColumnDefinition Column { get; private set; } - - /// - /// Gets or sets the data for this field. - /// - /// Data in the field. - public object Data - { - get => this.data; - set => this.data = this.ValidateValue(this.Column, value); - } - - /// - /// Gets or sets whether this field is modified. - /// - /// Whether this field is modified. - public bool Modified { get; set; } - - /// - /// Gets or sets the previous data. - /// - /// The previous data. - public string PreviousData { get; set; } - - /// - /// Instantiate a new Field object of the correct type. - /// - /// The column definition for the field. - /// The new Field object. - public static Field Create(ColumnDefinition columnDefinition) - { - return (ColumnType.Object == columnDefinition.Type) ? new ObjectField(columnDefinition) : new Field(columnDefinition); - } - - /// - /// Sets the value of a particular field in the row without validating. - /// - /// Value of a field in the row. - /// True if successful, false if validation failed. - public bool BestEffortSet(object value) - { - bool success = true; - object bestEffortValue = value; - - try - { - bestEffortValue = this.ValidateValue(this.Column, value); - } - catch (InvalidOperationException) - { - success = false; - } - - this.data = bestEffortValue; - return success; - } - - /// - /// Determine if this field is identical to another field. - /// - /// The other field to compare to. - /// true if they are equal; false otherwise. - public bool IsIdentical(Field field) - { - return (this.Column.Name == field.Column.Name && - ((null != this.data && this.data.Equals(field.data)) || (null == this.data && null == field.data))); - } - - /// - /// Overrides the built in object implementation to return the field's data as a string. - /// - /// Field's data as a string. - public override string ToString() - { - return this.AsString(); - } - - /// - /// Gets the field as an integer. - /// - /// Field's data as an integer. - public int AsInteger() - { - return (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); - } - - /// - /// Gets the field as an integer that could be null. - /// - /// Field's data as an integer that could be null. - public int? AsNullableInteger() - { - return (null == this.data) ? (int?)null : (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); - } - - /// - /// Gets the field as a string. - /// - /// Field's data as a string. - public string AsString() - { - return (null == this.data) ? null : Convert.ToString(this.data, CultureInfo.InvariantCulture); - } - - /// - /// Validate a value for a column. - /// - /// The column. - /// The value to validate. - /// Validated value. - internal object ValidateValue(ColumnDefinition column, object value) - { - if (null == value) - { - if (!column.Nullable) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with a null value because this is a required field.", column.Name)); - } - } - else // check numerical values against their specified minimum and maximum values. - { - if (ColumnType.Number == column.Type && !column.IsLocalizable) - { - // For now all enums in the tables can be represented by integers. This if statement would need to - // be enhanced if that ever changes. - if (value is int || value.GetType().IsEnum) - { - var intValue = (int)value; - - // validate the value against the minimum allowed value - if (column.MinValue.HasValue && column.MinValue > intValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", column.Name, intValue, column.MinValue)); - } - - // validate the value against the maximum allowed value - if (column.MaxValue.HasValue && column.MaxValue < intValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", column.Name, intValue, column.MaxValue)); - } - - return intValue; - } - else if (value is long longValue) - { - // validate the value against the minimum allowed value - if (column.MinValue.HasValue && column.MinValue > longValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", column.Name, longValue, column.MinValue)); - } - - // validate the value against the maximum allowed value - if (column.MaxValue.HasValue && column.MaxValue < longValue) - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", column.Name, longValue, column.MaxValue)); - } - - return longValue; - } - else - { - throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set number column '{0}' with a value of type '{1}'.", column.Name, value.GetType().ToString())); - } - } - else - { - if (!(value is string)) - { - //throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set string column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); - return value.ToString(); - } - } - } - - return value; - } - - /// - /// Parse a field from the xml. - /// - /// XmlReader where the intermediate is persisted. - internal virtual void Read(XmlReader reader) - { - Debug.Assert("field" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "modified": - this.Modified = reader.Value.Equals("yes"); - break; - case "previousData": - this.PreviousData = reader.Value; - break; - } - } - - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - throw new XmlException(); - case XmlNodeType.CDATA: - case XmlNodeType.Text: - case XmlNodeType.SignificantWhitespace: - if (0 < reader.Value.Length) - { - if (ColumnType.Number == this.Column.Type && !this.Column.IsLocalizable) - { - // older wix files could persist data as a long value (which would overflow an int) - // since the Convert class always throws exceptions for overflows, read in integral - // values as a long to avoid the overflow, then cast it to an int (this operation can - // overflow without throwing an exception inside an unchecked block) - this.data = unchecked((int)Convert.ToInt64(reader.Value, CultureInfo.InvariantCulture)); - } - else - { - this.data = reader.Value; - } - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - } - - /// - /// Persists a field in an XML format. - /// - /// XmlWriter where the Field should persist itself as XML. - internal virtual void Write(XmlWriter writer) - { - writer.WriteStartElement("field", WindowsInstallerData.XmlNamespaceUri); - - if (this.Modified) - { - writer.WriteAttributeString("modified", "yes"); - } - - if (null != this.PreviousData) - { - writer.WriteAttributeString("previousData", this.PreviousData); - } - - // Convert the data to a string that will persist nicely (nulls as String.Empty). - string text = Convert.ToString(this.data, CultureInfo.InvariantCulture); - if (this.Column.UseCData) - { - writer.WriteCData(text); - } - else - { - writer.WriteString(text); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs b/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs deleted file mode 100644 index 6ffdf041..00000000 --- a/src/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace WixToolset.Data.WindowsInstaller -{ - public static class IntermediateLevels - { - // TODO: These are placeholder names until we (hopefully) come up with better ones. - public const string FullyBound = "msiFullyBound"; - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/ObjectField.cs b/src/WixToolset.Data/WindowsInstaller/ObjectField.cs deleted file mode 100644 index f10837c1..00000000 --- a/src/WixToolset.Data/WindowsInstaller/ObjectField.cs +++ /dev/null @@ -1,183 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Diagnostics; - using System.Globalization; - using System.Xml; - - /// - /// Field containing data for an object column in a row. - /// - public sealed class ObjectField : Field - { - /// - /// Instantiates a new Field. - /// - /// Column definition for this field. - internal ObjectField(ColumnDefinition columnDefinition) : - base(columnDefinition) - { - } - - /// - /// Gets or sets the index of the embedded file in a library. - /// - /// The index of the embedded file. - public int? EmbeddedFileIndex { get; set; } - - /// - /// Gets or sets the previous index of the embedded file in the library. - /// - /// The previous index of the embedded file. - public int? PreviousEmbeddedFileIndex { get; set; } - - /// - /// Gets or sets the path to the embedded cabinet of the previous file. - /// - /// The path of the cabinet containing the previous file. - public Uri PreviousBaseUri { get; set; } - - /// - /// Gets the base URI of the object field. - /// - /// The base URI of the object field. - public Uri BaseUri { get; private set; } - - /// - /// Gets or sets the unresolved data for this field. - /// - /// Unresolved Data in the field. - public string UnresolvedData { get; set; } - - /// - /// Gets or sets the unresolved previous data. - /// - /// The unresolved previous data. - public string UnresolvedPreviousData { get; set; } - - /// - /// Parse a field from the xml. - /// - /// XmlReader where the intermediate is persisted. - internal override void Read(XmlReader reader) - { - Debug.Assert("field" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - - this.BaseUri = new Uri(reader.BaseURI); - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "cabinetFileId": - this.EmbeddedFileIndex = Convert.ToInt32(reader.Value); - break; - case "modified": - this.Modified = reader.Value.Equals("yes"); - break; - case "previousData": - this.PreviousData = reader.Value; - break; - case "unresolvedPreviousData": - this.UnresolvedPreviousData = reader.Value; - break; - case "unresolvedData": - this.UnresolvedData = reader.Value; - break; - case "previousCabinetFileId": - this.PreviousEmbeddedFileIndex = Convert.ToInt32(reader.Value); - break; - } - } - - if (!empty) - { - bool done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - throw new XmlException(); - case XmlNodeType.CDATA: - case XmlNodeType.Text: - if (0 < reader.Value.Length) - { - this.Data = reader.Value; - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - } - - /// - /// Persists a field in an XML format. - /// - /// XmlWriter where the Field should persist itself as XML. - internal override void Write(XmlWriter writer) - { - writer.WriteStartElement("field", WindowsInstallerData.XmlNamespaceUri); - - if (this.EmbeddedFileIndex.HasValue) - { - writer.WriteStartAttribute("cabinetFileId"); - writer.WriteValue(this.EmbeddedFileIndex); - writer.WriteEndAttribute(); - } - - if (this.Modified) - { - writer.WriteAttributeString("modified", "yes"); - } - - if (null != this.UnresolvedPreviousData) - { - writer.WriteAttributeString("unresolvedPreviousData", this.UnresolvedPreviousData); - } - - if (null != this.PreviousData) - { - writer.WriteAttributeString("previousData", this.PreviousData); - } - - if (null != this.UnresolvedData) - { - writer.WriteAttributeString("unresolvedData", this.UnresolvedData); - } - - if (this.PreviousEmbeddedFileIndex.HasValue) - { - writer.WriteStartAttribute("previousCabinetFileId"); - writer.WriteValue(this.PreviousEmbeddedFileIndex); - writer.WriteEndAttribute(); - } - - // Convert the data to a string that will persist nicely (nulls as String.Empty). - string text = Convert.ToString(this.Data, CultureInfo.InvariantCulture); - if (this.Column.UseCData) - { - writer.WriteCData(text); - } - else - { - writer.WriteString(text); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Row.cs b/src/WixToolset.Data/WindowsInstaller/Row.cs deleted file mode 100644 index f44082d3..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Row.cs +++ /dev/null @@ -1,390 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Diagnostics; - using System.Globalization; - using System.Text; - using System.Xml; - - /// - /// Row containing data for a table. - /// - public class Row - { - private static long rowCount; - - /// - /// Creates a row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this row belongs to and should get its column definitions from. - /// The compiler should use this constructor exclusively. - public Row(SourceLineNumber sourceLineNumbers, Table table) - : this(sourceLineNumbers, table.Definition) - { - this.Table = table; - } - - /// - /// Creates a row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this row should get its column definitions from. - /// This constructor is used in cases where there isn't a clear owner of the row. The linker uses this constructor for the rows it generates. - public Row(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) - { - this.Number = rowCount++; - this.SourceLineNumbers = sourceLineNumbers; - this.Fields = new Field[tableDefinition.Columns.Length]; - this.TableDefinition = tableDefinition; - - for (var i = 0; i < this.Fields.Length; ++i) - { - this.Fields[i] = Field.Create(this.TableDefinition.Columns[i]); - } - } - - /// - /// Gets or sets the row transform operation. - /// - /// The row transform operation. - public RowOperation Operation { get; set; } - - /// - /// Gets or sets wether the row is a duplicate of another row thus redundant. - /// - public bool Redundant { get; set; } - - /// - /// Gets or sets the SectionId property on the row. - /// - /// The SectionId property on the row. - public string SectionId { get; set; } - - /// - /// Gets the source file and line number for the row. - /// - /// Source file and line number. - public SourceLineNumber SourceLineNumbers { get; } - - /// - /// Gets the table this row belongs to. - /// - /// null if Row does not belong to a Table, or owner Table otherwise. - public Table Table { get; } - - /// - /// Gets the table definition for this row. - /// - /// A Row always has a TableDefinition, even if the Row does not belong to a Table. - /// TableDefinition for Row. - public TableDefinition TableDefinition { get; } - - /// - /// Gets the fields contained by this row. - /// - /// Array of field objects - public Field[] Fields { get; } - - /// - /// Gets the unique number for the row. - /// - /// Number for row. - public long Number { get; } - - /// - /// Gets or sets the value of a particular field in the row. - /// - /// field index. - /// Value of a field in the row. - public object this[int field] - { - get { return this.Fields[field].Data; } - set { this.Fields[field].Data = value; } - } - - /// - /// Gets the field as an integer. - /// - /// Field's data as an integer. - public int FieldAsInteger(int field) - { - return this.Fields[field].AsInteger(); - } - - /// - /// Gets the field as an integer that could be null. - /// - /// Field's data as an integer that could be null. - public int? FieldAsNullableInteger(int field) - { - return this.Fields[field].AsNullableInteger(); - } - - /// - /// Gets the field as a string. - /// - /// Field's data as a string. - public string FieldAsString(int field) - { - return this.Fields[field].AsString(); - } - - /// - /// Sets the value of a particular field in the row without validating. - /// - /// field index. - /// Value of a field in the row. - /// True if successful, false if validation failed. - public bool BestEffortSetField(int field, object value) - { - return this.Fields[field].BestEffortSet(value); - } - - /// - /// Get the value used to represent the row in a keyed row collection. - /// - /// Primary key or row number if no primary key is available. - public string GetKey() - { - return this.GetPrimaryKey() ?? Convert.ToString(this.Number, CultureInfo.InvariantCulture); - } - - /// - /// Get the primary key of this row. - /// - /// Delimiter character for multiple column primary keys. - /// The primary key or null if the row's table has no primary key columns. - public string GetPrimaryKey(char delimiter = '/') - { - return this.GetPrimaryKey(delimiter, String.Empty); - } - - /// - /// Get the primary key of this row. - /// - /// Delimiter character for multiple column primary keys. - /// String to represent null values in the primary key. - /// The primary key or null if the row's table has no primary key columns. - public string GetPrimaryKey(char delimiter, string nullReplacement) - { - var foundPrimaryKey = false; - var primaryKey = new StringBuilder(); - - foreach (var field in this.Fields) - { - if (field.Column.PrimaryKey) - { - if (foundPrimaryKey) - { - primaryKey.Append(delimiter); - } - - primaryKey.Append((null == field.Data) ? nullReplacement : Convert.ToString(field.Data, CultureInfo.InvariantCulture)); - - foundPrimaryKey = true; - } - else // primary keys must be the first columns of a row so the first non-primary key means we can stop looking. - { - break; - } - } - - return foundPrimaryKey ? primaryKey.ToString() : null; - } - - /// - /// Returns true if the specified field is null. - /// - /// Index of the field to check. - /// true if the specified field is null, false otherwise. - public bool IsColumnNull(int field) => this.Fields[field].Data == null; - - /// - /// Returns true if the specified field is null or an empty string. - /// - /// Index of the field to check. - /// true if the specified field is null or an empty string, false otherwise. - public bool IsColumnEmpty(int field) - { - if (this.IsColumnNull(field)) - { - return true; - } - - string dataString = this.Fields[field].Data as string; - if (null != dataString && 0 == dataString.Length) - { - return true; - } - - return false; - } - - /// - /// Tests if the passed in row is identical. - /// - /// Row to compare against. - /// True if two rows are identical. - public bool IsIdentical(Row row) - { - bool identical = (this.TableDefinition.Name == row.TableDefinition.Name && this.Fields.Length == row.Fields.Length); - - for (var i = 0; identical && i < this.Fields.Length; ++i) - { - if (!(this.Fields[i].IsIdentical(row.Fields[i]))) - { - identical = false; - } - } - - return identical; - } - - /// - /// Copies this row to the target row. - /// - /// Row to copy data to. - public void CopyTo(Row target) - { - for (var i = 0; i < this.Fields.Length; i++) - { - target[i] = this[i]; - } - } - - /// - /// Returns a string representation of the Row. - /// - /// A string representation of the Row. - public override string ToString() - { - return String.Join("/", (object[])this.Fields); - } - - /// - /// Creates a Row from the XmlReader. - /// - /// Reader to get data from. - /// Table for this row. - /// New row object. - internal static Row Read(XmlReader reader, Table table) - { - Debug.Assert("row" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - RowOperation operation = RowOperation.None; - bool redundant = false; - string sectionId = null; - SourceLineNumber sourceLineNumbers = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "op": - operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); - break; - case "redundant": - redundant = reader.Value.Equals("yes"); - break; - case "sectionId": - sectionId = reader.Value; - break; - case "sourceLineNumber": - sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); - break; - } - } - - var row = table.CreateRow(sourceLineNumbers); - row.Operation = operation; - row.Redundant = redundant; - row.SectionId = sectionId; - - // loop through all the fields in a row - if (!empty) - { - var done = false; - var field = 0; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "field": - if (row.Fields.Length <= field) - { - if (!reader.IsEmptyElement) - { - throw new XmlException(); - } - } - else - { - row.Fields[field].Read(reader); - } - ++field; - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return row; - } - - /// - /// Persists a row in an XML format. - /// - /// XmlWriter where the Row should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("row", WindowsInstallerData.XmlNamespaceUri); - - if (RowOperation.None != this.Operation) - { - writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); - } - - if (this.Redundant) - { - writer.WriteAttributeString("redundant", "yes"); - } - - if (null != this.SectionId) - { - writer.WriteAttributeString("sectionId", this.SectionId); - } - - if (null != this.SourceLineNumbers) - { - writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); - } - - for (int i = 0; i < this.Fields.Length; ++i) - { - this.Fields[i].Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/RowOperation.cs b/src/WixToolset.Data/WindowsInstaller/RowOperation.cs deleted file mode 100644 index 22908d2b..00000000 --- a/src/WixToolset.Data/WindowsInstaller/RowOperation.cs +++ /dev/null @@ -1,30 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - /// - /// The row transform operations. - /// - public enum RowOperation - { - /// - /// No operation. - /// - None, - - /// - /// Added row. - /// - Add, - - /// - /// Deleted row. - /// - Delete, - - /// - /// Modified row. - /// - Modify - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs deleted file mode 100644 index 20482560..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs +++ /dev/null @@ -1,118 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System.Diagnostics.CodeAnalysis; - - /// - /// Specialization of a row for the Control table. - /// - public sealed class BBControlRow : Row - { - /// - /// Creates a Control row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Control row belongs to and should get its column definitions from. - public BBControlRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public BBControlRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the dialog of the Control row. - /// - /// Primary key of the Control row. - public string Billboard - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the identifier for this Control row. - /// - /// Identifier for this Control row. - public string BBControl - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the type of the BBControl. - /// - /// Name of the BBControl. - [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] - public string Type - { - get { return this.Fields[2].AsString(); } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the X location of the BBControl. - /// - /// X location of the BBControl. - public string X - { - get { return this.Fields[3].AsString(); } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the Y location of the BBControl. - /// - /// Y location of the BBControl. - public string Y - { - get { return this.Fields[4].AsString(); } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the width of the BBControl. - /// - /// Width of the BBControl. - public string Width - { - get { return this.Fields[5].AsString(); } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the height of the BBControl. - /// - /// Height of the BBControl. - public string Height - { - get { return this.Fields[6].AsString(); } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the attributes for the BBControl. - /// - /// Attributes for the BBControl. - public int Attributes - { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets or sets the text of the BBControl. - /// - /// Text of the BBControl. - public string Text - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs deleted file mode 100644 index b7836241..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs +++ /dev/null @@ -1,247 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the Component table. - /// - public sealed class ComponentRow : Row - { - private string sourceFile; - - /// - /// Creates a Control row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Component row belongs to and should get its column definitions from. - public ComponentRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public ComponentRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the identifier for this Component row. - /// - /// Identifier for this Component row. - public string Component - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the ComponentId for this Component row. - /// - /// guid for this Component row. - public string Guid - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the Directory_ of the Component. - /// - /// Directory of the Component. - public string Directory - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the local only attribute of the Component. - /// - /// Local only attribute of the component. - public bool IsLocalOnly - { - get { return WindowsInstallerConstants.MsidbComponentAttributesLocalOnly == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesLocalOnly); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesLocalOnly; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesLocalOnly; - } - } - } - - /// - /// Gets or sets the source only attribute of the Component. - /// - /// Source only attribute of the component. - public bool IsSourceOnly - { - get { return WindowsInstallerConstants.MsidbComponentAttributesSourceOnly == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesSourceOnly); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesSourceOnly; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesSourceOnly; - } - } - } - - /// - /// Gets or sets the optional attribute of the Component. - /// - /// Optional attribute of the component. - public bool IsOptional - { - get { return WindowsInstallerConstants.MsidbComponentAttributesOptional == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesOptional); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesOptional; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesOptional; - } - } - } - - /// - /// Gets or sets the registry key path attribute of the Component. - /// - /// Registry key path attribute of the component. - public bool IsRegistryKeyPath - { - get { return WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath; - } - } - } - - /// - /// Gets or sets the shared dll ref count attribute of the Component. - /// - /// Shared dll ref countattribute of the component. - public bool IsSharedDll - { - get { return WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount; - } - } - } - - /// - /// Gets or sets the permanent attribute of the Component. - /// - /// Permanent attribute of the component. - public bool IsPermanent - { - get { return WindowsInstallerConstants.MsidbComponentAttributesPermanent == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesPermanent); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesPermanent; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesPermanent; - } - } - } - - /// - /// Gets or sets the ODBC data source key path attribute of the Component. - /// - /// ODBC data source key path attribute of the component. - public bool IsOdbcDataSourceKeyPath - { - get { return WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource; - } - } - } - - /// - /// Gets or sets the 64 bit attribute of the Component. - /// - /// 64-bitness of the component. - public bool Is64Bit - { - get { return WindowsInstallerConstants.MsidbComponentAttributes64bit == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributes64bit); } - set - { - if (value) - { - this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributes64bit; - } - else - { - this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributes64bit; - } - } - } - - /// - /// Gets or sets the condition of the Component. - /// - /// Condition of the Component. - public string Condition - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the key path of the Component. - /// - /// Key path of the Component. - public string KeyPath - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the source location to the file to fill in the Text of the control. - /// - /// Source location to the file to fill in the Text of the control. - public string SourceFile - { - get { return this.sourceFile; } - set { this.sourceFile = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs deleted file mode 100644 index e0ae2de0..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs +++ /dev/null @@ -1,148 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System.Diagnostics.CodeAnalysis; - - /// - /// Specialization of a row for the Control table. - /// - public sealed class ControlRow : Row - { - /// - /// Creates a Control row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Control row belongs to and should get its column definitions from. - public ControlRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public ControlRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the dialog of the Control row. - /// - /// Primary key of the Control row. - public string Dialog - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the identifier for this Control row. - /// - /// Identifier for this Control row. - public string Control - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the type of the control. - /// - /// Name of the control. - [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] - public string Type - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the X location of the control. - /// - /// X location of the control. - public string X - { - get { return this.Fields[3].AsString(); } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the Y location of the control. - /// - /// Y location of the control. - public string Y - { - get { return this.Fields[4].AsString(); } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the width of the control. - /// - /// Width of the control. - public string Width - { - get { return this.Fields[5].AsString(); } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets or sets the height of the control. - /// - /// Height of the control. - public string Height - { - get { return this.Fields[6].AsString(); } - set { this.Fields[6].Data = value; } - } - - /// - /// Gets or sets the attributes for the control. - /// - /// Attributes for the control. - public int Attributes - { - get { return (int)this.Fields[7].Data; } - set { this.Fields[7].Data = value; } - } - - /// - /// Gets or sets the Property associated with the control. - /// - /// Property associated with the control. - public string Property - { - get { return (string)this.Fields[8].Data; } - set { this.Fields[8].Data = value; } - } - - /// - /// Gets or sets the text of the control. - /// - /// Text of the control. - public string Text - { - get { return (string)this.Fields[9].Data; } - set { this.Fields[9].Data = value; } - } - - /// - /// Gets or sets the next control. - /// - /// Next control. - public string Next - { - get { return (string)this.Fields[10].Data; } - set { this.Fields[10].Data = value; } - } - - /// - /// Gets or sets the help for the control. - /// - /// Help for the control. - public string Help - { - get { return (string)this.Fields[11].Data; } - set { this.Fields[11].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs deleted file mode 100644 index 1cf8cf12..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs +++ /dev/null @@ -1,214 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System.Diagnostics; - - /// - /// Specialization of a row for the file table. - /// - public sealed class FileRow : Row - { - /// - /// Creates a File row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this File row belongs to and should get its column definitions from. - public FileRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - /// - /// Creates a File row that does not belong to a table. - /// - /// Original source lines for this row. - /// TableDefinition this Media row belongs to and should get its column definitions from. - public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) - : base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the primary key of the file row. - /// - /// Primary key of the file row. - public string File - { - get => this.FieldAsString(0); - set => this.Fields[0].Data = value; - } - - /// - /// Gets or sets the component this file row belongs to. - /// - /// Component this file row belongs to. - public string Component - { - get => this.FieldAsString(1); - set => this.Fields[1].Data = value; - } - - /// - /// Gets or sets the name of the file. - /// - /// Name of the file. - public string FileName - { - get => this.FieldAsString(2); - set => this.Fields[2].Data = value; - } - - /// - /// Gets or sets the real filesystem name of the file (without a pipe). This is typically the long name of the file. - /// However, if no long name is available, falls back to the short name. - /// - /// Long Name of the file - or if no long name is available, falls back to the short name. - public string LongFileName - { - get - { - var fileName = this.FileName; - var index = fileName.IndexOf('|'); - - // If it doesn't contain a pipe, just return the whole string - // otherwise, extract the part of the string after the pipe. - return (-1 == index) ? fileName : fileName.Substring(index + 1); - } - } - - /// - /// Gets or sets the size of the file. - /// - /// Size of the file. - public int FileSize - { - get => this.FieldAsInteger(3); - set => this.Fields[3].Data = value; - } - - /// - /// Gets or sets the version of the file. - /// - /// Version of the file. - public string Version - { - get => this.FieldAsString(4); - set => this.Fields[4].Data = value; - } - - /// - /// Gets or sets the LCID of the file. - /// - /// LCID of the file. - public string Language - { - get => this.FieldAsString(5); - set => this.Fields[5].Data = value; - } - - /// - /// Gets or sets the attributes on a file. - /// - /// Attributes on a file. - public int Attributes - { - get => this.FieldAsInteger(6); - set => this.Fields[6].Data = value; - } - - /// - /// Gets or sets whether this file should be compressed. - /// - /// Whether this file should be compressed. - public YesNoType Compressed - { - get - { - var compressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesCompressed)); - var noncompressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesNoncompressed)); - - if (compressedFlag && noncompressedFlag) - { - throw new WixException(ErrorMessages.IllegalFileCompressionAttributes(this.SourceLineNumbers)); - } - else if (compressedFlag) - { - return YesNoType.Yes; - } - else if (noncompressedFlag) - { - return YesNoType.No; - } - else - { - return YesNoType.NotSet; - } - } - - set - { - if (YesNoType.Yes == value) - { - // these are mutually exclusive - this.Attributes |= WindowsInstallerConstants.MsidbFileAttributesCompressed; - this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed; - } - else if (YesNoType.No == value) - { - // these are mutually exclusive - this.Attributes |= WindowsInstallerConstants.MsidbFileAttributesNoncompressed; - this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed; - } - else // not specified - { - Debug.Assert(YesNoType.NotSet == value); - - // clear any compression bits - this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed; - this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed; - } - } - } - - /// - /// Gets or sets the sequence of the file row. - /// - /// Sequence of the file row. - public int Sequence - { - get => this.FieldAsInteger(7); - set => this.Fields[7].Data = value; - } - - /// - /// Gets or sets the disk id for this file. - /// - /// Disk id for the file. - public int DiskId - { - get => this.FieldAsInteger(8); - set => this.Fields[8].Data = value; - } - - /// - /// Gets or sets the source location to the file. - /// - /// Source location to the file. - public string Source - { - get => this.FieldAsString(9); - set => this.Fields[9].Data = value; - } - - /// - /// Gets or sets the source location to the previous file. - /// - /// Source location to the previous file. - public string PreviousSource - { - get => this.Fields[9].PreviousData; - set => this.Fields[9].PreviousData = value; - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs deleted file mode 100644 index b8fa5e83..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs +++ /dev/null @@ -1,85 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the Media table. - /// - public sealed class MediaRow : Row - { - /// - /// Creates a Media row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Media row belongs to and should get its column definitions from. - public MediaRow(SourceLineNumber sourceLineNumbers, Table table) - : base(sourceLineNumbers, table) - { - } - - public MediaRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets or sets the disk id for this media row. - /// - /// Disk id. - public int DiskId - { - get { return (int)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets or sets the last sequence number for this media row. - /// - /// Last sequence number. - public int LastSequence - { - get { return (int)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets or sets the disk prompt for this media row. - /// - /// Disk prompt. - public string DiskPrompt - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets or sets the cabinet name for this media row. - /// - /// Cabinet name. - public string Cabinet - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets or sets the volume label for this media row. - /// - /// Volume label. - public string VolumeLabel - { - get { return (string)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets or sets the source for this media row. - /// - /// Source. - public string Source - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs deleted file mode 100644 index b4212430..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs +++ /dev/null @@ -1,45 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the Property table. - /// - public sealed class PropertyRow : Row - { - /// - /// Creates an Property row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Upgrade row belongs to and should get its column definitions from. - public PropertyRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public PropertyRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets and sets the property name for the row. - /// - /// Property identifier for the row. - public string Property - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the property value for the row. - /// - /// Property value for the row. - public string Value - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs b/src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs deleted file mode 100644 index 4b2ce129..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs +++ /dev/null @@ -1,41 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - using System; - using System.Collections.ObjectModel; - - /// - /// Indexed container class for summary information rows. - /// - public sealed class SummaryInfoRowCollection : KeyedCollection - { - /// - /// Creates the keyed collection from existing rows in a table. - /// - /// The summary information table to index. - public SummaryInfoRowCollection(Table table) - { - if (0 != String.CompareOrdinal("_SummaryInformation", table.Name)) - { - string message = string.Format(WixDataStrings.EXP_UnsupportedTable, table.Name); - throw new ArgumentException(message, "table"); - } - - foreach (Row row in table.Rows) - { - this.Add(row); - } - } - - /// - /// Gets the summary property ID for the . - /// - /// The row to index. - /// The summary property ID for the . - protected override int GetKeyForItem(Row row) - { - return (int)row[0]; - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs deleted file mode 100644 index dbbfa0f9..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs +++ /dev/null @@ -1,95 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller.Rows -{ - /// - /// Specialization of a row for the upgrade table. - /// - public sealed class UpgradeRow : Row - { - /// - /// Creates an Upgrade row that belongs to a table. - /// - /// Original source lines for this row. - /// Table this Upgrade row belongs to and should get its column definitions from. - public UpgradeRow(SourceLineNumber sourceLineNumbers, Table table) : - base(sourceLineNumbers, table) - { - } - - public UpgradeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : - base(sourceLineNumbers, tableDefinition) - { - } - - /// - /// Gets and sets the upgrade code for the row. - /// - /// Upgrade code for the row. - public string UpgradeCode - { - get { return (string)this.Fields[0].Data; } - set { this.Fields[0].Data = value; } - } - - /// - /// Gets and sets the version minimum for the row. - /// - /// Version minimum for the row. - public string VersionMin - { - get { return (string)this.Fields[1].Data; } - set { this.Fields[1].Data = value; } - } - - /// - /// Gets and sets the version maximum for the row. - /// - /// Version maximum for the row. - public string VersionMax - { - get { return (string)this.Fields[2].Data; } - set { this.Fields[2].Data = value; } - } - - /// - /// Gets and sets the language for the row. - /// - /// Language for the row. - public string Language - { - get { return (string)this.Fields[3].Data; } - set { this.Fields[3].Data = value; } - } - - /// - /// Gets and sets the attributes for the row. - /// - /// Attributes for the row. - public int Attributes - { - get { return (int)this.Fields[4].Data; } - set { this.Fields[4].Data = value; } - } - - /// - /// Gets and sets the remove code for the row. - /// - /// Remove code for the row. - public string Remove - { - get { return (string)this.Fields[5].Data; } - set { this.Fields[5].Data = value; } - } - - /// - /// Gets and sets the action property for the row. - /// - /// Action property for the row. - public string ActionProperty - { - get { return (string)this.Fields[6].Data; } - set { this.Fields[6].Data = value; } - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs b/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs deleted file mode 100644 index 9131a374..00000000 --- a/src/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs +++ /dev/null @@ -1,17 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using WixToolset.Data.Symbols; - - /// - /// Enhancements to the SequenceTable enum. - /// - public static class SequenceTableExtensions - { - /// - /// Gets the SequenceTable enum as the Windows Installer table name. - /// - public static string WindowsInstallerTableName(this SequenceTable sequence) => (sequence == SequenceTable.AdvertiseExecuteSequence) ? "AdvtExecuteSequence" : sequence.ToString(); - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs b/src/WixToolset.Data/WindowsInstaller/SubStorage.cs deleted file mode 100644 index 76b1b795..00000000 --- a/src/WixToolset.Data/WindowsInstaller/SubStorage.cs +++ /dev/null @@ -1,112 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System.Xml; - - /// - /// Substorage inside an output. - /// - public sealed class SubStorage - { - /// - /// Instantiate a new substorage. - /// - /// The substorage name. - /// The substorage data. - public SubStorage(string name, WindowsInstallerData data) - { - this.Name = name; - this.Data = data; - } - - /// - /// Gets the substorage name. - /// - /// The substorage name. - public string Name { get; } - - /// - /// Gets the substorage data. - /// - /// The substorage data. - public WindowsInstallerData Data { get; } - - /// - /// Creates a SubStorage from the XmlReader. - /// - /// Reader to get data from. - /// Table definitions to use for strongly-typed rows. - /// New SubStorage object. - internal static SubStorage Read(XmlReader reader, TableDefinitionCollection tableDefinitions) - { - if (reader.LocalName != "subStorage") - { - throw new XmlException(); - } - - WindowsInstallerData data = null; - string name = null; - - var empty = reader.IsEmptyElement; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "name": - name = reader.Value; - break; - } - } - - if (!empty) - { - var done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case WindowsInstallerData.XmlElementName: - data = WindowsInstallerData.Read(reader, tableDefinitions, true); - break; - default: - throw new XmlException(); - } - break; - - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return new SubStorage(name, data); - } - - /// - /// Persists a SubStorage in an XML format. - /// - /// XmlWriter where the SubStorage should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("subStorage", WindowsInstallerData.XmlNamespaceUri); - - writer.WriteAttributeString("name", this.Name); - - this.Data.Write(writer); - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Table.cs b/src/WixToolset.Data/WindowsInstaller/Table.cs deleted file mode 100644 index 714be20f..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Table.cs +++ /dev/null @@ -1,190 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Xml; - - /// - /// Object that represents a table in a database. - /// - [DebuggerDisplay("{Name}")] - public class Table - { - /// - /// Creates a table. - /// - /// Definition of the table. - public Table(TableDefinition tableDefinition) - { - this.Definition = tableDefinition; - this.Rows = new List(); - } - - /// - /// Gets the table definition. - /// - /// Definition of the table. - public TableDefinition Definition { get; } - - /// - /// Gets the name of the table. - /// - /// Name of the table. - public string Name => this.Definition.Name; - - /// - /// Gets or sets the table transform operation. - /// - /// The table transform operation. - public TableOperation Operation { get; set; } - - /// - /// Gets the rows contained in the table. - /// - /// Rows contained in the table. - public IList Rows { get; } - - /// - /// Creates a new row and adds it to the table. - /// - /// Original source lines for this row. - /// Row created in table. - public Row CreateRow(SourceLineNumber sourceLineNumbers) - { - var row = this.Definition.CreateRow(sourceLineNumbers, this); - this.Rows.Add(row); - return row; - } - - /// - /// Validates the rows of this OutputTable and throws if it collides on - /// primary keys. - /// - public void ValidateRows() - { - var primaryKeys = new Dictionary(); - - foreach (var row in this.Rows) - { - var primaryKey = row.GetPrimaryKey(); - - if (primaryKeys.TryGetValue(primaryKey, out var collisionSourceLineNumber)) - { - throw new WixException(ErrorMessages.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); - } - - primaryKeys.Add(primaryKey, row.SourceLineNumbers); - } - } - - /// - /// Parse a table from the xml. - /// - /// XmlReader where the intermediate is persisted. - /// TableDefinitions to use in the intermediate. - /// The parsed table. - internal static Table Read(XmlReader reader, TableDefinitionCollection tableDefinitions) - { - Debug.Assert("table" == reader.LocalName); - - bool empty = reader.IsEmptyElement; - TableOperation operation = TableOperation.None; - string name = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "name": - name = reader.Value; - break; - case "op": - switch (reader.Value) - { - case "add": - operation = TableOperation.Add; - break; - case "drop": - operation = TableOperation.Drop; - break; - default: - throw new XmlException(); - } - break; - } - } - - if (null == name) - { - throw new XmlException(); - } - - TableDefinition tableDefinition = tableDefinitions[name]; - Table table = new Table(tableDefinition); - table.Operation = operation; - - if (!empty) - { - bool done = false; - - // loop through all the rows in a table - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "row": - Row.Read(reader, table); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return table; - } - - /// - /// Persists a row in an XML format. - /// - /// XmlWriter where the Row should persist itself as XML. - internal void Write(XmlWriter writer) - { - if (null == writer) - { - throw new ArgumentNullException("writer"); - } - - writer.WriteStartElement("table", WindowsInstallerData.XmlNamespaceUri); - writer.WriteAttributeString("name", this.Name); - - if (TableOperation.None != this.Operation) - { - writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); - } - - foreach (var row in this.Rows) - { - row.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs deleted file mode 100644 index a7602d05..00000000 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinition.cs +++ /dev/null @@ -1,267 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Xml; - - /// - /// Definition of a table in a database. - /// - public sealed class TableDefinition : IComparable - { - /// - /// Tracks the maximum number of columns supported in a real table. - /// This is a Windows Installer limitation. - /// - public const int MaxColumnsInRealTable = 32; - - /// - /// Creates a table definition. - /// - /// Name of table to create. - /// Optional symbol definition for this table. - /// Column definitions for the table. - /// Flag if table is unreal. - /// Whether the primary key is the id of the symbol definition associated with this table. - /// The specialized type for the rows. - public TableDefinition(string name, IntermediateSymbolDefinition symbolDefinition, IEnumerable columns, bool unreal = false, bool symbolIdIsPrimaryKey = false, Type strongRowType = null) - { - this.Name = name; - this.SymbolDefinition = symbolDefinition; - this.SymbolIdIsPrimaryKey = symbolIdIsPrimaryKey; - this.Unreal = unreal; - this.Columns = columns?.ToArray(); - this.StrongRowType = strongRowType ?? typeof(Row); - - if (this.Columns == null || this.Columns.Length == 0) - { - throw new ArgumentOutOfRangeException(nameof(columns)); - } -#if DEBUG - if (this.StrongRowType != typeof(Row) && !this.StrongRowType.IsSubclassOf(typeof(Row))) { throw new ArgumentException(nameof(strongRowType)); } -#endif - } - - /// - /// Gets the name of the table. - /// - /// Name of the table. - public string Name { get; } - - /// - /// Gets the symbol definition associated with this table. - /// - /// The symbol definition. - public IntermediateSymbolDefinition SymbolDefinition { get; } - - /// - /// Gets if the table is unreal. - /// - /// Flag if table is unreal. - public bool Unreal { get; } - - /// - /// Gets the collection of column definitions for this table. - /// - /// Collection of column definitions for this table. - public ColumnDefinition[] Columns { get; } - - /// - /// Gets if the primary key is the id of the symbol definition associated with this table. - /// - /// Flag if table is unreal. - public bool SymbolIdIsPrimaryKey { get; } - - private Type StrongRowType { get; } - - /// - /// Gets the column definition in the table by index. - /// - /// Index of column to locate. - /// Column definition in the table by index. - public ColumnDefinition this[int columnIndex] => this.Columns[columnIndex]; - - /// - /// In general this method shouldn't be used - create rows from a Table instead. - /// Creates a new row object of the type specified in this definition. - /// - /// Original source lines for this row. - /// Created row. - public Row CreateRow(SourceLineNumber sourceLineNumbers) - { - var result = (Row)Activator.CreateInstance(this.StrongRowType, sourceLineNumbers, this); - return result; - } - - /// - /// Creates a new row object of the type specified in this definition for the given table. - /// External callers should create the row from the table. - /// - /// Original source lines for this row. - /// The owning table for this row. - /// Created row. - internal Row CreateRow(SourceLineNumber sourceLineNumbers, Table table) - { - var result = (Row)Activator.CreateInstance(this.StrongRowType, sourceLineNumbers, table); - return result; - } - - /// - /// Compares this table definition to another table definition. - /// - /// - /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. - /// - /// The updated to compare with this target definition. - /// 0 if the tables' core properties are the same; otherwise, non-0. - public int CompareTo(TableDefinition updated) - { - // by definition, this object is greater than null - if (null == updated) - { - return 1; - } - - // compare the table names - var ret = String.Compare(this.Name, updated.Name, StringComparison.Ordinal); - - // compare the column count - if (0 == ret) - { - // transforms can only add columns - ret = Math.Min(0, updated.Columns.Length - this.Columns.Length); - - // compare name, type, and length of each column - for (var i = 0; 0 == ret && this.Columns.Length > i; i++) - { - var thisColumnDef = this.Columns[i]; - var updatedColumnDef = updated.Columns[i]; - - // Igmore unreal columns when comparing table definitions. - if (thisColumnDef.Unreal || updatedColumnDef.Unreal) - { - continue; - } - - ret = thisColumnDef.CompareTo(updatedColumnDef); - } - } - - return ret; - } - - /// - /// Parses table definition from xml reader. - /// - /// Reader to get data from. - /// Table definitions to use for strongly-typed rows. - /// The TableDefintion represented by the Xml. - internal static TableDefinition Read(XmlReader reader, TableDefinitionCollection tableDefinitions) - { - var empty = reader.IsEmptyElement; - string name = null; - IntermediateSymbolDefinition symbolDefinition = null; - var unreal = false; - var symbolIdIsPrimaryKey = false; - Type strongRowType = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "name": - name = reader.Value; - break; - case "unreal": - unreal = reader.Value.Equals("yes"); - break; - } - } - - if (null == name) - { - throw new XmlException(); - } - - if (tableDefinitions.TryGet(name, out var tableDefinition)) - { - symbolDefinition = tableDefinition.SymbolDefinition; - symbolIdIsPrimaryKey = tableDefinition.SymbolIdIsPrimaryKey; - strongRowType = tableDefinition.StrongRowType; - } - - var columns = new List(); - var hasPrimaryKeyColumn = false; - - // parse the child elements - if (!empty) - { - var done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "columnDefinition": - var columnDefinition = ColumnDefinition.Read(reader); - columns.Add(columnDefinition); - - if (columnDefinition.PrimaryKey) - { - hasPrimaryKeyColumn = true; - } - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!unreal && !hasPrimaryKeyColumn) - { - throw new WixException(ErrorMessages.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); - } - - if (!done) - { - throw new XmlException(); - } - } - - return new TableDefinition(name, symbolDefinition, columns.ToArray(), unreal, symbolIdIsPrimaryKey, strongRowType); - } - - /// - /// Persists an output in an XML format. - /// - /// XmlWriter where the Output should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("tableDefinition", TableDefinitionCollection.XmlNamespaceUri); - - writer.WriteAttributeString("name", this.Name); - - if (this.Unreal) - { - writer.WriteAttributeString("unreal", "yes"); - } - - foreach (var columnDefinition in this.Columns) - { - columnDefinition.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs deleted file mode 100644 index fcc2b1f6..00000000 --- a/src/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs +++ /dev/null @@ -1,201 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System.Collections; - using System.Collections.Generic; - using System.Linq; - using System.Xml; - - /// - /// Collection for table definitions indexed by table name. - /// - public sealed class TableDefinitionCollection : ICollection - { - public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wi/tables"; - - private Dictionary collection; - - /// - /// Instantiate a new TableDefinitionCollection class. - /// - public TableDefinitionCollection() - { - this.collection = new Dictionary(); - } - - /// - /// Creates a shallow copy of the provided table definition collection. - /// - public TableDefinitionCollection(TableDefinitionCollection tableDefinitions) - { - this.collection = new Dictionary(tableDefinitions.collection); - } - - /// - /// Creates a table definition collection with the given table definitions. - /// - public TableDefinitionCollection(IEnumerable tableDefinitions) - { - this.collection = tableDefinitions.ToDictionary(t => t.Name); - } - - /// - /// Gets the number of items in the collection. - /// - /// Number of items in collection. - public int Count => this.collection.Count; - - /// - /// Table definition collections are never read-only. - /// - public bool IsReadOnly => false; - - /// - /// Gets a table definition by name. - /// - /// Name of table to locate. - public TableDefinition this[string tableName] - { - get - { - if (!this.collection.TryGetValue(tableName, out var table)) - { - throw new WixMissingTableDefinitionException(ErrorMessages.MissingTableDefinition(tableName)); - } - - return table; - } - } - - /// - /// Tries to get a table definition by name. - /// - /// Name of table to locate. - /// Table definition if found. - /// True if table definition was found otherwise false. - public bool TryGet(string tableName, out TableDefinition table) => this.collection.TryGetValue(tableName, out table); - - /// - /// Adds a table definition to the collection. - /// - /// Table definition to add to the collection. - /// Indexes by table definition name. - public void Add(TableDefinition tableDefinition) => this.collection.Add(tableDefinition.Name, tableDefinition); - - /// - /// Removes all table definitions from the collection. - /// - public void Clear() => this.collection.Clear(); - - /// - /// Checks if the collection contains a table name. - /// - /// The table to check in the collection. - /// True if collection contains the table. - public bool Contains(string tableName) => this.collection.ContainsKey(tableName); - - /// - /// Checks if the collection contains a table. - /// - /// The table to check in the collection. - /// True if collection contains the table. - public bool Contains(TableDefinition table) => this.collection.ContainsKey(table.Name); - - /// - /// Copies table definitions to an arry. - /// - /// Array to copy the table definitions to. - /// Index in the array to start copying at. - public void CopyTo(TableDefinition[] array, int index) => this.collection.Values.CopyTo(array, index); - - /// - /// Removes a table definition from the collection. - /// - /// Table to remove from the collection. - /// True if the table definition existed in the collection and was removed. - public bool Remove(TableDefinition table) => this.collection.Remove(table.Name); - - /// - /// Gets enumerator for the collection. - /// - /// Enumerator for the collection. - public IEnumerator GetEnumerator() => this.collection.Values.GetEnumerator(); - - /// - /// Gets the untyped enumerator for the collection. - /// - /// Untyped enumerator for the collection. - IEnumerator IEnumerable.GetEnumerator() => this.collection.Values.GetEnumerator(); - - /// - /// Loads a collection of table definitions from a XmlReader in memory. - /// - /// Reader to get data from. - /// Table definitions to use for strongly-typed rows. - /// The TableDefinitionCollection represented by the xml. - internal static TableDefinitionCollection Read(XmlReader reader, TableDefinitionCollection tableDefinitions) - { - if ("tableDefinitions" != reader.LocalName) - { - throw new XmlException(); - } - - var empty = reader.IsEmptyElement; - var tableDefinitionCollection = new TableDefinitionCollection(); - - while (reader.MoveToNextAttribute()) - { - } - - // parse the child elements - if (!empty) - { - var done = false; - - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "tableDefinition": - tableDefinitionCollection.Add(TableDefinition.Read(reader, tableDefinitions)); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - return tableDefinitionCollection; - } - - /// - /// Persists a TableDefinitionCollection in an XML format. - /// - /// XmlWriter where the TableDefinitionCollection should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement("tableDefinitions", XmlNamespaceUri); - - foreach (var tableDefinition in this.collection.Values.OrderBy(t => t.Name)) - { - tableDefinition.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs b/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs deleted file mode 100644 index a399c6fa..00000000 --- a/src/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs +++ /dev/null @@ -1,105 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System.Collections.Generic; - using System.Linq; - - /// - /// Collection for tables. - /// - public sealed class TableIndexedCollection : ICollection
- { - private Dictionary collection; - - /// - /// Instantiate a new empty collection. - /// - public TableIndexedCollection() => this.collection = new Dictionary(); - - /// - /// Instantiate a new collection populated with a set of tables. - /// - /// Set of tables. - public TableIndexedCollection(IEnumerable
tables) => this.collection = tables.ToDictionary(t => t.Name); - - /// - /// Gets the number of items in the collection. - /// - /// Number of items in collection. - public int Count => this.collection.Count; - - /// - /// Table indexed collection is never read only. - /// - public bool IsReadOnly => false; - - /// - /// Adds a table to the collection. - /// - /// Table to add to the collection. - /// Indexes the table by name. - public void Add(Table table) => this.collection.Add(table.Name, table); - - /// - /// Clear the tables from the collection. - /// - public void Clear() => this.collection.Clear(); - - /// - /// Determines if a table is in the collection. - /// - /// Table to check if it is in the collection. - /// True if the table name is in the collection, otherwise false. - public bool Contains(Table table) => this.collection.ContainsKey(table.Name); - - /// - /// Copies the collection into an array. - /// - /// Array to copy the collection into. - /// Index to start copying from. - public void CopyTo(Table[] array, int arrayIndex) => this.collection.Values.CopyTo(array, arrayIndex); - - /// - /// Remove a table from the collection by name. - /// - /// Table name to remove from the collection. - public void Remove(string tableName) => _ = this.collection.Remove(tableName); - - /// - /// Remove a table from the collection. - /// - /// Table with matching name to remove from the collection. - public bool Remove(Table table) => this.collection.Remove(table.Name); - - /// - /// Gets an enumerator over the whole collection. - /// - /// Collection enumerator. - public IEnumerator
GetEnumerator() => this.collection.Values.GetEnumerator(); - - /// - /// Gets an untyped enumerator over the whole collection. - /// - /// Untyped collection enumerator. - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => this.collection.Values.GetEnumerator(); - - /// - /// Gets a table by name. - /// - /// Name of table to locate. - public Table this[string tableName] - { - get => this.collection.TryGetValue(tableName, out var table) ? table : null; - set => this.collection[tableName] = value; - } - - /// - /// Tries to find a table by name. - /// - /// Table name to locate. - /// Found table. - /// True if table with table name was found, otherwise false. - public bool TryGetTable(string tableName, out Table table) => this.collection.TryGetValue(tableName, out table); - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/TableOperation.cs b/src/WixToolset.Data/WindowsInstaller/TableOperation.cs deleted file mode 100644 index ccd0ebca..00000000 --- a/src/WixToolset.Data/WindowsInstaller/TableOperation.cs +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - /// - /// The table transform operations. - /// - public enum TableOperation - { - /// - /// No operation. - /// - None, - - /// - /// Added table. - /// - Add, - - /// - /// Dropped table. - /// - Drop, - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs deleted file mode 100644 index c60f2c0d..00000000 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs +++ /dev/null @@ -1,259 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - public static class WindowsInstallerConstants - { - // Component.Attributes - public const int MsidbComponentAttributesLocalOnly = 0; - public const int MsidbComponentAttributesSourceOnly = 1; - public const int MsidbComponentAttributesOptional = 2; - public const int MsidbComponentAttributesRegistryKeyPath = 4; - public const int MsidbComponentAttributesSharedDllRefCount = 8; - public const int MsidbComponentAttributesPermanent = 16; - public const int MsidbComponentAttributesODBCDataSource = 32; - public const int MsidbComponentAttributesTransitive = 64; - public const int MsidbComponentAttributesNeverOverwrite = 128; - public const int MsidbComponentAttributes64bit = 256; - public const int MsidbComponentAttributesDisableRegistryReflection = 512; - public const int MsidbComponentAttributesUninstallOnSupersedence = 1024; - public const int MsidbComponentAttributesShared = 2048; - - // BBControl.Attributes & Control.Attributes - public const int MsidbControlAttributesVisible = 0x00000001; - public const int MsidbControlAttributesEnabled = 0x00000002; - public const int MsidbControlAttributesSunken = 0x00000004; - public const int MsidbControlAttributesIndirect = 0x00000008; - public const int MsidbControlAttributesInteger = 0x00000010; - public const int MsidbControlAttributesRTLRO = 0x00000020; - public const int MsidbControlAttributesRightAligned = 0x00000040; - public const int MsidbControlAttributesLeftScroll = 0x00000080; - public const int MsidbControlAttributesBiDi = MsidbControlAttributesRTLRO | MsidbControlAttributesRightAligned | MsidbControlAttributesLeftScroll; - - // Text controls - public const int MsidbControlAttributesTransparent = 0x00010000; - public const int MsidbControlAttributesNoPrefix = 0x00020000; - public const int MsidbControlAttributesNoWrap = 0x00040000; - public const int MsidbControlAttributesFormatSize = 0x00080000; - public const int MsidbControlAttributesUsersLanguage = 0x00100000; - - // Edit controls - public const int MsidbControlAttributesMultiline = 0x00010000; - public const int MsidbControlAttributesPasswordInput = 0x00200000; - - // ProgressBar controls - public const int MsidbControlAttributesProgress95 = 0x00010000; - - // VolumeSelectCombo and DirectoryCombo controls - public const int MsidbControlAttributesRemovableVolume = 0x00010000; - public const int MsidbControlAttributesFixedVolume = 0x00020000; - public const int MsidbControlAttributesRemoteVolume = 0x00040000; - public const int MsidbControlAttributesCDROMVolume = 0x00080000; - public const int MsidbControlAttributesRAMDiskVolume = 0x00100000; - public const int MsidbControlAttributesFloppyVolume = 0x00200000; - - // VolumeCostList controls - public const int MsidbControlShowRollbackCost = 0x00400000; - - // ListBox and ComboBox controls - public const int MsidbControlAttributesSorted = 0x00010000; - public const int MsidbControlAttributesComboList = 0x00020000; - - // picture button controls - public const int MsidbControlAttributesImageHandle = 0x00010000; - public const int MsidbControlAttributesPushLike = 0x00020000; - public const int MsidbControlAttributesBitmap = 0x00040000; - public const int MsidbControlAttributesIcon = 0x00080000; - public const int MsidbControlAttributesFixedSize = 0x00100000; - public const int MsidbControlAttributesIconSize16 = 0x00200000; - public const int MsidbControlAttributesIconSize32 = 0x00400000; - public const int MsidbControlAttributesIconSize48 = 0x00600000; - public const int MsidbControlAttributesElevationShield = 0x00800000; - - // RadioButton controls - public const int MsidbControlAttributesHasBorder = 0x01000000; - - // CustomAction.Type - // executable types - public const int MsidbCustomActionTypeDll = 0x00000001; // Target = entry point name - public const int MsidbCustomActionTypeExe = 0x00000002; // Target = command line args - public const int MsidbCustomActionTypeTextData = 0x00000003; // Target = text string to be formatted and set into property - public const int MsidbCustomActionTypeJScript = 0x00000005; // Target = entry point name; null if none to call - public const int MsidbCustomActionTypeVBScript = 0x00000006; // Target = entry point name; null if none to call - public const int MsidbCustomActionTypeInstall = 0x00000007; // Target = property list for nested engine initialization - public const int MsidbCustomActionTypeSourceBits = 0x00000030; - public const int MsidbCustomActionTypeTargetBits = 0x00000007; - public const int MsidbCustomActionTypeReturnBits = 0x000000C0; - public const int MsidbCustomActionTypeExecuteBits = 0x00000700; - - // source of code - public const int MsidbCustomActionTypeBinaryData = 0x00000000; // Source = Binary.Name; data stored in stream - public const int MsidbCustomActionTypeSourceFile = 0x00000010; // Source = File.File; file part of installation - public const int MsidbCustomActionTypeDirectory = 0x00000020; // Source = Directory.Directory; folder containing existing file - public const int MsidbCustomActionTypeProperty = 0x00000030; // Source = Property.Property; full path to executable - - // return processing; default is syncronous execution; process return code - public const int MsidbCustomActionTypeContinue = 0x00000040; // ignore action return status; continue running - public const int MsidbCustomActionTypeAsync = 0x00000080; // run asynchronously - - // execution scheduling flags; default is execute whenever sequenced - public const int MsidbCustomActionTypeFirstSequence = 0x00000100; // skip if UI sequence already run - public const int MsidbCustomActionTypeOncePerProcess = 0x00000200; // skip if UI sequence already run in same process - public const int MsidbCustomActionTypeClientRepeat = 0x00000300; // run on client only if UI already run on client - public const int MsidbCustomActionTypeInScript = 0x00000400; // queue for execution within script - public const int MsidbCustomActionTypeRollback = 0x00000100; // in conjunction with InScript: queue in Rollback script - public const int MsidbCustomActionTypeCommit = 0x00000200; // in conjunction with InScript: run Commit ops from script on success - - // security context flag; default to impersonate as user; valid only if InScript - public const int MsidbCustomActionTypeNoImpersonate = 0x00000800; // no impersonation; run in system context - public const int MsidbCustomActionTypeTSAware = 0x00004000; // impersonate for per-machine installs on TS machines - public const int MsidbCustomActionType64BitScript = 0x00001000; // script should run in 64bit process - public const int MsidbCustomActionTypeHideTarget = 0x00002000; // don't record the contents of the Target field in the log file. - - public const int MsidbCustomActionTypePatchUninstall = 0x00008000; // run on patch uninstall - - // Dialog.Attributes - public const int MsidbDialogAttributesVisible = 0x00000001; - public const int MsidbDialogAttributesModal = 0x00000002; - public const int MsidbDialogAttributesMinimize = 0x00000004; - public const int MsidbDialogAttributesSysModal = 0x00000008; - public const int MsidbDialogAttributesKeepModeless = 0x00000010; - public const int MsidbDialogAttributesTrackDiskSpace = 0x00000020; - public const int MsidbDialogAttributesUseCustomPalette = 0x00000040; - public const int MsidbDialogAttributesRTLRO = 0x00000080; - public const int MsidbDialogAttributesRightAligned = 0x00000100; - public const int MsidbDialogAttributesLeftScroll = 0x00000200; - public const int MsidbDialogAttributesBiDi = MsidbDialogAttributesRTLRO | MsidbDialogAttributesRightAligned | MsidbDialogAttributesLeftScroll; - public const int MsidbDialogAttributesError = 0x00010000; - public const int CommonControlAttributesInvert = MsidbControlAttributesVisible + MsidbControlAttributesEnabled; - public const int DialogAttributesInvert = MsidbDialogAttributesVisible + MsidbDialogAttributesModal + MsidbDialogAttributesMinimize; - - // Feature.Attributes - public const int MsidbFeatureAttributesFavorLocal = 0; - public const int MsidbFeatureAttributesFavorSource = 1; - public const int MsidbFeatureAttributesFollowParent = 2; - public const int MsidbFeatureAttributesFavorAdvertise = 4; - public const int MsidbFeatureAttributesDisallowAdvertise = 8; - public const int MsidbFeatureAttributesUIDisallowAbsent = 16; - public const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; - - // File.Attributes - public const int MsidbFileAttributesReadOnly = 1; - public const int MsidbFileAttributesHidden = 2; - public const int MsidbFileAttributesSystem = 4; - public const int MsidbFileAttributesVital = 512; - public const int MsidbFileAttributesChecksum = 1024; - public const int MsidbFileAttributesPatchAdded = 4096; - public const int MsidbFileAttributesNoncompressed = 8192; - public const int MsidbFileAttributesCompressed = 16384; - - // IniFile.Action & RemoveIniFile.Action - public const int MsidbIniFileActionAddLine = 0; - public const int MsidbIniFileActionCreateLine = 1; - public const int MsidbIniFileActionRemoveLine = 2; - public const int MsidbIniFileActionAddTag = 3; - public const int MsidbIniFileActionRemoveTag = 4; - - // MoveFile.Options - public const int MsidbMoveFileOptionsMove = 1; - - // ServiceInstall.Attributes - public const int MsidbServiceInstallOwnProcess = 0x00000010; - public const int MsidbServiceInstallShareProcess = 0x00000020; - public const int MsidbServiceInstallInteractive = 0x00000100; - public const int MsidbServiceInstallAutoStart = 0x00000002; - public const int MsidbServiceInstallDemandStart = 0x00000003; - public const int MsidbServiceInstallDisabled = 0x00000004; - public const int MsidbServiceInstallErrorIgnore = 0x00000000; - public const int MsidbServiceInstallErrorNormal = 0x00000001; - public const int MsidbServiceInstallErrorCritical = 0x00000003; - public const int MsidbServiceInstallErrorControlVital = 0x00008000; - - // ServiceConfig.Event - public const int MsidbServiceConfigEventInstall = 0x00000001; - public const int MsidbServiceConfigEventUninstall = 0x00000002; - public const int MsidbServiceConfigEventReinstall = 0x00000004; - - // ServiceControl.Attributes - public const int MsidbServiceControlEventStart = 0x00000001; - public const int MsidbServiceControlEventStop = 0x00000002; - public const int MsidbServiceControlEventDelete = 0x00000008; - public const int MsidbServiceControlEventUninstallStart = 0x00000010; - public const int MsidbServiceControlEventUninstallStop = 0x00000020; - public const int MsidbServiceControlEventUninstallDelete = 0x00000080; - - // TextStyle.StyleBits - public const int MsidbTextStyleStyleBitsBold = 1; - public const int MsidbTextStyleStyleBitsItalic = 2; - public const int MsidbTextStyleStyleBitsUnderline = 4; - public const int MsidbTextStyleStyleBitsStrike = 8; - - // Upgrade.Attributes - public const int MsidbUpgradeAttributesMigrateFeatures = 0x00000001; - public const int MsidbUpgradeAttributesOnlyDetect = 0x00000002; - public const int MsidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004; - public const int MsidbUpgradeAttributesVersionMinInclusive = 0x00000100; - public const int MsidbUpgradeAttributesVersionMaxInclusive = 0x00000200; - public const int MsidbUpgradeAttributesLanguagesExclusive = 0x00000400; - - // Registry Hive Roots - public const int MsidbRegistryRootClassesRoot = 0; - public const int MsidbRegistryRootCurrentUser = 1; - public const int MsidbRegistryRootLocalMachine = 2; - public const int MsidbRegistryRootUsers = 3; - - // Locator Types - public const int MsidbLocatorTypeDirectory = 0; - public const int MsidbLocatorTypeFileName = 1; - public const int MsidbLocatorTypeRawValue = 2; - public const int MsidbLocatorType64bit = 16; - - public const int MsidbClassAttributesRelativePath = 1; - - // RemoveFile.InstallMode - public const int MsidbRemoveFileInstallModeOnInstall = 0x00000001; - public const int MsidbRemoveFileInstallModeOnRemove = 0x00000002; - public const int MsidbRemoveFileInstallModeOnBoth = 0x00000003; - - // ODBCDataSource.Registration - public const int MsidbODBCDataSourceRegistrationPerMachine = 0; - public const int MsidbODBCDataSourceRegistrationPerUser = 1; - - // ModuleConfiguration.Format - public const int MsidbModuleConfigurationFormatText = 0; - public const int MsidbModuleConfigurationFormatKey = 1; - public const int MsidbModuleConfigurationFormatInteger = 2; - public const int MsidbModuleConfigurationFormatBitfield = 3; - - // ModuleConfiguration.Attributes - public const int MsidbMsmConfigurableOptionKeyNoOrphan = 1; - public const int MsidbMsmConfigurableOptionNonNullable = 2; - - // ' Windows API function ShowWindow constants - used in Shortcut table - public const int SWSHOWNORMAL = 0x00000001; - public const int SWSHOWMAXIMIZED = 0x00000003; - public const int SWSHOWMINNOACTIVE = 0x00000007; - - public const int MsidbEmbeddedUI = 0x01; - public const int MsidbEmbeddedHandlesBasic = 0x02; - - public const int INSTALLLOGMODE_FATALEXIT = 0x00001; - public const int INSTALLLOGMODE_ERROR = 0x00002; - public const int INSTALLLOGMODE_WARNING = 0x00004; - public const int INSTALLLOGMODE_USER = 0x00008; - public const int INSTALLLOGMODE_INFO = 0x00010; - public const int INSTALLLOGMODE_FILESINUSE = 0x00020; - public const int INSTALLLOGMODE_RESOLVESOURCE = 0x00040; - public const int INSTALLLOGMODE_OUTOFDISKSPACE = 0x00080; - public const int INSTALLLOGMODE_ACTIONSTART = 0x00100; - public const int INSTALLLOGMODE_ACTIONDATA = 0x00200; - public const int INSTALLLOGMODE_PROGRESS = 0x00400; - public const int INSTALLLOGMODE_COMMONDATA = 0x00800; - public const int INSTALLLOGMODE_INITIALIZE = 0x01000; - public const int INSTALLLOGMODE_TERMINATE = 0x02000; - public const int INSTALLLOGMODE_SHOWDIALOG = 0x04000; - public const int INSTALLLOGMODE_RMFILESINUSE = 0x02000000; - public const int INSTALLLOGMODE_INSTALLSTART = 0x04000000; - public const int INSTALLLOGMODE_INSTALLEND = 0x08000000; - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs deleted file mode 100644 index 8d69cd08..00000000 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs +++ /dev/null @@ -1,323 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Collections.Generic; - using System.Globalization; - using System.Linq; - using System.Xml; - - /// - /// Output is generated by the linker. - /// - public sealed class WindowsInstallerData - { - internal const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/windowsinstallerdata"; - internal const string XmlElementName = "windowsInstallerData"; - - private static readonly Version CurrentVersion = new Version("4.0.0.0"); - private const string WixOutputStreamName = "wix-wid.xml"; - private static readonly XmlWriterSettings WriterSettings = new XmlWriterSettings - { - CheckCharacters = false, - CloseOutput = false, - OmitXmlDeclaration = true, - }; - - /// - /// Creates a new empty output object. - /// - /// The source line information for the output. - public WindowsInstallerData(SourceLineNumber sourceLineNumbers) - { - this.SourceLineNumbers = sourceLineNumbers; - this.SubStorages = new List(); - this.Tables = new TableIndexedCollection(); - } - - /// - /// Gets the type of the output. - /// - /// Type of the output. - public OutputType Type { get; set; } - - /// - /// Gets or sets the codepage for this output. - /// - /// Codepage of the output. - public int Codepage { get; set; } - - /// - /// Gets the source line information for this output. - /// - /// The source line information for this output. - public SourceLineNumber SourceLineNumbers { get; private set; } - - /// - /// Gets the substorages in this output. - /// - /// The substorages in this output. - public ICollection SubStorages { get; private set; } - - /// - /// Gets the tables contained in this output. - /// - /// Collection of tables. - public TableIndexedCollection Tables { get; private set; } - - /// - /// Ensure this output contains a particular table. - /// - /// Definition of the table that should exist. - /// The table in this output. - public Table EnsureTable(TableDefinition tableDefinition) - { - if (!this.Tables.TryGetTable(tableDefinition.Name, out var table)) - { - table = new Table(tableDefinition); - this.Tables.Add(table); - } - - return table; - } - - /// - /// Saves an output to a WixOutput container. - /// - /// Container to save to. - public void Save(WixOutput wixout) - { - using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName), WriterSettings)) - { - this.Save(writer); - } - } - - /// - /// Saves an output to an XmlWriter. - /// - /// XmlWriter to save to. - public void Save(XmlWriter writer) - { - writer.WriteStartDocument(); - this.Write(writer); - writer.WriteEndDocument(); - } - - /// - /// Gets table by name. - /// - public bool TryGetTable(string tableName, out Table table) => this.Tables.TryGetTable(tableName, out table); - - /// - /// Loads an output from a path on disk. - /// - /// Path to output file saved on disk. - /// Suppresses wix.dll version mismatch check. - /// Output object. - public static WindowsInstallerData Load(string path, bool suppressVersionCheck = false) - { - var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); - return WindowsInstallerData.Load(path, tableDefinitions, suppressVersionCheck); - } - - /// - /// Loads an output from a path on disk. - /// - /// Path to output file saved on disk. - /// Table definitions to use for creating strongly-typed rows. - /// Suppresses wix.dll version mismatch check. - /// Output object. - public static WindowsInstallerData Load(string path, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck = false) - { - using (var wixOutput = WixOutput.Read(path)) - { - return WindowsInstallerData.Load(wixOutput, tableDefinitions, suppressVersionCheck); - } - } - - /// - /// Loads an output from a WixOutput object. - /// - /// WixOutput object. - /// Suppresses wix.dll version mismatch check. - /// Output object. - public static WindowsInstallerData Load(WixOutput wixOutput, bool suppressVersionCheck = false) - { - var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); - return WindowsInstallerData.Load(wixOutput, tableDefinitions, suppressVersionCheck); - } - - /// - /// Loads an output from a WixOutput object. - /// - /// WixOutput object. - /// Table definitions to use for creating strongly-typed rows. - /// Suppresses wix.dll version mismatch check. - /// Output object. - public static WindowsInstallerData Load(WixOutput wixOutput, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck = false) - { - using (var stream = wixOutput.GetDataStream(WixOutputStreamName)) - using (var reader = XmlReader.Create(stream, null, wixOutput.Uri.AbsoluteUri)) - { - try - { - reader.MoveToContent(); - return WindowsInstallerData.Read(reader, tableDefinitions, suppressVersionCheck); - } - catch (XmlException xe) - { - throw new WixCorruptFileException(wixOutput.Uri.AbsoluteUri, "wixout", xe); - } - } - } - - /// - /// Processes an XmlReader and builds up the output object. - /// - /// Reader to get data from. - /// Table definitions to use for creating strongly-typed rows. - /// Suppresses wix.dll version mismatch check. - /// The Output represented by the Xml. - internal static WindowsInstallerData Read(XmlReader reader, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) - { - if (!reader.LocalName.Equals(WindowsInstallerData.XmlElementName)) - { - throw new XmlException(); - } - - var empty = reader.IsEmptyElement; - var output = new WindowsInstallerData(SourceLineNumber.CreateFromUri(reader.BaseURI)); - Version version = null; - - while (reader.MoveToNextAttribute()) - { - switch (reader.LocalName) - { - case "codepage": - output.Codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture.NumberFormat); - break; - case "type": - switch (reader.Value) - { - case "Bundle": - output.Type = OutputType.Bundle; - break; - case "Module": - output.Type = OutputType.Module; - break; - case "Patch": - output.Type = OutputType.Patch; - break; - case "PatchCreation": - output.Type = OutputType.PatchCreation; - break; - case "Product": - output.Type = OutputType.Product; - break; - case "Transform": - output.Type = OutputType.Transform; - break; - default: - throw new XmlException(); - } - break; - case "version": - version = new Version(reader.Value); - break; - } - } - - if (!suppressVersionCheck && null != version && !WindowsInstallerData.CurrentVersion.Equals(version)) - { - throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), WindowsInstallerData.XmlElementName, version.ToString(), WindowsInstallerData.CurrentVersion.ToString())); - } - - // loop through the rest of the xml building up the Output object - TableDefinitionCollection xmlTableDefinitions = null; - var tables = new List
(); - if (!empty) - { - var done = false; - - // loop through all the fields in a row - while (!done && reader.Read()) - { - switch (reader.NodeType) - { - case XmlNodeType.Element: - switch (reader.LocalName) - { - case "subStorage": - output.SubStorages.Add(SubStorage.Read(reader, tableDefinitions)); - break; - case "table": - if (null == xmlTableDefinitions) - { - throw new XmlException(); - } - tables.Add(Table.Read(reader, xmlTableDefinitions)); - break; - case "tableDefinitions": - xmlTableDefinitions = TableDefinitionCollection.Read(reader, tableDefinitions); - break; - default: - throw new XmlException(); - } - break; - case XmlNodeType.EndElement: - done = true; - break; - } - } - - if (!done) - { - throw new XmlException(); - } - } - - output.Tables = new TableIndexedCollection(tables); - return output; - } - - /// - /// Persists an output in an XML format. - /// - /// XmlWriter where the Output should persist itself as XML. - internal void Write(XmlWriter writer) - { - writer.WriteStartElement(WindowsInstallerData.XmlElementName, XmlNamespaceUri); - - writer.WriteAttributeString("type", this.Type.ToString()); - - if (0 != this.Codepage) - { - writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); - } - - writer.WriteAttributeString("version", WindowsInstallerData.CurrentVersion.ToString()); - - // Collect all the table definitions and write them. - var tableDefinitions = new TableDefinitionCollection(); - foreach (var table in this.Tables) - { - tableDefinitions.Add(table.Definition); - } - tableDefinitions.Write(writer); - - foreach (var table in this.Tables.OrderBy(t => t.Name)) - { - table.Write(writer); - } - - foreach (var subStorage in this.SubStorages) - { - subStorage.Write(writer); - } - - writer.WriteEndElement(); - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs deleted file mode 100644 index b6930b79..00000000 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ /dev/null @@ -1,478 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - using System.Collections.Generic; - using System.Linq; - using WixToolset.Data.Symbols; - - public static class WindowsInstallerStandard - { - private static readonly Dictionary standardActionsById; - private static readonly HashSet standardActionNames; - private static readonly Dictionary standardDirectoriesById; - - /// - /// References: - /// Title: Property Reference [Windows Installer]: - /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp - /// - private static readonly HashSet standardProperties = new HashSet - { - "~", // REG_MULTI_SZ/NULL marker - "ACTION", - "ADDDEFAULT", - "ADDLOCAL", - "ADDDSOURCE", - "AdminProperties", - "AdminUser", - "ADVERTISE", - "AFTERREBOOT", - "AllowProductCodeMismatches", - "AllowProductVersionMajorMismatches", - "ALLUSERS", - "Alpha", - "ApiPatchingSymbolFlags", - "ARPAUTHORIZEDCDFPREFIX", - "ARPCOMMENTS", - "ARPCONTACT", - "ARPHELPLINK", - "ARPHELPTELEPHONE", - "ARPINSTALLLOCATION", - "ARPNOMODIFY", - "ARPNOREMOVE", - "ARPNOREPAIR", - "ARPPRODUCTIONICON", - "ARPREADME", - "ARPSIZE", - "ARPSYSTEMCOMPONENT", - "ARPULRINFOABOUT", - "ARPURLUPDATEINFO", - "AVAILABLEFREEREG", - "BorderSize", - "BorderTop", - "CaptionHeight", - "CCP_DRIVE", - "ColorBits", - "COMPADDLOCAL", - "COMPADDSOURCE", - "COMPANYNAME", - "ComputerName", - "CostingComplete", - "Date", - "DefaultUIFont", - "DISABLEADVTSHORTCUTS", - "DISABLEMEDIA", - "DISABLEROLLBACK", - "DiskPrompt", - "DontRemoveTempFolderWhenFinished", - "EnableUserControl", - "EXECUTEACTION", - "EXECUTEMODE", - "FASTOEM", - "FILEADDDEFAULT", - "FILEADDLOCAL", - "FILEADDSOURCE", - "IncludeWholeFilesOnly", - "Installed", - "INSTALLLEVEL", - "Intel", - "Intel64", - "IsAdminPackage", - "LeftUnit", - "LIMITUI", - "ListOfPatchGUIDsToReplace", - "ListOfTargetProductCode", - "LOGACTION", - "LogonUser", - "Manufacturer", - "MEDIAPACKAGEPATH", - "MediaSourceDir", - "MinimumRequiredMsiVersion", - "MsiAMD64", - "MSIAPRSETTINGSIDENTIFIER", - "MSICHECKCRCS", - "MSIDISABLERMRESTART", - "MSIENFORCEUPGRADECOMPONENTRULES", - "MSIFASTINSTALL", - "MsiFileToUseToCreatePatchTables", - "MsiHiddenProperties", - "MSIINSTALLPERUSER", - "MSIINSTANCEGUID", - "MsiLogFileLocation", - "MsiLogging", - "MsiNetAssemblySupport", - "MSINEWINSTANCE", - "MSINODISABLEMEDIA", - "MsiNTProductType", - "MsiNTSuiteBackOffice", - "MsiNTSuiteDataCenter", - "MsiNTSuiteEnterprise", - "MsiNTSuiteSmallBusiness", - "MsiNTSuiteSmallBusinessRestricted", - "MsiNTSuiteWebServer", - "MsiNTSuitePersonal", - "MsiPatchRemovalList", - "MSIPATCHREMOVE", - "MSIRESTARTMANAGERCONTROL", - "MsiRestartManagerSessionKey", - "MSIRMSHUTDOWN", - "MsiRunningElevated", - "MsiUIHideCancel", - "MsiUIProgressOnly", - "MsiUISourceResOnly", - "MsiSystemRebootPending", - "MsiWin32AssemblySupport", - "NOCOMPANYNAME", - "NOUSERNAME", - "OLEAdvtSupport", - "OptimizePatchSizeForLargeFiles", - "OriginalDatabase", - "OutOfDiskSpace", - "OutOfNoRbDiskSpace", - "ParentOriginalDatabase", - "ParentProductCode", - "PATCH", - "PATCH_CACHE_DIR", - "PATCH_CACHE_ENABLED", - "PatchGUID", - "PATCHNEWPACKAGECODE", - "PATCHNEWSUMMARYCOMMENTS", - "PATCHNEWSUMMARYSUBJECT", - "PatchOutputPath", - "PatchSourceList", - "PhysicalMemory", - "PIDKEY", - "PIDTemplate", - "Preselected", - "PRIMARYFOLDER", - "PrimaryVolumePath", - "PrimaryVolumeSpaceAvailable", - "PrimaryVolumeSpaceRemaining", - "PrimaryVolumeSpaceRequired", - "Privileged", - "ProductCode", - "ProductID", - "ProductLanguage", - "ProductName", - "ProductState", - "ProductVersion", - "PROMPTROLLBACKCOST", - "REBOOT", - "REBOOTPROMPT", - "RedirectedDllSupport", - "REINSTALL", - "REINSTALLMODE", - "RemoveAdminTS", - "REMOVE", - "ReplacedInUseFiles", - "RestrictedUserControl", - "RESUME", - "RollbackDisabled", - "ROOTDRIVE", - "ScreenX", - "ScreenY", - "SecureCustomProperties", - "ServicePackLevel", - "ServicePackLevelMinor", - "SEQUENCE", - "SharedWindows", - "ShellAdvtSupport", - "SHORTFILENAMES", - "SourceDir", - "SOURCELIST", - "SystemLanguageID", - "TARGETDIR", - "TerminalServer", - "TextHeight", - "Time", - "TRANSFORMS", - "TRANSFORMSATSOURCE", - "TRANSFORMSSECURE", - "TTCSupport", - "UILevel", - "UpdateStarted", - "UpgradeCode", - "UPGRADINGPRODUCTCODE", - "UserLanguageID", - "USERNAME", - "UserSID", - "Version9X", - "VersionDatabase", - "VersionMsi", - "VersionNT", - "VersionNT64", - "VirtualMemory", - "WindowsBuild", - "WindowsVolume", - }; - - static WindowsInstallerStandard() - { - var standardActions = new[] - { - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, - }; - - var standardDirectories = new[] - { - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TARGETDIR")) { Name = "SourceDir" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "AdminToolsFolder")) { Name = "Admin" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "AppDataFolder")) { Name = "AppData" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonAppDataFolder")) { Name = "CommApp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFilesFolder")) { Name = "CFiles" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFiles64Folder")) { Name = "CFiles64" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFiles6432Folder")) { Name = "." }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "DesktopFolder")) { Name = "Desktop" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "FavoritesFolder")) { Name = "Favs" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "FontsFolder")) { Name = "Fonts" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "LocalAppDataFolder")) { Name = "LocalApp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "MyPicturesFolder")) { Name = "Pictures" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "NetHoodFolder")) { Name = "NetHood" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "PersonalFolder")) { Name = "Personal" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "PrintHoodFolder")) { Name = "Printers" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFilesFolder")) { Name = "PFiles" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFiles64Folder")) { Name = "PFiles64" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFiles6432Folder")) { Name = "." }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramMenuFolder")) { Name = "PMenu" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "RecentFolder")) { Name = "Recent" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "SendToFolder")) { Name = "SendTo" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "StartMenuFolder")) { Name = "StrtMenu" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "StartupFolder")) { Name = "StartUp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "SystemFolder")) { Name = "System" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System16Folder")) { Name = "System16" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System64Folder")) { Name = "System64" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System6432Folder")) { Name = "." }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TempFolder")) { Name = "Temp" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TemplateFolder")) { Name = "Template" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "WindowsFolder")) { Name = "Windows" }, - new DirectorySymbol(null, new Identifier(AccessModifier.Global, "WindowsVolume")) { Name = "WinVol" }, - }; - - standardActionNames = new HashSet(standardActions.Select(a => a.Action)); - standardActionsById = standardActions.ToDictionary(a => a.Id.Id); - standardDirectoriesById = standardDirectories.ToDictionary(d => d.Id.Id); - } - - /// - /// Find out if an action is a standard action. - /// - /// Name of the action. - /// true if the action is standard, false otherwise. - public static bool IsStandardAction(string actionName) => standardActionNames.Contains(actionName); - - /// - /// Standard actions. - /// - public static IReadOnlyCollection StandardActions() => standardActionsById.Values; - - /// - /// Standard directories. - /// - public static IReadOnlyCollection StandardDirectories() => standardDirectoriesById.Values; - - /// - /// Gets the platform specific directory id for a directory. Most directories are not platform - /// specific and return themselves. - /// - /// Directory id to get platform specific. - /// Platform to use. - /// Platform specific directory id. - public static string GetPlatformSpecificDirectoryId(string directoryId, Platform platform) - { - switch (directoryId) - { - case "CommonFiles6432Folder": - return platform == Platform.X86 ? "CommonFilesFolder" : "CommonFiles64Folder"; - - case "ProgramFiles6432Folder": - return platform == Platform.X86 ? "ProgramFilesFolder" : "ProgramFiles64Folder"; - - case "System6432Folder": - return platform == Platform.X86 ? "SystemFolder" : "System64Folder"; - - default: - return directoryId; - } - } - - /// - /// Find out if a directory is a standard directory. - /// - /// Name of the directory. - /// true if the directory is standard, false otherwise. - public static bool IsStandardDirectory(string directoryId) => standardDirectoriesById.ContainsKey(directoryId); - - /// - /// Find out if a property is a standard property. - /// - /// Name of the property. - /// true if a property is standard, false otherwise. - public static bool IsStandardProperty(string propertyName) => standardProperties.Contains(propertyName); - - /// - /// Try to get standard action by id. - /// - public static bool TryGetStandardAction(string id, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(id, out standardAction); - - /// - /// Try to get standard action by sequence and action name. - /// - public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); - - /// - /// Try to get standard directory symbol by id. - /// - public static bool TryGetStandardDirectory(string directoryId, out DirectorySymbol symbol) => standardDirectoriesById.TryGetValue(directoryId, out symbol); - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs deleted file mode 100644 index a64593ec..00000000 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs +++ /dev/null @@ -1,1907 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using WixToolset.Data.WindowsInstaller.Rows; - - public static class WindowsInstallerTableDefinitions - { - public static readonly TableDefinition ActionText = new TableDefinition( - "ActionText", - SymbolDefinitions.ActionText, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to be described.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description displayed in progress dialog and log when action is executing."), - new ColumnDefinition("Template", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Optional localized format template used to format action data records for display during action execution.", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition AdminExecuteSequence = new TableDefinition( - "AdminExecuteSequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Condition = new TableDefinition( - "Condition", - SymbolDefinitions.Condition, - new[] - { - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Reference to a Feature entry in Feature table."), - new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "New selection Level to set in Feature table if Condition evaluates to TRUE."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Expression evaluated to determine if Level in the Feature table is to change.", forceLocalizable: true), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition AdminUISequence = new TableDefinition( - "AdminUISequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition AdvtExecuteSequence = new TableDefinition( - "AdvtExecuteSequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition AdvtUISequence = new TableDefinition( - "AdvtUISequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition AppId = new TableDefinition( - "AppId", - SymbolDefinitions.AppId, - new[] - { - new ColumnDefinition("AppId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), - new ColumnDefinition("RemoteServerName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("LocalService", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("ServiceParameters", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("DllSurrogate", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("ActivateAtStorage", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - new ColumnDefinition("RunAsInteractiveUser", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition AppSearch = new TableDefinition( - "AppSearch", - SymbolDefinitions.AppSearch, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The property associated with a Signature", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Property = new TableDefinition( - "Property", - SymbolDefinitions.Property, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of property, uppercase if settable by launcher or loader.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "String value for property. Never null or empty."), - }, - strongRowType: typeof(PropertyRow), - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition BBControl = new TableDefinition( - "BBControl", - SymbolDefinitions.BBControl, - new[] - { - new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Billboard", keyColumn: 1, description: "External key to the Billboard table, name of the billboard.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("BBControl", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the control. This name must be unique within a billboard, but can repeat on different billboard."), - new ColumnDefinition("Type", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The type of the control."), - new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Horizontal coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Vertical coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), - new ColumnDefinition("Text", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A string used to set the initial text contained within a control (if appropriate)."), - }, - strongRowType: typeof(BBControlRow), - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Billboard = new TableDefinition( - "Billboard", - SymbolDefinitions.Billboard, - new[] - { - new ColumnDefinition("Billboard", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the billboard.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "An external key to the Feature Table. The billboard is shown only if this feature is being installed."), - new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of an action. The billboard is displayed during the progress messages received from this action."), - new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "A positive integer. If there is more than one billboard corresponding to an action they will be shown in the order defined by this column."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Feature = new TableDefinition( - "Feature", - SymbolDefinitions.Feature, - new[] - { - new ColumnDefinition("Feature", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular feature record."), - new ColumnDefinition("Feature_Parent", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Optional key of a parent record in the same table. If the parent is not selected, then the record will not be installed. Null indicates a root item."), - new ColumnDefinition("Title", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Short text identifying a visible feature item."), - new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Longer descriptive text describing a visible feature item."), - new ColumnDefinition("Display", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Numeric sort order, used to force a specific display ordering."), - new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The install level at which record will be initially selected. An install level of 0 will disable an item and prevent its display."), - new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.UpperCase, keyTable: "Directory", keyColumn: 1, description: "The name of the Directory that can be configured by the UI. A non-null value will enable the browse button.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54", description: "Feature attributes"), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Binary = new TableDefinition( - "Binary", - SymbolDefinitions.Binary, - new[] - { - new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique key identifying the binary data.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "The unformatted binary data."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition BindImage = new TableDefinition( - "BindImage", - null, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The index into the File table. This must be an executable file.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Paths, description: "A list of ; delimited paths that represent the paths to be searched for the import DLLS. The list is usually a list of properties each enclosed within square brackets [] .", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition File = new TableDefinition( - "File", - SymbolDefinitions.File, - new[] - { - new ColumnDefinition("File", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the file.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "File name used for installation, may be localized. This may contain a \"short name|long name\" pair."), - new ColumnDefinition("FileSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Size of file in bytes (long integer)."), - new ColumnDefinition("Version", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, keyTable: "File", keyColumn: 1, description: "Version string for versioned files; Blank for unversioned files.", modularizeType: ColumnModularizeType.CompanionFile), - new ColumnDefinition("Language", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Language, description: "List of decimal language Ids, comma-separated if more than one."), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses)"), - new ColumnDefinition("Sequence", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 2147483647, description: "Sequence with respect to the media images; order must track cabinet order."), - new ColumnDefinition("DiskId", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Disk identifier for the file.", unreal: true), - new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Path to source of file.", unreal: true), - }, - strongRowType: typeof(FileRow), - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition CCPSearch = new TableDefinition( - "CCPSearch", - SymbolDefinitions.CCPSearch, - new[] - { - new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition CheckBox = new TableDefinition( - "CheckBox", - SymbolDefinitions.CheckBox, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to the item.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value string associated with the item.", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Class = new TableDefinition( - "Class", - SymbolDefinitions.Class, - new[] - { - new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The CLSID of an OLE factory."), - new ColumnDefinition("Context", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The numeric server context for this server. CLSCTX_xxxx"), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ProgId_Default", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "Optional ProgId associated with this CLSID."), - new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description for the Class."), - new ColumnDefinition("AppId_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, keyTable: "AppId", keyColumn: 1, description: "Optional AppID containing DCOM information for associated application (string GUID)."), - new ColumnDefinition("FileTypeMask", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Optional string containing information for the HKCRthis CLSID) key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2..."), - new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this CLSID. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), - new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), - new ColumnDefinition("DefInprocHandler", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Filename, possibilities: "1;2;3", description: "Optional default inproc handler. Only optionally provided if Context=CLSCTX_LOCAL_SERVER. Typically \"ole32.dll\" or \"mapi32.dll\""), - new ColumnDefinition("Argument", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "optional argument for LocalServers."), - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, maxValue: 32767, description: "Class registration attributes."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Component = new TableDefinition( - "Component", - SymbolDefinitions.Component, - new[] - { - new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular component record.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), - new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Required key of a Directory table record. This is actually a property name whose value contains the actual path, set either by the AppSearch action or with the default setting obtained from the Directory table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Remote execution option, one of irsEnum"), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - new ColumnDefinition("KeyPath", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File;Registry;ODBCDataSource", keyColumn: 1, description: "Either the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.", modularizeType: ColumnModularizeType.Column), - }, - strongRowType: typeof(ComponentRow), - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Icon = new TableDefinition( - "Icon", - SymbolDefinitions.Icon, - new[] - { - new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. Name of the icon file.", modularizeType: ColumnModularizeType.Icon), - new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ProgId = new TableDefinition( - "ProgId", - SymbolDefinitions.ProgId, - new[] - { - new ColumnDefinition("ProgId", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The Program Identifier. Primary key."), - new ColumnDefinition("ProgId_Parent", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "The Parent Program Identifier. If specified, the ProgId column becomes a version independent prog id."), - new ColumnDefinition("Class_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, keyTable: "Class", keyColumn: 1, description: "The CLSID of an OLE factory corresponding to the ProgId."), - new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description for the Program identifier."), - new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this ProgId. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), - new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ComboBox = new TableDefinition( - "ComboBox", - SymbolDefinitions.ComboBox, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same combobox.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list. The integers do not have to be consecutive."), - new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), - new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition CompLocator = new TableDefinition( - "CompLocator", - SymbolDefinitions.CompLocator, - new[] - { - new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "A boolean value that determines if the registry value is a filename or a directory location."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Complus = new TableDefinition( - "Complus", - SymbolDefinitions.Complus, - new[] - { - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the ComPlus component.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ExpType", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "ComPlus component attributes."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Directory = new TableDefinition( - "Directory", - SymbolDefinitions.Directory, - new[] - { - new ColumnDefinition("Directory", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Directory_Parent", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Reference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("DefaultDir", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.DefaultDir, description: "The default sub-path under parent's path."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Control = new TableDefinition( - "Control", - SymbolDefinitions.Control, - new[] - { - new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "External key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Control", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the control. This name must be unique within a dialog, but can repeat on different dialogs. "), - new ColumnDefinition("Type", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The type of the control."), - new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Horizontal coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Vertical coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the control.", forceLocalizable: true), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of a defined property to be linked to this control. ", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "A string used to set the initial text contained within a control (if appropriate).", modularizeType: ColumnModularizeType.ControlText), - new ColumnDefinition("Control_Next", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "The name of an other control on the same dialog. This link defines the tab order of the controls. The links have to form one or more cycles!"), - new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional. "), - }, - strongRowType: typeof(ControlRow), - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Dialog = new TableDefinition( - "Dialog", - SymbolDefinitions.Dialog, - new[] - { - new ColumnDefinition("Dialog", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the dialog.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("HCentering", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 100, description: "Horizontal position of the dialog on a 0-100 scale. 0 means left end, 100 means right end of the screen, 50 center."), - new ColumnDefinition("VCentering", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 100, description: "Vertical position of the dialog on a 0-100 scale. 0 means top end, 100 means bottom end of the screen, 50 center."), - new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the dialog."), - new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the dialog."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this dialog."), - new ColumnDefinition("Title", ColumnType.Localized, 128, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "A text string specifying the title to be displayed in the title bar of the dialog's window.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Control_First", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the control that has the focus when the dialog is created."), - new ColumnDefinition("Control_Default", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the default control. Hitting return is equivalent to pushing this button."), - new ColumnDefinition("Control_Cancel", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ControlCondition = new TableDefinition( - "ControlCondition", - SymbolDefinitions.ControlCondition, - new[] - { - new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control."), - new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Default;Disable;Enable;Hide;Show", description: "The desired action to be taken on the specified control."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions the action should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ControlEvent = new TableDefinition( - "ControlEvent", - SymbolDefinitions.ControlEvent, - new[] - { - new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control"), - new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "An identifier that specifies the type of the event that should take place when the user interacts with control specified by the first two entries.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Argument", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "A value to be used as a modifier when triggering a particular event.", modularizeType: ColumnModularizeType.ControlEventArgument, forceLocalizable: true), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions an event should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "An integer used to order several events tied to the same control. Can be left blank."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition CreateFolder = new TableDefinition( - "CreateFolder", - SymbolDefinitions.CreateFolder, - new[] - { - new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Primary key, could be foreign key into the Directory table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition CustomAction = new TableDefinition( - "CustomAction", - SymbolDefinitions.CustomAction, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, name of action, normally appears in sequence table unless private use.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "The numeric custom action type, consisting of source location, code type, entry, option flags."), - new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.CustomSource, description: "The table reference of the source of the code.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Target", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Excecution parameter, depends on the type of custom action", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), - new ColumnDefinition("ExtendedType", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A numeric custom action type that extends code type or option flags of the Type column."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition DrLocator = new TableDefinition( - "DrLocator", - SymbolDefinitions.DrLocator, - new[] - { - new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Parent", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "The parent file signature. It is also a foreign key in the Signature table. If null and the Path column does not expand to a full path, then all the fixed drives of the user system are searched using the Path.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.AnyPath, description: "The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Depth", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition DuplicateFile = new TableDefinition( - "DuplicateFile", - SymbolDefinitions.DuplicateFile, - new[] - { - new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the duplicate file.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key referencing the source file to be duplicated.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Filename to be given to the duplicate file."), - new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to a destination folder.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Environment = new TableDefinition( - "Environment", - SymbolDefinitions.Environment, - new[] - { - new ColumnDefinition("Environment", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for the environmental variable setting", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the environmental value."), - new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to set in the environmental settings.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the environmental value.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Error = new TableDefinition( - "Error", - SymbolDefinitions.Error, - new[] - { - new ColumnDefinition("Error", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer error number, obtained from header file IError(...) macros."), - new ColumnDefinition("Message", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Error formatting template, obtained from user ed. or localizers.", modularizeType: ColumnModularizeType.Property, useCData: true), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition EventMapping = new TableDefinition( - "EventMapping", - SymbolDefinitions.EventMapping, - new[] - { - new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the Dialog.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control."), - new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "An identifier that specifies the type of the event that the control subscribes to."), - new ColumnDefinition("Attribute", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The name of the control attribute, that is set when this event is received."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Extension = new TableDefinition( - "Extension", - SymbolDefinitions.Extension, - new[] - { - new ColumnDefinition("Extension", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The extension associated with the table row."), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ProgId_", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "Optional ProgId associated with this extension."), - new ColumnDefinition("MIME_", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "MIME", keyColumn: 1, description: "Optional Context identifier, typically \"type/format\" associated with the extension"), - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MIME = new TableDefinition( - "MIME", - SymbolDefinitions.MIME, - new[] - { - new ColumnDefinition("ContentType", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key. Context identifier, typically \"type/format\"."), - new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "Optional associated extension (without dot)"), - new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "Optional associated CLSID."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition FeatureComponents = new TableDefinition( - "FeatureComponents", - SymbolDefinitions.FeatureComponents, - new[] - { - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition FileSFPCatalog = new TableDefinition( - "FileSFPCatalog", - SymbolDefinitions.FileSFPCatalog, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "File associated with the catalog", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("SFPCatalog_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, keyTable: "SFPCatalog", keyColumn: 1, description: "Catalog associated with the file"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition SFPCatalog = new TableDefinition( - "SFPCatalog", - SymbolDefinitions.SFPCatalog, - new[] - { - new ColumnDefinition("SFPCatalog", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, description: "File name for the catalog."), - new ColumnDefinition("Catalog", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "SFP Catalog"), - new ColumnDefinition("Dependency", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Parent catalog - only used by SFP", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Font = new TableDefinition( - "Font", - null, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing font file.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FontTitle", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Font name."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition IniFile = new TableDefinition( - "IniFile", - SymbolDefinitions.IniFile, - new[] - { - new ColumnDefinition("IniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name in which to write the information"), - new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Foreign key into the Directory table denoting the directory where the .INI file is.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Section", ColumnType.Localized, 96, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file Section.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Key", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file key below Section.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value to be written.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;3", description: "The type of modification to be made, one of iifEnum"), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the .INI value.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition IniLocator = new TableDefinition( - "IniLocator", - SymbolDefinitions.IniLocator, - new[] - { - new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FileName", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name."), - new ColumnDefinition("Section", ColumnType.String, 96, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Section name within in file (within square brackets in INI file)."), - new ColumnDefinition("Key", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Key value (followed by an equals sign in INI file)."), - new ColumnDefinition("Field", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The field in the .INI line. If Field is null or 0 the entire line is read."), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2, description: "An integer value that determines if the .INI value read is a filename or a directory location or to be used as is w/o interpretation."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition InstallExecuteSequence = new TableDefinition( - "InstallExecuteSequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition InstallUISequence = new TableDefinition( - "InstallUISequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition IsolatedComponent = new TableDefinition( - "IsolatedComponent", - SymbolDefinitions.IsolatedComponent, - new[] - { - new ColumnDefinition("Component_Shared", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item to be isolated", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_Application", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item for application", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition LaunchCondition = new TableDefinition( - "LaunchCondition", - SymbolDefinitions.LaunchCondition, - new[] - { - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "Expression which must evaluate to TRUE in order for install to commence.", forceLocalizable: true), - new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Localizable text to display when condition fails and install must abort."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ListBox = new TableDefinition( - "ListBox", - SymbolDefinitions.ListBox, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listbox.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), - new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ListView = new TableDefinition( - "ListView", - SymbolDefinitions.ListView, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listview.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), - new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Binary_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Binary", keyColumn: 1, description: "The name of the icon to be displayed with the icon. The binary information is looked up from the Binary Table.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition LockPermissions = new TableDefinition( - "LockPermissions", - SymbolDefinitions.LockPermissions, - new[] - { - new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry or File table", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, possibilities: "Directory;File;Registry", description: "Reference to another table name"), - new ColumnDefinition("Domain", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Formatted, description: "Domain name for user whose permissions are being set. (usually a property)", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("User", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "User for permissions to be set. (usually a property)", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Permission", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Permission Access mask. Full Control = 268435456 (GENERIC_ALL = 0x10000000)"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiLockPermissionsEx = new TableDefinition( - "MsiLockPermissionsEx", - SymbolDefinitions.MsiLockPermissionsEx, - new[] - { - new ColumnDefinition("MsiLockPermissionsEx", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry, File, CreateFolder, or ServiceInstall table", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Identifier, possibilities: "CreateFolder;File;Registry;ServiceInstall", description: "Reference to another table name"), - new ColumnDefinition("SDDLText", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.FormattedSDDLText, description: "String to indicate permissions to be applied to the LockObject", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Expression which must evaluate to TRUE in order for this set of permissions to be applied", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Media = new TableDefinition( - "Media", - SymbolDefinitions.Media, - new[] - { - new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Primary key, integer to determine sort order for table."), - new ColumnDefinition("LastSequence", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "File sequence number for the last file for this media."), - new ColumnDefinition("DiskPrompt", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Disk name: the visible text actually printed on the disk. This will be used to prompt the user when this disk needs to be inserted."), - new ColumnDefinition("Cabinet", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Cabinet, description: "If some or all of the files stored on the media are compressed in a cabinet, the name of that cabinet."), - new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The label attributed to the volume."), - new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Property, description: "The property defining the location of the cabinet file."), - }, - strongRowType: typeof(MediaRow), - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MoveFile = new TableDefinition( - "MoveFile", - SymbolDefinitions.MoveFile, - new[] - { - new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular MoveFile record", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "If this component is not \"selected\" for installation or removal, no action will be taken on the associated MoveFile entry", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("SourceName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Name of the source file(s) to be moved or copied. Can contain the '*' or '?' wildcards."), - new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Name to be given to the original file after it is moved or copied. If blank, the destination file will be given the same name as the source file"), - new ColumnDefinition("SourceFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the source directory", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Integer value specifying the MoveFile operating mode, one of imfoEnum"), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiAssembly = new TableDefinition( - "MsiAssembly", - SymbolDefinitions.Assembly, - new[] - { - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), - new ColumnDefinition("File_Manifest", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the manifest file for the assembly.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("File_Application", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table, denoting the application context for private assemblies. Null for global assemblies.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Assembly attributes"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiAssemblyName = new TableDefinition( - "MsiAssemblyName", - SymbolDefinitions.MsiAssemblyName, - new[] - { - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name."), - new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiDigitalCertificate = new TableDefinition( - "MsiDigitalCertificate", - SymbolDefinitions.MsiDigitalCertificate, - new[] - { - new ColumnDefinition("DigitalCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row"), - new ColumnDefinition("CertData", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "A certificate context blob for a signer certificate"), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiDigitalSignature = new TableDefinition( - "MsiDigitalSignature", - SymbolDefinitions.MsiDigitalSignature, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Media", description: "Reference to another table name (only Media table is supported)"), - new ColumnDefinition("SignObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Foreign key to Media table"), - new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate"), - new ColumnDefinition("Hash", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "The encoded hash blob from the digital signature"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiEmbeddedChainer = new TableDefinition( - "MsiEmbeddedChainer", - SymbolDefinitions.MsiEmbeddedChainer, - new[] - { - new ColumnDefinition("MsiEmbeddedChainer", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement for running the user-defined function.", forceLocalizable: true), - new ColumnDefinition("CommandLine", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value in this field is a part of the command line string passed to the executable file identified in the Source column.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.CustomSource, description: "The location of the executable file for the user-defined function.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;18;50", description: "The functions listed in the MsiEmbeddedChainer table are described using the following custom action numeric types."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiEmbeddedUI = new TableDefinition( - "MsiEmbeddedUI", - SymbolDefinitions.MsiEmbeddedUI, - new[] - { - new ColumnDefinition("MsiEmbeddedUI", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the file that receives the binary information in the Data column."), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;3", description: "Information about the data in the Data column."), - new ColumnDefinition("MessageFilter", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies the types of messages that are sent to the user interface DLL."), - new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "This column contains binary information."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiFileHash = new TableDefinition( - "MsiFileHash", - SymbolDefinitions.MsiFileHash, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing file with this hash", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Various options and attributes for this hash."), - new ColumnDefinition("HashPart1", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), - new ColumnDefinition("HashPart2", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), - new ColumnDefinition("HashPart3", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), - new ColumnDefinition("HashPart4", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiPackageCertificate = new TableDefinition( - "MsiPackageCertificate", - SymbolDefinitions.MsiPackageCertificate, - new[] - { - new ColumnDefinition("PackageCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), - new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiPatchCertificate = new TableDefinition( - "MsiPatchCertificate", - SymbolDefinitions.MsiPatchCertificate, - new[] - { - new ColumnDefinition("PatchCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), - new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiPatchHeaders = new TableDefinition( - "MsiPatchHeaders", - SymbolDefinitions.MsiPatchHeaders, - new[] - { - new ColumnDefinition("StreamRef", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), - new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition PatchMetadata = new TableDefinition( - "PatchMetadata", - SymbolDefinitions.PatchMetadata, - new[] - { - new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "Primary key. The name of the company."), - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the property."), - new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Non-null, non-empty value of the metadata property."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiPatchMetadata = new TableDefinition( - "MsiPatchMetadata", - SymbolDefinitions.MsiPatchMetadata, - new[] - { - new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiPatchOldAssemblyFile = new TableDefinition( - "MsiPatchOldAssemblyFile", - SymbolDefinitions.MsiPatchOldAssemblyFile, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table. Patch-only table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Assembly_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiPatchOldAssemblyName", keyColumn: 1, description: "Foreign key into MsiPatchOldAssemblyName table.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiPatchOldAssemblyName = new TableDefinition( - "MsiPatchOldAssemblyName", - SymbolDefinitions.MsiPatchOldAssemblyName, - new[] - { - new ColumnDefinition("Assembly", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name. This represents the old name for the assembly."), - new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name. This represents the old name for the assembly."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition PatchSequence = new TableDefinition( - "PatchSequence", - SymbolDefinitions.PatchSequence, - new[] - { - new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the family for the patch."), - new ColumnDefinition("Target", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Text, description: "Primary key. Determines product code filtering for family."), - new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Sequence information in version (x.x.x.x) format."), - new ColumnDefinition("Supersede", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Indicates that this patch supersedes earlier patches."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition MsiPatchSequence = new TableDefinition( - "MsiPatchSequence", - SymbolDefinitions.MsiPatchSequence, - new[] - { - new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: true, nullable: true, ColumnCategory.Unknown), - new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ODBCAttribute = new TableDefinition( - "ODBCAttribute", - SymbolDefinitions.ODBCAttribute, - new[] - { - new ColumnDefinition("Driver_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDriver", keyColumn: 1, description: "Reference to ODBC driver in ODBCDriver table", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Attribute", ColumnType.String, 40, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC driver attribute"), - new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC driver attribute"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ODBCDriver = new TableDefinition( - "ODBCDriver", - SymbolDefinitions.ODBCDriver, - new[] - { - new ColumnDefinition("Driver", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for driver", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for driver, non-localized"), - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key driver file", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key driver setup DLL", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ODBCDataSource = new TableDefinition( - "ODBCDataSource", - SymbolDefinitions.ODBCDataSource, - new[] - { - new ColumnDefinition("DataSource", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for data source", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for data source"), - new ColumnDefinition("DriverDescription", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Reference to driver description, may be existing driver"), - new ColumnDefinition("Registration", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Registration option: 0=machine, 1=user, others t.b.d."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ODBCSourceAttribute = new TableDefinition( - "ODBCSourceAttribute", - SymbolDefinitions.ODBCSourceAttribute, - new[] - { - new ColumnDefinition("DataSource_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDataSource", keyColumn: 1, description: "Reference to ODBC data source in ODBCDataSource table", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Attribute", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC data source attribute"), - new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC data source attribute"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ODBCTranslator = new TableDefinition( - "ODBCTranslator", - SymbolDefinitions.ODBCTranslator, - new[] - { - new ColumnDefinition("Translator", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for translator", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for translator"), - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key translator file", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key translator setup DLL", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Patch = new TableDefinition( - "Patch", - SymbolDefinitions.Patch, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, foreign key to File table, must match identifier in cabinet.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Sequence", ColumnType.Number, 4, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Primary key, sequence with respect to the media images; order must track cabinet order."), - new ColumnDefinition("PatchSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Size of patch in bytes (long integer)."), - new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer containing bit flags representing patch attributes"), - new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), - new ColumnDefinition("StreamRef_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Identifier. Foreign key to the StreamRef column of the MsiPatchHeaders table."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition PatchPackage = new TableDefinition( - "PatchPackage", - SymbolDefinitions.PatchPackage, - new[] - { - new ColumnDefinition("PatchId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A unique string GUID representing this patch."), - new ColumnDefinition("Media_", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Foreign key to DiskId column of Media table. Indicates the disk containing the patch package."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition PublishComponent = new TableDefinition( - "PublishComponent", - SymbolDefinitions.PublishComponent, - new[] - { - new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A string GUID that represents the component id that will be requested by the alien product."), - new ColumnDefinition("Qualifier", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "This is defined only when the ComponentId column is an Qualified Component Id. This is the Qualifier for ProvideComponentIndirect."), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("AppData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "This is localisable Application specific data that can be associated with a Qualified Component."), - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into the Feature table."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition RadioButton = new TableDefinition( - "RadioButton", - SymbolDefinitions.RadioButton, - new[] - { - new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this radio button. All the buttons tied to the same property become part of the same group.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), - new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this button. Selecting the button will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The horizontal coordinate of the upper left corner of the bounding rectangle of the radio button.", forceLocalizable: true), - new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The vertical coordinate of the upper left corner of the bounding rectangle of the radio button.", forceLocalizable: true), - new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The width of the button.", forceLocalizable: true), - new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The height of the button.", forceLocalizable: true), - new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible title to be assigned to the radio button."), - new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Registry = new TableDefinition( - "Registry", - SymbolDefinitions.Registry, - new[] - { - new ColumnDefinition("Registry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -1, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum."), - new ColumnDefinition("Key", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the registry value.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition RegLocator = new TableDefinition( - "RegLocator", - SymbolDefinitions.RegLocator, - new[] - { - new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum."), - new ColumnDefinition("Key", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), - new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), - new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 18, description: "An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition RemoveFile = new TableDefinition( - "RemoveFile", - SymbolDefinitions.RemoveFile, - new[] - { - new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the file to be removed.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.WildCardFilename, description: "Name of the file to be removed."), - new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("InstallMode", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "1;2;3", description: "Installation option, one of iimEnum."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition RemoveIniFile = new TableDefinition( - "RemoveIniFile", - null, - new[] - { - new ColumnDefinition("RemoveIniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name in which to delete the information"), - new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Foreign key into the Directory table denoting the directory where the .INI file is.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Section", ColumnType.Localized, 96, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file Section.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Key", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file key below Section.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to be deleted. The value is required when Action is iifIniRemoveTag", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;4", description: "The type of modification to be made, one of iifEnum."), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the .INI value.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition RemoveRegistry = new TableDefinition( - "RemoveRegistry", - SymbolDefinitions.RemoveRegistry, - new[] - { - new ColumnDefinition("RemoveRegistry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -1, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum"), - new ColumnDefinition("Key", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the registry value.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ReserveCost = new TableDefinition( - "ReserveCost", - SymbolDefinitions.ReserveCost, - new[] - { - new ColumnDefinition("ReserveKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular ReserveCost record", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reserve a specified amount of space if this component is to be installed.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ReserveFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ReserveLocal", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed locally."), - new ColumnDefinition("ReserveSource", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed to run from the source location."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition SelfReg = new TableDefinition( - "SelfReg", - null, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the module that needs to be registered.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Cost", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The cost of registering the module."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ServiceControl = new TableDefinition( - "ServiceControl", - SymbolDefinitions.ServiceControl, - new[] - { - new ColumnDefinition("ServiceControl", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 187, description: "Bit field: Install: 0x1 = Start, 0x2 = Stop, 0x8 = Delete, Uninstall: 0x10 = Start, 0x20 = Stop, 0x80 = Delete"), - new ColumnDefinition("Arguments", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Arguments for the service. Separate by [~].", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Wait", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Boolean for whether to wait for the service to fully start"), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ServiceInstall = new TableDefinition( - "ServiceInstall", - SymbolDefinitions.ServiceInstall, - new[] - { - new ColumnDefinition("ServiceInstall", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Internal Name of the Service", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("DisplayName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "External Name of the Service", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("ServiceType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Type of the service"), - new ColumnDefinition("StartType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 4, description: "Type of the service"), - new ColumnDefinition("ErrorControl", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Severity of error if service fails to start"), - new ColumnDefinition("LoadOrderGroup", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "LoadOrderGroup", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Dependencies", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Other services this depends on to start. Separate by [~], and end with [~][~]", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("StartName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "User or object name to run service as", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Password", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "password to run service with. (with StartName)", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Arguments", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Arguments to include in every start of the service, passed to WinMain", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of service.", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiServiceConfig = new TableDefinition( - "MsiServiceConfig", - SymbolDefinitions.MsiServiceConfig, - new[] - { - new ColumnDefinition("MsiServiceConfig", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 7, description: "Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"), - new ColumnDefinition("ConfigType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Service Configuration Option"), - new ColumnDefinition("Argument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Argument(s) for service configuration. Value depends on the content of the ConfigType field"), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of the service", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiServiceConfigFailureActions = new TableDefinition( - "MsiServiceConfigFailureActions", - SymbolDefinitions.MsiServiceConfigFailureActions, - new[] - { - new ColumnDefinition("MsiServiceConfigFailureActions", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 7, description: "Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"), - new ColumnDefinition("ResetPeriod", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Time in seconds after which to reset the failure count to zero. Leave blank if it should never be reset"), - new ColumnDefinition("RebootMessage", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Message to be broadcast to server users before rebooting"), - new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Command line of the process to CreateProcess function to execute"), - new ColumnDefinition("Actions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of integer actions separated by [~] delimiters: 0 = SC_ACTION_NONE, 1 = SC_ACTION_RESTART, 2 = SC_ACTION_REBOOT, 3 = SC_ACTION_RUN_COMMAND. Terminate with [~][~]"), - new ColumnDefinition("DelayActions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of delays (time in milli-seconds), separated by [~] delmiters, to wait before taking the corresponding Action. Terminate with [~][~]"), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of failure actions for the service", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Shortcut = new TableDefinition( - "Shortcut", - SymbolDefinitions.Shortcut, - new[] - { - new ColumnDefinition("Shortcut", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Foreign key into the Directory table denoting the directory where the shortcut file is created.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Name", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The name of the shortcut to be created."), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table denoting the component whose selection gates the the shortcut creation/deletion.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Target", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Shortcut, description: "The shortcut target. This is usually a property that is expanded to a file or a folder that the shortcut points to.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Arguments", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command-line arguments for the shortcut.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The description for the shortcut."), - new ColumnDefinition("Hotkey", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The hotkey for the shortcut. It has the virtual-key code for the key in the low-order byte, and the modifier flags in the high-order byte. "), - new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Foreign key into the File table denoting the external icon file for the shortcut.", modularizeType: ColumnModularizeType.Icon), - new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "The icon index for the shortcut."), - new ColumnDefinition("ShowCmd", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "1;3;7", description: "The show command for the application window.The following values may be used."), - new ColumnDefinition("WkDir", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of property defining location of working directory.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("DisplayResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("DisplayResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The display name index for the shortcut. This must be a non-negative number."), - new ColumnDefinition("DescriptionResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("DescriptionResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The description name index for the shortcut. This must be a non-negative number."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition MsiShortcutProperty = new TableDefinition( - "MsiShortcutProperty", - SymbolDefinitions.MsiShortcutProperty, - new[] - { - new ColumnDefinition("MsiShortcutProperty", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Shortcut_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Shortcut", keyColumn: 1, description: "Foreign key into the Shortcut table", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("PropertyKey", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Canonical string representation of the Property Key being set", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("PropVariantValue", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "String representation of the value in the property", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Signature = new TableDefinition( - "Signature", - SymbolDefinitions.Signature, - new[] - { - new ColumnDefinition("Signature", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature represents a unique file signature.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FileName", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the file. This may contain a \"short name|long name\" pair."), - new ColumnDefinition("MinVersion", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The minimum version of the file."), - new ColumnDefinition("MaxVersion", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The maximum version of the file."), - new ColumnDefinition("MinSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The minimum size of the file."), - new ColumnDefinition("MaxSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum size of the file. "), - new ColumnDefinition("MinDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The minimum creation date of the file."), - new ColumnDefinition("MaxDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum creation date of the file."), - new ColumnDefinition("Languages", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Language, description: "The languages supported by the file."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition SoftwareIdentificationTag = new TableDefinition( - "SoftwareIdentificationTag", - SymbolDefinitions.SoftwareIdentificationTag, - new[] - { - new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The file that installs the software id tag.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Regid", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The regid for the software id tag."), - new ColumnDefinition("TagId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The unique id for the software id tag."), - new ColumnDefinition("PersistentId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The type of the software id tag."), - new ColumnDefinition("Alias", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Alias for the software id tag."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition TextStyle = new TableDefinition( - "TextStyle", - SymbolDefinitions.TextStyle, - new[] - { - new ColumnDefinition("TextStyle", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the style. The primary key of this table. This name is embedded in the texts to indicate a style change."), - new ColumnDefinition("FaceName", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Text, description: "A string indicating the name of the font used. Required. The string must be at most 31 characters long.", forceLocalizable: true), - new ColumnDefinition("Size", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The size of the font used. This size is given in our units (1/12 of the system font height). Assuming that the system font is set to 12 point size, this is equivalent to the point size.", forceLocalizable: true), - new ColumnDefinition("Color", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "A long integer indicating the color of the string in the RGB format (Red, Green, Blue each 0-255, RGB = R + 256*G + 256^2*B)."), - new ColumnDefinition("StyleBits", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 15, description: "A combination of style bits."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition TypeLib = new TableDefinition( - "TypeLib", - SymbolDefinitions.TypeLib, - new[] - { - new ColumnDefinition("LibID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The GUID that represents the library."), - new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The language of the library."), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Version", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "The version of the library. The minor version is in the lower 8 bits of the integer. The major version is in the next 16 bits. "), - new ColumnDefinition("Description", ColumnType.Localized, 128, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Optional. The foreign key into the Directory table denoting the path to the help file for the type library.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the type library to be operational."), - new ColumnDefinition("Cost", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The cost associated with the registration of the typelib. This column is currently optional."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition UIText = new TableDefinition( - "UIText", - SymbolDefinitions.UIText, - new[] - { - new ColumnDefinition("Key", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique key that identifies the particular string."), - new ColumnDefinition("Text", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The localized version of the string."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition Upgrade = new TableDefinition( - "Upgrade", - SymbolDefinitions.Upgrade, - new[] - { - new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The UpgradeCode GUID belonging to the products in this set."), - new ColumnDefinition("VersionMin", ColumnType.String, 20, primaryKey: true, nullable: true, ColumnCategory.Text, description: "The minimum ProductVersion of the products in this set. The set may or may not include products with this particular version."), - new ColumnDefinition("VersionMax", ColumnType.String, 20, primaryKey: true, nullable: true, ColumnCategory.Text, description: "The maximum ProductVersion of the products in this set. The set may or may not include products with this particular version."), - new ColumnDefinition("Language", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Language, description: "A comma-separated list of languages for either products in this set or products not in this set.", forceLocalizable: true), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The attributes of this product set."), - new ColumnDefinition("Remove", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The list of features to remove when uninstalling a product from this set. The default is \"ALL\"."), - new ColumnDefinition("ActionProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.UpperCase, description: "The property to set when a product in this set is found."), - }, - strongRowType: typeof(UpgradeRow), - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Verb = new TableDefinition( - "Verb", - SymbolDefinitions.Verb, - new[] - { - new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "The extension associated with the table row."), - new ColumnDefinition("Verb", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The verb for the command."), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Order within the verbs for a particular extension. Also used simply to specify the default verb."), - new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command text.", modularizeType: ColumnModularizeType.Property), - new ColumnDefinition("Argument", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Optional value for the command arguments.", modularizeType: ColumnModularizeType.Property), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ModuleAdminExecuteSequence = new TableDefinition( - "ModuleAdminExecuteSequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), - new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdminExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleAdminUISequence = new TableDefinition( - "ModuleAdminUISequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), - new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdminUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleAdvtExecuteSequence = new TableDefinition( - "ModuleAdvtExecuteSequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), - new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdvtExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleAdvtUISequence = new TableDefinition( - "ModuleAdvtUISequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), - new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdvtUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleComponents = new TableDefinition( - "ModuleComponents", - SymbolDefinitions.ModuleComponents, - new[] - { - new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Component contained in the module.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module containing the component.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Default language ID for module (may be changed by transform).", forceLocalizable: true), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ModuleSignature = new TableDefinition( - "ModuleSignature", - SymbolDefinitions.WixModule, - new[] - { - new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Module identifier (String.GUID).", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Default decimal language of module.", forceLocalizable: true), - new ColumnDefinition("Version", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Version, description: "Version of the module."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ModuleConfiguration = new TableDefinition( - "ModuleConfiguration", - SymbolDefinitions.ModuleConfiguration, - new[] - { - new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for this row."), - new ColumnDefinition("Format", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "Format of this item."), - new ColumnDefinition("Type", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Additional type information for this item."), - new ColumnDefinition("ContextData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Additional context information about this item."), - new ColumnDefinition("DefaultValue", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Default value for this item."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "Additional type-specific attributes."), - new ColumnDefinition("DisplayName", ColumnType.Localized, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A short human-readable name for this item."), - new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A human-readable description."), - new ColumnDefinition("HelpLocation", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Filename or namespace of the context-sensitive help for this item."), - new ColumnDefinition("HelpKeyword", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Keyword index into the HelpLocation for this item."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleDependency = new TableDefinition( - "ModuleDependency", - SymbolDefinitions.ModuleDependency, - new[] - { - new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module requiring the dependency.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ModuleLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Language of module requiring the dependency.", forceLocalizable: true), - new ColumnDefinition("RequiredID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "String.GUID of required module."), - new ColumnDefinition("RequiredLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "LanguageID of the required module.", forceLocalizable: true), - new ColumnDefinition("RequiredVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Version of the required version."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ModuleExclusion = new TableDefinition( - "ModuleExclusion", - SymbolDefinitions.ModuleExclusion, - new[] - { - new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "String.GUID of module with exclusion requirement.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ModuleLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "LanguageID of module with exclusion requirement.", forceLocalizable: true), - new ColumnDefinition("ExcludedID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "String.GUID of excluded module."), - new ColumnDefinition("ExcludedLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Language of excluded module.", forceLocalizable: true), - new ColumnDefinition("ExcludedMinVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Minimum version of excluded module."), - new ColumnDefinition("ExcludedMaxVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Maximum version of excluded module."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ModuleIgnoreTable = new TableDefinition( - "ModuleIgnoreTable", - SymbolDefinitions.ModuleIgnoreTable, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table name to ignore during merge operation."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleInstallExecuteSequence = new TableDefinition( - "ModuleInstallExecuteSequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), - new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleInstallExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleInstallUISequence = new TableDefinition( - "ModuleInstallUISequence", - null, - new[] - { - new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), - new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleInstallUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), - new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition ModuleSubstitution = new TableDefinition( - "ModuleSubstitution", - SymbolDefinitions.ModuleSubstitution, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table containing the data to be modified."), - new ColumnDefinition("Row", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Row containing the data to be modified.", modularizeType: ColumnModularizeType.SemicolonDelimited), - new ColumnDefinition("Column", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Column containing the data to be modified."), - new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Template for modification data."), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Properties = new TableDefinition( - "Properties", - SymbolDefinitions.Properties, - new[] - { - new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key, non-localized token"), - new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Value of the property"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ImageFamilies = new TableDefinition( - "ImageFamilies", - SymbolDefinitions.ImageFamilies, - new[] - { - new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), - new ColumnDefinition("MediaSrcPropName", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("MediaDiskId", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), - new ColumnDefinition("FileSequenceStart", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Integer, minValue: 1, maxValue: 214743647), - new ColumnDefinition("DiskPrompt", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, forceLocalizable: true), - new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition UpgradedImages = new TableDefinition( - "UpgradedImages", - SymbolDefinitions.UpgradedImages, - new[] - { - new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), - new ColumnDefinition("MsiPath", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), - new ColumnDefinition("PatchMsiPath", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family to which this image belongs"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition UpgradedFilesToIgnore = new TableDefinition( - "UpgradedFilesToIgnore", - SymbolDefinitions.UpgradedFilesToIgnore, - new[] - { - new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), - new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition UpgradedFilesOptionalData = new TableDefinition( - "UpgradedFiles_OptionalData", - SymbolDefinitions.UpgradedFilesOptionalData, - new[] - { - new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), - new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("AllowIgnoreOnPatchError", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), - new ColumnDefinition("IncludeWholeFile", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition TargetImages = new TableDefinition( - "TargetImages", - SymbolDefinitions.TargetImages, - new[] - { - new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text), - new ColumnDefinition("MsiPath", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), - new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), - new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), - new ColumnDefinition("ProductValidateFlags", ColumnType.String, 16, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("IgnoreMissingSrcFiles", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition TargetFilesOptionalData = new TableDefinition( - "TargetFiles_OptionalData", - SymbolDefinitions.TargetFilesOptionalData, - new[] - { - new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "TargetImages", keyColumn: 1, description: "Foreign key, Target image"), - new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("IgnoreOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition FamilyFileRanges = new TableDefinition( - "FamilyFileRanges", - SymbolDefinitions.FamilyFileRanges, - new[] - { - new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), - new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("RetainOffsets", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), - new ColumnDefinition("RetainLengths", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition ExternalFiles = new TableDefinition( - "ExternalFiles", - SymbolDefinitions.ExternalFiles, - new[] - { - new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), - new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("FilePath", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text), - new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("IgnoreOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), - new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Streams = new TableDefinition( - "_Streams", - null, - new[] - { - new ColumnDefinition("Name", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), - }, - unreal: true, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition SummaryInformation = new TableDefinition( - "_SummaryInformation", - SymbolDefinitions.SummaryInformation, - new[] - { - new ColumnDefinition("PropertyId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition TransformView = new TableDefinition( - "_TransformView", - null, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Column", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Row", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Data", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - new ColumnDefinition("Current", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), - }, - unreal: true, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition Validation = new TableDefinition( - "_Validation", - null, - new[] - { - new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of table"), - new ColumnDefinition("Column", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of column"), - new ColumnDefinition("Nullable", ColumnType.String, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "Y;N", description: "Whether the column is nullable"), - new ColumnDefinition("MinValue", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Minimum value allowed"), - new ColumnDefinition("MaxValue", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Maximum value allowed"), - new ColumnDefinition("KeyTable", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "For foreign key, Name of table to which data must link"), - new ColumnDefinition("KeyColumn", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 1, maxValue: 32, description: "Column to which foreign key connects"), - new ColumnDefinition("Category", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "Text;Formatted;Template;Condition;Guid;Path;Version;Language;Identifier;Binary;UpperCase;LowerCase;Filename;Paths;AnyPath;WildCardFilename;RegPath;CustomSource;Property;Cabinet;Shortcut;FormattedSDDLText;Integer;DoubleInteger;TimeDate;DefaultDir", description: "String category"), - new ColumnDefinition("Set", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Set of values that are permitted"), - new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of column"), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition WixDependencyProvider = new TableDefinition( - "WixDependencyProvider", - SymbolDefinitions.WixDependencyProvider, - new[] - { - new ColumnDefinition("WixDependencyProvider", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "The foreign key into the Component table used to determine install state.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."), - new ColumnDefinition("Version", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The version of the package."), - new ColumnDefinition("DisplayName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The display name of the package."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixDependency = new TableDefinition( - "WixDependency", - SymbolDefinitions.WixDependency, - new[] - { - new ColumnDefinition("WixDependency", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."), - new ColumnDefinition("MinVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The minimum version of the provider supported."), - new ColumnDefinition("MaxVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The maximum version of the provider supported."), - new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."), - }, - symbolIdIsPrimaryKey: true - ); - - public static readonly TableDefinition WixDependencyRef = new TableDefinition( - "WixDependencyRef", - SymbolDefinitions.WixDependencyRef, - new[] - { - new ColumnDefinition("WixDependencyProvider_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependencyProvider", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), - new ColumnDefinition("WixDependency_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependency", keyColumn: 1, description: "Foreign key into the WixDependency table.", modularizeType: ColumnModularizeType.Column), - }, - symbolIdIsPrimaryKey: false - ); - - public static readonly TableDefinition[] All = new[] - { - ActionText, - AdminExecuteSequence, - Condition, - AdminUISequence, - AdvtExecuteSequence, - AdvtUISequence, - AppId, - AppSearch, - Property, - BBControl, - Billboard, - Feature, - Binary, - BindImage, - File, - CCPSearch, - CheckBox, - Class, - Component, - Icon, - ProgId, - ComboBox, - CompLocator, - Complus, - Directory, - Control, - Dialog, - ControlCondition, - ControlEvent, - CreateFolder, - CustomAction, - DrLocator, - DuplicateFile, - Environment, - Error, - EventMapping, - Extension, - MIME, - FeatureComponents, - FileSFPCatalog, - SFPCatalog, - Font, - IniFile, - IniLocator, - InstallExecuteSequence, - InstallUISequence, - IsolatedComponent, - LaunchCondition, - ListBox, - ListView, - LockPermissions, - MsiLockPermissionsEx, - Media, - MoveFile, - MsiAssembly, - MsiAssemblyName, - MsiDigitalCertificate, - MsiDigitalSignature, - MsiEmbeddedChainer, - MsiEmbeddedUI, - MsiFileHash, - MsiPackageCertificate, - MsiPatchCertificate, - MsiPatchHeaders, - PatchMetadata, - MsiPatchMetadata, - MsiPatchOldAssemblyFile, - MsiPatchOldAssemblyName, - PatchSequence, - MsiPatchSequence, - ODBCAttribute, - ODBCDriver, - ODBCDataSource, - ODBCSourceAttribute, - ODBCTranslator, - Patch, - PatchPackage, - PublishComponent, - RadioButton, - Registry, - RegLocator, - RemoveFile, - RemoveIniFile, - RemoveRegistry, - ReserveCost, - SelfReg, - ServiceControl, - ServiceInstall, - MsiServiceConfig, - MsiServiceConfigFailureActions, - Shortcut, - MsiShortcutProperty, - Signature, - SoftwareIdentificationTag, - TextStyle, - TypeLib, - UIText, - Upgrade, - Verb, - ModuleAdminExecuteSequence, - ModuleAdminUISequence, - ModuleAdvtExecuteSequence, - ModuleAdvtUISequence, - ModuleComponents, - ModuleSignature, - ModuleConfiguration, - ModuleDependency, - ModuleExclusion, - ModuleIgnoreTable, - ModuleInstallExecuteSequence, - ModuleInstallUISequence, - ModuleSubstitution, - Properties, - ImageFamilies, - UpgradedImages, - UpgradedFilesToIgnore, - UpgradedFilesOptionalData, - TargetImages, - TargetFilesOptionalData, - FamilyFileRanges, - ExternalFiles, - Streams, - SummaryInformation, - TransformView, - Validation, - WixDependency, - WixDependencyProvider, - WixDependencyRef, - }; - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs b/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs deleted file mode 100644 index 9f7e5fa8..00000000 --- a/src/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs +++ /dev/null @@ -1,22 +0,0 @@ -// 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. - -namespace WixToolset.Data.WindowsInstaller -{ - using System; - - /// - /// Exception thrown when a table definition is missing. - /// - [Serializable] - public class WixMissingTableDefinitionException : WixException - { - /// - /// Instantiate new WixMissingTableDefinitionException. - /// - /// Localized error information. - public WixMissingTableDefinitionException(Message error) - : base(error) - { - } - } -} diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd deleted file mode 100644 index a3dc7e2b..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Xsd/data.xsd +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - Schema for describing WiX Windows Installer Data files. - - - - - - - - - - - - - - - - Codepage of the output. - - - - - Type of the output. - - - - - - - - - - - - - - - Version of WiX used to create this output file. - - - - - - - - - - - - - Name of the substorage. - - - - - diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd deleted file mode 100644 index a4504c01..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - Schema for describing WiX Library files (.wixlib). - - - - - - - - - - - - - - - - Version of WiX used to create this library file - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd b/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd deleted file mode 100644 index 5d95a59c..00000000 --- a/src/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - Schema for describing WiX Object files (.wixobj). - - - - - - - - - - - - Version of WiX used to create this object file. - - - - - - - - - - - - - Identifier for section (optional for Fragments) - - - - - Type of section - - - - - Codepage for output file, only valid on entry sections. - - - - - - - - - - - - - Name of table in Windows Installer database - - - - - - - - - - - - - - - - Row in a table - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Data for a particular field in a row. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Data/WixCorruptFileException.cs b/src/WixToolset.Data/WixCorruptFileException.cs deleted file mode 100644 index 83c3eb80..00000000 --- a/src/WixToolset.Data/WixCorruptFileException.cs +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// Exception when file does not match the expected format. - /// - public class WixCorruptFileException : WixException - { - public WixCorruptFileException(string path, string format, Exception innerException = null) - : base(ErrorMessages.CorruptFileFormat(path, format), innerException) - { - this.Path = path; - this.FileFormat = format; - } - - /// - /// Gets the actual file format found in the file. - /// - public string FileFormat { get; } - - /// - /// Gets the path to the file with unexpected format. - /// - public string Path { get; } - } -} diff --git a/src/WixToolset.Data/WixDataStrings.Designer.cs b/src/WixToolset.Data/WixDataStrings.Designer.cs deleted file mode 100644 index de26156a..00000000 --- a/src/WixToolset.Data/WixDataStrings.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WixToolset.Data { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class WixDataStrings { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal WixDataStrings() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WixToolset.Data.WixDataStrings", typeof(WixDataStrings).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to The value '{0}' is not a legal identifier and therefore cannot be modularized.. - /// - public static string EXP_CannotModularizeIllegalID { - get { - return ResourceManager.GetString("EXP_CannotModularizeIllegalID", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Unknown column type: {0}. - /// - public static string EXP_UnknownColumnType { - get { - return ResourceManager.GetString("EXP_UnknownColumnType", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The table {0} is not supported.. - /// - public static string EXP_UnsupportedTable { - get { - return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture); - } - } - } -} diff --git a/src/WixToolset.Data/WixDataStrings.resx b/src/WixToolset.Data/WixDataStrings.resx deleted file mode 100644 index 999f5057..00000000 --- a/src/WixToolset.Data/WixDataStrings.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - The table {0} is not supported. - - - The value '{0}' is not a legal identifier and therefore cannot be modularized. - - - Unknown column type: {0} - - \ No newline at end of file diff --git a/src/WixToolset.Data/WixException.cs b/src/WixToolset.Data/WixException.cs deleted file mode 100644 index 77dadcd2..00000000 --- a/src/WixToolset.Data/WixException.cs +++ /dev/null @@ -1,63 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// Base class for all WiX exceptions. - /// - [Serializable] - public class WixException : Exception - { - /// - /// Instantiate a new WixException. - /// - public WixException() - { - } - - /// - /// Instantiate a new WixException with a simple string message. - /// - /// Simple string message. - public WixException(string message) : base(message) - { - } - - /// - /// Instantiate a new WixException with a simple message and exception. - /// - /// Simple string message. - /// Inner exception. - public WixException(string message, Exception innerException) : base(message, innerException) - { - } - - /// - /// Instantiate a new WixException with a given WixError. - /// - /// The localized error information. - public WixException(Message error) - : this(error, null) - { - } - - /// - /// Instantiate a new WixException with a given WixError. - /// - /// The localized error information. - /// Original exception. - public WixException(Message error, Exception exception) : - base(error.ToString(), exception) - { - this.Error = error; - } - - /// - /// Gets the error message. - /// - /// The error message. - public Message Error { get; } - } -} diff --git a/src/WixToolset.Data/WixOutput.cs b/src/WixToolset.Data/WixOutput.cs deleted file mode 100644 index 43359f24..00000000 --- a/src/WixToolset.Data/WixOutput.cs +++ /dev/null @@ -1,279 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - using System.IO; - using System.IO.Compression; - using System.Reflection; - using System.Text; - - /// - /// Class that understands the standard file structure of the WiX toolset. - /// - public class WixOutput : IDisposable - { - private readonly Stream stream; - private ZipArchive archive; - private bool disposed; - - private WixOutput(Uri uri, ZipArchive archive, Stream stream) - { - this.Uri = uri; - this.archive = archive; - this.stream = stream; - } - - /// - /// - /// - public Uri Uri { get; } - - /// - /// Creates a new file structure in memory. - /// - /// Newly created WixOutput. - public static WixOutput Create() - { - var uri = new Uri("memorystream:"); - - var stream = new MemoryStream(); - - return WixOutput.Create(uri, stream); - } - - /// - /// Creates a new file structure on disk. - /// - /// Path to write file structure to. - /// Newly created WixOutput. - public static WixOutput Create(string path) - { - var fullPath = Path.GetFullPath(path); - - Directory.CreateDirectory(Path.GetDirectoryName(fullPath)); - - var uri = new Uri(fullPath); - - var stream = File.Create(path); - - return WixOutput.Create(uri, stream); - } - - /// - /// Creates a new file structure. - /// - /// - /// Stream to write the file structure to. - /// Newly created WixOutput. - public static WixOutput Create(Uri uri, Stream stream) - { - var archive = new ZipArchive(stream, ZipArchiveMode.Update, leaveOpen: true); - - return new WixOutput(uri, archive, stream); - } - - /// - /// Loads a wixout from a path on disk. - /// - /// Path to wixout file saved on disk. - /// Loaded created WixOutput. - public static WixOutput Read(string path) - { - var uri = new Uri(Path.GetFullPath(path)); - - var stream = File.OpenRead(path); - - return Read(uri, stream); - } - - /// - /// Loads a wixout from a path on disk or embedded resource in assembly. - /// - /// Uri with local path to wixout file saved on disk or embedded resource in assembly. - /// Loaded created WixOutput. - public static WixOutput Read(Uri baseUri) - { - // If the embedded files are stored in an assembly resource stream (usually - // a .wixlib embedded in a WixExtension). - if ("embeddedresource" == baseUri.Scheme) - { - var assemblyPath = Path.GetFullPath(baseUri.LocalPath); - var resourceName = baseUri.Fragment.TrimStart('#'); - - var assembly = Assembly.LoadFile(assemblyPath); - return WixOutput.Read(assembly, resourceName); - } - else // normal file (usually a binary .wixlib on disk). - { - var stream = File.OpenRead(baseUri.LocalPath); - return WixOutput.Read(baseUri, stream); - } - } - - /// - /// Loads a wixout from an assembly resource stream. - /// - /// - /// - /// Loaded created WixOutput. - public static WixOutput Read(Assembly assembly, string resourceName) - { - var resourceStream = assembly.GetManifestResourceStream(resourceName); - - var uriBuilder = new UriBuilder(assembly.CodeBase) - { - Scheme = "embeddedresource", - Fragment = resourceName - }; - - return Read(uriBuilder.Uri, resourceStream); - } - - /// - /// Reads a file structure from an open stream. - /// - /// - /// Stream to read from. - /// Loaded created WixOutput. - public static WixOutput Read(Uri uri, Stream stream) - { - try - { - var archive = new ZipArchive(stream, ZipArchiveMode.Read, leaveOpen: true); - - return new WixOutput(uri, archive, stream); - } - catch (InvalidDataException) - { - throw new WixException(ErrorMessages.CorruptFileFormat(uri.AbsoluteUri, "wixout")); - } - } - - /// - /// Reopen the underlying archive for read-only or read-write access. - /// - /// Indicates whether the output can be modified. Defaults to false. - public void Reopen(bool writable = false) - { - this.archive?.Dispose(); - this.archive = null; - - this.archive = new ZipArchive(this.stream, writable ? ZipArchiveMode.Update : ZipArchiveMode.Read, leaveOpen: true); - } - - /// - /// Extracts an embedded file. - /// - /// Id to the file to extract. - /// Path to write the extracted file to. - public void ExtractEmbeddedFile(string embeddedId, string outputPath) - { - var entry = this.archive.GetEntry(embeddedId); - - if (entry == null) - { - throw new ArgumentOutOfRangeException(nameof(embeddedId)); - } - - var folder = Path.GetDirectoryName(outputPath); - - Directory.CreateDirectory(folder); - - entry.ExtractToFile(outputPath, overwrite: true); - } - - /// - /// Creates a data stream in the wixout. - /// - /// Stream to the data of the file. - public Stream CreateDataStream(string name) - { - this.DeleteExistingEntry(name); - - var entry = this.archive.CreateEntry(name); - - return entry.Open(); - } - - /// - /// Imports a file from disk into the output. - /// - /// Name of the stream in the output. - /// Path to file on disk to include in the output. - public void ImportDataStream(string name, string path) - { - this.DeleteExistingEntry(name); - - this.archive.CreateEntryFromFile(path, name, System.IO.Compression.CompressionLevel.Optimal); - } - - /// - /// Gets a non-closing stream to the data of the file. - /// - /// Stream to the data of the file. - public Stream GetDataStream(string name) - { - var entry = this.archive.GetEntry(name); - - if (entry == null) - { - throw new ArgumentOutOfRangeException(nameof(name)); - } - - return entry.Open(); - } - - /// - /// Gets the data of the file as a string. - /// - /// String contents data of the file. - public string GetData(string name) - { - var entry = this.archive.GetEntry(name); - - // Use StreamReader to "swallow" BOM if present. - using (var stream = entry.Open()) - using (var streamReader = new StreamReader(stream, Encoding.UTF8)) - { - return streamReader.ReadToEnd(); - } - } - - /// - /// Disposes of the internal state of the file structure. - /// - public void Dispose() - { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Disposes of the internsl state of the file structure. - /// - /// True if disposing. - protected virtual void Dispose(bool disposing) - { - if (!this.disposed) - { - if (disposing) - { - this.archive?.Dispose(); - this.stream?.Dispose(); - } - } - - this.disposed = true; - } - - private void DeleteExistingEntry(string name) - { - var entry = this.archive.GetEntry(name); - if (entry != null) - { - entry.Delete(); - } - } - } -} diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj deleted file mode 100644 index 24b0917b..00000000 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - netstandard2.0 - $(TargetFrameworks);net461;net472 - 7.3 - WiX Toolset Data - embedded - true - true - - CS1591 - - - - - - - - - - - - - - True - True - WixDataStrings.resx - - - - - - PublicResXFileCodeGenerator - WixDataStrings.Designer.cs - - - diff --git a/src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject b/src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject deleted file mode 100644 index c6001ebe..00000000 --- a/src/WixToolset.Data/WixToolset.Data.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - ..\..\version.json - - - \ No newline at end of file diff --git a/src/WixToolset.Data/WixUnexpectedFileFormatException.cs b/src/WixToolset.Data/WixUnexpectedFileFormatException.cs deleted file mode 100644 index 4bd6ba4a..00000000 --- a/src/WixToolset.Data/WixUnexpectedFileFormatException.cs +++ /dev/null @@ -1,35 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - using System; - - /// - /// Exception when file does not match the expected format. - /// - public class WixUnexpectedFileFormatException : WixException - { - public WixUnexpectedFileFormatException(string path, string expectedFormat, string format, Exception innerException = null) - : base(ErrorMessages.UnexpectedFileFormat(path, expectedFormat, format), innerException) - { - this.Path = path; - this.ExpectedFileFormat = expectedFormat; - this.FileFormat = format; - } - - /// - /// Gets the expected file format. - /// - public string ExpectedFileFormat { get; } - - /// - /// Gets the actual file format found in the file. - /// - public string FileFormat { get; } - - /// - /// Gets the path to the file with unexpected format. - /// - public string Path { get; set; } - } -} diff --git a/src/WixToolset.Data/YesNoAlwaysType.cs b/src/WixToolset.Data/YesNoAlwaysType.cs deleted file mode 100644 index 3b4ca5d7..00000000 --- a/src/WixToolset.Data/YesNoAlwaysType.cs +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Yes, No, Always xml simple type. - /// - public enum YesNoAlwaysType - { - /// Not a valid yes, no or always value. - IllegalValue = -2, - - /// Value not set; equivalent to null for reference types. - NotSet = -1, - - /// The no value. - No, - - /// The yes value. - Yes, - - /// The always value. - Always, - } -} diff --git a/src/WixToolset.Data/YesNoDefaultType.cs b/src/WixToolset.Data/YesNoDefaultType.cs deleted file mode 100644 index fd782d46..00000000 --- a/src/WixToolset.Data/YesNoDefaultType.cs +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Yes, No, Default xml simple type. - /// - public enum YesNoDefaultType - { - /// Not a valid yes, no or default value. - IllegalValue = -2, - - /// Value not set; equivalent to null for reference types. - NotSet = -1, - - /// The no value. - No, - - /// The yes value. - Yes, - - /// The default value. - Default, - } -} diff --git a/src/WixToolset.Data/YesNoType.cs b/src/WixToolset.Data/YesNoType.cs deleted file mode 100644 index 9c1cc9a7..00000000 --- a/src/WixToolset.Data/YesNoType.cs +++ /dev/null @@ -1,22 +0,0 @@ -// 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. - -namespace WixToolset.Data -{ - /// - /// Yes/no type (kinda like a boolean). - /// - public enum YesNoType - { - /// Not a valid yes or no value. - IllegalValue = -2, - - /// Value not set; equivalent to null for reference types. - NotSet = -1, - - /// The no value. - No, - - /// The yes value. - Yes, - } -} diff --git a/src/api/wix/Custom.Build.props b/src/api/wix/Custom.Build.props new file mode 100644 index 00000000..889fb62e --- /dev/null +++ b/src/api/wix/Custom.Build.props @@ -0,0 +1,6 @@ + + + + true + + diff --git a/src/api/wix/Directory.Build.props b/src/api/wix/Directory.Build.props new file mode 100644 index 00000000..b3c6287c --- /dev/null +++ b/src/api/wix/Directory.Build.props @@ -0,0 +1,27 @@ + + + + + + Debug + false + MSB3246 + + $(MSBuildProjectName) + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\)) + $(BaseOutputPath)obj\$(ProjectName)\ + $(BaseOutputPath)$(Configuration)\ + + WiX Toolset Team + WiX Toolset + Copyright (c) .NET Foundation and contributors. All rights reserved. + MS-RL + WiX Toolset + + + + + diff --git a/src/api/wix/Directory.Build.targets b/src/api/wix/Directory.Build.targets new file mode 100644 index 00000000..2fcc765a --- /dev/null +++ b/src/api/wix/Directory.Build.targets @@ -0,0 +1,51 @@ + + + + + + + true + $(SolutionPath) + $(NCrunchOriginalSolutionPath) + + + + + + + $([System.IO.File]::ReadAllText($(TheSolutionPath))) + $([System.IO.Path]::GetDirectoryName( $(TheSolutionPath) )) + (?<="[PackageName]", ")(.*)(?=", ") + + + + + + %(Identity) + $(SolutionFileContent.Contains('\%(Identity).csproj')) + + + + + $(RegexPattern.Replace('[PackageName]','%(PackageName)') ) + $([System.Text.RegularExpressions.Regex]::Match('$(SolutionFileContent)', '%(Pattern)')) + + + + + + + + + + + + + + diff --git a/src/api/wix/Directory.csproj.props b/src/api/wix/Directory.csproj.props new file mode 100644 index 00000000..81d24ad1 --- /dev/null +++ b/src/api/wix/Directory.csproj.props @@ -0,0 +1,13 @@ + + + + + true + true + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk)) + false + + diff --git a/src/api/wix/Directory.csproj.targets b/src/api/wix/Directory.csproj.targets new file mode 100644 index 00000000..623228ef --- /dev/null +++ b/src/api/wix/Directory.csproj.targets @@ -0,0 +1,25 @@ + + + + + false + $(OutputPath)\$(AssemblyName).xml + + + + + $(PrivateRepositoryUrl.Replace('.git','')) + + $(MSBuildProjectName).nuspec + $(OutputPath)..\ + $(NuspecProperties);Id=$(PackageId);Authors=$(Authors);Copyright=$(Copyright);Description=$(Description);Title=$(Title) + $(NuspecProperties);Version=$(PackageVersion);RepositoryCommit=$(SourceRevisionId);RepositoryType=$(RepositoryType);RepositoryUrl=$(PrivateRepositoryUrl);ProjectFolder=$(MSBuildProjectDirectory)\;ProjectUrl=$(ProjectUrl) + true + + + + diff --git a/src/api/wix/README.md b/src/api/wix/README.md new file mode 100644 index 00000000..720632c9 --- /dev/null +++ b/src/api/wix/README.md @@ -0,0 +1,3 @@ +# Data +WixToolset.Data - data model for WiX Toolset tools + diff --git a/src/api/wix/WixToolset.Data.sln b/src/api/wix/WixToolset.Data.sln new file mode 100644 index 00000000..d8c62b1d --- /dev/null +++ b/src/api/wix/WixToolset.Data.sln @@ -0,0 +1,61 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2009 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Data", "src\WixToolset.Data\WixToolset.Data.csproj", "{73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Data", "src\test\WixToolsetTest.Data\WixToolsetTest.Data.csproj", "{6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|arm = Debug|arm + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|arm = Release|arm + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|arm.ActiveCfg = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|arm.Build.0 = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x64.ActiveCfg = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x64.Build.0 = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x86.ActiveCfg = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x86.Build.0 = Debug|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|Any CPU.Build.0 = Release|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|arm.ActiveCfg = Release|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|arm.Build.0 = Release|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x64.ActiveCfg = Release|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x64.Build.0 = Release|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x86.ActiveCfg = Release|Any CPU + {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x86.Build.0 = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|arm.ActiveCfg = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|arm.Build.0 = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x64.ActiveCfg = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x64.Build.0 = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x86.ActiveCfg = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x86.Build.0 = Debug|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|Any CPU.Build.0 = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|arm.ActiveCfg = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|arm.Build.0 = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x64.ActiveCfg = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x64.Build.0 = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x86.ActiveCfg = Release|Any CPU + {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2C73DAA1-A584-4542-A2C3-951EF6203ED5} + EndGlobalSection +EndGlobal diff --git a/src/api/wix/WixToolset.Data.v3.ncrunchsolution b/src/api/wix/WixToolset.Data.v3.ncrunchsolution new file mode 100644 index 00000000..10420ac9 --- /dev/null +++ b/src/api/wix/WixToolset.Data.v3.ncrunchsolution @@ -0,0 +1,6 @@ + + + True + True + + \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/AccessModifier.cs b/src/api/wix/WixToolset.Data/AccessModifier.cs new file mode 100644 index 00000000..191558b5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/AccessModifier.cs @@ -0,0 +1,99 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public enum AccessModifier + { + /// + /// Indicates the identifier is globally visible to all other sections. + /// + Global, + [Obsolete] + Public = Global, + + /// + /// Indicates the identifier is visible only to sections in the same library. + /// + Library, + [Obsolete] + Internal = Library, + + /// + /// Indicates the identifier is visible only to sections in the same source file. + /// + File, + [Obsolete] + Protected = File, + + /// + /// Indicates the identifiers is visible only to the section where it is defined. + /// + Section, + [Obsolete] + Private = Section, + } + + /// + /// Extensions for converting AccessModifier to and from strings optimally. + /// + public static class AccessModifierExtensions + { + /// + /// Converts a string to an AccessModifier. + /// + /// String value to convert. + /// Converted AccessModifier. + public static AccessModifier AsAccessModifier(this string access) + { + switch (access) + { + case "global": + case "public": + return AccessModifier.Global; + + case "library": + case "internal": + return AccessModifier.Library; + + case "file": + case "protected": + return AccessModifier.File; + + case "section": + case "private": + return AccessModifier.Section; + + default: + throw new ArgumentException($"Unknown AccessModifier: {access}", nameof(access)); + } + } + + /// + /// Converts an AccessModifier to a string. + /// + /// AccessModifier value to convert. + /// Converted string. + public static string AsString(this AccessModifier access) + { + switch (access) + { + case AccessModifier.Global: + return "global"; + + case AccessModifier.Library: + return "library"; + + case AccessModifier.File: + return "file"; + + case AccessModifier.Section: + return "section"; + + default: + throw new ArgumentException($"Unknown AccessModifier: {access}", nameof(access)); + } + } + } +} diff --git a/src/api/wix/WixToolset.Data/AssemblyInfo.cs b/src/api/wix/WixToolset.Data/AssemblyInfo.cs new file mode 100644 index 00000000..b3740b2a --- /dev/null +++ b/src/api/wix/WixToolset.Data/AssemblyInfo.cs @@ -0,0 +1,9 @@ +// 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. + +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyCulture("")] +[assembly: CLSCompliant(true)] +[assembly: ComVisible(false)] diff --git a/src/api/wix/WixToolset.Data/Bind/BindVariable.cs b/src/api/wix/WixToolset.Data/Bind/BindVariable.cs new file mode 100644 index 00000000..276dae38 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Bind/BindVariable.cs @@ -0,0 +1,62 @@ +// 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. + +namespace WixToolset.Data.Bind +{ + using SimpleJson; + + /// + /// Bind variable. + /// + public sealed class BindVariable + { + /// + /// Gets or sets the source line number. + /// + public SourceLineNumber SourceLineNumbers { get; set; } + + /// + /// Gets or sets the variable identifier. + /// + /// The variable identifier. + public string Id { get; set; } + + /// + /// Gets or sets the variable's value. + /// + /// The variable's value. + public string Value { get; set; } + + /// + /// Gets or sets whether this variable is overridable. + /// + /// Whether this variable is overridable. + public bool Overridable { get; set; } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "name", this.Id }, + }; + + jsonObject.AddIsNotNullOrEmpty("value", this.Value); + jsonObject.AddNonDefaultValue("overridable", this.Overridable, false); + jsonObject.AddNonDefaultValue("ln", this.SourceLineNumbers?.Serialize()); + + return jsonObject; + } + + internal static BindVariable Deserialize(JsonObject jsonObject) + { + var variable = new BindVariable() + { + Id = jsonObject.GetValueOrDefault("name"), + Value = jsonObject.GetValueOrDefault("value"), + Overridable = jsonObject.GetValueOrDefault("overridable", false), + SourceLineNumbers = jsonObject.GetValueOrDefault("ln") + }; + + return variable; + } + } +} diff --git a/src/api/wix/WixToolset.Data/Burn/BurnConstants.cs b/src/api/wix/WixToolset.Data/Burn/BurnConstants.cs new file mode 100644 index 00000000..484b144d --- /dev/null +++ b/src/api/wix/WixToolset.Data/Burn/BurnConstants.cs @@ -0,0 +1,26 @@ +// 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. + +namespace WixToolset.Data.Burn +{ + public static class BurnConstants + { + public const string BurnUXContainerName = "WixUXContainer"; + public const string BurnDefaultAttachedContainerName = "WixAttachedContainer"; + public const string BundleChainPackageGroupId = "WixChain"; + public const string BundleDefaultBoundaryId = "WixDefaultBoundary"; + public const string BundleLayoutOnlyPayloadsName = "BundleLayoutOnlyPayloads"; + + public const string BurnManifestWixOutputStreamName = "wix-burndata.xml"; + public const string BundleExtensionDataWixOutputStreamName = "wix-bextdata"; + public const string BootstrapperApplicationDataWixOutputStreamName = "wix-badata.xml"; + + public const string BootstrapperApplicationDataSymbolDefinitionTag = "WixBootstrapperApplicationData"; + public const string BundleExtensionSearchSymbolDefinitionTag = "WixBundleExtensionSearch"; + + // The following constants must stay in sync with src\burn\engine\core.h + public const string BURN_BUNDLE_NAME = "WixBundleName"; + public const string BURN_BUNDLE_ORIGINAL_SOURCE = "WixBundleOriginalSource"; + public const string BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER = "WixBundleOriginalSourceFolder"; + public const string BURN_BUNDLE_LAST_USED_SOURCE = "WixBundleLastUsedSource"; + } +} diff --git a/src/api/wix/WixToolset.Data/ComplexReferenceChildType.cs b/src/api/wix/WixToolset.Data/ComplexReferenceChildType.cs new file mode 100644 index 00000000..a5d4e7ac --- /dev/null +++ b/src/api/wix/WixToolset.Data/ComplexReferenceChildType.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Types of children in complex refernece. + /// + public enum ComplexReferenceChildType + { + /// Unknown complex reference type, default and invalid. + Unknown, + + /// Component child of complex reference. + Component, + + /// Feature child of complex reference. + Feature, + + /// ComponentGroup child of complex reference. + ComponentGroup, + + /// FeatureGroup child of complex reference. + FeatureGroup, + + /// Module child of complex reference. + Module, + + /// Payload child of complex reference. + Payload, + + /// PayloadGroup child of complex reference. + PayloadGroup, + + /// Package child of complex reference. + Package, + + /// PackageGroup child of complex reference. + PackageGroup, + + /// PackagePayload child of complex reference. + PackagePayload, + + /// PatchFamily child of complex reference. + PatchFamily, + + /// PatchFamilyGroup child of complex reference. + PatchFamilyGroup, + + /// ContainerPackage child of complex reference. + ContainerPackage, + } +} diff --git a/src/api/wix/WixToolset.Data/ComplexReferenceParentType.cs b/src/api/wix/WixToolset.Data/ComplexReferenceParentType.cs new file mode 100644 index 00000000..87731b97 --- /dev/null +++ b/src/api/wix/WixToolset.Data/ComplexReferenceParentType.cs @@ -0,0 +1,49 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Types of parents in complex reference. + /// + public enum ComplexReferenceParentType + { + /// Unknown complex reference type, default and invalid. + Unknown, + + /// Feature parent of complex reference. + Feature, + + /// ComponentGroup parent of complex reference. + ComponentGroup, + + /// FeatureGroup parent of complex reference. + FeatureGroup, + + /// Module parent of complex reference. + Module, + + /// Product parent of complex reference. + Product, + + /// PayloadGroup parent of complex reference. + PayloadGroup, + + /// Package parent of complex reference. + Package, + + /// PackageGroup parent of complex reference. + PackageGroup, + + /// Container parent of complex reference. + Container, + + /// Layout parent of complex reference. + Layout, + + /// Patch parent of complex reference. + Patch, + + /// PatchFamilyGroup parent of complex reference. + PatchFamilyGroup, + } +} diff --git a/src/api/wix/WixToolset.Data/ComponentKeyPathType.cs b/src/api/wix/WixToolset.Data/ComponentKeyPathType.cs new file mode 100644 index 00000000..443049d3 --- /dev/null +++ b/src/api/wix/WixToolset.Data/ComponentKeyPathType.cs @@ -0,0 +1,27 @@ +// 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. + +namespace WixToolset.Data +{ + public enum ComponentKeyPathType + { + /// + /// Folder as a key path. + /// + Directory, + + /// + /// File resource as a key path. + /// + File, + + /// + /// ODBC data source as a key path. + /// + OdbcDataSource, + + /// + /// A simple registry key acting as a key path. + /// + Registry, + } +} diff --git a/src/api/wix/WixToolset.Data/CompressionLevel.cs b/src/api/wix/WixToolset.Data/CompressionLevel.cs new file mode 100644 index 00000000..05aa3816 --- /dev/null +++ b/src/api/wix/WixToolset.Data/CompressionLevel.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Compression level to use when creating cabinet. + /// + public enum CompressionLevel + { + /// Use no compression. + None, + + /// Use low compression. + Low, + + /// Use medium compression. + Medium, + + /// Use high compression. + High, + + /// Use ms-zip compression. + Mszip + } +} diff --git a/src/api/wix/WixToolset.Data/Data/messages.xml b/src/api/wix/WixToolset.Data/Data/messages.xml new file mode 100644 index 00000000..5f03fef5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Data/messages.xml @@ -0,0 +1,4038 @@ + + + + + + + + + + {0} Exception Type: {1} Stack Trace: {2} + + + + + + + + Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided. + + + + + + + + Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified. + + + + + + + The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. + + + + + + The {0} element contains an unexpected attribute '{1}'. + + + + + + + The {0} element contains an unexpected child element '{1}'. + + + + + + + The {0}/@{1} attribute's value cannot be an empty string. If a value is not required, simply remove the entire attribute. + + + + + The {0}/@{1} attribute's value cannot be an empty string. To use the default value "{2}", simply remove the entire attribute. + + + + + + + + The current version of the toolset is {0}, but version {1} is required. + + + + + The current version of the extension '{2}' is {0}, but version {1} is required. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal integer value. Legal integer values are from -2,147,483,648 to 2,147,483,647. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal guid value. + + + + + + + + The {0}/@{1} attribute was not found; it is required. + + + + + The {0} element must have a value for exactly one of the {1} or {2} attributes. + + + + + + + The {0}/@{1} attribute was not found; it is required when attribute {2} is specified. + + + + + + The {0}/@{1} attribute was not found; it is required when attribute {2} has a value of '{3}'. + + + + + + + The {0}/@{1} attribute was not found; it is required unless the attribute {2} has a value of '{3}'. + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a secure property, it must also be a public property. This means the Property/@Id value must be completely uppercase. + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a search property, it must also be a public property. This means the Property/@Id value must be completely uppercase. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long because it will be used to create a stream name. It cannot be more than than {4} characters long. + + + + + + + + The binary value in table '{0}' will be stored with a stream name, '{1}', that is {2} characters long. This is too long because the maximum allowed length for a stream name is 62 characters long. Since the stream name is created by concatenating the table name and values of the primary key for a row (delimited by periods), this error can be resolved by shortening a value that is part of the primary key. + + + + + + + + The {0} element's value, '{1}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + The {0}/@{1} attribute's value is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + + The {0}/@{1} attribute's value '{2}' contains an illegal identifier '{3}'. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal yes/no value. The only legal values are 'no' and 'yes'. + + + + + + + + Failed to create cab '{0}' while compressing file '{1}' with error 0x{2:X8}. + + + + + + Failed to create cab '{0}' with error 0x{1:X8}. + + + + + + + Failed to extract cab '{0}' to directory '{1}'. This is most likely due to a lack of available disk space on the destination drive. + + + + + Failed to extract cab '{0}' from merge module '{1}' to directory '{2}'. This is most likely due to a lack of available disk space on the destination drive. + + + + + + + + The {0}/@(1) attribute's value, '{2}' does not match the advertise state on its parent element: '{3}'. (Note: AppIds nested under Fragment, Module, or Product elements must be advertised.) + + + + + + + + + The {0}/@{1} attribute cannot be specified because the element is advertised. + + + + + + + The {0} element's inner text cannot be an empty string or completely whitespace. If you don't want a condition, then simply remove the entire {0} element. + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}'. + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', or '{4}'. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', or '{5}'. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', or '{6}'. + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', or '{7}'. + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', or '{8}'. + + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', or '{9}'. + + + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', or '{10}'. + + + + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', or '{28}'. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following source attributes specified at a time: {2}, {3}, {4}, {5}, or {6}. + + + + + + + + + + + + The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following target attributes specified at a time: {2}, {3}, {4}, {5}, {6}, {7}, or {8}. + + + + + + + + + + + + + + The {0} element contains illegal inner text: '{1}'. It may not contain inner text unless the {2} attribute is specified. + + + + + + + + The {0} element requires the {1} attribute because there is no parent {0} element. + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid 8.3-compliant name. Legal names contain no more than 8 non-period characters followed by an optional period and extension of no more than 3 non-period characters. Any character except for the follow may be used: \ ? | > < : / * " + , ; = [ ] (space). + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid filename because it contains illegal characters. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \ ? | > < : / * ". + + + + + + The {0}/@{1} attribute's value '{2}' contains a invalid filename '{3}'. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \ ? | > < : / * ". + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long. + + + + + + + + The {0}/@{1} attribute's value, '{2}', contains lowercase characters. Since this directory is user-configurable, it needs to be a public property. This means the value must be completely uppercase. + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'. These options would ask the installer to disallow the advertised state for this feature while at the same time favoring it. + + + + + + + + + + The {0}/@{1} attribute cannot be specified if the {2} attribute's value is '{3}'. These options would ask the installer to force this feature to follow the parent installation state and simultaneously favor a particular installation state just for this feature. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. The name is too long for an embedded cabinet. It cannot be more than than 62 characters long. + + + + + + + + + The {0}/{1} element cannot be specified if the {2} attribute's value is '{3}' or '{4}'. + + + + + + + + + + The {0}/@{1} attribute and a {0}/{2} element cannot both be specified. Only one may be specified if the {3} attribute's value is not 'multiString'. + + + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2} is present. + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2} is present with value '{3}'. + + + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2} or {3} is also present. + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, or {4} is also present. + + + + + + + + The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, {4}, or {5} is also present. + + + + + + + + + + + The {0}/@{1} attribute can only be specified with the following attribute {2} present. + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present. + + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present with value '{4}'. + + + + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, or {4} present. + + + + + + + + The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, {4}, or {5} present. + + + + + + + + + + + The {0}/@{1} attribute's value, '{2}', can only be specified with attribute {3} present with value '{4}'. + + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot be specified without attribute {3} present. + + + + + + + + + The integer value {0} collides with a sentinel value in the compiler code. + + + + The long integral value {0} collides with a sentinel value in the compiler code. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal Guid value. A Guid needs to be generated and put in place of '{2}' in the source file. + + + + + + + + The {0} element contains multiple {1} child elements. There can only be one {1} child element per {0} element. + + + + + + + The {0} element has multiple key paths set. The key path may only be set to '{2}' in extension elements that support it or one of the following locations: {0}/@{1}, {3}/@{1}, {4}/@{1}, or {5}/@{1}. + + + + + + + + + + + Failed to close cab '{0}'. + + + + Failed to close cab '{0}', error: {1}. + + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required. + + + + + + The {0} element's {1}, {2}, or {3} attribute was not found; one of these is required. + + + + + + + The {0} element's {1}, {2}, {3}, or {4} attribute was not found; one of these is required. + + + + + + + + The {0} element's {1}, {2}, {3}, {4}, or {5} attribute was not found; one of these is required. + + + + + + + + + The {0} element's {1}, {2}, {3}, {4}, {5}, or {6} attribute was not found; one of these is required. + + + + + + + + + + The {0} element's {1}, {2}, {3}, {4}, {5}, {6}, or {7} attribute was not found; one of these is required. + + + + + + + + + + + + + The {0} element's {1} or {2} attribute was not found; at least one of these attributes must be specified. + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} is present. + + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} has a value of '{4}'. + + + + + + + + + + The {0} element's {1} or {2} attribute was not found; one of these is required without attribute {3} present. + + + + + + + + + The {0} element is non-advertised and therefore requires a parent {1} element. + + + + + + + The document element name '{0}' is invalid. A WiX {1} file must use '{2}' as the document element name. + + + + + + + + The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2} element. + + + + + + The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2}/@{3} attribute. + + + + + + + + + Access to the path '{0}' is denied. + + + + + Cannot set both ExcludeLanguage and ExcludeExceptLanguage attributes on a ModuleExclusion element. + + + + The '{0}' dialog element does not have a valid tabbable control. You must either have a tabbable control that is not marked TabSkip='yes', or you must mark a control TabSkip='no'. If you have a page with no tabbable controls (a progress page, for example), you might want to set the first Text control to be TabSkip='no'. + + + + + + There is no data for column '{0}' in a contained row of custom table '{1}'. A non-null value must be supplied for this column. + + + + + + + The FileTypeMask/@Value and FileTypeMask/@Mask attributes must be the same length. + + + + + Only one search element can appear under a '{0}' element. + + + + + + The {1} attribute can only be specified on the {2} element. + + + + + + + + A '{0}' element must have a search element as a child. + + + + + + Under a '{0}' element, multiple identifiers were found: '{1}' and '{2}'. All search elements under this element must have the same id. + + + + + + + + The advertise state of this element: '{0}', does not match the advertise state set on the parent element: '{1}'. + + + + + + + The context value '{0}' was duplicated. Context values must be distinct. + + + + + + Cannot convert RelativePath into Registry elements. + + + + + The {0}/@{1} attribute cannot be specified when the {0} element is nested underneath a {2} element. If this {0} is a member of a ComponentGroup where ComponentGroup/@{1} is set, then the {0}/@{1} attribute should be removed. + + + + + + + + A {0} element must have at least one child element of type {1}. + + + + + A {0} element must have at least one child element of type {1} or {2}. + + + + + + A {0} element must have at least one child element of type {1}, {2}, or {3}. + + + + + + + A {0} element must have at least one child element of type {1}, {2}, {3}, or {4}. + + + + + + + + + + Registry/@Root attribute is invalid on a nested Registry element. Either remove the Root attribute or move the Registry element so it is not nested under another Registry element. + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/default value. The only legal values are 'default', 'no' or 'yes'. + + + + + + + + The {0}/@{1} attribute cannot be specified in a merge module. + + + + + + Permission elements cannot have GenericRead as the only permission specified. Include at least one other permission. + + + + The {0}/@{1} attribute cannot be specified when the element has body text as well. Specify either the attribute or the body, but not both. + + + + + + + A {0} element must have a search element as a child when the {0}/@{1} attribute has the value '{2}'. + + + + + + + + The {0} property was specified. Special MSI properties cannot be authored. Use the attributes on the Property element instead. + + + + + + A {0} element must have a Before attribute, After attribute, or a Sequence attribute. + + + + + + The {0}/@{1} attribute's value, '{2}, is not supported by the Windows Installer. + + + + + + + + A {0} element was specified with Type='{1}' and TabSkip='no'. Tabbable controls are not allowed in Billboards. + + + + + + + A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'. + + + + + + + Attempted to extract cab '{0}' from merge module '{1}' to directory '{2}'. The cab file was not found. This usually means that you have a merge module without a cabinet inside it. + + + + + + + All RadioButton elements in a RadioButtonGroup must be consistent with their use of the Bitmap, Icon, and Text attributes. Ensure all of the RadioButton elements in this group have the same attribute specified. + + + RadioButtonGroup elements that contain RadioButton elements with Bitmap or Icon attributes set to "yes" can only be specified under a Control element. Move your RadioButtonGroup element as a child of the appropriate Control element. + + + + Illegal value '{0}' for the -sw<N> command line option. Specify a particular warning number, like '-sw6' to suppress the warning with ID 6, or '-sw' alone to suppress all warnings. + + + + + + The variable named '{0}' is not allowed in a foreach expression. + + + + + + Could not find the prefix in parameter name: '{0}'. + + + + + + Could not find the preprocessor extension for parameter '{0}'. A preprocessor extension is expected because the parameter prefix, '{1}', is not one of the standard types: 'env', 'res', 'sys', or 'var'. + + + + + + + The file with id '{0}' and name '{1}' could not be found with source path: '{2}'. + + + + + + + + {0} + + + + + + Invalid file name '{0}'. + + + + + + A circular reference of groups was detected. The infinite loop includes: {0}. Group references must form a directed acyclic graph. + + + + + + The {0}/@{1} attribute's value, '{2}', is a mixed-case guid. All letters in a guid value should be uppercase. + + + + + + + + The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss. + + + + + + + + Multiple entry sections '{0}' and '{1}' found. Only one entry section may be present in a single target. + + + + + + Location of entry section related to previous error. + + + + Duplicate symbol '{0}' found. This typically means that an Id is duplicated. Access modifiers (internal, protected, private) cannot prevent these conflicts. Ensure all your identifiers of a given type (File, Component, Feature) are unique. + + + + Duplicate symbol '{0}' referenced by {1}. This typically means that an Id is duplicated. Ensure all your identifiers of a given type (File, Component, Feature) are unique or use an access modifier to scope the identfier. + + + + + + Location of symbol related to previous error. + + + + Could not find entry section in provided list of intermediates. Expected section of type '{0}'. + + + + + + The identifier '{0}' could not be found. Ensure you have typed the reference correctly and that all the necessary inputs are provided to the linker. + + + + The identifier '{0}' is inaccessible due to its protection level. + + + + + + + Multiple primary references were found for {0} '{1}' in {2} '{3}' and {4} '{5}'. + + + + + + + + + + + Component {0} cannot be contained in a Module twice. + + + + + + The merge module '{0}' contains a file identifier, '{1}', that is duplicated either in another merge module or in a File/@Id attribute. File identifiers must be unique. Please change one of the file identifiers to a different value. + + + + + + + The merge module '{0}' contains 2 or more file identifiers that only differ by case: '{1}' and '{2}'. The WiX toolset extracts merge module files to the file system using these identifiers. Since most file systems are not case-sensitive a collision is likely. Please contact the owner of the merge module for a fix. + + + + + + + + The component '{0}' does not have an explicit key path specified. If the ordering of the elements under the Component element changes, the key path will also change. To prevent accidental changes, the key path should be set to 'yes' in one of the following locations: Component/@KeyPath, File/@KeyPath, ODBCDataSource/@KeyPath, or Registry/@KeyPath. + + + + + + The localization variable !(loc.{0}) is unknown. Please ensure the variable is defined. + + + + + + The system cannot find the file '{0}'. + + + + The system cannot find the file '{0}' with type '{1}'. + + + + + + + Not a valid {0} file; detail: {1} + + + + + + ProgId elements may not be nested more than 1 level deep. + + + + The DirectorySearchRef {0} can not have a Parent attribute {1} and also be nested under parent element {2} + + + + + + + + Schema validation failed with the following error at line {1}, column {2}: {0} + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid version. Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid column width. Valid column widths are 2 or 4. + + + + + + + The CustomTable is missing a Column element with the PrimaryKey attribute set to 'yes'. At least one column must be marked as the primary key. + + + + The parameter '{0}' must be followed by the extension's type specification. The type specification should be a fully qualified class and assembly identity, for example: "MyNamespace.MyClass,myextension.dll". + + + + + + The parameter '{0}' must be followed by a file path. + + + + + + The parameter '{0}' must be followed by a directory path. + + + + + + The parameter '{0}' must be followed by a file or directory path. To specify a directory path the string must end with a backslash, for example: "C:\Path\". + + + + + + Path '{0}' contains a literal quote character. Quotes are often accidentally introduced when trying to refer to a directory path with spaces in it, such as "C:\Out Directory\" -- the backslash before the quote acts an escape character. The correct representation for that path is: "C:\Out Directory\\". + + + + + + Additional argument '{0}' was unexpected. Remove the argument and add the '-?' switch for more information. + + + + + + The {0}/@{1} attribute's value, '{2}', is incorrect. It should not contain values of '+', '-', or '*' when the {0}/@Value attribute is empty. Instead, use the proper element and attributes: for Name='+' use RegistryKey/@Action='createKey', for Name='-' use RemoveRegistryKey/@Action='removeOnUninstall', for Name='*' use RegistryKey/@Action='createAndRemoveOnUninstall'. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long for a family name because the maximum allowed length is 8 characters long. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', contains illegal characters for a family name. Legal values include letters, numbers, and underscores. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal long value. Legal long values are from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}. + + + + + + + + + + The extension '{0}' uses the same xml schema namespace, '{1}', as previously loaded extension '{2}'. Please either remove one of the extensions or rename the xml schema namespace to avoid the collision. + + + + + + + + The extension '{0}' contains a definition for table '{1}' that collides with a previously loaded table definition. Please remove one of the conflicting extensions or rename one of the tables to avoid the collision. + + + + + + + The extension '{0}' uses the same preprocessor variable prefix, '{1}', as previously loaded extension '{2}'. Please remove one of the extensions or rename the prefix to avoid the collision. + + + + + + + + The process can not access the file '{0}' because it is being used by another process. + + + + + + Cannot open the merge module '{0}' from file '{1}'. + + + + + + + The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision. + + + + + + + The file row with identifier '{0}' could not be found. + + + + + + The assembly file '{0}' appears to be invalid. Please ensure this is a valid assembly file and that the user has the appropriate access rights to this file. More information: {1} + + + + + + + The end element matching the '{0}' start element was not found. + + + + + + The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. + + + + + + The file '{0}' should be compressed but is not part of a compressed media. Files will be compressed if either the File/@Compressed or Package/@Compressed attributes are set to 'yes'. This can be fixed by setting the Media/@Cabinet attribute for media '{1}'. + + + + + + + There was an error importing the file '{0}'. + + + + There was an error importing table '{1}' from file '{0}'. + + + + + + + Found an invalid sequence table '{0}'. + + + + + + The directory '{0}' could not be found. + + + + + + The component '{0}' is not assigned to a feature. The component's {1} '{2}' requires it to be assigned to at least one feature. + + + + + + + + The action '{0}' is recursively placed in the '{1}' table. + + + + + + + The {0} file format version {1} is not compatible with the expected {0} file format version {2}. + + + + + + + + The {0} element contains an unexpected xml node of type {1}. + + + + + + + A parsed row has more fields that contain data for table '{0}' than are defined. This is potentially because a standard table is being redefined as a custom table or is based on an older table schema. + + + + + + The extension '{0}' could not be loaded. + + + + The extension '{0}' could not be loaded because of the following reason: {1} + + + + + The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}'. + + + + + + The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}' or '{3}'. + + + + + + + + + Found invalid subexpression '{0}' in expression '{1}'. + + + + + + + Found a <?{1}?> processing instruction without a matching <?{0}?> before it. + + + + + + + Found a <?{0}?> processing instruction without a matching <?{1}?> after it. + + + + + + + Expecting an argument for 'NOT' in expression '{0}'. + + + + + + Ill-formed preprocessor variable '$({0})'. Variables must have a prefix (like 'var.', 'env.', or 'sys.') and a name at least 1 character long. If the literal string '$({0})' is desired, use '$$({0})'. + + + + + + Undefined preprocessor variable '$({0})'. + + + + + + The define statement '<?define {0}?>' is not well-formed. Define statements should be in the form <?define variableName = "variable value"?>. + + + + + + The variable '{0}' with value '{1}' was previously declared with value '{2}'. + + + + + + + + The variable '{0}' cannot be undefined because its already undefined. + + + + + + The foreach statement '{0}' is illegal. The proper format for foreach is <?foreach varName in valueList?>. + + + + + + The {0}/@{1} attribute cannot be specified when a {2} element is nested underneath the {0} element. + + + + + + + A <?foreach?> statement was found that had no matching <?endforeach?>. + + + + The quotes don't match in the expression '{0}'. + + + + + + The parenthesis don't match in the expression '{0}'. + + + + + + A required variable was missing in the expression '{0}'. + + + + + + An unexpected literal was found in the expression '{0}'. + + + + + + An illegal number was found in the expression '{0}'. + + + + + + The operator '{0}' is unexpected. + + + + + + The empty subexpression is unexpected in the expression '{0}'. + + + + + + The custom table column '{0}' is unknown. + + + + + + Encountered an unknown custom table column type '{0}'. + + + + + Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column. + + + + The {0} table contains an action '{1}' that is declared overridable in two different locations. Please remove one of the actions or the Overridable='yes' attribute from one of the actions. + + + + + + The location of the action related to previous error. + + + + The {0} table contains an action '{1}' that is declared in two different locations. Please remove one of the actions or set the Overridable='yes' attribute on one of their elements. + + + + + + The location of the action related to previous error. + + + + The {0} table contains an action '{1}' that cannot be suppressed because it is not declared overridable in the base definition. Please stop suppressing the action or make it overridable in its base declaration. + + + + + + The location of the non-overridable definition of the action related to previous error. + + + + The {0} table contains a custom action '{1}' that has a sequence number specified. The Sequence attribute is not allowed for custom actions in a merge module. Please remove the action or use the Before or After attributes to specify where this action should be sequenced relative to another action. + + + + + + + The {0} table contains a standard action '{1}' that does not have a sequence number specified. The Sequence attribute is required for standard actions in a merge module. Please remove the action or use the Sequence attribute. + + + + + + + The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is also scheduled to come before or after action '{1}'. Please remove this circular dependency by changing the Before or After attribute for one of the actions. + + + + + + + + The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is a special action which only occurs when the installer terminates. These special actions can be identified by their negative sequence numbers. Please schedule the action '{1}' to come before or after a different action. + + + + + + + The location of the special termination action related to previous error(s). + + + + The {0} table contains an action '{1}' which cannot have a unique sequence number because it is scheduled before or after action '{2}'. There is not enough room before or after this action to assign a unique sequence number. Please schedule one of the actions differently so that it will be in a position with more sequence numbers available. Please note that sequence numbers must be an integer in the range 1 - 32767 (inclusive). + + + + + + + The location of the sequenced action related to previous error. + + + + The {0}/@{1} attribute's value '{2}' is invalid because it would make this action dependent upon itself. Please change the value to the name of a different action. + + + + + + + + Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. + + + + + + Could not find a row in the '{0}' table for this patch creation package. Patch creation packages must contain at least one row in the '{0}' table. + + + + + + An unexpected row in the '{0}' table was found in this merge module. Merge modules cannot contain the '{0}' table. + + + + + + An unexpected row in the '{0}' table was found in this patch creation package. Patch creation packages cannot contain the '{0}' table. + + + + + + The module '{0}' cannot be merged because it excludes or is excluded by the merge module with signature '{1}'. + + + + + + + The {0} table contains a row with primary key(s) '{1}' which requires a feature to properly merge from the merge module '{2}'. Nest a MergeRef element with an Id attribute set to the value '{3}' under a Feature element to fix this error. + + + + + + + + + The language '{0}' is supported but uses an invalid language transform in the merge module '{1}'. + + + + + + + Could not locate language '{0}' (or a transform for this language) in the merge module '{1}'. This is likely due to an incorrectly authored Merge/@Language attribute. + + + + + + + Decompilation of the {0} table has not been implemented by its extension. + + + + + + MIME element cannot be marked as the default when its advertise state differs from its parent element. Ensure that the advertise state of the MIME element matches its parents element or remove the Mime/@Advertise attribute completely. + + + + + Version independent ProgIds cannot have Icons. Remove the Icon and/or IconIndex attributes from your ProgId element. + + + + + The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present. + + + + + + + The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present with value '{4}'. + + + + + + + + + + The Merge element '{0}' specified an invalid language '{1}'. Verify that localization tokens are being properly resolved to a numeric LCID. + + + + + + + The WiX variable '{0}' is declared in more than one location. Please remove one of the declarations. + + + + + + The WiX variable '{0}' was declared without a value. Please specify a value for the variable. + + + + + + The WiX variable !(wix.{0}) is unknown. Please ensure the variable is declared on the command line for light.exe, via a WixVariable element, or inline using the syntax !(wix.{0}=some value which doesn't contain parenthesis). + + + + + + The WiX variable $(wix.{0}) uses an illegal prefix '$'. Please use the '!' prefix instead. + + + + + + The {0} element has no namespace. Please make the {0} element look like the following: <{0} xmlns="{1}">. + + + + + The {0} element has an incorrect namespace of '{1}'. Please make the {0} element look like the following: <{0} xmlns="{2}">. + + + + + + + + The {0} element contains an unhandled extension element '{1}'. Please ensure that the extension for elements in the '{2}' namespace has been provided. + + + + + + + + The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided. + + + + + + + + The {0} element contains an unsupported extension attribute '{1}'. The {0} element does not currently support extension attributes. Is the {1} attribute using the correct XML namespace? + + + + + + + The {0} element contains an unsupported extension element '{1}'. The {0} element does not currently support extension elements. Is the {1} element using the correct XML namespace? + + + + + + + {0}: {1} + + + + + + + The Directory with Id '{0}' is not a valid root directory. There may only be a single root directory per product or module and its Id attribute value must be 'TARGETDIR' and its Name attribute value must be 'SourceDir'. + + + + + + The 'TARGETDIR' directory has an illegal DefaultDir value of '{0}'. The DefaultDir value is created from the *Name attributes of the Directory element. The TARGETDIR directory is a special directory which must have its Name attribute set to 'SourceDir'. + + + + + + The {0} element contains an unexpected child element '{1}'. The '{1}' element may only occur {2} time(s) under the {0} element. + + + + + + + The Column element specifies a binary column but does not have the correct Category specified. Windows Installer requires binary columns to specify their category as binary. Please set the Category attribute's value to 'Binary'. + + + The Feature element specifies a root feature with an illegal InstallDefault value of 'followParent'. Root features cannot follow their parent feature's install state because they don't have a parent feature. Please remove or change the value of the InstallDefault attribute. + + + + The {0}/@{1} attribute with value '{2}', is too long for a feature name. Due to limitations in the Windows Installer, feature names cannot be longer than 38 characters in length. + + + + + + + The DigitalSignature element cannot be nested under a Media element which specifies EmbedCab='yes'. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or change the value of the Media/@EmbedCab attribute to 'no'. + + + The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute. + + + + The localization variable '{0}' specifies an illegal inline default value of '{1}'. Localization variables cannot specify default values inline, instead the value should be specified in a WiX localization (.wxl) file. + + + + + + + The merge module '{0}' is not assigned to a feature. All merge modules must be assigned to at least one feature. + + + + + + An unexpected Win32 exception with error code 0x{0:X} occurred: {1} + + + + + An unexpected Win32 exception with error code 0x{0:X} occurred while accessing file '{1}': {2} + + + + + + + + Error executing unknown ICE action. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "{0}". + + + + Error executing ICE action '{1}'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "{0}". + + + + + + + Illegal number of threads to create cabinets: '{0}' for -ct <N> command line option. Specify the number of threads to use like -ct 2. + + + + + + The {0} environment variable is set to an invalid value of '{1}'. + + + + + + + The definition for the '{0}' table's '{1}' column is an invalid foreign key relationship to the {2} table's column number {3}. It is not a valid foreign key table column number because it is too small (less than 1) or greater than the count of columns in the foreign table's definition. + + + + + + + + + The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: one is {4} and the other is {5}. Change one of the modularization types so that they match. + + + + + + + + + + + The cube file '{0}' cannot be found. This file is required for MSI validation. + + + + + + Failed to open database '{0}'. Ensure it is a valid database, and it is not open by another process. + + + + + + The types of the outputs do not match. One output's type is '{0}' while the other is '{1}'. + + + + + + + The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal column name. It will collide with the sentinel values used in the _TransformView table. + + + + + + + + The transform being built did not contain any differences so it could not be created. + + + + + The code pages of the outputs do not match. One output's code page is '{0}' while the other is '{1}'. + + + + + + + The location of the mismatched code page related to the previous warning. + + + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components using a Directory as a KeyPath or containing ODBCDataSource child elements cannot use an automatically generated guid. Make sure your component doesn't have a Directory as the KeyPath and move any ODBCDataSource child elements to components with explicit component guids. + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with registry keypaths and files cannot use an automatically generated guid. Create multiple components, each with one file and/or one registry value keypath, to use automatically generated guids. + + + + + + The component '{0}' has a key file with path '{1}'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name "Common Files" under ProgramFilesFolder.) + + + + + + + The CustomAction/@TerminalServerAware attribute's value is 'yes' but the Execute attribute is not 'deferred,' 'rollback,' or 'commit.' Terminal-Server-aware custom actions must be deferred, rollback, or commit custom actions. For more information, see http://msdn.microsoft.com/library/aa372071.aspx." + + + + + The CustomAction sets a property but its Execute attribute is not 'immediate' (the default). Property-setting custom actions cannot be deferred." + + + + + Ill-formed preprocessor function '${0}'. Functions must have a prefix (like 'fun.'), a name at least 1 character long, and matching opening and closing parentheses. + + + + + + Undefined preprocessor function '$({0})'. + + + + + + In the preprocessor extension that handles prefix '{0}' while trying to call function '{1}({2})' and exception has occurred : {3} + + + + + + + + + In the preprocessor extension that handles prefix '{0}' while trying to get the value for variable '{1}' and exception has occured : {2} + + + + + + + + The manifest '{0}' does not have the required assembly/assemblyIdentity element. + + + + + + The file '{0}' is not a valid WiX Transform. + + + + + + The file '{0}' has an unexpected extension. Expected one of the following: '{1}'. + + + + + + + An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table. + + + + + + Invalid product version '{0}'. Product version must have a major version less than 256, a minor version less than 256, and a build version less than 65536. + + + + Invalid product version '{0}' in package '{1}'. When included in a bundle, all product version fields in an MSI package must be less than 65536. + + + + + + + Component '{0}' has a changed keypath in the transform '{1}'. Patches cannot change the keypath of a component. + + + + + + + The validator requires at least one extension. Add "ValidatorExtension, Wix" for the default implementation. + + + + + Unknown validation message type '{0}'. + + + + + + No transforms were provided to attach to the patch. + + + + + Multiple extensions were specified on the command line, only a single extension is supported. + + + + + The transform {0} was included twice on the command line. Each transform can be applied to a patch only once. + + + + + + No baseline was specified for one of the transforms specified. A baseline is required for all transforms in a patch. + + + + + {0} + + + + + + {0} is expected to be followed by a value argument. + + + + + + No valid transforms were provided to attach to the patch. Check to make sure the transforms you passed on the command line have a matching baseline authored in the patch. Also, make sure there are differences between your target and upgrade. + + + + + No decompiler was provided. {0} requires a decompiler. + + + + + + The table '{0}' was expected but was missing. + + + + + + The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}'. + + + + + + + The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}' or '{4}'. + + + + + + + + + + The WixMsp is missing the patch ID. + + + + + The WixMsp has no media rows defined. + + + + + The file '{0}' cannot be found. + + + + + + The WixMsp is missing the client patch ID. Recompile the patch source files with the latest WiX toolset. + + + + + Product '{0}': Table '{1}' has a new row '{2}' added. This makes the patch not uninstallable. + + + + + + + + This patch is not uninstallable. The 'Patch' element's attribute 'AllowRemoval' should be set to 'no'. + + + + + '{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. + + + + + + '{0}' is too large, file size must be less than 2147483648. + + + + + + The parameter '{0}' is missing or has an invalid value {1}. Possible values are x86, x64, or ia64. + + + + + + + The Platform attribute has an invalid value {0}. Possible values are x86, x64, or ia64. + + + + + + You may only specify a single default type using -t or specify custom validation using -serr and -val. + + + + + Found orphaned Component '{0}'. If this is a Product, every Component must have at least one parent Feature. To include a Component in a Module, you must include it directly as a Component element of the Module element or indirectly via ComponentRef, ComponentGroup, or ComponentGroupRef elements. + + + + + + '-{0}' cannot be specfied in combination with '-{1}'. + + + + + + + The value '*' is not valid for the ProductCode when used in a transform or in a patch. Copy the ProductCode from your target product MSI into the Product/@Id attribute value for your product authoring. + + + + + Invalid order of actions {1} and {2} in sequence table {0}. Action {3} must occur after {1} and before {2}, but {2} is currently sequenced after {1}. Please fix the ordering or explicitly supply a location for the action {3}. + + + + + + + + + Not enough space exists to sequence action {3} in table {0}. It must be sequenced after {1} and before {2}, but those two actions are currently sequenced next to each other. Please move one of those actions to allow {3} to be inserted between them. + + + + + + + + + File '{0}' is marked as a Win32 assembly but it refers to assembly manifest '{1}' that is not present in this product. + + + + + + + Unable to open merge module '{0}'. Check to make sure the module language is correct. '{1}' + + + + + + + The '{0}/@{1}' attribute was not found; it is required when element '{0}' is not nested under a '{2}' element. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal identifier. The {0}/@{1} attribute does not support formatted string values, such as property names enclosed in brackets ([LIKETHIS]). The value must be the identifier of another element, such as the Directory/@Id attribute value. + + + + + + + + The code page '{0}' is not a valid Windows code page. Please check the {1}/@{2} attribute value in your source file. + + + + + + + + The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'. + + + + + The transform schema does not match the database schema. The transform may have been generated from a different database. + + + + The table definition of '{0}' in the target database does not match the table definition in the updated database. A transform requires that the target database schema match the updated database schema. + + + + + + The {0} option requires a directory, but the provided path is a file: {1} + + + + + + + The {0} option requires a file, but the provided path is a directory: {1} + + + + + + + Assembly {0} in component {1} has no strong name and has been marked to be placed in the GAC. All assemblies installed to the GAC must have a valid strong name. + + + + + + + Error writing to the path: '{0}'. Error message: '{1}' + + + + + + + Invalid file name specified on the command line: '{0}'. Error message: '{1}' + + + + + + + When the {0}/@{1} attribute is specified, the {0} element must be nested under a {2} element. + + + + + + + + Illegal value '{0}' for the -wx<N> command line option. Specify a particular warning number, like '-wx6' to display the warning with ID 6 as an error, or '-wx' alone to suppress all warnings. + + + + + + Element '{0}' missing attribute '{1}' or child element '{2}'. Exactly one of those is required. + + + + + + + + The variable '{0}' with value '{1}' was previously declared with value '{2}'. + + + + + + + + The variable definition '{0}' is not valid. Variable definitions should be in the form -dname=value where the value is optional. + + + + + + Duplicate cabinet name '{0}' found. + + + + + + Duplicate cabinet name '{0}' error related to previous error. + + + + + + A row has been added to the File table with id '{1}' that does not have a sequence number assigned to it. Create your transform from a pair of msi's instead of xml outputs to get sequences assigned to your File table's rows. + + + + + + Multiple files with ID '{0}' exist. Windows Installer does not support file IDs that differ only by case. Change the file IDs to be unique. + + + + + + Unable to create temporary file. A common cause is that too many files that have names beginning with '{0}' are present. Delete any unneeded files in the '{1}' directory and try again. + + + + + + + An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file. + + + + + An error (ERROR_DISK_FULL) was returned while creating a CAB file. This means you have insufficient disk space - please clear more disk space and try this operation again. + + + + + Unresolved bind-time variable {0}. + + + + + + The destination name of file '{0}' does not match its assembly name '{1}' in your authoring. This will cause an installation failure for this assembly, because it will be installed to the Global Assembly Cache. To fix this error, update File/@Name of file '{0}' to be the actual name of the assembly. + + + + + + + Illegal characters in path '{0}'. Ensure you provided a valid path to the file. + + + + + + Failed to open the database. During validation, this most commonly happens when attempting to open a database using an unsupported code page or a file that is not a valid Windows Installer database. Please use a different code page in Module/@Codepage, Package/@SummaryCodepage, Product/@Codepage, or WixLocalization/@Codepage; or make sure you provide the path to a valid Windows Installer database. + + + + + You must specify an output file using the "-o" or "-out" switch when you provide more than one input file. + + + + + When the parent DirectorySearch/@Depth attribute is greater than 1 for the DirectorySearch '{1}', the FileSearch/@Id attribute must be absent for FileSearch '{0}' unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. Remove the FileSearch/@Id attribute for '{0}' to resolve this issue. + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long. {0}/@{1} attribute's must be {3} characters long or less. + + + + + + + + + Removing component '{0}' from feature '{1}' is not supported. Either the component was removed or the guid changed in the transform '{2}'. Add the component back, undo the change to the component guid, or remove the entire feature. + + + + + + + + An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element. + + + + + Either '{1}' was not defined in the assembly or the type defined in extension '{0}' could not be loaded. + + + + + The extension type '{1}' in extension '{0}' does not inherit from the expected class '{2}'. + + + + + + The type '{1}' in extension '{0}' could not be loaded. Exception type '{2}' returned the following message: {3} + + + + + + + + + Failed to open merge module for validation. The most common cause of this error is specifying that the merge module supports multiple languages (using the Package/@Languages attribute) but not including language-specific embedded transforms. To fix this error, make the merge module language-neutral, make it language-specific, embed language transforms as specified in the MSI SDK at http://msdn.microsoft.com/library/aa367799.aspx, or disable validation. + + + + + Failed to open package for validation. The most common cause of this error is validating an x64 package on an x86 system. To fix this error, run validation on an x64 system or disable validation. + + + + + A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. + + + + + + The EmbeddedUI/@Name attribute value, '{0}', does not contain an extension. Windows Installer will not load an embedded UI DLL without an extension. Include an extension or just omit the Name attribute so it defaults to the file name portion of the Source attribute value. + + + + + + The DirectorySearch element '{0}' requires that the child {1} element has a unique Id when the DirectorySearch/@AssignToProperty attribute is set to 'yes'. + + + + + + + The {0}/@{1} attribute value, '{2}', cannot be specified when the {0} element is nested underneath a {3} element. + + + + + + + + + Source information is required for the product '{0}'. If you ran torch.exe with both target and updated .msi files, you must first perform an administrative installation of both .msi files then pass -a when running torch.exe. + + + + + + The PatchBaseline/@Id attribute value '{0}' is a child of multiple Media elements. This prevents transforms from being resolved to distinct media. Change the PatchBaseline/@Id attribute values to be unique. + + + + + + Two different source paths '{1}' and '{2}' were detected for the same file identifier '{0}'. You must either author these under Media elements with different Id attribute values or in different patches. + + + + + + + + A harvest source must be specified after the harvest type and can be followed by harvester arguments. + + + + + The '-out' or '-o' parameter must specify a file path. + + + + + The command line option '{0}' has already been loaded by another Heat extension. + + + + + + The harvest type was not found in the list of loaded Heat extensions. + + + The harvest type '{0}' was specified. Harvest types cannot start with a '-'. Remove the '-' to specify a valid harvest type. + + + + + + Both the target and updated product authoring must define the Product/@UpgradeCode attribute if the transform validates the UpgradeCode (default). Either define the Product/@UpgradeCode attribute in both the target and updated authoring, or set the Validate/@UpgradeCode attribute to 'no' in the patch authoring. + + + + + Illegal binder class name specified for -binder command line option. + + + + + The specified binder class '{0}' was not found in any extensions. + + + + + + Cannot load binder file manager: {0}. Light can only load one binder file manager and has already loaded binder file manager: {1}. + + + + + + + Cannot load linker extension: {0}. Light can only load one link extension and has already loaded link extension: {1}. + + + + + + + Unable to get the authenticode certificate of '{0}'. More information: {1} + + + + + + + Unable to get the authenticode certificate of '{0}'. The cryptography API has limitations on Windows XP and Windows Server 2003. More information: {1} + + + + + + + Unable to output to file '{0}' because it is marked as read-only. + + + + + + The Component/@Id attribute was not found; it is required when there is no valid keypath to use as the default id value. + + + + + The parent {0} element is missing the {1} attribute that is required for the {2} child element. + + + + + + + + Exception thrown while processing pragma '{0}'. The exception's message is: {1} + + + + + + + Malformed preprocessor pragma '{0}'. Pragmas must have a prefix, a name of at least 1 character long, and be followed by optional arguments. + + + + + + Unknown input file format - expected a .msi or .msm file. + + + + + Files with an extension of .msp are not currently supported. + + + + + Path contains one or more invalid characters. + + + + + Stub executable '{0}' is not a valid Win32 executable. + + + + + + Stub executable '{0}' does not contain a .wixburn data section. + + + + + + Stub executable '{0}' .wixburn data section is too small to store the Burn container header. + + + + + + The Bundle is missing '{0}' data, and cannot continue. + + + + + + A group parent ('{0}'/'{1}') had an unexpected child ('{2}'/'{3}'). + + + + + + + + + A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph. + + + + + + An expected identifier ('{1}', of type '{0}') was not found. + + + + + + + '{0}' is a 64-bit merge module but the product consuming it is 32-bit. 32-bit products can consume only 32-bit merge modules. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a valid relative long name because it contains illegal characters. Legal relative long names contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: ? | > < : / * ". + + + + + + + + The {0}/@{1} attribute's value, '{2}', is not one of the legal options: {3}. + + + + + + + + + The {0}/@{1} attribute's value, '{2}', is one of the illegal options: {3}. + + + + + + + + + + The code page '{0}' is invalid for summary information. You must specify an ANSI code page. + + + + + + The package being validated requires a higher version of Windows Installer than is installed on this machine. Validation cannot continue. + + + + + Multiple source files ({0}) have resulted in the same output file '{1}'. This is likely because the source files only differ in extension or path. Rename the source files to avoid this problem. + + + + + + + Unable to read package '{0}'. {1} + + + + + + + A per-source file output specification has been provided ('{0}'), but multiple source files match the source specification ({1}). Specifying a unique output requires that only a single source file match. + + + + + + + Unable to read bundle executable '{0}'. This is not a valid WiX bundle. + + + + + + Unable to read bundle executable '{0}', because this bundle was created with a newer version of WiX (bundle version '{1}'). You must use a newer version of WiX in order to read this bundle. + + + + + + + + The extension '{0}' on the input specified '{1}' does not match the number of inputs required to handle an input with this extension. Check if you are missing an input or have too many. + + + + + + + Only one of Media and MediaTemplate tables should be authored. + + + + + CabinetTemplate attribute's value '{0}' must contain '{{0}}' and should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the follow may be used: \ ? | > < : / * " + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms). + + + + + + '{0}' is too large. Reduce the size of maximum uncompressed media size. + + + + + + File '{0}' could not be verified with a catalog file. + + + + + + Could not get hash of file '{0}'. Error: {2}. + + + + + + + The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix. + + + + + + + + The MSI '{0}' is explicitly marked to not elevate so it must be a per-user package but the ALLUSERS Property is set to '1' creating a per-machine package. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute to be explicit instead. + + + + + + The MSI '{0}' set the ALLUSERS Property to '{0}' which is not supported. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead. + + + + + + + The '{0}' MsiProperty is controlled by the bootstrapper and cannot be authored. (Illegal properties are: {1}.) Remove the MsiProperty element. + + + + + + + The merge module '{0}' from file '{1}' is either missing or has an invalid installer version. The value read from the installer version in module's summary information was '{2}'. This should be a numeric value representing a valid installer version such as 200 or 301. + + + + + + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component's keypath is not versioned. Create multiple components to use automatically generated guids. + + + + + The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component has a non-keypath file that is versioned. Create multiple components to use automatically generated guids. + + + + + Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID. + + + + + + + The provider dependency key '{0}' was already imported from the package with Id '{1}'. Please remove the Provides element with the key '{0}' from the package authoring. + + + + + + + The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package. + + + + + + + The {0} element cannot have a child element '{1}' when attribute '{2}' is set. + + + + + + + + The {0} element must have attribute '{1}' when child element '{2}' is present. + + + + + + + + The localization for control {0} in dialog {1} is duplicated. Only one localization per control is allowed. + + + + + The localization for dialog {0} is duplicated. Only one localization per dialog is allowed. + + + + + + '{0}' is too large. Reduce the size of maximum cabinet size for large file splitting. The maximum permitted value is '{1}' MB. + + + + + + + Failed to register the copy command for cabinet '{0}' formed by splitting cabinet '{1}'. + + + + + + + The cabinet name '{0}' collides with the new cabinet formed by splitting cabinet '{1}', consider renaming cabinet '{0}'. + + + + + + + Could not find the last split cabinet '{2}' in the Media Table. So failed to add new cabinet '{0}' formed by splitting cabinet '{1}' to the installer package. + + + + + + + + Invalid AutoVersion template specified. + + + + + Invalid {0}/@Version '{1}'. {0} version has a max value of "65535.65535.65535.65535" and must be all numeric. + + + + + + + The element {1} does not support platform '{0}'. Consider removing the element or using the preprocessor to conditionally include the element based on the platform. + + + + + + + There is no media defined for disk id '{0}'. You must author either <Media Id='{0}' ...> or <MediaTemplate ...>. + + + + + + The RemotePayload element can only be used for ExePackage and MsuPackage payloads. + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/always value. The only legal values are 'always', 'no' or 'yes'. + + + + + + + + Include files cannot be nested more deeply than {0} times. Make sure included files don't accidentally include themselves. + + + + + + The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns. + + + + + + + + The {0}/@{1} attribute's value '{2}' only specifies a directory reference. The inline directory syntax requires that at least one directory be specified in addition to the value. For example, use '{3}:\foo\' to add a 'foo' directory. + + + + + + + + + The file name '{0}' creates an insecure bundle. Windows will load unnecessary compatibility shims into a bundle with that file name. These compatibility shims can be DLL hijacked allowing attackers to compromise your customers' computer. Choose a different bundle file name. + + + + + + The {0}/@{1} attribute's value, '{2}', is not a legal path name: Payload names must be relative to their cache directory and cannot contain '..'. + + + + + + + + MSI transactions must install all x64 packages before any x86 package. + + + + + + + + The {0}/@{1} attribute's value, '{2}', is {3} characters long. It will be too long if modularized. The identifier shouldn't be longer than {4} characters long to allow for modularization (appending a guid for merge modules). + + + + + + + + + + The {0}/@{1} attribute's value cannot be an empty string. If you want the value to be null or empty, simply remove the entire attribute. + + + + + + + Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break. + + + + + + Since the CopyFile/@FileId attribute was specified but none of the following attributes (DestinationName, DestinationDirectory, DestinationProperty) were specified, this authoring will not do anything. + + + + The {0}.{1} column's value, '{2}', indicates a nested install. Nested installations are not supported by the WiX team. This action will be left out of the decompiled output. + + + + + + + + ProgId '{0}' is orphaned. It has no associated component, so it will never install. Every ProgId should have either a parent Class element or child Extension element (at any distance). + + + + + + Property '{0}' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored. + + + + + The RemoveFile/@Name attribute will soon become required. In order to match the old functionality of not specifying this attribute, please use the new RemoveFolder element instead. + + + + The action '{0}' in the {1} table is being suppressed. + + + + + + + The merged action '{0}' in the {1} table is being suppressed. + + + + + + + The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output. + + + + + Access denied; cannot delete '{0}'. + + + + + + The directory '{0}' is in use and cannot be deleted. + + + + + + Access denied; cannot set attributes on '{0}'. + + + + + + The {0} table contains an action '{1}' which is not a known custom action, dialog, or standard action. This action will be left out of the decompiled output. + + + + + + + The {0}/@{1} attribute's value, '{2}', is too long for an identifier. Standard identifiers are 72 characters long or less. + + + + + + + + The {0} table contains a row with primary key '{1}' which has an unknown permission at bit {2}. + + + + + + + + The {0} element's {1} and {2} values are both '{3}'. This is redundant; the {2} attribute should be removed. + + + + + + + The {0} element's source and destination names are identical. This is redundant; the {1} and {2} attributes should be removed if present. + + + + + + + Unable to reset acls on destination files. + + + + The {0}/@{1} attribute's value, '{2}', is not a valid external cabinet name. Legal cabinet names should follow 8.3 format: they should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the following may be used: \ ? | > < : / * " + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms). + + + + + + + + The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead. + + + + + + + The {0} element's {1} and {2} attributes were found. Due to a bug with the Windows Installer, only the Name or LongName attribute should be used. Use the Name attribute for 8.3 compliant file names and the LongName attribute for longer ones. When using only the LongName attribute, ICE03 should be ignored for the Signature table's FileName column. + + + + + + + + The {0}/@{1} attribute's value '{2}' is an ambiguous short name because it ends with a '~' character followed by a number. Under some circumstances, this name could resolve to more than one file or directory name and lead to unpredictable results (for example 'MICROS~1' may correspond to 'Microsoft Shared' or 'Microsoft Foo' or literally 'Micros~1'). + + + + + + + + The Typelib table entry with Id '{0}' could have an incorrect version of '256.0'. InstallShield has a bug relating to the Typelib Version column: it will incorrectly set the value '65536' in to represent version '1.0'. However, this number actually corresponds to version '256.0'. This bug will not affect the typelib version that is registered during installation, however, it will prevent the Windows Installer from correctly identifying whether a typelib is already installed and lead to unnecessary reinstallations of the typelib. + + + + + + The component '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the ComponentRef/@Primary, ComponentGroupRef/@Primary, or FeatureGroupRef/@Primary locations for this component. + + + + + + The {0} table contains actions '{1}' and '{2}' which both have the same sequence number {3}. Please change the sequence number for one of these actions to avoid an ICE warning. + + + + + + + + The location of the action related to previous warning. + + + The location of the suppressed action related to previous warning. + + + + An unexpected row in the '{0}' table was found in this product. Products should not contain the '{0}' table. + + + + + + The {0}/@{1} attribute has been deprecated. + + + + + The {0}/@{1} attribute has been deprecated. Please use the {2} attribute instead. + + + + + + The {0}/@{1} attribute has been deprecated. Please use the {2} or {3} attribute instead. + + + + + + + + + The {0} table contains an action '{1}' which cannot be merged from the merge module '{2}'. This action is likely colliding with an action in the database that is being created. The colliding action may have been authored in the database or merged in from another merge module. If this is a standard action, it is likely colliding due to a difference in the condition for the action in the database and merge module. If this is a custom action, it should only be declared in the database or one merge module. + + + + + + + + The {0} table contains a row with primary key(s) '{1}' which cannot be merged from the merge module '{2}'. This is likely due to collision of rows with the same primary key(s) (but other different values in other columns) between the database and the merge module. + + + + + + + + The {0} table contains a standard action '{1}' that does not have a sequence number specified. A value in the Sequence column is required for standard actions in a merge module. Remove the action from the decompiled authoring to have WiX automatically sequence it. + + + + + + + The {0} table contains an action '{1}' which is not allowed in this table. If this is a standard action then it is not valid for this table, if it is a custom action or dialog then this table does not accept actions of that type. This action will be left out of the decompiled output. + + + + + + + The {0} table contains a row with primary key(s) '{1}' whose {2} column contains a value, '{3}', which specifies a foreign key relationship with the {4} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output. + + + + + + + + The {0} table contains a row with primary key(s) '{1}' whose {2} and {4} columns contain the values, '{3}' and '{5}', which specify a foreign key relationship with the {6} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output. + + + + + + + + + + + + The {0} table is being decompiled as a custom table. + + + + + + The {0} table is not legal in a patch creation file. The information in this table will be left out of the decompiled output. + + + + + + The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output. + + + + + + The {0} table can only be represented in WiX for patch creation files. The information in this table will be left out of the decompiled output. + + + + + + The {0}.{1} column's value, '{2}', cannot currently be represented in the WiX schema. + + + + + + + + The {0} table is not supported by the WiX toolset because it has been deprecated by the Windows Installer team. Any information in this table will be left out of the decompiled output. + + + + + + The {0} table is added to the install package by a transform from a patch package (.msp) and not authored directly into an install package (.msi). The information in this table will be left out of the decompiled output. + + + + + + The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output. + + + + + + + + The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute. + + + + + + + + + The short file name '{0}' was generated for multiple files that may be installed to the same directory. This could be due to conflicting long file names specified by the File/@Name attribute. If that is the case, please resolve the conflict in those attributes. Otherwise, please manually set the File/@ShortName attribute on the conflicting row to fix the collision. If one of the colliding files was added via a patch, that short file name should be specified manually to avoid disturbing the original short file name. + + + + + + The location of a conflicting generated short file name related to the previous warning. + + + + + Merge modules should not contain the '{0}' table because all merge conflicts cannot avoided. However, this warning can be suppressed if all of the consumers of the Merge Module agree to not duplicate identifiers in the '{0}' table. + + + + + + The localization variable $(loc.{0}) uses a deprecated prefix '$'. Please use the '!' prefix instead. Since the prefix '$' is also used by the preprocessor, it has been deprecated to avoid namespace collisions. + + + + + + The {0}/@{1} attribute's value, '{2}', is a placeholder value used in example files. Please replace this placeholder with the appropriate value. + + + + + + + The Product/@UpgradeCode attribute was not found; it is strongly recommended to ensure that this product can be upgraded. + + + + {0}: {1} + + + + + + + The '{0}' Property contains '[{1}]' in its value which is an illegal reference to another property. If this value is a string literal, not a property reference, please ignore this warning. To set a property with the value of another property, use a CustomAction with Property and Value attributes. + + + + + + Specifying a Property element as a child of an Upgrade element has been deprecated. Please specify this Property element as a child of a different element such as Product or Fragment. + + + + The cabinet '{0}' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it. + + + + The cabinet '{0}' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet. + + + + + + The Registry element has been deprecated. Please use one of the new elements which replaces its functionality: RegistryKey for creating registry keys, RegistryValue for writing registry values, RemoveRegistryKey for removing registry keys, and RemoveRegistryValue for removing registry values. + + + + Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath. + + + + + + + The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family. + + + + + + + The 'ProductID' property should not be directly authored because it will prevent the ValidateProductID standard action from performing any validation during the installation. This property will be set by the ValidateProductID standard action or control event. + + + + + The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component. + + + + + + The IgnoreModularization element has been deprecated. Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attribute instead. + + + + + The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. + + + + + The Package/@Compressed attribute is deprecated under the Module element because merge modules must always be compressed. + + + + + The Module/@Guid attribute is deprecated merge modules use their package code as the modularization guid. Use the Package/@Id attribute instead. + + + + + The {0}/@{1} attribute's value '????????-????-????-????-????????????' has been deprecated. Use '*' instead. + + + + + + + The Package/@Id attribute has been set. Setting this attribute will allow nonidentical .msi files to have the same package code. This may be a problem because the package code is the primary identifier used by the installer to search for and validate the correct package for a given installation. If a package is changed without changing the package code, the installer may not use the newer package if both are still accessible to the installer. Please remove the Id attribute in order to automatically generate a new package code for each new .msi file. + + + + + Invalid {0}/@Version '{1}'. {0} version has a max value of "65535.65535.65535.65535" and must be all numeric. + + + + + + + File '{0}' was removed from component '{1}'. Removing a file from a component will not result in the file being removed by a patch. You should author a RemoveFile element in your component to remove the file from the installation if you want the file to be removed. + + + + + + + {0} + + + + + + File '{0}' in Component '{1}' was changed, but the KeyPath file '{2}' was not. This file will not be patched on the target system if the REINSTALLMODE does not contain 'A'. The KeyPath file should also be changed and included in your patch. + + + + + + + + '{0}' is not a valid command line argument. + + + + + + Changing the ProductCode in a patch is not recommended because the patch cannot be uninstalled nor can it be sequenced along with other patches for the target product. See http://msdn2.microsoft.com/library/aa367571.aspx for more information. + + + + + Mismatch in RetainRangeCounts for the file '{0}' - ignoring the retain ranges. + + + + + + The DefaultLanguage '{0}' was used for file '{1}' which has no language. Specifying a language that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Either specify a value for DefaultLanguage or put the language in the version information resource to eliminate this warning. + + + + + + + The DefaultLanguage '{0}' was used for file '{1}' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning. + + + + + + + The DefaultVersion '{0}' was used for file '{1}' which has no version. No entry for this file will be placed in the MsiFileHash table. For unversioned files, specifying a version that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Version the resource to eliminate this warning. + + + + + + + Merge module '{0}' has an installer version of {1} which is greater than the product's installer version of {2}. Merging a module with a higher installer version than the product it is being merged into can result in invalid values in the resulting msi. You must set the Package/@InstallerVersion attribute to {1} or greater to merge this merge module into your product. + + + + + + + + Validation could not run due to system policy. To eliminate this warning, run the process as admin or suppress ICE validation. + + + + + Table '{0}' uses columns that require a version of Windows Installer greater than specified in your package ('{1}'). + + + + + + + Using table '{0}' requires a version of Windows Installer greater than specified in your package ('{1}'). + + + + + + + The command line switch '{0}' is deprecated. + + + + The command line switch '{0}' is deprecated. Please use '{1}' instead. + + + + + + + Found mismatched entry point <{0}>. Expected <{1}> for specified output package type {2}. + + + + + + + + Component '{0}' was added to feature '{1}' in the transform '{2}'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch. + + + + + + + + The value "{0}" for the {1}/@{2} attribute has been deprecated. Please use "{3}" instead. + + + + + + + + + Not enough permissions to harvest type library. On Windows Vista, you must either run Heat elevated, or install Windows Vista SP1 (or higher). + + + + + Because it is an advertised shortcut, the target of shortcut '{0}' will be the keypath of component '{2}' rather than parent file '{1}'. To eliminate this warning, you can (1) make the Shortcut element a child of the File element that is the keypath of component '{2}', (2) make file '{1}' the keypath of component '{2}', or (3) remove the @Advertise attribute so the shortcut is a non-advertised shortcut. + + + + + + + + Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output. + + + + + + + + The value '{0}' in table '{1}', column '{2}' is invalid according to the column's validation information. The decompiled output includes a best-effort representation of this value. + + + + + + + + The assembly in component '{0}' has a null or empty {1} assembly name value. + + + + + + + It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}. + + + + + + + + + The variable '{0}' with value '{1}' was previously declared with value '{2}'. + + + + + + + + The primary key '{0}' is duplicated in table '{1}' and will be ignored. Please remove one of the entries or rename a part of the primary key to avoid the collision. + + + + + + + Package/@InstallerVersion must be 200 or greater for a 64-bit package. The value will be changed to 200. Please specify a value of 200 or greater in order to eliminate this warning. + + + + + The installer database '{0}' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to run the insignia tool as part of your build. + + + + + + Failed to delete temporary directory: {0} + + + + + + The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders. + + + + + + + The pragma '{0}' is unknown. Please ensure you have referenced the extension that defines this pragma. + + + + + + The {0}/@Id attribute contains invalid characters for an identifier. Being able to use invalid identifier characters for a {0} identifier has been deprecated. + + + + + + A UX Payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, UX Payloads must be embedded in the Bundle, so the requested packaging is being ignored. + + + + + + The RollbackBoundary '{0}' was discarded because it was not followed by a package. Without a package the rollback boundary doesn't do anything. Verify that the RollbackBoundary element is not followed by another RollbackBoundary and that the element is not at the end of the chain. + + + + + + The {0} element has been deprecated. + + + + The {0} element has been deprecated. Please use the {1} element instead. + + + + + The {0} element has been deprecated. Please use the {1} or {2} element instead. + + + + + + + + Cannot update the timestamp of cached cabinet: '{0}'. If the timestamp is not updated, the build may rebuild more than is necessary. To fix the issue, ensure that the cabinet file is writable, error: {1} + + + + + + + The Payload '{0}' is embedded but included a @DownloadUrl attribute. Embedded Payloads cannot be downloaded so the download URL is being ignored. + + + + + + Bundles require a package to be either per-machine or per-user. The MSI '{0}' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-{1} and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead. + + + + + + + The MSI '{0}' does not explicitly indicate that it is a per-user package even though the ALLUSERS Property is blank. This suggests a per-user package so the Bundle will assume the package is per-user. If possible, use the Package/@InstallScope attribute to be explicit instead. + + + + + + The MSI '{0}' is a per-user package being forced to per-machine. Verify that the MsiPackage/@ForcePerMachine attribute is expected and that the per-user package works correctly when forced to install per-machine. + + + + + + The {0}/@{1} attribute value '{2}' should contain '{3}' when the {0}/@{4} attribute is set to '{5}'. + + + + + + + + + + + Component/@Id='{0}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer but works as long as all components have mutually-exclusive conditions. It is recommended to give each component its own unique GUID. + + + + + + + The RegistryKey/@Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. + + + + + '{0}' is not a binary Wixlib and has no embedded files. + + + + + + Bundle dependencies will not be registered on per-machine package '{0}' for a per-user bundle. Either make sure that all packages are installed per-machine, or author any per-machine dependencies as permanent packages. + + + + + + The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored. + + + + + + The {0}/@{1} attribute is reserved for future use and has no effect in this version of the WiX toolset. + + + + + + + Package/@InstallerVersion must be 500 or greater for an Arm package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning. + + + + + The {0}/@Compressed attribute must have value 'no' when a RemotePayload child element is present. RemotePayload indicates that a package will always be downloaded and cannot be compressed into a bundle. To eliminate this warning, explicitly set the {0}/@Compressed attribute to 'no'. + + + + + + All changes between the baseline and upgraded packages will be included in the patch except for any change to the ProductCode. The 'All' element is supported primarily for testing purposes and negates the benefits of patch families. + + + + + Ignoring attribute {0} because attribute {1} is set to {2}. + + + + + + + + Backslash terminate the {0}/@{1} attribute's inline directory value '{2}'. A backslash ensures a directory name will not be mistaken for a directory reference. + + + + + + + + Product version {0} in package '{1}' is not valid per the MSI SDK and cannot be represented in a bundle. It has been truncated to {2}. + + + + + + + + {0} functionality is documented in the Windows Installer SDK to "not [work] as expected." Consider replacing {0} with the WixUtilExtension ServiceConfig element. + + + + + + + + + Importing binary stream from '{0}'. + + + + + + Importing icon stream from '{0}'. + + + + + + Copying file '{0}' to '{1}'. + + + + + + + Moving file '{0}' to '{1}'. + + + + + + + The directory '{0}' does not exist, creating it now. + + + + + + The destination file '{0}' already exists, attempting to remove it. + + + + + + Cabbing file {0} from '{1}'. + + + + + + Updating file information. + + + Generating database. + + + Merging modules. + + + Creating cabinet files. + + + Importing streams. + + + Laying out media. + + + + Decompiling the {0} table. + + + + + + {0}: {1} + + + + + + + Creating cabinet '{0}'. + + + + + Validating database. + + + + Opening merge module '{0}' with language '{1}'. + + + + + + + Merging merge module '{0}'. + + + + + + Connecting merge module '{0}' to feature '{1}'. + + + + + + Resequencing files from all merge modules. + + + + Binder temporary directory located at '{0}'. + + + + + + Validator temporary directory located at '{0}'. + + + + + + Generating Burn bundle '{0}' from stub '{1}'. + + + + + + + Generating resolved manifest '{0}'. + + + + + + Loading payload '{0}' into container. + + + + + + Assigning bundle GUID '{0}'. + + + + + + Copying external payload from '{0}' to '{1}'. + + + + + + + Embedding container '{0}' ({1} bytes) with '{2}' compression. + + + + + + + + Bundle switching from per-machine to per-user due to addition of per-user package '{0}'. + + + + + + There will be '{0}' threads used to produce CAB files. + + + + + + Multiple packages cannot reliably be validated simultaneously. This validation will resume when the other package being validated has completed. + + + + + Reusing cabinet '{0}' from cabinet cache path: '{1}'. + + + + + + + Multiple Cabinets with Large Files are splitting simultaneously. This current cabinet is waiting on a shared resource and splitting will resume when the other splitting has completed. + + + + + Validation complete: {0:N0}ms elapsed. + + + + + diff --git a/src/api/wix/WixToolset.Data/DictionaryExtensions.cs b/src/api/wix/WixToolset.Data/DictionaryExtensions.cs new file mode 100644 index 00000000..cb6647ff --- /dev/null +++ b/src/api/wix/WixToolset.Data/DictionaryExtensions.cs @@ -0,0 +1,14 @@ +// 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. + +namespace WixToolset.Data +{ + using System.Collections.Generic; + + internal static class DictionaryExtensions + { + public static V GetValueOrDefault(this IDictionary dictionary, K key, V defaultValue = default(V)) + { + return dictionary.TryGetValue(key, out var value) ? value : defaultValue; + } + } +} diff --git a/src/api/wix/WixToolset.Data/DisplayEventArgs.cs b/src/api/wix/WixToolset.Data/DisplayEventArgs.cs new file mode 100644 index 00000000..baa9b0e2 --- /dev/null +++ b/src/api/wix/WixToolset.Data/DisplayEventArgs.cs @@ -0,0 +1,15 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public delegate void DisplayEventHandler(object sender, DisplayEventArgs e); + + public class DisplayEventArgs : EventArgs + { + public MessageLevel Level { get; set; } + + public string Message { get; set; } + } +} diff --git a/src/api/wix/WixToolset.Data/EmptyRule.cs b/src/api/wix/WixToolset.Data/EmptyRule.cs new file mode 100644 index 00000000..0170e457 --- /dev/null +++ b/src/api/wix/WixToolset.Data/EmptyRule.cs @@ -0,0 +1,22 @@ +// 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. + +namespace WixToolset.Data +{ + public enum EmptyRule + { + /// + /// The trimmed value cannot be empty. + /// + MustHaveNonWhitespaceCharacters, + + /// + /// The trimmed value can be empty, but the value itself cannot be empty. + /// + CanBeWhitespaceOnly, + + /// + /// The value can be empty. + /// + CanBeEmpty + } +} diff --git a/src/api/wix/WixToolset.Data/ErrorMessages.cs b/src/api/wix/WixToolset.Data/ErrorMessages.cs new file mode 100644 index 00000000..86504f60 --- /dev/null +++ b/src/api/wix/WixToolset.Data/ErrorMessages.cs @@ -0,0 +1,2731 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.Resources; + + public static class ErrorMessages + { + public static Message ActionCircularDependency(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) + { + return Message(sourceLineNumbers, Ids.ActionCircularDependency, "The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is also scheduled to come before or after action '{1}'. Please remove this circular dependency by changing the Before or After attribute for one of the actions.", sequenceTableName, actionName1, actionName2); + } + + public static Message ActionCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.ActionCollision, "The {0} table contains an action '{1}' that is declared in two different locations. Please remove one of the actions or set the Overridable='yes' attribute on one of their elements.", sequenceTableName, actionName); + } + + public static Message ActionCollision2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ActionCollision2, "The location of the action related to previous error."); + } + + public static Message ActionScheduledRelativeToItself(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToItself, "The {0}/@{1} attribute's value '{2}' is invalid because it would make this action dependent upon itself. Please change the value to the name of a different action.", elementName, attributeName, attributeValue); + } + + public static Message ActionScheduledRelativeToTerminationAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) + { + return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToTerminationAction, "The {0} table contains an action '{1}' that is scheduled to come before or after action '{2}', which is a special action which only occurs when the installer terminates. These special actions can be identified by their negative sequence numbers. Please schedule the action '{1}' to come before or after a different action.", sequenceTableName, actionName1, actionName2); + } + + public static Message ActionScheduledRelativeToTerminationAction2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ActionScheduledRelativeToTerminationAction2, "The location of the special termination action related to previous error(s)."); + } + + public static Message AdditionalArgumentUnexpected(string argument) + { + return Message(null, Ids.AdditionalArgumentUnexpected, "Additional argument '{0}' was unexpected. Remove the argument and add the '-?' switch for more information.", argument); + } + + public static Message AdminImageRequired(string productCode) + { + return Message(null, Ids.AdminImageRequired, "Source information is required for the product '{0}'. If you ran torch.exe with both target and updated .msi files, you must first perform an administrative installation of both .msi files then pass -a when running torch.exe.", productCode); + } + + public static Message AdvertiseStateMustMatch(SourceLineNumber sourceLineNumbers, string advertiseState, string parentAdvertiseState) + { + return Message(sourceLineNumbers, Ids.AdvertiseStateMustMatch, "The advertise state of this element: '{0}', does not match the advertise state set on the parent element: '{1}'.", advertiseState, parentAdvertiseState); + } + + public static Message AppIdIncompatibleAdvertiseState(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string parentValue) + { + return Message(sourceLineNumbers, Ids.AppIdIncompatibleAdvertiseState, "The {0}/@(1) attribute's value, '{2}' does not match the advertise state on its parent element: '{3}'. (Note: AppIds nested under Fragment, Module, or Product elements must be advertised.)", elementName, attributeName, value, parentValue); + } + + public static Message BaselineRequired() + { + return Message(null, Ids.BaselineRequired, "No baseline was specified for one of the transforms specified. A baseline is required for all transforms in a patch."); + } + + public static Message BinderFileManagerMissingFile(SourceLineNumber sourceLineNumbers, string exceptionMessage) + { + return Message(sourceLineNumbers, Ids.BinderFileManagerMissingFile, "{0}", exceptionMessage); + } + + public static Message BothUpgradeCodesRequired() + { + return Message(null, Ids.BothUpgradeCodesRequired, "Both the target and updated product authoring must define the Product/@UpgradeCode attribute if the transform validates the UpgradeCode (default). Either define the Product/@UpgradeCode attribute in both the target and updated authoring, or set the Validate/@UpgradeCode attribute to 'no' in the patch authoring."); + } + + public static Message BundleTooNew(string bundleExecutable, long bundleVersion) + { + return Message(null, Ids.BundleTooNew, "Unable to read bundle executable '{0}', because this bundle was created with a newer version of WiX (bundle version '{1}'). You must use a newer version of WiX in order to read this bundle.", bundleExecutable, bundleVersion); + } + + public static Message CabClosureFailed(string cabinet) + { + return Message(null, Ids.CabClosureFailed, "Failed to close cab '{0}'.", cabinet); + } + + public static Message CabClosureFailed(string cabinet, int error) + { + return Message(null, Ids.CabClosureFailed, "Failed to close cab '{0}', error: {1}.", cabinet, error); + } + + public static Message CabCreationFailed(string cabName, string fileName, int error) + { + return Message(null, Ids.CabCreationFailed, "Failed to create cab '{0}' while compressing file '{1}' with error 0x{2:X8}.", cabName, fileName, error); + } + + public static Message CabCreationFailed(string cabName, int error) + { + return Message(null, Ids.CabCreationFailed, "Failed to create cab '{0}' with error 0x{1:X8}.", cabName, error); + } + + public static Message CabExtractionFailed(string cabName, string directoryName) + { + return Message(null, Ids.CabExtractionFailed, "Failed to extract cab '{0}' to directory '{1}'. This is most likely due to a lack of available disk space on the destination drive.", cabName, directoryName); + } + + public static Message CabExtractionFailed(string cabName, string mergeModulePath, string directoryName) + { + return Message(null, Ids.CabExtractionFailed, "Failed to extract cab '{0}' from merge module '{1}' to directory '{2}'. This is most likely due to a lack of available disk space on the destination drive.", cabName, mergeModulePath, directoryName); + } + + public static Message CabFileDoesNotExist(string cabName, string mergeModulePath, string directoryName) + { + return Message(null, Ids.CabFileDoesNotExist, "Attempted to extract cab '{0}' from merge module '{1}' to directory '{2}'. The cab file was not found. This usually means that you have a merge module without a cabinet inside it.", cabName, mergeModulePath, directoryName); + } + + public static Message CannotAuthorSpecialProperties(SourceLineNumber sourceLineNumbers, string propertyName) + { + return Message(sourceLineNumbers, Ids.CannotAuthorSpecialProperties, "The {0} property was specified. Special MSI properties cannot be authored. Use the attributes on the Property element instead.", propertyName); + } + + public static Message CannotDefaultComponentId(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CannotDefaultComponentId, "The Component/@Id attribute was not found; it is required when there is no valid keypath to use as the default id value."); + } + + public static Message CannotDefaultMismatchedAdvertiseStates(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CannotDefaultMismatchedAdvertiseStates, "MIME element cannot be marked as the default when its advertise state differs from its parent element. Ensure that the advertise state of the MIME element matches its parents element or remove the Mime/@Advertise attribute completely."); + } + + public static Message CannotFindFile(SourceLineNumber sourceLineNumbers, string fileId, string fileName, string filePath) + { + return Message(sourceLineNumbers, Ids.CannotFindFile, "The file with id '{0}' and name '{1}' could not be found with source path: '{2}'.", fileId, fileName, filePath); + } + + public static Message CanNotHaveTwoParents(SourceLineNumber sourceLineNumbers, string directorySearch, string parentAttribute, string parentElement) + { + return Message(sourceLineNumbers, Ids.CanNotHaveTwoParents, "The DirectorySearchRef {0} can not have a Parent attribute {1} and also be nested under parent element {2}", directorySearch, parentAttribute, parentElement); + } + + public static Message CannotLoadBinderFileManager(string binderFileManager, string currentBinderFileManager) + { + return Message(null, Ids.CannotLoadBinderFileManager, "Cannot load binder file manager: {0}. Light can only load one binder file manager and has already loaded binder file manager: {1}.", binderFileManager, currentBinderFileManager); + } + + public static Message CannotLoadLinkerExtension(string linkerExtension, string currentLinkerExtension) + { + return Message(null, Ids.CannotLoadLinkerExtension, "Cannot load linker extension: {0}. Light can only load one link extension and has already loaded link extension: {1}.", linkerExtension, currentLinkerExtension); + } + + public static Message CannotOpenMergeModule(SourceLineNumber sourceLineNumbers, string mergeModuleIdentifier, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.CannotOpenMergeModule, "Cannot open the merge module '{0}' from file '{1}'.", mergeModuleIdentifier, mergeModuleFile); + } + + public static Message CannotReundefineVariable(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.CannotReundefineVariable, "The variable '{0}' cannot be undefined because its already undefined.", variableName); + } + + public static Message CheckBoxValueOnlyValidWithCheckBox(SourceLineNumber sourceLineNumbers, string elementName, string controlType) + { + return Message(sourceLineNumbers, Ids.CheckBoxValueOnlyValidWithCheckBox, "A {0} element was specified with Type='{1}' and a CheckBoxValue. Check box values can only be specified with Type='CheckBox'.", elementName, controlType); + } + + public static Message CircularSearchReference(string chain) + { + return Message(null, Ids.CircularSearchReference, "A circular reference of search ordering constraints was detected: {0}. Search ordering references must form a directed acyclic graph.", chain); + } + + public static Message ComponentExpectedFeature(SourceLineNumber sourceLineNumbers, string component, string type, string target) + { + return Message(sourceLineNumbers, Ids.ComponentExpectedFeature, "The component '{0}' is not assigned to a feature. The component's {1} '{2}' requires it to be assigned to at least one feature.", component, type, target); + } + + public static Message ComponentMultipleKeyPaths(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string fileElementName, string registryElementName, string odbcDataSourceElementName) + { + return Message(sourceLineNumbers, Ids.ComponentMultipleKeyPaths, "The {0} element has multiple key paths set. The key path may only be set to '{2}' in extension elements that support it or one of the following locations: {0}/@{1}, {3}/@{1}, {4}/@{1}, or {5}/@{1}.", elementName, attributeName, value, fileElementName, registryElementName, odbcDataSourceElementName); + } + + public static Message ComponentReferencedTwice(SourceLineNumber sourceLineNumbers, string crefChildId) + { + return Message(sourceLineNumbers, Ids.ComponentReferencedTwice, "Component {0} cannot be contained in a Module twice.", crefChildId); + } + + public static Message ConditionExpected(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ConditionExpected, "The {0} element's inner text cannot be an empty string or completely whitespace. If you don't want a condition, then simply remove the entire {0} element.", elementName); + } + + public static Message CorruptFileFormat(string path, string format) + { + return Message(null, Ids.CorruptFileFormat, "Attempted to load corrupt file from path: {0}. The file with format {1} contained unexpected content. Ensure the correct path was provided and that the file has not been incorrectly modified.", path, format.ToLowerInvariant()); + } + + public static Message CouldNotDetermineProductCodeFromTransformSummaryInfo() + { + return Message(null, Ids.CouldNotDetermineProductCodeFromTransformSummaryInfo, "Could not determine ProductCode from transform summary information."); + } + + public static Message CreateCabAddFileFailed() + { + return Message(null, Ids.CreateCabAddFileFailed, "An error (E_FAIL) was returned while adding files to a CAB file. This most commonly happens when creating a CAB file 2 GB or larger. Either reduce the size of your installation package, raise Media/@CompressionLevel to a higher compression level, or split your installation package's files into more than one CAB file."); + } + + public static Message CreateCabInsufficientDiskSpace() + { + return Message(null, Ids.CreateCabInsufficientDiskSpace, "An error (ERROR_DISK_FULL) was returned while creating a CAB file. This means you have insufficient disk space - please clear more disk space and try this operation again."); + } + + public static Message CubeFileNotFound(string cubeFile) + { + return Message(null, Ids.CubeFileNotFound, "The cube file '{0}' cannot be found. This file is required for MSI validation.", cubeFile); + } + + public static Message CustomActionIllegalInnerText(SourceLineNumber sourceLineNumbers, string elementName, string innerText, string attributeName) + { + return Message(sourceLineNumbers, Ids.CustomActionIllegalInnerText, "The {0} element contains illegal inner text: '{1}'. It may not contain inner text unless the {2} attribute is specified.", elementName, innerText, attributeName); + } + + public static Message CustomActionMultipleSources(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5) + { + return Message(sourceLineNumbers, Ids.CustomActionMultipleSources, "The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following source attributes specified at a time: {2}, {3}, {4}, {5}, or {6}.", elementName, attributeName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5); + } + + public static Message CustomActionMultipleTargets(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6, string attributeName7) + { + return Message(sourceLineNumbers, Ids.CustomActionMultipleTargets, "The {0}/@{1} attribute cannot coexist with a previously specified attribute on this element. The {0} element may only have one of the following target attributes specified at a time: {2}, {3}, {4}, {5}, {6}, {7}, or {8}.", elementName, attributeName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6, attributeName7); + } + + public static Message CustomActionSequencedInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.CustomActionSequencedInModule, "The {0} table contains a custom action '{1}' that has a sequence number specified. The Sequence attribute is not allowed for custom actions in a merge module. Please remove the action or use the Before or After attributes to specify where this action should be sequenced relative to another action.", sequenceTableName, actionName); + } + + public static Message CustomTableIllegalColumnWidth(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int value) + { + return Message(sourceLineNumbers, Ids.CustomTableIllegalColumnWidth, "The {0}/@{1} attribute's value, '{2}', is not a valid column width. Valid column widths are 2 or 4.", elementName, attributeName, value); + } + + public static Message CustomTableMissingPrimaryKey(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CustomTableMissingPrimaryKey, "The CustomTable is missing a Column element with the PrimaryKey attribute set to 'yes'. At least one column must be marked as the primary key."); + } + + public static Message CustomTableNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.CustomTableNameTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long.", elementName, attributeName, value); + } + + public static Message DatabaseSchemaMismatch(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.DatabaseSchemaMismatch, "The table definition of '{0}' in the target database does not match the table definition in the updated database. A transform requires that the target database schema match the updated database schema.", tableName); + } + + public static Message DirectoryPathRequired(string parameter) + { + return Message(null, Ids.DirectoryPathRequired, "The parameter '{0}' must be followed by a directory path.", parameter); + } + + public static Message DisallowedMsiProperty(SourceLineNumber sourceLineNumbers, string property, string illegalValueList) + { + return Message(sourceLineNumbers, Ids.DisallowedMsiProperty, "The '{0}' MsiProperty is controlled by the bootstrapper and cannot be authored. (Illegal properties are: {1}.) Remove the MsiProperty element.", property, illegalValueList); + } + + public static Message DuplicateCabinetName(SourceLineNumber sourceLineNumbers, string cabinetName) + { + return Message(sourceLineNumbers, Ids.DuplicateCabinetName, "Duplicate cabinet name '{0}' found.", cabinetName); + } + + public static Message DuplicateCabinetName2(SourceLineNumber sourceLineNumbers, string cabinetName) + { + return Message(sourceLineNumbers, Ids.DuplicateCabinetName2, "Duplicate cabinet name '{0}' error related to previous error.", cabinetName); + } + + public static Message DuplicateCommandLineOptionInExtension(string arg) + { + return Message(null, Ids.DuplicateCommandLineOptionInExtension, "The command line option '{0}' has already been loaded by another Heat extension.", arg); + } + + public static Message DuplicateComponentGuids(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) + { + return Message(sourceLineNumbers, Ids.DuplicateComponentGuids, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath); + } + + public static Message DuplicateContextValue(SourceLineNumber sourceLineNumbers, string contextValue) + { + return Message(sourceLineNumbers, Ids.DuplicateContextValue, "The context value '{0}' was duplicated. Context values must be distinct.", contextValue); + } + + public static Message DuplicatedUiLocalization(SourceLineNumber sourceLineNumbers, string controlName, string dialogName) + { + return Message(sourceLineNumbers, Ids.DuplicatedUiLocalization, "The localization for control {0} in dialog {1} is duplicated. Only one localization per control is allowed.", controlName, dialogName); + } + + public static Message DuplicatedUiLocalization(SourceLineNumber sourceLineNumbers, string dialogName) + { + return Message(sourceLineNumbers, Ids.DuplicatedUiLocalization, "The localization for dialog {0} is duplicated. Only one localization per dialog is allowed.", dialogName); + } + + public static Message DuplicateExtensionPreprocessorType(string extension, string variablePrefix, string collidingExtension) + { + return Message(null, Ids.DuplicateExtensionPreprocessorType, "The extension '{0}' uses the same preprocessor variable prefix, '{1}', as previously loaded extension '{2}'. Please remove one of the extensions or rename the prefix to avoid the collision.", extension, variablePrefix, collidingExtension); + } + + public static Message DuplicateExtensionTable(string extension, string tableName) + { + return Message(null, Ids.DuplicateExtensionTable, "The extension '{0}' contains a definition for table '{1}' that collides with a previously loaded table definition. Please remove one of the conflicting extensions or rename one of the tables to avoid the collision.", extension, tableName); + } + + public static Message DuplicateExtensionXmlSchemaNamespace(string extension, string extensionXmlSchemaNamespace, string collidingExtension) + { + return Message(null, Ids.DuplicateExtensionXmlSchemaNamespace, "The extension '{0}' uses the same xml schema namespace, '{1}', as previously loaded extension '{2}'. Please either remove one of the extensions or rename the xml schema namespace to avoid the collision.", extension, extensionXmlSchemaNamespace, collidingExtension); + } + + public static Message DuplicateFileId(string fileId) + { + return Message(null, Ids.DuplicateFileId, "Multiple files with ID '{0}' exist. Windows Installer does not support file IDs that differ only by case. Change the file IDs to be unique.", fileId); + } + + public static Message DuplicateLocalizationIdentifier(SourceLineNumber sourceLineNumbers, string localizationId) + { + return Message(sourceLineNumbers, Ids.DuplicateLocalizationIdentifier, "The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict.", localizationId); + } + + public static Message DuplicateModuleCaseInsensitiveFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId1, string fileId2) + { + return Message(sourceLineNumbers, Ids.DuplicateModuleCaseInsensitiveFileIdentifier, "The merge module '{0}' contains 2 or more file identifiers that only differ by case: '{1}' and '{2}'. The WiX toolset extracts merge module files to the file system using these identifiers. Since most file systems are not case-sensitive a collision is likely. Please contact the owner of the merge module for a fix.", moduleId, fileId1, fileId2); + } + + public static Message DuplicateModuleFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId) + { + return Message(sourceLineNumbers, Ids.DuplicateModuleFileIdentifier, "The merge module '{0}' contains a file identifier, '{1}', that is duplicated either in another merge module or in a File/@Id attribute. File identifiers must be unique. Please change one of the file identifiers to a different value.", moduleId, fileId); + } + + public static Message DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) + { + return Message(sourceLineNumbers, Ids.DuplicatePrimaryKey, "The primary key '{0}' is duplicated in table '{1}'. Please remove one of the entries or rename a part of the primary key to avoid the collision.", primaryKey, tableName); + } + + public static Message DuplicateProviderDependencyKey(string providerKey, string packageId) + { + return Message(null, Ids.DuplicateProviderDependencyKey, "The provider dependency key '{0}' was already imported from the package with Id '{1}'. Please remove the Provides element with the key '{0}' from the package authoring.", providerKey, packageId); + } + + public static Message DuplicateSourcesForOutput(string sourceList, string outputFile) + { + return Message(null, Ids.DuplicateSourcesForOutput, "Multiple source files ({0}) have resulted in the same output file '{1}'. This is likely because the source files only differ in extension or path. Rename the source files to avoid this problem.", sourceList, outputFile); + } + + public static Message DuplicateSymbol(SourceLineNumber sourceLineNumbers, string symbolName) + { + return Message(sourceLineNumbers, Ids.DuplicateSymbol, "Duplicate symbol '{0}' found. This typically means that an Id is duplicated. Access modifiers (internal, protected, private) cannot prevent these conflicts. Ensure all your identifiers of a given type (File, Component, Feature) are unique.", symbolName); + } + + public static Message DuplicateSymbol(SourceLineNumber sourceLineNumbers, string symbolName, string referencingSourceLineNumber) + { + return Message(sourceLineNumbers, Ids.DuplicateSymbol, "Duplicate symbol '{0}' referenced by {1}. This typically means that an Id is duplicated. Ensure all your identifiers of a given type (File, Component, Feature) are unique or use an access modifier to scope the identfier.", symbolName, referencingSourceLineNumber); + } + + public static Message DuplicateSymbol2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DuplicateSymbol2, "Location of symbol related to previous error."); + } + + public static Message DuplicateTransform(string transform) + { + return Message(null, Ids.DuplicateTransform, "The transform {0} was included twice on the command line. Each transform can be applied to a patch only once.", transform); + } + + public static Message DuplicateVariableDefinition(string variableName, string variableValue, string variableCollidingValue) + { + return Message(null, Ids.DuplicateVariableDefinition, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); + } + + public static Message ExampleGuid(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.ExampleGuid, "The {0}/@{1} attribute's value, '{2}', is not a legal Guid value. A Guid needs to be generated and put in place of '{2}' in the source file.", elementName, attributeName, value); + } + + public static Message ExpectedArgument(string argument) + { + return Message(null, Ids.ExpectedArgument, "{0} is expected to be followed by a value. See -? for additional detail.", argument); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required.", elementName, attributeName); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attribute1Name, string attribute2Name, Boolean eitherOr) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0} element must have a value for exactly one of the {1} or {2} attributes.", elementName, attribute1Name, attribute2Name, eitherOr); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required when attribute {2} is specified.", elementName, attributeName, otherAttributeName); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required when attribute {2} has a value of '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue); + } + + public static Message ExpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue, Boolean otherAttributeValueUnless) + { + return Message(sourceLineNumbers, Ids.ExpectedAttribute, "The {0}/@{1} attribute was not found; it is required unless the attribute {2} has a value of '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue, otherAttributeValueUnless); + } + + public static Message ExpectedAttributeInElementOrParent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeInElementOrParent, "The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2} element.", elementName, attributeName, parentElementName); + } + + public static Message ExpectedAttributeInElementOrParent(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName, string parentAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeInElementOrParent, "The {0}/@{1} attribute was not found or empty; it is required, or it can be specified in the parent {2}/@{3} attribute.", elementName, attributeName, parentElementName, parentAttributeName); + } + + public static Message ExpectedAttributeWithValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithValueWithOtherAttribute, "The {0}/@{1} attribute is required to have a value when attribute {2} is present.", elementName, attributeName, attributeName2); + } + + public static Message ExpectedAttributeOrElement(SourceLineNumber sourceLineNumbers, string parentElement, string attribute, string childElement) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeOrElement, "Element '{0}' missing attribute '{1}' or child element '{2}'. Exactly one of those is required.", parentElement, attribute, childElement); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1} or {2} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, or {3} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, or {4} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, or {5} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, {5}, or {6} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6); + } + + public static Message ExpectedAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string attributeName3, string attributeName4, string attributeName5, string attributeName6, string attributeName7) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributes, "The {0} element's {1}, {2}, {3}, {4}, {5}, {6}, or {7} attribute was not found; one of these is required.", elementName, attributeName1, attributeName2, attributeName3, attributeName4, attributeName5, attributeName6, attributeName7); + } + + public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; at least one of these attributes must be specified.", elementName, attributeName1, attributeName2); + } + + public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} is present.", elementName, attributeName1, attributeName2, otherAttributeName); + } + + public static Message ExpectedAttributesWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required when attribute {3} has a value of '{4}'.", elementName, attributeName1, attributeName2, otherAttributeName, otherAttributeValue); + } + + public static Message ExpectedAttributesWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributesWithoutOtherAttribute, "The {0} element's {1} or {2} attribute was not found; one of these is required without attribute {3} present.", elementName, attributeName1, attributeName2, otherAttributeName); + } + + public static Message ExpectedAttributeWhenElementNotUnderElement(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElementName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWhenElementNotUnderElement, "The '{0}/@{1}' attribute was not found; it is required when element '{0}' is not nested under a '{2}' element.", elementName, attributeName, parentElementName); + } + + public static Message ExpectedAttributeWithElement(SourceLineNumber sourceLineNumbers, string elementName, string attribute, string childElementName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithElement, "The {0} element must have attribute '{1}' when child element '{2}' is present.", elementName, attribute, childElementName); + } + + public static Message ExpectedAttributeWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithoutOtherAttributes, "The {0} element's {1} attribute was not found; it is required without attribute {2} present.", elementName, attributeName, otherAttributeName); + } + + public static Message ExpectedAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) + { + return Message(sourceLineNumbers, Ids.ExpectedAttributeWithoutOtherAttributes, "The {0} element's {1} attribute was not found; it is required without attribute {2} or {3} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); + } + + public static Message ExpectedBinaryCategory(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ExpectedBinaryCategory, "The Column element specifies a binary column but does not have the correct Category specified. Windows Installer requires binary columns to specify their category as binary. Please set the Category attribute's value to 'Binary'."); + } + + public static Message ExpectedClientPatchIdInWixMsp() + { + return Message(null, Ids.ExpectedClientPatchIdInWixMsp, "The WixMsp is missing the client patch ID. Recompile the patch source files with the latest WiX toolset."); + } + + public static Message ExpectedDecompiler(string identifier) + { + return Message(null, Ids.ExpectedDecompiler, "No decompiler was provided. {0} requires a decompiler.", identifier); + } + + public static Message ExpectedDirectory(string directory) + { + return Message(null, Ids.ExpectedDirectory, "The directory '{0}' could not be found.", directory); + } + + public static Message ExpectedDirectoryGotFile(string option, string path) + { + return Message(null, Ids.ExpectedDirectoryGotFile, "The {0} option requires a directory, but the provided path is a file: {1}", option, path); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element.", elementName); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}.", elementName, childName); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1} or {2}.", elementName, childName1, childName2); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2, string childName3) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}, {2}, or {3}.", elementName, childName1, childName2, childName3); + } + + public static Message ExpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childName1, string childName2, string childName3, string childName4) + { + return Message(sourceLineNumbers, Ids.ExpectedElement, "A {0} element must have at least one child element of type {1}, {2}, {3}, or {4}.", elementName, childName1, childName2, childName3, childName4); + } + + public static Message ExpectedEndElement(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ExpectedEndElement, "The end element matching the '{0}' start element was not found.", elementName); + } + + public static Message ExpectedEndforeach(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ExpectedEndforeach, "A statement was found that had no matching ."); + } + + public static Message ExpectedExpressionAfterNot(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.ExpectedExpressionAfterNot, "Expecting an argument for 'NOT' in expression '{0}'.", expression); + } + + public static Message ExpectedFileGotDirectory(string option, string path) + { + return Message(null, Ids.ExpectedFileGotDirectory, "The {0} option requires a file, but the provided path is a directory: {1}", option, path); + } + + public static Message ExpectedMediaCabinet(SourceLineNumber sourceLineNumbers, string fileId, int diskId) + { + return Message(sourceLineNumbers, Ids.ExpectedMediaCabinet, "The file '{0}' should be compressed but is not part of a compressed media. Files will be compressed if either the File/@Compressed or Package/@Compressed attributes are set to 'yes'. This can be fixed by setting the Media/@Cabinet attribute for media '{1}'.", fileId, diskId); + } + + public static Message ExpectedMediaRowsInWixMsp() + { + return Message(null, Ids.ExpectedMediaRowsInWixMsp, "The WixMsp has no media rows defined."); + } + + public static Message ExpectedParentWithAttribute(SourceLineNumber sourceLineNumbers, string parentElement, string attribute, string grandparentElement) + { + return Message(sourceLineNumbers, Ids.ExpectedParentWithAttribute, "When the {0}/@{1} attribute is specified, the {0} element must be nested under a {2} element.", parentElement, attribute, grandparentElement); + } + + public static Message ExpectedPatchIdInWixMsp() + { + return Message(null, Ids.ExpectedPatchIdInWixMsp, "The WixMsp is missing the patch ID."); + } + + public static Message ExpectedRowInPatchCreationPackage(string tableName) + { + return Message(null, Ids.ExpectedRowInPatchCreationPackage, "Could not find a row in the '{0}' table for this patch creation package. Patch creation packages must contain at least one row in the '{0}' table.", tableName); + } + + public static Message ExpectedSignedCabinetName(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ExpectedSignedCabinetName, "The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute."); + } + + public static Message ExpectedTableInMergeModule(string identifier) + { + return Message(null, Ids.ExpectedTableInMergeModule, "The table '{0}' was expected but was missing.", identifier); + } + + public static Message ExpectedVariable(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.ExpectedVariable, "A required variable was missing in the expression '{0}'.", expression); + } + + public static Message ExpectedWixVariableValue(string variableId) + { + return Message(null, Ids.ExpectedWixVariableValue, "The WiX variable '{0}' was declared without a value. Please specify a value for the variable.", variableId); + } + + public static Message FamilyNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length) + { + return Message(sourceLineNumbers, Ids.FamilyNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long for a family name because the maximum allowed length is 8 characters long.", elementName, attributeName, value, length); + } + + public static Message FeatureCannotFavorAndDisallowAdvertise(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string otherAttributeName, string otherValue) + { + return Message(sourceLineNumbers, Ids.FeatureCannotFavorAndDisallowAdvertise, "The {0}/@{1} attribute's value, '{2}', cannot coexist with the {3} attribute's value of '{4}'. These options would ask the installer to disallow the advertised state for this feature while at the same time favoring it.", elementName, attributeName, value, otherAttributeName, otherValue); + } + + public static Message FeatureCannotFollowParentAndFavorLocalOrSource(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherValue) + { + return Message(sourceLineNumbers, Ids.FeatureCannotFollowParentAndFavorLocalOrSource, "The {0}/@{1} attribute cannot be specified if the {2} attribute's value is '{3}'. These options would ask the installer to force this feature to follow the parent installation state and simultaneously favor a particular installation state just for this feature.", elementName, attributeName, otherAttributeName, otherValue); + } + + public static Message FeatureConfigurableDirectoryNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.FeatureConfigurableDirectoryNotUppercase, "The {0}/@{1} attribute's value, '{2}', contains lowercase characters. Since this directory is user-configurable, it needs to be a public property. This means the value must be completely uppercase.", elementName, attributeName, value); + } + + public static Message FeatureNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.FeatureNameTooLong, "The {0}/@{1} attribute with value '{2}', is too long for a feature name. Due to limitations in the Windows Installer, feature names cannot be longer than 38 characters in length.", elementName, attributeName, attributeValue); + } + + public static Message FileIdentifierNotFound(SourceLineNumber sourceLineNumbers, string fileIdentifier) + { + return Message(sourceLineNumbers, Ids.FileIdentifierNotFound, "The file row with identifier '{0}' could not be found.", fileIdentifier); + } + + public static Message FileInUse(SourceLineNumber sourceLineNumbers, string file) + { + return Message(sourceLineNumbers, Ids.FileInUse, "The process can not access the file '{0}' because it is being used by another process.", file); + } + + public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file) + { + return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}'.", file); + } + + public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType) + { + return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}' with type '{1}'.", file, fileType); + } + + public static Message FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType, IEnumerable checkedPaths) + { + var combinedCheckedPaths = String.Join(", ", checkedPaths); + return Message(sourceLineNumbers, Ids.FileNotFound, "The system cannot find the file '{0}' with type '{1}'. The following paths were checked: {2}", file, fileType, combinedCheckedPaths); + } + + public static Message FileOrDirectoryPathRequired(string parameter) + { + return Message(null, Ids.FileOrDirectoryPathRequired, "The parameter '{0}' must be followed by a file or directory path. To specify a directory path the string must end with a backslash, for example: \"C:\\Path\\\".", parameter); + } + + public static Message FilePathRequired(string parameter) + { + return Message(null, Ids.FilePathRequired, "The parameter '{0}' must be followed by a file path.", parameter); + } + + public static Message FileTooLarge(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.FileTooLarge, "'{0}' is too large, file size must be less than 2147483648.", fileName); + } + + public static Message FileWriteError(string path, string error) + { + return Message(null, Ids.FileWriteError, "Error writing to the path: '{0}'. Error message: '{1}'", path, error); + } + + public static Message FinishCabFailed() + { + return Message(null, Ids.FinishCabFailed, "An error (E_FAIL) was returned while finalizing a CAB file. This most commonly happens when creating a CAB file with more than 65535 files in it or a compressed size greater than 2GB. Either reduce the number of files in your installation package or split your installation package's files into more than one CAB file using the Media element."); + } + + public static Message FullTempDirectory(string prefix, string directory) + { + return Message(null, Ids.FullTempDirectory, "Unable to create temporary file. A common cause is that too many files that have names beginning with '{0}' are present. Delete any unneeded files in the '{1}' directory and try again.", prefix, directory); + } + + public static Message GACAssemblyIdentityWarning(SourceLineNumber sourceLineNumbers, string fileName, string assemblyName) + { + return Message(sourceLineNumbers, Ids.GACAssemblyIdentityWarning, "The destination name of file '{0}' does not match its assembly name '{1}' in your authoring. This will cause an installation failure for this assembly, because it will be installed to the Global Assembly Cache. To fix this error, update File/@Name of file '{0}' to be the actual name of the assembly.", fileName, assemblyName); + } + + public static Message GacAssemblyNoStrongName(SourceLineNumber sourceLineNumbers, string assemblyName, string componentName) + { + return Message(sourceLineNumbers, Ids.GacAssemblyNoStrongName, "Assembly {0} in component {1} has no strong name and has been marked to be placed in the GAC. All assemblies installed to the GAC must have a valid strong name.", assemblyName, componentName); + } + + public static Message GenericReadNotAllowed(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.GenericReadNotAllowed, "Permission elements cannot have GenericRead as the only permission specified. Include at least one other permission."); + } + + public static Message GuidContainsLowercaseLetters(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.GuidContainsLowercaseLetters, "The {0}/@{1} attribute's value, '{2}', is a mixed-case guid. All letters in a guid value should be uppercase.", elementName, attributeName, value); + } + + public static Message HarvestSourceNotSpecified() + { + return Message(null, Ids.HarvestSourceNotSpecified, "A harvest source must be specified after the harvest type and can be followed by harvester arguments."); + } + + public static Message HarvestTypeNotFound() + { + return Message(null, Ids.HarvestTypeNotFound, "The harvest type was not found in the list of loaded Heat extensions."); + } + + public static Message HarvestTypeNotFound(string harvestType) + { + return Message(null, Ids.HarvestTypeNotFound, "The harvest type '{0}' was specified. Harvest types cannot start with a '-'. Remove the '-' to specify a valid harvest type.", harvestType); + } + + public static Message IdentifierNotFound(string type, string identifier) + { + return Message(null, Ids.IdentifierNotFound, "An expected identifier ('{1}', of type '{0}') was not found.", type, identifier); + } + + public static Message IdentifierTooLongError(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int maxLength) + { + return Message(sourceLineNumbers, Ids.IdentifierTooLongError, "The {0}/@{1} attribute's value, '{2}', is too long. {0}/@{1} attribute's must be {3} characters long or less.", elementName, attributeName, value, maxLength); + } + + public static Message IllegalAttributeExceptOnElement(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string expectedElementName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeExceptOnElement, "The {1} attribute can only be specified on the {2} element.", elementName, attributeName, expectedElementName); + } + + public static Message IllegalAttributeInMergeModule(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeInMergeModule, "The {0}/@{1} attribute cannot be specified in a merge module.", elementName, attributeName); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}'.", elementName, attributeName, value, legalValue1); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', or '{4}'.", elementName, attributeName, value, legalValue1, legalValue2); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', or '{5}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', or '{6}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', or '{7}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', or '{8}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', or '{9}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7, string legalValue8) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', or '{10}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7, legalValue8); + } + + public static Message IllegalAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValue1, string legalValue2, string legalValue3, string legalValue4, string legalValue5, string legalValue6, string legalValue7, string legalValue8, string legalValue9, string legalValue10, string legalValue11, string legalValue12, string legalValue13, string legalValue14, string legalValue15, string legalValue16, string legalValue17, string legalValue18, string legalValue19, string legalValue20, string legalValue21, string legalValue22, string legalValue23, string legalValue24, string legalValue25, string legalValue26) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValue, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', or '{28}'.", elementName, attributeName, value, legalValue1, legalValue2, legalValue3, legalValue4, legalValue5, legalValue6, legalValue7, legalValue8, legalValue9, legalValue10, legalValue11, legalValue12, legalValue13, legalValue14, legalValue15, legalValue16, legalValue17, legalValue18, legalValue19, legalValue20, legalValue21, legalValue22, legalValue23, legalValue24, legalValue25, legalValue26); + } + + public static Message IllegalAttributeValueWhenNested(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attrivuteValue, string parentElementName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWhenNested, "The {0}/@{1} attribute value, '{2}', cannot be specified when the {0} element is nested underneath a {3} element.", elementName, attributeName, attrivuteValue, parentElementName); + } + + public static Message IllegalAttributeValueWithIllegalList(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string illegalValueList) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithIllegalList, "The {0}/@{1} attribute's value, '{2}', is one of the illegal options: {3}.", elementName, attributeName, value, illegalValueList); + } + + public static Message IllegalAttributeValueWithLegalList(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string legalValueList) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithLegalList, "The {0}/@{1} attribute's value, '{2}', is not one of the legal options: {3}.", elementName, attributeName, value, legalValueList); + } + + public static Message IllegalAttributeValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present.", elementName, attributeName, attributeValue, otherAttributeName); + } + + public static Message IllegalAttributeValueWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified with attribute {3} present with value '{4}'.", elementName, attributeName, attributeValue, otherAttributeName, otherAttributeValue); + } + + public static Message IllegalAttributeValueWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithoutOtherAttribute, "The {0}/@{1} attribute's value, '{2}', can only be specified with attribute {3} present with value '{4}'.", elementName, attributeName, attributeValue, otherAttributeName, otherAttributeValue); + } + + public static Message IllegalAttributeValueWithoutOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeValueWithoutOtherAttribute, "The {0}/@{1} attribute's value, '{2}', cannot be specified without attribute {3} present.", elementName, attributeName, attributeValue, otherAttributeName); + } + + public static Message IllegalAttributeWhenAdvertised(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWhenAdvertised, "The {0}/@{1} attribute cannot be specified because the element is advertised.", elementName, attributeName); + } + + public static Message IllegalAttributeWhenNested(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string parentElement) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWhenNested, "The {0}/@{1} attribute cannot be specified when the {0} element is nested underneath a {2} element. If this {0} is a member of a ComponentGroup where ComponentGroup/@{1} is set, then the {0}/@{1} attribute should be removed.", elementName, attributeName, parentElement); + } + + public static Message IllegalAttributeWithInnerText(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithInnerText, "The {0}/@{1} attribute cannot be specified when the element has body text as well. Specify either the attribute or the body, but not both.", elementName, attributeName); + } + + public static Message IllegalAttributeWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttribute, "The {0}/@{1} attribute cannot be specified when attribute {2} is present.", elementName, attributeName, otherAttributeName); + } + + public static Message IllegalAttributeWithOtherAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttribute, "The {0}/@{1} attribute cannot be specified when attribute {2} is present with value '{3}'.", elementName, attributeName, otherAttributeName, otherAttributeValue); + } + + public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2} or {3} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); + } + + public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, or {4} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3); + } + + public static Message IllegalAttributeWithOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3, string otherAttributeName4) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithOtherAttributes, "The {0}/@{1} attribute cannot be specified when attribute {2}, {3}, {4}, or {5} is also present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3, otherAttributeName4); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with the following attribute {2} present.", elementName, attributeName, otherAttributeName); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeValue, Boolean uniquifier) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2} or {3} present with value '{4}'.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeValue, uniquifier); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, or {4} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3); + } + + public static Message IllegalAttributeWithoutOtherAttributes(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string otherAttributeName1, string otherAttributeName2, string otherAttributeName3, string otherAttributeName4) + { + return Message(sourceLineNumbers, Ids.IllegalAttributeWithoutOtherAttributes, "The {0}/@{1} attribute can only be specified with one of the following attributes: {2}, {3}, {4}, or {5} present.", elementName, attributeName, otherAttributeName1, otherAttributeName2, otherAttributeName3, otherAttributeName4); + } + + public static Message IllegalBinderClassName() + { + return Message(null, Ids.IllegalBinderClassName, "Illegal binder class name specified for -binder command line option."); + } + + public static Message IllegalCabbingThreadCount(string numThreads) + { + return Message(null, Ids.IllegalCabbingThreadCount, "Illegal number of threads to create cabinets: '{0}' for -ct command line option. Specify the number of threads to use like -ct 2.", numThreads); + } + + public static Message IllegalCharactersInPath(string pathName) + { + return Message(null, Ids.IllegalCharactersInPath, "Illegal characters in path '{0}'. Ensure you provided a valid path to the file.", pathName); + } + + public static Message IllegalCodepage(int codepage) + { + return Message(null, Ids.IllegalCodepage, "The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); + } + + public static Message IllegalCodepage(SourceLineNumber sourceLineNumbers, int codepage) + { + return Message(sourceLineNumbers, Ids.IllegalCodepage, "The code page '{0}' is not a valid Windows code page. Update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); + } + + public static Message IllegalCodepageAttribute(SourceLineNumber sourceLineNumbers, string codepage, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalCodepageAttribute, "The code page '{0}' is not a valid Windows code page. Please check the {1}/@{2} attribute value in your source file.", codepage, elementName, attributeName); + } + + public static Message IllegalColumnName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalColumnName, "The {0}/@{1} attribute's value, '{2}', is not a legal column name. It will collide with the sentinel values used in the _TransformView table.", elementName, attributeName, value); + } + + public static Message IllegalCommandlineArgumentCombination(string arg1, string arg2) + { + return Message(null, Ids.IllegalCommandlineArgumentCombination, "'-{0}' cannot be specfied in combination with '-{1}'.", arg1, arg2); + } + + public static Message IllegalComponentWithAutoGeneratedGuid(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalComponentWithAutoGeneratedGuid, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components using a Directory as a KeyPath or containing ODBCDataSource child elements cannot use an automatically generated guid. Make sure your component doesn't have a Directory as the KeyPath and move any ODBCDataSource child elements to components with explicit component guids."); + } + + public static Message IllegalComponentWithAutoGeneratedGuid(SourceLineNumber sourceLineNumbers, Boolean registryKeyPath) + { + return Message(sourceLineNumbers, Ids.IllegalComponentWithAutoGeneratedGuid, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with registry keypaths and files cannot use an automatically generated guid. Create multiple components, each with one file and/or one registry value keypath, to use automatically generated guids.", registryKeyPath); + } + + public static Message IllegalCompressionLevel(SourceLineNumber sourceLineNumbers, string compressionLevel) + { + return Message(sourceLineNumbers, Ids.IllegalCompressionLevel, "The compression level '{0}' is not valid. Valid values are 'none', 'low', 'medium', 'high', and 'mszip'.", compressionLevel); + } + + public static Message IllegalDefineStatement(SourceLineNumber sourceLineNumbers, string defineStatement) + { + return Message(sourceLineNumbers, Ids.IllegalDefineStatement, "The define statement '' is not well-formed. Define statements should be in the form .", defineStatement); + } + + public static Message IllegalEmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.IllegalEmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. If a value is not required, simply remove the entire attribute.", elementName, attributeName); + } + + public static Message IllegalEmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string defaultValue) + { + return Message(sourceLineNumbers, Ids.IllegalEmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. To use the default value \"{2}\", simply remove the entire attribute.", elementName, attributeName, defaultValue); + } + + public static Message IllegalEnvironmentVariable(string environmentVariable, string value) + { + return Message(null, Ids.IllegalEnvironmentVariable, "The {0} environment variable is set to an invalid value of '{1}'.", environmentVariable, value); + } + + public static Message IllegalFamilyName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalFamilyName, "The {0}/@{1} attribute's value, '{2}', contains illegal characters for a family name. Legal values include letters, numbers, and underscores.", elementName, attributeName, value); + } + + public static Message IllegalFileCompressionAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalFileCompressionAttributes, "Cannot have both the MsidbFileAttributesCompressed and MsidbFileAttributesNoncompressed options set in a file attributes column."); + } + + public static Message IllegalForeach(SourceLineNumber sourceLineNumbers, string foreachStatement) + { + return Message(sourceLineNumbers, Ids.IllegalForeach, "The foreach statement '{0}' is illegal. The proper format for foreach is .", foreachStatement); + } + + public static Message IllegalGeneratedGuidComponentUnversionedKeypath(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalGeneratedGuidComponentUnversionedKeypath, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component's keypath is not versioned. Create multiple components to use automatically generated guids."); + } + + public static Message IllegalGeneratedGuidComponentVersionedNonkeypath(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalGeneratedGuidComponentVersionedNonkeypath, "The Component/@Guid attribute's value '*' is not valid for this component because it does not meet the criteria for having an automatically generated guid. Components with more than one file cannot use an automatically generated guid unless a versioned file is the keypath and the other files are unversioned. This component has a non-keypath file that is versioned. Create multiple components to use automatically generated guids."); + } + + public static Message IllegalGuidValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalGuidValue, "The {0}/@{1} attribute's value, '{2}', is not a legal guid value.", elementName, attributeName, value); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0} element's value, '{1}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, value); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int disambiguator) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, disambiguator); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value, '{2}', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, value); + } + + public static Message IllegalIdentifier(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string identifier) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifier, "The {0}/@{1} attribute's value '{2}' contains an illegal identifier '{3}'. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.", elementName, attributeName, value, identifier); + } + + public static Message IllegalIdentifierLooksLikeFormatted(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIdentifierLooksLikeFormatted, "The {0}/@{1} attribute's value, '{2}', is not a legal identifier. The {0}/@{1} attribute does not support formatted string values, such as property names enclosed in brackets ([LIKETHIS]). The value must be the identifier of another element, such as the Directory/@Id attribute value.", elementName, attributeName, value); + } + + public static Message IllegalInlineLocVariable(SourceLineNumber sourceLineNumbers, string variableName, string variableValue) + { + return Message(sourceLineNumbers, Ids.IllegalInlineLocVariable, "The localization variable '{0}' specifies an illegal inline default value of '{1}'. Localization variables cannot specify default values inline, instead the value should be specified in a WiX localization (.wxl) file.", variableName, variableValue); + } + + public static Message IllegalIntegerInExpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.IllegalIntegerInExpression, "An illegal number was found in the expression '{0}'.", expression); + } + + public static Message IllegalIntegerValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalIntegerValue, "The {0}/@{1} attribute's value, '{2}', is not a legal integer value. Legal integer values are from -2,147,483,648 to 2,147,483,647.", elementName, attributeName, value); + } + + public static Message IllegalLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalLongFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid filename because it contains illegal characters. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \\ ? | > < : / * \".", elementName, attributeName, value); + } + + public static Message IllegalLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string filename) + { + return Message(sourceLineNumbers, Ids.IllegalLongFilename, "The {0}/@{1} attribute's value '{2}' contains a invalid filename '{3}'. Legal filenames contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: \\ ? | > < : / * \".", elementName, attributeName, value, filename); + } + + public static Message IllegalLongValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalLongValue, "The {0}/@{1} attribute's value, '{2}', is not a legal long value. Legal long values are from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.", elementName, attributeName, value); + } + + public static Message IllegalModuleExclusionLanguageAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalModuleExclusionLanguageAttributes, "Cannot set both ExcludeLanguage and ExcludeExceptLanguage attributes on a ModuleExclusion element."); + } + + public static Message IllegalParentAttributeWhenNested(SourceLineNumber sourceLineNumbers, string parentElementName, string parentAttributeName, string childElement) + { + return Message(sourceLineNumbers, Ids.IllegalParentAttributeWhenNested, "The {0}/@{1} attribute cannot be specified when a {2} element is nested underneath the {0} element.", parentElementName, parentAttributeName, childElement); + } + + public static Message IllegalPathForGeneratedComponentGuid(SourceLineNumber sourceLineNumbers, string componentName, string keyFilePath) + { + return Message(sourceLineNumbers, Ids.IllegalPathForGeneratedComponentGuid, "The component '{0}' has a key file with path '{1}'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name \"Common Files\" under ProgramFilesFolder.)", componentName, keyFilePath); + } + + public static Message IllegalPropertyCustomActionAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalPropertyCustomActionAttributes, "The CustomAction sets a property but its Execute attribute is not 'immediate' (the default). Property-setting custom actions cannot be deferred.\""); + } + + public static Message IllegalRelativeLongFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalRelativeLongFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid relative long name because it contains illegal characters. Legal relative long names contain no more than 260 characters and must contain at least one non-period character. Any character except for the follow may be used: ? | > < : / * \".", elementName, attributeName, value); + } + + public static Message IllegalRootDirectory(SourceLineNumber sourceLineNumbers, string directoryId) + { + return Message(sourceLineNumbers, Ids.IllegalRootDirectory, "The Directory with Id '{0}' is not a valid root directory. There may only be a single root directory per product or module and its Id attribute value must be 'TARGETDIR' and its Name attribute value must be 'SourceDir'.", directoryId); + } + + public static Message IllegalSearchIdForParentDepth(SourceLineNumber sourceLineNumbers, string id, string parentId) + { + return Message(sourceLineNumbers, Ids.IllegalSearchIdForParentDepth, "When the parent DirectorySearch/@Depth attribute is greater than 1 for the DirectorySearch '{1}', the FileSearch/@Id attribute must be absent for FileSearch '{0}' unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'. Remove the FileSearch/@Id attribute for '{0}' to resolve this issue.", id, parentId); + } + + public static Message IllegalShortFilename(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalShortFilename, "The {0}/@{1} attribute's value, '{2}', is not a valid 8.3-compliant name. Legal names contain no more than 8 non-period characters followed by an optional period and extension of no more than 3 non-period characters. Any character except for the follow may be used: \\ ? | > < : / * \" + , ; = [ ] (space).", elementName, attributeName, value); + } + + public static Message IllegalSuppressWarningId(string suppressedId) + { + return Message(null, Ids.IllegalSuppressWarningId, "Illegal value '{0}' for the -sw command line option. Specify a particular warning number, like '-sw6' to suppress the warning with ID 6, or '-sw' alone to suppress all warnings.", suppressedId); + } + + public static Message IllegalTargetDirDefaultDir(SourceLineNumber sourceLineNumbers, string defaultDir) + { + return Message(sourceLineNumbers, Ids.IllegalTargetDirDefaultDir, "The 'TARGETDIR' directory has an illegal DefaultDir value of '{0}'. The DefaultDir value is created from the *Name attributes of the Directory element. The TARGETDIR directory is a special directory which must have its Name attribute set to 'SourceDir'.", defaultDir); + } + + public static Message IllegalTerminalServerCustomActionAttributes(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.IllegalTerminalServerCustomActionAttributes, "The CustomAction/@TerminalServerAware attribute's value is 'yes' but the Execute attribute is not 'deferred,' 'rollback,' or 'commit.' Terminal-Server-aware custom actions must be deferred, rollback, or commit custom actions. For more information, see http://msdn.microsoft.com/library/aa372071.aspx.\""); + } + + public static Message IllegalValidationArguments() + { + return Message(null, Ids.IllegalValidationArguments, "You may only specify a single default type using -t or specify custom validation using -serr and -val."); + } + + public static Message IllegalVersionValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalVersionValue, "The {0}/@{1} attribute's value, '{2}', is not a valid version. Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534.", elementName, attributeName, value); + } + + public static Message IllegalWarningIdAsError(string warningId) + { + return Message(null, Ids.IllegalWarningIdAsError, "Illegal value '{0}' for the -wx command line option. Specify a particular warning number, like '-wx6' to display the warning with ID 6 as an error, or '-wx' alone to suppress all warnings.", warningId); + } + + public static Message IllegalWixVariablePrefix(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.IllegalWixVariablePrefix, "The WiX variable $(wix.{0}) uses an illegal prefix '$'. Please use the '!' prefix instead.", variableId); + } + + public static Message IllegalYesNoAlwaysValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalYesNoAlwaysValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/always value. The only legal values are 'always', 'no' or 'yes'.", elementName, attributeName, value); + } + + public static Message IllegalYesNoDefaultValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalYesNoDefaultValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no/default value. The only legal values are 'default', 'no' or 'yes'.", elementName, attributeName, value); + } + + public static Message IllegalYesNoValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IllegalYesNoValue, "The {0}/@{1} attribute's value, '{2}', is not a legal yes/no value. The only legal values are 'no' and 'yes'.", elementName, attributeName, value); + } + + public static Message ImplicitComponentKeyPath(SourceLineNumber sourceLineNumbers, string componentId) + { + return Message(sourceLineNumbers, Ids.ImplicitComponentKeyPath, "The component '{0}' does not have an explicit key path specified. If the ordering of the elements under the Component element changes, the key path will also change. To prevent accidental changes, the key path should be set to 'yes' in one of the following locations: Component/@KeyPath, File/@KeyPath, ODBCDataSource/@KeyPath, or Registry/@KeyPath.", componentId); + } + + public static Message InlineDirectorySyntaxRequiresPath(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, string identifier) + { + return Message(sourceLineNumbers, Ids.InlineDirectorySyntaxRequiresPath, "The {0}/@{1} attribute's value '{2}' only specifies a directory reference. The inline directory syntax requires that at least one directory be specified in addition to the value. For example, use '{3}:\\foo\\' to add a 'foo' directory.", elementName, attributeName, value, identifier); + } + + public static Message InsecureBundleFilename(string filename) + { + return Message(null, Ids.InsecureBundleFilename, "The file name '{0}' creates an insecure bundle. Windows will load unnecessary compatibility shims into a bundle with that file name. These compatibility shims can be DLL hijacked allowing attackers to compromise your customers' computer. Choose a different bundle file name.", filename); + } + + public static Message InsertInvalidSequenceActionOrder(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionNameBefore, string actionNameAfter, string actionNameNew) + { + return Message(sourceLineNumbers, Ids.InsertInvalidSequenceActionOrder, "Invalid order of actions {1} and {2} in sequence table {0}. Action {3} must occur after {1} and before {2}, but {2} is currently sequenced after {1}. Please fix the ordering or explicitly supply a location for the action {3}.", sequenceTableName, actionNameBefore, actionNameAfter, actionNameNew); + } + + public static Message InsertSequenceNoSpace(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionNameBefore, string actionNameAfter, string actionNameNew) + { + return Message(sourceLineNumbers, Ids.InsertSequenceNoSpace, "Not enough space exists to sequence action {3} in table {0}. It must be sequenced after {1} and before {2}, but those two actions are currently sequenced next to each other. Please move one of those actions to allow {3} to be inserted between them.", sequenceTableName, actionNameBefore, actionNameAfter, actionNameNew); + } + + public static Message InsufficientVersion(SourceLineNumber sourceLineNumbers, Version currentVersion, Version requiredVersion) + { + return Message(sourceLineNumbers, Ids.InsufficientVersion, "The current version of the toolset is {0}, but version {1} is required.", currentVersion, requiredVersion); + } + + public static Message InsufficientVersion(SourceLineNumber sourceLineNumbers, Version currentVersion, Version requiredVersion, string extension) + { + return Message(sourceLineNumbers, Ids.InsufficientVersion, "The current version of the extension '{2}' is {0}, but version {1} is required.", currentVersion, requiredVersion, extension); + } + + public static Message IntegralValueOutOfRange(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, int value, int minimum, int maximum) + { + return Message(sourceLineNumbers, Ids.IntegralValueOutOfRange, "The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}.", elementName, attributeName, value, minimum, maximum); + } + + public static Message IntegralValueOutOfRange(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, long value, long minimum, long maximum) + { + return Message(sourceLineNumbers, Ids.IntegralValueOutOfRange, "The {0}/@{1} attribute's value, '{2}', is not in the range of legal values. Legal values for this attribute are from {3} to {4}.", elementName, attributeName, value, minimum, maximum); + } + + public static Message IntegralValueSentinelCollision(SourceLineNumber sourceLineNumbers, int value) + { + return Message(sourceLineNumbers, Ids.IntegralValueSentinelCollision, "The integer value {0} collides with a sentinel value in the compiler code.", value); + } + + public static Message IntegralValueSentinelCollision(SourceLineNumber sourceLineNumbers, long value) + { + return Message(sourceLineNumbers, Ids.IntegralValueSentinelCollision, "The long integral value {0} collides with a sentinel value in the compiler code.", value); + } + + public static Message InvalidAddedFileRowWithoutSequence(SourceLineNumber sourceLineNumbers, string fileRowId) + { + return Message(sourceLineNumbers, Ids.InvalidAddedFileRowWithoutSequence, "A row has been added to the File table with id '{1}' that does not have a sequence number assigned to it. Create your transform from a pair of msi's instead of xml outputs to get sequences assigned to your File table's rows.", fileRowId); + } + + public static Message InvalidAssemblyFile(SourceLineNumber sourceLineNumbers, string assemblyFile, string moreInformation) + { + return Message(sourceLineNumbers, Ids.InvalidAssemblyFile, "The assembly file '{0}' appears to be invalid. Please ensure this is a valid assembly file and that the user has the appropriate access rights to this file. More information: {1}", assemblyFile, moreInformation); + } + + public static Message InvalidBundle(string bundleExecutable) + { + return Message(null, Ids.InvalidBundle, "Unable to read bundle executable '{0}'. This is not a valid WiX bundle.", bundleExecutable); + } + + public static Message InvalidCabinetTemplate(SourceLineNumber sourceLineNumbers, string cabinetTemplate) + { + return Message(sourceLineNumbers, Ids.InvalidCabinetTemplate, "CabinetTemplate attribute's value '{0}' must contain '{{0}}' and should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the follow may be used: \\ ? | > < : / * \" + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms).", cabinetTemplate); + } + + public static Message InvalidCommandLineFileName(string fileName, string error) + { + return Message(null, Ids.InvalidCommandLineFileName, "Invalid file name specified on the command line: '{0}'. Error message: '{1}'", fileName, error); + } + + public static Message InvalidDateTimeFormat(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.InvalidDateTimeFormat, "The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss.", elementName, attributeName, value); + } + + public static Message InvalidDocumentElement(SourceLineNumber sourceLineNumbers, string elementName, string fileType, string expectedElementName) + { + return Message(sourceLineNumbers, Ids.InvalidDocumentElement, "The document element name '{0}' is invalid. A WiX {1} file must use '{2}' as the document element name.", elementName, fileType, expectedElementName); + } + + public static Message InvalidEmbeddedUIFileName(SourceLineNumber sourceLineNumbers, string codepage) + { + return Message(sourceLineNumbers, Ids.InvalidEmbeddedUIFileName, "The EmbeddedUI/@Name attribute value, '{0}', does not contain an extension. Windows Installer will not load an embedded UI DLL without an extension. Include an extension or just omit the Name attribute so it defaults to the file name portion of the Source attribute value.", codepage); + } + + public static Message CouldNotFindExtensionInPaths(string extensionPath, IEnumerable checkedPaths) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be found. Checked paths: {1}", extensionPath, String.Join(", ", checkedPaths)); + } + + public static Message InvalidExtension(string extension) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be loaded.", extension); + } + + public static Message InvalidExtension(string extension, string invalidReason) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' could not be loaded because of the following reason: {1}", extension, invalidReason); + } + + public static Message InvalidExtension(string extension, string extensionType, string expectedType) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}'.", extension, extensionType, expectedType); + } + + public static Message InvalidExtension(string extension, string extensionType, string expectedType1, string expectedType2) + { + return Message(null, Ids.InvalidExtension, "The extension '{0}' is the wrong type: '{1}'. The expected type was '{2}' or '{3}'.", extension, extensionType, expectedType1, expectedType2); + } + + public static Message InvalidExtensionType(string extension, string attributeType) + { + return Message(null, Ids.InvalidExtensionType, "Either '{1}' was not defined in the assembly or the type defined in extension '{0}' could not be loaded.", extension, attributeType); + } + + public static Message InvalidExtensionType(string extension, string className, string expectedType) + { + return Message(null, Ids.InvalidExtensionType, "The extension type '{1}' in extension '{0}' does not inherit from the expected class '{2}'.", extension, className, expectedType); + } + + public static Message InvalidExtensionType(string extension, string className, string exceptionType, string exceptionMessage) + { + return Message(null, Ids.InvalidExtensionType, "The type '{1}' in extension '{0}' could not be loaded. Exception type '{2}' returned the following message: {3}", extension, className, exceptionType, exceptionMessage); + } + + public static Message InvalidFileName(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.InvalidFileName, "Invalid file name '{0}'.", fileName); + } + + public static Message InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile) + { + return Message(sourceLineNumbers, Ids.InvalidIdt, "There was an error importing the file '{0}'.", idtFile); + } + + public static Message InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile, string tableName) + { + return Message(sourceLineNumbers, Ids.InvalidIdt, "There was an error importing table '{1}' from file '{0}'.", idtFile, tableName); + } + + public static Message InvalidKeyColumn(string tableName, string columnName, string foreignTableName, int foreignColumnNumber) + { + return Message(null, Ids.InvalidKeyColumn, "The definition for the '{0}' table's '{1}' column is an invalid foreign key relationship to the {2} table's column number {3}. It is not a valid foreign key table column number because it is too small (less than 1) or greater than the count of columns in the foreign table's definition.", tableName, columnName, foreignTableName, foreignColumnNumber); + } + + public static Message InvalidKeypathChange(SourceLineNumber sourceLineNumbers, string component, string transformPath) + { + return Message(sourceLineNumbers, Ids.InvalidKeypathChange, "Component '{0}' has a changed keypath in the transform '{1}'. Patches cannot change the keypath of a component.", component, transformPath); + } + + public static Message InvalidManifestContent(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.InvalidManifestContent, "The manifest '{0}' does not have the required assembly/assemblyIdentity element.", fileName); + } + + public static Message InvalidMergeLanguage(SourceLineNumber sourceLineNumbers, string mergeId, string mergeLanguage) + { + return Message(sourceLineNumbers, Ids.InvalidMergeLanguage, "The Merge element '{0}' specified an invalid language '{1}'. Verify that localization tokens are being properly resolved to a numeric LCID.", mergeId, mergeLanguage); + } + + public static Message InvalidModuleOrBundleVersion(SourceLineNumber sourceLineNumbers, string moduleOrBundle, string version) + { + return Message(sourceLineNumbers, Ids.InvalidModuleOrBundleVersion, "Invalid {0}/@Version '{1}'. {0} version has a max value of \"65535.65535.65535.65535\" and must be all numeric.", moduleOrBundle, version); + } + + public static Message InvalidPlatformValue(SourceLineNumber sourceLineNumbers, string value) + { + return Message(sourceLineNumbers, Ids.InvalidPlatformValue, "The Platform attribute has an invalid value {0}. Possible values are x86, x64, or arm64.", value); + } + + public static Message InvalidPreprocessorFunction(SourceLineNumber sourceLineNumbers, string variable) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorFunction, "Ill-formed preprocessor function '${0}'. Functions must have a prefix (like 'fun.'), a name at least 1 character long, and matching opening and closing parentheses.", variable); + } + + public static Message InvalidPreprocessorFunctionAutoVersion(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorFunctionAutoVersion, "Invalid AutoVersion template specified."); + } + + public static Message InvalidPreprocessorPragma(SourceLineNumber sourceLineNumbers, string variable) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorPragma, "Malformed preprocessor pragma '{0}'. Pragmas must have a prefix, a name of at least 1 character long, and be followed by optional arguments.", variable); + } + + public static Message InvalidPreprocessorVariable(SourceLineNumber sourceLineNumbers, string variable) + { + return Message(sourceLineNumbers, Ids.InvalidPreprocessorVariable, "Ill-formed preprocessor variable '$({0})'. Variables must have a prefix (like 'var.', 'env.', or 'sys.') and a name at least 1 character long. If the literal string '$({0})' is desired, use '$$({0})'.", variable); + } + + public static Message InvalidProductVersion(SourceLineNumber sourceLineNumbers, string version) + { + return Message(sourceLineNumbers, Ids.InvalidProductVersion, "Invalid product version '{0}'. Product version must have a major version less than 256, a minor version less than 256, and a build version less than 65536.", version); + } + + public static Message InvalidProductVersion(SourceLineNumber sourceLineNumbers, string version, string packagePath) + { + return Message(sourceLineNumbers, Ids.InvalidProductVersion, "Invalid product version '{0}' in package '{1}'. When included in a bundle, all product version fields in an MSI package must be less than 65536.", version, packagePath); + } + + public static Message InvalidRemoveComponent(SourceLineNumber sourceLineNumbers, string component, string feature, string transformPath) + { + return Message(sourceLineNumbers, Ids.InvalidRemoveComponent, "Removing component '{0}' from feature '{1}' is not supported. Either the component was removed or the guid changed in the transform '{2}'. Add the component back, undo the change to the component guid, or remove the entire feature.", component, feature, transformPath); + } + + public static Message InvalidSequenceTable(string sequenceTableName) + { + return Message(null, Ids.InvalidSequenceTable, "Found an invalid sequence table '{0}'.", sequenceTableName); + } + + public static Message InvalidStringForCodepage(SourceLineNumber sourceLineNumbers, string codepage) + { + return Message(sourceLineNumbers, Ids.InvalidStringForCodepage, "A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.", codepage); + } + + public static Message InvalidStubExe(string filename) + { + return Message(null, Ids.InvalidStubExe, "Stub executable '{0}' is not a valid Win32 executable.", filename); + } + + public static Message InvalidSubExpression(SourceLineNumber sourceLineNumbers, string subExpression, string expression) + { + return Message(sourceLineNumbers, Ids.InvalidSubExpression, "Found invalid subexpression '{0}' in expression '{1}'.", subExpression, expression); + } + + public static Message InvalidSummaryInfoCodePage(SourceLineNumber sourceLineNumbers, int codePage) + { + return Message(sourceLineNumbers, Ids.InvalidSummaryInfoCodePage, "The code page '{0}' is invalid for summary information. You must specify an ANSI code page.", codePage); + } + + public static Message InvalidValidatorMessageType(string type) + { + return Message(null, Ids.InvalidValidatorMessageType, "Unknown validation message type '{0}'.", type); + } + + public static Message InvalidVariableDefinition(string variableDefinition) + { + return Message(null, Ids.InvalidVariableDefinition, "The variable definition '{0}' is not valid. Variable definitions should be in the form -dname=value where the value is optional.", variableDefinition); + } + + public static Message InvalidWixTransform(string fileName) + { + return Message(null, Ids.InvalidWixTransform, "The file '{0}' is not a valid WiX Transform.", fileName); + } + + public static Message InvalidWixXmlNamespace(SourceLineNumber sourceLineNumbers, string wixElementName, string wixNamespace) + { + return Message(sourceLineNumbers, Ids.InvalidWixXmlNamespace, "The {0} element has no namespace. Please make the {0} element look like the following: <{0} xmlns=\"{1}\">.", wixElementName, wixNamespace); + } + + public static Message InvalidWixXmlNamespace(SourceLineNumber sourceLineNumbers, string wixElementName, string elementNamespace, string wixNamespace) + { + return Message(sourceLineNumbers, Ids.InvalidWixXmlNamespace, "The {0} element has an incorrect namespace of '{1}'. Please make the {0} element look like the following: <{0} xmlns=\"{2}\">.", wixElementName, elementNamespace, wixNamespace); + } + + public static Message InvalidXml(SourceLineNumber sourceLineNumbers, string fileType, string detail) + { + return Message(sourceLineNumbers, Ids.InvalidXml, "Not a valid {0} file; detail: {1}", fileType, detail); + } + + public static Message LocalizationVariableUnknown(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.LocalizationVariableUnknown, "The localization variable !(loc.{0}) is unknown. Please ensure the variable is defined.", variableId); + } + + public static Message MaximumCabinetSizeForLargeFileSplittingTooLarge(SourceLineNumber sourceLineNumbers, int maximumCabinetSizeForLargeFileSplitting, int maxValueOfMaxCabSizeForLargeFileSplitting) + { + return Message(sourceLineNumbers, Ids.MaximumCabinetSizeForLargeFileSplittingTooLarge, "'{0}' is too large. Reduce the size of maximum cabinet size for large file splitting. The maximum permitted value is '{1}' MB.", maximumCabinetSizeForLargeFileSplitting, maxValueOfMaxCabSizeForLargeFileSplitting); + } + + public static Message MaximumUncompressedMediaSizeTooLarge(SourceLineNumber sourceLineNumbers, int maximumUncompressedMediaSize) + { + return Message(sourceLineNumbers, Ids.MaximumUncompressedMediaSizeTooLarge, "'{0}' is too large. Reduce the size of maximum uncompressed media size.", maximumUncompressedMediaSize); + } + + public static Message MediaEmbeddedCabinetNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length) + { + return Message(sourceLineNumbers, Ids.MediaEmbeddedCabinetNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. The name is too long for an embedded cabinet. It cannot be more than than 62 characters long.", elementName, attributeName, value, length); + } + + public static Message MediaTableCollision(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MediaTableCollision, "Only one of Media and MediaTemplate tables should be authored."); + } + + public static Message MergeExcludedModule(SourceLineNumber sourceLineNumbers, string mergeId, string otherMergeId) + { + return Message(sourceLineNumbers, Ids.MergeExcludedModule, "The module '{0}' cannot be merged because it excludes or is excluded by the merge module with signature '{1}'.", mergeId, otherMergeId); + } + + public static Message MergeFeatureRequired(SourceLineNumber sourceLineNumbers, string tableName, string primaryKeys, string mergeModuleFile, string mergeId) + { + return Message(sourceLineNumbers, Ids.MergeFeatureRequired, "The {0} table contains a row with primary key(s) '{1}' which requires a feature to properly merge from the merge module '{2}'. Nest a MergeRef element with an Id attribute set to the value '{3}' under a Feature element to fix this error.", tableName, primaryKeys, mergeModuleFile, mergeId); + } + + public static Message MergeLanguageFailed(SourceLineNumber sourceLineNumbers, Int16 language, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeLanguageFailed, "The language '{0}' is supported but uses an invalid language transform in the merge module '{1}'.", language, mergeModuleFile); + } + + public static Message MergeLanguageUnsupported(SourceLineNumber sourceLineNumbers, Int16 language, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeLanguageUnsupported, "Could not locate language '{0}' (or a transform for this language) in the merge module '{1}'. This is likely due to an incorrectly authored Merge/@Language attribute.", language, mergeModuleFile); + } + + public static Message MergeModuleExpectedFeature(SourceLineNumber sourceLineNumbers, string mergeId) + { + return Message(sourceLineNumbers, Ids.MergeModuleExpectedFeature, "The merge module '{0}' is not assigned to a feature. All merge modules must be assigned to at least one feature.", mergeId); + } + + public static Message MergePlatformMismatch(SourceLineNumber sourceLineNumbers, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergePlatformMismatch, "'{0}' is a 64-bit merge module but the product consuming it is 32-bit. 32-bit products can consume only 32-bit merge modules.", mergeModuleFile); + } + + public static Message MissingBundleInformation(string data) + { + return Message(null, Ids.MissingBundleInformation, "The Bundle is missing '{0}' data, and cannot continue.", data); + } + + public static Message MissingBundleSearch(SourceLineNumber sourceLineNumbers, string searchId) + { + return Message(sourceLineNumbers, Ids.MissingBundleSearch, "Bundle Search with id '{0}' has no corresponding implementation symbol.", searchId); + } + + public static Message MissingDependencyVersion(string packageId) + { + return Message(null, Ids.MissingDependencyVersion, "The provider dependency version was not authored for the package with Id '{0}'. Please author the Provides/@Version attribute for this package.", packageId); + } + + public static Message MissingEntrySection() + { + return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Supported entry section types are: Product, Bundle, Patch, PatchCreation, Module."); + } + + public static Message MissingEntrySection(string sectionType) + { + return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Expected section of type '{0}'.", sectionType); + } + + public static Message MissingManifestForWin32Assembly(SourceLineNumber sourceLineNumbers, string file, string manifest) + { + return Message(sourceLineNumbers, Ids.MissingManifestForWin32Assembly, "File '{0}' is marked as a Win32 assembly but it refers to assembly manifest '{1}' that is not present in this product.", file, manifest); + } + + public static Message MissingMedia(SourceLineNumber sourceLineNumbers, int diskId) + { + return Message(sourceLineNumbers, Ids.MissingMedia, "There is no media defined for disk id '{0}'. You must author either or .", diskId); + } + + public static Message MissingOrInvalidModuleInstallerVersion(SourceLineNumber sourceLineNumbers, string moduleId, string mergeModuleFile, string productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.MissingOrInvalidModuleInstallerVersion, "The merge module '{0}' from file '{1}' is either missing or has an invalid installer version. The value read from the installer version in module's summary information was '{2}'. This should be a numeric value representing a valid installer version such as 200 or 301.", moduleId, mergeModuleFile, productInstallerVersion); + } + + public static Message MissingPackagePayload(SourceLineNumber sourceLineNumbers, string packageId, string packageType) + { + return Message(sourceLineNumbers, Ids.MissingPackagePayload, "There is no payload defined for package '{0}'. This is specified on the {1}Package element or a child {1}PackagePayload element.", packageId, packageType); + } + + public static Message MissingTableDefinition(string tableName) + { + return Message(null, Ids.MissingTableDefinition, "Cannot find the table definitions for the '{0}' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter.", tableName); + } + + public static Message MissingTypeLibFile(SourceLineNumber sourceLineNumbers, string elementName, string fileElementName) + { + return Message(sourceLineNumbers, Ids.MissingTypeLibFile, "The {0} element is non-advertised and therefore requires a parent {1} element.", elementName, fileElementName); + } + + public static Message MissingValidatorExtension() + { + return Message(null, Ids.MissingValidatorExtension, "The validator requires at least one extension. Add \"ValidatorExtension, Wix\" for the default implementation."); + } + + public static Message MsiTransactionX86BeforeX64(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MsiTransactionX86BeforeX64, "MSI transactions must install all x64 packages before any x86 package."); + } + + public static Message MultipleEntrySections(SourceLineNumber sourceLineNumbers, string sectionName1, string sectionName2) + { + return Message(sourceLineNumbers, Ids.MultipleEntrySections, "Multiple entry sections '{0}' and '{1}' found. Only one entry section may be present in a single target.", sectionName1, sectionName2); + } + + public static Message MultipleEntrySections2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MultipleEntrySections2, "Location of entry section related to previous error."); + } + + public static Message MultipleFilesMatchedWithOutputSpecification(string sourceSpecification, string sourceList) + { + return Message(null, Ids.MultipleFilesMatchedWithOutputSpecification, "A per-source file output specification has been provided ('{0}'), but multiple source files match the source specification ({1}). Specifying a unique output requires that only a single source file match.", sourceSpecification, sourceList); + } + + public static Message MultipleIdentifiersFound(SourceLineNumber sourceLineNumbers, string elementName, string identifier, string mismatchIdentifier) + { + return Message(sourceLineNumbers, Ids.MultipleIdentifiersFound, "Under a '{0}' element, multiple identifiers were found: '{1}' and '{2}'. All search elements under this element must have the same id.", elementName, identifier, mismatchIdentifier); + } + + public static Message MultiplePackagePayloads(SourceLineNumber sourceLineNumbers, string packageId, string packagePayloadId1, string packagePayloadId2) + { + return Message(sourceLineNumbers, Ids.MultiplePackagePayloads, "The package '{0}' has multiple PackagePayloads: '{1}' and '{2}'. This normally happens when the payload is defined on the package element and a child PackagePayload element.", packageId, packagePayloadId1, packagePayloadId2); + } + + public static Message MultiplePackagePayloads2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MultiplePackagePayloads2, "The location of the package payload related to previous error."); + } + + public static Message MultiplePackagePayloads3(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MultiplePackagePayloads3, "The location of the package related to previous error."); + } + + public static Message MultiplePrimaryReferences(SourceLineNumber sourceLineNumbers, string crefChildType, string crefChildId, string crefParentType, string crefParentId, string conflictParentType, string conflictParentId) + { + return Message(sourceLineNumbers, Ids.MultiplePrimaryReferences, "Multiple primary references were found for {0} '{1}' in {2} '{3}' and {4} '{5}'.", crefChildType, crefChildId, crefParentType, crefParentId, conflictParentType, conflictParentId); + } + + public static Message MustSpecifyOutputWithMoreThanOneInput() + { + return Message(null, Ids.MustSpecifyOutputWithMoreThanOneInput, "You must specify an output file using the \"-o\" or \"-out\" switch when you provide more than one input file."); + } + + public static Message NeedSequenceBeforeOrAfter(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.NeedSequenceBeforeOrAfter, "A {0} element must have a Before attribute, After attribute, or a Sequence attribute.", elementName); + } + + public static Message NewRowAddedInTable(SourceLineNumber sourceLineNumbers, string productCode, string tableName, string rowId) + { + return Message(sourceLineNumbers, Ids.NewRowAddedInTable, "Product '{0}': Table '{1}' has a new row '{2}' added. This makes the patch not uninstallable.", productCode, tableName, rowId); + } + + public static Message NoDataForColumn(SourceLineNumber sourceLineNumbers, string columnName, string tableName) + { + return Message(sourceLineNumbers, Ids.NoDataForColumn, "There is no data for column '{0}' in a contained row of custom table '{1}'. A non-null value must be supplied for this column.", columnName, tableName); + } + + public static Message NoDifferencesInTransform(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.NoDifferencesInTransform, "The transform being built did not contain any differences so it could not be created."); + } + + public static Message NoFirstControlSpecified(SourceLineNumber sourceLineNumbers, string dialogName) + { + return Message(sourceLineNumbers, Ids.NoFirstControlSpecified, "The '{0}' dialog element does not have a valid tabbable control. You must either have a tabbable control that is not marked TabSkip='yes', or you must mark a control TabSkip='no'. If you have a page with no tabbable controls (a progress page, for example), you might want to set the first Text control to be TabSkip='no'.", dialogName); + } + + public static Message NonterminatedPreprocessorInstruction(SourceLineNumber sourceLineNumbers, string beginInstruction, string endInstruction) + { + return Message(sourceLineNumbers, Ids.NonterminatedPreprocessorInstruction, "Found a processing instruction without a matching after it.", beginInstruction, endInstruction); + } + + public static Message NoUniqueActionSequenceNumber(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2) + { + return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber, "The {0} table contains an action '{1}' which cannot have a unique sequence number because it is scheduled before or after action '{2}'. There is not enough room before or after this action to assign a unique sequence number. Please schedule one of the actions differently so that it will be in a position with more sequence numbers available. Please note that sequence numbers must be an integer in the range 1 - 32767 (inclusive).", sequenceTableName, actionName1, actionName2); + } + + public static Message NoUniqueActionSequenceNumber2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber2, "The location of the sequenced action related to previous error."); + } + + public static Message OpenDatabaseFailed(string databaseFile) + { + return Message(null, Ids.OpenDatabaseFailed, "Failed to open database '{0}'. Ensure it is a valid database, and it is not open by another process.", databaseFile); + } + + public static Message OrderingReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList) + { + return Message(sourceLineNumbers, Ids.OrderingReferenceLoopDetected, "A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph.", loopList); + } + + public static Message OrphanedComponent(SourceLineNumber sourceLineNumbers, string componentName) + { + return Message(sourceLineNumbers, Ids.OrphanedComponent, "Found orphaned Component '{0}'. If this is a Product, every Component must have at least one parent Feature. To include a Component in a Module, you must include it directly as a Component element of the Module element or indirectly via ComponentRef, ComponentGroup, or ComponentGroupRef elements.", componentName); + } + + public static Message OutputCodepageMismatch(SourceLineNumber sourceLineNumbers, int beforeCodepage, int afterCodepage) + { + return Message(sourceLineNumbers, Ids.OutputCodepageMismatch, "The code pages of the outputs do not match. One output's code page is '{0}' while the other is '{1}'.", beforeCodepage, afterCodepage); + } + + public static Message OutputCodepageMismatch2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.OutputCodepageMismatch2, "The location of the mismatched code page related to the previous warning."); + } + + public static Message OutputTargetNotSpecified() + { + return Message(null, Ids.OutputTargetNotSpecified, "The '-out' or '-o' parameter must specify a file path."); + } + + public static Message OutputTypeMismatch(SourceLineNumber sourceLineNumbers, string beforeOutputType, string afterOutputType) + { + return Message(sourceLineNumbers, Ids.OutputTypeMismatch, "The types of the outputs do not match. One output's type is '{0}' while the other is '{1}'.", beforeOutputType, afterOutputType); + } + + public static Message OverridableActionCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.OverridableActionCollision, "The {0} table contains an action '{1}' that is declared overridable in two different locations. Please remove one of the actions or the Overridable='yes' attribute from one of the actions.", sequenceTableName, actionName); + } + + public static Message OverridableActionCollision2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.OverridableActionCollision2, "The location of the action related to previous error."); + } + + public static Message PackagePayloadUnsupported(SourceLineNumber sourceLineNumbers, string packageType) + { + return Message(sourceLineNumbers, Ids.PackagePayloadUnsupported, "The {0}PackagePayload element can only be used for {0}Packages.", packageType); + } + + public static Message PackagePayloadUnsupported2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.PackagePayloadUnsupported2, "The location of the package related to previous error."); + } + + public static Message ParentElementAttributeRequired(SourceLineNumber sourceLineNumbers, string parentElement, string parentAttribute, string childElement) + { + return Message(sourceLineNumbers, Ids.ParentElementAttributeRequired, "The parent {0} element is missing the {1} attribute that is required for the {2} child element.", parentElement, parentAttribute, childElement); + } + + public static Message PatchNotRemovable() + { + return Message(null, Ids.PatchNotRemovable, "This patch is not uninstallable. The 'Patch' element's attribute 'AllowRemoval' should be set to 'no'."); + } + + public static Message PatchWithoutTransforms() + { + return Message(null, Ids.PatchWithoutTransforms, "No transforms were provided to attach to the patch."); + } + + public static Message PatchWithoutValidTransforms() + { + return Message(null, Ids.PatchWithoutValidTransforms, "No valid transforms were provided to attach to the patch. Check to make sure the transforms you passed on the command line have a matching baseline authored in the patch. Also, make sure there are differences between your target and upgrade."); + } + + public static Message PathCannotContainQuote(string fileName) + { + return Message(null, Ids.PathCannotContainQuote, "Path '{0}' contains a literal quote character. Quotes are often accidentally introduced when trying to refer to a directory path with spaces in it, such as \"C:\\Out Directory\\\" -- the backslash before the quote acts an escape character. The correct representation for that path is: \"C:\\Out Directory\\\\\".", fileName); + } + + public static Message PathTooLong(SourceLineNumber sourceLineNumbers, string fileName) + { + return Message(sourceLineNumbers, Ids.PathTooLong, "'{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.", fileName); + } + + public static Message PayloadMustBeRelativeToCache(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.PayloadMustBeRelativeToCache, "The {0}/@{1} attribute's value, '{2}', is not a relative path.", elementName, attributeName, attributeValue); + } + + public static Message PerUserButAllUsersEquals1(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.PerUserButAllUsersEquals1, "The MSI '{0}' is explicitly marked to not elevate so it must be a per-user package but the ALLUSERS Property is set to '1' creating a per-machine package. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute to be explicit instead.", path); + } + + public static Message PreprocessorError(SourceLineNumber sourceLineNumbers, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorError, "{0}", message); + } + + public static Message PreprocessorExtensionEvaluateFunctionFailed(SourceLineNumber sourceLineNumbers, string prefix, string function, string args, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionEvaluateFunctionFailed, "In the preprocessor extension that handles prefix '{0}' while trying to call function '{1}({2})' and exception has occurred : {3}", prefix, function, args, message); + } + + public static Message PreprocessorExtensionForParameterMissing(SourceLineNumber sourceLineNumbers, string parameterName, string parameterPrefix) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionForParameterMissing, "Could not find the preprocessor extension for parameter '{0}'. A preprocessor extension is expected because the parameter prefix, '{1}', is not one of the standard types: 'env', 'res', 'sys', or 'var'.", parameterName, parameterPrefix); + } + + public static Message PreprocessorExtensionGetVariableValueFailed(SourceLineNumber sourceLineNumbers, string prefix, string variable, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionGetVariableValueFailed, "In the preprocessor extension that handles prefix '{0}' while trying to get the value for variable '{1}' and exception has occured : {2}", prefix, variable, message); + } + + public static Message PreprocessorExtensionPragmaFailed(SourceLineNumber sourceLineNumbers, string pragma, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorExtensionPragmaFailed, "Exception thrown while processing pragma '{0}'. The exception's message is: {1}", pragma, message); + } + + public static Message PreprocessorIllegalForeachVariable(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.PreprocessorIllegalForeachVariable, "The variable named '{0}' is not allowed in a foreach expression.", variableName); + } + + public static Message PreprocessorMissingParameterPrefix(SourceLineNumber sourceLineNumbers, string parameterName) + { + return Message(sourceLineNumbers, Ids.PreprocessorMissingParameterPrefix, "Could not find the prefix in parameter name: '{0}'.", parameterName); + } + + public static Message ProductCodeInvalidForTransform(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ProductCodeInvalidForTransform, "The value '*' is not valid for the ProductCode when used in a transform or in a patch. Copy the ProductCode from your target product MSI into the Product/@Id attribute value for your product authoring."); + } + + public static Message ProgIdNestedTooDeep(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ProgIdNestedTooDeep, "ProgId elements may not be nested more than 1 level deep."); + } + + public static Message RadioButtonBitmapAndIconDisallowed(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RadioButtonBitmapAndIconDisallowed, "RadioButtonGroup elements that contain RadioButton elements with Bitmap or Icon attributes set to \"yes\" can only be specified under a Control element. Move your RadioButtonGroup element as a child of the appropriate Control element."); + } + + public static Message RadioButtonTypeInconsistent(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RadioButtonTypeInconsistent, "All RadioButton elements in a RadioButtonGroup must be consistent with their use of the Bitmap, Icon, and Text attributes. Ensure all of the RadioButton elements in this group have the same attribute specified."); + } + + public static Message ReadOnlyOutputFile(string filePath) + { + return Message(null, Ids.ReadOnlyOutputFile, "Unable to output to file '{0}' because it is marked as read-only.", filePath); + } + + public static Message RealTableMissingPrimaryKeyColumn(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.RealTableMissingPrimaryKeyColumn, "The table '{0}' does not contain any primary key columns. At least one column must be marked as the primary key to ensure this table can be patched.", tableName); + } + + public static Message RecursiveAction(string action, string tableName) + { + return Message(null, Ids.RecursiveAction, "The action '{0}' is recursively placed in the '{1}' table.", action, tableName); + } + + public static Message ReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList) + { + return Message(sourceLineNumbers, Ids.ReferenceLoopDetected, "A circular reference of groups was detected. The infinite loop includes: {0}. Group references must form a directed acyclic graph.", loopList); + } + + public static Message RegistryMultipleValuesWithoutMultiString(SourceLineNumber sourceLineNumbers, string registryElementName, string valueAttributeName, string registryValueElementName, string typeAttributeName) + { + return Message(sourceLineNumbers, Ids.RegistryMultipleValuesWithoutMultiString, "The {0}/@{1} attribute and a {0}/{2} element cannot both be specified. Only one may be specified if the {3} attribute's value is not 'multiString'.", registryElementName, valueAttributeName, registryValueElementName, typeAttributeName); + } + + public static Message RegistryNameValueIncorrect(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.RegistryNameValueIncorrect, "The {0}/@{1} attribute's value, '{2}', is incorrect. It should not contain values of '+', '-', or '*' when the {0}/@Value attribute is empty. Instead, use the proper element and attributes: for Name='+' use RegistryKey/@Action='createKey', for Name='-' use RemoveRegistryKey/@Action='removeOnUninstall', for Name='*' use RegistryKey/@Action='createAndRemoveOnUninstall'.", elementName, attributeName, value); + } + + public static Message RegistryRootInvalid(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RegistryRootInvalid, "Registry/@Root attribute is invalid on a nested Registry element. Either remove the Root attribute or move the Registry element so it is not nested under another Registry element."); + } + + public static Message RegistrySubElementCannotBeRemoved(SourceLineNumber sourceLineNumbers, string registryElementName, string registryValueElementName, string actionAttributeName, string removeValue, string removeKeyOnInstallValue) + { + return Message(sourceLineNumbers, Ids.RegistrySubElementCannotBeRemoved, "The {0}/{1} element cannot be specified if the {2} attribute's value is '{3}' or '{4}'.", registryElementName, registryValueElementName, actionAttributeName, removeValue, removeKeyOnInstallValue); + } + + public static Message RelativePathForRegistryElement(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RelativePathForRegistryElement, "Cannot convert RelativePath into Registry elements."); + } + + public static Message ReservedNamespaceViolation(SourceLineNumber sourceLineNumbers, string element, string attribute, string prefix) + { + return Message(sourceLineNumbers, Ids.ReservedNamespaceViolation, "The {0}/@{1} attribute's value begins with the reserved prefix '{2}'. Some prefixes are reserved by the Windows Installer and WiX toolset for well-known values. Change your attribute's value to not begin with the same prefix.", element, attribute, prefix); + } + + public static Message RootFeatureCannotFollowParent(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RootFeatureCannotFollowParent, "The Feature element specifies a root feature with an illegal InstallDefault value of 'followParent'. Root features cannot follow their parent feature's install state because they don't have a parent feature. Please remove or change the value of the InstallDefault attribute."); + } + + public static Message SameFileIdDifferentSource(SourceLineNumber sourceLineNumbers, string fileId, string sourcePath1, string sourcePath2) + { + return Message(sourceLineNumbers, Ids.SameFileIdDifferentSource, "Two different source paths '{1}' and '{2}' were detected for the same file identifier '{0}'. You must either author these under Media elements with different Id attribute values or in different patches.", fileId, sourcePath1, sourcePath2); + } + + public static Message SamePatchBaselineId(SourceLineNumber sourceLineNumbers, string id) + { + return Message(sourceLineNumbers, Ids.SamePatchBaselineId, "The PatchBaseline/@Id attribute value '{0}' is a child of multiple Media elements. This prevents transforms from being resolved to distinct media. Change the PatchBaseline/@Id attribute values to be unique.", id); + } + + public static Message SchemaValidationFailed(SourceLineNumber sourceLineNumbers, string validationError, int lineNumber, int linePosition) + { + return Message(sourceLineNumbers, Ids.SchemaValidationFailed, "Schema validation failed with the following error at line {1}, column {2}: {0}", validationError, lineNumber, linePosition); + } + + public static Message SearchElementRequired(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.SearchElementRequired, "A '{0}' element must have a search element as a child.", elementName); + } + + public static Message SearchElementRequiredWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.SearchElementRequiredWithAttribute, "A {0} element must have a search element as a child when the {0}/@{1} attribute has the value '{2}'.", elementName, attributeName, attributeValue); + } + + public static Message SearchPropertyNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.SearchPropertyNotUppercase, "The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a search property, it must also be a public property. This means the Property/@Id value must be completely uppercase.", elementName, attributeName, value); + } + + public static Message SecurePropertyNotUppercase(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string propertyId) + { + return Message(sourceLineNumbers, Ids.SecurePropertyNotUppercase, "The {0}/@{1} attribute's value, '{2}', cannot contain lowercase characters. Since this is a secure property, it must also be a public property. This means the Property/@Id value must be completely uppercase.", elementName, attributeName, propertyId); + } + + public static Message SignedEmbeddedCabinet(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.SignedEmbeddedCabinet, "The DigitalSignature element cannot be nested under a Media element which specifies EmbedCab='yes'. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or change the value of the Media/@EmbedCab attribute to 'no'."); + } + + public static Message SingleExtensionSupported() + { + return Message(null, Ids.SingleExtensionSupported, "Multiple extensions were specified on the command line, only a single extension is supported."); + } + + public static Message SmokeMalformedPath() + { + return Message(null, Ids.SmokeMalformedPath, "Path contains one or more invalid characters."); + } + + public static Message SmokeUnknownFileExtension() + { + return Message(null, Ids.SmokeUnknownFileExtension, "Unknown input file format - expected a .msi or .msm file."); + } + + public static Message SmokeUnsupportedFileExtension() + { + return Message(null, Ids.SmokeUnsupportedFileExtension, "Files with an extension of .msp are not currently supported."); + } + + public static Message SpecifiedBinderNotFound(string binderClass) + { + return Message(null, Ids.SpecifiedBinderNotFound, "The specified binder class '{0}' was not found in any extensions.", binderClass); + } + + public static Message SplitCabinetCopyRegistrationFailed(string newCabName, string firstCabName) + { + return Message(null, Ids.SplitCabinetCopyRegistrationFailed, "Failed to register the copy command for cabinet '{0}' formed by splitting cabinet '{1}'.", newCabName, firstCabName); + } + + public static Message SplitCabinetInsertionFailed(string newCabName, string firstCabName, string lastCabinetOfThisSequence) + { + return Message(null, Ids.SplitCabinetInsertionFailed, "Could not find the last split cabinet '{2}' in the Media Table. So failed to add new cabinet '{0}' formed by splitting cabinet '{1}' to the installer package.", newCabName, firstCabName, lastCabinetOfThisSequence); + } + + public static Message SplitCabinetNameCollision(string newCabName, string firstCabName) + { + return Message(null, Ids.SplitCabinetNameCollision, "The cabinet name '{0}' collides with the new cabinet formed by splitting cabinet '{1}', consider renaming cabinet '{0}'.", newCabName, firstCabName); + } + + public static Message StandardActionRelativelyScheduledInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.StandardActionRelativelyScheduledInModule, "The {0} table contains a standard action '{1}' that does not have a sequence number specified. The Sequence attribute is required for standard actions in a merge module. Please remove the action or use the Sequence attribute.", sequenceTableName, actionName); + } + + public static Message StreamNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value, int length, int maximumLength) + { + return Message(sourceLineNumbers, Ids.StreamNameTooLong, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. This is too long because it will be used to create a stream name. It cannot be more than than {4} characters long.", elementName, attributeName, value, length, maximumLength); + } + + public static Message StreamNameTooLong(SourceLineNumber sourceLineNumbers, string tableName, string streamName, int streamLength) + { + return Message(sourceLineNumbers, Ids.StreamNameTooLong, "The binary value in table '{0}' will be stored with a stream name, '{1}', that is {2} characters long. This is too long because the maximum allowed length for a stream name is 62 characters long. Since the stream name is created by concatenating the table name and values of the primary key for a row (delimited by periods), this error can be resolved by shortening a value that is part of the primary key.", tableName, streamName, streamLength); + } + + public static Message StubMissingWixburnSection(string filename) + { + return Message(null, Ids.StubMissingWixburnSection, "Stub executable '{0}' does not contain a .wixburn data section.", filename); + } + + public static Message StubWixburnSectionTooSmall(string filename) + { + return Message(null, Ids.StubWixburnSectionTooSmall, "Stub executable '{0}' .wixburn data section is too small to store the Burn container header.", filename); + } + + public static Message SuppressNonoverridableAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.SuppressNonoverridableAction, "The {0} table contains an action '{1}' that cannot be suppressed because it is not declared overridable in the base definition. Please stop suppressing the action or make it overridable in its base declaration.", sequenceTableName, actionName); + } + + public static Message SuppressNonoverridableAction2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.SuppressNonoverridableAction2, "The location of the non-overridable definition of the action related to previous error."); + } + + public static Message TabbableControlNotAllowedInBillboard(SourceLineNumber sourceLineNumbers, string elementName, string controlType) + { + return Message(sourceLineNumbers, Ids.TabbableControlNotAllowedInBillboard, "A {0} element was specified with Type='{1}' and TabSkip='no'. Tabbable controls are not allowed in Billboards.", elementName, controlType); + } + + public static Message TableDecompilationUnimplemented(string tableName) + { + return Message(null, Ids.TableDecompilationUnimplemented, "Decompilation of the {0} table has not been implemented by its extension.", tableName); + } + + public static Message TableNameTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.TableNameTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for a table name. It cannot be more than than 31 characters long.", elementName, attributeName, value); + } + + public static Message TooDeeplyIncluded(SourceLineNumber sourceLineNumbers, int depth) + { + return Message(sourceLineNumbers, Ids.TooDeeplyIncluded, "Include files cannot be nested more deeply than {0} times. Make sure included files don't accidentally include themselves.", depth); + } + + public static Message TooManyChildren(SourceLineNumber sourceLineNumbers, string elementName, string childElementName) + { + return Message(sourceLineNumbers, Ids.TooManyChildren, "The {0} element contains multiple {1} child elements. There can only be one {1} child element per {0} element.", elementName, childElementName); + } + + public static Message TooManyColumnsInRealTable(string tableName, int columnCount, int supportedColumnCount) + { + return Message(null, Ids.TooManyColumnsInRealTable, "The table '{0}' contains {1} columns which is not supported by Windows Installer. Windows Installer supports a maximum of {2} columns.", tableName, columnCount, supportedColumnCount); + } + + public static Message TooManyElements(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, int expectedInstances) + { + return Message(sourceLineNumbers, Ids.TooManyElements, "The {0} element contains an unexpected child element '{1}'. The '{1}' element may only occur {2} time(s) under the {0} element.", elementName, childElementName, expectedInstances); + } + + public static Message TooManySearchElements(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.TooManySearchElements, "Only one search element can appear under a '{0}' element.", elementName); + } + + public static Message TransformSchemaMismatch() + { + return Message(null, Ids.TransformSchemaMismatch, "The transform schema does not match the database schema. The transform may have been generated from a different database."); + } + + public static Message TypeSpecificationForExtensionRequired(string parameter) + { + return Message(null, Ids.TypeSpecificationForExtensionRequired, "The parameter '{0}' must be followed by the extension's type specification. The type specification should be a fully qualified class and assembly identity, for example: \"MyNamespace.MyClass,myextension.dll\".", parameter); + } + + public static Message UnableToGetAuthenticodeCertOfFile(string filePath, string moreInformation) + { + return Message(null, Ids.UnableToGetAuthenticodeCertOfFile, "Unable to get the authenticode certificate of '{0}'. More information: {1}", filePath, moreInformation); + } + + public static Message UnableToGetAuthenticodeCertOfFileDownlevelOS(string filePath, string moreInformation) + { + return Message(null, Ids.UnableToGetAuthenticodeCertOfFileDownlevelOS, "Unable to get the authenticode certificate of '{0}'. The cryptography API has limitations on Windows XP and Windows Server 2003. More information: {1}", filePath, moreInformation); + } + + public static Message UnableToConvertFieldToNumber(string value) + { + return Message(null, Ids.UnableToConvertFieldToNumber, "Unable to convert intermediate symbol field value '{0}' to a number. This means the intermediate is corrupt or of an unsupported version.", value); + } + + public static Message UnableToOpenModule(SourceLineNumber sourceLineNumbers, string modulePath, string message) + { + return Message(sourceLineNumbers, Ids.UnableToOpenModule, "Unable to open merge module '{0}'. Check to make sure the module language is correct. '{1}'", modulePath, message); + } + + public static Message UnableToReadPackageInformation(SourceLineNumber sourceLineNumbers, string packagePath, string detailedErrorMessage) + { + return Message(sourceLineNumbers, Ids.UnableToReadPackageInformation, "Unable to read package '{0}'. {1}", packagePath, detailedErrorMessage); + } + + public static Message UnauthorizedAccess(string filePath) + { + return Message(null, Ids.UnauthorizedAccess, "Access to the path '{0}' is denied.", filePath); + } + + public static Message UndefinedPreprocessorFunction(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.UndefinedPreprocessorFunction, "Undefined preprocessor function '$({0})'.", variableName); + } + + public static Message UndefinedPreprocessorVariable(SourceLineNumber sourceLineNumbers, string variableName) + { + return Message(sourceLineNumbers, Ids.UndefinedPreprocessorVariable, "Undefined preprocessor variable '$({0})'.", variableName); + } + + public static Message UnexpectedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.UnexpectedAttribute, "The {0} element contains an unexpected attribute '{1}'.", elementName, attributeName); + } + + public static Message UnexpectedColumnCount(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedColumnCount, "A parsed row has more fields that contain data for table '{0}' than are defined. This is potentially because a standard table is being redefined as a custom table or is based on an older table schema.", tableName); + } + + public static Message UnexpectedContentNode(SourceLineNumber sourceLineNumbers, string elementName, string unexpectedNodeType) + { + return Message(sourceLineNumbers, Ids.UnexpectedContentNode, "The {0} element contains an unexpected xml node of type {1}.", elementName, unexpectedNodeType); + } + + public static Message UnexpectedCustomTableColumn(SourceLineNumber sourceLineNumbers, string column) + { + return Message(sourceLineNumbers, Ids.UnexpectedCustomTableColumn, "The custom table column '{0}' is unknown.", column); + } + + public static Message UnexpectedElement(SourceLineNumber sourceLineNumbers, string elementName, string childElementName) + { + return Message(sourceLineNumbers, Ids.UnexpectedElement, "The {0} element contains an unexpected child element '{1}'.", elementName, childElementName); + } + + public static Message UnexpectedElementWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttribute, "The {0} element cannot have a child element '{1}' when attribute '{2}' is set.", elementName, childElementName, attribute); + } + + public static Message UnexpectedElementWithAttribute(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute1, string attribute2, string attribute3, string attribute4) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttribute, "The {0} element cannot have a child element '{1}' when any of attributes '{2}', '{3}', '{4}', or '{5}' are set.", elementName, childElementName, attribute1, attribute2, attribute3, attribute4); + } + + public static Message UnexpectedElementWithAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute, string attributeValue) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttributeValue, "The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}'.", elementName, childElementName, attribute, attributeValue); + } + + public static Message UnexpectedElementWithAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string childElementName, string attribute, string attributeValue1, string attributeValue2) + { + return Message(sourceLineNumbers, Ids.UnexpectedElementWithAttributeValue, "The {0} element cannot have a child element '{1}' unless attribute '{2}' is set to '{3}' or '{4}'.", elementName, childElementName, attribute, attributeValue1, attributeValue2); + } + + public static Message UnexpectedEmptySubexpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnexpectedEmptySubexpression, "The empty subexpression is unexpected in the expression '{0}'.", expression); + } + + public static Message UnexpectedException(Exception exception) + { + return Message(null, Ids.UnexpectedException, exception.ToString()); + } + + public static Message UnexpectedException(string message, string type, string stackTrace) + { + return Message(null, Ids.UnexpectedException, "{0}\r\n\r\nException Type: {1}\r\n\r\nStack Trace:\r\n{2}", message, type, stackTrace); + } + + public static Message UnexpectedExternalUIMessage(string message) + { + return Message(null, Ids.UnexpectedExternalUIMessage, "Error executing unknown ICE action. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: \"{0}\".", message); + } + + public static Message UnexpectedExternalUIMessage(string message, string action) + { + return Message(null, Ids.UnexpectedExternalUIMessage, "Error executing ICE action '{1}'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: \"{0}\".", message, action); + } + + public static Message UnexpectedFileExtension(string fileName, string expectedExtensions) + { + return Message(null, Ids.UnexpectedFileExtension, "The file '{0}' has an unexpected extension. Expected one of the following: '{1}'.", fileName, expectedExtensions); + } + + public static Message UnexpectedFileFormat(string path, string expectedFormat, string actualFormat) + { + return Message(null, Ids.UnexpectedFileFormat, "Unexpected file format loaded from path: {0}. The file was expected to be a {1} but was actually: {2}. Ensure the correct path was provided.", path, expectedFormat.ToLowerInvariant(), actualFormat.ToLowerInvariant()); + } + + public static Message UnexpectedGroupChild(string parentType, string parentId, string childType, string childId) + { + return Message(null, Ids.UnexpectedGroupChild, "A group parent ('{0}'/'{1}') had an unexpected child ('{2}'/'{3}').", parentType, parentId, childType, childId); + } + + public static Message UnexpectedLiteral(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnexpectedLiteral, "An unexpected literal was found in the expression '{0}'.", expression); + } + + public static Message UnexpectedPreprocessorOperator(SourceLineNumber sourceLineNumbers, string op) + { + return Message(sourceLineNumbers, Ids.UnexpectedPreprocessorOperator, "The operator '{0}' is unexpected.", op); + } + + public static Message UnexpectedTableInMergeModule(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInMergeModule, "An unexpected row in the '{0}' table was found in this merge module. Merge modules cannot contain the '{0}' table.", tableName); + } + + public static Message UnexpectedTableInPatch(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInPatch, "An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table.", tableName); + } + + public static Message UnexpectedTableInPatchCreationPackage(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInPatchCreationPackage, "An unexpected row in the '{0}' table was found in this patch creation package. Patch creation packages cannot contain the '{0}' table.", tableName); + } + + public static Message UnhandledExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionAttributeName, string extensionNamespace) + { + return Message(sourceLineNumbers, Ids.UnhandledExtensionAttribute, "The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided.", elementName, extensionAttributeName, extensionNamespace); + } + + public static Message UnhandledExtensionElement(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName, string extensionNamespace) + { + return Message(sourceLineNumbers, Ids.UnhandledExtensionElement, "The {0} element contains an unhandled extension element '{1}'. Please ensure that the extension for elements in the '{2}' namespace has been provided.", elementName, extensionElementName, extensionNamespace); + } + + public static Message UniqueFileSearchIdRequired(SourceLineNumber sourceLineNumbers, string id, string elementName) + { + return Message(sourceLineNumbers, Ids.UniqueFileSearchIdRequired, "The DirectorySearch element '{0}' requires that the child {1} element has a unique Id when the DirectorySearch/@AssignToProperty attribute is set to 'yes'.", id, elementName); + } + + public static Message UnknownCustomTableColumnType(SourceLineNumber sourceLineNumbers, string columnType) + { + return Message(sourceLineNumbers, Ids.UnknownCustomTableColumnType, "Encountered an unknown custom table column type '{0}'.", columnType); + } + + public static Message UnmatchedParenthesisInExpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnmatchedParenthesisInExpression, "The parenthesis don't match in the expression '{0}'.", expression); + } + + public static Message UnmatchedPreprocessorInstruction(SourceLineNumber sourceLineNumbers, string beginInstruction, string endInstruction) + { + return Message(sourceLineNumbers, Ids.UnmatchedPreprocessorInstruction, "Found a processing instruction without a matching before it.", beginInstruction, endInstruction); + } + + public static Message UnmatchedQuotesInExpression(SourceLineNumber sourceLineNumbers, string expression) + { + return Message(sourceLineNumbers, Ids.UnmatchedQuotesInExpression, "The quotes don't match in the expression '{0}'.", expression); + } + + public static Message UnresolvedBindReference(SourceLineNumber sourceLineNumbers, string BindRef) + { + return Message(sourceLineNumbers, Ids.UnresolvedBindReference, "Unresolved bind-time variable {0}.", BindRef); + } + + public static Message UnresolvedReference(SourceLineNumber sourceLineNumbers, string symbolName) + { + return Message(sourceLineNumbers, Ids.UnresolvedReference, "The identifier '{0}' could not be found. Ensure you have typed the reference correctly and that all the necessary inputs are provided to the linker.", symbolName); + } + + public static Message UnresolvedReference(SourceLineNumber sourceLineNumbers, string symbolName, WixToolset.Data.AccessModifier accessModifier) + { + return Message(sourceLineNumbers, Ids.UnresolvedReference, "The identifier '{0}' is inaccessible due to its protection level.", symbolName, accessModifier); + } + + public static Message UnsupportedAllUsersValue(SourceLineNumber sourceLineNumbers, string path, string value) + { + return Message(sourceLineNumbers, Ids.UnsupportedAllUsersValue, "The MSI '{0}' set the ALLUSERS Property to '{0}' which is not supported. Remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead.", path, value); + } + + public static Message UnsupportedExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName) + { + return Message(sourceLineNumbers, Ids.UnsupportedExtensionAttribute, "The {0} element contains an unsupported extension attribute '{1}'. The {0} element does not currently support extension attributes. Is the {1} attribute using the correct XML namespace?", elementName, extensionElementName); + } + + public static Message UnsupportedExtensionElement(SourceLineNumber sourceLineNumbers, string elementName, string extensionElementName) + { + return Message(sourceLineNumbers, Ids.UnsupportedExtensionElement, "The {0} element contains an unsupported extension element '{1}'. The {0} element does not currently support extension elements. Is the {1} element using the correct XML namespace?", elementName, extensionElementName); + } + + public static Message UnsupportedPlatformForElement(SourceLineNumber sourceLineNumbers, string platform, string elementName) + { + return Message(sourceLineNumbers, Ids.UnsupportedPlatformForElement, "The element {1} does not support platform '{0}'. Consider removing the element or using the preprocessor to conditionally include the element based on the platform.", platform, elementName); + } + + public static Message ValidationError(SourceLineNumber sourceLineNumbers, string ice, string message) + { + return Message(sourceLineNumbers, Ids.ValidationError, "{0}: {1}", ice, message); + } + + public static Message ValidationFailedDueToInvalidPackage() + { + return Message(null, Ids.ValidationFailedDueToInvalidPackage, "Failed to open package for validation. The most common cause of this error is validating an x64 package on an x86 system. To fix this error, run validation on an x64 system or disable validation."); + } + + public static Message ValidationFailedDueToLowMsiEngine() + { + return Message(null, Ids.ValidationFailedDueToLowMsiEngine, "The package being validated requires a higher version of Windows Installer than is installed on this machine. Validation cannot continue."); + } + + public static Message ValidationFailedDueToMultilanguageMergeModule() + { + return Message(null, Ids.ValidationFailedDueToMultilanguageMergeModule, "Failed to open merge module for validation. The most common cause of this error is specifying that the merge module supports multiple languages (using the Package/@Languages attribute) but not including language-specific embedded transforms. To fix this error, make the merge module language-neutral, make it language-specific, embed language transforms as specified in the MSI SDK at http://msdn.microsoft.com/library/aa367799.aspx, or disable validation."); + } + + public static Message ValidationFailedToOpenDatabase() + { + return Message(null, Ids.ValidationFailedToOpenDatabase, "Failed to open the database. During validation, this most commonly happens when attempting to open a database using an unsupported code page or a file that is not a valid Windows Installer database. Please use a different code page in Module/@Codepage, Package/@SummaryCodepage, Product/@Codepage, or WixLocalization/@Codepage; or make sure you provide the path to a valid Windows Installer database."); + } + + public static Message ValueAndMaskMustBeSameLength(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ValueAndMaskMustBeSameLength, "The FileTypeMask/@Value and FileTypeMask/@Mask attributes must be the same length."); + } + + public static Message ValueNotSupported(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.ValueNotSupported, "The {0}/@{1} attribute's value, '{2}, is not supported by the Windows Installer.", elementName, attributeName, attributeValue); + } + + public static Message VariableDeclarationCollision(SourceLineNumber sourceLineNumbers, string variableName, string variableValue, string variableCollidingValue) + { + return Message(sourceLineNumbers, Ids.VariableDeclarationCollision, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); + } + + public static Message VersionIndependentProgIdsCannotHaveIcons(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.VersionIndependentProgIdsCannotHaveIcons, "Version independent ProgIds cannot have Icons. Remove the Icon and/or IconIndex attributes from your ProgId element."); + } + + public static Message VersionMismatch(SourceLineNumber sourceLineNumbers, string fileType, string version, string expectedVersion) + { + return Message(sourceLineNumbers, Ids.VersionMismatch, "The {0} file format version {1} is not compatible with the expected {0} file format version {2}.", fileType, version, expectedVersion); + } + + public static Message Win32Exception(int nativeErrorCode, string message) + { + return Message(null, Ids.Win32Exception, "An unexpected Win32 exception with error code 0x{0:X} occurred: {1}", nativeErrorCode, message); + } + + public static Message Win32Exception(int nativeErrorCode, string file, string message) + { + return Message(null, Ids.Win32Exception, "An unexpected Win32 exception with error code 0x{0:X} occurred while accessing file '{1}': {2}", nativeErrorCode, file, message); + } + + public static Message WixFileNotFound(string file) + { + return Message(null, Ids.WixFileNotFound, "The file '{0}' cannot be found.", file); + } + + public static Message WixVariableCollision(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.WixVariableCollision, "The WiX variable '{0}' is declared in more than one location. Please remove one of the declarations.", variableId); + } + + public static Message WixVariableUnknown(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.WixVariableUnknown, "The WiX variable !(wix.{0}) is unknown. Please ensure the variable is declared on the command line for light.exe, via a WixVariable element, or inline using the syntax !(wix.{0}=some value which doesn't contain parenthesis).", variableId); + } + + public static Message WrongFileExtensionForNumberOfInputs(string inputExtension, string input) + { + return Message(null, Ids.WrongFileExtensionForNumberOfInputs, "The extension '{0}' on the input specified '{1}' does not match the number of inputs required to handle an input with this extension. Check if you are missing an input or have too many.", inputExtension, input); + } + + public static Message NoSourceFiles() + { + return Message(null, Ids.NoSourceFiles, "No source files specified."); + } + + public static Message WixiplSourceFileIsExclusive() + { + return Message(null, Ids.WixiplSourceFileIsExclusive, "When an intermediate post link source file is specified, it must be the only source file provided."); + } + + public static Message IntermediatesMustBeCompiled(string invalidIntermediates) + { + return Message(null, Ids.IntermediatesMustBeCompiled, "Intermediates being linked must have been compiled. Intermediates with these ids were not compiled: {0}", invalidIntermediates); + } + + public static Message IntermediatesMustBeResolved(string invalidIntermediate) + { + return Message(null, Ids.IntermediatesMustBeResolved, "Intermediates being bound must have been resolved. This intermediate was not resolved: {0}", invalidIntermediate); + } + + public static Message UnknownSymbolType(string symbolName) + { + return Message(null, Ids.UnknownSymbolType, "Could not deserialize symbol of type type '{0}' because it is not a standard symbol type or one provided by a loaded extension.", symbolName); + } + + public static Message IllegalInnerText(SourceLineNumber sourceLineNumbers, string elementName, string innerText) + { + return Message(sourceLineNumbers, Ids.IllegalInnerText, "The {0} element contains illegal inner text: '{1}'.", elementName, innerText); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Error, (int)id, format, args); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Error, (int)id, resourceManager, resourceName, args); + } + + public enum Ids + { + UnexpectedException = 1, + UnexpectedFileFormat = 2, + CorruptFileFormat = 3, + UnexpectedAttribute = 4, + UnexpectedElement = 5, + IllegalEmptyAttributeValue = 6, + InsufficientVersion = 7, + IllegalIntegerValue = 8, + IllegalGuidValue = 9, + ExpectedAttribute = 10, + SecurePropertyNotUppercase = 11, + SearchPropertyNotUppercase = 12, + StreamNameTooLong = 13, + IllegalIdentifier = 14, + IllegalYesNoValue = 15, + CabCreationFailed = 16, + CabExtractionFailed = 17, + AppIdIncompatibleAdvertiseState = 18, + IllegalAttributeWhenAdvertised = 19, + ConditionExpected = 20, + IllegalAttributeValue = 21, + CustomActionMultipleSources = 22, + CustomActionMultipleTargets = 23, + CustomActionIllegalInnerText = 24, + IllegalShortFilename = 26, + IllegalLongFilename = 27, + TableNameTooLong = 28, + FeatureConfigurableDirectoryNotUppercase = 29, + FeatureCannotFavorAndDisallowAdvertise = 30, + FeatureCannotFollowParentAndFavorLocalOrSource = 31, + MediaEmbeddedCabinetNameTooLong = 32, + RegistrySubElementCannotBeRemoved = 33, + RegistryMultipleValuesWithoutMultiString = 34, + IllegalAttributeWithOtherAttribute = 35, + IllegalAttributeWithOtherAttributes = 36, + IllegalAttributeWithoutOtherAttributes = 37, + IllegalAttributeValueWithoutOtherAttribute = 38, + IntegralValueSentinelCollision = 39, + ExampleGuid = 40, + TooManyChildren = 41, + ComponentMultipleKeyPaths = 42, + CabClosureFailed = 43, + ExpectedAttributes = 44, + ExpectedAttributesWithOtherAttribute = 45, + ExpectedAttributesWithoutOtherAttribute = 46, + MissingTypeLibFile = 47, + InvalidDocumentElement = 48, + ExpectedAttributeInElementOrParent = 49, + UnauthorizedAccess = 50, + IllegalModuleExclusionLanguageAttributes = 51, + NoFirstControlSpecified = 52, + NoDataForColumn = 53, + ValueAndMaskMustBeSameLength = 54, + TooManySearchElements = 55, + IllegalAttributeExceptOnElement = 56, + SearchElementRequired = 57, + MultipleIdentifiersFound = 58, + AdvertiseStateMustMatch = 59, + DuplicateContextValue = 60, + RelativePathForRegistryElement = 61, + IllegalAttributeWhenNested = 62, + ExpectedElement = 63, + RegistryRootInvalid = 64, + IllegalYesNoDefaultValue = 65, + IllegalAttributeInMergeModule = 66, + GenericReadNotAllowed = 67, + IllegalAttributeWithInnerText = 68, + SearchElementRequiredWithAttribute = 69, + CannotAuthorSpecialProperties = 70, + NeedSequenceBeforeOrAfter = 72, + ValueNotSupported = 73, + TabbableControlNotAllowedInBillboard = 74, + CheckBoxValueOnlyValidWithCheckBox = 75, + CabFileDoesNotExist = 76, + RadioButtonTypeInconsistent = 77, + RadioButtonBitmapAndIconDisallowed = 78, + IllegalSuppressWarningId = 79, + PreprocessorIllegalForeachVariable = 80, + PreprocessorMissingParameterPrefix = 81, + PreprocessorExtensionForParameterMissing = 82, + CannotFindFile = 83, + BinderFileManagerMissingFile = 84, + InvalidFileName = 85, + ReferenceLoopDetected = 86, + GuidContainsLowercaseLetters = 87, + InvalidDateTimeFormat = 88, + MultipleEntrySections = 89, + MultipleEntrySections2 = 90, + DuplicateSymbol = 91, + DuplicateSymbol2 = 92, + MissingEntrySection = 93, + UnresolvedReference = 94, + MultiplePrimaryReferences = 95, + ComponentReferencedTwice = 96, + DuplicateModuleFileIdentifier = 97, + DuplicateModuleCaseInsensitiveFileIdentifier = 98, + ImplicitComponentKeyPath = 99, + DuplicateLocalizationIdentifier = 100, + LocalizationVariableUnknown = 102, + FileNotFound = 103, + InvalidXml = 104, + ProgIdNestedTooDeep = 105, + CanNotHaveTwoParents = 106, + SchemaValidationFailed = 107, + IllegalVersionValue = 108, + CustomTableNameTooLong = 109, + CustomTableIllegalColumnWidth = 110, + CustomTableMissingPrimaryKey = 111, + TypeSpecificationForExtensionRequired = 113, + FilePathRequired = 114, + DirectoryPathRequired = 115, + FileOrDirectoryPathRequired = 116, + PathCannotContainQuote = 117, + AdditionalArgumentUnexpected = 118, + RegistryNameValueIncorrect = 119, + FamilyNameTooLong = 120, + IllegalFamilyName = 121, + IllegalLongValue = 122, + IntegralValueOutOfRange = 123, + DuplicateExtensionXmlSchemaNamespace = 125, + DuplicateExtensionTable = 126, + DuplicateExtensionPreprocessorType = 127, + FileInUse = 128, + CannotOpenMergeModule = 129, + DuplicatePrimaryKey = 130, + FileIdentifierNotFound = 131, + InvalidAssemblyFile = 132, + ExpectedEndElement = 133, + IllegalCodepage = 134, + ExpectedMediaCabinet = 135, + InvalidIdt = 136, + InvalidSequenceTable = 137, + ExpectedDirectory = 138, + ComponentExpectedFeature = 139, + RecursiveAction = 140, + VersionMismatch = 141, + UnexpectedContentNode = 142, + UnexpectedColumnCount = 143, + InvalidExtension = 144, + InvalidSubExpression = 145, + UnmatchedPreprocessorInstruction = 146, + NonterminatedPreprocessorInstruction = 147, + ExpectedExpressionAfterNot = 148, + InvalidPreprocessorVariable = 149, + UndefinedPreprocessorVariable = 150, + IllegalDefineStatement = 151, + VariableDeclarationCollision = 152, + CannotReundefineVariable = 153, + IllegalForeach = 154, + IllegalParentAttributeWhenNested = 155, + ExpectedEndforeach = 156, + UnmatchedQuotesInExpression = 158, + UnmatchedParenthesisInExpression = 159, + ExpectedVariable = 160, + UnexpectedLiteral = 161, + IllegalIntegerInExpression = 162, + UnexpectedPreprocessorOperator = 163, + UnexpectedEmptySubexpression = 164, + UnexpectedCustomTableColumn = 165, + UnknownCustomTableColumnType = 166, + IllegalFileCompressionAttributes = 167, + OverridableActionCollision = 168, + OverridableActionCollision2 = 169, + ActionCollision = 170, + ActionCollision2 = 171, + SuppressNonoverridableAction = 172, + SuppressNonoverridableAction2 = 173, + CustomActionSequencedInModule = 174, + StandardActionRelativelyScheduledInModule = 175, + ActionCircularDependency = 176, + ActionScheduledRelativeToTerminationAction = 177, + ActionScheduledRelativeToTerminationAction2 = 178, + NoUniqueActionSequenceNumber = 179, + NoUniqueActionSequenceNumber2 = 180, + ActionScheduledRelativeToItself = 181, + MissingTableDefinition = 182, + ExpectedRowInPatchCreationPackage = 183, + UnexpectedTableInMergeModule = 184, + UnexpectedTableInPatchCreationPackage = 185, + MergeExcludedModule = 186, + MergeFeatureRequired = 187, + MergeLanguageFailed = 188, + MergeLanguageUnsupported = 189, + TableDecompilationUnimplemented = 190, + CannotDefaultMismatchedAdvertiseStates = 191, + VersionIndependentProgIdsCannotHaveIcons = 192, + IllegalAttributeValueWithOtherAttribute = 193, + InvalidMergeLanguage = 194, + WixVariableCollision = 195, + ExpectedWixVariableValue = 196, + WixVariableUnknown = 197, + IllegalWixVariablePrefix = 198, + InvalidWixXmlNamespace = 199, + UnhandledExtensionElement = 200, + UnhandledExtensionAttribute = 201, + UnsupportedExtensionAttribute = 202, + UnsupportedExtensionElement = 203, + ValidationError = 204, + IllegalRootDirectory = 205, + IllegalTargetDirDefaultDir = 206, + TooManyElements = 207, + ExpectedBinaryCategory = 208, + RootFeatureCannotFollowParent = 209, + FeatureNameTooLong = 210, + SignedEmbeddedCabinet = 211, + ExpectedSignedCabinetName = 212, + IllegalInlineLocVariable = 213, + MergeModuleExpectedFeature = 215, + Win32Exception = 216, + UnexpectedExternalUIMessage = 217, + IllegalCabbingThreadCount = 218, + IllegalEnvironmentVariable = 219, + InvalidKeyColumn = 220, + CollidingModularizationTypes = 221, + CubeFileNotFound = 222, + OpenDatabaseFailed = 223, + OutputTypeMismatch = 224, + RealTableMissingPrimaryKeyColumn = 225, + IllegalColumnName = 226, + NoDifferencesInTransform = 227, + OutputCodepageMismatch = 228, + OutputCodepageMismatch2 = 229, + IllegalComponentWithAutoGeneratedGuid = 230, + IllegalPathForGeneratedComponentGuid = 231, + IllegalTerminalServerCustomActionAttributes = 232, + IllegalPropertyCustomActionAttributes = 233, + InvalidPreprocessorFunction = 234, + UndefinedPreprocessorFunction = 235, + PreprocessorExtensionEvaluateFunctionFailed = 236, + PreprocessorExtensionGetVariableValueFailed = 237, + InvalidManifestContent = 238, + InvalidWixTransform = 239, + UnexpectedFileExtension = 240, + UnexpectedTableInPatch = 241, + InvalidProductVersion = 242, + InvalidKeypathChange = 243, + MissingValidatorExtension = 244, + InvalidValidatorMessageType = 245, + PatchWithoutTransforms = 246, + SingleExtensionSupported = 247, + DuplicateTransform = 248, + BaselineRequired = 249, + PreprocessorError = 250, + ExpectedArgument = 251, + PatchWithoutValidTransforms = 252, + ExpectedDecompiler = 253, + ExpectedTableInMergeModule = 254, + UnexpectedElementWithAttributeValue = 255, + ExpectedPatchIdInWixMsp = 256, + ExpectedMediaRowsInWixMsp = 257, + WixFileNotFound = 258, + ExpectedClientPatchIdInWixMsp = 259, + NewRowAddedInTable = 260, + PatchNotRemovable = 261, + PathTooLong = 262, + FileTooLarge = 263, + InvalidPlatformParameter = 264, + InvalidPlatformValue = 265, + IllegalValidationArguments = 266, + OrphanedComponent = 267, + IllegalCommandlineArgumentCombination = 268, + ProductCodeInvalidForTransform = 269, + InsertInvalidSequenceActionOrder = 270, + InsertSequenceNoSpace = 271, + MissingManifestForWin32Assembly = 272, + UnableToOpenModule = 273, + ExpectedAttributeWhenElementNotUnderElement = 274, + IllegalIdentifierLooksLikeFormatted = 275, + IllegalCodepageAttribute = 276, + IllegalCompressionLevel = 277, + TransformSchemaMismatch = 278, + DatabaseSchemaMismatch = 279, + ExpectedDirectoryGotFile = 280, + ExpectedFileGotDirectory = 281, + GacAssemblyNoStrongName = 282, + FileWriteError = 283, + InvalidCommandLineFileName = 284, + ExpectedParentWithAttribute = 285, + IllegalWarningIdAsError = 286, + ExpectedAttributeOrElement = 287, + DuplicateVariableDefinition = 288, + InvalidVariableDefinition = 289, + DuplicateCabinetName = 290, + DuplicateCabinetName2 = 291, + InvalidAddedFileRowWithoutSequence = 292, + DuplicateFileId = 293, + FullTempDirectory = 294, + CreateCabAddFileFailed = 296, + CreateCabInsufficientDiskSpace = 297, + UnresolvedBindReference = 298, + GACAssemblyIdentityWarning = 299, + IllegalCharactersInPath = 300, + ValidationFailedToOpenDatabase = 301, + MustSpecifyOutputWithMoreThanOneInput = 302, + IllegalSearchIdForParentDepth = 303, + IdentifierTooLongError = 304, + InvalidRemoveComponent = 305, + FinishCabFailed = 306, + InvalidExtensionType = 307, + ValidationFailedDueToMultilanguageMergeModule = 309, + ValidationFailedDueToInvalidPackage = 310, + InvalidStringForCodepage = 311, + InvalidEmbeddedUIFileName = 312, + UniqueFileSearchIdRequired = 313, + IllegalAttributeValueWhenNested = 314, + AdminImageRequired = 315, + SamePatchBaselineId = 316, + SameFileIdDifferentSource = 317, + HarvestSourceNotSpecified = 318, + OutputTargetNotSpecified = 319, + DuplicateCommandLineOptionInExtension = 320, + HarvestTypeNotFound = 321, + BothUpgradeCodesRequired = 322, + IllegalBinderClassName = 323, + SpecifiedBinderNotFound = 324, + CannotLoadBinderFileManager = 325, + CannotLoadLinkerExtension = 326, + UnableToGetAuthenticodeCertOfFile = 327, + UnableToGetAuthenticodeCertOfFileDownlevelOS = 328, + ReadOnlyOutputFile = 329, + CannotDefaultComponentId = 330, + ParentElementAttributeRequired = 331, + PreprocessorExtensionPragmaFailed = 333, + InvalidPreprocessorPragma = 334, + SmokeUnknownFileExtension = 335, + SmokeUnsupportedFileExtension = 336, + SmokeMalformedPath = 337, + InvalidStubExe = 338, + StubMissingWixburnSection = 339, + StubWixburnSectionTooSmall = 340, + MissingBundleInformation = 341, + UnexpectedGroupChild = 342, + OrderingReferenceLoopDetected = 343, + IdentifierNotFound = 344, + MergePlatformMismatch = 345, + IllegalRelativeLongFilename = 346, + IllegalAttributeValueWithLegalList = 347, + IllegalAttributeValueWithIllegalList = 348, + InvalidSummaryInfoCodePage = 349, + ValidationFailedDueToLowMsiEngine = 350, + DuplicateSourcesForOutput = 351, + UnableToReadPackageInformation = 352, + MultipleFilesMatchedWithOutputSpecification = 353, + InvalidBundle = 354, + BundleTooNew = 355, + WrongFileExtensionForNumberOfInputs = 356, + MediaTableCollision = 357, + InvalidCabinetTemplate = 358, + MaximumUncompressedMediaSizeTooLarge = 359, + ReservedNamespaceViolation = 362, + PerUserButAllUsersEquals1 = 363, + UnsupportedAllUsersValue = 364, + DisallowedMsiProperty = 365, + MissingOrInvalidModuleInstallerVersion = 366, + IllegalGeneratedGuidComponentUnversionedKeypath = 367, + IllegalGeneratedGuidComponentVersionedNonkeypath = 368, + DuplicateComponentGuids = 369, + DuplicateProviderDependencyKey = 370, + MissingDependencyVersion = 371, + UnexpectedElementWithAttribute = 372, + ExpectedAttributeWithElement = 373, + DuplicatedUiLocalization = 374, + MaximumCabinetSizeForLargeFileSplittingTooLarge = 375, + SplitCabinetCopyRegistrationFailed = 376, + SplitCabinetNameCollision = 377, + SplitCabinetInsertionFailed = 378, + InvalidPreprocessorFunctionAutoVersion = 379, + InvalidModuleOrBundleVersion = 380, + UnsupportedPlatformForElement = 381, + MissingMedia = 382, + IllegalYesNoAlwaysValue = 384, + TooDeeplyIncluded = 385, + TooManyColumnsInRealTable = 386, + InlineDirectorySyntaxRequiresPath = 387, + InsecureBundleFilename = 388, + PayloadMustBeRelativeToCache = 389, + MsiTransactionX86BeforeX64 = 390, + NoSourceFiles = 391, + WixiplSourceFileIsExclusive = 392, + UnableToConvertFieldToNumber = 393, + CouldNotDetermineProductCodeFromTransformSummaryInfo = 394, + IntermediatesMustBeCompiled = 395, + IntermediatesMustBeResolved = 396, + MissingBundleSearch = 397, + CircularSearchReference = 398, + UnknownSymbolType = 399, + IllegalInnerText = 400, + ExpectedAttributeWithValueWithOtherAttribute = 401, + PackagePayloadUnsupported = 402, + PackagePayloadUnsupported2 = 403, + MultiplePackagePayloads = 404, + MultiplePackagePayloads2 = 405, + MultiplePackagePayloads3 = 406, + MissingPackagePayload = 407, + ExpectedAttributeWithoutOtherAttributes = 408, + } + } +} diff --git a/src/api/wix/WixToolset.Data/ISymbolDefinitionCreator.cs b/src/api/wix/WixToolset.Data/ISymbolDefinitionCreator.cs new file mode 100644 index 00000000..93b10ce8 --- /dev/null +++ b/src/api/wix/WixToolset.Data/ISymbolDefinitionCreator.cs @@ -0,0 +1,11 @@ +// 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. + +namespace WixToolset.Data +{ + public interface ISymbolDefinitionCreator + { + void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition); + + bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition); + } +} diff --git a/src/api/wix/WixToolset.Data/Identifier.cs b/src/api/wix/WixToolset.Data/Identifier.cs new file mode 100644 index 00000000..8333198f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Identifier.cs @@ -0,0 +1,77 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using SimpleJson; + + /// + /// Class to define the identifier and access for a symbol. + /// + [DebuggerDisplay("{Access} {Id,nq}")] + public class Identifier + { + public static Identifier Invalid = new Identifier(AccessModifier.Section, (string)null); + + [Obsolete] + public Identifier(string id, AccessModifier access) + { + this.Id = id; + this.Access = access; + } + + public Identifier(AccessModifier access, string id) + { + this.Access = access; + this.Id = id; + } + + public Identifier(AccessModifier access, params string[] ids) + { + this.Access = access; + this.Id = String.Join("/", ids); + } + + public Identifier(AccessModifier access, params object[] ids) + { + this.Access = access; + this.Id = String.Join("/", ids); + } + + public Identifier(AccessModifier access, int id) + { + this.Access = access; + this.Id = id.ToString(); + } + + /// + /// Access modifier for a symbol. + /// + public AccessModifier Access { get; } + + /// + /// Identifier for the symbol. + /// + public string Id { get; } + + internal static Identifier Deserialize(JsonObject jsonObject) + { + var id = jsonObject.GetValueOrDefault("id"); + var accessValue = jsonObject.GetValueOrDefault("access", "global"); + + return new Identifier(accessValue.AsAccessModifier(), id); + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "id", this.Id }, + { "access", this.Access.AsString() } + }; + + return jsonObject; + } + } +} diff --git a/src/api/wix/WixToolset.Data/Intermediate.cs b/src/api/wix/WixToolset.Data/Intermediate.cs new file mode 100644 index 00000000..64f9810d --- /dev/null +++ b/src/api/wix/WixToolset.Data/Intermediate.cs @@ -0,0 +1,484 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Reflection; + using SimpleJson; + + /// + /// Container class for an intermediate object. + /// + public sealed class Intermediate + { + private static readonly Version CurrentVersion = new Version("4.0.0.0"); + private const string WixOutputStreamName = "wix-ir.json"; + + private readonly Dictionary localizationsByCulture; + private readonly List sections; + + /// + /// Instantiate a new Intermediate. + /// + public Intermediate() + { + this.Id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); + this.localizationsByCulture = new Dictionary(StringComparer.OrdinalIgnoreCase); + this.sections = new List(); + } + + public Intermediate(string id, IEnumerable sections, IDictionary localizationsByCulture) : this(id, level: null, sections, localizationsByCulture) + { + } + + public Intermediate(string id, string level, IEnumerable sections, IDictionary localizationsByCulture) + { + this.Id = id; + this.Level = level; + this.localizationsByCulture = (localizationsByCulture != null) ? new Dictionary(localizationsByCulture, StringComparer.OrdinalIgnoreCase) : new Dictionary(StringComparer.OrdinalIgnoreCase); + this.sections = (sections != null) ? new List(sections) : new List(); + } + + /// + /// Get the id for the intermediate. + /// + public string Id { get; } + + /// + /// Get the level of the intermediate. + /// + public string Level { get; private set; } + + /// + /// Get the localizations contained in this intermediate. + /// + public IReadOnlyCollection Localizations => this.localizationsByCulture.Values; + + /// + /// Get the sections contained in this intermediate. + /// + public IReadOnlyCollection Sections => this.sections; + + /// + /// Loads an intermediate from a path on disk. + /// + /// Path to intermediate file saved on disk. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(string path, bool suppressVersionCheck = false) + { + var creator = new SimpleSymbolDefinitionCreator(); + return Intermediate.Load(path, creator, suppressVersionCheck); + } + + /// + /// Loads an intermediate from a stream. + /// + /// Assembly with intermediate embedded in resource stream. + /// Name of resource stream. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(Assembly assembly, string resourceName, bool suppressVersionCheck = false) + { + var creator = new SimpleSymbolDefinitionCreator(); + return Intermediate.Load(assembly, resourceName, creator, suppressVersionCheck); + } + + /// + /// Loads an intermediate from a stream. + /// + /// Assembly with intermediate embedded in resource stream. + /// Name of resource stream. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(Assembly assembly, string resourceName, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) + { + using (var wixout = WixOutput.Read(assembly, resourceName)) + { + return Intermediate.LoadIntermediate(wixout, creator, suppressVersionCheck); + } + } + + /// + /// Loads an intermediate from a path on disk. + /// + /// Path to intermediate file saved on disk. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(string path, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) + { + using (var wixout = WixOutput.Read(path)) + { + return Intermediate.LoadIntermediate(wixout, creator, suppressVersionCheck); + } + } + + /// + /// Loads an intermediate from a WixOutput object. + /// + /// WixOutput object. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(WixOutput wixOutput, bool suppressVersionCheck = false) + { + var creator = new SimpleSymbolDefinitionCreator(); + return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); + } + + /// + /// Loads an intermediate from a WixOutput object. + /// + /// WixOutput object. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + public static Intermediate Load(WixOutput wixOutput, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) + { + return Intermediate.LoadIntermediate(wixOutput, creator, suppressVersionCheck); + } + + /// + /// Loads several intermediates from paths on disk using the same definitions. + /// + /// Paths to intermediate files saved on disk. + /// Returns the loaded intermediates + public static IReadOnlyList Load(IEnumerable intermediateFiles) + { + var creator = new SimpleSymbolDefinitionCreator(); + return Intermediate.Load(intermediateFiles, creator); + } + + /// + /// Loads several intermediates from paths on disk using the same definitions. + /// + /// Paths to intermediate files saved on disk. + /// ISymbolDefinitionCreator to use when reconstituting the intermediates. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediates + public static IReadOnlyList Load(IEnumerable intermediateFiles, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) + { + var jsons = new Queue(); + var intermediates = new List(); + + foreach (var path in intermediateFiles) + { + using (var wixout = WixOutput.Read(path)) + { + var data = wixout.GetData(WixOutputStreamName); + var json = Intermediate.LoadJson(data, wixout.Uri, suppressVersionCheck); + + Intermediate.LoadDefinitions(json, creator); + + jsons.Enqueue(new JsonWithPath { Json = json, Path = wixout.Uri }); + } + } + + while (jsons.Count > 0) + { + var jsonWithPath = jsons.Dequeue(); + + var intermediate = Intermediate.FinalizeLoad(jsonWithPath.Json, jsonWithPath.Path, creator); + + intermediates.Add(intermediate); + } + + return intermediates; + } + + /// + /// Adds a section to the intermedaite. + /// + /// Section to add to the intermediate. + /// Section added to the intermediate. + public IntermediateSection AddSection(IntermediateSection section) + { + this.sections.Add(section); + return section; + } + + /// + /// Removes a section from the intermediate. + /// + /// Section to remove. + /// True if the section was removed; otherwise false. + public bool RemoveSection(IntermediateSection section) + { + return this.sections.Remove(section); + } + + /// + /// Updates the intermediate level to the specified level. + /// + /// Intermediate level. + public void UpdateLevel(string level) + { + this.Level = String.IsNullOrEmpty(this.Level) ? level : String.Concat(this.Level, ";", level); + } + + /// + /// Returns whether a specifed intermediate level has been set for this intermediate. + /// + /// Intermediate level. + /// True if the specifed intermediate level has been set for this intermediate. + public bool HasLevel(string level) + { + return this.Level?.Contains(level) == true; + } + + /// + /// Saves an intermediate to a path on disk. + /// + /// Path to save intermediate file to disk. + public void Save(string path) + { + Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); + + using (var wixout = WixOutput.Create(path)) + { + this.Save(wixout); + } + } + + /// + /// Saves an intermediate to a WixOutput. + /// + /// Destination to save. + public void Save(WixOutput wixout) + { + this.SaveEmbedFiles(wixout); + + this.SaveIR(wixout); + } + + /// + /// Loads an intermediate from a WixOutput. + /// + /// Source to load from. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded intermediate. + private static Intermediate LoadIntermediate(WixOutput wixout, ISymbolDefinitionCreator creator, bool suppressVersionCheck = false) + { + var data = wixout.GetData(WixOutputStreamName); + var json = Intermediate.LoadJson(data, wixout.Uri, suppressVersionCheck); + + Intermediate.LoadDefinitions(json, creator); + + return Intermediate.FinalizeLoad(json, wixout.Uri, creator); + } + + /// + /// Loads json form of intermediate. + /// + /// Source to load from. + /// Path name of intermediate file. + /// Suppress checking for wix.dll version mismatches. + /// Returns the loaded json. + private static JsonObject LoadJson(string json, Uri baseUri, bool suppressVersionCheck) + { + var jsonObject = SimpleJson.DeserializeObject(json) as JsonObject; + + if (!suppressVersionCheck) + { + var versionJson = jsonObject.GetValueOrDefault("version"); + + if (!Version.TryParse(versionJson, out var version) || !Intermediate.CurrentVersion.Equals(version)) + { + throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(baseUri.AbsoluteUri), "intermediate", versionJson, Intermediate.CurrentVersion.ToString())); + } + } + + return jsonObject; + } + + /// + /// Loads custom definitions in intermediate json into the creator. + /// + /// Json version of intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. + private static void LoadDefinitions(JsonObject json, ISymbolDefinitionCreator creator) + { + var definitionsJson = json.GetValueOrDefault("definitions"); + + if (definitionsJson != null) + { + foreach (JsonObject definitionJson in definitionsJson) + { + var definition = IntermediateSymbolDefinition.Deserialize(definitionJson); + creator.AddCustomSymbolDefinition(definition); + } + } + } + + /// + /// Loads the sections and localization for the intermediate. + /// + /// Json version of intermediate. + /// Path to the intermediate. + /// ISymbolDefinitionCreator to use when reconstituting the intermediate. + /// The finalized intermediate. + private static Intermediate FinalizeLoad(JsonObject json, Uri baseUri, ISymbolDefinitionCreator creator) + { + var id = json.GetValueOrDefault("id"); + var level = json.GetValueOrDefault("level"); + + var sections = new List(); + + var sectionsJson = json.GetValueOrDefault("sections"); + foreach (JsonObject sectionJson in sectionsJson) + { + var section = IntermediateSection.Deserialize(creator, baseUri, sectionJson); + sections.Add(section); + } + + var localizations = new Dictionary(StringComparer.OrdinalIgnoreCase); + + var localizationsJson = json.GetValueOrDefault("localizations") ?? new JsonArray(); + foreach (JsonObject localizationJson in localizationsJson) + { + var localization = Localization.Deserialize(localizationJson); + localizations.Add(localization.Culture, localization); + } + + return new Intermediate(id, level, sections, localizations); + } + + private void SaveEmbedFiles(WixOutput wixout) + { + var embeddedFields = this.Sections.SelectMany(s => s.Symbols) + .SelectMany(t => t.Fields) + .Where(f => f?.Type == IntermediateFieldType.Path) + .Select(f => f.AsPath()) + .Where(f => f.Embed) + .ToList(); + + var savedEmbedFields = new Dictionary(StringComparer.OrdinalIgnoreCase); + var uniqueEntryNames = new HashSet(StringComparer.OrdinalIgnoreCase); + + foreach (var embeddedField in embeddedFields) + { + var key = String.Concat(embeddedField.BaseUri?.AbsoluteUri, "?", embeddedField.Path); + + if (savedEmbedFields.TryGetValue(key, out var existing)) + { + embeddedField.Path = existing.Path; + } + else + { + var entryName = CalculateUniqueEntryName(uniqueEntryNames, embeddedField.Path); + + if (embeddedField.BaseUri == null) + { + wixout.ImportDataStream(entryName, embeddedField.Path); + } + else // open the container specified in baseUri and copy the correct stream out of it. + { + using (var otherWixout = WixOutput.Read(embeddedField.BaseUri)) + using (var stream = otherWixout.GetDataStream(embeddedField.Path)) + using (var target = wixout.CreateDataStream(entryName)) + { + stream.CopyTo(target); + } + } + + embeddedField.Path = entryName; + + savedEmbedFields.Add(key, embeddedField); + } + } + } + + private void SaveIR(WixOutput wixout) + { + using (var writer = new StreamWriter(wixout.CreateDataStream(WixOutputStreamName))) + { + var jsonObject = new JsonObject + { + { "id", this.Id }, + { "level", this.Level }, + { "version", Intermediate.CurrentVersion.ToString() } + }; + + var sectionsJson = new JsonArray(this.Sections.Count); + foreach (var section in this.Sections) + { + var sectionJson = section.Serialize(); + sectionsJson.Add(sectionJson); + } + + jsonObject.Add("sections", sectionsJson); + + var customDefinitions = this.GetCustomDefinitionsInSections(); + + if (customDefinitions.Count > 0) + { + var customDefinitionsJson = new JsonArray(customDefinitions.Count); + + foreach (var kvp in customDefinitions.OrderBy(d => d.Key)) + { + var customDefinitionJson = kvp.Value.Serialize(); + customDefinitionsJson.Add(customDefinitionJson); + } + + jsonObject.Add("definitions", customDefinitionsJson); + } + + if (this.Localizations.Any()) + { + var localizationsJson = new JsonArray(); + foreach (var localization in this.Localizations) + { + var localizationJson = localization.Serialize(); + localizationsJson.Add(localizationJson); + } + + jsonObject.Add("localizations", localizationsJson); + } + + var json = SimpleJson.SerializeObject(jsonObject); + writer.Write(json); + } + } + + private static string CalculateUniqueEntryName(ISet entryNames, string path) + { + var filename = Path.GetFileName(path); + var entryName = "wix-ir/" + filename; + var i = 0; + + while (!entryNames.Add(entryName)) + { + entryName = $"wix-ir/{filename}-{++i}"; + } + + return entryName; + } + + private Dictionary GetCustomDefinitionsInSections() + { + var customDefinitions = new Dictionary(); + + foreach (var symbol in this.Sections.SelectMany(s => s.Symbols).Where(t => t.Definition.Type == SymbolDefinitionType.MustBeFromAnExtension)) + { + if (!customDefinitions.ContainsKey(symbol.Definition.Name)) + { + customDefinitions.Add(symbol.Definition.Name, symbol.Definition); + } + } + + return customDefinitions; + } + + private struct JsonWithPath + { + public JsonObject Json { get; set; } + + public Uri Path { get; set; } + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateField.cs b/src/api/wix/WixToolset.Data/IntermediateField.cs new file mode 100644 index 00000000..2310f447 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateField.cs @@ -0,0 +1,56 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using SimpleJson; + + [DebuggerDisplay("Name={Name,nq} Type={Type} Value={Value?.AsString()}")] + public class IntermediateField + { + public IntermediateField(IntermediateFieldDefinition definition) => this.Definition = definition; + + public IntermediateFieldDefinition Definition { get; } + + public string Name => this.Definition.Name; + + public IntermediateFieldType Type => this.Definition.Type; + + public string Context => this.Value?.Context; + + public IntermediateFieldValue PreviousValue => this.Value?.PreviousValue; + + internal IntermediateFieldValue Value { get; set; } + + public static explicit operator bool(IntermediateField field) => field.AsBool(); + + public static explicit operator bool? (IntermediateField field) => field.AsNullableBool(); + + public static explicit operator long(IntermediateField field) => field.AsLargeNumber(); + + public static explicit operator long?(IntermediateField field) => field.AsNullableLargeNumber(); + + public static explicit operator int(IntermediateField field) => field.AsNumber(); + + public static explicit operator int? (IntermediateField field) => field.AsNullableNumber(); + + public static explicit operator string(IntermediateField field) => field.AsString(); + + internal static IntermediateField Deserialize(IntermediateFieldDefinition definition, Uri baseUri, JsonObject jsonObject) + { + IntermediateField field = null; + + if (jsonObject != null) + { + field = new IntermediateField(definition); + + field.Value = IntermediateFieldValue.Deserialize(jsonObject, baseUri, definition.Type); + } + + return field; + } + + internal JsonObject Serialize() => this.Value?.Serialize(); + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateFieldContext.cs b/src/api/wix/WixToolset.Data/IntermediateFieldContext.cs new file mode 100644 index 00000000..785a959f --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateFieldContext.cs @@ -0,0 +1,38 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public class IntermediateFieldContext : IDisposable + { + private readonly string previous; + private bool disposed; + + public IntermediateFieldContext(string context) + { + this.previous = IntermediateFieldExtensions.valueContext; + + IntermediateFieldExtensions.valueContext = context; + } + + public void Dispose() + { + this.Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + IntermediateFieldExtensions.valueContext = this.previous; + } + + this.disposed = true; + } + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateFieldDefinition.cs b/src/api/wix/WixToolset.Data/IntermediateFieldDefinition.cs new file mode 100644 index 00000000..5e1d8f29 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateFieldDefinition.cs @@ -0,0 +1,26 @@ +// 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. + +namespace WixToolset.Data +{ + public enum IntermediateFieldType + { + String, + Bool, + Number, + LargeNumber, + Path, + } + + public class IntermediateFieldDefinition + { + public IntermediateFieldDefinition(string name, IntermediateFieldType type) + { + this.Name = name; + this.Type = type; + } + + public string Name { get; } + + public IntermediateFieldType Type { get; } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateFieldExtensions.cs b/src/api/wix/WixToolset.Data/IntermediateFieldExtensions.cs new file mode 100644 index 00000000..c70eb230 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateFieldExtensions.cs @@ -0,0 +1,481 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public static class IntermediateFieldExtensions + { + [ThreadStatic] + internal static string valueContext; + + public static bool IsNull(this IntermediateField field) => field?.Value?.Data == null; + + public static bool AsBool(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return false; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool(); + + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber() != 0; + + case IntermediateFieldType.String: + return !String.IsNullOrEmpty(field.Value.AsString()); + + case IntermediateFieldType.Path: + return !String.IsNullOrEmpty(field.Value.AsPath()?.Path); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); + } + } + + public static bool? AsNullableBool(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + return field.AsBool(); + } + + public static long AsLargeNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return 0; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; + + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber(); + + case IntermediateFieldType.String: + return Convert.ToInt64(field.Value.AsString()); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to large number"); + } + } + + public static long? AsNullableLargeNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + return field.AsLargeNumber(); + } + + public static int AsNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return 0; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? 1 : 0; + + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsNumber(); + + case IntermediateFieldType.String: + return Convert.ToInt32(field.Value.AsString()); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); + } + } + + public static int? AsNullableNumber(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + return field.AsNumber(); + } + + public static IntermediateFieldPathValue AsPath(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.String: + return new IntermediateFieldPathValue { Path = field.Value.AsString() }; + + case IntermediateFieldType.Path: + return field.Value.AsPath(); + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); + } + } + + public static string AsString(this IntermediateField field) + { + if (field == null || field.Value == null || field.Value.Data == null) + { + return null; + } + + switch (field.Definition.Type) + { + case IntermediateFieldType.Bool: + return field.Value.AsBool() ? "true" : "false"; + + case IntermediateFieldType.LargeNumber: + case IntermediateFieldType.Number: + return field.Value.AsLargeNumber().ToString(); + + case IntermediateFieldType.String: + return field.Value.AsString(); + + case IntermediateFieldType.Path: + return field.Value.AsPath()?.Path; + + default: + throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); + } + } + + public static object AsObject(this IntermediateField field) + { + return field?.Value.Data; + } + + public static IntermediateField Set(this IntermediateField field, bool value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + switch (field.Type) + { + case IntermediateFieldType.Bool: + data = value; + break; + + case IntermediateFieldType.LargeNumber: + data = value ? (long)1 : (long)0; + break; + + case IntermediateFieldType.Number: + data = value ? 1 : 0; + break; + + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert bool '{value}' to a 'Path' field type.", nameof(value)); + + case IntermediateFieldType.String: + data = value ? "true" : "false"; + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, bool? value) + { + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); + } + + public static IntermediateField Set(this IntermediateField field, long value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + switch (field.Type) + { + case IntermediateFieldType.Bool: + data = (value != 0); + break; + + case IntermediateFieldType.LargeNumber: + data = value; + break; + + case IntermediateFieldType.Number: + data = (int)value; + break; + + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert large number '{value}' to a 'Path' field type.", nameof(value)); + + case IntermediateFieldType.String: + data = value.ToString(); + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, long? value) + { + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); + } + + public static IntermediateField Set(this IntermediateField field, int value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + switch (field.Type) + { + case IntermediateFieldType.Bool: + data = (value != 0); + break; + + case IntermediateFieldType.LargeNumber: + data = (long)value; + break; + + case IntermediateFieldType.Number: + data = value; + break; + + case IntermediateFieldType.Path: + throw new ArgumentException($"Cannot convert number '{value}' to a 'Path' field type.", nameof(value)); + + case IntermediateFieldType.String: + data = value.ToString(); + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + }; + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, int? value) + { + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + + return value.HasValue ? field.Set(value.Value) : AssignFieldValue(field, null); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldPathValue value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + else if (value == null) // null is always allowed. + { + data = null; + } + else + { + switch (field.Type) + { + case IntermediateFieldType.Bool: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'bool' field type.", nameof(value)); + + case IntermediateFieldType.LargeNumber: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'large number' field type.", nameof(value)); + + case IntermediateFieldType.Number: + throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'number' field type.", nameof(value)); + + case IntermediateFieldType.Path: + data = value; + break; + + case IntermediateFieldType.String: + data = value.Path; + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + } + } + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, string value) + { + object data; + + if (field == null) + { + throw new ArgumentNullException(nameof(field)); + } + else if (value == null) // Null is always allowed. + { + data = null; + } + else + { + switch (field.Type) + { + case IntermediateFieldType.Bool: + if (value.Equals("yes", StringComparison.OrdinalIgnoreCase) || value.Equals("true", StringComparison.OrdinalIgnoreCase)) + { + data = true; + } + else if (value.Equals("no", StringComparison.OrdinalIgnoreCase) || value.Equals("false", StringComparison.OrdinalIgnoreCase)) + { + data = false; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'bool' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.LargeNumber: + if (Int64.TryParse(value, out var largeNumber)) + { + data = largeNumber; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'large number' field type.", nameof(value)); + } + break; + + case IntermediateFieldType.Number: + if (Int32.TryParse(value, out var number)) + { + data = number; + } + else + { + throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", field.Name); + } + break; + + case IntermediateFieldType.Path: + data = new IntermediateFieldPathValue { Path = value }; + break; + + case IntermediateFieldType.String: + data = value; + break; + + default: + throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}"); + } + } + + return AssignFieldValue(field, data); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, bool value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, bool? value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, long value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, long? value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, int value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, int? value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, IntermediateFieldPathValue value) + { + return EnsureField(field, definition).Set(value); + } + + public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, string value) + { + return EnsureField(field, definition).Set(value); + } + + public static void Overwrite(this IntermediateField field, string value) => field.Value.Data = value; + + private static IntermediateField AssignFieldValue(IntermediateField field, object data) + { + field.Value = new IntermediateFieldValue + { + Context = valueContext, + Data = data, + PreviousValue = field.Value + }; + + return field; + } + + private static IntermediateField EnsureField(IntermediateField field, IntermediateFieldDefinition definition) + { + return field ?? new IntermediateField(definition); + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateFieldPathValue.cs b/src/api/wix/WixToolset.Data/IntermediateFieldPathValue.cs new file mode 100644 index 00000000..a8d2735a --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateFieldPathValue.cs @@ -0,0 +1,26 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public class IntermediateFieldPathValue + { + /// + /// Indicates whether to embed the path to the file when the intermediate field is saved. + /// + public bool Embed { get; set; } + + /// + /// Gets the base URI of the path field. + /// + /// The base URI of the path field. + public Uri BaseUri { get; set; } + + /// + /// Gets or sets the data for this field. + /// + /// Data in the field. + public string Path { get; set; } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateFieldValue.cs b/src/api/wix/WixToolset.Data/IntermediateFieldValue.cs new file mode 100644 index 00000000..84a23931 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateFieldValue.cs @@ -0,0 +1,146 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using SimpleJson; + + [DebuggerDisplay("{Data}")] + public class IntermediateFieldValue + { + public string Context { get; internal set; } + + internal object Data { get; set; } + + public IntermediateFieldValue PreviousValue { get; internal set; } + + public static explicit operator bool(IntermediateFieldValue value) => value.AsBool(); + + public static explicit operator bool?(IntermediateFieldValue value) => value.AsNullableBool(); + + public static explicit operator int(IntermediateFieldValue value) => value.AsNumber(); + + public static explicit operator int?(IntermediateFieldValue value) => value.AsNullableNumber(); + + public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath(); + + public static explicit operator string(IntermediateFieldValue value) => value.AsString(); + + internal static IntermediateFieldValue Deserialize(JsonObject jsonObject, Uri baseUri, IntermediateFieldType type) + { + var context = jsonObject.GetValueOrDefault("context"); + if (!jsonObject.TryGetValue("data", out var data)) + { + throw new ArgumentException(); + } + + var value = data; + + switch (value) + { + case int intData: + switch (type) + { + case IntermediateFieldType.Bool: + value = intData != 0; + break; + + case IntermediateFieldType.LargeNumber: + value = Convert.ToInt64(data); + break; + + case IntermediateFieldType.Path: + case IntermediateFieldType.String: + value = intData.ToString(); + break; + } + break; + + case long longData: + switch (type) + { + case IntermediateFieldType.Bool: + value = longData != 0; + break; + + case IntermediateFieldType.Number: + value = Convert.ToInt32(longData); + break; + + case IntermediateFieldType.Path: + case IntermediateFieldType.String: + value = longData.ToString(); + break; + } + break; + + case JsonObject jsonData: + jsonData.TryGetValue("embed", out var embed); + + value = new IntermediateFieldPathValue + { + BaseUri = (embed != null) ? baseUri : null, + Embed = embed != null, + Path = jsonData.GetValueOrDefault("path"), + }; + break; + + // Nothing to do for this case, so leave it out. + // case string stringData: + // break; + } + + var previousValueJson = jsonObject.GetValueOrDefault("prev"); + var previousValue = (previousValueJson == null) ? null : IntermediateFieldValue.Deserialize(previousValueJson, baseUri, type); + + return new IntermediateFieldValue + { + Context = context, + Data = value, + PreviousValue = previousValue + }; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject(); + + if (!String.IsNullOrEmpty(this.Context)) + { + jsonObject.Add("context", this.Context); + } + + if (this.Data is IntermediateFieldPathValue pathField) + { + var jsonData = new JsonObject(); + + // pathField.BaseUri is set during load, not saved. + + if (pathField.Embed) + { + jsonData.Add("embed", "true"); + } + + if (!String.IsNullOrEmpty(pathField.Path)) + { + jsonData.Add("path", pathField.Path); + } + + jsonObject.Add("data", jsonData); + } + else + { + jsonObject.Add("data", this.Data); + } + + if (this.PreviousValue != null) + { + var previousValueJson = this.PreviousValue.Serialize(); + jsonObject.Add("prev", previousValueJson); + } + + return jsonObject; + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/api/wix/WixToolset.Data/IntermediateFieldValueExtensions.cs new file mode 100644 index 00000000..8ff923a7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateFieldValueExtensions.cs @@ -0,0 +1,161 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public static class IntermediateFieldValueExtensions + { + public static bool AsBool(this IntermediateFieldValue value) + { + if (value.Data is bool b) + { + return b; + } + else if (value.Data is int n) + { + return n != 0; + } + else if (value.Data is long l) + { + return l != 0; + } + else if (value.Data is string s) + { + if (s.Equals("yes", StringComparison.OrdinalIgnoreCase) || s.Equals("true", StringComparison.OrdinalIgnoreCase)) + { + return true; + } + else if (s.Equals("no", StringComparison.OrdinalIgnoreCase) || s.Equals("false", StringComparison.OrdinalIgnoreCase)) + { + return false; + } + } + + return (bool)value.Data; + } + + public static bool? AsNullableBool(this IntermediateFieldValue value) + { + if (value?.Data == null) + { + return null; + } + + return value.AsBool(); + } + + public static long AsLargeNumber(this IntermediateFieldValue value) + { + if (value.Data is long l) + { + return l; + } + else if (value.Data is int n) + { + return n; + } + else if (value.Data is bool b) + { + return b ? 1 : 0; + } + else if (value.Data is string s) + { + try + { + return Convert.ToInt32(s); + } + catch (FormatException) + { + throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s)); + } + } + + return (long)value.Data; + } + + public static long? AsNullableLargeNumber(this IntermediateFieldValue value) + { + if (value?.Data == null) + { + return null; + } + + return value.AsLargeNumber(); + } + + public static int AsNumber(this IntermediateFieldValue value) + { + if (value.Data is int n) + { + return n; + } + else if (value.Data is long l) + { + return (int)l; + } + else if (value.Data is bool b) + { + return b ? 1 : 0; + } + else if (value.Data is string s) + { + try + { + return Convert.ToInt32(s); + } + catch (FormatException) + { + throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s)); + } + } + + return (int)value.Data; + } + + public static int? AsNullableNumber(this IntermediateFieldValue value) + { + if (value?.Data == null) + { + return null; + } + + return value.AsNumber(); + } + + public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) + { + return (IntermediateFieldPathValue)value?.Data; + } + + public static string AsString(this IntermediateFieldValue value) + { + if (value?.Data == null) + { + return null; + } + else if (value.Data is string s) + { + return s; + } + else if (value.Data is int n) + { + return n.ToString(); + } + else if (value.Data is long l) + { + return l.ToString(); + } + else if (value.Data is bool b) + { + return b ? "true" : "false"; + } + else if (value.Data is IntermediateFieldPathValue p) + { + return p.Path; + } + + return (string)value.Data; + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateLevels.cs b/src/api/wix/WixToolset.Data/IntermediateLevels.cs new file mode 100644 index 00000000..64c19ae1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateLevels.cs @@ -0,0 +1,10 @@ +namespace WixToolset.Data +{ + public static class IntermediateLevels + { + public const string Compiled = "compiled"; + public const string Combined = "combined"; + public const string Linked = "linked"; + public const string Resolved = "resolved"; + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateSection.cs b/src/api/wix/WixToolset.Data/IntermediateSection.cs new file mode 100644 index 00000000..b9157875 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateSection.cs @@ -0,0 +1,139 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using SimpleJson; + + /// + /// Section in an intermediate file. + /// + public class IntermediateSection + { + private readonly List symbols; + + /// + /// Creates a new section as part of an intermediate. + /// + /// Identifier for section. + /// Type of section. + /// Optional compilation identifier + public IntermediateSection(string id, SectionType type, string compilationId = null) + { + this.Id = id; + this.Type = type; + this.CompilationId = compilationId; + this.symbols = new List(); + } + + /// + /// Gets the identifier for the section. + /// + /// Section identifier. + public string Id { get; } + + /// + /// Gets the type of the section. + /// + /// Type of section. + public SectionType Type { get; } + + /// + /// Gets and sets the identifier of the compilation of the source file containing the section. + /// + public string CompilationId { get; } + + /// + /// Gets and sets the identifier of the library that combined the section. + /// + public string LibraryId { get; private set; } + + /// + /// Symbols in the section. + /// + public IReadOnlyCollection Symbols => this.symbols; + + /// + /// Adds a symbol to the section. + /// + /// Type of IntermediateSymbol to add to the section. + /// Symbol to add to the section. + /// Symbol added to the section. + public T AddSymbol(T symbol) where T : IntermediateSymbol + { + this.symbols.Add(symbol); + return symbol; + } + + /// + /// Assigns the section to a library. + /// + /// Identifier of the library. + public void AssignToLibrary(string libraryId) + { + this.LibraryId = libraryId; + } + + /// + /// Removes a symbol from the section. + /// + /// Symbol to remove. + /// True if the symbol was removed; otherwise false. + public bool RemoveSymbol(IntermediateSymbol symbol) + { + return this.symbols.Remove(symbol); + } + + /// + /// Parse a section from the JSON data. + /// + internal static IntermediateSection Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) + { + var id = jsonObject.GetValueOrDefault("id"); + var type = jsonObject.GetEnumOrDefault("type", SectionType.Unknown); + + if (SectionType.Unknown == type) + { + throw new ArgumentException("JSON object is not a valid section, unknown section type", nameof(type)); + } + + var section = new IntermediateSection(id, type); + + var symbolsJson = jsonObject.GetValueOrDefault("symbols"); + + foreach (JsonObject symbolJson in symbolsJson) + { + var symbol = IntermediateSymbol.Deserialize(creator, baseUri, symbolJson); + section.symbols.Add(symbol); + } + + return section; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "type", this.Type.ToString().ToLowerInvariant() } + }; + + if (!String.IsNullOrEmpty(this.Id)) + { + jsonObject.Add("id", this.Id); + } + + var symbolsJson = new JsonArray(this.Symbols.Count); + + foreach (var symbol in this.Symbols) + { + var symbolJson = symbol.Serialize(); + symbolsJson.Add(symbolJson); + } + + jsonObject.Add("symbols", symbolsJson); + + return jsonObject; + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateSymbol.cs b/src/api/wix/WixToolset.Data/IntermediateSymbol.cs new file mode 100644 index 00000000..4be17094 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateSymbol.cs @@ -0,0 +1,300 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Diagnostics; + using SimpleJson; + + /// + /// Intermediate symbol. + /// + [DebuggerDisplay("{DebuggerDisplay,nq}")] + public class IntermediateSymbol + { + private object tags; + + /// + /// Creates an intermediate symbol. + /// + /// Symbol definition. + public IntermediateSymbol(IntermediateSymbolDefinition definition) : this(definition, null, null) + { + } + + /// + /// Creates an intermediate symbol with source line number and identifier. + /// + /// Symbol definition. + /// Source line number. + /// Symbol identifier. + public IntermediateSymbol(IntermediateSymbolDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) + { + this.Definition = definition; + this.Fields = new IntermediateField[definition.FieldDefinitions.Length]; + this.SourceLineNumbers = sourceLineNumber; + this.Id = id; + } + + /// + /// Gets the symbol's definition. + /// + public IntermediateSymbolDefinition Definition { get; } + + /// + /// Gets the symbol's fields. + /// + public IntermediateField[] Fields { get; } + + /// + /// Gets the optional source line number of the symbol. + /// + public SourceLineNumber SourceLineNumbers { get; internal set; } + + /// + /// Gets the optional identifier for the symbol. + /// + public Identifier Id { get; internal set; } + + /// + /// Direct access by index to the symbol's fields. + /// + /// Index of the field to access. + /// Symbol's field. + public IntermediateField this[int index] => this.Fields[index]; + + private string DebuggerDisplay => $"{this.Definition?.Name} {this.Id?.Id}"; + + /// + /// Add a custom tag to the symbol. + /// + /// String tag to add to the symbol. + /// True if the tag was added; otherwise false if th tag was already present. + public bool AddTag(string add) + { + if (this.tags == null) + { + this.tags = add; + } + else if (this.tags is string tag) + { + if (tag == add) + { + return false; + } + + this.tags = new[] { tag, add }; + } + else + { + var tagsArray = (string[])this.tags; + var array = new string[tagsArray.Length + 1]; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == add) + { + return false; + } + + array[i] = tagsArray[i]; + } + + array[tagsArray.Length] = add; + + this.tags = array; + } + + return true; + } + + /// + /// Tests whether a symbol has a tag. + /// + /// String tag to find. + /// True if the symbol has the tag; otherwise false. + public bool HasTag(string has) + { + if (this.tags == null) + { + return false; + } + else if (this.tags is string tag) + { + return tag == has; + } + else + { + foreach (var element in (string[])this.tags) + { + if (element == has) + { + return true; + } + } + } + + return false; + } + + /// + /// Removes a tag from the symbol. + /// + /// String tag to remove. + /// True if the tag was removed; otherwise false if the tag was not present. + public bool RemoveTag(string remove) + { + if (this.tags is string tag) + { + if (tag == remove) + { + this.tags = null; + return true; + } + } + else if (this.tags is string[] tagsArray) + { + if (tagsArray.Length == 2) + { + if (tagsArray[0] == remove) + { + this.tags = tagsArray[1]; + return true; + } + else if (tagsArray[1] == remove) + { + this.tags = tagsArray[0]; + return true; + } + } + else + { + var array = new string[tagsArray.Length - 1]; + var arrayIndex = 0; + var found = false; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == remove) + { + found = true; + continue; + } + else if (arrayIndex == array.Length) + { + break; + } + + array[arrayIndex++] = tagsArray[i]; + } + + if (found) + { + this.tags = array; + return true; + } + } + } + + return false; + } + + internal static IntermediateSymbol Deserialize(ISymbolDefinitionCreator creator, Uri baseUri, JsonObject jsonObject) + { + var definitionName = jsonObject.GetValueOrDefault("type"); + var idJson = jsonObject.GetValueOrDefault("id"); + var sourceLineNumbersJson = jsonObject.GetValueOrDefault("ln"); + var fieldsJson = jsonObject.GetValueOrDefault("fields"); + var tagsJson = jsonObject.GetValueOrDefault("tags"); + + var id = (idJson == null) ? null : Identifier.Deserialize(idJson); + var sourceLineNumbers = (sourceLineNumbersJson == null) ? null : SourceLineNumber.Deserialize(sourceLineNumbersJson); + + if (!creator.TryGetSymbolDefinitionByName(definitionName, out var definition)) + { + throw new WixException(ErrorMessages.UnknownSymbolType(definitionName)); + } + + var symbol = definition.CreateSymbol(sourceLineNumbers, id); + + for (var i = 0; i < fieldsJson.Count && i < symbol.Fields.Length; ++i) + { + if (fieldsJson[i] is JsonObject fieldJson) + { + symbol.Fields[i] = IntermediateField.Deserialize(symbol.Definition.FieldDefinitions[i], baseUri, fieldJson); + } + } + + if (tagsJson == null || tagsJson.Count == 0) + { + } + else if (tagsJson.Count == 1) + { + symbol.tags = (string)tagsJson[0]; + } + else + { + var tags = new string[tagsJson.Count]; + + for (var i = 0; i < tagsJson.Count; ++i) + { + tags[i] = (string)tagsJson[i]; + } + + symbol.tags = tags; + } + + return symbol; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "type", this.Definition.Name } + }; + + var idJson = this.Id?.Serialize(); + if (idJson != null) + { + jsonObject.Add("id", idJson); + } + + var lnJson = this.SourceLineNumbers?.Serialize(); + if (lnJson != null) + { + jsonObject.Add("ln", lnJson); + } + + var fieldsJson = new JsonArray(this.Fields.Length); + + foreach (var field in this.Fields) + { + var fieldJson = field?.Serialize(); + fieldsJson.Add(fieldJson); + } + + jsonObject.Add("fields", fieldsJson); + + if (this.tags is string || this.tags is string[]) + { + JsonArray tagsJson; + + if (this.tags is string tag) + { + tagsJson = new JsonArray(1) { tag }; + } + else + { + var array = (string[])this.tags; + tagsJson = new JsonArray(array.Length); + tagsJson.AddRange(array); + } + + jsonObject.Add("tags", tagsJson); + } + + return jsonObject; + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateSymbolDefinition.cs b/src/api/wix/WixToolset.Data/IntermediateSymbolDefinition.cs new file mode 100644 index 00000000..dc913704 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateSymbolDefinition.cs @@ -0,0 +1,270 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using SimpleJson; + + public class IntermediateSymbolDefinition + { + private object tags; + + public IntermediateSymbolDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(SymbolDefinitionType.MustBeFromAnExtension, name, 0, fieldDefinitions, strongSymbolType) + { + } + + public IntermediateSymbolDefinition(string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(SymbolDefinitionType.MustBeFromAnExtension, name, revision, fieldDefinitions, strongSymbolType) + { + } + + internal IntermediateSymbolDefinition(SymbolDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + : this(type, type.ToString(), 0, fieldDefinitions, strongSymbolType) + { + } + + private IntermediateSymbolDefinition(SymbolDefinitionType type, string name, int revision, IntermediateFieldDefinition[] fieldDefinitions, Type strongSymbolType) + { + this.Type = type; + this.Name = name; + this.Revision = revision; + this.FieldDefinitions = fieldDefinitions; + this.StrongSymbolType = strongSymbolType ?? typeof(IntermediateSymbol); +#if DEBUG + if (this.StrongSymbolType != typeof(IntermediateSymbol) && !this.StrongSymbolType.IsSubclassOf(typeof(IntermediateSymbol))) { throw new ArgumentException(nameof(strongSymbolType)); } +#endif + } + + public int Revision { get; } + + public SymbolDefinitionType Type { get; } + + public string Name { get; } + + public IntermediateFieldDefinition[] FieldDefinitions { get; } + + private Type StrongSymbolType { get; } + + public IntermediateSymbol CreateSymbol(SourceLineNumber sourceLineNumber = null, Identifier id = null) + { + var symbol = (this.StrongSymbolType == typeof(IntermediateSymbol)) ? (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType, this) : (IntermediateSymbol)Activator.CreateInstance(this.StrongSymbolType); + symbol.SourceLineNumbers = sourceLineNumber; + symbol.Id = id; + + return symbol; + } + + public bool AddTag(string add) + { + if (this.tags == null) + { + this.tags = add; + } + else if (this.tags is string tag) + { + if (tag == add) + { + return false; + } + + this.tags = new[] { tag, add }; + } + else + { + var tagsArray = (string[])this.tags; + var array = new string[tagsArray.Length + 1]; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == add) + { + return false; + } + + array[i] = tagsArray[i]; + } + + array[tagsArray.Length] = add; + + this.tags = array; + } + + return true; + } + + public bool HasTag(string has) + { + if (this.tags == null) + { + return false; + } + else if (this.tags is string tag) + { + return tag == has; + } + else + { + foreach (var element in (string[])this.tags) + { + if (element == has) + { + return true; + } + } + } + + return false; + } + + public bool RemoveTag(string remove) + { + if (this.tags is string tag) + { + if (tag == remove) + { + this.tags = null; + return true; + } + } + else if (this.tags is string[] tagsArray) + { + if (tagsArray.Length == 2) + { + if (tagsArray[0] == remove) + { + this.tags = tagsArray[1]; + return true; + } + else if (tagsArray[1] == remove) + { + this.tags = tagsArray[0]; + return true; + } + } + else + { + var array = new string[tagsArray.Length - 1]; + var arrayIndex = 0; + var found = false; + + for (var i = 0; i < tagsArray.Length; ++i) + { + if (tagsArray[i] == remove) + { + found = true; + continue; + } + else if (arrayIndex == array.Length) + { + break; + } + + array[arrayIndex++] = tagsArray[i]; + } + + if (found) + { + this.tags = array; + return true; + } + } + } + + return false; + } + + internal static IntermediateSymbolDefinition Deserialize(JsonObject jsonObject) + { + var name = jsonObject.GetValueOrDefault("name"); + var revision = jsonObject.GetValueOrDefault("rev", 0); + var definitionsJson = jsonObject.GetValueOrDefault("fields"); + var tagsJson = jsonObject.GetValueOrDefault("tags"); + + var fieldDefinitions = new IntermediateFieldDefinition[definitionsJson.Count]; + + for (var i = 0; i < definitionsJson.Count; ++i) + { + var definitionJson = (JsonObject)definitionsJson[i]; + var fieldName = definitionJson.GetValueOrDefault("name"); + var fieldType = definitionJson.GetEnumOrDefault("type", IntermediateFieldType.String); + fieldDefinitions[i] = new IntermediateFieldDefinition(fieldName, fieldType); + } + + var definition = new IntermediateSymbolDefinition(name, revision, fieldDefinitions, null); + + if (tagsJson == null || tagsJson.Count == 0) + { + } + else if (tagsJson.Count == 1) + { + definition.tags = (string)tagsJson[0]; + } + else + { + var tags = new string[tagsJson.Count]; + + for (var i = 0; i < tagsJson.Count; ++i) + { + tags[i] = (string)tagsJson[i]; + } + + definition.tags = tags; + } + + return definition; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "name", this.Name } + }; + + if (this.Revision > 0) + { + jsonObject.Add("rev", this.Revision); + } + + var fieldsJson = new JsonArray(this.FieldDefinitions.Length); + + foreach (var fieldDefinition in this.FieldDefinitions) + { + var fieldJson = new JsonObject + { + { "name", fieldDefinition.Name }, + }; + + if (fieldDefinition.Type != IntermediateFieldType.String) + { + fieldJson.Add("type", fieldDefinition.Type.ToString().ToLowerInvariant()); + } + + fieldsJson.Add(fieldJson); + } + + jsonObject.Add("fields", fieldsJson); + + if (this.tags is string || this.tags is string[]) + { + JsonArray tagsJson; + + if (this.tags is string tag) + { + tagsJson = new JsonArray(1) { tag }; + } + else + { + var array = (string[])this.tags; + tagsJson = new JsonArray(array.Length); + tagsJson.AddRange(array); + } + + jsonObject.Add("tags", tagsJson); + } + + return jsonObject; + } + } +} diff --git a/src/api/wix/WixToolset.Data/IntermediateSymbolExtensions.cs b/src/api/wix/WixToolset.Data/IntermediateSymbolExtensions.cs new file mode 100644 index 00000000..10f0d7f0 --- /dev/null +++ b/src/api/wix/WixToolset.Data/IntermediateSymbolExtensions.cs @@ -0,0 +1,121 @@ +// 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. + +namespace WixToolset.Data +{ + public static class IntermediateSymbolExtensions + { + public static bool AsBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsBool() ?? false; + + public static bool? AsNullableBool(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableBool(); + + public static int AsNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNumber() ?? 0; + + public static int? AsNullableNumber(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsNullableNumber(); + + public static string AsString(this IntermediateSymbol symbol, int index) => symbol?.Fields[index].AsString(); + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool value) + { + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, bool? value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, long value) + { + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, long? value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, int value) + { + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, int? value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, IntermediateFieldPathValue value) + { + if (value?.Path == null && value?.BaseUri == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateSymbol symbol, int index, string value) + { + if (value == null && NoFieldMetadata(symbol, index)) + { + return symbol.Fields[index] = null; + } + + var definition = symbol.Definition.FieldDefinitions[index]; + + var field = symbol.Fields[index].Set(definition, value); + + return symbol.Fields[index] = field; + } + + private static bool NoFieldMetadata(IntermediateSymbol symbol, int index) + { + var field = symbol?.Fields[index]; + + return field?.Context == null && field?.PreviousValue == null; + } + } +} diff --git a/src/api/wix/WixToolset.Data/Json/JsonObjectExtensions.cs b/src/api/wix/WixToolset.Data/Json/JsonObjectExtensions.cs new file mode 100644 index 00000000..bc52333c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Json/JsonObjectExtensions.cs @@ -0,0 +1,79 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using SimpleJson; + + internal static class JsonObjectExtensions + { + public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, bool value, bool defaultValue = default(bool)) + { + if (value != defaultValue) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, int value, int defaultValue = default(int)) + { + if (value != defaultValue) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static JsonObject AddNonDefaultValue(this JsonObject jsonObject, string key, object value, object defaultValue = null) + { + if (value != defaultValue) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static JsonObject AddIsNotNullOrEmpty(this JsonObject jsonObject, string key, string value) + { + if (!String.IsNullOrEmpty(value)) + { + jsonObject.Add(key, value); + } + + return jsonObject; + } + + public static bool GetValueOrDefault(this JsonObject jsonObject, string key, bool defaultValue) + { + return jsonObject.TryGetValue(key, out var value) ? Convert.ToBoolean(value) : defaultValue; + } + + public static int GetValueOrDefault(this JsonObject jsonObject, string key, int defaultValue) + { + return jsonObject.TryGetValue(key, out var value) ? Convert.ToInt32(value) : defaultValue; + } + + public static int? GetValueOrDefault(this JsonObject jsonObject, string key, int? defaultValue) + { + return jsonObject.TryGetValue(key, out var value) ? Convert.ToInt32(value) : defaultValue; + } + + public static T GetValueOrDefault(this JsonObject jsonObject, string key, T defaultValue = default(T)) where T : class + { + return jsonObject.TryGetValue(key, out var value) ? value as T : defaultValue; + } + + public static T GetEnumOrDefault(this JsonObject jsonObject, string key, T defaultValue) where T : struct + { +#if DEBUG + if (!typeof(T).IsEnum) { throw new ArgumentException("This method only supports enums.", nameof(T)); } +#endif + var value = jsonObject.GetValueOrDefault(key); + return Enum.TryParse(value, true, out T e) ? e : defaultValue; + } + } +} diff --git a/src/api/wix/WixToolset.Data/Json/SimpleJson.cs b/src/api/wix/WixToolset.Data/Json/SimpleJson.cs new file mode 100644 index 00000000..3d956f6e --- /dev/null +++ b/src/api/wix/WixToolset.Data/Json/SimpleJson.cs @@ -0,0 +1,2127 @@ +//----------------------------------------------------------------------- +// +// Copyright (c) 2011, The Outercurve Foundation. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.opensource.org/licenses/mit-license.php +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Nathan Totten (ntotten.com), Jim Zimmerman (jimzimmerman.com) and Prabir Shrestha (prabir.me) +// https://github.com/facebook-csharp-sdk/simple-json +//----------------------------------------------------------------------- + +// VERSION: + +// NOTE: uncomment the following line to make SimpleJson class internal. +#define SIMPLE_JSON_INTERNAL + +// NOTE: uncomment the following line to make JsonArray and JsonObject class internal. +#define SIMPLE_JSON_OBJARRAYINTERNAL + +// NOTE: uncomment the following line to enable dynamic support. +//#define SIMPLE_JSON_DYNAMIC + +// NOTE: uncomment the following line to enable DataContract support. +//#define SIMPLE_JSON_DATACONTRACT + +// NOTE: uncomment the following line to enable IReadOnlyCollection and IReadOnlyList support. +//#define SIMPLE_JSON_READONLY_COLLECTIONS + +// NOTE: uncomment the following line to disable linq expressions/compiled lambda (better performance) instead of method.invoke(). +// define if you are using .net framework <= 3.0 or < WP7.5 +//#define SIMPLE_JSON_NO_LINQ_EXPRESSION + +// NOTE: uncomment the following line if you are compiling under Window Metro style application/library. +// usually already defined in properties +//#define NETFX_CORE; + +// If you are targetting WinStore, WP8 and NET4.5+ PCL make sure to #define SIMPLE_JSON_TYPEINFO; + +// original json parsing code from http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html + +#if NETFX_CORE +#define SIMPLE_JSON_TYPEINFO +#endif + +using System; +using System.CodeDom.Compiler; +using System.Collections; +using System.Collections.Generic; +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION +using System.Linq.Expressions; +#endif +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +#if SIMPLE_JSON_DYNAMIC +using System.Dynamic; +#endif +using System.Globalization; +using System.Reflection; +using System.Runtime.Serialization; +using System.Text; +using SimpleJson.Reflection; + +// ReSharper disable LoopCanBeConvertedToQuery +// ReSharper disable RedundantExplicitArrayCreation +// ReSharper disable SuggestUseVarKeywordEvident +namespace SimpleJson +{ + /// + /// Represents the json array. + /// + [GeneratedCode("simple-json", "1.0.0")] + [EditorBrowsable(EditorBrowsableState.Never)] + [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] +#if SIMPLE_JSON_OBJARRAYINTERNAL + internal +#else + public +#endif + class JsonArray : List + { + /// + /// Initializes a new instance of the class. + /// + public JsonArray() { } + + /// + /// Initializes a new instance of the class. + /// + /// The capacity of the json array. + public JsonArray(int capacity) : base(capacity) { } + + /// + /// The json representation of the array. + /// + /// The json representation of the array. + public override string ToString() + { + return SimpleJson.SerializeObject(this) ?? string.Empty; + } + } + + /// + /// Represents the json object. + /// + [GeneratedCode("simple-json", "1.0.0")] + [EditorBrowsable(EditorBrowsableState.Never)] + [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] +#if SIMPLE_JSON_OBJARRAYINTERNAL + internal +#else + public +#endif + class JsonObject : +#if SIMPLE_JSON_DYNAMIC + DynamicObject, +#endif + IDictionary + { + /// + /// The internal member dictionary. + /// + private readonly Dictionary _members; + + /// + /// Initializes a new instance of . + /// + public JsonObject() + { + _members = new Dictionary(); + } + + /// + /// Initializes a new instance of . + /// + /// The implementation to use when comparing keys, or null to use the default for the type of the key. + public JsonObject(IEqualityComparer comparer) + { + _members = new Dictionary(comparer); + } + + /// + /// Gets the at the specified index. + /// + /// + public object this[int index] + { + get { return GetAtIndex(_members, index); } + } + + internal static object GetAtIndex(IDictionary obj, int index) + { + if (obj == null) + throw new ArgumentNullException("obj"); + if (index >= obj.Count) + throw new ArgumentOutOfRangeException("index"); + int i = 0; + foreach (KeyValuePair o in obj) + if (i++ == index) return o.Value; + return null; + } + + /// + /// Adds the specified key. + /// + /// The key. + /// The value. + public void Add(string key, object value) + { + _members.Add(key, value); + } + + /// + /// Determines whether the specified key contains key. + /// + /// The key. + /// + /// true if the specified key contains key; otherwise, false. + /// + public bool ContainsKey(string key) + { + return _members.ContainsKey(key); + } + + /// + /// Gets the keys. + /// + /// The keys. + public ICollection Keys + { + get { return _members.Keys; } + } + + /// + /// Removes the specified key. + /// + /// The key. + /// + public bool Remove(string key) + { + return _members.Remove(key); + } + + /// + /// Tries the get value. + /// + /// The key. + /// The value. + /// + public bool TryGetValue(string key, out object value) + { + return _members.TryGetValue(key, out value); + } + + /// + /// Gets the values. + /// + /// The values. + public ICollection Values + { + get { return _members.Values; } + } + + /// + /// Gets or sets the with the specified key. + /// + /// + public object this[string key] + { + get { return _members[key]; } + set { _members[key] = value; } + } + + /// + /// Adds the specified item. + /// + /// The item. + public void Add(KeyValuePair item) + { + _members.Add(item.Key, item.Value); + } + + /// + /// Clears this instance. + /// + public void Clear() + { + _members.Clear(); + } + + /// + /// Determines whether [contains] [the specified item]. + /// + /// The item. + /// + /// true if [contains] [the specified item]; otherwise, false. + /// + public bool Contains(KeyValuePair item) + { + return _members.ContainsKey(item.Key) && _members[item.Key] == item.Value; + } + + /// + /// Copies to. + /// + /// The array. + /// Index of the array. + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + if (array == null) throw new ArgumentNullException("array"); + int num = Count; + foreach (KeyValuePair kvp in this) + { + array[arrayIndex++] = kvp; + if (--num <= 0) + return; + } + } + + /// + /// Gets the count. + /// + /// The count. + public int Count + { + get { return _members.Count; } + } + + /// + /// Gets a value indicating whether this instance is read only. + /// + /// + /// true if this instance is read only; otherwise, false. + /// + public bool IsReadOnly + { + get { return false; } + } + + /// + /// Removes the specified item. + /// + /// The item. + /// + public bool Remove(KeyValuePair item) + { + return _members.Remove(item.Key); + } + + /// + /// Gets the enumerator. + /// + /// + public IEnumerator> GetEnumerator() + { + return _members.GetEnumerator(); + } + + /// + /// Returns an enumerator that iterates through a collection. + /// + /// + /// An object that can be used to iterate through the collection. + /// + IEnumerator IEnumerable.GetEnumerator() + { + return _members.GetEnumerator(); + } + + /// + /// Returns a json that represents the current . + /// + /// + /// A json that represents the current . + /// + public override string ToString() + { + return SimpleJson.SerializeObject(this); + } + +#if SIMPLE_JSON_DYNAMIC + /// + /// Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. + /// + /// Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. + /// The result of the type conversion operation. + /// + /// Alwasy returns true. + /// + public override bool TryConvert(ConvertBinder binder, out object result) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + Type targetType = binder.Type; + + if ((targetType == typeof(IEnumerable)) || + (targetType == typeof(IEnumerable>)) || + (targetType == typeof(IDictionary)) || + (targetType == typeof(IDictionary))) + { + result = this; + return true; + } + + return base.TryConvert(binder, out result); + } + + /// + /// Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. + /// + /// Provides information about the deletion. + /// + /// Alwasy returns true. + /// + public override bool TryDeleteMember(DeleteMemberBinder binder) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + return _members.Remove(binder.Name); + } + + /// + /// Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + /// + /// Provides information about the operation. + /// The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3. + /// The result of the index operation. + /// + /// Alwasy returns true. + /// + public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) + { + if (indexes == null) throw new ArgumentNullException("indexes"); + if (indexes.Length == 1) + { + result = ((IDictionary)this)[(string)indexes[0]]; + return true; + } + result = null; + return true; + } + + /// + /// Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + /// + /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + /// The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + /// + /// Alwasy returns true. + /// + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + object value; + if (_members.TryGetValue(binder.Name, out value)) + { + result = value; + return true; + } + result = null; + return true; + } + + /// + /// Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + /// + /// Provides information about the operation. + /// The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + /// The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + /// + /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + /// + public override bool TrySetIndex(SetIndexBinder binder, object[] indexes, object value) + { + if (indexes == null) throw new ArgumentNullException("indexes"); + if (indexes.Length == 1) + { + ((IDictionary)this)[(string)indexes[0]] = value; + return true; + } + return base.TrySetIndex(binder, indexes, value); + } + + /// + /// Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + /// + /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + /// The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + /// + /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + /// + public override bool TrySetMember(SetMemberBinder binder, object value) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + _members[binder.Name] = value; + return true; + } + + /// + /// Returns the enumeration of all dynamic member names. + /// + /// + /// A sequence that contains dynamic member names. + /// + public override IEnumerable GetDynamicMemberNames() + { + foreach (var key in Keys) + yield return key; + } +#endif + } +} + +namespace SimpleJson +{ + /// + /// This class encodes and decodes JSON strings. + /// Spec. details, see http://www.json.org/ + /// + /// JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + /// All numbers are parsed to doubles. + /// + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + static class SimpleJson + { + private const int TOKEN_NONE = 0; + private const int TOKEN_CURLY_OPEN = 1; + private const int TOKEN_CURLY_CLOSE = 2; + private const int TOKEN_SQUARED_OPEN = 3; + private const int TOKEN_SQUARED_CLOSE = 4; + private const int TOKEN_COLON = 5; + private const int TOKEN_COMMA = 6; + private const int TOKEN_STRING = 7; + private const int TOKEN_NUMBER = 8; + private const int TOKEN_TRUE = 9; + private const int TOKEN_FALSE = 10; + private const int TOKEN_NULL = 11; + private const int BUILDER_CAPACITY = 2000; + + private static readonly char[] EscapeTable; + private static readonly char[] EscapeCharacters = new char[] { '"', '\\', '\b', '\f', '\n', '\r', '\t' }; + private static readonly string EscapeCharactersString = new string(EscapeCharacters); + + static SimpleJson() + { + EscapeTable = new char[93]; + EscapeTable['"'] = '"'; + EscapeTable['\\'] = '\\'; + EscapeTable['\b'] = 'b'; + EscapeTable['\f'] = 'f'; + EscapeTable['\n'] = 'n'; + EscapeTable['\r'] = 'r'; + EscapeTable['\t'] = 't'; + } + + /// + /// Parses the string json into a value + /// + /// A JSON string. + /// An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + public static object DeserializeObject(string json) + { + object obj; + if (TryDeserializeObject(json, out obj)) + return obj; + throw new SerializationException("Invalid JSON string"); + } + + /// + /// Try parsing the json string into a value. + /// + /// + /// A JSON string. + /// + /// + /// The object. + /// + /// + /// Returns true if successfull otherwise false. + /// + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + public static bool TryDeserializeObject(string json, out object obj) + { + bool success = true; + if (json != null) + { + char[] charArray = json.ToCharArray(); + int index = 0; + obj = ParseValue(charArray, ref index, ref success); + } + else + obj = null; + + return success; + } + + public static object DeserializeObject(string json, Type type, IJsonSerializerStrategy jsonSerializerStrategy) + { + object jsonObject = DeserializeObject(json); + return type == null || jsonObject != null && ReflectionUtils.IsAssignableFrom(jsonObject.GetType(), type) + ? jsonObject + : (jsonSerializerStrategy ?? CurrentJsonSerializerStrategy).DeserializeObject(jsonObject, type); + } + + public static object DeserializeObject(string json, Type type) + { + return DeserializeObject(json, type, null); + } + + public static T DeserializeObject(string json, IJsonSerializerStrategy jsonSerializerStrategy) + { + return (T)DeserializeObject(json, typeof(T), jsonSerializerStrategy); + } + + public static T DeserializeObject(string json) + { + return (T)DeserializeObject(json, typeof(T), null); + } + + /// + /// Converts a IDictionary<string,object> / IList<object> object into a JSON string + /// + /// A IDictionary<string,object> / IList<object> + /// Serializer strategy to use + /// A JSON encoded string, or null if object 'json' is not serializable + public static string SerializeObject(object json, IJsonSerializerStrategy jsonSerializerStrategy) + { + StringBuilder builder = new StringBuilder(BUILDER_CAPACITY); + bool success = SerializeValue(jsonSerializerStrategy, json, builder); + return (success ? builder.ToString() : null); + } + + public static string SerializeObject(object json) + { + return SerializeObject(json, CurrentJsonSerializerStrategy); + } + + public static string EscapeToJavascriptString(string jsonString) + { + if (string.IsNullOrEmpty(jsonString)) + return jsonString; + + StringBuilder sb = new StringBuilder(); + char c; + + for (int i = 0; i < jsonString.Length;) + { + c = jsonString[i++]; + + if (c == '\\') + { + int remainingLength = jsonString.Length - i; + if (remainingLength >= 2) + { + char lookahead = jsonString[i]; + if (lookahead == '\\') + { + sb.Append('\\'); + ++i; + } + else if (lookahead == '"') + { + sb.Append("\""); + ++i; + } + else if (lookahead == 't') + { + sb.Append('\t'); + ++i; + } + else if (lookahead == 'b') + { + sb.Append('\b'); + ++i; + } + else if (lookahead == 'n') + { + sb.Append('\n'); + ++i; + } + else if (lookahead == 'r') + { + sb.Append('\r'); + ++i; + } + } + } + else + { + sb.Append(c); + } + } + return sb.ToString(); + } + + static IDictionary ParseObject(char[] json, ref int index, ref bool success) + { + IDictionary table = new JsonObject(); + int token; + + // { + NextToken(json, ref index); + + bool done = false; + while (!done) + { + token = LookAhead(json, index); + if (token == TOKEN_NONE) + { + success = false; + return null; + } + else if (token == TOKEN_COMMA) + NextToken(json, ref index); + else if (token == TOKEN_CURLY_CLOSE) + { + NextToken(json, ref index); + return table; + } + else + { + // name + string name = ParseString(json, ref index, ref success); + if (!success) + { + success = false; + return null; + } + // : + token = NextToken(json, ref index); + if (token != TOKEN_COLON) + { + success = false; + return null; + } + // value + object value = ParseValue(json, ref index, ref success); + if (!success) + { + success = false; + return null; + } + table[name] = value; + } + } + return table; + } + + static JsonArray ParseArray(char[] json, ref int index, ref bool success) + { + JsonArray array = new JsonArray(); + + // [ + NextToken(json, ref index); + + bool done = false; + while (!done) + { + int token = LookAhead(json, index); + if (token == TOKEN_NONE) + { + success = false; + return null; + } + else if (token == TOKEN_COMMA) + NextToken(json, ref index); + else if (token == TOKEN_SQUARED_CLOSE) + { + NextToken(json, ref index); + break; + } + else + { + object value = ParseValue(json, ref index, ref success); + if (!success) + return null; + array.Add(value); + } + } + return array; + } + + static object ParseValue(char[] json, ref int index, ref bool success) + { + switch (LookAhead(json, index)) + { + case TOKEN_STRING: + return ParseString(json, ref index, ref success); + case TOKEN_NUMBER: + return ParseNumber(json, ref index, ref success); + case TOKEN_CURLY_OPEN: + return ParseObject(json, ref index, ref success); + case TOKEN_SQUARED_OPEN: + return ParseArray(json, ref index, ref success); + case TOKEN_TRUE: + NextToken(json, ref index); + return true; + case TOKEN_FALSE: + NextToken(json, ref index); + return false; + case TOKEN_NULL: + NextToken(json, ref index); + return null; + case TOKEN_NONE: + break; + } + success = false; + return null; + } + + static string ParseString(char[] json, ref int index, ref bool success) + { + StringBuilder s = new StringBuilder(BUILDER_CAPACITY); + char c; + + EatWhitespace(json, ref index); + + // " + c = json[index++]; + bool complete = false; + while (!complete) + { + if (index == json.Length) + break; + + c = json[index++]; + if (c == '"') + { + complete = true; + break; + } + else if (c == '\\') + { + if (index == json.Length) + break; + c = json[index++]; + if (c == '"') + s.Append('"'); + else if (c == '\\') + s.Append('\\'); + else if (c == '/') + s.Append('/'); + else if (c == 'b') + s.Append('\b'); + else if (c == 'f') + s.Append('\f'); + else if (c == 'n') + s.Append('\n'); + else if (c == 'r') + s.Append('\r'); + else if (c == 't') + s.Append('\t'); + else if (c == 'u') + { + int remainingLength = json.Length - index; + if (remainingLength >= 4) + { + // parse the 32 bit hex into an integer codepoint + uint codePoint; + if (!(success = UInt32.TryParse(new string(json, index, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out codePoint))) + return ""; + + // convert the integer codepoint to a unicode char and add to string + if (0xD800 <= codePoint && codePoint <= 0xDBFF) // if high surrogate + { + index += 4; // skip 4 chars + remainingLength = json.Length - index; + if (remainingLength >= 6) + { + uint lowCodePoint; + if (new string(json, index, 2) == "\\u" && UInt32.TryParse(new string(json, index + 2, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out lowCodePoint)) + { + if (0xDC00 <= lowCodePoint && lowCodePoint <= 0xDFFF) // if low surrogate + { + s.Append((char)codePoint); + s.Append((char)lowCodePoint); + index += 6; // skip 6 chars + continue; + } + } + } + success = false; // invalid surrogate pair + return ""; + } + s.Append(ConvertFromUtf32((int)codePoint)); + // skip 4 chars + index += 4; + } + else + break; + } + } + else + s.Append(c); + } + if (!complete) + { + success = false; + return null; + } + return s.ToString(); + } + + private static string ConvertFromUtf32(int utf32) + { + // http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Char.cs.htm + if (utf32 < 0 || utf32 > 0x10FFFF) + throw new ArgumentOutOfRangeException("utf32", "The argument must be from 0 to 0x10FFFF."); + if (0xD800 <= utf32 && utf32 <= 0xDFFF) + throw new ArgumentOutOfRangeException("utf32", "The argument must not be in surrogate pair range."); + if (utf32 < 0x10000) + return new string((char)utf32, 1); + utf32 -= 0x10000; + return new string(new char[] { (char)((utf32 >> 10) + 0xD800), (char)(utf32 % 0x0400 + 0xDC00) }); + } + + static object ParseNumber(char[] json, ref int index, ref bool success) + { + EatWhitespace(json, ref index); + int lastIndex = GetLastIndexOfNumber(json, index); + int charLength = (lastIndex - index) + 1; + object returnNumber; + string str = new string(json, index, charLength); + if (str.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || str.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1) + { + double number; + success = double.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); + returnNumber = number; + } + else + { + long number; + success = long.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); + returnNumber = number; + } + index = lastIndex + 1; + return returnNumber; + } + + static int GetLastIndexOfNumber(char[] json, int index) + { + int lastIndex; + for (lastIndex = index; lastIndex < json.Length; lastIndex++) + if ("0123456789+-.eE".IndexOf(json[lastIndex]) == -1) break; + return lastIndex - 1; + } + + static void EatWhitespace(char[] json, ref int index) + { + for (; index < json.Length; index++) + if (" \t\n\r\b\f".IndexOf(json[index]) == -1) break; + } + + static int LookAhead(char[] json, int index) + { + int saveIndex = index; + return NextToken(json, ref saveIndex); + } + + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + static int NextToken(char[] json, ref int index) + { + EatWhitespace(json, ref index); + if (index == json.Length) + return TOKEN_NONE; + char c = json[index]; + index++; + switch (c) + { + case '{': + return TOKEN_CURLY_OPEN; + case '}': + return TOKEN_CURLY_CLOSE; + case '[': + return TOKEN_SQUARED_OPEN; + case ']': + return TOKEN_SQUARED_CLOSE; + case ',': + return TOKEN_COMMA; + case '"': + return TOKEN_STRING; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '-': + return TOKEN_NUMBER; + case ':': + return TOKEN_COLON; + } + index--; + int remainingLength = json.Length - index; + // false + if (remainingLength >= 5) + { + if (json[index] == 'f' && json[index + 1] == 'a' && json[index + 2] == 'l' && json[index + 3] == 's' && json[index + 4] == 'e') + { + index += 5; + return TOKEN_FALSE; + } + } + // true + if (remainingLength >= 4) + { + if (json[index] == 't' && json[index + 1] == 'r' && json[index + 2] == 'u' && json[index + 3] == 'e') + { + index += 4; + return TOKEN_TRUE; + } + } + // null + if (remainingLength >= 4) + { + if (json[index] == 'n' && json[index + 1] == 'u' && json[index + 2] == 'l' && json[index + 3] == 'l') + { + index += 4; + return TOKEN_NULL; + } + } + return TOKEN_NONE; + } + + static bool SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, object value, StringBuilder builder) + { + bool success = true; + string stringValue = value as string; + if (stringValue != null) + success = SerializeString(stringValue, builder); + else + { + IDictionary dict = value as IDictionary; + if (dict != null) + { + success = SerializeObject(jsonSerializerStrategy, dict.Keys, dict.Values, builder); + } + else + { + IDictionary stringDictionary = value as IDictionary; + if (stringDictionary != null) + { + success = SerializeObject(jsonSerializerStrategy, stringDictionary.Keys, stringDictionary.Values, builder); + } + else + { + IEnumerable enumerableValue = value as IEnumerable; + if (enumerableValue != null) + success = SerializeArray(jsonSerializerStrategy, enumerableValue, builder); + else if (IsNumeric(value)) + success = SerializeNumber(value, builder); + else if (value is bool) + builder.Append((bool)value ? "true" : "false"); + else if (value == null) + builder.Append("null"); + else + { + object serializedObject; + success = jsonSerializerStrategy.TrySerializeNonPrimitiveObject(value, out serializedObject); + if (success) + SerializeValue(jsonSerializerStrategy, serializedObject, builder); + } + } + } + } + return success; + } + + static bool SerializeObject(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable keys, IEnumerable values, StringBuilder builder) + { + builder.Append("{"); + IEnumerator ke = keys.GetEnumerator(); + IEnumerator ve = values.GetEnumerator(); + bool first = true; + while (ke.MoveNext() && ve.MoveNext()) + { + object key = ke.Current; + object value = ve.Current; + if (!first) + builder.Append(","); + string stringKey = key as string; + if (stringKey != null) + SerializeString(stringKey, builder); + else + if (!SerializeValue(jsonSerializerStrategy, value, builder)) return false; + builder.Append(":"); + if (!SerializeValue(jsonSerializerStrategy, value, builder)) + return false; + first = false; + } + builder.Append("}"); + return true; + } + + static bool SerializeArray(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable anArray, StringBuilder builder) + { + builder.Append("["); + bool first = true; + foreach (object value in anArray) + { + if (!first) + builder.Append(","); + if (!SerializeValue(jsonSerializerStrategy, value, builder)) + return false; + first = false; + } + builder.Append("]"); + return true; + } + + static bool SerializeString(string aString, StringBuilder builder) + { + // Happy path if there's nothing to be escaped. IndexOfAny is highly optimized (and unmanaged) + if (aString.IndexOfAny(EscapeCharacters) == -1) + { + builder.Append('"'); + builder.Append(aString); + builder.Append('"'); + + return true; + } + + builder.Append('"'); + int safeCharacterCount = 0; + char[] charArray = aString.ToCharArray(); + + for (int i = 0; i < charArray.Length; i++) + { + char c = charArray[i]; + + // Non ascii characters are fine, buffer them up and send them to the builder + // in larger chunks if possible. The escape table is a 1:1 translation table + // with \0 [default(char)] denoting a safe character. + if (c >= EscapeTable.Length || EscapeTable[c] == default(char)) + { + safeCharacterCount++; + } + else + { + if (safeCharacterCount > 0) + { + builder.Append(charArray, i - safeCharacterCount, safeCharacterCount); + safeCharacterCount = 0; + } + + builder.Append('\\'); + builder.Append(EscapeTable[c]); + } + } + + if (safeCharacterCount > 0) + { + builder.Append(charArray, charArray.Length - safeCharacterCount, safeCharacterCount); + } + + builder.Append('"'); + return true; + } + + static bool SerializeNumber(object number, StringBuilder builder) + { + if (number is long) + builder.Append(((long)number).ToString(CultureInfo.InvariantCulture)); + else if (number is ulong) + builder.Append(((ulong)number).ToString(CultureInfo.InvariantCulture)); + else if (number is int) + builder.Append(((int)number).ToString(CultureInfo.InvariantCulture)); + else if (number is uint) + builder.Append(((uint)number).ToString(CultureInfo.InvariantCulture)); + else if (number is decimal) + builder.Append(((decimal)number).ToString(CultureInfo.InvariantCulture)); + else if (number is float) + builder.Append(((float)number).ToString(CultureInfo.InvariantCulture)); + else + builder.Append(Convert.ToDouble(number, CultureInfo.InvariantCulture).ToString("r", CultureInfo.InvariantCulture)); + return true; + } + + /// + /// Determines if a given object is numeric in any way + /// (can be integer, double, null, etc). + /// + static bool IsNumeric(object value) + { + if (value is sbyte) return true; + if (value is byte) return true; + if (value is short) return true; + if (value is ushort) return true; + if (value is int) return true; + if (value is uint) return true; + if (value is long) return true; + if (value is ulong) return true; + if (value is float) return true; + if (value is double) return true; + if (value is decimal) return true; + return false; + } + + private static IJsonSerializerStrategy _currentJsonSerializerStrategy; + public static IJsonSerializerStrategy CurrentJsonSerializerStrategy + { + get + { + return _currentJsonSerializerStrategy ?? + (_currentJsonSerializerStrategy = +#if SIMPLE_JSON_DATACONTRACT + DataContractJsonSerializerStrategy +#else + PocoJsonSerializerStrategy +#endif +); + } + set + { + _currentJsonSerializerStrategy = value; + } + } + + private static PocoJsonSerializerStrategy _pocoJsonSerializerStrategy; + [EditorBrowsable(EditorBrowsableState.Advanced)] + public static PocoJsonSerializerStrategy PocoJsonSerializerStrategy + { + get + { + return _pocoJsonSerializerStrategy ?? (_pocoJsonSerializerStrategy = new PocoJsonSerializerStrategy()); + } + } + +#if SIMPLE_JSON_DATACONTRACT + + private static DataContractJsonSerializerStrategy _dataContractJsonSerializerStrategy; + [System.ComponentModel.EditorBrowsable(EditorBrowsableState.Advanced)] + public static DataContractJsonSerializerStrategy DataContractJsonSerializerStrategy + { + get + { + return _dataContractJsonSerializerStrategy ?? (_dataContractJsonSerializerStrategy = new DataContractJsonSerializerStrategy()); + } + } + +#endif + } + + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + interface IJsonSerializerStrategy + { + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + bool TrySerializeNonPrimitiveObject(object input, out object output); + object DeserializeObject(object value, Type type); + } + + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + class PocoJsonSerializerStrategy : IJsonSerializerStrategy + { + internal IDictionary ConstructorCache; + internal IDictionary> GetCache; + internal IDictionary>> SetCache; + + internal static readonly Type[] EmptyTypes = new Type[0]; + internal static readonly Type[] ArrayConstructorParameterTypes = new Type[] { typeof(int) }; + + private static readonly string[] Iso8601Format = new string[] + { + @"yyyy-MM-dd\THH:mm:ss.FFFFFFF\Z", + @"yyyy-MM-dd\THH:mm:ss\Z", + @"yyyy-MM-dd\THH:mm:ssK" + }; + + public PocoJsonSerializerStrategy() + { + ConstructorCache = new ReflectionUtils.ThreadSafeDictionary(ContructorDelegateFactory); + GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); + SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); + } + + protected virtual string MapClrMemberNameToJsonFieldName(string clrPropertyName) + { + return clrPropertyName; + } + + internal virtual ReflectionUtils.ConstructorDelegate ContructorDelegateFactory(Type key) + { + return ReflectionUtils.GetContructor(key, key.IsArray ? ArrayConstructorParameterTypes : EmptyTypes); + } + + internal virtual IDictionary GetterValueFactory(Type type) + { + IDictionary result = new Dictionary(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanRead) + { + MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); + if (getMethod.IsStatic || !getMethod.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = ReflectionUtils.GetGetMethod(propertyInfo); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (fieldInfo.IsStatic || !fieldInfo.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = ReflectionUtils.GetGetMethod(fieldInfo); + } + return result; + } + + internal virtual IDictionary> SetterValueFactory(Type type) + { + IDictionary> result = new Dictionary>(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanWrite) + { + MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); + if (setMethod.IsStatic || !setMethod.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (fieldInfo.IsInitOnly || fieldInfo.IsStatic || !fieldInfo.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); + } + return result; + } + + public virtual bool TrySerializeNonPrimitiveObject(object input, out object output) + { + return TrySerializeKnownTypes(input, out output) || TrySerializeUnknownTypes(input, out output); + } + + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual object DeserializeObject(object value, Type type) + { + if (type == null) throw new ArgumentNullException("type"); + string str = value as string; + + if (type == typeof(Guid) && string.IsNullOrEmpty(str)) + return default(Guid); + + if (value == null) + return null; + + object obj = null; + + if (str != null) + { + if (str.Length != 0) // We know it can't be null now. + { + if (type == typeof(DateTime) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTime))) + return DateTime.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); + if (type == typeof(DateTimeOffset) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTimeOffset))) + return DateTimeOffset.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); + if (type == typeof(Guid) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid))) + return new Guid(str); + if (type == typeof(Uri)) + { + bool isValid = Uri.IsWellFormedUriString(str, UriKind.RelativeOrAbsolute); + + Uri result; + if (isValid && Uri.TryCreate(str, UriKind.RelativeOrAbsolute, out result)) + return result; + + return null; + } + + if (type == typeof(string)) + return str; + + return Convert.ChangeType(str, type, CultureInfo.InvariantCulture); + } + else + { + if (type == typeof(Guid)) + obj = default(Guid); + else if (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) + obj = null; + else + obj = str; + } + // Empty string case + if (!ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) + return str; + } + else if (value is bool) + return value; + + bool valueIsLong = value is long; + bool valueIsDouble = value is double; + if ((valueIsLong && type == typeof(long)) || (valueIsDouble && type == typeof(double))) + return value; + if ((valueIsDouble && type != typeof(double)) || (valueIsLong && type != typeof(long))) + { + obj = type == typeof(int) || type == typeof(long) || type == typeof(double) || type == typeof(float) || type == typeof(bool) || type == typeof(decimal) || type == typeof(byte) || type == typeof(short) + ? Convert.ChangeType(value, type, CultureInfo.InvariantCulture) + : value; + } + else + { + IDictionary objects = value as IDictionary; + if (objects != null) + { + IDictionary jsonObject = objects; + + if (ReflectionUtils.IsTypeDictionary(type)) + { + // if dictionary then + Type[] types = ReflectionUtils.GetGenericTypeArguments(type); + Type keyType = types[0]; + Type valueType = types[1]; + + Type genericType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType); + + IDictionary dict = (IDictionary)ConstructorCache[genericType](); + + foreach (KeyValuePair kvp in jsonObject) + dict.Add(kvp.Key, DeserializeObject(kvp.Value, valueType)); + + obj = dict; + } + else + { + if (type == typeof(object)) + obj = value; + else + { + obj = ConstructorCache[type](); + foreach (KeyValuePair> setter in SetCache[type]) + { + object jsonValue; + if (jsonObject.TryGetValue(setter.Key, out jsonValue)) + { + jsonValue = DeserializeObject(jsonValue, setter.Value.Key); + setter.Value.Value(obj, jsonValue); + } + } + } + } + } + else + { + IList valueAsList = value as IList; + if (valueAsList != null) + { + IList jsonObject = valueAsList; + IList list = null; + + if (type.IsArray) + { + list = (IList)ConstructorCache[type](jsonObject.Count); + int i = 0; + foreach (object o in jsonObject) + list[i++] = DeserializeObject(o, type.GetElementType()); + } + else if (ReflectionUtils.IsTypeGenericeCollectionInterface(type) || ReflectionUtils.IsAssignableFrom(typeof(IList), type)) + { + Type innerType = ReflectionUtils.GetGenericListElementType(type); + list = (IList)(ConstructorCache[type] ?? ConstructorCache[typeof(List<>).MakeGenericType(innerType)])(jsonObject.Count); + foreach (object o in jsonObject) + list.Add(DeserializeObject(o, innerType)); + } + obj = list; + } + } + return obj; + } + if (ReflectionUtils.IsNullableType(type)) + return ReflectionUtils.ToNullableType(obj, type); + return obj; + } + + protected virtual object SerializeEnum(Enum p) + { + return Convert.ToDouble(p, CultureInfo.InvariantCulture); + } + + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + protected virtual bool TrySerializeKnownTypes(object input, out object output) + { + bool returnValue = true; + if (input is DateTime) + output = ((DateTime)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); + else if (input is DateTimeOffset) + output = ((DateTimeOffset)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); + else if (input is Guid) + output = ((Guid)input).ToString("D"); + else if (input is Uri) + output = input.ToString(); + else + { + Enum inputEnum = input as Enum; + if (inputEnum != null) + output = SerializeEnum(inputEnum); + else + { + returnValue = false; + output = null; + } + } + return returnValue; + } + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] + protected virtual bool TrySerializeUnknownTypes(object input, out object output) + { + if (input == null) throw new ArgumentNullException("input"); + output = null; + Type type = input.GetType(); + if (type.FullName == null) + return false; + IDictionary obj = new JsonObject(); + IDictionary getters = GetCache[type]; + foreach (KeyValuePair getter in getters) + { + if (getter.Value != null) + obj.Add(MapClrMemberNameToJsonFieldName(getter.Key), getter.Value(input)); + } + output = obj; + return true; + } + } + +#if SIMPLE_JSON_DATACONTRACT + [GeneratedCode("simple-json", "1.0.0")] +#if SIMPLE_JSON_INTERNAL + internal +#else + public +#endif + class DataContractJsonSerializerStrategy : PocoJsonSerializerStrategy + { + public DataContractJsonSerializerStrategy() + { + GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); + SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); + } + + internal override IDictionary GetterValueFactory(Type type) + { + bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; + if (!hasDataContract) + return base.GetterValueFactory(type); + string jsonKey; + IDictionary result = new Dictionary(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanRead) + { + MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); + if (!getMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) + result[jsonKey] = ReflectionUtils.GetGetMethod(propertyInfo); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (!fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) + result[jsonKey] = ReflectionUtils.GetGetMethod(fieldInfo); + } + return result; + } + + internal override IDictionary> SetterValueFactory(Type type) + { + bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; + if (!hasDataContract) + return base.SetterValueFactory(type); + string jsonKey; + IDictionary> result = new Dictionary>(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanWrite) + { + MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); + if (!setMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) + result[jsonKey] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (!fieldInfo.IsInitOnly && !fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) + result[jsonKey] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); + } + // todo implement sorting for DATACONTRACT. + return result; + } + + private static bool CanAdd(MemberInfo info, out string jsonKey) + { + jsonKey = null; + if (ReflectionUtils.GetAttribute(info, typeof(IgnoreDataMemberAttribute)) != null) + return false; + DataMemberAttribute dataMemberAttribute = (DataMemberAttribute)ReflectionUtils.GetAttribute(info, typeof(DataMemberAttribute)); + if (dataMemberAttribute == null) + return false; + jsonKey = string.IsNullOrEmpty(dataMemberAttribute.Name) ? info.Name : dataMemberAttribute.Name; + return true; + } + } + +#endif + + namespace Reflection + { + // This class is meant to be copied into other libraries. So we want to exclude it from Code Analysis rules + // that might be in place in the target project. + [GeneratedCode("reflection-utils", "1.0.0")] +#if SIMPLE_JSON_REFLECTION_UTILS_PUBLIC + public +#else + internal +#endif + class ReflectionUtils + { + private static readonly object[] EmptyObjects = new object[] { }; + + public delegate object GetDelegate(object source); + public delegate void SetDelegate(object source, object value); + public delegate object ConstructorDelegate(params object[] args); + + public delegate TValue ThreadSafeDictionaryValueFactory(TKey key); + +#if SIMPLE_JSON_TYPEINFO + public static TypeInfo GetTypeInfo(Type type) + { + return type.GetTypeInfo(); + } +#else + public static Type GetTypeInfo(Type type) + { + return type; + } +#endif + + public static Attribute GetAttribute(MemberInfo info, Type type) + { +#if SIMPLE_JSON_TYPEINFO + if (info == null || type == null || !info.IsDefined(type)) + return null; + return info.GetCustomAttribute(type); +#else + if (info == null || type == null || !Attribute.IsDefined(info, type)) + return null; + return Attribute.GetCustomAttribute(info, type); +#endif + } + + public static Type GetGenericListElementType(Type type) + { + IEnumerable interfaces; +#if SIMPLE_JSON_TYPEINFO + interfaces = type.GetTypeInfo().ImplementedInterfaces; +#else + interfaces = type.GetInterfaces(); +#endif + foreach (Type implementedInterface in interfaces) + { + if (IsTypeGeneric(implementedInterface) && + implementedInterface.GetGenericTypeDefinition() == typeof(IList<>)) + { + return GetGenericTypeArguments(implementedInterface)[0]; + } + } + return GetGenericTypeArguments(type)[0]; + } + + public static Attribute GetAttribute(Type objectType, Type attributeType) + { + +#if SIMPLE_JSON_TYPEINFO + if (objectType == null || attributeType == null || !objectType.GetTypeInfo().IsDefined(attributeType)) + return null; + return objectType.GetTypeInfo().GetCustomAttribute(attributeType); +#else + if (objectType == null || attributeType == null || !Attribute.IsDefined(objectType, attributeType)) + return null; + return Attribute.GetCustomAttribute(objectType, attributeType); +#endif + } + + public static Type[] GetGenericTypeArguments(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetTypeInfo().GenericTypeArguments; +#else + return type.GetGenericArguments(); +#endif + } + + public static bool IsTypeGeneric(Type type) + { + return GetTypeInfo(type).IsGenericType; + } + + public static bool IsTypeGenericeCollectionInterface(Type type) + { + if (!IsTypeGeneric(type)) + return false; + + Type genericDefinition = type.GetGenericTypeDefinition(); + + return (genericDefinition == typeof(IList<>) + || genericDefinition == typeof(ICollection<>) + || genericDefinition == typeof(IEnumerable<>) +#if SIMPLE_JSON_READONLY_COLLECTIONS + || genericDefinition == typeof(IReadOnlyCollection<>) + || genericDefinition == typeof(IReadOnlyList<>) +#endif + ); + } + + public static bool IsAssignableFrom(Type type1, Type type2) + { + return GetTypeInfo(type1).IsAssignableFrom(GetTypeInfo(type2)); + } + + public static bool IsTypeDictionary(Type type) + { +#if SIMPLE_JSON_TYPEINFO + if (typeof(IDictionary<,>).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo())) + return true; +#else + if (typeof(System.Collections.IDictionary).IsAssignableFrom(type)) + return true; +#endif + if (!GetTypeInfo(type).IsGenericType) + return false; + + Type genericDefinition = type.GetGenericTypeDefinition(); + return genericDefinition == typeof(IDictionary<,>); + } + + public static bool IsNullableType(Type type) + { + return GetTypeInfo(type).IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>); + } + + public static object ToNullableType(object obj, Type nullableType) + { + return obj == null ? null : Convert.ChangeType(obj, Nullable.GetUnderlyingType(nullableType), CultureInfo.InvariantCulture); + } + + public static bool IsValueType(Type type) + { + return GetTypeInfo(type).IsValueType; + } + + public static IEnumerable GetConstructors(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetTypeInfo().DeclaredConstructors; +#else + return type.GetConstructors(); +#endif + } + + public static ConstructorInfo GetConstructorInfo(Type type, params Type[] argsType) + { + IEnumerable constructorInfos = GetConstructors(type); + int i; + bool matches; + foreach (ConstructorInfo constructorInfo in constructorInfos) + { + ParameterInfo[] parameters = constructorInfo.GetParameters(); + if (argsType.Length != parameters.Length) + continue; + + i = 0; + matches = true; + foreach (ParameterInfo parameterInfo in constructorInfo.GetParameters()) + { + if (parameterInfo.ParameterType != argsType[i]) + { + matches = false; + break; + } + } + + if (matches) + return constructorInfo; + } + + return null; + } + + public static IEnumerable GetProperties(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetRuntimeProperties(); +#else + return type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); +#endif + } + + public static IEnumerable GetFields(Type type) + { +#if SIMPLE_JSON_TYPEINFO + return type.GetRuntimeFields(); +#else + return type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); +#endif + } + + public static MethodInfo GetGetterMethodInfo(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_TYPEINFO + return propertyInfo.GetMethod; +#else + return propertyInfo.GetGetMethod(true); +#endif + } + + public static MethodInfo GetSetterMethodInfo(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_TYPEINFO + return propertyInfo.SetMethod; +#else + return propertyInfo.GetSetMethod(true); +#endif + } + + public static ConstructorDelegate GetContructor(ConstructorInfo constructorInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetConstructorByReflection(constructorInfo); +#else + return GetConstructorByExpression(constructorInfo); +#endif + } + + public static ConstructorDelegate GetContructor(Type type, params Type[] argsType) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetConstructorByReflection(type, argsType); +#else + return GetConstructorByExpression(type, argsType); +#endif + } + + public static ConstructorDelegate GetConstructorByReflection(ConstructorInfo constructorInfo) + { + return delegate (object[] args) { return constructorInfo.Invoke(args); }; + } + + public static ConstructorDelegate GetConstructorByReflection(Type type, params Type[] argsType) + { + ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); + return constructorInfo == null ? null : GetConstructorByReflection(constructorInfo); + } + +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION + + public static ConstructorDelegate GetConstructorByExpression(ConstructorInfo constructorInfo) + { + ParameterInfo[] paramsInfo = constructorInfo.GetParameters(); + ParameterExpression param = Expression.Parameter(typeof(object[]), "args"); + Expression[] argsExp = new Expression[paramsInfo.Length]; + for (int i = 0; i < paramsInfo.Length; i++) + { + Expression index = Expression.Constant(i); + Type paramType = paramsInfo[i].ParameterType; + Expression paramAccessorExp = Expression.ArrayIndex(param, index); + Expression paramCastExp = Expression.Convert(paramAccessorExp, paramType); + argsExp[i] = paramCastExp; + } + NewExpression newExp = Expression.New(constructorInfo, argsExp); + Expression> lambda = Expression.Lambda>(newExp, param); + Func compiledLambda = lambda.Compile(); + return delegate (object[] args) { return compiledLambda(args); }; + } + + public static ConstructorDelegate GetConstructorByExpression(Type type, params Type[] argsType) + { + ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); + return constructorInfo == null ? null : GetConstructorByExpression(constructorInfo); + } + +#endif + + public static GetDelegate GetGetMethod(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetGetMethodByReflection(propertyInfo); +#else + return GetGetMethodByExpression(propertyInfo); +#endif + } + + public static GetDelegate GetGetMethod(FieldInfo fieldInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetGetMethodByReflection(fieldInfo); +#else + return GetGetMethodByExpression(fieldInfo); +#endif + } + + public static GetDelegate GetGetMethodByReflection(PropertyInfo propertyInfo) + { + MethodInfo methodInfo = GetGetterMethodInfo(propertyInfo); + return delegate (object source) { return methodInfo.Invoke(source, EmptyObjects); }; + } + + public static GetDelegate GetGetMethodByReflection(FieldInfo fieldInfo) + { + return delegate (object source) { return fieldInfo.GetValue(source); }; + } + +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION + + public static GetDelegate GetGetMethodByExpression(PropertyInfo propertyInfo) + { + MethodInfo getMethodInfo = GetGetterMethodInfo(propertyInfo); + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); + Func compiled = Expression.Lambda>(Expression.TypeAs(Expression.Call(instanceCast, getMethodInfo), typeof(object)), instance).Compile(); + return delegate (object source) { return compiled(source); }; + } + + public static GetDelegate GetGetMethodByExpression(FieldInfo fieldInfo) + { + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + MemberExpression member = Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo); + GetDelegate compiled = Expression.Lambda(Expression.Convert(member, typeof(object)), instance).Compile(); + return delegate (object source) { return compiled(source); }; + } + +#endif + + public static SetDelegate GetSetMethod(PropertyInfo propertyInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetSetMethodByReflection(propertyInfo); +#else + return GetSetMethodByExpression(propertyInfo); +#endif + } + + public static SetDelegate GetSetMethod(FieldInfo fieldInfo) + { +#if SIMPLE_JSON_NO_LINQ_EXPRESSION + return GetSetMethodByReflection(fieldInfo); +#else + return GetSetMethodByExpression(fieldInfo); +#endif + } + + public static SetDelegate GetSetMethodByReflection(PropertyInfo propertyInfo) + { + MethodInfo methodInfo = GetSetterMethodInfo(propertyInfo); + return delegate (object source, object value) { methodInfo.Invoke(source, new object[] { value }); }; + } + + public static SetDelegate GetSetMethodByReflection(FieldInfo fieldInfo) + { + return delegate (object source, object value) { fieldInfo.SetValue(source, value); }; + } + +#if !SIMPLE_JSON_NO_LINQ_EXPRESSION + + public static SetDelegate GetSetMethodByExpression(PropertyInfo propertyInfo) + { + MethodInfo setMethodInfo = GetSetterMethodInfo(propertyInfo); + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + ParameterExpression value = Expression.Parameter(typeof(object), "value"); + UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); + UnaryExpression valueCast = (!IsValueType(propertyInfo.PropertyType)) ? Expression.TypeAs(value, propertyInfo.PropertyType) : Expression.Convert(value, propertyInfo.PropertyType); + Action compiled = Expression.Lambda>(Expression.Call(instanceCast, setMethodInfo, valueCast), new ParameterExpression[] { instance, value }).Compile(); + return delegate (object source, object val) { compiled(source, val); }; + } + + public static SetDelegate GetSetMethodByExpression(FieldInfo fieldInfo) + { + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + ParameterExpression value = Expression.Parameter(typeof(object), "value"); + Action compiled = Expression.Lambda>( + Assign(Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo), Expression.Convert(value, fieldInfo.FieldType)), instance, value).Compile(); + return delegate (object source, object val) { compiled(source, val); }; + } + + public static BinaryExpression Assign(Expression left, Expression right) + { +#if SIMPLE_JSON_TYPEINFO + return Expression.Assign(left, right); +#else + MethodInfo assign = typeof(Assigner<>).MakeGenericType(left.Type).GetMethod("Assign"); + BinaryExpression assignExpr = Expression.Add(left, right, assign); + return assignExpr; +#endif + } + + private static class Assigner + { + public static T Assign(ref T left, T right) + { + return (left = right); + } + } + +#endif + + public sealed class ThreadSafeDictionary : IDictionary + { + private readonly object _lock = new object(); + private readonly ThreadSafeDictionaryValueFactory _valueFactory; + private Dictionary _dictionary; + + public ThreadSafeDictionary(ThreadSafeDictionaryValueFactory valueFactory) + { + _valueFactory = valueFactory; + } + + private TValue Get(TKey key) + { + if (_dictionary == null) + return AddValue(key); + TValue value; + if (!_dictionary.TryGetValue(key, out value)) + return AddValue(key); + return value; + } + + private TValue AddValue(TKey key) + { + TValue value = _valueFactory(key); + lock (_lock) + { + if (_dictionary == null) + { + _dictionary = new Dictionary(); + _dictionary[key] = value; + } + else + { + TValue val; + if (_dictionary.TryGetValue(key, out val)) + return val; + Dictionary dict = new Dictionary(_dictionary); + dict[key] = value; + _dictionary = dict; + } + } + return value; + } + + public void Add(TKey key, TValue value) + { + throw new NotImplementedException(); + } + + public bool ContainsKey(TKey key) + { + return _dictionary.ContainsKey(key); + } + + public ICollection Keys + { + get { return _dictionary.Keys; } + } + + public bool Remove(TKey key) + { + throw new NotImplementedException(); + } + + public bool TryGetValue(TKey key, out TValue value) + { + value = this[key]; + return true; + } + + public ICollection Values + { + get { return _dictionary.Values; } + } + + public TValue this[TKey key] + { + get { return Get(key); } + set { throw new NotImplementedException(); } + } + + public void Add(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void Clear() + { + throw new NotImplementedException(); + } + + public bool Contains(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public int Count + { + get { return _dictionary.Count; } + } + + public bool IsReadOnly + { + get { throw new NotImplementedException(); } + } + + public bool Remove(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public IEnumerator> GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + } + + } + } +} +// ReSharper restore LoopCanBeConvertedToQuery +// ReSharper restore RedundantExplicitArrayCreation +// ReSharper restore SuggestUseVarKeywordEvident \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Localization.cs b/src/api/wix/WixToolset.Data/Localization.cs new file mode 100644 index 00000000..70c096de --- /dev/null +++ b/src/api/wix/WixToolset.Data/Localization.cs @@ -0,0 +1,137 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Collections.Generic; + using SimpleJson; + using WixToolset.Data.Bind; + + /// + /// Object that represents a localization file. + /// + public sealed class Localization + { + private readonly Dictionary variables = new Dictionary(); + private readonly Dictionary localizedControls = new Dictionary(); + + /// + /// Instantiates a new localization object. + /// + public Localization(int? codepage, int? summaryInformationCodepage, string culture, IDictionary variables, IDictionary localizedControls) + { + this.Codepage = codepage; + this.SummaryInformationCodepage = summaryInformationCodepage; + this.Culture = culture?.ToLowerInvariant() ?? String.Empty; + this.variables = new Dictionary(variables); + this.localizedControls = new Dictionary(localizedControls); + } + + /// + /// Gets the codepage. + /// + /// The codepage. + public int? Codepage { get; private set; } + + /// + /// Gets the summary information codepage. + /// + /// The summary information codepage. + public int? SummaryInformationCodepage { get; private set; } + + /// + /// Gets the culture. + /// + /// The culture. + public string Culture { get; private set; } + + /// + /// Gets the variables. + /// + /// The variables. + public ICollection Variables => this.variables.Values; + + /// + /// Gets the localized controls. + /// + /// The localized controls. + public ICollection> LocalizedControls => this.localizedControls; + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject(); + + if (this.Codepage.HasValue) + { + jsonObject.Add("codepage", this.Codepage.Value); + } + + if (this.SummaryInformationCodepage.HasValue) + { + jsonObject.Add("summaryCodepage", this.SummaryInformationCodepage.Value); + } + + jsonObject.AddIsNotNullOrEmpty("culture", this.Culture); + + // Serialize bind variables. + if (this.Variables.Count > 0) + { + var variablesJson = new JsonArray(this.Variables.Count); + + foreach (var variable in this.Variables) + { + var variableJson = variable.Serialize(); + + variablesJson.Add(variableJson); + } + + jsonObject.Add("variables", variablesJson); + } + + // Serialize localized control. + if (this.LocalizedControls.Count > 0) + { + var controlsJson = new JsonObject(); + + foreach (var controlWithKey in this.LocalizedControls) + { + var controlJson = controlWithKey.Value.Serialize(); + + controlsJson.Add(controlWithKey.Key, controlJson); + } + + jsonObject.Add("controls", controlsJson); + } + + return jsonObject; + } + + internal static Localization Deserialize(JsonObject jsonObject) + { + var codepage = jsonObject.GetValueOrDefault("codepage", null); + var summaryCodepage = jsonObject.GetValueOrDefault("summaryCodepage", null); + var culture = jsonObject.GetValueOrDefault("culture"); + + var variables = new Dictionary(); + var variablesJson = jsonObject.GetValueOrDefault("variables", new JsonArray()); + foreach (JsonObject variableJson in variablesJson) + { + var bindPath = BindVariable.Deserialize(variableJson); + variables.Add(bindPath.Id, bindPath); + } + + var controls = new Dictionary(); + var controlsJson = jsonObject.GetValueOrDefault("controls"); + if (controlsJson != null) + { + foreach (var controlJsonWithKey in controlsJson) + { + var control = LocalizedControl.Deserialize((JsonObject)controlJsonWithKey.Value); + controls.Add(controlJsonWithKey.Key, control); + } + } + + return new Localization(codepage, summaryCodepage, culture, variables, controls); + } + } +} diff --git a/src/api/wix/WixToolset.Data/LocalizedControl.cs b/src/api/wix/WixToolset.Data/LocalizedControl.cs new file mode 100644 index 00000000..1252842b --- /dev/null +++ b/src/api/wix/WixToolset.Data/LocalizedControl.cs @@ -0,0 +1,94 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using SimpleJson; + + public class LocalizedControl + { + public LocalizedControl(string dialog, string control, int x, int y, int width, int height, bool rightToLeft, bool rightAligned, bool leftScroll, string text) + { + this.Dialog = dialog; + this.Control = control; + this.X = x; + this.Y = y; + this.Width = width; + this.Height = height; + this.RightToLeft = rightToLeft; + this.RightAligned = rightAligned; + this.LeftScroll = leftScroll; + this.Text = text; + } + + public string Dialog { get; } + + public string Control { get; } + + public int X { get; } + + public int Y { get; } + + public int Width { get; } + + public int Height { get; } + + public bool RightToLeft { get; } + + public bool RightAligned { get; } + + public bool LeftScroll { get; } + + public string Text { get; } + + /// + /// Get key for a localized control. + /// + /// The localized control id. + public string GetKey() => LocalizedControl.GetKey(this.Dialog, this.Control); + + /// + /// Get key for a localized control. + /// + /// The optional id of the control's dialog. + /// The id of the control. + /// The localized control id. + public static string GetKey(string dialog, string control) => String.Concat(dialog, "/", control); + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "dialog", this.Dialog }, + }; + + jsonObject.AddIsNotNullOrEmpty("control", this.Control); + jsonObject.AddNonDefaultValue("x", this.X); + jsonObject.AddNonDefaultValue("y", this.Y); + jsonObject.AddNonDefaultValue("width", this.Width); + jsonObject.AddNonDefaultValue("height", this.Height); + jsonObject.AddNonDefaultValue("rightToLeft", this.RightToLeft); + jsonObject.AddNonDefaultValue("rightAligned", this.RightAligned); + jsonObject.AddNonDefaultValue("leftScroll", this.LeftScroll); + jsonObject.AddIsNotNullOrEmpty("text", this.Text); + + return jsonObject; + } + + internal static LocalizedControl Deserialize(JsonObject jsonObject) + { + var dialog = jsonObject.GetValueOrDefault("dialog"); + var control = jsonObject.GetValueOrDefault("control"); + var x = jsonObject.GetValueOrDefault("x", 0); + var y = jsonObject.GetValueOrDefault("y", 0); + var width = jsonObject.GetValueOrDefault("width", 0); + var height = jsonObject.GetValueOrDefault("height", 0); + var rightToLeft = jsonObject.GetValueOrDefault("rightToLeft", false); + var rightAligned = jsonObject.GetValueOrDefault("rightAligned", false); + var leftScroll = jsonObject.GetValueOrDefault("leftScroll", false); + var text = jsonObject.GetValueOrDefault("text"); + + return new LocalizedControl(dialog, control, x, y, width, height, rightToLeft, rightAligned, leftScroll, text); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Message.cs b/src/api/wix/WixToolset.Data/Message.cs new file mode 100644 index 00000000..85a402e5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Message.cs @@ -0,0 +1,97 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Resources; + + /// + /// Event args for message events. + /// + public class Message + { + /// + /// Creates a new Message using a format string. + /// + /// Source line numbers for the message. + /// Message level. + /// Id for the message. + /// Format . + /// Arguments for the format string. + public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, string format, params object[] messageArgs) + { + this.SourceLineNumbers = sourceLineNumbers; + this.Level = level; + this.Id = id; + this.ResourceNameOrFormat = format; + this.MessageArgs = messageArgs; + } + + /// + /// Creates a new Message using a format string from a resource manager. + /// + /// Source line numbers for the message. + /// Message level. + /// Id for the message. + /// Resource manager. + /// Name of the resource. + /// Arguments for the format string. + public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, ResourceManager resourceManager, string resourceName, params object[] messageArgs) + { + this.SourceLineNumbers = sourceLineNumbers; + this.Level = level; + this.Id = id; + this.ResourceManager = resourceManager; + this.ResourceNameOrFormat = resourceName; + this.MessageArgs = messageArgs; + } + + /// + /// Gets the source line numbers. + /// + /// The source line numbers. + public SourceLineNumber SourceLineNumbers { get; } + + /// + /// Gets the Id for the message. + /// + /// The Id for the message. + public int Id { get; } + + /// + /// Gets the resource manager for this event args. + /// + /// The resource manager for this event args. + public ResourceManager ResourceManager { get; } + + /// + /// Gets the name of the resource or format string if no resource manager was provided. + /// + /// The name of the resource or format string. + public string ResourceNameOrFormat { get; } + + /// + /// Gets or sets the for the message. + /// + /// The for the message. + public MessageLevel Level { get; private set; } + + /// + /// Gets the arguments for the format string. + /// + /// The arguments for the format string. + public object[] MessageArgs { get; } + + public override string ToString() + { + if (this.ResourceManager == null) + { + return String.Format(this.ResourceNameOrFormat, this.MessageArgs); + } + else + { + return String.Format(this.ResourceManager.GetString(this.ResourceNameOrFormat), this.MessageArgs); + } + } + } +} diff --git a/src/api/wix/WixToolset.Data/MessageLevel.cs b/src/api/wix/WixToolset.Data/MessageLevel.cs new file mode 100644 index 00000000..d980e371 --- /dev/null +++ b/src/api/wix/WixToolset.Data/MessageLevel.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Enum for message to display. + /// + public enum MessageLevel + { + /// Display nothing. + Nothing, + + /// Display verbose information. + Verbose, + + /// Display information. + Information, + + /// Display warning. + Warning, + + /// Display error. + Error, + } +} diff --git a/src/api/wix/WixToolset.Data/OutputType.cs b/src/api/wix/WixToolset.Data/OutputType.cs new file mode 100644 index 00000000..3bbdddcc --- /dev/null +++ b/src/api/wix/WixToolset.Data/OutputType.cs @@ -0,0 +1,37 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Various types of output. + /// + public enum OutputType + { + /// Unknown output type. + Unknown, + + /// Bundle output type. + Bundle, + + /// Library output type. + Library, + + /// Module output type. + Module, + + /// Patch output type. + Patch, + + /// Patch Creation output type. + PatchCreation, + + /// Product output type. + Product, + + /// Transform output type. + Transform, + + /// Intermediate representation post-link output type. + IntermediatePostLink, + } +} diff --git a/src/api/wix/WixToolset.Data/PackagingType.cs b/src/api/wix/WixToolset.Data/PackagingType.cs new file mode 100644 index 00000000..a50f1236 --- /dev/null +++ b/src/api/wix/WixToolset.Data/PackagingType.cs @@ -0,0 +1,11 @@ +// 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. + +namespace WixToolset.Data +{ + public enum PackagingType + { + Unknown, + Embedded, + External, + } +} diff --git a/src/api/wix/WixToolset.Data/PdbType.cs b/src/api/wix/WixToolset.Data/PdbType.cs new file mode 100644 index 00000000..fcbf9cb7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/PdbType.cs @@ -0,0 +1,16 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Platforms supported by compiler. + /// + public enum PdbType + { + /// A .wixpdb file matching the generated output (default). + Full, + + /// No .wixpdb file. + None, + } +} diff --git a/src/api/wix/WixToolset.Data/Platform.cs b/src/api/wix/WixToolset.Data/Platform.cs new file mode 100644 index 00000000..f939ac55 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Platform.cs @@ -0,0 +1,19 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Platforms supported by compiler. + /// + public enum Platform + { + /// x86. + X86, + + /// x64. + X64, + + /// arm64. + ARM64, + } +} diff --git a/src/api/wix/WixToolset.Data/SectionType.cs b/src/api/wix/WixToolset.Data/SectionType.cs new file mode 100644 index 00000000..3322ba1a --- /dev/null +++ b/src/api/wix/WixToolset.Data/SectionType.cs @@ -0,0 +1,31 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Type of section. + /// + public enum SectionType + { + /// Unknown section type, default and invalid. + Unknown, + + /// Bundle section type. + Bundle, + + /// Fragment section type. + Fragment, + + /// Module section type. + Module, + + /// Product section type. + Product, + + /// Patch creation section type. + PatchCreation, + + /// Patch section type. + Patch + } +} diff --git a/src/api/wix/WixToolset.Data/SimpleSymbolDefinitionCreator.cs b/src/api/wix/WixToolset.Data/SimpleSymbolDefinitionCreator.cs new file mode 100644 index 00000000..e22d53e7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/SimpleSymbolDefinitionCreator.cs @@ -0,0 +1,31 @@ +// 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. + +namespace WixToolset.Data +{ + using System.Collections.Generic; + + internal class SimpleSymbolDefinitionCreator : ISymbolDefinitionCreator + { + private Dictionary CustomDefinitionByName { get; } = new Dictionary(); + + public void AddCustomSymbolDefinition(IntermediateSymbolDefinition definition) + { + if (!this.CustomDefinitionByName.TryGetValue(definition.Name, out var existing) || definition.Revision > existing.Revision) + { + this.CustomDefinitionByName[definition.Name] = definition; + } + } + + public bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition) + { + symbolDefinition = SymbolDefinitions.ByName(name); + + if (symbolDefinition == null) + { + symbolDefinition = this.CustomDefinitionByName.GetValueOrDefault(name); + } + + return symbolDefinition != null; + } + } +} diff --git a/src/api/wix/WixToolset.Data/SourceLineNumber.cs b/src/api/wix/WixToolset.Data/SourceLineNumber.cs new file mode 100644 index 00000000..970f17e7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/SourceLineNumber.cs @@ -0,0 +1,275 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.IO; + using System.Text; + using System.Xml; + using System.Xml.Linq; + using SimpleJson; + + /// + /// Represents file name and line number for source file + /// + public sealed class SourceLineNumber + { + /// + /// Constructor for a source with no line information. + /// + /// File name of the source. + public SourceLineNumber(string fileName) + { + this.FileName = fileName; + } + + /// + /// Constructor for a source with line information. + /// + /// File name of the source. + /// Line number of the source. + public SourceLineNumber(string fileName, int lineNumber) + { + this.FileName = fileName; + this.LineNumber = lineNumber; + } + + /// + /// Constructor for a source with a parent and no line information. + /// + /// File name of the source. + /// Parent of this source line number + public SourceLineNumber(string fileName, SourceLineNumber parent) + { + this.FileName = fileName; + this.Parent = parent; + } + + /// + /// Constructor for a source with a parent and line information. + /// + /// File name of the source. + /// Parent of this source line number + /// Line number of the source. + public SourceLineNumber(string fileName, SourceLineNumber parent, int lineNumber) + { + this.FileName = fileName; + this.Parent = parent; + this.LineNumber = lineNumber; + } + + /// + /// Gets the file name of the source. + /// + /// File name for the source. + public string FileName { get; } + + /// + /// Gets or sets the line number of the source. + /// + /// Line number of the source. + public int? LineNumber { get; set; } + + /// + /// Gets or sets the parent source line number that included this source line number. + /// + public SourceLineNumber Parent { get; private set; } + + /// + /// Gets the file name and line information. + /// + /// File name and line information. + public string QualifiedFileName => this.LineNumber.HasValue ? String.Concat(this.FileName, "*", this.LineNumber) : this.FileName; + + internal static SourceLineNumber Deserialize(JsonObject jsonObject) + { + var fileName = jsonObject.GetValueOrDefault("file"); + var lineNumber = jsonObject.GetValueOrDefault("line", null); + + var parentJson = jsonObject.GetValueOrDefault("parent"); + var parent = (parentJson == null) ? null : SourceLineNumber.Deserialize(parentJson); + + return new SourceLineNumber(fileName) + { + LineNumber = lineNumber, + Parent = parent + }; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "file", this.FileName }, + { "line", this.LineNumber } + }; + + if (this.Parent != null) + { + var parentJson = this.Parent.Serialize(); + jsonObject.Add("parent", parentJson); + } + + return jsonObject; + } + + /// + /// Creates a source line number from an encoded string. + /// + /// Encoded string to parse. + public static SourceLineNumber CreateFromEncoded(string encodedSourceLineNumbers) + { + var linesSplitIndex = encodedSourceLineNumbers.IndexOf('|'); + + // The most common case is that there is a single encoded line, + // so optimize for that case. + if (linesSplitIndex < 0) + { + return DecodeSourceLineNumber(encodedSourceLineNumbers, 0, -1); + } + else // decode the multiple lines. + { + var startLine = 0; + + SourceLineNumber first = null; + SourceLineNumber parent = null; + while (startLine < encodedSourceLineNumbers.Length) + { + var source = DecodeSourceLineNumber(encodedSourceLineNumbers, startLine, linesSplitIndex - 1); + + if (null != parent) + { + parent.Parent = source; + } + + parent = source; + if (null == first) + { + first = parent; + } + + if (linesSplitIndex < 0) + { + break; + } + + startLine = linesSplitIndex + 1; + linesSplitIndex = encodedSourceLineNumbers.IndexOf('|', startLine); + } + + return first; + } + } + + /// + /// Creates a source line number from a URI. + /// + /// Uri to convert into source line number + public static SourceLineNumber CreateFromUri(string uri) + { + if (String.IsNullOrEmpty(uri)) + { + return null; + } + + // make the local path look like a normal local path + var localPath = new Uri(uri).LocalPath; + localPath = localPath.TrimStart(Path.AltDirectorySeparatorChar).Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar); + + return new SourceLineNumber(localPath); + } + + /// + /// Creates a source line number from an XObject. + /// + /// XML node to create source line number from. + /// Optional line number offset into XML file not already included in the line information. + public static SourceLineNumber CreateFromXObject(XObject node, int offset = 0) + { + var result = CreateFromUri(node.BaseUri); + if (null != result && node is IXmlLineInfo lineInfo) + { + result.LineNumber = lineInfo.LineNumber + offset; + } + + return result; + } + + /// + /// Get the source line information for the current element. Typically this information + /// is set by the precompiler for each element that it encounters. + /// + /// Element to get source line information for. + /// + /// The source line number used to author the element being processed or + /// null if the preprocessor did not process the element or the node is + /// not an element. + /// + public static SourceLineNumber GetFromXAnnotation(XObject node) + { + return node.Annotation(); + } + + /// + /// Returns the SourceLineNumber and parents encoded as a string. + /// + public string GetEncoded() + { + var sb = new StringBuilder(this.QualifiedFileName); + + for (var parent = this.Parent; null != parent; parent = parent.Parent) + { + sb.Append("|"); + sb.Append(parent.QualifiedFileName); + } + + return sb.ToString(); + } + + /// + /// Determines if two SourceLineNumbers are equivalent. + /// + /// Object to compare. + /// True if SourceLineNumbers are equivalent. + public override bool Equals(object obj) + { + return obj is SourceLineNumber other && + this.LineNumber.HasValue == other.LineNumber.HasValue && + (!this.LineNumber.HasValue || this.LineNumber == other.LineNumber) && + this.FileName.Equals(other.FileName, StringComparison.OrdinalIgnoreCase) && + (null == this.Parent && null == other.Parent || this.Parent.Equals(other.Parent)); + } + + /// + /// Serves as a hash code for a particular type. + /// + /// The hash code. + public override int GetHashCode() + { + return this.GetEncoded().GetHashCode(); + } + + /// + /// Shows a string representation of a source line number. + /// + /// String representation of a source line number. + public override string ToString() + { + return this.LineNumber.HasValue && !String.IsNullOrEmpty(this.FileName) ? String.Concat(this.FileName, "(", this.LineNumber, ")") : this.FileName ?? String.Empty; + } + + private static SourceLineNumber DecodeSourceLineNumber(string encoded, int startIndex, int endIndex) + { + if (endIndex < 0) + { + endIndex = encoded.Length - 1; + } + + var count = endIndex - startIndex; + var filenameSplitIndex = encoded.LastIndexOf('*', endIndex - 1, count); + return (filenameSplitIndex < 0) ? new SourceLineNumber(encoded) : + new SourceLineNumber(encoded.Substring(startIndex, filenameSplitIndex - startIndex), + Convert.ToInt32(encoded.Substring(filenameSplitIndex + 1, endIndex - filenameSplitIndex))); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/ActionTextSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ActionTextSymbol.cs new file mode 100644 index 00000000..80662060 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ActionTextSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ActionText = new IntermediateSymbolDefinition( + SymbolDefinitionType.ActionText, + new[] + { + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ActionTextSymbolFields.Template), IntermediateFieldType.String), + }, + typeof(ActionTextSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ActionTextSymbolFields + { + Action, + Description, + Template, + } + + public class ActionTextSymbol : IntermediateSymbol + { + public ActionTextSymbol() : base(SymbolDefinitions.ActionText, null, null) + { + } + + public ActionTextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ActionText, sourceLineNumber, id) + { + } + + public IntermediateField this[ActionTextSymbolFields index] => this.Fields[(int)index]; + + public string Action + { + get => (string)this.Fields[(int)ActionTextSymbolFields.Action]; + set => this.Set((int)ActionTextSymbolFields.Action, value); + } + + public string Description + { + get => (string)this.Fields[(int)ActionTextSymbolFields.Description]; + set => this.Set((int)ActionTextSymbolFields.Description, value); + } + + public string Template + { + get => (string)this.Fields[(int)ActionTextSymbolFields.Template]; + set => this.Set((int)ActionTextSymbolFields.Template, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/AppIdSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/AppIdSymbol.cs new file mode 100644 index 00000000..3eafa26f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/AppIdSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition AppId = new IntermediateSymbolDefinition( + SymbolDefinitionType.AppId, + new[] + { + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.AppId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RemoteServerName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.LocalService), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ServiceParameters), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.DllSurrogate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.ActivateAtStorage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AppIdSymbolFields.RunAsInteractiveUser), IntermediateFieldType.Number), + }, + typeof(AppIdSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum AppIdSymbolFields + { + AppId, + RemoteServerName, + LocalService, + ServiceParameters, + DllSurrogate, + ActivateAtStorage, + RunAsInteractiveUser, + } + + public class AppIdSymbol : IntermediateSymbol + { + public AppIdSymbol() : base(SymbolDefinitions.AppId, null, null) + { + } + + public AppIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppId, sourceLineNumber, id) + { + } + + public IntermediateField this[AppIdSymbolFields index] => this.Fields[(int)index]; + + public string AppId + { + get => (string)this.Fields[(int)AppIdSymbolFields.AppId]; + set => this.Set((int)AppIdSymbolFields.AppId, value); + } + + public string RemoteServerName + { + get => (string)this.Fields[(int)AppIdSymbolFields.RemoteServerName]; + set => this.Set((int)AppIdSymbolFields.RemoteServerName, value); + } + + public string LocalService + { + get => (string)this.Fields[(int)AppIdSymbolFields.LocalService]; + set => this.Set((int)AppIdSymbolFields.LocalService, value); + } + + public string ServiceParameters + { + get => (string)this.Fields[(int)AppIdSymbolFields.ServiceParameters]; + set => this.Set((int)AppIdSymbolFields.ServiceParameters, value); + } + + public string DllSurrogate + { + get => (string)this.Fields[(int)AppIdSymbolFields.DllSurrogate]; + set => this.Set((int)AppIdSymbolFields.DllSurrogate, value); + } + + public bool? ActivateAtStorage + { + get => (bool?)this.Fields[(int)AppIdSymbolFields.ActivateAtStorage]; + set => this.Set((int)AppIdSymbolFields.ActivateAtStorage, value); + } + + public bool? RunAsInteractiveUser + { + get => (bool?)this.Fields[(int)AppIdSymbolFields.RunAsInteractiveUser]; + set => this.Set((int)AppIdSymbolFields.RunAsInteractiveUser, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/AppSearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/AppSearchSymbol.cs new file mode 100644 index 00000000..2bd3d6ba --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/AppSearchSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition AppSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.AppSearch, + new[] + { + new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.PropertyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AppSearchSymbolFields.SignatureRef), IntermediateFieldType.String), + }, + typeof(AppSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum AppSearchSymbolFields + { + PropertyRef, + SignatureRef, + } + + public class AppSearchSymbol : IntermediateSymbol + { + public AppSearchSymbol() : base(SymbolDefinitions.AppSearch, null, null) + { + } + + public AppSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.AppSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[AppSearchSymbolFields index] => this.Fields[(int)index]; + + public string PropertyRef + { + get => (string)this.Fields[(int)AppSearchSymbolFields.PropertyRef]; + set => this.Set((int)AppSearchSymbolFields.PropertyRef, value); + } + + public string SignatureRef + { + get => (string)this.Fields[(int)AppSearchSymbolFields.SignatureRef]; + set => this.Set((int)AppSearchSymbolFields.SignatureRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/AssemblySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/AssemblySymbol.cs new file mode 100644 index 00000000..192ca4eb --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/AssemblySymbol.cs @@ -0,0 +1,96 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Assembly = new IntermediateSymbolDefinition( + SymbolDefinitionType.Assembly, + new[] + { + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ManifestFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ApplicationFileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(AssemblySymbolFields.ProcessorArchitecture), IntermediateFieldType.String), + }, + typeof(AssemblySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum AssemblySymbolFields + { + ComponentRef, + FeatureRef, + ManifestFileRef, + ApplicationFileRef, + Type, + ProcessorArchitecture, + } + + public enum AssemblyType + { + /// File is not an assembly. + NotAnAssembly, + + /// File is a Common Language Runtime Assembly. + DotNetAssembly, + + /// File is Win32 SxS assembly. + Win32Assembly, + } + + public class AssemblySymbol : IntermediateSymbol + { + public AssemblySymbol() : base(SymbolDefinitions.Assembly, null, null) + { + } + + public AssemblySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Assembly, sourceLineNumber, id) + { + } + + public IntermediateField this[AssemblySymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.ComponentRef]; + set => this.Set((int)AssemblySymbolFields.ComponentRef, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.FeatureRef]; + set => this.Set((int)AssemblySymbolFields.FeatureRef, value); + } + + public string ManifestFileRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.ManifestFileRef]; + set => this.Set((int)AssemblySymbolFields.ManifestFileRef, value); + } + + public string ApplicationFileRef + { + get => (string)this.Fields[(int)AssemblySymbolFields.ApplicationFileRef]; + set => this.Set((int)AssemblySymbolFields.ApplicationFileRef, value); + } + + public AssemblyType Type + { + get => (AssemblyType)this.Fields[(int)AssemblySymbolFields.Type].AsNumber(); + set => this.Set((int)AssemblySymbolFields.Type, (int)value); + } + + public string ProcessorArchitecture + { + get => (string)this.Fields[(int)AssemblySymbolFields.ProcessorArchitecture]; + set => this.Set((int)AssemblySymbolFields.ProcessorArchitecture, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/BBControlSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/BBControlSymbol.cs new file mode 100644 index 00000000..277d1d85 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/BBControlSymbol.cs @@ -0,0 +1,180 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition BBControl = new IntermediateSymbolDefinition( + SymbolDefinitionType.BBControl, + new[] + { + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BillboardRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.BBControl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Enabled), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Indirect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Integer), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Sunken), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BBControlSymbolFields.SourceFile), IntermediateFieldType.Path), + }, + typeof(BBControlSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum BBControlSymbolFields + { + BillboardRef, + BBControl, + Type, + X, + Y, + Width, + Height, + Attributes, + Enabled, + Indirect, + Integer, + LeftScroll, + RightAligned, + RightToLeft, + Sunken, + Visible, + Text, + SourceFile + } + + public class BBControlSymbol : IntermediateSymbol + { + public BBControlSymbol() : base(SymbolDefinitions.BBControl, null, null) + { + } + + public BBControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.BBControl, sourceLineNumber, id) + { + } + + public IntermediateField this[BBControlSymbolFields index] => this.Fields[(int)index]; + + public string BillboardRef + { + get => (string)this.Fields[(int)BBControlSymbolFields.BillboardRef]; + set => this.Set((int)BBControlSymbolFields.BillboardRef, value); + } + + public string BBControl + { + get => (string)this.Fields[(int)BBControlSymbolFields.BBControl]; + set => this.Set((int)BBControlSymbolFields.BBControl, value); + } + + public string Type + { + get => (string)this.Fields[(int)BBControlSymbolFields.Type]; + set => this.Set((int)BBControlSymbolFields.Type, value); + } + + public int X + { + get => (int)this.Fields[(int)BBControlSymbolFields.X]; + set => this.Set((int)BBControlSymbolFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)BBControlSymbolFields.Y]; + set => this.Set((int)BBControlSymbolFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)BBControlSymbolFields.Width].AsNumber(); + set => this.Set((int)BBControlSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)BBControlSymbolFields.Height]; + set => this.Set((int)BBControlSymbolFields.Height, value); + } + + public int Attributes + { + get => this.Fields[(int)BBControlSymbolFields.Attributes].AsNumber(); + set => this.Set((int)BBControlSymbolFields.Attributes, value); + } + + public bool Enabled + { + get => this.Fields[(int)BBControlSymbolFields.Enabled].AsBool(); + set => this.Set((int)BBControlSymbolFields.Enabled, value); + } + + public bool Indirect + { + get => this.Fields[(int)BBControlSymbolFields.Indirect].AsBool(); + set => this.Set((int)BBControlSymbolFields.Indirect, value); + } + + public bool Integer + { + get => this.Fields[(int)BBControlSymbolFields.Integer].AsBool(); + set => this.Set((int)BBControlSymbolFields.Integer, value); + } + + public bool LeftScroll + { + get => this.Fields[(int)BBControlSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)BBControlSymbolFields.LeftScroll, value); + } + + public bool RightAligned + { + get => this.Fields[(int)BBControlSymbolFields.RightAligned].AsBool(); + set => this.Set((int)BBControlSymbolFields.RightAligned, value); + } + + public bool RightToLeft + { + get => this.Fields[(int)BBControlSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)BBControlSymbolFields.RightToLeft, value); + } + + public bool Sunken + { + get => this.Fields[(int)BBControlSymbolFields.Sunken].AsBool(); + set => this.Set((int)BBControlSymbolFields.Sunken, value); + } + + public bool Visible + { + get => this.Fields[(int)BBControlSymbolFields.Visible].AsBool(); + set => this.Set((int)BBControlSymbolFields.Visible, value); + } + + public string Text + { + get => (string)this.Fields[(int)BBControlSymbolFields.Text]; + set => this.Set((int)BBControlSymbolFields.Text, value); + } + + public IntermediateFieldPathValue SourceFile + { + get => this.Fields[(int)BBControlSymbolFields.SourceFile].AsPath(); + set => this.Set((int)BBControlSymbolFields.SourceFile, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/BillboardSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/BillboardSymbol.cs new file mode 100644 index 00000000..77f60bcb --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/BillboardSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Billboard = new IntermediateSymbolDefinition( + SymbolDefinitionType.Billboard, + new[] + { + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(BillboardSymbolFields.Ordering), IntermediateFieldType.Number), + }, + typeof(BillboardSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum BillboardSymbolFields + { + FeatureRef, + Action, + Ordering, + } + + public class BillboardSymbol : IntermediateSymbol + { + public BillboardSymbol() : base(SymbolDefinitions.Billboard, null, null) + { + } + + public BillboardSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Billboard, sourceLineNumber, id) + { + } + + public IntermediateField this[BillboardSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)BillboardSymbolFields.FeatureRef]; + set => this.Set((int)BillboardSymbolFields.FeatureRef, value); + } + + public string Action + { + get => (string)this.Fields[(int)BillboardSymbolFields.Action]; + set => this.Set((int)BillboardSymbolFields.Action, value); + } + + public int? Ordering + { + get => (int?)this.Fields[(int)BillboardSymbolFields.Ordering]; + set => this.Set((int)BillboardSymbolFields.Ordering, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/BinarySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/BinarySymbol.cs new file mode 100644 index 00000000..ec26b01a --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/BinarySymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Binary = new IntermediateSymbolDefinition( + SymbolDefinitionType.Binary, + new[] + { + new IntermediateFieldDefinition(nameof(BinarySymbolFields.Data), IntermediateFieldType.Path), + }, + typeof(BinarySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum BinarySymbolFields + { + Data, + } + + public class BinarySymbol : IntermediateSymbol + { + public BinarySymbol() : base(SymbolDefinitions.Binary, null, null) + { + } + + public BinarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Binary, sourceLineNumber, id) + { + } + + public IntermediateField this[BinarySymbolFields index] => this.Fields[(int)index]; + + public IntermediateFieldPathValue Data + { + get => this.Fields[(int)BinarySymbolFields.Data].AsPath(); + set => this.Set((int)BinarySymbolFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/CCPSearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/CCPSearchSymbol.cs new file mode 100644 index 00000000..6f6227fd --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/CCPSearchSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CCPSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.CCPSearch, + new IntermediateFieldDefinition[] + { + }, + typeof(CCPSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CCPSearchSymbolFields + { + } + + public class CCPSearchSymbol : IntermediateSymbol + { + public CCPSearchSymbol() : base(SymbolDefinitions.CCPSearch, null, null) + { + } + + public CCPSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CCPSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[CCPSearchSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/CheckBoxSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/CheckBoxSymbol.cs new file mode 100644 index 00000000..cd6355c4 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/CheckBoxSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CheckBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.CheckBox, + new[] + { + new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CheckBoxSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(CheckBoxSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CheckBoxSymbolFields + { + Property, + Value, + } + + public class CheckBoxSymbol : IntermediateSymbol + { + public CheckBoxSymbol() : base(SymbolDefinitions.CheckBox, null, null) + { + } + + public CheckBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CheckBox, sourceLineNumber, id) + { + } + + public IntermediateField this[CheckBoxSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)CheckBoxSymbolFields.Property]; + set => this.Set((int)CheckBoxSymbolFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)CheckBoxSymbolFields.Value]; + set => this.Set((int)CheckBoxSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ClassSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ClassSymbol.cs new file mode 100644 index 00000000..833867b1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ClassSymbol.cs @@ -0,0 +1,140 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Class = new IntermediateSymbolDefinition( + SymbolDefinitionType.Class, + new[] + { + new IntermediateFieldDefinition(nameof(ClassSymbolFields.CLSID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Context), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefaultProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.AppIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.FileTypeMask), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefInprocHandler), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ClassSymbolFields.RelativePath), IntermediateFieldType.Bool), + }, + typeof(ClassSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ClassSymbolFields + { + CLSID, + Context, + ComponentRef, + DefaultProgIdRef, + Description, + AppIdRef, + FileTypeMask, + IconRef, + IconIndex, + DefInprocHandler, + Argument, + FeatureRef, + RelativePath, + } + + public class ClassSymbol : IntermediateSymbol + { + public ClassSymbol() : base(SymbolDefinitions.Class, null, null) + { + } + + public ClassSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Class, sourceLineNumber, id) + { + } + + public IntermediateField this[ClassSymbolFields index] => this.Fields[(int)index]; + + public string CLSID + { + get => (string)this.Fields[(int)ClassSymbolFields.CLSID]; + set => this.Set((int)ClassSymbolFields.CLSID, value); + } + + public string Context + { + get => (string)this.Fields[(int)ClassSymbolFields.Context]; + set => this.Set((int)ClassSymbolFields.Context, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ClassSymbolFields.ComponentRef]; + set => this.Set((int)ClassSymbolFields.ComponentRef, value); + } + + public string DefaultProgIdRef + { + get => (string)this.Fields[(int)ClassSymbolFields.DefaultProgIdRef]; + set => this.Set((int)ClassSymbolFields.DefaultProgIdRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ClassSymbolFields.Description]; + set => this.Set((int)ClassSymbolFields.Description, value); + } + + public string AppIdRef + { + get => (string)this.Fields[(int)ClassSymbolFields.AppIdRef]; + set => this.Set((int)ClassSymbolFields.AppIdRef, value); + } + + public string FileTypeMask + { + get => (string)this.Fields[(int)ClassSymbolFields.FileTypeMask]; + set => this.Set((int)ClassSymbolFields.FileTypeMask, value); + } + + public string IconRef + { + get => (string)this.Fields[(int)ClassSymbolFields.IconRef]; + set => this.Set((int)ClassSymbolFields.IconRef, value); + } + + public int? IconIndex + { + get => (int?)this.Fields[(int)ClassSymbolFields.IconIndex]; + set => this.Set((int)ClassSymbolFields.IconIndex, value); + } + + public string DefInprocHandler + { + get => (string)this.Fields[(int)ClassSymbolFields.DefInprocHandler]; + set => this.Set((int)ClassSymbolFields.DefInprocHandler, value); + } + + public string Argument + { + get => (string)this.Fields[(int)ClassSymbolFields.Argument]; + set => this.Set((int)ClassSymbolFields.Argument, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)ClassSymbolFields.FeatureRef]; + set => this.Set((int)ClassSymbolFields.FeatureRef, value); + } + + public bool RelativePath + { + get => this.Fields[(int)ClassSymbolFields.RelativePath].AsBool(); + set => this.Set((int)ClassSymbolFields.RelativePath, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ComboBoxSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ComboBoxSymbol.cs new file mode 100644 index 00000000..c7d8d986 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ComboBoxSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ComboBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.ComboBox, + new[] + { + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComboBoxSymbolFields.Text), IntermediateFieldType.String), + }, + typeof(ComboBoxSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ComboBoxSymbolFields + { + Property, + Order, + Value, + Text, + } + + public class ComboBoxSymbol : IntermediateSymbol + { + public ComboBoxSymbol() : base(SymbolDefinitions.ComboBox, null, null) + { + } + + public ComboBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ComboBox, sourceLineNumber, id) + { + } + + public IntermediateField this[ComboBoxSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ComboBoxSymbolFields.Property]; + set => this.Set((int)ComboBoxSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ComboBoxSymbolFields.Order]; + set => this.Set((int)ComboBoxSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ComboBoxSymbolFields.Value]; + set => this.Set((int)ComboBoxSymbolFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ComboBoxSymbolFields.Text]; + set => this.Set((int)ComboBoxSymbolFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/CompLocatorSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/CompLocatorSymbol.cs new file mode 100644 index 00000000..9004859c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/CompLocatorSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CompLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.CompLocator, + new[] + { + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CompLocatorSymbolFields.Type), IntermediateFieldType.Number), + }, + typeof(CompLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CompLocatorSymbolFields + { + SignatureRef, + ComponentId, + Type, + } + + public class CompLocatorSymbol : IntermediateSymbol + { + public CompLocatorSymbol() : base(SymbolDefinitions.CompLocator, null, null) + { + } + + public CompLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CompLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[CompLocatorSymbolFields index] => this.Fields[(int)index]; + + public string SignatureRef + { + get => (string)this.Fields[(int)CompLocatorSymbolFields.SignatureRef]; + set => this.Set((int)CompLocatorSymbolFields.SignatureRef, value); + } + + public string ComponentId + { + get => (string)this.Fields[(int)CompLocatorSymbolFields.ComponentId]; + set => this.Set((int)CompLocatorSymbolFields.ComponentId, value); + } + + public LocatorType Type + { + get => (LocatorType)this.Fields[(int)CompLocatorSymbolFields.Type].AsNumber(); + set => this.Set((int)CompLocatorSymbolFields.Type, (int)value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ComplusSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ComplusSymbol.cs new file mode 100644 index 00000000..fa16af86 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ComplusSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Complus = new IntermediateSymbolDefinition( + SymbolDefinitionType.Complus, + new[] + { + new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComplusSymbolFields.ExpType), IntermediateFieldType.Number), + }, + typeof(ComplusSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ComplusSymbolFields + { + ComponentRef, + ExpType, + } + + public class ComplusSymbol : IntermediateSymbol + { + public ComplusSymbol() : base(SymbolDefinitions.Complus, null, null) + { + } + + public ComplusSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Complus, sourceLineNumber, id) + { + } + + public IntermediateField this[ComplusSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ComplusSymbolFields.ComponentRef]; + set => this.Set((int)ComplusSymbolFields.ComponentRef, value); + } + + public int? ExpType + { + get => (int?)this.Fields[(int)ComplusSymbolFields.ExpType]; + set => this.Set((int)ComplusSymbolFields.ExpType, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ComponentSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ComponentSymbol.cs new file mode 100644 index 00000000..13d398b1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ComponentSymbol.cs @@ -0,0 +1,155 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Component = new IntermediateSymbolDefinition( + SymbolDefinitionType.Component, + new[] + { + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Location), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.DisableRegistryReflection), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.NeverOverwrite), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Permanent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.SharedDllRefCount), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Shared), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Transitive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.UninstallWhenSuperseded), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ComponentSymbolFields.KeyPathType), IntermediateFieldType.Number), + }, + typeof(ComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ComponentSymbolFields + { + ComponentId, + DirectoryRef, + Location, + DisableRegistryReflection, + NeverOverwrite, + Permanent, + SharedDllRefCount, + Shared, + Transitive, + UninstallWhenSuperseded, + Win64, + Condition, + KeyPath, + KeyPathType, + } + + public enum ComponentLocation + { + LocalOnly, + SourceOnly, + Either + } + + public class ComponentSymbol : IntermediateSymbol + { + public ComponentSymbol() : base(SymbolDefinitions.Component, null, null) + { + } + + public ComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Component, sourceLineNumber, id) + { + } + + public IntermediateField this[ComponentSymbolFields index] => this.Fields[(int)index]; + + public string ComponentId + { + get => (string)this.Fields[(int)ComponentSymbolFields.ComponentId]; + set => this.Set((int)ComponentSymbolFields.ComponentId, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)ComponentSymbolFields.DirectoryRef]; + set => this.Set((int)ComponentSymbolFields.DirectoryRef, value); + } + + public ComponentLocation Location + { + get => (ComponentLocation)this.Fields[(int)ComponentSymbolFields.Location].AsNumber(); + set => this.Set((int)ComponentSymbolFields.Location, (int)value); + } + + public bool DisableRegistryReflection + { + get => this.Fields[(int)ComponentSymbolFields.DisableRegistryReflection].AsBool(); + set => this.Set((int)ComponentSymbolFields.DisableRegistryReflection, value); + } + + public bool NeverOverwrite + { + get => this.Fields[(int)ComponentSymbolFields.NeverOverwrite].AsBool(); + set => this.Set((int)ComponentSymbolFields.NeverOverwrite, value); + } + + public bool Permanent + { + get => this.Fields[(int)ComponentSymbolFields.Permanent].AsBool(); + set => this.Set((int)ComponentSymbolFields.Permanent, value); + } + + public bool SharedDllRefCount + { + get => this.Fields[(int)ComponentSymbolFields.SharedDllRefCount].AsBool(); + set => this.Set((int)ComponentSymbolFields.SharedDllRefCount, value); + } + + public bool Shared + { + get => this.Fields[(int)ComponentSymbolFields.Shared].AsBool(); + set => this.Set((int)ComponentSymbolFields.Shared, value); + } + + public bool Transitive + { + get => this.Fields[(int)ComponentSymbolFields.Transitive].AsBool(); + set => this.Set((int)ComponentSymbolFields.Transitive, value); + } + + public bool UninstallWhenSuperseded + { + get => this.Fields[(int)ComponentSymbolFields.UninstallWhenSuperseded].AsBool(); + set => this.Set((int)ComponentSymbolFields.UninstallWhenSuperseded, value); + } + + public bool Win64 + { + get => this.Fields[(int)ComponentSymbolFields.Win64].AsBool(); + set => this.Set((int)ComponentSymbolFields.Win64, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ComponentSymbolFields.Condition]; + set => this.Set((int)ComponentSymbolFields.Condition, value); + } + + public string KeyPath + { + get => (string)this.Fields[(int)ComponentSymbolFields.KeyPath]; + set => this.Set((int)ComponentSymbolFields.KeyPath, value); + } + + public ComponentKeyPathType KeyPathType + { + get => (ComponentKeyPathType)this.Fields[(int)ComponentSymbolFields.KeyPathType].AsNumber(); + set => this.Set((int)ComponentSymbolFields.KeyPathType, (int)value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ConditionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ConditionSymbol.cs new file mode 100644 index 00000000..3a94ebb1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ConditionSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Condition = new IntermediateSymbolDefinition( + SymbolDefinitionType.Condition, + new[] + { + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ConditionSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(ConditionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ConditionSymbolFields + { + FeatureRef, + Level, + Condition, + } + + public class ConditionSymbol : IntermediateSymbol + { + public ConditionSymbol() : base(SymbolDefinitions.Condition, null, null) + { + } + + public ConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Condition, sourceLineNumber, id) + { + } + + public IntermediateField this[ConditionSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)ConditionSymbolFields.FeatureRef]; + set => this.Set((int)ConditionSymbolFields.FeatureRef, value); + } + + public int Level + { + get => (int)this.Fields[(int)ConditionSymbolFields.Level]; + set => this.Set((int)ConditionSymbolFields.Level, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ConditionSymbolFields.Condition]; + set => this.Set((int)ConditionSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ControlConditionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ControlConditionSymbol.cs new file mode 100644 index 00000000..cc5f2d74 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ControlConditionSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ControlCondition = new IntermediateSymbolDefinition( + SymbolDefinitionType.ControlCondition, + new[] + { + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlConditionSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(ControlConditionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ControlConditionSymbolFields + { + DialogRef, + ControlRef, + Action, + Condition, + } + + public class ControlConditionSymbol : IntermediateSymbol + { + public ControlConditionSymbol() : base(SymbolDefinitions.ControlCondition, null, null) + { + } + + public ControlConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlCondition, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlConditionSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.DialogRef]; + set => this.Set((int)ControlConditionSymbolFields.DialogRef, value); + } + + public string ControlRef + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.ControlRef]; + set => this.Set((int)ControlConditionSymbolFields.ControlRef, value); + } + + public string Action + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.Action]; + set => this.Set((int)ControlConditionSymbolFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ControlConditionSymbolFields.Condition]; + set => this.Set((int)ControlConditionSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ControlEventSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ControlEventSymbol.cs new file mode 100644 index 00000000..3cf6da53 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ControlEventSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ControlEvent = new IntermediateSymbolDefinition( + SymbolDefinitionType.ControlEvent, + new[] + { + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlEventSymbolFields.Ordering), IntermediateFieldType.Number), + }, + typeof(ControlEventSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ControlEventSymbolFields + { + DialogRef, + ControlRef, + Event, + Argument, + Condition, + Ordering, + } + + public class ControlEventSymbol : IntermediateSymbol + { + public ControlEventSymbol() : base(SymbolDefinitions.ControlEvent, null, null) + { + } + + public ControlEventSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ControlEvent, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlEventSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)ControlEventSymbolFields.DialogRef]; + set => this.Set((int)ControlEventSymbolFields.DialogRef, value); + } + + public string ControlRef + { + get => (string)this.Fields[(int)ControlEventSymbolFields.ControlRef]; + set => this.Set((int)ControlEventSymbolFields.ControlRef, value); + } + + public string Event + { + get => (string)this.Fields[(int)ControlEventSymbolFields.Event]; + set => this.Set((int)ControlEventSymbolFields.Event, value); + } + + public string Argument + { + get => (string)this.Fields[(int)ControlEventSymbolFields.Argument]; + set => this.Set((int)ControlEventSymbolFields.Argument, value); + } + + public string Condition + { + get => (string)this.Fields[(int)ControlEventSymbolFields.Condition]; + set => this.Set((int)ControlEventSymbolFields.Condition, value); + } + + public int? Ordering + { + get => (int?)this.Fields[(int)ControlEventSymbolFields.Ordering]; + set => this.Set((int)ControlEventSymbolFields.Ordering, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ControlSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ControlSymbol.cs new file mode 100644 index 00000000..732566d5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ControlSymbol.cs @@ -0,0 +1,303 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Control = new IntermediateSymbolDefinition( + SymbolDefinitionType.Control, + new[] + { + new IntermediateFieldDefinition(nameof(ControlSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Control), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Enabled), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Indirect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Integer), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Sunken), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.NextControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.Help), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ControlSymbolFields.SourceFile), IntermediateFieldType.Path), + }, + typeof(ControlSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ControlSymbolFields + { + DialogRef, + Control, + Type, + X, + Y, + Width, + Height, + Attributes, + Enabled, + Indirect, + Integer, + LeftScroll, + RightAligned, + RightToLeft, + Sunken, + Visible, + Property, + Text, + NextControlRef, + Help, + TrackDiskSpace, + SourceFile, + } + + public class ControlSymbol : IntermediateSymbol + { + public ControlSymbol() : base(SymbolDefinitions.Control, null, null) + { + } + + public ControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Control, sourceLineNumber, id) + { + } + + public IntermediateField this[ControlSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)ControlSymbolFields.DialogRef]; + set => this.Set((int)ControlSymbolFields.DialogRef, value); + } + + public string Control + { + get => (string)this.Fields[(int)ControlSymbolFields.Control]; + set => this.Set((int)ControlSymbolFields.Control, value); + } + + public string Type + { + get => (string)this.Fields[(int)ControlSymbolFields.Type]; + set => this.Set((int)ControlSymbolFields.Type, value); + } + + public int X + { + get => (int)this.Fields[(int)ControlSymbolFields.X]; + set => this.Set((int)ControlSymbolFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)ControlSymbolFields.Y]; + set => this.Set((int)ControlSymbolFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)ControlSymbolFields.Width]; + set => this.Set((int)ControlSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)ControlSymbolFields.Height]; + set => this.Set((int)ControlSymbolFields.Height, value); + } + + public int? Attributes + { + get => (int?)this.Fields[(int)ControlSymbolFields.Attributes]; + set => this.Set((int)ControlSymbolFields.Attributes, value); + } + + public bool Enabled + { + get => this.Fields[(int)ControlSymbolFields.Enabled].AsBool(); + set => this.Set((int)ControlSymbolFields.Enabled, value); + } + + public bool Indirect + { + get => this.Fields[(int)ControlSymbolFields.Indirect].AsBool(); + set => this.Set((int)ControlSymbolFields.Indirect, value); + } + + public bool Integer + { + get => this.Fields[(int)ControlSymbolFields.Integer].AsBool(); + set => this.Set((int)ControlSymbolFields.Integer, value); + } + /* + /// PictureButton control + public bool Bitmap + { + get => this.Fields[(int)ControlSymbolFields.Bitmap].AsBool(); + set => this.Set((int)ControlSymbolFields.Bitmap, value); + } + + /// RadioButton control + public bool Border + { + get => this.Fields[(int)ControlSymbolFields.Border].AsBool(); + set => this.Set((int)ControlSymbolFields.Border, value); + } + + /// ListBox and ComboBox control + public bool ComboList + { + get => this.Fields[(int)ControlSymbolFields.ComboList].AsBool(); + set => this.Set((int)ControlSymbolFields.ComboList, value); + } + + /// PushButton control + public bool ElevationShield + { + get => this.Fields[(int)ControlSymbolFields.ElevationShield].AsBool(); + set => this.Set((int)ControlSymbolFields.ElevationShield, value); + } + + /// PictureButton control + public bool FixedSize + { + get => this.Fields[(int)ControlSymbolFields.FixedSize].AsBool(); + set => this.Set((int)ControlSymbolFields.FixedSize, value); + } + + /// PictureButton control + public bool Icon + { + get => this.Fields[(int)ControlSymbolFields.Icon].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon, value); + } + + /// PictureButton control + public bool Icon16 + { + get => this.Fields[(int)ControlSymbolFields.Icon16].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon16, value); + } + + /// PictureButton control + public bool Icon32 + { + get => this.Fields[(int)ControlSymbolFields.Icon32].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon32, value); + } + + /// PictureButton control + public bool Icon48 + { + get => this.Fields[(int)ControlSymbolFields.Icon48].AsBool(); + set => this.Set((int)ControlSymbolFields.Icon48, value); + } + */ + public bool LeftScroll + { + get => this.Fields[(int)ControlSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)ControlSymbolFields.LeftScroll, value); + } + /* + /// PictureButton control + public bool PushLike + { + get => this.Fields[(int)ControlSymbolFields.PushLike].AsBool(); + set => this.Set((int)ControlSymbolFields.PushLike, value); + } + + /// Edit control + public bool Mulitline + { + get => this.Fields[(int)ControlSymbolFields.Mulitline].AsBool(); + set => this.Set((int)ControlSymbolFields.Mulitline, value); + } + */ + public bool RightAligned + { + get => this.Fields[(int)ControlSymbolFields.RightAligned].AsBool(); + set => this.Set((int)ControlSymbolFields.RightAligned, value); + } + + public bool RightToLeft + { + get => this.Fields[(int)ControlSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)ControlSymbolFields.RightToLeft, value); + } + /* + /// VolumeCostList control + public bool ShowRollbackCost + { + get => this.Fields[(int)ControlSymbolFields.ShowRollbackCost].AsBool(); + set => this.Set((int)ControlSymbolFields.ShowRollbackCost, value); + } + + /// ListBox and ComboBox control + public bool Sorted + { + get => this.Fields[(int)ControlSymbolFields.Sorted].AsBool(); + set => this.Set((int)ControlSymbolFields.Sorted, value); + } + */ + public bool Sunken + { + get => this.Fields[(int)ControlSymbolFields.Sunken].AsBool(); + set => this.Set((int)ControlSymbolFields.Sunken, value); + } + + public bool Visible + { + get => this.Fields[(int)ControlSymbolFields.Visible].AsBool(); + set => this.Set((int)ControlSymbolFields.Visible, value); + } + + public string Property + { + get => (string)this.Fields[(int)ControlSymbolFields.Property]; + set => this.Set((int)ControlSymbolFields.Property, value); + } + + public string Text + { + get => (string)this.Fields[(int)ControlSymbolFields.Text]; + set => this.Set((int)ControlSymbolFields.Text, value); + } + + public string NextControlRef + { + get => (string)this.Fields[(int)ControlSymbolFields.NextControlRef]; + set => this.Set((int)ControlSymbolFields.NextControlRef, value); + } + + public string Help + { + get => (string)this.Fields[(int)ControlSymbolFields.Help]; + set => this.Set((int)ControlSymbolFields.Help, value); + } + + public bool TrackDiskSpace + { + get => this.Fields[(int)ControlSymbolFields.TrackDiskSpace].AsBool(); + set => this.Set((int)ControlSymbolFields.TrackDiskSpace, value); + } + + public IntermediateFieldPathValue SourceFile + { + get => this.Fields[(int)ControlSymbolFields.SourceFile].AsPath(); + set => this.Set((int)ControlSymbolFields.SourceFile, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/CreateFolderSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/CreateFolderSymbol.cs new file mode 100644 index 00000000..2b282266 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/CreateFolderSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CreateFolder = new IntermediateSymbolDefinition( + SymbolDefinitionType.CreateFolder, + new[] + { + new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CreateFolderSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(CreateFolderSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CreateFolderSymbolFields + { + DirectoryRef, + ComponentRef, + } + + public class CreateFolderSymbol : IntermediateSymbol + { + public CreateFolderSymbol() : base(SymbolDefinitions.CreateFolder, null, null) + { + } + + public CreateFolderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CreateFolder, sourceLineNumber, id) + { + } + + public IntermediateField this[CreateFolderSymbolFields index] => this.Fields[(int)index]; + + public string DirectoryRef + { + get => (string)this.Fields[(int)CreateFolderSymbolFields.DirectoryRef]; + set => this.Set((int)CreateFolderSymbolFields.DirectoryRef, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)CreateFolderSymbolFields.ComponentRef]; + set => this.Set((int)CreateFolderSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/CustomActionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/CustomActionSymbol.cs new file mode 100644 index 00000000..1180dab4 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/CustomActionSymbol.cs @@ -0,0 +1,168 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition CustomAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.CustomAction, + new[] + { + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ExecutionType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.SourceType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TargetType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Async), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.IgnoreResult), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Impersonate), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.PatchUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.TSAware), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.Win64), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(CustomActionSymbolFields.ScriptFile), IntermediateFieldType.Path), + }, + typeof(CustomActionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum CustomActionSymbolFields + { + ExecutionType, + Source, + SourceType, + Target, + TargetType, + Async, + Hidden, + IgnoreResult, + Impersonate, + PatchUninstall, + TSAware, + Win64, + ScriptFile + } + + public enum CustomActionExecutionType + { + Immediate, + FirstSequence = 256, + OncePerProcess = 512, + ClientRepeat = 768, + Deferred = 1024, + Rollback = 1280, + Commit = 1536, + } + + public enum CustomActionSourceType + { + Binary, + File = 0x10, + Directory = 0x20, + Property = 0x30, + } + + public enum CustomActionTargetType + { + Dll = 1, + Exe = 2, + TextData = 3, + JScript = 5, + VBScript = 6, + } + + public class CustomActionSymbol : IntermediateSymbol + { + public CustomActionSymbol() : base(SymbolDefinitions.CustomAction, null, null) + { + } + + public CustomActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.CustomAction, sourceLineNumber, id) + { + } + + public IntermediateField this[CustomActionSymbolFields index] => this.Fields[(int)index]; + + public CustomActionExecutionType ExecutionType + { + get => (CustomActionExecutionType)this.Fields[(int)CustomActionSymbolFields.ExecutionType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.ExecutionType, (int)value); + } + + public string Source + { + get => (string)this.Fields[(int)CustomActionSymbolFields.Source]; + set => this.Set((int)CustomActionSymbolFields.Source, value); + } + + public CustomActionSourceType SourceType + { + get => (CustomActionSourceType)this.Fields[(int)CustomActionSymbolFields.SourceType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.SourceType, (int)value); + } + + public string Target + { + get => (string)this.Fields[(int)CustomActionSymbolFields.Target]; + set => this.Set((int)CustomActionSymbolFields.Target, value); + } + + public CustomActionTargetType TargetType + { + get => (CustomActionTargetType)this.Fields[(int)CustomActionSymbolFields.TargetType].AsNumber(); + set => this.Set((int)CustomActionSymbolFields.TargetType, (int)value); + } + + public bool Async + { + get => this.Fields[(int)CustomActionSymbolFields.Async].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Async, value); + } + + public bool Hidden + { + get => this.Fields[(int)CustomActionSymbolFields.Hidden].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Hidden, value); + } + + public bool IgnoreResult + { + get => this.Fields[(int)CustomActionSymbolFields.IgnoreResult].AsBool(); + set => this.Set((int)CustomActionSymbolFields.IgnoreResult, value); + } + + public bool Impersonate + { + get => this.Fields[(int)CustomActionSymbolFields.Impersonate].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Impersonate, value); + } + + public bool PatchUninstall + { + get => this.Fields[(int)CustomActionSymbolFields.PatchUninstall].AsBool(); + set => this.Set((int)CustomActionSymbolFields.PatchUninstall, value); + } + + public bool TSAware + { + get => this.Fields[(int)CustomActionSymbolFields.TSAware].AsBool(); + set => this.Set((int)CustomActionSymbolFields.TSAware, value); + } + + public bool Win64 + { + get => this.Fields[(int)CustomActionSymbolFields.Win64].AsBool(); + set => this.Set((int)CustomActionSymbolFields.Win64, value); + } + + public IntermediateFieldPathValue ScriptFile + { + get => this.Fields[(int)CustomActionSymbolFields.ScriptFile].AsPath(); + set => this.Set((int)CustomActionSymbolFields.ScriptFile, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/DialogSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/DialogSymbol.cs new file mode 100644 index 00000000..ee030405 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/DialogSymbol.cs @@ -0,0 +1,188 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Dialog = new IntermediateSymbolDefinition( + SymbolDefinitionType.Dialog, + new[] + { + new IntermediateFieldDefinition(nameof(DialogSymbolFields.HCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.VCentering), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.CustomPalette), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.ErrorDialog), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Visible), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Modal), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.KeepModeless), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.LeftScroll), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Minimize), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightAligned), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.RightToLeft), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.SystemModal), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.TrackDiskSpace), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.FirstControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.DefaultControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DialogSymbolFields.CancelControlRef), IntermediateFieldType.String), + }, + typeof(DialogSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DialogSymbolFields + { + HCentering, + VCentering, + Width, + Height, + CustomPalette, + ErrorDialog, + Visible, + Modal, + KeepModeless, + LeftScroll, + Minimize, + RightAligned, + RightToLeft, + SystemModal, + TrackDiskSpace, + Title, + FirstControlRef, + DefaultControlRef, + CancelControlRef, + } + + public class DialogSymbol : IntermediateSymbol + { + public DialogSymbol() : base(SymbolDefinitions.Dialog, null, null) + { + } + + public DialogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Dialog, sourceLineNumber, id) + { + } + + public IntermediateField this[DialogSymbolFields index] => this.Fields[(int)index]; + + public int HCentering + { + get => (int)this.Fields[(int)DialogSymbolFields.HCentering]; + set => this.Set((int)DialogSymbolFields.HCentering, value); + } + + public int VCentering + { + get => (int)this.Fields[(int)DialogSymbolFields.VCentering]; + set => this.Set((int)DialogSymbolFields.VCentering, value); + } + + public int Width + { + get => (int)this.Fields[(int)DialogSymbolFields.Width]; + set => this.Set((int)DialogSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)DialogSymbolFields.Height]; + set => this.Set((int)DialogSymbolFields.Height, value); + } + + public bool CustomPalette + { + get => this.Fields[(int)DialogSymbolFields.CustomPalette].AsBool(); + set => this.Set((int)DialogSymbolFields.CustomPalette, value); + } + + public bool ErrorDialog + { + get => this.Fields[(int)DialogSymbolFields.ErrorDialog].AsBool(); + set => this.Set((int)DialogSymbolFields.ErrorDialog, value); + } + + public bool Visible + { + get => this.Fields[(int)DialogSymbolFields.Visible].AsBool(); + set => this.Set((int)DialogSymbolFields.Visible, value); + } + + public bool Modal + { + get => this.Fields[(int)DialogSymbolFields.Modal].AsBool(); + set => this.Set((int)DialogSymbolFields.Modal, value); + } + + public bool KeepModeless + { + get => this.Fields[(int)DialogSymbolFields.KeepModeless].AsBool(); + set => this.Set((int)DialogSymbolFields.KeepModeless, value); + } + + public bool LeftScroll + { + get => this.Fields[(int)DialogSymbolFields.LeftScroll].AsBool(); + set => this.Set((int)DialogSymbolFields.LeftScroll, value); + } + + public bool Minimize + { + get => this.Fields[(int)DialogSymbolFields.Minimize].AsBool(); + set => this.Set((int)DialogSymbolFields.Minimize, value); + } + + public bool RightAligned + { + get => this.Fields[(int)DialogSymbolFields.RightAligned].AsBool(); + set => this.Set((int)DialogSymbolFields.RightAligned, value); + } + + public bool RightToLeft + { + get => this.Fields[(int)DialogSymbolFields.RightToLeft].AsBool(); + set => this.Set((int)DialogSymbolFields.RightToLeft, value); + } + + public bool TrackDiskSpace + { + get => this.Fields[(int)DialogSymbolFields.TrackDiskSpace].AsBool(); + set => this.Set((int)DialogSymbolFields.TrackDiskSpace, value); + } + + public bool SystemModal + { + get => this.Fields[(int)DialogSymbolFields.SystemModal].AsBool(); + set => this.Set((int)DialogSymbolFields.SystemModal, value); + } + + public string Title + { + get => (string)this.Fields[(int)DialogSymbolFields.Title]; + set => this.Set((int)DialogSymbolFields.Title, value); + } + + public string FirstControlRef + { + get => (string)this.Fields[(int)DialogSymbolFields.FirstControlRef]; + set => this.Set((int)DialogSymbolFields.FirstControlRef, value); + } + + public string DefaultControlRef + { + get => (string)this.Fields[(int)DialogSymbolFields.DefaultControlRef]; + set => this.Set((int)DialogSymbolFields.DefaultControlRef, value); + } + + public string CancelControlRef + { + get => (string)this.Fields[(int)DialogSymbolFields.CancelControlRef]; + set => this.Set((int)DialogSymbolFields.CancelControlRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/DirectorySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/DirectorySymbol.cs new file mode 100644 index 00000000..209f5ca1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/DirectorySymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Directory = new IntermediateSymbolDefinition( + SymbolDefinitionType.Directory, + new[] + { + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ParentDirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.SourceShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DirectorySymbolFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), + }, + typeof(DirectorySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DirectorySymbolFields + { + ParentDirectoryRef, + Name, + ShortName, + SourceName, + SourceShortName, + ComponentGuidGenerationSeed, + } + + public class DirectorySymbol : IntermediateSymbol + { + public DirectorySymbol() : base(SymbolDefinitions.Directory, null, null) + { + } + + public DirectorySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Directory, sourceLineNumber, id) + { + } + + public IntermediateField this[DirectorySymbolFields index] => this.Fields[(int)index]; + + public string ParentDirectoryRef + { + get => (string)this.Fields[(int)DirectorySymbolFields.ParentDirectoryRef]; + set => this.Set((int)DirectorySymbolFields.ParentDirectoryRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)DirectorySymbolFields.Name]; + set => this.Set((int)DirectorySymbolFields.Name, value); + } + + public string ShortName + { + get => (string)this.Fields[(int)DirectorySymbolFields.ShortName]; + set => this.Set((int)DirectorySymbolFields.ShortName, value); + } + + public string SourceName + { + get => (string)this.Fields[(int)DirectorySymbolFields.SourceName]; + set => this.Set((int)DirectorySymbolFields.SourceName, value); + } + + public string SourceShortName + { + get => (string)this.Fields[(int)DirectorySymbolFields.SourceShortName]; + set => this.Set((int)DirectorySymbolFields.SourceShortName, value); + } + + public string ComponentGuidGenerationSeed + { + get => (string)this.Fields[(int)DirectorySymbolFields.ComponentGuidGenerationSeed]; + set => this.Set((int)DirectorySymbolFields.ComponentGuidGenerationSeed, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/DrLocatorSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/DrLocatorSymbol.cs new file mode 100644 index 00000000..e403c61c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/DrLocatorSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition DrLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.DrLocator, + new[] + { + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.SignatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DrLocatorSymbolFields.Depth), IntermediateFieldType.Number), + }, + typeof(DrLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DrLocatorSymbolFields + { + SignatureRef, + Parent, + Path, + Depth, + } + + public class DrLocatorSymbol : IntermediateSymbol + { + public DrLocatorSymbol() : base(SymbolDefinitions.DrLocator, null, null) + { + } + + public DrLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DrLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[DrLocatorSymbolFields index] => this.Fields[(int)index]; + + public string SignatureRef + { + get => (string)this.Fields[(int)DrLocatorSymbolFields.SignatureRef]; + set => this.Set((int)DrLocatorSymbolFields.SignatureRef, value); + } + + public string Parent + { + get => (string)this.Fields[(int)DrLocatorSymbolFields.Parent]; + set => this.Set((int)DrLocatorSymbolFields.Parent, value); + } + + public string Path + { + get => (string)this.Fields[(int)DrLocatorSymbolFields.Path]; + set => this.Set((int)DrLocatorSymbolFields.Path, value); + } + + public int? Depth + { + get => (int?)this.Fields[(int)DrLocatorSymbolFields.Depth]; + set => this.Set((int)DrLocatorSymbolFields.Depth, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/DuplicateFileSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/DuplicateFileSymbol.cs new file mode 100644 index 00000000..f2d1d94f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/DuplicateFileSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition DuplicateFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.DuplicateFile, + new[] + { + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(DuplicateFileSymbolFields.DestinationFolder), IntermediateFieldType.String), + }, + typeof(DuplicateFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum DuplicateFileSymbolFields + { + ComponentRef, + FileRef, + DestinationName, + DestinationShortName, + DestinationFolder, + } + + public class DuplicateFileSymbol : IntermediateSymbol + { + public DuplicateFileSymbol() : base(SymbolDefinitions.DuplicateFile, null, null) + { + } + + public DuplicateFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.DuplicateFile, sourceLineNumber, id) + { + } + + public IntermediateField this[DuplicateFileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.ComponentRef]; + set => this.Set((int)DuplicateFileSymbolFields.ComponentRef, value); + } + + public string FileRef + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.FileRef]; + set => this.Set((int)DuplicateFileSymbolFields.FileRef, value); + } + + public string DestinationName + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationName]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationName, value); + } + + public string DestinationShortName + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationShortName]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationShortName, value); + } + + public string DestinationFolder + { + get => (string)this.Fields[(int)DuplicateFileSymbolFields.DestinationFolder]; + set => this.Set((int)DuplicateFileSymbolFields.DestinationFolder, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/EnvironmentSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/EnvironmentSymbol.cs new file mode 100644 index 00000000..3fe12d4b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/EnvironmentSymbol.cs @@ -0,0 +1,114 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Environment = new IntermediateSymbolDefinition( + SymbolDefinitionType.Environment, + new[] + { + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Separator), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Part), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.Permanent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.System), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(EnvironmentSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(EnvironmentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum EnvironmentSymbolFields + { + Name, + Value, + Separator, + Action, + Part, + Permanent, + System, + ComponentRef, + } + + public enum EnvironmentActionType + { + Set, + Create, + Remove + } + + public enum EnvironmentPartType + { + All, + First, + Last + } + + public class EnvironmentSymbol : IntermediateSymbol + { + public EnvironmentSymbol() : base(SymbolDefinitions.Environment, null, null) + { + } + + public EnvironmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Environment, sourceLineNumber, id) + { + } + + public IntermediateField this[EnvironmentSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.Name]; + set => this.Set((int)EnvironmentSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.Value]; + set => this.Set((int)EnvironmentSymbolFields.Value, value); + } + + public string Separator + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.Separator]; + set => this.Set((int)EnvironmentSymbolFields.Separator, value); + } + + public EnvironmentActionType? Action + { + get => (EnvironmentActionType?)this.Fields[(int)EnvironmentSymbolFields.Action].AsNullableNumber(); + set => this.Set((int)EnvironmentSymbolFields.Action, (int?)value); + } + + public EnvironmentPartType? Part + { + get => (EnvironmentPartType?)this.Fields[(int)EnvironmentSymbolFields.Part].AsNullableNumber(); + set => this.Set((int)EnvironmentSymbolFields.Part, (int?)value); + } + + public bool Permanent + { + get => this.Fields[(int)EnvironmentSymbolFields.Permanent].AsBool(); + set => this.Set((int)EnvironmentSymbolFields.Permanent, value); + } + + public bool System + { + get => this.Fields[(int)EnvironmentSymbolFields.System].AsBool(); + set => this.Set((int)EnvironmentSymbolFields.System, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)EnvironmentSymbolFields.ComponentRef]; + set => this.Set((int)EnvironmentSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ErrorSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ErrorSymbol.cs new file mode 100644 index 00000000..d2994598 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ErrorSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Error = new IntermediateSymbolDefinition( + SymbolDefinitionType.Error, + new[] + { + new IntermediateFieldDefinition(nameof(ErrorSymbolFields.Message), IntermediateFieldType.String), + }, + typeof(ErrorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ErrorSymbolFields + { + Message, + } + + public class ErrorSymbol : IntermediateSymbol + { + public ErrorSymbol() : base(SymbolDefinitions.Error, null, null) + { + } + + public ErrorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Error, sourceLineNumber, id) + { + } + + public IntermediateField this[ErrorSymbolFields index] => this.Fields[(int)index]; + + public string Message + { + get => (string)this.Fields[(int)ErrorSymbolFields.Message]; + set => this.Set((int)ErrorSymbolFields.Message, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/EventMappingSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/EventMappingSymbol.cs new file mode 100644 index 00000000..fec7be3b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/EventMappingSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition EventMapping = new IntermediateSymbolDefinition( + SymbolDefinitionType.EventMapping, + new[] + { + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.DialogRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.ControlRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Event), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(EventMappingSymbolFields.Attribute), IntermediateFieldType.String), + }, + typeof(EventMappingSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum EventMappingSymbolFields + { + DialogRef, + ControlRef, + Event, + Attribute, + } + + public class EventMappingSymbol : IntermediateSymbol + { + public EventMappingSymbol() : base(SymbolDefinitions.EventMapping, null, null) + { + } + + public EventMappingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.EventMapping, sourceLineNumber, id) + { + } + + public IntermediateField this[EventMappingSymbolFields index] => this.Fields[(int)index]; + + public string DialogRef + { + get => (string)this.Fields[(int)EventMappingSymbolFields.DialogRef]; + set => this.Set((int)EventMappingSymbolFields.DialogRef, value); + } + + public string ControlRef + { + get => (string)this.Fields[(int)EventMappingSymbolFields.ControlRef]; + set => this.Set((int)EventMappingSymbolFields.ControlRef, value); + } + + public string Event + { + get => (string)this.Fields[(int)EventMappingSymbolFields.Event]; + set => this.Set((int)EventMappingSymbolFields.Event, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)EventMappingSymbolFields.Attribute]; + set => this.Set((int)EventMappingSymbolFields.Attribute, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ExtensionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ExtensionSymbol.cs new file mode 100644 index 00000000..b8806971 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ExtensionSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Extension = new IntermediateSymbolDefinition( + SymbolDefinitionType.Extension, + new[] + { + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.Extension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.ProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.MimeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExtensionSymbolFields.FeatureRef), IntermediateFieldType.String), + }, + typeof(ExtensionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ExtensionSymbolFields + { + Extension, + ComponentRef, + ProgIdRef, + MimeRef, + FeatureRef, + } + + public class ExtensionSymbol : IntermediateSymbol + { + public ExtensionSymbol() : base(SymbolDefinitions.Extension, null, null) + { + } + + public ExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Extension, sourceLineNumber, id) + { + } + + public IntermediateField this[ExtensionSymbolFields index] => this.Fields[(int)index]; + + public string Extension + { + get => (string)this.Fields[(int)ExtensionSymbolFields.Extension]; + set => this.Set((int)ExtensionSymbolFields.Extension, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.ComponentRef]; + set => this.Set((int)ExtensionSymbolFields.ComponentRef, value); + } + + public string ProgIdRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.ProgIdRef]; + set => this.Set((int)ExtensionSymbolFields.ProgIdRef, value); + } + + public string MimeRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.MimeRef]; + set => this.Set((int)ExtensionSymbolFields.MimeRef, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)ExtensionSymbolFields.FeatureRef]; + set => this.Set((int)ExtensionSymbolFields.FeatureRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs new file mode 100644 index 00000000..87888f0b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ExternalFiles = new IntermediateSymbolDefinition( + SymbolDefinitionType.ExternalFiles, + new[] + { + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.FilePath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ExternalFilesSymbolFields.Order), IntermediateFieldType.Number), + }, + typeof(ExternalFilesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ExternalFilesSymbolFields + { + Family, + FTK, + FilePath, + SymbolPaths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + Order, + } + + public class ExternalFilesSymbol : IntermediateSymbol + { + public ExternalFilesSymbol() : base(SymbolDefinitions.ExternalFiles, null, null) + { + } + + public ExternalFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ExternalFiles, sourceLineNumber, id) + { + } + + public IntermediateField this[ExternalFilesSymbolFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.Family]; + set => this.Set((int)ExternalFilesSymbolFields.Family, value); + } + + public string FTK + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.FTK]; + set => this.Set((int)ExternalFilesSymbolFields.FTK, value); + } + + public string FilePath + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.FilePath]; + set => this.Set((int)ExternalFilesSymbolFields.FilePath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.SymbolPaths]; + set => this.Set((int)ExternalFilesSymbolFields.SymbolPaths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreOffsets]; + set => this.Set((int)ExternalFilesSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.IgnoreLengths]; + set => this.Set((int)ExternalFilesSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)ExternalFilesSymbolFields.RetainOffsets]; + set => this.Set((int)ExternalFilesSymbolFields.RetainOffsets, value); + } + + public int Order + { + get => (int)this.Fields[(int)ExternalFilesSymbolFields.Order]; + set => this.Set((int)ExternalFilesSymbolFields.Order, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs new file mode 100644 index 00000000..84cd5b4b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition FamilyFileRanges = new IntermediateSymbolDefinition( + SymbolDefinitionType.FamilyFileRanges, + new[] + { + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FamilyFileRangesSymbolFields.RetainLengths), IntermediateFieldType.String), + }, + typeof(FamilyFileRangesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FamilyFileRangesSymbolFields + { + Family, + FTK, + RetainOffsets, + RetainLengths, + } + + public class FamilyFileRangesSymbol : IntermediateSymbol + { + public FamilyFileRangesSymbol() : base(SymbolDefinitions.FamilyFileRanges, null, null) + { + } + + public FamilyFileRangesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FamilyFileRanges, sourceLineNumber, id) + { + } + + public IntermediateField this[FamilyFileRangesSymbolFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.Family]; + set => this.Set((int)FamilyFileRangesSymbolFields.Family, value); + } + + public string FTK + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.FTK]; + set => this.Set((int)FamilyFileRangesSymbolFields.FTK, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainOffsets]; + set => this.Set((int)FamilyFileRangesSymbolFields.RetainOffsets, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)FamilyFileRangesSymbolFields.RetainLengths]; + set => this.Set((int)FamilyFileRangesSymbolFields.RetainLengths, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs new file mode 100644 index 00000000..af51daed --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/FeatureComponentsSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition FeatureComponents = new IntermediateSymbolDefinition( + SymbolDefinitionType.FeatureComponents, + new[] + { + new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureComponentsSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(FeatureComponentsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FeatureComponentsSymbolFields + { + FeatureRef, + ComponentRef, + } + + public class FeatureComponentsSymbol : IntermediateSymbol + { + public FeatureComponentsSymbol() : base(SymbolDefinitions.FeatureComponents, null, null) + { + } + + public FeatureComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FeatureComponents, sourceLineNumber, id) + { + } + + public IntermediateField this[FeatureComponentsSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)FeatureComponentsSymbolFields.FeatureRef]; + set => this.Set((int)FeatureComponentsSymbolFields.FeatureRef, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)FeatureComponentsSymbolFields.ComponentRef]; + set => this.Set((int)FeatureComponentsSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/FeatureSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/FeatureSymbol.cs new file mode 100644 index 00000000..67972b63 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/FeatureSymbol.cs @@ -0,0 +1,129 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Feature = new IntermediateSymbolDefinition( + SymbolDefinitionType.Feature, + new[] + { + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.ParentFeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAbsent), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.DisallowAdvertise), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.InstallDefault), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FeatureSymbolFields.TypicalDefault), IntermediateFieldType.Number), + }, + typeof(FeatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FeatureSymbolFields + { + ParentFeatureRef, + Title, + Description, + Display, + Level, + DirectoryRef, + DisallowAbsent, + DisallowAdvertise, + InstallDefault, + TypicalDefault, + } + + public enum FeatureInstallDefault + { + Local, + Source, + FollowParent, + } + + public enum FeatureTypicalDefault + { + Install, + Advertise + } + + public class FeatureSymbol : IntermediateSymbol + { + public FeatureSymbol() : base(SymbolDefinitions.Feature, null, null) + { + } + + public FeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Feature, sourceLineNumber, id) + { + } + + public IntermediateField this[FeatureSymbolFields index] => this.Fields[(int)index]; + + public string ParentFeatureRef + { + get => (string)this.Fields[(int)FeatureSymbolFields.ParentFeatureRef]; + set => this.Set((int)FeatureSymbolFields.ParentFeatureRef, value); + } + + public string Title + { + get => (string)this.Fields[(int)FeatureSymbolFields.Title]; + set => this.Set((int)FeatureSymbolFields.Title, value); + } + + public string Description + { + get => (string)this.Fields[(int)FeatureSymbolFields.Description]; + set => this.Set((int)FeatureSymbolFields.Description, value); + } + + public int Display + { + get => (int)this.Fields[(int)FeatureSymbolFields.Display]; + set => this.Set((int)FeatureSymbolFields.Display, value); + } + + public int Level + { + get => (int)this.Fields[(int)FeatureSymbolFields.Level]; + set => this.Set((int)FeatureSymbolFields.Level, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)FeatureSymbolFields.DirectoryRef]; + set => this.Set((int)FeatureSymbolFields.DirectoryRef, value); + } + + public bool DisallowAbsent + { + get => this.Fields[(int)FeatureSymbolFields.DisallowAbsent].AsBool(); + set => this.Set((int)FeatureSymbolFields.DisallowAbsent, value); + } + + public bool DisallowAdvertise + { + get => this.Fields[(int)FeatureSymbolFields.DisallowAdvertise].AsBool(); + set => this.Set((int)FeatureSymbolFields.DisallowAdvertise, value); + } + + public FeatureInstallDefault InstallDefault + { + get => (FeatureInstallDefault)this.Fields[(int)FeatureSymbolFields.InstallDefault].AsNumber(); + set => this.Set((int)FeatureSymbolFields.InstallDefault, (int)value); + } + + public FeatureTypicalDefault TypicalDefault + { + get => (FeatureTypicalDefault)this.Fields[(int)FeatureSymbolFields.TypicalDefault].AsNumber(); + set => this.Set((int)FeatureSymbolFields.TypicalDefault, (int)value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs new file mode 100644 index 00000000..3abf2915 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/FileSFPCatalogSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition FileSFPCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.FileSFPCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSFPCatalogSymbolFields.SFPCatalogRef), IntermediateFieldType.String), + }, + typeof(FileSFPCatalogSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum FileSFPCatalogSymbolFields + { + FileRef, + SFPCatalogRef, + } + + public class FileSFPCatalogSymbol : IntermediateSymbol + { + public FileSFPCatalogSymbol() : base(SymbolDefinitions.FileSFPCatalog, null, null) + { + } + + public FileSFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.FileSFPCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[FileSFPCatalogSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.FileRef]; + set => this.Set((int)FileSFPCatalogSymbolFields.FileRef, value); + } + + public string SFPCatalogRef + { + get => (string)this.Fields[(int)FileSFPCatalogSymbolFields.SFPCatalogRef]; + set => this.Set((int)FileSFPCatalogSymbolFields.SFPCatalogRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/FileSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/FileSymbol.cs new file mode 100644 index 00000000..784b7846 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/FileSymbol.cs @@ -0,0 +1,256 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition File = new IntermediateSymbolDefinition( + SymbolDefinitionType.File, + new[] + { + new IntermediateFieldDefinition(nameof(FileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.FileSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.Source), IntermediateFieldType.Path), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.FontTitle), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.SelfRegCost), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.BindPath), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.Sequence), IntermediateFieldType.Number), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchGroup), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.PatchAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(FileSymbolFields.DeltaPatchHeaderSource), IntermediateFieldType.String), + + new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(FileSymbolFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(FileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum FileSymbolFields + { + ComponentRef, + Name, + ShortName, + FileSize, + Version, + Language, + Attributes, + DirectoryRef, + DiskId, + Source, + + FontTitle, + SelfRegCost, + BindPath, + + Sequence, + + PatchGroup, + PatchAttributes, + DeltaPatchHeaderSource, + + RetainLengths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + SymbolPaths, + } + + [Flags] + public enum FileSymbolAttributes : int + { + None = 0x0, + ReadOnly = 0x1, + Hidden = 0x2, + System = 0x4, + Vital = 0x8, + Compressed = 0x10, + Uncompressed = 0x20, + Checksum = 0x40, + } + + /// + /// PatchAttribute values + /// + [Flags] + public enum PatchAttributeType + { + None = 0, + + /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. + Ignore = 1, + + /// Set if the entire file should be installed rather than creating a binary patch. + IncludeWholeFile = 2, + + /// Set to indicate that the patch is non-vital. + AllowIgnoreOnError = 4, + + /// Allowed bits. + Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError + } + + public class FileSymbol : IntermediateSymbol + { + public FileSymbol() : base(SymbolDefinitions.File, null, null) + { + } + + public FileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.File, sourceLineNumber, id) + { + } + + public IntermediateField this[FileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)FileSymbolFields.ComponentRef]; + set => this.Set((int)FileSymbolFields.ComponentRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)FileSymbolFields.Name]; + set => this.Set((int)FileSymbolFields.Name, value); + } + + public string ShortName + { + get => (string)this.Fields[(int)FileSymbolFields.ShortName]; + set => this.Set((int)FileSymbolFields.ShortName, value); + } + + public int FileSize + { + get => (int)this.Fields[(int)FileSymbolFields.FileSize]; + set => this.Set((int)FileSymbolFields.FileSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)FileSymbolFields.Version]; + set => this.Set((int)FileSymbolFields.Version, value); + } + + public string Language + { + get => (string)this.Fields[(int)FileSymbolFields.Language]; + set => this.Set((int)FileSymbolFields.Language, value); + } + + public FileSymbolAttributes Attributes + { + get => (FileSymbolAttributes)this.Fields[(int)FileSymbolFields.Attributes].AsNumber(); + set => this.Set((int)FileSymbolFields.Attributes, (int)value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)FileSymbolFields.DirectoryRef]; + set => this.Set((int)FileSymbolFields.DirectoryRef, value); + } + + public int? DiskId + { + get => (int?)this.Fields[(int)FileSymbolFields.DiskId]; + set => this.Set((int)FileSymbolFields.DiskId, value); + } + + public IntermediateFieldPathValue Source + { + get => this.Fields[(int)FileSymbolFields.Source].AsPath(); + set => this.Set((int)FileSymbolFields.Source, value); + } + + public string FontTitle + { + get => (string)this.Fields[(int)FileSymbolFields.FontTitle]; + set => this.Set((int)FileSymbolFields.FontTitle, value); + } + + public int? SelfRegCost + { + get => (int?)this.Fields[(int)FileSymbolFields.SelfRegCost]; + set => this.Set((int)FileSymbolFields.SelfRegCost, value); + } + + public string BindPath + { + get => (string)this.Fields[(int)FileSymbolFields.BindPath]; + set => this.Set((int)FileSymbolFields.BindPath, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)FileSymbolFields.Sequence]; + set => this.Set((int)FileSymbolFields.Sequence, value); + } + + public int? PatchGroup + { + get => (int?)this.Fields[(int)FileSymbolFields.PatchGroup]; + set => this.Set((int)FileSymbolFields.PatchGroup, value); + } + + public PatchAttributeType? PatchAttributes + { + get => (PatchAttributeType?)this.Fields[(int)FileSymbolFields.PatchAttributes].AsNullableNumber(); + set => this.Set((int)FileSymbolFields.PatchAttributes, (int?)value); + } + + public string DeltaPatchHeaderSource + { + get => (string)this.Fields[(int)FileSymbolFields.DeltaPatchHeaderSource]; + set => this.Set((int)FileSymbolFields.DeltaPatchHeaderSource, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)FileSymbolFields.RetainLengths]; + set => this.Set((int)FileSymbolFields.RetainLengths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)FileSymbolFields.IgnoreOffsets]; + set => this.Set((int)FileSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)FileSymbolFields.IgnoreLengths]; + set => this.Set((int)FileSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)FileSymbolFields.RetainOffsets]; + set => this.Set((int)FileSymbolFields.RetainOffsets, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)FileSymbolFields.SymbolPaths]; + set => this.Set((int)FileSymbolFields.SymbolPaths, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/IconSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/IconSymbol.cs new file mode 100644 index 00000000..f3c825ec --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/IconSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Icon = new IntermediateSymbolDefinition( + SymbolDefinitionType.Icon, + new[] + { + new IntermediateFieldDefinition(nameof(IconSymbolFields.Data), IntermediateFieldType.Path), + }, + typeof(IconSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IconSymbolFields + { + Data, + } + + public class IconSymbol : IntermediateSymbol + { + public IconSymbol() : base(SymbolDefinitions.Icon, null, null) + { + } + + public IconSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Icon, sourceLineNumber, id) + { + } + + public IntermediateField this[IconSymbolFields index] => this.Fields[(int)index]; + + public IntermediateFieldPathValue Data + { + get => this.Fields[(int)IconSymbolFields.Data].AsPath(); + set => this.Set((int)IconSymbolFields.Data, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs new file mode 100644 index 00000000..090628ef --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ImageFamilies = new IntermediateSymbolDefinition( + SymbolDefinitionType.ImageFamilies, + new[] + { + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.Family), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaSrcPropName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.MediaDiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.FileSequenceStart), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ImageFamiliesSymbolFields.VolumeLabel), IntermediateFieldType.String), + }, + typeof(ImageFamiliesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ImageFamiliesSymbolFields + { + Family, + MediaSrcPropName, + MediaDiskId, + FileSequenceStart, + DiskPrompt, + VolumeLabel, + } + + public class ImageFamiliesSymbol : IntermediateSymbol + { + public ImageFamiliesSymbol() : base(SymbolDefinitions.ImageFamilies, null, null) + { + } + + public ImageFamiliesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ImageFamilies, sourceLineNumber, id) + { + } + + public IntermediateField this[ImageFamiliesSymbolFields index] => this.Fields[(int)index]; + + public string Family + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.Family]; + set => this.Set((int)ImageFamiliesSymbolFields.Family, value); + } + + public string MediaSrcPropName + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.MediaSrcPropName]; + set => this.Set((int)ImageFamiliesSymbolFields.MediaSrcPropName, value); + } + + public int? MediaDiskId + { + get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.MediaDiskId]; + set => this.Set((int)ImageFamiliesSymbolFields.MediaDiskId, value); + } + + public int? FileSequenceStart + { + get => (int?)this.Fields[(int)ImageFamiliesSymbolFields.FileSequenceStart]; + set => this.Set((int)ImageFamiliesSymbolFields.FileSequenceStart, value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.DiskPrompt]; + set => this.Set((int)ImageFamiliesSymbolFields.DiskPrompt, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)ImageFamiliesSymbolFields.VolumeLabel]; + set => this.Set((int)ImageFamiliesSymbolFields.VolumeLabel, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/IniFileSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/IniFileSymbol.cs new file mode 100644 index 00000000..051acdbb --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/IniFileSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition IniFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.IniFile, + new[] + { + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ShortFileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.DirProperty), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniFileSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(IniFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IniFileSymbolFields + { + FileName, + ShortFileName, + DirProperty, + Section, + Key, + Value, + Action, + ComponentRef, + } + + public class IniFileSymbol : IntermediateSymbol + { + public IniFileSymbol() : base(SymbolDefinitions.IniFile, null, null) + { + } + + public IniFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniFile, sourceLineNumber, id) + { + } + + public IntermediateField this[IniFileSymbolFields index] => this.Fields[(int)index]; + + public string FileName + { + get => (string)this.Fields[(int)IniFileSymbolFields.FileName]; + set => this.Set((int)IniFileSymbolFields.FileName, value); + } + + public string ShortFileName + { + get => (string)this.Fields[(int)IniFileSymbolFields.ShortFileName]; + set => this.Set((int)IniFileSymbolFields.ShortFileName, value); + } + + public string DirProperty + { + get => (string)this.Fields[(int)IniFileSymbolFields.DirProperty]; + set => this.Set((int)IniFileSymbolFields.DirProperty, value); + } + + public string Section + { + get => (string)this.Fields[(int)IniFileSymbolFields.Section]; + set => this.Set((int)IniFileSymbolFields.Section, value); + } + + public string Key + { + get => (string)this.Fields[(int)IniFileSymbolFields.Key]; + set => this.Set((int)IniFileSymbolFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)IniFileSymbolFields.Value]; + set => this.Set((int)IniFileSymbolFields.Value, value); + } + + public IniFileActionType Action + { + get => (IniFileActionType)this.Fields[(int)IniFileSymbolFields.Action]?.AsNumber(); + set => this.Set((int)IniFileSymbolFields.Action, (int)value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)IniFileSymbolFields.ComponentRef]; + set => this.Set((int)IniFileSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/IniLocatorSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/IniLocatorSymbol.cs new file mode 100644 index 00000000..c36f0dfc --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/IniLocatorSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition IniLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.IniLocator, + new[] + { + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.ShortFileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Section), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Field), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(IniLocatorSymbolFields.Type), IntermediateFieldType.Number), + }, + typeof(IniLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IniLocatorSymbolFields + { + FileName, + ShortFileName, + Section, + Key, + Field, + Type, + } + + public class IniLocatorSymbol : IntermediateSymbol + { + public IniLocatorSymbol() : base(SymbolDefinitions.IniLocator, null, null) + { + } + + public IniLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IniLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[IniLocatorSymbolFields index] => this.Fields[(int)index]; + + public string FileName + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.FileName]; + set => this.Set((int)IniLocatorSymbolFields.FileName, value); + } + + public string ShortFileName + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.ShortFileName]; + set => this.Set((int)IniLocatorSymbolFields.ShortFileName, value); + } + + public string Section + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.Section]; + set => this.Set((int)IniLocatorSymbolFields.Section, value); + } + + public string Key + { + get => (string)this.Fields[(int)IniLocatorSymbolFields.Key]; + set => this.Set((int)IniLocatorSymbolFields.Key, value); + } + + public int? Field + { + get => (int?)this.Fields[(int)IniLocatorSymbolFields.Field]; + set => this.Set((int)IniLocatorSymbolFields.Field, value); + } + + public int? Type + { + get => (int?)this.Fields[(int)IniLocatorSymbolFields.Type]; + set => this.Set((int)IniLocatorSymbolFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/InifFileActionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/InifFileActionSymbol.cs new file mode 100644 index 00000000..a04567ec --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/InifFileActionSymbol.cs @@ -0,0 +1,13 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + public enum IniFileActionType + { + AddLine, + AddTag, + CreateLine, + RemoveLine, + RemoveTag, + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs new file mode 100644 index 00000000..681f1030 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/IsolatedComponentSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition IsolatedComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.IsolatedComponent, + new[] + { + new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.SharedComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(IsolatedComponentSymbolFields.ApplicationComponentRef), IntermediateFieldType.String), + }, + typeof(IsolatedComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum IsolatedComponentSymbolFields + { + SharedComponentRef, + ApplicationComponentRef, + } + + public class IsolatedComponentSymbol : IntermediateSymbol + { + public IsolatedComponentSymbol() : base(SymbolDefinitions.IsolatedComponent, null, null) + { + } + + public IsolatedComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.IsolatedComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[IsolatedComponentSymbolFields index] => this.Fields[(int)index]; + + public string SharedComponentRef + { + get => (string)this.Fields[(int)IsolatedComponentSymbolFields.SharedComponentRef]; + set => this.Set((int)IsolatedComponentSymbolFields.SharedComponentRef, value); + } + + public string ApplicationComponentRef + { + get => (string)this.Fields[(int)IsolatedComponentSymbolFields.ApplicationComponentRef]; + set => this.Set((int)IsolatedComponentSymbolFields.ApplicationComponentRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/LaunchConditionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/LaunchConditionSymbol.cs new file mode 100644 index 00000000..a160f25f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/LaunchConditionSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition LaunchCondition = new IntermediateSymbolDefinition( + SymbolDefinitionType.LaunchCondition, + new[] + { + new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LaunchConditionSymbolFields.Description), IntermediateFieldType.String), + }, + typeof(LaunchConditionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum LaunchConditionSymbolFields + { + Condition, + Description, + } + + public class LaunchConditionSymbol : IntermediateSymbol + { + public LaunchConditionSymbol() : base(SymbolDefinitions.LaunchCondition, null, null) + { + } + + public LaunchConditionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LaunchCondition, sourceLineNumber, id) + { + } + + public IntermediateField this[LaunchConditionSymbolFields index] => this.Fields[(int)index]; + + public string Condition + { + get => (string)this.Fields[(int)LaunchConditionSymbolFields.Condition]; + set => this.Set((int)LaunchConditionSymbolFields.Condition, value); + } + + public string Description + { + get => (string)this.Fields[(int)LaunchConditionSymbolFields.Description]; + set => this.Set((int)LaunchConditionSymbolFields.Description, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ListBoxSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ListBoxSymbol.cs new file mode 100644 index 00000000..174327d1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ListBoxSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ListBox = new IntermediateSymbolDefinition( + SymbolDefinitionType.ListBox, + new[] + { + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListBoxSymbolFields.Text), IntermediateFieldType.String), + }, + typeof(ListBoxSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ListBoxSymbolFields + { + Property, + Order, + Value, + Text, + } + + public class ListBoxSymbol : IntermediateSymbol + { + public ListBoxSymbol() : base(SymbolDefinitions.ListBox, null, null) + { + } + + public ListBoxSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListBox, sourceLineNumber, id) + { + } + + public IntermediateField this[ListBoxSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ListBoxSymbolFields.Property]; + set => this.Set((int)ListBoxSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ListBoxSymbolFields.Order]; + set => this.Set((int)ListBoxSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ListBoxSymbolFields.Value]; + set => this.Set((int)ListBoxSymbolFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ListBoxSymbolFields.Text]; + set => this.Set((int)ListBoxSymbolFields.Text, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ListViewSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ListViewSymbol.cs new file mode 100644 index 00000000..09543ab1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ListViewSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ListView = new IntermediateSymbolDefinition( + SymbolDefinitionType.ListView, + new[] + { + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ListViewSymbolFields.BinaryRef), IntermediateFieldType.String), + }, + typeof(ListViewSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ListViewSymbolFields + { + Property, + Order, + Value, + Text, + BinaryRef, + } + + public class ListViewSymbol : IntermediateSymbol + { + public ListViewSymbol() : base(SymbolDefinitions.ListView, null, null) + { + } + + public ListViewSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ListView, sourceLineNumber, id) + { + } + + public IntermediateField this[ListViewSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)ListViewSymbolFields.Property]; + set => this.Set((int)ListViewSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)ListViewSymbolFields.Order]; + set => this.Set((int)ListViewSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)ListViewSymbolFields.Value]; + set => this.Set((int)ListViewSymbolFields.Value, value); + } + + public string Text + { + get => (string)this.Fields[(int)ListViewSymbolFields.Text]; + set => this.Set((int)ListViewSymbolFields.Text, value); + } + + public string BinaryRef + { + get => (string)this.Fields[(int)ListViewSymbolFields.BinaryRef]; + set => this.Set((int)ListViewSymbolFields.BinaryRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/LocatorSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/LocatorSymbol.cs new file mode 100644 index 00000000..6f136389 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/LocatorSymbol.cs @@ -0,0 +1,12 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + public enum LocatorType + { + Directory, + Filename, + RawValue, + x64 = 16, + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/LockPermissionsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/LockPermissionsSymbol.cs new file mode 100644 index 00000000..b9337446 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/LockPermissionsSymbol.cs @@ -0,0 +1,157 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition LockPermissions = new IntermediateSymbolDefinition( + SymbolDefinitionType.LockPermissions, + new[] + { + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Domain), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.User), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(LockPermissionsSymbolFields.Permission), IntermediateFieldType.Number), + }, + typeof(LockPermissionsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum LockPermissionsSymbolFields + { + LockObject, + Table, + Domain, + User, + Permission, + } + + /// + ///------------------------------------------------------------------------------------------------- + /// Layout of an Access Mask (from http://technet.microsoft.com/en-us/library/cc783530(WS.10).aspx) + /// + /// ------------------------------------------------------------------------------------------------- + /// |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00| + /// ------------------------------------------------------------------------------------------------- + /// |GR|GW|GE|GA| Reserved |AS|StandardAccessRights| Object-Specific Access Rights | + /// + /// Key + /// GR = Generic Read + /// GW = Generic Write + /// GE = Generic Execute + /// GA = Generic All + /// AS = Right to access SACL + /// + public static class LockPermissionConstants + { + /// + /// Generic Access Rights (per WinNT.h) + /// --------------------- + /// GENERIC_ALL (0x10000000L) + /// GENERIC_EXECUTE (0x20000000L) + /// GENERIC_WRITE (0x40000000L) + /// GENERIC_READ (0x80000000L) + /// + public static readonly string[] GenericPermissions = { "GenericAll", "GenericExecute", "GenericWrite", "GenericRead" }; + + /// + /// Standard Access Rights (per WinNT.h) + /// ---------------------- + /// DELETE (0x00010000L) + /// READ_CONTROL (0x00020000L) + /// WRITE_DAC (0x00040000L) + /// WRITE_OWNER (0x00080000L) + /// SYNCHRONIZE (0x00100000L) + /// + public static readonly string[] StandardPermissions = { "Delete", "ReadPermission", "ChangePermission", "TakeOwnership", "Synchronize" }; + + /// + /// Object-Specific Access Rights + /// ============================= + /// Directory Access Rights (per WinNT.h) + /// ----------------------- + /// FILE_LIST_DIRECTORY ( 0x0001 ) + /// FILE_ADD_FILE ( 0x0002 ) + /// FILE_ADD_SUBDIRECTORY ( 0x0004 ) + /// FILE_READ_EA ( 0x0008 ) + /// FILE_WRITE_EA ( 0x0010 ) + /// FILE_TRAVERSE ( 0x0020 ) + /// FILE_DELETE_CHILD ( 0x0040 ) + /// FILE_READ_ATTRIBUTES ( 0x0080 ) + /// FILE_WRITE_ATTRIBUTES ( 0x0100 ) + /// + public static readonly string[] FolderPermissions = { "Read", "CreateFile", "CreateChild", "ReadExtendedAttributes", "WriteExtendedAttributes", "Traverse", "DeleteChild", "ReadAttributes", "WriteAttributes" }; + + /// + /// Registry Access Rights + /// ---------------------- + /// + public static readonly string[] RegistryPermissions = { "Read", "Write", "CreateSubkeys", "EnumerateSubkeys", "Notify", "CreateLink" }; + + /// + /// File Access Rights (per WinNT.h) + /// ------------------ + /// FILE_READ_DATA ( 0x0001 ) + /// FILE_WRITE_DATA ( 0x0002 ) + /// FILE_APPEND_DATA ( 0x0004 ) + /// FILE_READ_EA ( 0x0008 ) + /// FILE_WRITE_EA ( 0x0010 ) + /// FILE_EXECUTE ( 0x0020 ) + /// via mask FILE_ALL_ACCESS ( 0x0040 ) + /// FILE_READ_ATTRIBUTES ( 0x0080 ) + /// FILE_WRITE_ATTRIBUTES ( 0x0100 ) + /// + /// STANDARD_RIGHTS_REQUIRED (0x000F0000L) + /// FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) + /// + public static readonly string[] FilePermissions = { "Read", "Write", "Append", "ReadExtendedAttributes", "WriteExtendedAttributes", "Execute", "FileAllRights", "ReadAttributes", "WriteAttributes" }; + } + + public class LockPermissionsSymbol : IntermediateSymbol + { + public LockPermissionsSymbol() : base(SymbolDefinitions.LockPermissions, null, null) + { + } + + public LockPermissionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.LockPermissions, sourceLineNumber, id) + { + } + + public IntermediateField this[LockPermissionsSymbolFields index] => this.Fields[(int)index]; + + public string LockObject + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.LockObject]; + set => this.Set((int)LockPermissionsSymbolFields.LockObject, value); + } + + public string Table + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.Table]; + set => this.Set((int)LockPermissionsSymbolFields.Table, value); + } + + public string Domain + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.Domain]; + set => this.Set((int)LockPermissionsSymbolFields.Domain, value); + } + + public string User + { + get => (string)this.Fields[(int)LockPermissionsSymbolFields.User]; + set => this.Set((int)LockPermissionsSymbolFields.User, value); + } + + public int? Permission + { + get => (int?)this.Fields[(int)LockPermissionsSymbolFields.Permission]; + set => this.Set((int)LockPermissionsSymbolFields.Permission, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MIMESymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MIMESymbol.cs new file mode 100644 index 00000000..f66d05b8 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MIMESymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MIME = new IntermediateSymbolDefinition( + SymbolDefinitionType.MIME, + new[] + { + new IntermediateFieldDefinition(nameof(MIMESymbolFields.ContentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMESymbolFields.ExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MIMESymbolFields.CLSID), IntermediateFieldType.String), + }, + typeof(MIMESymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MIMESymbolFields + { + ContentType, + ExtensionRef, + CLSID, + } + + public class MIMESymbol : IntermediateSymbol + { + public MIMESymbol() : base(SymbolDefinitions.MIME, null, null) + { + } + + public MIMESymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MIME, sourceLineNumber, id) + { + } + + public IntermediateField this[MIMESymbolFields index] => this.Fields[(int)index]; + + public string ContentType + { + get => (string)this.Fields[(int)MIMESymbolFields.ContentType]; + set => this.Set((int)MIMESymbolFields.ContentType, value); + } + + public string ExtensionRef + { + get => (string)this.Fields[(int)MIMESymbolFields.ExtensionRef]; + set => this.Set((int)MIMESymbolFields.ExtensionRef, value); + } + + public string CLSID + { + get => (string)this.Fields[(int)MIMESymbolFields.CLSID]; + set => this.Set((int)MIMESymbolFields.CLSID, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MediaSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MediaSymbol.cs new file mode 100644 index 00000000..f216cddc --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MediaSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Media = new IntermediateSymbolDefinition( + SymbolDefinitionType.Media, + new[] + { + new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.LastSequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Cabinet), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MediaSymbolFields.Layout), IntermediateFieldType.String), + }, + typeof(MediaSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MediaSymbolFields + { + DiskId, + LastSequence, + DiskPrompt, + Cabinet, + VolumeLabel, + Source, + CompressionLevel, + Layout, + } + + public class MediaSymbol : IntermediateSymbol + { + public MediaSymbol() : base(SymbolDefinitions.Media, null, null) + { + } + + public MediaSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Media, sourceLineNumber, id) + { + } + + public IntermediateField this[MediaSymbolFields index] => this.Fields[(int)index]; + + public int DiskId + { + get => (int)this.Fields[(int)MediaSymbolFields.DiskId]; + set => this.Set((int)MediaSymbolFields.DiskId, value); + } + + public int? LastSequence + { + get => (int?)this.Fields[(int)MediaSymbolFields.LastSequence]; + set => this.Set((int)MediaSymbolFields.LastSequence, value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)MediaSymbolFields.DiskPrompt]; + set => this.Set((int)MediaSymbolFields.DiskPrompt, value); + } + + public string Cabinet + { + get => (string)this.Fields[(int)MediaSymbolFields.Cabinet]; + set => this.Set((int)MediaSymbolFields.Cabinet, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)MediaSymbolFields.VolumeLabel]; + set => this.Set((int)MediaSymbolFields.VolumeLabel, value); + } + + public string Source + { + get => (string)this.Fields[(int)MediaSymbolFields.Source]; + set => this.Set((int)MediaSymbolFields.Source, value); + } + + public CompressionLevel? CompressionLevel + { + get => (CompressionLevel?)this.Fields[(int)MediaSymbolFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)MediaSymbolFields.CompressionLevel, (int?)value); + } + + public string Layout + { + get => (string)this.Fields[(int)MediaSymbolFields.Layout]; + set => this.Set((int)MediaSymbolFields.Layout, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs new file mode 100644 index 00000000..287819ab --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ModuleComponentsSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleComponents = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleComponents, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Component), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleComponentsSymbolFields.Language), IntermediateFieldType.Number), + }, + typeof(ModuleComponentsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleComponentsSymbolFields + { + Component, + ModuleID, + Language, + } + + public class ModuleComponentsSymbol : IntermediateSymbol + { + public ModuleComponentsSymbol() : base(SymbolDefinitions.ModuleComponents, null, null) + { + } + + public ModuleComponentsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleComponents, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleComponentsSymbolFields index] => this.Fields[(int)index]; + + public string Component + { + get => (string)this.Fields[(int)ModuleComponentsSymbolFields.Component]; + set => this.Set((int)ModuleComponentsSymbolFields.Component, value); + } + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleComponentsSymbolFields.ModuleID]; + set => this.Set((int)ModuleComponentsSymbolFields.ModuleID, value); + } + + public int Language + { + get => (int)this.Fields[(int)ModuleComponentsSymbolFields.Language]; + set => this.Set((int)ModuleComponentsSymbolFields.Language, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs new file mode 100644 index 00000000..8188dc87 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ModuleConfigurationSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleConfiguration = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleConfiguration, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Format), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.ContextData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DefaultValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.KeyNoOrphan), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.NonNullable), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpLocation), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleConfigurationSymbolFields.HelpKeyword), IntermediateFieldType.String), + }, + typeof(ModuleConfigurationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleConfigurationSymbolFields + { + Format, + Type, + ContextData, + DefaultValue, + KeyNoOrphan, + NonNullable, + DisplayName, + Description, + HelpLocation, + HelpKeyword, + } + + public class ModuleConfigurationSymbol : IntermediateSymbol + { + public ModuleConfigurationSymbol() : base(SymbolDefinitions.ModuleConfiguration, null, null) + { + } + + public ModuleConfigurationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleConfiguration, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleConfigurationSymbolFields index] => this.Fields[(int)index]; + + public int Format + { + get => (int)this.Fields[(int)ModuleConfigurationSymbolFields.Format]; + set => this.Set((int)ModuleConfigurationSymbolFields.Format, value); + } + + public string Type + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Type]; + set => this.Set((int)ModuleConfigurationSymbolFields.Type, value); + } + + public string ContextData + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.ContextData]; + set => this.Set((int)ModuleConfigurationSymbolFields.ContextData, value); + } + + public string DefaultValue + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DefaultValue]; + set => this.Set((int)ModuleConfigurationSymbolFields.DefaultValue, value); + } + + public bool KeyNoOrphan + { + get => this.Fields[(int)ModuleConfigurationSymbolFields.KeyNoOrphan].AsBool(); + set => this.Set((int)ModuleConfigurationSymbolFields.KeyNoOrphan, value); + } + + public bool NonNullable + { + get => this.Fields[(int)ModuleConfigurationSymbolFields.NonNullable].AsBool(); + set => this.Set((int)ModuleConfigurationSymbolFields.NonNullable, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.DisplayName]; + set => this.Set((int)ModuleConfigurationSymbolFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.Description]; + set => this.Set((int)ModuleConfigurationSymbolFields.Description, value); + } + + public string HelpLocation + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpLocation]; + set => this.Set((int)ModuleConfigurationSymbolFields.HelpLocation, value); + } + + public string HelpKeyword + { + get => (string)this.Fields[(int)ModuleConfigurationSymbolFields.HelpKeyword]; + set => this.Set((int)ModuleConfigurationSymbolFields.HelpKeyword, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ModuleDependencySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ModuleDependencySymbol.cs new file mode 100644 index 00000000..80d2d5f6 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ModuleDependencySymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleDependency = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleDependency, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleDependencySymbolFields.RequiredVersion), IntermediateFieldType.String), + }, + typeof(ModuleDependencySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleDependencySymbolFields + { + ModuleID, + ModuleLanguage, + RequiredID, + RequiredLanguage, + RequiredVersion, + } + + public class ModuleDependencySymbol : IntermediateSymbol + { + public ModuleDependencySymbol() : base(SymbolDefinitions.ModuleDependency, null, null) + { + } + + public ModuleDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleDependency, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleDependencySymbolFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleDependencySymbolFields.ModuleID]; + set => this.Set((int)ModuleDependencySymbolFields.ModuleID, value); + } + + public int ModuleLanguage + { + get => (int)this.Fields[(int)ModuleDependencySymbolFields.ModuleLanguage]; + set => this.Set((int)ModuleDependencySymbolFields.ModuleLanguage, value); + } + + public string RequiredID + { + get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredID]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredID, value); + } + + public int RequiredLanguage + { + get => (int)this.Fields[(int)ModuleDependencySymbolFields.RequiredLanguage]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredLanguage, value); + } + + public string RequiredVersion + { + get => (string)this.Fields[(int)ModuleDependencySymbolFields.RequiredVersion]; + set => this.Set((int)ModuleDependencySymbolFields.RequiredVersion, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs new file mode 100644 index 00000000..0c45abfa --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ModuleExclusionSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleExclusion = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleExclusion, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ModuleLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleExclusionSymbolFields.ExcludedMaxVersion), IntermediateFieldType.String), + }, + typeof(ModuleExclusionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleExclusionSymbolFields + { + ModuleID, + ModuleLanguage, + ExcludedID, + ExcludedLanguage, + ExcludedMinVersion, + ExcludedMaxVersion, + } + + public class ModuleExclusionSymbol : IntermediateSymbol + { + public ModuleExclusionSymbol() : base(SymbolDefinitions.ModuleExclusion, null, null) + { + } + + public ModuleExclusionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleExclusion, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleExclusionSymbolFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ModuleID]; + set => this.Set((int)ModuleExclusionSymbolFields.ModuleID, value); + } + + public int ModuleLanguage + { + get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ModuleLanguage]; + set => this.Set((int)ModuleExclusionSymbolFields.ModuleLanguage, value); + } + + public string ExcludedID + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedID]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedID, value); + } + + public int ExcludedLanguage + { + get => (int)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedLanguage]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedLanguage, value); + } + + public string ExcludedMinVersion + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMinVersion]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMinVersion, value); + } + + public string ExcludedMaxVersion + { + get => (string)this.Fields[(int)ModuleExclusionSymbolFields.ExcludedMaxVersion]; + set => this.Set((int)ModuleExclusionSymbolFields.ExcludedMaxVersion, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs new file mode 100644 index 00000000..07302df8 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ModuleIgnoreTableSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleIgnoreTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleIgnoreTable, + new IntermediateFieldDefinition[] + { + }, + typeof(ModuleIgnoreTableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleIgnoreTableSymbolFields + { + } + + public class ModuleIgnoreTableSymbol : IntermediateSymbol + { + public ModuleIgnoreTableSymbol() : base(SymbolDefinitions.ModuleIgnoreTable, null, null) + { + } + + public ModuleIgnoreTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleIgnoreTable, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleIgnoreTableSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs new file mode 100644 index 00000000..50d615b0 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ModuleSubstitutionSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleSubstitution = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleSubstitution, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Row), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Column), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSubstitutionSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(ModuleSubstitutionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleSubstitutionSymbolFields + { + Table, + Row, + Column, + Value, + } + + public class ModuleSubstitutionSymbol : IntermediateSymbol + { + public ModuleSubstitutionSymbol() : base(SymbolDefinitions.ModuleSubstitution, null, null) + { + } + + public ModuleSubstitutionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSubstitution, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleSubstitutionSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Table]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Table, value); + } + + public string Row + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Row]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Row, value); + } + + public string Column + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Column]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Column, value); + } + + public string Value + { + get => (string)this.Fields[(int)ModuleSubstitutionSymbolFields.Value]; + set => this.Set((int)ModuleSubstitutionSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MoveFileSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MoveFileSymbol.cs new file mode 100644 index 00000000..6e9e32a5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MoveFileSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MoveFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.MoveFile, + new[] + { + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestinationName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestinationShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.SourceFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.DestFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MoveFileSymbolFields.Delete), IntermediateFieldType.Bool), + }, + typeof(MoveFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MoveFileSymbolFields + { + ComponentRef, + SourceName, + DestinationName, + DestinationShortName, + SourceFolder, + DestFolder, + Delete, + } + + public class MoveFileSymbol : IntermediateSymbol + { + public MoveFileSymbol() : base(SymbolDefinitions.MoveFile, null, null) + { + } + + public MoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MoveFile, sourceLineNumber, id) + { + } + + public IntermediateField this[MoveFileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)MoveFileSymbolFields.ComponentRef]; + set => this.Set((int)MoveFileSymbolFields.ComponentRef, value); + } + + public string SourceName + { + get => (string)this.Fields[(int)MoveFileSymbolFields.SourceName]; + set => this.Set((int)MoveFileSymbolFields.SourceName, value); + } + + public string DestinationName + { + get => (string)this.Fields[(int)MoveFileSymbolFields.DestinationName]; + set => this.Set((int)MoveFileSymbolFields.DestinationName, value); + } + + public string DestinationShortName + { + get => (string)this.Fields[(int)MoveFileSymbolFields.DestinationShortName]; + set => this.Set((int)MoveFileSymbolFields.DestinationShortName, value); + } + + public string SourceFolder + { + get => (string)this.Fields[(int)MoveFileSymbolFields.SourceFolder]; + set => this.Set((int)MoveFileSymbolFields.SourceFolder, value); + } + + public string DestFolder + { + get => (string)this.Fields[(int)MoveFileSymbolFields.DestFolder]; + set => this.Set((int)MoveFileSymbolFields.DestFolder, value); + } + + public bool Delete + { + get => (bool)this.Fields[(int)MoveFileSymbolFields.Delete]; + set => this.Set((int)MoveFileSymbolFields.Delete, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs new file mode 100644 index 00000000..99c9806d --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiAssemblyNameSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiAssemblyName = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiAssemblyName, + new[] + { + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiAssemblyNameSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(MsiAssemblyNameSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiAssemblyNameSymbolFields + { + ComponentRef, + Name, + Value, + } + + public class MsiAssemblyNameSymbol : IntermediateSymbol + { + public MsiAssemblyNameSymbol() : base(SymbolDefinitions.MsiAssemblyName, null, null) + { + } + + public MsiAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiAssemblyName, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiAssemblyNameSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.ComponentRef]; + set => this.Set((int)MsiAssemblyNameSymbolFields.ComponentRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Name]; + set => this.Set((int)MsiAssemblyNameSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiAssemblyNameSymbolFields.Value]; + set => this.Set((int)MsiAssemblyNameSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs new file mode 100644 index 00000000..febd51cc --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiDigitalCertificateSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiDigitalCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiDigitalCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiDigitalCertificateSymbolFields.CertData), IntermediateFieldType.Path), + }, + typeof(MsiDigitalCertificateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiDigitalCertificateSymbolFields + { + CertData, + } + + public class MsiDigitalCertificateSymbol : IntermediateSymbol + { + public MsiDigitalCertificateSymbol() : base(SymbolDefinitions.MsiDigitalCertificate, null, null) + { + } + + public MsiDigitalCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiDigitalCertificateSymbolFields index] => this.Fields[(int)index]; + + public string CertData + { + get => (string)this.Fields[(int)MsiDigitalCertificateSymbolFields.CertData]; + set => this.Set((int)MsiDigitalCertificateSymbolFields.CertData, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs new file mode 100644 index 00000000..560f3590 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiDigitalSignatureSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiDigitalSignature = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiDigitalSignature, + new[] + { + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.SignObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiDigitalSignatureSymbolFields.Hash), IntermediateFieldType.Path), + }, + typeof(MsiDigitalSignatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiDigitalSignatureSymbolFields + { + Table, + SignObject, + DigitalCertificateRef, + Hash, + } + + public class MsiDigitalSignatureSymbol : IntermediateSymbol + { + public MsiDigitalSignatureSymbol() : base(SymbolDefinitions.MsiDigitalSignature, null, null) + { + } + + public MsiDigitalSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiDigitalSignature, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiDigitalSignatureSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Table]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.Table, value); + } + + public string SignObject + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.SignObject]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.SignObject, value); + } + + public string DigitalCertificateRef + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.DigitalCertificateRef, value); + } + + public string Hash + { + get => (string)this.Fields[(int)MsiDigitalSignatureSymbolFields.Hash]; + set => this.Set((int)MsiDigitalSignatureSymbolFields.Hash, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs new file mode 100644 index 00000000..eeed1673 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedChainerSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiEmbeddedChainer = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiEmbeddedChainer, + new[] + { + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.CommandLine), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Source), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerSymbolFields.Type), IntermediateFieldType.Number), + }, + typeof(MsiEmbeddedChainerSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiEmbeddedChainerSymbolFields + { + Condition, + CommandLine, + Source, + Type, + } + + public class MsiEmbeddedChainerSymbol : IntermediateSymbol + { + public MsiEmbeddedChainerSymbol() : base(SymbolDefinitions.MsiEmbeddedChainer, null, null) + { + } + + public MsiEmbeddedChainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiEmbeddedChainerSymbolFields index] => this.Fields[(int)index]; + + public string Condition + { + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Condition]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Condition, value); + } + + public string CommandLine + { + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.CommandLine]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.CommandLine, value); + } + + public string Source + { + get => (string)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Source]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Source, value); + } + + public int Type + { + get => (int)this.Fields[(int)MsiEmbeddedChainerSymbolFields.Type]; + set => this.Set((int)MsiEmbeddedChainerSymbolFields.Type, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs new file mode 100644 index 00000000..87c9481a --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiEmbeddedUISymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiEmbeddedUI = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiEmbeddedUI, + new[] + { + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.EntryPoint), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.SupportsBasicUI), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.MessageFilter), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiEmbeddedUISymbolFields.Source), IntermediateFieldType.Path), + }, + typeof(MsiEmbeddedUISymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiEmbeddedUISymbolFields + { + FileName, + EntryPoint, + SupportsBasicUI, + MessageFilter, + Source, + } + + public class MsiEmbeddedUISymbol : IntermediateSymbol + { + public MsiEmbeddedUISymbol() : base(SymbolDefinitions.MsiEmbeddedUI, null, null) + { + } + + public MsiEmbeddedUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiEmbeddedUI, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiEmbeddedUISymbolFields index] => this.Fields[(int)index]; + + public string FileName + { + get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.FileName]; + set => this.Set((int)MsiEmbeddedUISymbolFields.FileName, value); + } + + public bool EntryPoint + { + get => this.Fields[(int)MsiEmbeddedUISymbolFields.EntryPoint].AsBool(); + set => this.Set((int)MsiEmbeddedUISymbolFields.EntryPoint, value); + } + + public bool SupportsBasicUI + { + get => this.Fields[(int)MsiEmbeddedUISymbolFields.SupportsBasicUI].AsBool(); + set => this.Set((int)MsiEmbeddedUISymbolFields.SupportsBasicUI, value); + } + + public int? MessageFilter + { + get => (int?)this.Fields[(int)MsiEmbeddedUISymbolFields.MessageFilter]; + set => this.Set((int)MsiEmbeddedUISymbolFields.MessageFilter, value); + } + + public string Source + { + get => (string)this.Fields[(int)MsiEmbeddedUISymbolFields.Source]; + set => this.Set((int)MsiEmbeddedUISymbolFields.Source, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiFileHashSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiFileHashSymbol.cs new file mode 100644 index 00000000..bfec1c12 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiFileHashSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiFileHash = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiFileHash, + new[] + { + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.Options), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart1), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart2), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart3), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiFileHashSymbolFields.HashPart4), IntermediateFieldType.Number), + }, + typeof(MsiFileHashSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiFileHashSymbolFields + { + Options, + HashPart1, + HashPart2, + HashPart3, + HashPart4, + } + + public class MsiFileHashSymbol : IntermediateSymbol + { + public MsiFileHashSymbol() : base(SymbolDefinitions.MsiFileHash, null, null) + { + } + + public MsiFileHashSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiFileHash, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiFileHashSymbolFields index] => this.Fields[(int)index]; + + public int Options + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.Options]; + set => this.Set((int)MsiFileHashSymbolFields.Options, value); + } + + public int HashPart1 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart1]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart1, value); + } + + public int HashPart2 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart2]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart2, value); + } + + public int HashPart3 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart3]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart3, value); + } + + public int HashPart4 + { + get => (int)this.Fields[(int)MsiFileHashSymbolFields.HashPart4]; + set => this.Set((int)MsiFileHashSymbolFields.HashPart4, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs new file mode 100644 index 00000000..88e7d019 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiLockPermissionsExSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiLockPermissionsEx = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiLockPermissionsEx, + new[] + { + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.LockObject), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.SDDLText), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiLockPermissionsExSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(MsiLockPermissionsExSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiLockPermissionsExSymbolFields + { + LockObject, + Table, + SDDLText, + Condition, + } + + public class MsiLockPermissionsExSymbol : IntermediateSymbol + { + public MsiLockPermissionsExSymbol() : base(SymbolDefinitions.MsiLockPermissionsEx, null, null) + { + } + + public MsiLockPermissionsExSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiLockPermissionsExSymbolFields index] => this.Fields[(int)index]; + + public string LockObject + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.LockObject]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.LockObject, value); + } + + public string Table + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Table]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.Table, value); + } + + public string SDDLText + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.SDDLText]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.SDDLText, value); + } + + public string Condition + { + get => (string)this.Fields[(int)MsiLockPermissionsExSymbolFields.Condition]; + set => this.Set((int)MsiLockPermissionsExSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs new file mode 100644 index 00000000..4a6774b1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiPackageCertificateSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPackageCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPackageCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.PackageCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPackageCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), + }, + typeof(MsiPackageCertificateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPackageCertificateSymbolFields + { + PackageCertificate, + DigitalCertificateRef, + } + + public class MsiPackageCertificateSymbol : IntermediateSymbol + { + public MsiPackageCertificateSymbol() : base(SymbolDefinitions.MsiPackageCertificate, null, null) + { + } + + public MsiPackageCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPackageCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPackageCertificateSymbolFields index] => this.Fields[(int)index]; + + public string PackageCertificate + { + get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.PackageCertificate]; + set => this.Set((int)MsiPackageCertificateSymbolFields.PackageCertificate, value); + } + + public string DigitalCertificateRef + { + get => (string)this.Fields[(int)MsiPackageCertificateSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiPackageCertificateSymbolFields.DigitalCertificateRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs new file mode 100644 index 00000000..7d6ce24e --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiPatchCertificateSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchCertificate = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchCertificate, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.PatchCertificate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchCertificateSymbolFields.DigitalCertificateRef), IntermediateFieldType.String), + }, + typeof(MsiPatchCertificateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchCertificateSymbolFields + { + PatchCertificate, + DigitalCertificateRef, + } + + public class MsiPatchCertificateSymbol : IntermediateSymbol + { + public MsiPatchCertificateSymbol() : base(SymbolDefinitions.MsiPatchCertificate, null, null) + { + } + + public MsiPatchCertificateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchCertificate, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchCertificateSymbolFields index] => this.Fields[(int)index]; + + public string PatchCertificate + { + get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.PatchCertificate]; + set => this.Set((int)MsiPatchCertificateSymbolFields.PatchCertificate, value); + } + + public string DigitalCertificateRef + { + get => (string)this.Fields[(int)MsiPatchCertificateSymbolFields.DigitalCertificateRef]; + set => this.Set((int)MsiPatchCertificateSymbolFields.DigitalCertificateRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs new file mode 100644 index 00000000..0c68b164 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiPatchHeadersSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchHeaders = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchHeaders, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.StreamRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchHeadersSymbolFields.Header), IntermediateFieldType.Path), + }, + typeof(MsiPatchHeadersSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchHeadersSymbolFields + { + StreamRef, + Header, + } + + public class MsiPatchHeadersSymbol : IntermediateSymbol + { + public MsiPatchHeadersSymbol() : base(SymbolDefinitions.MsiPatchHeaders, null, null) + { + } + + public MsiPatchHeadersSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchHeaders, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchHeadersSymbolFields index] => this.Fields[(int)index]; + + public string StreamRef + { + get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.StreamRef]; + set => this.Set((int)MsiPatchHeadersSymbolFields.StreamRef, value); + } + + public string Header + { + get => (string)this.Fields[(int)MsiPatchHeadersSymbolFields.Header]; + set => this.Set((int)MsiPatchHeadersSymbolFields.Header, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs new file mode 100644 index 00000000..682adbca --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchMetadata = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchMetadata, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchMetadataSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(MsiPatchMetadataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchMetadataSymbolFields + { + Company, + Property, + Value, + } + + public class MsiPatchMetadataSymbol : IntermediateSymbol + { + public MsiPatchMetadataSymbol() : base(SymbolDefinitions.MsiPatchMetadata, null, null) + { + } + + public MsiPatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchMetadata, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchMetadataSymbolFields index] => this.Fields[(int)index]; + + public string Company + { + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Company]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Company, value); + } + + public string Property + { + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Property]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiPatchMetadataSymbolFields.Value]; + set => this.Set((int)MsiPatchMetadataSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs new file mode 100644 index 00000000..75385ba8 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyFileSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchOldAssemblyFile, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileSymbolFields.AssemblyRef), IntermediateFieldType.String), + }, + typeof(MsiPatchOldAssemblyFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchOldAssemblyFileSymbolFields + { + FileRef, + AssemblyRef, + } + + public class MsiPatchOldAssemblyFileSymbol : IntermediateSymbol + { + public MsiPatchOldAssemblyFileSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyFile, null, null) + { + } + + public MsiPatchOldAssemblyFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchOldAssemblyFileSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.FileRef]; + set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.FileRef, value); + } + + public string AssemblyRef + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef]; + set => this.Set((int)MsiPatchOldAssemblyFileSymbolFields.AssemblyRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs new file mode 100644 index 00000000..199f5ff7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiPatchOldAssemblyNameSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchOldAssemblyName = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchOldAssemblyName, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Assembly), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(MsiPatchOldAssemblyNameSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchOldAssemblyNameSymbolFields + { + Assembly, + Name, + Value, + } + + public class MsiPatchOldAssemblyNameSymbol : IntermediateSymbol + { + public MsiPatchOldAssemblyNameSymbol() : base(SymbolDefinitions.MsiPatchOldAssemblyName, null, null) + { + } + + public MsiPatchOldAssemblyNameSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchOldAssemblyNameSymbolFields index] => this.Fields[(int)index]; + + public string Assembly + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Assembly]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Assembly, value); + } + + public string Name + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Name]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)MsiPatchOldAssemblyNameSymbolFields.Value]; + set => this.Set((int)MsiPatchOldAssemblyNameSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs new file mode 100644 index 00000000..ac2b0dc4 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiPatchSequenceSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiPatchSequence = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiPatchSequence, + new[] + { + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiPatchSequenceSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(MsiPatchSequenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiPatchSequenceSymbolFields + { + PatchFamily, + ProductCode, + Sequence, + Attributes, + } + + public class MsiPatchSequenceSymbol : IntermediateSymbol + { + public MsiPatchSequenceSymbol() : base(SymbolDefinitions.MsiPatchSequence, null, null) + { + } + + public MsiPatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiPatchSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiPatchSequenceSymbolFields index] => this.Fields[(int)index]; + + public string PatchFamily + { + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.PatchFamily]; + set => this.Set((int)MsiPatchSequenceSymbolFields.PatchFamily, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.ProductCode]; + set => this.Set((int)MsiPatchSequenceSymbolFields.ProductCode, value); + } + + public string Sequence + { + get => (string)this.Fields[(int)MsiPatchSequenceSymbolFields.Sequence]; + set => this.Set((int)MsiPatchSequenceSymbolFields.Sequence, value); + } + + public int? Attributes + { + get => (int?)this.Fields[(int)MsiPatchSequenceSymbolFields.Attributes]; + set => this.Set((int)MsiPatchSequenceSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs new file mode 100644 index 00000000..92ca4059 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigFailureActionsSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiServiceConfigFailureActions = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiServiceConfigFailureActions, + new[] + { + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ResetPeriod), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.RebootMessage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.Actions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.DelayActions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(MsiServiceConfigFailureActionsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiServiceConfigFailureActionsSymbolFields + { + Name, + OnInstall, + OnReinstall, + OnUninstall, + ResetPeriod, + RebootMessage, + Command, + Actions, + DelayActions, + ComponentRef, + } + + public class MsiServiceConfigFailureActionsSymbol : IntermediateSymbol + { + public MsiServiceConfigFailureActionsSymbol() : base(SymbolDefinitions.MsiServiceConfigFailureActions, null, null) + { + } + + public MsiServiceConfigFailureActionsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiServiceConfigFailureActionsSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Name]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Name, value); + } + + public bool OnInstall + { + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnInstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnInstall, value); + } + + public bool OnReinstall + { + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnReinstall, value); + } + + public bool OnUninstall + { + get => this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall].AsBool(); + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.OnUninstall, value); + } + + public int? ResetPeriod + { + get => (int?)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ResetPeriod, value); + } + + public string RebootMessage + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.RebootMessage, value); + } + + public string Command + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Command]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Command, value); + } + + public string Actions + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.Actions]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.Actions, value); + } + + public string DelayActions + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.DelayActions]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.DelayActions, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigFailureActionsSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs new file mode 100644 index 00000000..9ad72d1e --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiServiceConfigSymbol.cs @@ -0,0 +1,101 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiServiceConfig = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiServiceConfig, + new[] + { + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnReinstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsSymbolFields.OnUninstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ConfigType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.Argument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiServiceConfigSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(MsiServiceConfigSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiServiceConfigSymbolFields + { + Name, + OnInstall, + OnReinstall, + OnUninstall, + ConfigType, + Argument, + ComponentRef, + } + + public enum MsiServiceConfigType + { + DelayedAutoStart = 3, + FailureActionsFlag, + ServiceSidInfo, + RequiredPrivilegesInfo, + PreshutdownInfo, + } + + public class MsiServiceConfigSymbol : IntermediateSymbol + { + public MsiServiceConfigSymbol() : base(SymbolDefinitions.MsiServiceConfig, null, null) + { + } + + public MsiServiceConfigSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiServiceConfig, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiServiceConfigSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Name]; + set => this.Set((int)MsiServiceConfigSymbolFields.Name, value); + } + + public bool OnInstall + { + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnInstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnInstall, value); + } + + public bool OnReinstall + { + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnReinstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnReinstall, value); + } + + public bool OnUninstall + { + get => this.Fields[(int)MsiServiceConfigSymbolFields.OnUninstall].AsBool(); + set => this.Set((int)MsiServiceConfigSymbolFields.OnUninstall, value); + } + + public MsiServiceConfigType ConfigType + { + get => (MsiServiceConfigType)this.Fields[(int)MsiServiceConfigSymbolFields.ConfigType].AsNumber(); + set => this.Set((int)MsiServiceConfigSymbolFields.ConfigType, (int)value); + } + + public string Argument + { + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.Argument]; + set => this.Set((int)MsiServiceConfigSymbolFields.Argument, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)MsiServiceConfigSymbolFields.ComponentRef]; + set => this.Set((int)MsiServiceConfigSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs new file mode 100644 index 00000000..5d5a46e5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/MsiShortcutPropertySymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition MsiShortcutProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.MsiShortcutProperty, + new[] + { + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.ShortcutRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropertyKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(MsiShortcutPropertySymbolFields.PropVariantValue), IntermediateFieldType.String), + }, + typeof(MsiShortcutPropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum MsiShortcutPropertySymbolFields + { + ShortcutRef, + PropertyKey, + PropVariantValue, + } + + public class MsiShortcutPropertySymbol : IntermediateSymbol + { + public MsiShortcutPropertySymbol() : base(SymbolDefinitions.MsiShortcutProperty, null, null) + { + } + + public MsiShortcutPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.MsiShortcutProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[MsiShortcutPropertySymbolFields index] => this.Fields[(int)index]; + + public string ShortcutRef + { + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.ShortcutRef]; + set => this.Set((int)MsiShortcutPropertySymbolFields.ShortcutRef, value); + } + + public string PropertyKey + { + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropertyKey]; + set => this.Set((int)MsiShortcutPropertySymbolFields.PropertyKey, value); + } + + public string PropVariantValue + { + get => (string)this.Fields[(int)MsiShortcutPropertySymbolFields.PropVariantValue]; + set => this.Set((int)MsiShortcutPropertySymbolFields.PropVariantValue, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs new file mode 100644 index 00000000..45ca6ed8 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ODBCAttributeSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.DriverRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCAttributeSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(ODBCAttributeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCAttributeSymbolFields + { + DriverRef, + Attribute, + Value, + } + + public class ODBCAttributeSymbol : IntermediateSymbol + { + public ODBCAttributeSymbol() : base(SymbolDefinitions.ODBCAttribute, null, null) + { + } + + public ODBCAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCAttributeSymbolFields index] => this.Fields[(int)index]; + + public string DriverRef + { + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.DriverRef]; + set => this.Set((int)ODBCAttributeSymbolFields.DriverRef, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Attribute]; + set => this.Set((int)ODBCAttributeSymbolFields.Attribute, value); + } + + public string Value + { + get => (string)this.Fields[(int)ODBCAttributeSymbolFields.Value]; + set => this.Set((int)ODBCAttributeSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs new file mode 100644 index 00000000..6af140bd --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ODBCDataSourceSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCDataSource = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCDataSource, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.DriverDescription), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDataSourceSymbolFields.Registration), IntermediateFieldType.Number), + }, + typeof(ODBCDataSourceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCDataSourceSymbolFields + { + ComponentRef, + Description, + DriverDescription, + Registration, + } + + public class ODBCDataSourceSymbol : IntermediateSymbol + { + public ODBCDataSourceSymbol() : base(SymbolDefinitions.ODBCDataSource, null, null) + { + } + + public ODBCDataSourceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDataSource, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCDataSourceSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.ComponentRef]; + set => this.Set((int)ODBCDataSourceSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.Description]; + set => this.Set((int)ODBCDataSourceSymbolFields.Description, value); + } + + public string DriverDescription + { + get => (string)this.Fields[(int)ODBCDataSourceSymbolFields.DriverDescription]; + set => this.Set((int)ODBCDataSourceSymbolFields.DriverDescription, value); + } + + public int Registration + { + get => (int)this.Fields[(int)ODBCDataSourceSymbolFields.Registration]; + set => this.Set((int)ODBCDataSourceSymbolFields.Registration, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/ODBCDriverSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ODBCDriverSymbol.cs new file mode 100644 index 00000000..b31cc4cb --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ODBCDriverSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCDriver = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCDriver, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCDriverSymbolFields.SetupFileRef), IntermediateFieldType.String), + }, + typeof(ODBCDriverSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCDriverSymbolFields + { + ComponentRef, + Description, + FileRef, + SetupFileRef, + } + + public class ODBCDriverSymbol : IntermediateSymbol + { + public ODBCDriverSymbol() : base(SymbolDefinitions.ODBCDriver, null, null) + { + } + + public ODBCDriverSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCDriver, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCDriverSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.ComponentRef]; + set => this.Set((int)ODBCDriverSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.Description]; + set => this.Set((int)ODBCDriverSymbolFields.Description, value); + } + + public string FileRef + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.FileRef]; + set => this.Set((int)ODBCDriverSymbolFields.FileRef, value); + } + + public string SetupFileRef + { + get => (string)this.Fields[(int)ODBCDriverSymbolFields.SetupFileRef]; + set => this.Set((int)ODBCDriverSymbolFields.SetupFileRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs new file mode 100644 index 00000000..2e25a5f7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ODBCSourceAttributeSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCSourceAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCSourceAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.DataSourceRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Attribute), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCSourceAttributeSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(ODBCSourceAttributeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCSourceAttributeSymbolFields + { + DataSourceRef, + Attribute, + Value, + } + + public class ODBCSourceAttributeSymbol : IntermediateSymbol + { + public ODBCSourceAttributeSymbol() : base(SymbolDefinitions.ODBCSourceAttribute, null, null) + { + } + + public ODBCSourceAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCSourceAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCSourceAttributeSymbolFields index] => this.Fields[(int)index]; + + public string DataSourceRef + { + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.DataSourceRef]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.DataSourceRef, value); + } + + public string Attribute + { + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Attribute]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.Attribute, value); + } + + public string Value + { + get => (string)this.Fields[(int)ODBCSourceAttributeSymbolFields.Value]; + set => this.Set((int)ODBCSourceAttributeSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs new file mode 100644 index 00000000..c444b834 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ODBCTranslatorSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ODBCTranslator = new IntermediateSymbolDefinition( + SymbolDefinitionType.ODBCTranslator, + new[] + { + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ODBCTranslatorSymbolFields.SetupFileRef), IntermediateFieldType.String), + }, + typeof(ODBCTranslatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ODBCTranslatorSymbolFields + { + ComponentRef, + Description, + FileRef, + SetupFileRef, + } + + public class ODBCTranslatorSymbol : IntermediateSymbol + { + public ODBCTranslatorSymbol() : base(SymbolDefinitions.ODBCTranslator, null, null) + { + } + + public ODBCTranslatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ODBCTranslator, sourceLineNumber, id) + { + } + + public IntermediateField this[ODBCTranslatorSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.ComponentRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.Description]; + set => this.Set((int)ODBCTranslatorSymbolFields.Description, value); + } + + public string FileRef + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.FileRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.FileRef, value); + } + + public string SetupFileRef + { + get => (string)this.Fields[(int)ODBCTranslatorSymbolFields.SetupFileRef]; + set => this.Set((int)ODBCTranslatorSymbolFields.SetupFileRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs new file mode 100644 index 00000000..201b8444 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs @@ -0,0 +1,89 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PatchMetadata = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchMetadata, + new[] + { + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Company), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchMetadataSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(PatchMetadataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum PatchMetadataSymbolFields + { + Company, + Property, + Value, + } + + /// + /// Values for the OptimizeCA MsiPatchMetdata property, which indicates whether custom actions can be skipped when applying the patch. + /// + [Flags] + public enum OptimizeCAFlags + { + /// + /// No custom actions are skipped. + /// + None = 0, + + /// + /// Skip property (type 51) and directory (type 35) assignment custom actions. + /// + SkipAssignment = 1, + + /// + /// Skip immediate custom actions that are not property or directory assignment custom actions. + /// + SkipImmediate = 2, + + /// + /// Skip custom actions that run within the script. + /// + SkipDeferred = 4 + } + + public class PatchMetadataSymbol : IntermediateSymbol + { + public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null) + { + } + + public PatchMetadataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchMetadata, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchMetadataSymbolFields index] => this.Fields[(int)index]; + + public string Company + { + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Company]; + set => this.Set((int)PatchMetadataSymbolFields.Company, value); + } + + public string Property + { + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Property]; + set => this.Set((int)PatchMetadataSymbolFields.Property, value); + } + + public string Value + { + get => (string)this.Fields[(int)PatchMetadataSymbolFields.Value]; + set => this.Set((int)PatchMetadataSymbolFields.Value, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs new file mode 100644 index 00000000..0efdfd25 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PatchPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchPackage, + new[] + { + new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.PatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchPackageSymbolFields.MediaDiskIdRef), IntermediateFieldType.Number), + }, + typeof(PatchPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PatchPackageSymbolFields + { + PatchId, + MediaDiskIdRef, + } + + public class PatchPackageSymbol : IntermediateSymbol + { + public PatchPackageSymbol() : base(SymbolDefinitions.PatchPackage, null, null) + { + } + + public PatchPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchPackageSymbolFields index] => this.Fields[(int)index]; + + public string PatchId + { + get => (string)this.Fields[(int)PatchPackageSymbolFields.PatchId]; + set => this.Set((int)PatchPackageSymbolFields.PatchId, value); + } + + public int MediaDiskIdRef + { + get => (int)this.Fields[(int)PatchPackageSymbolFields.MediaDiskIdRef]; + set => this.Set((int)PatchPackageSymbolFields.MediaDiskIdRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs new file mode 100644 index 00000000..a4cbca61 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PatchSequence = new IntermediateSymbolDefinition( + SymbolDefinitionType.PatchSequence, + new[] + { + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.PatchFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Sequence), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSequenceSymbolFields.Supersede), IntermediateFieldType.Number), + }, + typeof(PatchSequenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PatchSequenceSymbolFields + { + PatchFamily, + Target, + Sequence, + Supersede, + } + + public class PatchSequenceSymbol : IntermediateSymbol + { + public PatchSequenceSymbol() : base(SymbolDefinitions.PatchSequence, null, null) + { + } + + public PatchSequenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PatchSequence, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchSequenceSymbolFields index] => this.Fields[(int)index]; + + public string PatchFamily + { + get => (string)this.Fields[(int)PatchSequenceSymbolFields.PatchFamily]; + set => this.Set((int)PatchSequenceSymbolFields.PatchFamily, value); + } + + public string Target + { + get => (string)this.Fields[(int)PatchSequenceSymbolFields.Target]; + set => this.Set((int)PatchSequenceSymbolFields.Target, value); + } + + public string Sequence + { + get => (string)this.Fields[(int)PatchSequenceSymbolFields.Sequence]; + set => this.Set((int)PatchSequenceSymbolFields.Sequence, value); + } + + public int? Supersede + { + get => (int?)this.Fields[(int)PatchSequenceSymbolFields.Supersede]; + set => this.Set((int)PatchSequenceSymbolFields.Supersede, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/PatchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PatchSymbol.cs new file mode 100644 index 00000000..31e68d76 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/PatchSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Patch = new IntermediateSymbolDefinition( + SymbolDefinitionType.Patch, + new[] + { + new IntermediateFieldDefinition(nameof(PatchSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.PatchSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.Header), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(PatchSymbolFields.StreamRef), IntermediateFieldType.String), + }, + typeof(PatchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PatchSymbolFields + { + FileRef, + Sequence, + PatchSize, + Attributes, + Header, + StreamRef, + } + + public class PatchSymbol : IntermediateSymbol + { + public PatchSymbol() : base(SymbolDefinitions.Patch, null, null) + { + } + + public PatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Patch, sourceLineNumber, id) + { + } + + public IntermediateField this[PatchSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)PatchSymbolFields.FileRef]; + set => this.Set((int)PatchSymbolFields.FileRef, value); + } + + public int Sequence + { + get => (int)this.Fields[(int)PatchSymbolFields.Sequence]; + set => this.Set((int)PatchSymbolFields.Sequence, value); + } + + public int PatchSize + { + get => (int)this.Fields[(int)PatchSymbolFields.PatchSize]; + set => this.Set((int)PatchSymbolFields.PatchSize, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)PatchSymbolFields.Attributes]; + set => this.Set((int)PatchSymbolFields.Attributes, value); + } + + public string Header + { + get => (string)this.Fields[(int)PatchSymbolFields.Header]; + set => this.Set((int)PatchSymbolFields.Header, value); + } + + public string StreamRef + { + get => (string)this.Fields[(int)PatchSymbolFields.StreamRef]; + set => this.Set((int)PatchSymbolFields.StreamRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ProgIdSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ProgIdSymbol.cs new file mode 100644 index 00000000..57ac758f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ProgIdSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ProgId = new IntermediateSymbolDefinition( + SymbolDefinitionType.ProgId, + new[] + { + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ProgId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ParentProgIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.ClassRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ProgIdSymbolFields.IconIndex), IntermediateFieldType.Number), + }, + typeof(ProgIdSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ProgIdSymbolFields + { + ProgId, + ParentProgIdRef, + ClassRef, + Description, + IconRef, + IconIndex, + } + + public class ProgIdSymbol : IntermediateSymbol + { + public ProgIdSymbol() : base(SymbolDefinitions.ProgId, null, null) + { + } + + public ProgIdSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProgId, sourceLineNumber, id) + { + } + + public IntermediateField this[ProgIdSymbolFields index] => this.Fields[(int)index]; + + public string ProgId + { + get => (string)this.Fields[(int)ProgIdSymbolFields.ProgId]; + set => this.Set((int)ProgIdSymbolFields.ProgId, value); + } + + public string ParentProgIdRef + { + get => (string)this.Fields[(int)ProgIdSymbolFields.ParentProgIdRef]; + set => this.Set((int)ProgIdSymbolFields.ParentProgIdRef, value); + } + + public string ClassRef + { + get => (string)this.Fields[(int)ProgIdSymbolFields.ClassRef]; + set => this.Set((int)ProgIdSymbolFields.ClassRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ProgIdSymbolFields.Description]; + set => this.Set((int)ProgIdSymbolFields.Description, value); + } + + public string IconRef + { + get => (string)this.Fields[(int)ProgIdSymbolFields.IconRef]; + set => this.Set((int)ProgIdSymbolFields.IconRef, value); + } + + public int? IconIndex + { + get => (int?)this.Fields[(int)ProgIdSymbolFields.IconIndex]; + set => this.Set((int)ProgIdSymbolFields.IconIndex, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/PropertiesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PropertiesSymbol.cs new file mode 100644 index 00000000..61059aa6 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/PropertiesSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Properties = new IntermediateSymbolDefinition( + SymbolDefinitionType.Properties, + new[] + { + new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PropertiesSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(PropertiesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PropertiesSymbolFields + { + Name, + Value, + } + + public class PropertiesSymbol : IntermediateSymbol + { + public PropertiesSymbol() : base(SymbolDefinitions.Properties, null, null) + { + } + + public PropertiesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Properties, sourceLineNumber, id) + { + } + + public IntermediateField this[PropertiesSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)PropertiesSymbolFields.Name]; + set => this.Set((int)PropertiesSymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)PropertiesSymbolFields.Value]; + set => this.Set((int)PropertiesSymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/PropertySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PropertySymbol.cs new file mode 100644 index 00000000..b93d962a --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/PropertySymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Property = new IntermediateSymbolDefinition( + SymbolDefinitionType.Property, + new[] + { + new IntermediateFieldDefinition(nameof(PropertySymbolFields.Value), IntermediateFieldType.String), + }, + typeof(PropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PropertySymbolFields + { + Value, + } + + public class PropertySymbol : IntermediateSymbol + { + public PropertySymbol() : base(SymbolDefinitions.Property, null, null) + { + } + + public PropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Property, sourceLineNumber, id) + { + } + + public IntermediateField this[PropertySymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)PropertySymbolFields.Value]; + set => this.Set((int)PropertySymbolFields.Value, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/PublishComponentSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PublishComponentSymbol.cs new file mode 100644 index 00000000..3fb81801 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/PublishComponentSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition PublishComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.PublishComponent, + new[] + { + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.Qualifier), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.AppData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(PublishComponentSymbolFields.FeatureRef), IntermediateFieldType.String), + }, + typeof(PublishComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum PublishComponentSymbolFields + { + ComponentId, + Qualifier, + ComponentRef, + AppData, + FeatureRef, + } + + public class PublishComponentSymbol : IntermediateSymbol + { + public PublishComponentSymbol() : base(SymbolDefinitions.PublishComponent, null, null) + { + } + + public PublishComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.PublishComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[PublishComponentSymbolFields index] => this.Fields[(int)index]; + + public string ComponentId + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentId]; + set => this.Set((int)PublishComponentSymbolFields.ComponentId, value); + } + + public string Qualifier + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.Qualifier]; + set => this.Set((int)PublishComponentSymbolFields.Qualifier, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.ComponentRef]; + set => this.Set((int)PublishComponentSymbolFields.ComponentRef, value); + } + + public string AppData + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.AppData]; + set => this.Set((int)PublishComponentSymbolFields.AppData, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)PublishComponentSymbolFields.FeatureRef]; + set => this.Set((int)PublishComponentSymbolFields.FeatureRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/RadioButtonSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/RadioButtonSymbol.cs new file mode 100644 index 00000000..6a26e937 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/RadioButtonSymbol.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RadioButton = new IntermediateSymbolDefinition( + SymbolDefinitionType.RadioButton, + new[] + { + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Property), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.X), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Y), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Height), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Text), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RadioButtonSymbolFields.Help), IntermediateFieldType.String), + }, + typeof(RadioButtonSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RadioButtonSymbolFields + { + Property, + Order, + Value, + X, + Y, + Width, + Height, + Text, + Help, + } + + public class RadioButtonSymbol : IntermediateSymbol + { + public RadioButtonSymbol() : base(SymbolDefinitions.RadioButton, null, null) + { + } + + public RadioButtonSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RadioButton, sourceLineNumber, id) + { + } + + public IntermediateField this[RadioButtonSymbolFields index] => this.Fields[(int)index]; + + public string Property + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Property]; + set => this.Set((int)RadioButtonSymbolFields.Property, value); + } + + public int Order + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Order]; + set => this.Set((int)RadioButtonSymbolFields.Order, value); + } + + public string Value + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Value]; + set => this.Set((int)RadioButtonSymbolFields.Value, value); + } + + public int X + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.X]; + set => this.Set((int)RadioButtonSymbolFields.X, value); + } + + public int Y + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Y]; + set => this.Set((int)RadioButtonSymbolFields.Y, value); + } + + public int Width + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Width]; + set => this.Set((int)RadioButtonSymbolFields.Width, value); + } + + public int Height + { + get => (int)this.Fields[(int)RadioButtonSymbolFields.Height]; + set => this.Set((int)RadioButtonSymbolFields.Height, value); + } + + public string Text + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Text]; + set => this.Set((int)RadioButtonSymbolFields.Text, value); + } + + public string Help + { + get => (string)this.Fields[(int)RadioButtonSymbolFields.Help]; + set => this.Set((int)RadioButtonSymbolFields.Help, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/RegLocatorSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/RegLocatorSymbol.cs new file mode 100644 index 00000000..bf50dab7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/RegLocatorSymbol.cs @@ -0,0 +1,83 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RegLocator = new IntermediateSymbolDefinition( + SymbolDefinitionType.RegLocator, + new[] + { + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegLocatorSymbolFields.Win64), IntermediateFieldType.Bool), + }, + typeof(RegLocatorSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RegLocatorSymbolFields + { + Root, + Key, + Name, + Type, + Win64, + } + + public enum RegLocatorType + { + Directory, + FileName, + Raw + }; + + public class RegLocatorSymbol : IntermediateSymbol + { + public RegLocatorSymbol() : base(SymbolDefinitions.RegLocator, null, null) + { + } + + public RegLocatorSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RegLocator, sourceLineNumber, id) + { + } + + public IntermediateField this[RegLocatorSymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)RegLocatorSymbolFields.Root].AsNumber(); + set => this.Set((int)RegLocatorSymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)RegLocatorSymbolFields.Key]; + set => this.Set((int)RegLocatorSymbolFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RegLocatorSymbolFields.Name]; + set => this.Set((int)RegLocatorSymbolFields.Name, value); + } + + public RegLocatorType Type + { + get => (RegLocatorType)this.Fields[(int)RegLocatorSymbolFields.Type].AsNumber(); + set => this.Set((int)RegLocatorSymbolFields.Type, (int)value); + } + + public bool Win64 + { + get => this.Fields[(int)RegLocatorSymbolFields.Win64].AsBool(); + set => this.Set((int)RegLocatorSymbolFields.Win64, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/RegistryRootType.cs b/src/api/wix/WixToolset.Data/Symbols/RegistryRootType.cs new file mode 100644 index 00000000..9f60727c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/RegistryRootType.cs @@ -0,0 +1,21 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + using System; + + /// + /// Registry root mapping. + /// + public enum RegistryRootType + { + Unknown = Int32.MaxValue, + + /// HKLM in a per-machine and HKCU in per-user. + MachineUser = -1, + ClassesRoot = 0, + CurrentUser = 1, + LocalMachine = 2, + Users = 3 + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/RegistrySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/RegistrySymbol.cs new file mode 100644 index 00000000..371bfe98 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/RegistrySymbol.cs @@ -0,0 +1,108 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Registry = new IntermediateSymbolDefinition( + SymbolDefinitionType.Registry, + new[] + { + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ValueAction), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RegistrySymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(RegistrySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RegistrySymbolFields + { + Root, + Key, + Name, + Value, + ValueType, + ValueAction, + ComponentRef, + } + + public enum RegistryValueType + { + String, + Binary, + Expandable, + Integer, + MultiString, + } + + public enum RegistryValueActionType + { + Write, + Append, + Prepend, + } + + public class RegistrySymbol : IntermediateSymbol + { + public RegistrySymbol() : base(SymbolDefinitions.Registry, null, null) + { + } + + public RegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Registry, sourceLineNumber, id) + { + } + + public IntermediateField this[RegistrySymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)RegistrySymbolFields.Root].AsNumber(); + set => this.Set((int)RegistrySymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)RegistrySymbolFields.Key]; + set => this.Set((int)RegistrySymbolFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RegistrySymbolFields.Name]; + set => this.Set((int)RegistrySymbolFields.Name, value); + } + + public string Value + { + get => this.Fields[(int)RegistrySymbolFields.Value].AsString(); + set => this.Set((int)RegistrySymbolFields.Value, value); + } + + public RegistryValueType ValueType + { + get => (RegistryValueType)this.Fields[(int)RegistrySymbolFields.ValueType].AsNumber(); + set => this.Set((int)RegistrySymbolFields.ValueType, (int)value); + } + + public RegistryValueActionType ValueAction + { + get => (RegistryValueActionType)this.Fields[(int)RegistrySymbolFields.ValueAction].AsNumber(); + set => this.Set((int)RegistrySymbolFields.ValueAction, (int)value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)RegistrySymbolFields.ComponentRef]; + set => this.Set((int)RegistrySymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/RemoveFileSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/RemoveFileSymbol.cs new file mode 100644 index 00000000..0167b070 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/RemoveFileSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RemoveFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.RemoveFile, + new[] + { + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.ShortFileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.DirPropertyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnInstall), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(RemoveFileSymbolFields.OnUninstall), IntermediateFieldType.Bool), + }, + typeof(RemoveFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RemoveFileSymbolFields + { + ComponentRef, + FileName, + ShortFileName, + DirPropertyRef, + OnInstall, + OnUninstall, + } + + public class RemoveFileSymbol : IntermediateSymbol + { + public RemoveFileSymbol() : base(SymbolDefinitions.RemoveFile, null, null) + { + } + + public RemoveFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveFile, sourceLineNumber, id) + { + } + + public IntermediateField this[RemoveFileSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.ComponentRef]; + set => this.Set((int)RemoveFileSymbolFields.ComponentRef, value); + } + + public string FileName + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.FileName]; + set => this.Set((int)RemoveFileSymbolFields.FileName, value); + } + + public string ShortFileName + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.ShortFileName]; + set => this.Set((int)RemoveFileSymbolFields.ShortFileName, value); + } + + public string DirPropertyRef + { + get => (string)this.Fields[(int)RemoveFileSymbolFields.DirPropertyRef]; + set => this.Set((int)RemoveFileSymbolFields.DirPropertyRef, value); + } + + public bool? OnInstall + { + get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnInstall]; + set => this.Set((int)RemoveFileSymbolFields.OnInstall, value); + } + + public bool? OnUninstall + { + get => (bool?)this.Fields[(int)RemoveFileSymbolFields.OnUninstall]; + set => this.Set((int)RemoveFileSymbolFields.OnUninstall, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs new file mode 100644 index 00000000..a797cd33 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/RemoveRegistrySymbol.cs @@ -0,0 +1,82 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition RemoveRegistry = new IntermediateSymbolDefinition( + SymbolDefinitionType.RemoveRegistry, + new[] + { + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.Action), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(RemoveRegistrySymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(RemoveRegistrySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum RemoveRegistrySymbolFields + { + Root, + Key, + Name, + Action, + ComponentRef, + } + + public enum RemoveRegistryActionType + { + RemoveOnInstall, + RemoveOnUninstall + }; + + public class RemoveRegistrySymbol : IntermediateSymbol + { + public RemoveRegistrySymbol() : base(SymbolDefinitions.RemoveRegistry, null, null) + { + } + + public RemoveRegistrySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.RemoveRegistry, sourceLineNumber, id) + { + } + + public IntermediateField this[RemoveRegistrySymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)RemoveRegistrySymbolFields.Root].AsNumber(); + set => this.Set((int)RemoveRegistrySymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Key]; + set => this.Set((int)RemoveRegistrySymbolFields.Key, value); + } + + public string Name + { + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.Name]; + set => this.Set((int)RemoveRegistrySymbolFields.Name, value); + } + + public RemoveRegistryActionType Action + { + get => (RemoveRegistryActionType)this.Fields[(int)RemoveRegistrySymbolFields.Action].AsNumber(); + set => this.Set((int)RemoveRegistrySymbolFields.Action, (int)value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)RemoveRegistrySymbolFields.ComponentRef]; + set => this.Set((int)RemoveRegistrySymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ReserveCostSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ReserveCostSymbol.cs new file mode 100644 index 00000000..b59dea2f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ReserveCostSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ReserveCost = new IntermediateSymbolDefinition( + SymbolDefinitionType.ReserveCost, + new[] + { + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveFolder), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveLocal), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ReserveCostSymbolFields.ReserveSource), IntermediateFieldType.Number), + }, + typeof(ReserveCostSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ReserveCostSymbolFields + { + ComponentRef, + ReserveFolder, + ReserveLocal, + ReserveSource, + } + + public class ReserveCostSymbol : IntermediateSymbol + { + public ReserveCostSymbol() : base(SymbolDefinitions.ReserveCost, null, null) + { + } + + public ReserveCostSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ReserveCost, sourceLineNumber, id) + { + } + + public IntermediateField this[ReserveCostSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)ReserveCostSymbolFields.ComponentRef]; + set => this.Set((int)ReserveCostSymbolFields.ComponentRef, value); + } + + public string ReserveFolder + { + get => (string)this.Fields[(int)ReserveCostSymbolFields.ReserveFolder]; + set => this.Set((int)ReserveCostSymbolFields.ReserveFolder, value); + } + + public int ReserveLocal + { + get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveLocal]; + set => this.Set((int)ReserveCostSymbolFields.ReserveLocal, value); + } + + public int ReserveSource + { + get => (int)this.Fields[(int)ReserveCostSymbolFields.ReserveSource]; + set => this.Set((int)ReserveCostSymbolFields.ReserveSource, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/SFPCatalogSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/SFPCatalogSymbol.cs new file mode 100644 index 00000000..0d3f1558 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/SFPCatalogSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition SFPCatalog = new IntermediateSymbolDefinition( + SymbolDefinitionType.SFPCatalog, + new[] + { + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.SFPCatalog), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Catalog), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(SFPCatalogSymbolFields.Dependency), IntermediateFieldType.String), + }, + typeof(SFPCatalogSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SFPCatalogSymbolFields + { + SFPCatalog, + Catalog, + Dependency, + } + + public class SFPCatalogSymbol : IntermediateSymbol + { + public SFPCatalogSymbol() : base(SymbolDefinitions.SFPCatalog, null, null) + { + } + + public SFPCatalogSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SFPCatalog, sourceLineNumber, id) + { + } + + public IntermediateField this[SFPCatalogSymbolFields index] => this.Fields[(int)index]; + + public string SFPCatalog + { + get => (string)this.Fields[(int)SFPCatalogSymbolFields.SFPCatalog]; + set => this.Set((int)SFPCatalogSymbolFields.SFPCatalog, value); + } + + public string Catalog + { + get => (string)this.Fields[(int)SFPCatalogSymbolFields.Catalog]; + set => this.Set((int)SFPCatalogSymbolFields.Catalog, value); + } + + public string Dependency + { + get => (string)this.Fields[(int)SFPCatalogSymbolFields.Dependency]; + set => this.Set((int)SFPCatalogSymbolFields.Dependency, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ServiceControlSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ServiceControlSymbol.cs new file mode 100644 index 00000000..6e129681 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ServiceControlSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ServiceControl = new IntermediateSymbolDefinition( + SymbolDefinitionType.ServiceControl, + new[] + { + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallRemove), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallRemove), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStart), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStart), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.InstallStop), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.UninstallStop), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.Wait), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceControlSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(ServiceControlSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ServiceControlSymbolFields + { + Name, + InstallRemove, + UninstallRemove, + InstallStart, + UninstallStart, + InstallStop, + UninstallStop, + Arguments, + Wait, + ComponentRef, + } + + public class ServiceControlSymbol : IntermediateSymbol + { + public ServiceControlSymbol() : base(SymbolDefinitions.ServiceControl, null, null) + { + } + + public ServiceControlSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceControl, sourceLineNumber, id) + { + } + + public IntermediateField this[ServiceControlSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)ServiceControlSymbolFields.Name]; + set => this.Set((int)ServiceControlSymbolFields.Name, value); + } + + public bool InstallRemove + { + get => this.Fields[(int)ServiceControlSymbolFields.InstallRemove].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallRemove, value); + } + + public bool UninstallRemove + { + get => this.Fields[(int)ServiceControlSymbolFields.UninstallRemove].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallRemove, value); + } + + public bool InstallStart + { + get => this.Fields[(int)ServiceControlSymbolFields.InstallStart].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallStart, value); + } + + public bool UninstallStart + { + get => this.Fields[(int)ServiceControlSymbolFields.UninstallStart].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallStart, value); + } + + public bool InstallStop + { + get => this.Fields[(int)ServiceControlSymbolFields.InstallStop].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.InstallStop, value); + } + + public bool UninstallStop + { + get => this.Fields[(int)ServiceControlSymbolFields.UninstallStop].AsBool(); + set => this.Set((int)ServiceControlSymbolFields.UninstallStop, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ServiceControlSymbolFields.Arguments]; + set => this.Set((int)ServiceControlSymbolFields.Arguments, value); + } + + public bool? Wait + { + get => this.Fields[(int)ServiceControlSymbolFields.Wait].AsNullableBool(); + set => this.Set((int)ServiceControlSymbolFields.Wait, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ServiceControlSymbolFields.ComponentRef]; + set => this.Set((int)ServiceControlSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ServiceInstallSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ServiceInstallSymbol.cs new file mode 100644 index 00000000..f7ec8dbf --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ServiceInstallSymbol.cs @@ -0,0 +1,173 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ServiceInstall = new IntermediateSymbolDefinition( + SymbolDefinitionType.ServiceInstall, + new[] + { + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ServiceType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ErrorControl), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.LoadOrderGroup), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Dependencies), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.StartName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Password), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Interactive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(ServiceInstallSymbolFields.Vital), IntermediateFieldType.Bool), + }, + typeof(ServiceInstallSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ServiceInstallSymbolFields + { + Name, + DisplayName, + ServiceType, + StartType, + ErrorControl, + LoadOrderGroup, + Dependencies, + StartName, + Password, + Arguments, + ComponentRef, + Description, + Interactive, + Vital, + } + + public enum ServiceType + { + KernelDriver, + SystemDriver, + OwnProcess = 0x10, + ShareProcess = 0x20, + InteractiveProcess = 0x100, + } + + public enum ServiceStartType + { + Boot, + System, + Auto, + Demand, + Disabled, + } + + public enum ServiceErrorControl + { + Ignore, + Normal, + Critical = 3, + } + + public class ServiceInstallSymbol : IntermediateSymbol + { + public ServiceInstallSymbol() : base(SymbolDefinitions.ServiceInstall, null, null) + { + } + + public ServiceInstallSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ServiceInstall, sourceLineNumber, id) + { + } + + public IntermediateField this[ServiceInstallSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Name]; + set => this.Set((int)ServiceInstallSymbolFields.Name, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.DisplayName]; + set => this.Set((int)ServiceInstallSymbolFields.DisplayName, value); + } + + public ServiceType ServiceType + { + get => (ServiceType)this.Fields[(int)ServiceInstallSymbolFields.ServiceType].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.ServiceType, (int)value); + } + + public ServiceStartType StartType + { + get => (ServiceStartType)this.Fields[(int)ServiceInstallSymbolFields.StartType].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.StartType, (int)value); + } + + public ServiceErrorControl ErrorControl + { + get => (ServiceErrorControl)this.Fields[(int)ServiceInstallSymbolFields.ErrorControl].AsNumber(); + set => this.Set((int)ServiceInstallSymbolFields.ErrorControl, (int)value); + } + + public string LoadOrderGroup + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.LoadOrderGroup]; + set => this.Set((int)ServiceInstallSymbolFields.LoadOrderGroup, value); + } + + public string Dependencies + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Dependencies]; + set => this.Set((int)ServiceInstallSymbolFields.Dependencies, value); + } + + public string StartName + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.StartName]; + set => this.Set((int)ServiceInstallSymbolFields.StartName, value); + } + + public string Password + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Password]; + set => this.Set((int)ServiceInstallSymbolFields.Password, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Arguments]; + set => this.Set((int)ServiceInstallSymbolFields.Arguments, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.ComponentRef]; + set => this.Set((int)ServiceInstallSymbolFields.ComponentRef, value); + } + + public string Description + { + get => (string)this.Fields[(int)ServiceInstallSymbolFields.Description]; + set => this.Set((int)ServiceInstallSymbolFields.Description, value); + } + + public bool Interactive + { + get => this.Fields[(int)ServiceInstallSymbolFields.Interactive].AsBool(); + set => this.Set((int)ServiceInstallSymbolFields.Interactive, value); + } + + public bool Vital + { + get => this.Fields[(int)ServiceInstallSymbolFields.Vital].AsBool(); + set => this.Set((int)ServiceInstallSymbolFields.Vital, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/ShortcutSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ShortcutSymbol.cs new file mode 100644 index 00000000..f32fe4af --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/ShortcutSymbol.cs @@ -0,0 +1,171 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Shortcut = new IntermediateSymbolDefinition( + SymbolDefinitionType.Shortcut, + new[] + { + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ShortName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Arguments), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Hotkey), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.IconIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.Show), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.WkDir), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DisplayResourceId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceDLL), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ShortcutSymbolFields.DescriptionResourceId), IntermediateFieldType.Number), + }, + typeof(ShortcutSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ShortcutSymbolFields + { + DirectoryRef, + Name, + ShortName, + ComponentRef, + Target, + Arguments, + Description, + Hotkey, + IconRef, + IconIndex, + Show, + WkDir, + DisplayResourceDLL, + DisplayResourceId, + DescriptionResourceDLL, + DescriptionResourceId, + } + + public enum ShortcutShowType + { + Normal = 1, + Maximized = 3, + Minimized = 7 + } + + public class ShortcutSymbol : IntermediateSymbol + { + public ShortcutSymbol() : base(SymbolDefinitions.Shortcut, null, null) + { + } + + public ShortcutSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Shortcut, sourceLineNumber, id) + { + } + + public IntermediateField this[ShortcutSymbolFields index] => this.Fields[(int)index]; + + public string DirectoryRef + { + get => (string)this.Fields[(int)ShortcutSymbolFields.DirectoryRef]; + set => this.Set((int)ShortcutSymbolFields.DirectoryRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Name]; + set => this.Set((int)ShortcutSymbolFields.Name, value); + } + + public string ShortName + { + get => (string)this.Fields[(int)ShortcutSymbolFields.ShortName]; + set => this.Set((int)ShortcutSymbolFields.ShortName, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)ShortcutSymbolFields.ComponentRef]; + set => this.Set((int)ShortcutSymbolFields.ComponentRef, value); + } + + public string Target + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Target]; + set => this.Set((int)ShortcutSymbolFields.Target, value); + } + + public string Arguments + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Arguments]; + set => this.Set((int)ShortcutSymbolFields.Arguments, value); + } + + public string Description + { + get => (string)this.Fields[(int)ShortcutSymbolFields.Description]; + set => this.Set((int)ShortcutSymbolFields.Description, value); + } + + public int? Hotkey + { + get => this.Fields[(int)ShortcutSymbolFields.Hotkey].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.Hotkey, value); + } + + public string IconRef + { + get => (string)this.Fields[(int)ShortcutSymbolFields.IconRef]; + set => this.Set((int)ShortcutSymbolFields.IconRef, value); + } + + public int? IconIndex + { + get => this.Fields[(int)ShortcutSymbolFields.IconIndex].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.IconIndex, value); + } + + public ShortcutShowType? Show + { + get => (ShortcutShowType?)this.Fields[(int)ShortcutSymbolFields.Show].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.Show, (int?)value); + } + + public string WorkingDirectory + { + get => (string)this.Fields[(int)ShortcutSymbolFields.WkDir]; + set => this.Set((int)ShortcutSymbolFields.WkDir, value); + } + + public string DisplayResourceDll + { + get => (string)this.Fields[(int)ShortcutSymbolFields.DisplayResourceDLL]; + set => this.Set((int)ShortcutSymbolFields.DisplayResourceDLL, value); + } + + public int? DisplayResourceId + { + get => this.Fields[(int)ShortcutSymbolFields.DisplayResourceId].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.DisplayResourceId, value); + } + + public string DescriptionResourceDll + { + get => (string)this.Fields[(int)ShortcutSymbolFields.DescriptionResourceDLL]; + set => this.Set((int)ShortcutSymbolFields.DescriptionResourceDLL, value); + } + + public int? DescriptionResourceId + { + get => this.Fields[(int)ShortcutSymbolFields.DescriptionResourceId].AsNullableNumber(); + set => this.Set((int)ShortcutSymbolFields.DescriptionResourceId, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/SignatureSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/SignatureSymbol.cs new file mode 100644 index 00000000..fc2ce088 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/SignatureSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Signature = new IntermediateSymbolDefinition( + SymbolDefinitionType.Signature, + new[] + { + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.FileName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SignatureSymbolFields.Languages), IntermediateFieldType.String), + }, + typeof(SignatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SignatureSymbolFields + { + FileName, + MinVersion, + MaxVersion, + MinSize, + MaxSize, + MinDate, + MaxDate, + Languages, + } + + public class SignatureSymbol : IntermediateSymbol + { + public SignatureSymbol() : base(SymbolDefinitions.Signature, null, null) + { + } + + public SignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Signature, sourceLineNumber, id) + { + } + + public IntermediateField this[SignatureSymbolFields index] => this.Fields[(int)index]; + + public string FileName + { + get => (string)this.Fields[(int)SignatureSymbolFields.FileName]; + set => this.Set((int)SignatureSymbolFields.FileName, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)SignatureSymbolFields.MinVersion]; + set => this.Set((int)SignatureSymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)SignatureSymbolFields.MaxVersion]; + set => this.Set((int)SignatureSymbolFields.MaxVersion, value); + } + + public int? MinSize + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MinSize]; + set => this.Set((int)SignatureSymbolFields.MinSize, value); + } + + public int? MaxSize + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MaxSize]; + set => this.Set((int)SignatureSymbolFields.MaxSize, value); + } + + public int? MinDate + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MinDate]; + set => this.Set((int)SignatureSymbolFields.MinDate, value); + } + + public int? MaxDate + { + get => (int?)this.Fields[(int)SignatureSymbolFields.MaxDate]; + set => this.Set((int)SignatureSymbolFields.MaxDate, value); + } + + public string Languages + { + get => (string)this.Fields[(int)SignatureSymbolFields.Languages]; + set => this.Set((int)SignatureSymbolFields.Languages, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs new file mode 100644 index 00000000..60bf22a2 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/SoftwareIdentificationTagSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition SoftwareIdentificationTag = new IntermediateSymbolDefinition( + SymbolDefinitionType.SoftwareIdentificationTag, + new[] + { + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.Regid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.UniqueId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.PersistentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(SoftwareIdentificationTagSymbolFields.Alias), IntermediateFieldType.String), + }, + typeof(SoftwareIdentificationTagSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SoftwareIdentificationTagSymbolFields + { + FileRef, + Regid, + UniqueId, + PersistentId, + Alias, + } + + public class SoftwareIdentificationTagSymbol : IntermediateSymbol + { + public SoftwareIdentificationTagSymbol() : base(SymbolDefinitions.SoftwareIdentificationTag, null, null) + { + } + + public SoftwareIdentificationTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SoftwareIdentificationTag, sourceLineNumber, id) + { + } + + public IntermediateField this[SoftwareIdentificationTagSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.FileRef].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.FileRef, value); + } + + public string Regid + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.Regid].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.Regid, value); + } + + public string TagId + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.UniqueId].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.UniqueId, value); + } + + public string PersistentId + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.PersistentId].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.PersistentId, value); + } + + public string Alias + { + get => this.Fields[(int)SoftwareIdentificationTagSymbolFields.Alias].AsString(); + set => this.Set((int)SoftwareIdentificationTagSymbolFields.Alias, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/SummaryInformationSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/SummaryInformationSymbol.cs new file mode 100644 index 00000000..b3b233fe --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/SummaryInformationSymbol.cs @@ -0,0 +1,102 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition SummaryInformation = new IntermediateSymbolDefinition( + SymbolDefinitionType.SummaryInformation, + new[] + { + new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.PropertyId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(SummaryInformationSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(SummaryInformationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum SummaryInformationSymbolFields + { + PropertyId, + Value, + } + + public enum SummaryInformationType + { + Codepage = 1, + Title, + Subject, + PatchPackageName = 3, //used by patches + Author, + Keywords, + Comments, + PlatformAndLanguage, + PatchProductCodes = 7, // used by patches + TransformPlatformAndLanguageOrStorageNames, + TransformNames = 8, // used by patches + PackageCode, + PatchCode = 9, // used by patches + TransformProductCodes = 9, // used by transforms + Reserved11 = 11, // reserved by patches + Created, + LastSaved, + WindowsInstallerVersion, + Reserved14 = 14, // reserved by patches + WordCount, + PatchInstallerRequirement = 15, // used by patches + Reserved16, // reserved by patches + TransformValidationFlags = 16, // used by transforms + CreatingApplication = 18, + Security + } + + /// + /// Summary information values for the PachInstallerRequirement property. + /// + public enum PatchInstallerRequirement + { + /// Any version of the installer will do + Version10 = 1, + + /// At least 1.2 + Version12 = 2, + + /// At least 2.0 + Version20 = 3, + + /// At least 3.0 + Version30 = 4, + + /// At least 3.1 + Version31 = 5, + } + + public class SummaryInformationSymbol : IntermediateSymbol + { + public SummaryInformationSymbol() : base(SymbolDefinitions.SummaryInformation, null, null) + { + } + + public SummaryInformationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.SummaryInformation, sourceLineNumber, id) + { + } + + public IntermediateField this[SummaryInformationSymbolFields index] => this.Fields[(int)index]; + + public SummaryInformationType PropertyId + { + get => (SummaryInformationType)this.Fields[(int)SummaryInformationSymbolFields.PropertyId].AsNumber(); + set => this.Set((int)SummaryInformationSymbolFields.PropertyId, (int)value); + } + + public string Value + { + get => (string)this.Fields[(int)SummaryInformationSymbolFields.Value]; + set => this.Set((int)SummaryInformationSymbolFields.Value, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs new file mode 100644 index 00000000..0ed0a4ec --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -0,0 +1,776 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + public enum SymbolDefinitionType + { + SummaryInformation, + ActionText, + AppId, + AppSearch, + BBControl, + Billboard, + Binary, + CCPSearch, + CheckBox, + Class, + ComboBox, + CompLocator, + Complus, + Component, + Condition, + Control, + ControlCondition, + ControlEvent, + CreateFolder, + CustomAction, + Dialog, + Directory, + DrLocator, + DuplicateFile, + Environment, + Error, + EventMapping, + Extension, + ExternalFiles, + FamilyFileRanges, + Feature, + FeatureComponents, + File, + FileSFPCatalog, + Icon, + ImageFamilies, + IniFile, + IniLocator, + IsolatedComponent, + LaunchCondition, + ListBox, + ListView, + LockPermissions, + Media, + MIME, + ModuleComponents, + ModuleConfiguration, + ModuleDependency, + ModuleExclusion, + ModuleIgnoreTable, + WixModule, + ModuleSubstitution, + MoveFile, + Assembly, + MsiAssemblyName, + MsiDigitalCertificate, + MsiDigitalSignature, + MsiEmbeddedChainer, + MsiEmbeddedUI, + MsiFileHash, + MsiLockPermissionsEx, + MsiPackageCertificate, + MsiPatchCertificate, + MsiPatchHeaders, + MsiPatchMetadata, + MsiPatchOldAssemblyFile, + MsiPatchOldAssemblyName, + MsiPatchSequence, + MsiServiceConfig, + MsiServiceConfigFailureActions, + MsiShortcutProperty, + ODBCAttribute, + ODBCDataSource, + ODBCDriver, + ODBCSourceAttribute, + ODBCTranslator, + Patch, + PatchMetadata, + PatchPackage, + PatchSequence, + ProgId, + Properties, + Property, + ProvidesDependency, + PublishComponent, + RadioButton, + Registry, + RegLocator, + RemoveFile, + RemoveRegistry, + ReserveCost, + ServiceControl, + ServiceInstall, + SFPCatalog, + Shortcut, + Signature, + SoftwareIdentificationTag, + TargetFilesOptionalData, + TargetImages, + TextStyle, + TypeLib, + UIText, + Upgrade, + UpgradedFilesOptionalData, + UpgradedFilesToIgnore, + UpgradedImages, + Verb, + WixAction, + WixApprovedExeForElevation, + WixBindUpdatedFiles, + WixBootstrapperApplication, + WixBootstrapperApplicationDll, + WixBuildInfo, + WixBundle, + WixBundleContainer, + WixBundleCustomData, + WixBundleCustomDataAttribute, + WixBundleCustomDataCell, + WixBundleExePackage, + WixBundleExePackagePayload, + WixBundleExtension, + WixBundleMsiFeature, + WixBundleMsiPackage, + WixBundleMsiPackagePayload, + WixBundleMsiProperty, + WixBundleMspPackage, + WixBundleMspPackagePayload, + WixBundleMsuPackage, + WixBundleMsuPackagePayload, + WixBundlePackage, + WixBundlePackageCommandLine, + WixBundlePackageExitCode, + WixBundlePackageGroup, + WixBundlePatchTargetCode, + WixBundlePayload, + WixBundlePayloadGroup, + WixBundleRelatedPackage, + WixBundleRollbackBoundary, + WixBundleSlipstreamMsp, + WixBundleTag, + WixBundleUpdate, + WixBundleVariable, + WixChain, + WixChainItem, + WixComplexReference, + WixComponentGroup, + WixComponentSearch, + WixCustomTable, + WixCustomTableCell, + WixCustomTableColumn, + WixDeltaPatchFile, + WixDeltaPatchSymbolPaths, + WixDependency, + WixDependencyRef, + WixDependencyProvider, + WixEnsureTable, + WixFeatureGroup, + WixFeatureModules, + WixFileSearch, + WixFragment, + WixGroup, + WixInstanceComponent, + WixInstanceTransforms, + WixMediaTemplate, + WixMerge, + WixOrdering, + WixPackage, + WixPatchBaseline, + WixPatchFamilyGroup, + WixPatch, + WixPatchRef, + WixPatchTarget, + WixProductSearch, + WixProductTag, + WixProperty, + WixRegistrySearch, + WixRelatedBundle, + WixSearch, + WixSearchRelation, + WixSetVariable, + WixSimpleReference, + WixSuppressAction, + WixSuppressModularization, + WixUI, + WixUpdateRegistration, + WixVariable, + MustBeFromAnExtension, + } + + public static partial class SymbolDefinitions + { + public static readonly Version Version = new Version("4.0.0"); + + public static IntermediateSymbolDefinition ByName(string name) + { + if (!Enum.TryParse(name, out SymbolDefinitionType type) || type == SymbolDefinitionType.MustBeFromAnExtension) + { + return null; + } + + return ByType(type); + } + + public static IntermediateSymbolDefinition ByType(SymbolDefinitionType type) + { + switch (type) + { + case SymbolDefinitionType.SummaryInformation: + return SymbolDefinitions.SummaryInformation; + + case SymbolDefinitionType.ActionText: + return SymbolDefinitions.ActionText; + + case SymbolDefinitionType.AppId: + return SymbolDefinitions.AppId; + + case SymbolDefinitionType.AppSearch: + return SymbolDefinitions.AppSearch; + + case SymbolDefinitionType.BBControl: + return SymbolDefinitions.BBControl; + + case SymbolDefinitionType.Billboard: + return SymbolDefinitions.Billboard; + + case SymbolDefinitionType.Binary: + return SymbolDefinitions.Binary; + + case SymbolDefinitionType.CCPSearch: + return SymbolDefinitions.CCPSearch; + + case SymbolDefinitionType.CheckBox: + return SymbolDefinitions.CheckBox; + + case SymbolDefinitionType.Class: + return SymbolDefinitions.Class; + + case SymbolDefinitionType.ComboBox: + return SymbolDefinitions.ComboBox; + + case SymbolDefinitionType.CompLocator: + return SymbolDefinitions.CompLocator; + + case SymbolDefinitionType.Complus: + return SymbolDefinitions.Complus; + + case SymbolDefinitionType.Component: + return SymbolDefinitions.Component; + + case SymbolDefinitionType.Condition: + return SymbolDefinitions.Condition; + + case SymbolDefinitionType.Control: + return SymbolDefinitions.Control; + + case SymbolDefinitionType.ControlCondition: + return SymbolDefinitions.ControlCondition; + + case SymbolDefinitionType.ControlEvent: + return SymbolDefinitions.ControlEvent; + + case SymbolDefinitionType.CreateFolder: + return SymbolDefinitions.CreateFolder; + + case SymbolDefinitionType.CustomAction: + return SymbolDefinitions.CustomAction; + + case SymbolDefinitionType.Dialog: + return SymbolDefinitions.Dialog; + + case SymbolDefinitionType.Directory: + return SymbolDefinitions.Directory; + + case SymbolDefinitionType.DrLocator: + return SymbolDefinitions.DrLocator; + + case SymbolDefinitionType.DuplicateFile: + return SymbolDefinitions.DuplicateFile; + + case SymbolDefinitionType.Environment: + return SymbolDefinitions.Environment; + + case SymbolDefinitionType.Error: + return SymbolDefinitions.Error; + + case SymbolDefinitionType.EventMapping: + return SymbolDefinitions.EventMapping; + + case SymbolDefinitionType.Extension: + return SymbolDefinitions.Extension; + + case SymbolDefinitionType.ExternalFiles: + return SymbolDefinitions.ExternalFiles; + + case SymbolDefinitionType.FamilyFileRanges: + return SymbolDefinitions.FamilyFileRanges; + + case SymbolDefinitionType.Feature: + return SymbolDefinitions.Feature; + + case SymbolDefinitionType.FeatureComponents: + return SymbolDefinitions.FeatureComponents; + + case SymbolDefinitionType.File: + return SymbolDefinitions.File; + + case SymbolDefinitionType.FileSFPCatalog: + return SymbolDefinitions.FileSFPCatalog; + + case SymbolDefinitionType.Icon: + return SymbolDefinitions.Icon; + + case SymbolDefinitionType.ImageFamilies: + return SymbolDefinitions.ImageFamilies; + + case SymbolDefinitionType.IniFile: + return SymbolDefinitions.IniFile; + + case SymbolDefinitionType.IniLocator: + return SymbolDefinitions.IniLocator; + + case SymbolDefinitionType.IsolatedComponent: + return SymbolDefinitions.IsolatedComponent; + + case SymbolDefinitionType.LaunchCondition: + return SymbolDefinitions.LaunchCondition; + + case SymbolDefinitionType.ListBox: + return SymbolDefinitions.ListBox; + + case SymbolDefinitionType.ListView: + return SymbolDefinitions.ListView; + + case SymbolDefinitionType.LockPermissions: + return SymbolDefinitions.LockPermissions; + + case SymbolDefinitionType.Media: + return SymbolDefinitions.Media; + + case SymbolDefinitionType.MIME: + return SymbolDefinitions.MIME; + + case SymbolDefinitionType.ModuleComponents: + return SymbolDefinitions.ModuleComponents; + + case SymbolDefinitionType.ModuleConfiguration: + return SymbolDefinitions.ModuleConfiguration; + + case SymbolDefinitionType.ModuleDependency: + return SymbolDefinitions.ModuleDependency; + + case SymbolDefinitionType.ModuleExclusion: + return SymbolDefinitions.ModuleExclusion; + + case SymbolDefinitionType.ModuleIgnoreTable: + return SymbolDefinitions.ModuleIgnoreTable; + + case SymbolDefinitionType.WixModule: + return SymbolDefinitions.WixModule; + + case SymbolDefinitionType.ModuleSubstitution: + return SymbolDefinitions.ModuleSubstitution; + + case SymbolDefinitionType.MoveFile: + return SymbolDefinitions.MoveFile; + + case SymbolDefinitionType.Assembly: + return SymbolDefinitions.Assembly; + + case SymbolDefinitionType.MsiAssemblyName: + return SymbolDefinitions.MsiAssemblyName; + + case SymbolDefinitionType.MsiDigitalCertificate: + return SymbolDefinitions.MsiDigitalCertificate; + + case SymbolDefinitionType.MsiDigitalSignature: + return SymbolDefinitions.MsiDigitalSignature; + + case SymbolDefinitionType.MsiEmbeddedChainer: + return SymbolDefinitions.MsiEmbeddedChainer; + + case SymbolDefinitionType.MsiEmbeddedUI: + return SymbolDefinitions.MsiEmbeddedUI; + + case SymbolDefinitionType.MsiFileHash: + return SymbolDefinitions.MsiFileHash; + + case SymbolDefinitionType.MsiLockPermissionsEx: + return SymbolDefinitions.MsiLockPermissionsEx; + + case SymbolDefinitionType.MsiPackageCertificate: + return SymbolDefinitions.MsiPackageCertificate; + + case SymbolDefinitionType.MsiPatchCertificate: + return SymbolDefinitions.MsiPatchCertificate; + + case SymbolDefinitionType.MsiPatchHeaders: + return SymbolDefinitions.MsiPatchHeaders; + + case SymbolDefinitionType.MsiPatchMetadata: + return SymbolDefinitions.MsiPatchMetadata; + + case SymbolDefinitionType.MsiPatchOldAssemblyFile: + return SymbolDefinitions.MsiPatchOldAssemblyFile; + + case SymbolDefinitionType.MsiPatchOldAssemblyName: + return SymbolDefinitions.MsiPatchOldAssemblyName; + + case SymbolDefinitionType.MsiPatchSequence: + return SymbolDefinitions.MsiPatchSequence; + + case SymbolDefinitionType.MsiServiceConfig: + return SymbolDefinitions.MsiServiceConfig; + + case SymbolDefinitionType.MsiServiceConfigFailureActions: + return SymbolDefinitions.MsiServiceConfigFailureActions; + + case SymbolDefinitionType.MsiShortcutProperty: + return SymbolDefinitions.MsiShortcutProperty; + + case SymbolDefinitionType.ODBCAttribute: + return SymbolDefinitions.ODBCAttribute; + + case SymbolDefinitionType.ODBCDataSource: + return SymbolDefinitions.ODBCDataSource; + + case SymbolDefinitionType.ODBCDriver: + return SymbolDefinitions.ODBCDriver; + + case SymbolDefinitionType.ODBCSourceAttribute: + return SymbolDefinitions.ODBCSourceAttribute; + + case SymbolDefinitionType.ODBCTranslator: + return SymbolDefinitions.ODBCTranslator; + + case SymbolDefinitionType.Patch: + return SymbolDefinitions.Patch; + + case SymbolDefinitionType.PatchMetadata: + return SymbolDefinitions.PatchMetadata; + + case SymbolDefinitionType.PatchPackage: + return SymbolDefinitions.PatchPackage; + + case SymbolDefinitionType.PatchSequence: + return SymbolDefinitions.PatchSequence; + + case SymbolDefinitionType.ProgId: + return SymbolDefinitions.ProgId; + + case SymbolDefinitionType.Properties: + return SymbolDefinitions.Properties; + + case SymbolDefinitionType.Property: + return SymbolDefinitions.Property; + + case SymbolDefinitionType.PublishComponent: + return SymbolDefinitions.PublishComponent; + + case SymbolDefinitionType.RadioButton: + return SymbolDefinitions.RadioButton; + + case SymbolDefinitionType.Registry: + return SymbolDefinitions.Registry; + + case SymbolDefinitionType.RegLocator: + return SymbolDefinitions.RegLocator; + + case SymbolDefinitionType.RemoveFile: + return SymbolDefinitions.RemoveFile; + + case SymbolDefinitionType.RemoveRegistry: + return SymbolDefinitions.RemoveRegistry; + + case SymbolDefinitionType.ReserveCost: + return SymbolDefinitions.ReserveCost; + + case SymbolDefinitionType.ServiceControl: + return SymbolDefinitions.ServiceControl; + + case SymbolDefinitionType.ServiceInstall: + return SymbolDefinitions.ServiceInstall; + + case SymbolDefinitionType.SFPCatalog: + return SymbolDefinitions.SFPCatalog; + + case SymbolDefinitionType.Shortcut: + return SymbolDefinitions.Shortcut; + + case SymbolDefinitionType.Signature: + return SymbolDefinitions.Signature; + + case SymbolDefinitionType.SoftwareIdentificationTag: + return SymbolDefinitions.SoftwareIdentificationTag; + + case SymbolDefinitionType.TargetFilesOptionalData: + return SymbolDefinitions.TargetFilesOptionalData; + + case SymbolDefinitionType.TargetImages: + return SymbolDefinitions.TargetImages; + + case SymbolDefinitionType.TextStyle: + return SymbolDefinitions.TextStyle; + + case SymbolDefinitionType.TypeLib: + return SymbolDefinitions.TypeLib; + + case SymbolDefinitionType.UIText: + return SymbolDefinitions.UIText; + + case SymbolDefinitionType.Upgrade: + return SymbolDefinitions.Upgrade; + + case SymbolDefinitionType.UpgradedFilesOptionalData: + return SymbolDefinitions.UpgradedFilesOptionalData; + + case SymbolDefinitionType.UpgradedFilesToIgnore: + return SymbolDefinitions.UpgradedFilesToIgnore; + + case SymbolDefinitionType.UpgradedImages: + return SymbolDefinitions.UpgradedImages; + + case SymbolDefinitionType.Verb: + return SymbolDefinitions.Verb; + + case SymbolDefinitionType.WixAction: + return SymbolDefinitions.WixAction; + + case SymbolDefinitionType.WixApprovedExeForElevation: + return SymbolDefinitions.WixApprovedExeForElevation; + + case SymbolDefinitionType.WixBindUpdatedFiles: + return SymbolDefinitions.WixBindUpdatedFiles; + + case SymbolDefinitionType.WixBootstrapperApplication: + return SymbolDefinitions.WixBootstrapperApplication; + + case SymbolDefinitionType.WixBootstrapperApplicationDll: + return SymbolDefinitions.WixBootstrapperApplicationDll; + + case SymbolDefinitionType.WixBuildInfo: + return SymbolDefinitions.WixBuildInfo; + + case SymbolDefinitionType.WixBundle: + return SymbolDefinitions.WixBundle; + + case SymbolDefinitionType.WixBundleContainer: + return SymbolDefinitions.WixBundleContainer; + + case SymbolDefinitionType.WixBundleCustomData: + return SymbolDefinitions.WixBundleCustomData; + + case SymbolDefinitionType.WixBundleCustomDataAttribute: + return SymbolDefinitions.WixBundleCustomDataAttribute; + + case SymbolDefinitionType.WixBundleCustomDataCell: + return SymbolDefinitions.WixBundleCustomDataCell; + + case SymbolDefinitionType.WixBundleExtension: + return SymbolDefinitions.WixBundleExtension; + + case SymbolDefinitionType.WixBundleExePackage: + return SymbolDefinitions.WixBundleExePackage; + + case SymbolDefinitionType.WixBundleExePackagePayload: + return SymbolDefinitions.WixBundleExePackagePayload; + + case SymbolDefinitionType.WixBundleMsiFeature: + return SymbolDefinitions.WixBundleMsiFeature; + + case SymbolDefinitionType.WixBundleMsiPackage: + return SymbolDefinitions.WixBundleMsiPackage; + + case SymbolDefinitionType.WixBundleMsiPackagePayload: + return SymbolDefinitions.WixBundleMsiPackagePayload; + + case SymbolDefinitionType.WixBundleMsiProperty: + return SymbolDefinitions.WixBundleMsiProperty; + + case SymbolDefinitionType.WixBundleMspPackage: + return SymbolDefinitions.WixBundleMspPackage; + + case SymbolDefinitionType.WixBundleMspPackagePayload: + return SymbolDefinitions.WixBundleMspPackagePayload; + + case SymbolDefinitionType.WixBundleMsuPackage: + return SymbolDefinitions.WixBundleMsuPackage; + + case SymbolDefinitionType.WixBundleMsuPackagePayload: + return SymbolDefinitions.WixBundleMsuPackagePayload; + + case SymbolDefinitionType.WixBundlePackage: + return SymbolDefinitions.WixBundlePackage; + + case SymbolDefinitionType.WixBundlePackageCommandLine: + return SymbolDefinitions.WixBundlePackageCommandLine; + + case SymbolDefinitionType.WixBundlePackageExitCode: + return SymbolDefinitions.WixBundlePackageExitCode; + + case SymbolDefinitionType.WixBundlePackageGroup: + return SymbolDefinitions.WixBundlePackageGroup; + + case SymbolDefinitionType.WixBundlePatchTargetCode: + return SymbolDefinitions.WixBundlePatchTargetCode; + + case SymbolDefinitionType.WixBundlePayload: + return SymbolDefinitions.WixBundlePayload; + + case SymbolDefinitionType.WixBundlePayloadGroup: + return SymbolDefinitions.WixBundlePayloadGroup; + + case SymbolDefinitionType.WixBundleRelatedPackage: + return SymbolDefinitions.WixBundleRelatedPackage; + + case SymbolDefinitionType.WixBundleRollbackBoundary: + return SymbolDefinitions.WixBundleRollbackBoundary; + + case SymbolDefinitionType.WixBundleSlipstreamMsp: + return SymbolDefinitions.WixBundleSlipstreamMsp; + + case SymbolDefinitionType.WixBundleTag: + return SymbolDefinitions.WixBundleTag; + + case SymbolDefinitionType.WixBundleUpdate: + return SymbolDefinitions.WixBundleUpdate; + + case SymbolDefinitionType.WixBundleVariable: + return SymbolDefinitions.WixBundleVariable; + + case SymbolDefinitionType.WixChain: + return SymbolDefinitions.WixChain; + + case SymbolDefinitionType.WixChainItem: + return SymbolDefinitions.WixChainItem; + + case SymbolDefinitionType.WixComplexReference: + return SymbolDefinitions.WixComplexReference; + + case SymbolDefinitionType.WixComponentGroup: + return SymbolDefinitions.WixComponentGroup; + + case SymbolDefinitionType.WixComponentSearch: + return SymbolDefinitions.WixComponentSearch; + + case SymbolDefinitionType.WixCustomTable: + return SymbolDefinitions.WixCustomTable; + + case SymbolDefinitionType.WixCustomTableCell: + return SymbolDefinitions.WixCustomTableCell; + + case SymbolDefinitionType.WixCustomTableColumn: + return SymbolDefinitions.WixCustomTableColumn; + + case SymbolDefinitionType.WixDeltaPatchFile: + return SymbolDefinitions.WixDeltaPatchFile; + + case SymbolDefinitionType.WixDeltaPatchSymbolPaths: + return SymbolDefinitions.WixDeltaPatchSymbolPaths; + + case SymbolDefinitionType.WixDependency: + return SymbolDefinitions.WixDependency; + + case SymbolDefinitionType.WixDependencyRef: + return SymbolDefinitions.WixDependencyRef; + + case SymbolDefinitionType.WixDependencyProvider: + return SymbolDefinitions.WixDependencyProvider; + + case SymbolDefinitionType.WixEnsureTable: + return SymbolDefinitions.WixEnsureTable; + + case SymbolDefinitionType.WixFeatureGroup: + return SymbolDefinitions.WixFeatureGroup; + + case SymbolDefinitionType.WixFeatureModules: + return SymbolDefinitions.WixFeatureModules; + + case SymbolDefinitionType.WixFileSearch: + return SymbolDefinitions.WixFileSearch; + + case SymbolDefinitionType.WixFragment: + return SymbolDefinitions.WixFragment; + + case SymbolDefinitionType.WixGroup: + return SymbolDefinitions.WixGroup; + + case SymbolDefinitionType.WixInstanceComponent: + return SymbolDefinitions.WixInstanceComponent; + + case SymbolDefinitionType.WixInstanceTransforms: + return SymbolDefinitions.WixInstanceTransforms; + + case SymbolDefinitionType.WixMediaTemplate: + return SymbolDefinitions.WixMediaTemplate; + + case SymbolDefinitionType.WixMerge: + return SymbolDefinitions.WixMerge; + + case SymbolDefinitionType.WixOrdering: + return SymbolDefinitions.WixOrdering; + + case SymbolDefinitionType.WixPackage: + return SymbolDefinitions.WixPackage; + + case SymbolDefinitionType.WixPatchBaseline: + return SymbolDefinitions.WixPatchBaseline; + + case SymbolDefinitionType.WixPatchFamilyGroup: + return SymbolDefinitions.WixPatchFamilyGroup; + + case SymbolDefinitionType.WixPatch: + return SymbolDefinitions.WixPatchId; + + case SymbolDefinitionType.WixPatchRef: + return SymbolDefinitions.WixPatchRef; + + case SymbolDefinitionType.WixPatchTarget: + return SymbolDefinitions.WixPatchTarget; + + case SymbolDefinitionType.WixProductSearch: + return SymbolDefinitions.WixProductSearch; + + case SymbolDefinitionType.WixProductTag: + return SymbolDefinitions.WixProductTag; + + case SymbolDefinitionType.WixProperty: + return SymbolDefinitions.WixProperty; + + case SymbolDefinitionType.WixRegistrySearch: + return SymbolDefinitions.WixRegistrySearch; + + case SymbolDefinitionType.WixRelatedBundle: + return SymbolDefinitions.WixRelatedBundle; + + case SymbolDefinitionType.WixSearch: + return SymbolDefinitions.WixSearch; + + case SymbolDefinitionType.WixSearchRelation: + return SymbolDefinitions.WixSearchRelation; + + case SymbolDefinitionType.WixSetVariable: + return SymbolDefinitions.WixSetVariable; + + case SymbolDefinitionType.WixSimpleReference: + return SymbolDefinitions.WixSimpleReference; + + case SymbolDefinitionType.WixSuppressAction: + return SymbolDefinitions.WixSuppressAction; + + case SymbolDefinitionType.WixSuppressModularization: + return SymbolDefinitions.WixSuppressModularization; + + case SymbolDefinitionType.WixUI: + return SymbolDefinitions.WixUI; + + case SymbolDefinitionType.WixUpdateRegistration: + return SymbolDefinitions.WixUpdateRegistration; + + case SymbolDefinitionType.WixVariable: + return SymbolDefinitions.WixVariable; + + default: + throw new ArgumentOutOfRangeException($"{nameof(type)} ({type})"); + } + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs new file mode 100644 index 00000000..66fdc30c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TargetFilesOptionalData = new IntermediateSymbolDefinition( + SymbolDefinitionType.TargetFilesOptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetFilesOptionalDataSymbolFields.RetainOffsets), IntermediateFieldType.String), + }, + typeof(TargetFilesOptionalDataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TargetFilesOptionalDataSymbolFields + { + Target, + FTK, + SymbolPaths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + } + + public class TargetFilesOptionalDataSymbol : IntermediateSymbol + { + public TargetFilesOptionalDataSymbol() : base(SymbolDefinitions.TargetFilesOptionalData, null, null) + { + } + + public TargetFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetFilesOptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[TargetFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; + + public string Target + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.Target]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.Target, value); + } + + public string FTK + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.FTK]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.SymbolPaths]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.SymbolPaths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.IgnoreLengths]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)TargetFilesOptionalDataSymbolFields.RetainOffsets]; + set => this.Set((int)TargetFilesOptionalDataSymbolFields.RetainOffsets, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs new file mode 100644 index 00000000..4748b1f3 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TargetImages = new IntermediateSymbolDefinition( + SymbolDefinitionType.TargetImages, + new[] + { + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Target), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.Order), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.ProductValidateFlags), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TargetImagesSymbolFields.IgnoreMissingSrcFiles), IntermediateFieldType.Bool), + }, + typeof(TargetImagesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TargetImagesSymbolFields + { + Target, + MsiPath, + SymbolPaths, + Upgraded, + Order, + ProductValidateFlags, + IgnoreMissingSrcFiles, + } + + public class TargetImagesSymbol : IntermediateSymbol + { + public TargetImagesSymbol() : base(SymbolDefinitions.TargetImages, null, null) + { + } + + public TargetImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TargetImages, sourceLineNumber, id) + { + } + + public IntermediateField this[TargetImagesSymbolFields index] => this.Fields[(int)index]; + + public string Target + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.Target]; + set => this.Set((int)TargetImagesSymbolFields.Target, value); + } + + public string MsiPath + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.MsiPath]; + set => this.Set((int)TargetImagesSymbolFields.MsiPath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.SymbolPaths]; + set => this.Set((int)TargetImagesSymbolFields.SymbolPaths, value); + } + + public string Upgraded + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.Upgraded]; + set => this.Set((int)TargetImagesSymbolFields.Upgraded, value); + } + + public int Order + { + get => (int)this.Fields[(int)TargetImagesSymbolFields.Order]; + set => this.Set((int)TargetImagesSymbolFields.Order, value); + } + + public string ProductValidateFlags + { + get => (string)this.Fields[(int)TargetImagesSymbolFields.ProductValidateFlags]; + set => this.Set((int)TargetImagesSymbolFields.ProductValidateFlags, value); + } + + public bool IgnoreMissingSrcFiles + { + get => (bool)this.Fields[(int)TargetImagesSymbolFields.IgnoreMissingSrcFiles]; + set => this.Set((int)TargetImagesSymbolFields.IgnoreMissingSrcFiles, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/TextStyleSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/TextStyleSymbol.cs new file mode 100644 index 00000000..53415714 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/TextStyleSymbol.cs @@ -0,0 +1,114 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TextStyle = new IntermediateSymbolDefinition( + SymbolDefinitionType.TextStyle, + new[] + { + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.FaceName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Size), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Red), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Green), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Blue), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Bold), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Italic), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Strike), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(TextStyleSymbolFields.Underline), IntermediateFieldType.Bool), + }, + typeof(TextStyleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TextStyleSymbolFields + { + FaceName, + Size, + Red, + Green, + Blue, + Bold, + Italic, + Strike, + Underline, + } + + public class TextStyleSymbol : IntermediateSymbol + { + public TextStyleSymbol() : base(SymbolDefinitions.TextStyle, null, null) + { + } + + public TextStyleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TextStyle, sourceLineNumber, id) + { + } + + public IntermediateField this[TextStyleSymbolFields index] => this.Fields[(int)index]; + + public string FaceName + { + get => (string)this.Fields[(int)TextStyleSymbolFields.FaceName]; + set => this.Set((int)TextStyleSymbolFields.FaceName, value); + } + + public string LocalizedSize + { + get => (string)this.Fields[(int)TextStyleSymbolFields.Size]; + set => this.Set((int)TextStyleSymbolFields.Size, value); + } + + public int Size + { + get => (int)this.Fields[(int)TextStyleSymbolFields.Size]; + set => this.Set((int)TextStyleSymbolFields.Size, value); + } + + public int? Red + { + get => (int?)this.Fields[(int)TextStyleSymbolFields.Red]; + set => this.Set((int)TextStyleSymbolFields.Red, value); + } + + public int? Green + { + get => (int?)this.Fields[(int)TextStyleSymbolFields.Green]; + set => this.Set((int)TextStyleSymbolFields.Green, value); + } + + public int? Blue + { + get => (int?)this.Fields[(int)TextStyleSymbolFields.Blue]; + set => this.Set((int)TextStyleSymbolFields.Blue, value); + } + + public bool Bold + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Bold]; + set => this.Set((int)TextStyleSymbolFields.Bold, value); + } + + public bool Italic + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Italic]; + set => this.Set((int)TextStyleSymbolFields.Italic, value); + } + + public bool Strike + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Strike]; + set => this.Set((int)TextStyleSymbolFields.Strike, value); + } + + public bool Underline + { + get => (bool)this.Fields[(int)TextStyleSymbolFields.Underline]; + set => this.Set((int)TextStyleSymbolFields.Underline, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/TransformsFlags.cs b/src/api/wix/WixToolset.Data/Symbols/TransformsFlags.cs new file mode 100644 index 00000000..90f22cb4 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/TransformsFlags.cs @@ -0,0 +1,79 @@ +// 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. + +namespace WixToolset.Data.Symbols +{ + using System; + + /// + /// Summary information values for the CharCount property in transforms. + /// + [Flags] + public enum TransformFlags + { + /// Ignore error when adding a row that exists. + ErrorAddExistingRow = 0x1, + + /// Ignore error when deleting a row that does not exist. + ErrorDeleteMissingRow = 0x2, + + /// Ignore error when adding a table that exists. + ErrorAddExistingTable = 0x4, + + /// Ignore error when deleting a table that does not exist. + ErrorDeleteMissingTable = 0x8, + + /// Ignore error when updating a row that does not exist. + ErrorUpdateMissingRow = 0x10, + + /// Ignore error when transform and database code pages do not match, and their code pages are neutral. + ErrorChangeCodePage = 0x20, + + /// Default language must match base database. + ValidateLanguage = 0x10000, + + /// Product must match base database. + ValidateProduct = 0x20000, + + /// Check major version only. + ValidateMajorVersion = 0x80000, + + /// Check major and minor versions only. + ValidateMinorVersion = 0x100000, + + /// Check major, minor, and update versions. + ValidateUpdateVersion = 0x200000, + + /// Installed version lt base version. + ValidateNewLessBaseVersion = 0x400000, + + /// Installed version lte base version. + ValidateNewLessEqualBaseVersion = 0x800000, + + /// Installed version eq base version. + ValidateNewEqualBaseVersion = 0x1000000, + + /// Installed version gte base version. + ValidateNewGreaterEqualBaseVersion = 0x2000000, + + /// Installed version gt base version. + ValidateNewGreaterBaseVersion = 0x4000000, + + /// UpgradeCode must match base database. + ValidateUpgradeCode = 0x8000000, + + /// Masks all version checks on ProductVersion. + ProductVersionMask = ValidateMajorVersion | ValidateMinorVersion | ValidateUpdateVersion, + + /// Masks all operations on ProductVersion. + ProductVersionOperatorMask = ValidateNewLessBaseVersion | ValidateNewLessEqualBaseVersion | ValidateNewEqualBaseVersion | ValidateNewGreaterEqualBaseVersion | ValidateNewGreaterBaseVersion, + + /// Default value for instance transforms. + InstanceTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct | ValidateUpdateVersion | ValidateNewGreaterEqualBaseVersion, + + /// Default value for language transforms. + LanguageTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ErrorChangeCodePage | ValidateProduct, + + /// Default value for patch transforms. + PatchTransformDefault = ErrorAddExistingRow | ErrorDeleteMissingRow | ErrorAddExistingTable | ErrorDeleteMissingTable | ErrorUpdateMissingRow | ValidateProduct | ValidateUpdateVersion | ValidateNewEqualBaseVersion | ValidateUpgradeCode, + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/TypeLibSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/TypeLibSymbol.cs new file mode 100644 index 00000000..736ee292 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/TypeLibSymbol.cs @@ -0,0 +1,100 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition TypeLib = new IntermediateSymbolDefinition( + SymbolDefinitionType.TypeLib, + new[] + { + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.LibId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.ComponentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Version), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(TypeLibSymbolFields.Cost), IntermediateFieldType.Number), + }, + typeof(TypeLibSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum TypeLibSymbolFields + { + LibId, + Language, + ComponentRef, + Version, + Description, + DirectoryRef, + FeatureRef, + Cost, + } + + public class TypeLibSymbol : IntermediateSymbol + { + public TypeLibSymbol() : base(SymbolDefinitions.TypeLib, null, null) + { + } + + public TypeLibSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.TypeLib, sourceLineNumber, id) + { + } + + public IntermediateField this[TypeLibSymbolFields index] => this.Fields[(int)index]; + + public string LibId + { + get => (string)this.Fields[(int)TypeLibSymbolFields.LibId]; + set => this.Set((int)TypeLibSymbolFields.LibId, value); + } + + public int Language + { + get => (int)this.Fields[(int)TypeLibSymbolFields.Language]; + set => this.Set((int)TypeLibSymbolFields.Language, value); + } + + public string ComponentRef + { + get => (string)this.Fields[(int)TypeLibSymbolFields.ComponentRef]; + set => this.Set((int)TypeLibSymbolFields.ComponentRef, value); + } + + public int? Version + { + get => (int?)this.Fields[(int)TypeLibSymbolFields.Version]; + set => this.Set((int)TypeLibSymbolFields.Version, value); + } + + public string Description + { + get => (string)this.Fields[(int)TypeLibSymbolFields.Description]; + set => this.Set((int)TypeLibSymbolFields.Description, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)TypeLibSymbolFields.DirectoryRef]; + set => this.Set((int)TypeLibSymbolFields.DirectoryRef, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)TypeLibSymbolFields.FeatureRef]; + set => this.Set((int)TypeLibSymbolFields.FeatureRef, value); + } + + public int? Cost + { + get => (int?)this.Fields[(int)TypeLibSymbolFields.Cost]; + set => this.Set((int)TypeLibSymbolFields.Cost, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/UITextSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UITextSymbol.cs new file mode 100644 index 00000000..39b99398 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/UITextSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UIText = new IntermediateSymbolDefinition( + SymbolDefinitionType.UIText, + new[] + { + new IntermediateFieldDefinition(nameof(UITextSymbolFields.Text), IntermediateFieldType.String), + }, + typeof(UITextSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UITextSymbolFields + { + Text, + } + + public class UITextSymbol : IntermediateSymbol + { + public UITextSymbol() : base(SymbolDefinitions.UIText, null, null) + { + } + + public UITextSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UIText, sourceLineNumber, id) + { + } + + public IntermediateField this[UITextSymbolFields index] => this.Fields[(int)index]; + + public string Text + { + get => (string)this.Fields[(int)UITextSymbolFields.Text]; + set => this.Set((int)UITextSymbolFields.Text, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/UpgradeSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UpgradeSymbol.cs new file mode 100644 index 00000000..51eb74ef --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/UpgradeSymbol.cs @@ -0,0 +1,155 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Upgrade = new IntermediateSymbolDefinition( + SymbolDefinitionType.Upgrade, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMin), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMax), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ExcludeLanguages), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.IgnoreRemoveFailures), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.MigrateFeatures), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.OnlyDetect), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMaxInclusive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.VersionMinInclusive), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.Remove), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradeSymbolFields.ActionProperty), IntermediateFieldType.String), + }, + typeof(UpgradeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradeSymbolFields + { + UpgradeCode, + VersionMin, + VersionMax, + Language, + ExcludeLanguages, + IgnoreRemoveFailures, + MigrateFeatures, + OnlyDetect, + VersionMaxInclusive, + VersionMinInclusive, + Remove, + ActionProperty, + } + + public static class WixUpgradeConstants + { + /// + /// Standard property for detecting upgrades. + /// + public const string UpgradeDetectedProperty = "WIX_UPGRADE_DETECTED"; + + /// + /// Standard condition to prevent upgrades. + /// + public const string UpgradePreventedCondition = "NOT WIX_UPGRADE_DETECTED"; + + /// + /// Standard property for downgrade detected. + /// + public const string DowngradeDetectedProperty = "WIX_DOWNGRADE_DETECTED"; + + /// + /// Standard condition to prevent downgrades. + /// + public const string DowngradePreventedCondition = "NOT WIX_DOWNGRADE_DETECTED"; + } + + public class UpgradeSymbol : IntermediateSymbol + { + public UpgradeSymbol() : base(SymbolDefinitions.Upgrade, null, null) + { + } + + public UpgradeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Upgrade, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradeSymbolFields index] => this.Fields[(int)index]; + + public string UpgradeCode + { + get => (string)this.Fields[(int)UpgradeSymbolFields.UpgradeCode]; + set => this.Set((int)UpgradeSymbolFields.UpgradeCode, value); + } + + public string VersionMin + { + get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMin]; + set => this.Set((int)UpgradeSymbolFields.VersionMin, value); + } + + public string VersionMax + { + get => (string)this.Fields[(int)UpgradeSymbolFields.VersionMax]; + set => this.Set((int)UpgradeSymbolFields.VersionMax, value); + } + + public string Language + { + get => (string)this.Fields[(int)UpgradeSymbolFields.Language]; + set => this.Set((int)UpgradeSymbolFields.Language, value); + } + + public bool ExcludeLanguages + { + get => this.Fields[(int)UpgradeSymbolFields.ExcludeLanguages].AsBool(); + set => this.Set((int)UpgradeSymbolFields.ExcludeLanguages, value); + } + + public bool IgnoreRemoveFailures + { + get => this.Fields[(int)UpgradeSymbolFields.IgnoreRemoveFailures].AsBool(); + set => this.Set((int)UpgradeSymbolFields.IgnoreRemoveFailures, value); + } + + public bool MigrateFeatures + { + get => this.Fields[(int)UpgradeSymbolFields.MigrateFeatures].AsBool(); + set => this.Set((int)UpgradeSymbolFields.MigrateFeatures, value); + } + + public bool OnlyDetect + { + get => this.Fields[(int)UpgradeSymbolFields.OnlyDetect].AsBool(); + set => this.Set((int)UpgradeSymbolFields.OnlyDetect, value); + } + + public bool VersionMaxInclusive + { + get => this.Fields[(int)UpgradeSymbolFields.VersionMaxInclusive].AsBool(); + set => this.Set((int)UpgradeSymbolFields.VersionMaxInclusive, value); + } + + public bool VersionMinInclusive + { + get => this.Fields[(int)UpgradeSymbolFields.VersionMinInclusive].AsBool(); + set => this.Set((int)UpgradeSymbolFields.VersionMinInclusive, value); + } + + public string Remove + { + get => (string)this.Fields[(int)UpgradeSymbolFields.Remove]; + set => this.Set((int)UpgradeSymbolFields.Remove, value); + } + + public string ActionProperty + { + get => (string)this.Fields[(int)UpgradeSymbolFields.ActionProperty]; + set => this.Set((int)UpgradeSymbolFields.ActionProperty, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs new file mode 100644 index 00000000..9e669ec3 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UpgradedFilesOptionalData = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedFilesOptionalData, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.FTK), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile), IntermediateFieldType.Bool), + }, + typeof(UpgradedFilesOptionalDataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradedFilesOptionalDataSymbolFields + { + Upgraded, + FTK, + SymbolPaths, + AllowIgnoreOnPatchError, + IncludeWholeFile, + } + + public class UpgradedFilesOptionalDataSymbol : IntermediateSymbol + { + public UpgradedFilesOptionalDataSymbol() : base(SymbolDefinitions.UpgradedFilesOptionalData, null, null) + { + } + + public UpgradedFilesOptionalDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesOptionalData, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedFilesOptionalDataSymbolFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.Upgraded]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.Upgraded, value); + } + + public string FTK + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.FTK]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.FTK, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.SymbolPaths, value); + } + + public bool? AllowIgnoreOnPatchError + { + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.AllowIgnoreOnPatchError, value); + } + + public bool? IncludeWholeFile + { + get => (bool?)this.Fields[(int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile]; + set => this.Set((int)UpgradedFilesOptionalDataSymbolFields.IncludeWholeFile, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs new file mode 100644 index 00000000..e21af6a2 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UpgradedFilesToIgnore = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedFilesToIgnore, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreSymbolFields.FTK), IntermediateFieldType.String), + }, + typeof(UpgradedFilesToIgnoreSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradedFilesToIgnoreSymbolFields + { + Upgraded, + FTK, + } + + public class UpgradedFilesToIgnoreSymbol : IntermediateSymbol + { + public UpgradedFilesToIgnoreSymbol() : base(SymbolDefinitions.UpgradedFilesToIgnore, null, null) + { + } + + public UpgradedFilesToIgnoreSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedFilesToIgnoreSymbolFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.Upgraded]; + set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.Upgraded, value); + } + + public string FTK + { + get => (string)this.Fields[(int)UpgradedFilesToIgnoreSymbolFields.FTK]; + set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.FTK, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs new file mode 100644 index 00000000..28eae08a --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition UpgradedImages = new IntermediateSymbolDefinition( + SymbolDefinitionType.UpgradedImages, + new[] + { + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Upgraded), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.MsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.PatchMsiPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.SymbolPaths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(UpgradedImagesSymbolFields.Family), IntermediateFieldType.String), + }, + typeof(UpgradedImagesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum UpgradedImagesSymbolFields + { + Upgraded, + MsiPath, + PatchMsiPath, + SymbolPaths, + Family, + } + + public class UpgradedImagesSymbol : IntermediateSymbol + { + public UpgradedImagesSymbol() : base(SymbolDefinitions.UpgradedImages, null, null) + { + } + + public UpgradedImagesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.UpgradedImages, sourceLineNumber, id) + { + } + + public IntermediateField this[UpgradedImagesSymbolFields index] => this.Fields[(int)index]; + + public string Upgraded + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Upgraded]; + set => this.Set((int)UpgradedImagesSymbolFields.Upgraded, value); + } + + public string MsiPath + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.MsiPath]; + set => this.Set((int)UpgradedImagesSymbolFields.MsiPath, value); + } + + public string PatchMsiPath + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.PatchMsiPath]; + set => this.Set((int)UpgradedImagesSymbolFields.PatchMsiPath, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.SymbolPaths]; + set => this.Set((int)UpgradedImagesSymbolFields.SymbolPaths, value); + } + + public string Family + { + get => (string)this.Fields[(int)UpgradedImagesSymbolFields.Family]; + set => this.Set((int)UpgradedImagesSymbolFields.Family, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/VerbSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/VerbSymbol.cs new file mode 100644 index 00000000..95f045d6 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/VerbSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition Verb = new IntermediateSymbolDefinition( + SymbolDefinitionType.Verb, + new[] + { + new IntermediateFieldDefinition(nameof(VerbSymbolFields.ExtensionRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Verb), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Command), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(VerbSymbolFields.Argument), IntermediateFieldType.String), + }, + typeof(VerbSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum VerbSymbolFields + { + ExtensionRef, + Verb, + Sequence, + Command, + Argument, + } + + public class VerbSymbol : IntermediateSymbol + { + public VerbSymbol() : base(SymbolDefinitions.Verb, null, null) + { + } + + public VerbSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Verb, sourceLineNumber, id) + { + } + + public IntermediateField this[VerbSymbolFields index] => this.Fields[(int)index]; + + public string ExtensionRef + { + get => (string)this.Fields[(int)VerbSymbolFields.ExtensionRef]; + set => this.Set((int)VerbSymbolFields.ExtensionRef, value); + } + + public string Verb + { + get => (string)this.Fields[(int)VerbSymbolFields.Verb]; + set => this.Set((int)VerbSymbolFields.Verb, value); + } + + public int? Sequence + { + get => (int?)this.Fields[(int)VerbSymbolFields.Sequence]; + set => this.Set((int)VerbSymbolFields.Sequence, value); + } + + public string Command + { + get => (string)this.Fields[(int)VerbSymbolFields.Command]; + set => this.Set((int)VerbSymbolFields.Command, value); + } + + public string Argument + { + get => (string)this.Fields[(int)VerbSymbolFields.Argument]; + set => this.Set((int)VerbSymbolFields.Argument, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixActionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixActionSymbol.cs new file mode 100644 index 00000000..a055d68f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixActionSymbol.cs @@ -0,0 +1,101 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixAction, + new[] + { + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.SequenceTable), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Action), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Sequence), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Before), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.After), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Overridable), IntermediateFieldType.Bool), + }, + typeof(WixActionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixActionSymbolFields + { + SequenceTable, + Action, + Condition, + Sequence, + Before, + After, + Overridable, + } + + public enum SequenceTable + { + AdminUISequence, + AdminExecuteSequence, + AdvertiseExecuteSequence, + InstallUISequence, + InstallExecuteSequence + } + + public class WixActionSymbol : IntermediateSymbol + { + public WixActionSymbol() : base(SymbolDefinitions.WixAction, null, null) + { + } + + public WixActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixAction, sourceLineNumber, id) + { + } + + public IntermediateField this[WixActionSymbolFields index] => this.Fields[(int)index]; + + public SequenceTable SequenceTable + { + get => (SequenceTable)this.Fields[(int)WixActionSymbolFields.SequenceTable].AsNumber(); + set => this.Set((int)WixActionSymbolFields.SequenceTable, (int)value); + } + + public string Action + { + get => (string)this.Fields[(int)WixActionSymbolFields.Action]; + set => this.Set((int)WixActionSymbolFields.Action, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixActionSymbolFields.Condition]; + set => this.Set((int)WixActionSymbolFields.Condition, value); + } + + public int? Sequence + { + get => (int?)this.Fields[(int)WixActionSymbolFields.Sequence]; + set => this.Set((int)WixActionSymbolFields.Sequence, value); + } + + public string Before + { + get => (string)this.Fields[(int)WixActionSymbolFields.Before]; + set => this.Set((int)WixActionSymbolFields.Before, value); + } + + public string After + { + get => (string)this.Fields[(int)WixActionSymbolFields.After]; + set => this.Set((int)WixActionSymbolFields.After, value); + } + + public bool Overridable + { + get => this.Fields[(int)WixActionSymbolFields.Overridable].AsBool(); + set => this.Set((int)WixActionSymbolFields.Overridable, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs new file mode 100644 index 00000000..04c6e712 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixApprovedExeForElevationSymbol.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixApprovedExeForElevation = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixApprovedExeForElevation, + new[] + { + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.ValueName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixApprovedExeForElevationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixApprovedExeForElevationSymbolFields + { + Key, + ValueName, + Attributes, + } + + [Flags] + public enum WixApprovedExeForElevationAttributes + { + None = 0x0, + Win64 = 0x1, + } + + public class WixApprovedExeForElevationSymbol : IntermediateSymbol + { + public WixApprovedExeForElevationSymbol() : base(SymbolDefinitions.WixApprovedExeForElevation, null, null) + { + } + + public WixApprovedExeForElevationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) + { + } + + public IntermediateField this[WixApprovedExeForElevationSymbolFields index] => this.Fields[(int)index]; + + public string Key + { + get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Key]; + set => this.Set((int)WixApprovedExeForElevationSymbolFields.Key, value); + } + + public string ValueName + { + get => (string)this.Fields[(int)WixApprovedExeForElevationSymbolFields.ValueName]; + set => this.Set((int)WixApprovedExeForElevationSymbolFields.ValueName, value); + } + + public WixApprovedExeForElevationAttributes Attributes + { + get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixApprovedExeForElevationSymbolFields.Attributes, (int)value); + } + + public bool Win64 => (this.Attributes & WixApprovedExeForElevationAttributes.Win64) == WixApprovedExeForElevationAttributes.Win64; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs new file mode 100644 index 00000000..03bdb69b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBindUpdatedFilesSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBindUpdatedFiles = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBindUpdatedFiles, + new[] + { + new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesSymbolFields.FileRef), IntermediateFieldType.String), + }, + typeof(WixBindUpdatedFilesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBindUpdatedFilesSymbolFields + { + FileRef, + } + + public class WixBindUpdatedFilesSymbol : IntermediateSymbol + { + public WixBindUpdatedFilesSymbol() : base(SymbolDefinitions.WixBindUpdatedFiles, null, null) + { + } + + public WixBindUpdatedFilesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBindUpdatedFilesSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)WixBindUpdatedFilesSymbolFields.FileRef]; + set => this.Set((int)WixBindUpdatedFilesSymbolFields.FileRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs new file mode 100644 index 00000000..d3a66754 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationDllSymbol.cs @@ -0,0 +1,53 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBootstrapperApplicationDll = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBootstrapperApplicationDll, + new IntermediateFieldDefinition[] + { + new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationDllSymbolFields.DpiAwareness), IntermediateFieldType.Number), + }, + typeof(WixBootstrapperApplicationDllSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBootstrapperApplicationDllSymbolFields + { + DpiAwareness, + } + + public enum WixBootstrapperApplicationDpiAwarenessType + { + Unaware, + System, + PerMonitor, + PerMonitorV2, + GdiScaled, + } + + public class WixBootstrapperApplicationDllSymbol : IntermediateSymbol + { + public WixBootstrapperApplicationDllSymbol() : base(SymbolDefinitions.WixBootstrapperApplicationDll, null, null) + { + } + + public WixBootstrapperApplicationDllSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplicationDll, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBootstrapperApplicationDllSymbolFields index] => this.Fields[(int)index]; + + public WixBootstrapperApplicationDpiAwarenessType DpiAwareness + { + get => (WixBootstrapperApplicationDpiAwarenessType)this.Fields[(int)WixBootstrapperApplicationDllSymbolFields.DpiAwareness].AsNumber(); + set => this.Set((int)WixBootstrapperApplicationDllSymbolFields.DpiAwareness, (int)value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs new file mode 100644 index 00000000..3d7876fd --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBootstrapperApplicationSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBootstrapperApplication = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBootstrapperApplication, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBootstrapperApplicationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBootstrapperApplicationSymbolFields + { + } + + public class WixBootstrapperApplicationSymbol : IntermediateSymbol + { + public WixBootstrapperApplicationSymbol() : base(SymbolDefinitions.WixBootstrapperApplication, null, null) + { + } + + public WixBootstrapperApplicationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBootstrapperApplication, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBootstrapperApplicationSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs new file mode 100644 index 00000000..66e04d4b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBuildInfoSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBuildInfo = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBuildInfo, + new[] + { + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixOutputFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixProjectFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBuildInfoSymbolFields.WixPdbFile), IntermediateFieldType.String), + }, + typeof(WixBuildInfoSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBuildInfoSymbolFields + { + WixVersion, + WixOutputFile, + WixProjectFile, + WixPdbFile, + } + + public class WixBuildInfoSymbol : IntermediateSymbol + { + public WixBuildInfoSymbol() : base(SymbolDefinitions.WixBuildInfo, null, null) + { + } + + public WixBuildInfoSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBuildInfo, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBuildInfoSymbolFields index] => this.Fields[(int)index]; + + public string WixVersion + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixVersion]; + set => this.Set((int)WixBuildInfoSymbolFields.WixVersion, value); + } + + public string WixOutputFile + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixOutputFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixOutputFile, value); + } + + public string WixProjectFile + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixProjectFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixProjectFile, value); + } + + public string WixPdbFile + { + get => (string)this.Fields[(int)WixBuildInfoSymbolFields.WixPdbFile]; + set => this.Set((int)WixBuildInfoSymbolFields.WixPdbFile, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs new file mode 100644 index 00000000..80beda0a --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleContainerSymbol.cs @@ -0,0 +1,103 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleContainer = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleContainer, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Size), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.AttachedContainerIndex), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleContainerSymbolFields.WorkingPath), IntermediateFieldType.String), + }, + typeof(WixBundleContainerSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleContainerSymbolFields + { + Name, + Type, + DownloadUrl, + Size, + Hash, + AttachedContainerIndex, + WorkingPath, + } + + /// + /// Types of bundle packages. + /// + public enum ContainerType + { + Attached, + Detached, + } + + public class WixBundleContainerSymbol : IntermediateSymbol + { + public WixBundleContainerSymbol() : base(SymbolDefinitions.WixBundleContainer, null, null) + { + } + + public WixBundleContainerSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleContainer, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleContainerSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Name]; + set => this.Set((int)WixBundleContainerSymbolFields.Name, value); + } + + public ContainerType Type + { + get => (ContainerType)this.Fields[(int)WixBundleContainerSymbolFields.Type].AsNumber(); + set => this.Set((int)WixBundleContainerSymbolFields.Type, (int)value); + } + + public string DownloadUrl + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.DownloadUrl]; + set => this.Set((int)WixBundleContainerSymbolFields.DownloadUrl, value); + } + + public long? Size + { + get => (long?)this.Fields[(int)WixBundleContainerSymbolFields.Size]; + set => this.Set((int)WixBundleContainerSymbolFields.Size, value); + } + + public string Hash + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.Hash]; + set => this.Set((int)WixBundleContainerSymbolFields.Hash, value); + } + + public int? AttachedContainerIndex + { + get => (int?)this.Fields[(int)WixBundleContainerSymbolFields.AttachedContainerIndex]; + set => this.Set((int)WixBundleContainerSymbolFields.AttachedContainerIndex, value); + } + + public string WorkingPath + { + get => (string)this.Fields[(int)WixBundleContainerSymbolFields.WorkingPath]; + set => this.Set((int)WixBundleContainerSymbolFields.WorkingPath, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs new file mode 100644 index 00000000..c0a657ee --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataAttributeSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleCustomDataAttribute = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomDataAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeSymbolFields.Name), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataAttributeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleCustomDataAttributeSymbolFields + { + CustomDataRef, + Name, + } + + public class WixBundleCustomDataAttributeSymbol : IntermediateSymbol + { + public WixBundleCustomDataAttributeSymbol() : base(SymbolDefinitions.WixBundleCustomDataAttribute, null, null) + { + } + + public WixBundleCustomDataAttributeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataAttributeSymbolFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.CustomDataRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeSymbolFields.Name]; + set => this.Set((int)WixBundleCustomDataAttributeSymbolFields.Name, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs new file mode 100644 index 00000000..0488969a --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataCellSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleCustomDataCell = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomDataCell, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.AttributeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.ElementId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellSymbolFields.Value), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataCellSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleCustomDataCellSymbolFields + { + CustomDataRef, + AttributeRef, + ElementId, + Value, + } + + public class WixBundleCustomDataCellSymbol : IntermediateSymbol + { + public WixBundleCustomDataCellSymbol() : base(SymbolDefinitions.WixBundleCustomDataCell, null, null) + { + } + + public WixBundleCustomDataCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataCellSymbolFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.CustomDataRef, value); + } + + public string AttributeRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.AttributeRef]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.AttributeRef, value); + } + + public string ElementId + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.ElementId]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.ElementId, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleCustomDataCellSymbolFields.Value]; + set => this.Set((int)WixBundleCustomDataCellSymbolFields.Value, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs new file mode 100644 index 00000000..0490f9f7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleCustomDataSymbol.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleCustomData = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleCustomData, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.AttributeNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataSymbolFields.BundleExtensionRef), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleCustomDataSymbolFields + { + AttributeNames, + Type, + BundleExtensionRef, + } + + public enum WixBundleCustomDataType + { + Unknown, + BootstrapperApplication, + BundleExtension, + } + + public class WixBundleCustomDataSymbol : IntermediateSymbol + { + public const char AttributeNamesSeparator = '\x85'; + + public WixBundleCustomDataSymbol() : base(SymbolDefinitions.WixBundleCustomData, null, null) + { + } + + public WixBundleCustomDataSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleCustomData, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataSymbolFields index] => this.Fields[(int)index]; + + public string AttributeNames + { + get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.AttributeNames]; + set => this.Set((int)WixBundleCustomDataSymbolFields.AttributeNames, value); + } + + public WixBundleCustomDataType Type + { + get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataSymbolFields.Type].AsNumber(); + set => this.Set((int)WixBundleCustomDataSymbolFields.Type, (int)value); + } + + public string BundleExtensionRef + { + get => (string)this.Fields[(int)WixBundleCustomDataSymbolFields.BundleExtensionRef]; + set => this.Set((int)WixBundleCustomDataSymbolFields.BundleExtensionRef, value); + } + + public string[] AttributeNamesSeparated => this.AttributeNames.Split(AttributeNamesSeparator); + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs new file mode 100644 index 00000000..c0bf603f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleExePackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExePackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleExePackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleExePackagePayloadSymbolFields + { + } + + public class WixBundleExePackagePayloadSymbol : IntermediateSymbol + { + public WixBundleExePackagePayloadSymbol() : base(SymbolDefinitions.WixBundleExePackagePayload, null, null) + { + } + + public WixBundleExePackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExePackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs new file mode 100644 index 00000000..8a8cff1b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs @@ -0,0 +1,94 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleExePackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExePackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.InstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.RepairCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.UninstallCommand), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleExePackageSymbolFields.ExeProtocol), IntermediateFieldType.String), + }, + typeof(WixBundleExePackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleExePackageSymbolFields + { + Attributes, + DetectCondition, + InstallCommand, + RepairCommand, + UninstallCommand, + ExeProtocol, + } + + [Flags] + public enum WixBundleExePackageAttributes + { + None = 0, + } + + public class WixBundleExePackageSymbol : IntermediateSymbol + { + public WixBundleExePackageSymbol() : base(SymbolDefinitions.WixBundleExePackage, null, null) + { + } + + public WixBundleExePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExePackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExePackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundleExePackageAttributes Attributes + { + get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleExePackageSymbolFields.Attributes, (int)value); + } + + public string DetectCondition + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.DetectCondition]; + set => this.Set((int)WixBundleExePackageSymbolFields.DetectCondition, value); + } + + public string InstallCommand + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.InstallCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.InstallCommand, value); + } + + public string RepairCommand + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.RepairCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.RepairCommand, value); + } + + public string UninstallCommand + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.UninstallCommand]; + set => this.Set((int)WixBundleExePackageSymbolFields.UninstallCommand, value); + } + + public string ExeProtocol + { + get => (string)this.Fields[(int)WixBundleExePackageSymbolFields.ExeProtocol]; + set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); + } + + public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs new file mode 100644 index 00000000..8e6bea58 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleExtensionSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleExtension = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleExtension, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleExtensionSymbolFields.PayloadRef), IntermediateFieldType.String), + }, + typeof(WixBundleExtensionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleExtensionSymbolFields + { + PayloadRef, + } + + public class WixBundleExtensionSymbol : IntermediateSymbol + { + public WixBundleExtensionSymbol() : base(SymbolDefinitions.WixBundleExtension, null, null) + { + } + + public WixBundleExtensionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleExtension, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleExtensionSymbolFields index] => this.Fields[(int)index]; + + public string PayloadRef + { + get => (string)this.Fields[(int)WixBundleExtensionSymbolFields.PayloadRef]; + set => this.Set((int)WixBundleExtensionSymbolFields.PayloadRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs new file mode 100644 index 00000000..f81da5b8 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiFeatureSymbol.cs @@ -0,0 +1,116 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiFeature = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiFeature, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Size), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Title), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Display), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Level), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Directory), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleMsiFeatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsiFeatureSymbolFields + { + PackageRef, + Name, + Size, + Parent, + Title, + Description, + Display, + Level, + Directory, + Attributes, + } + + public class WixBundleMsiFeatureSymbol : IntermediateSymbol + { + public WixBundleMsiFeatureSymbol() : base(SymbolDefinitions.WixBundleMsiFeature, null, null) + { + } + + public WixBundleMsiFeatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiFeature, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiFeatureSymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.PackageRef]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.PackageRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Name]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Name, value); + } + + public long Size + { + get => (long)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Size]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Size, value); + } + + public string Parent + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Parent]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Parent, value); + } + + public string Title + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Title]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Title, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Description]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Description, value); + } + + public int Display + { + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Display]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Display, value); + } + + public int Level + { + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Level]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Level, value); + } + + public string Directory + { + get => (string)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Directory]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Directory, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixBundleMsiFeatureSymbolFields.Attributes]; + set => this.Set((int)WixBundleMsiFeatureSymbolFields.Attributes, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs new file mode 100644 index 00000000..e5af1044 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiPackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiPackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleMsiPackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsiPackagePayloadSymbolFields + { + } + + public class WixBundleMsiPackagePayloadSymbol : IntermediateSymbol + { + public WixBundleMsiPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMsiPackagePayload, null, null) + { + } + + public WixBundleMsiPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs new file mode 100644 index 00000000..21735f64 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPackageSymbol.cs @@ -0,0 +1,105 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductLanguage), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + }, + typeof(WixBundleMsiPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleMsiPackageSymbolFields + { + Attributes, + ProductCode, + UpgradeCode, + ProductVersion, + ProductLanguage, + ProductName, + Manufacturer, + } + + [Flags] + public enum WixBundleMsiPackageAttributes + { + EnableFeatureSelection = 0x4, + ForcePerMachine = 0x2, + } + + public class WixBundleMsiPackageSymbol : IntermediateSymbol + { + public WixBundleMsiPackageSymbol() : base(SymbolDefinitions.WixBundleMsiPackage, null, null) + { + } + + public WixBundleMsiPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundleMsiPackageAttributes Attributes + { + get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.Attributes, (int)value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductCode]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductCode, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.UpgradeCode]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.UpgradeCode, value); + } + + public string ProductVersion + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductVersion]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductVersion, value); + } + + public int ProductLanguage + { + get => (int)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductLanguage]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductLanguage, value); + } + + public string ProductName + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.ProductName]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.ProductName, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleMsiPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleMsiPackageSymbolFields.Manufacturer, value); + } + + public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection; + + public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs new file mode 100644 index 00000000..0d87f87d --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsiPropertySymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsiProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsiProperty, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsiPropertySymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(WixBundleMsiPropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsiPropertySymbolFields + { + PackageRef, + Name, + Value, + Condition, + } + + public class WixBundleMsiPropertySymbol : IntermediateSymbol + { + public WixBundleMsiPropertySymbol() : base(SymbolDefinitions.WixBundleMsiProperty, null, null) + { + } + + public WixBundleMsiPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsiProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsiPropertySymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.PackageRef]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.PackageRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Name]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Name, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Value]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Value, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundleMsiPropertySymbolFields.Condition]; + set => this.Set((int)WixBundleMsiPropertySymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs new file mode 100644 index 00000000..d1a21243 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMspPackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMspPackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleMspPackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMspPackagePayloadSymbolFields + { + } + + public class WixBundleMspPackagePayloadSymbol : IntermediateSymbol + { + public WixBundleMspPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMspPackagePayload, null, null) + { + } + + public WixBundleMspPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMspPackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs new file mode 100644 index 00000000..3784c2ff --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMspPackageSymbol.cs @@ -0,0 +1,81 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMspPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMspPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMspPackageSymbolFields.PatchXml), IntermediateFieldType.String), + }, + typeof(WixBundleMspPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleMspPackageSymbolFields + { + Attributes, + PatchCode, + Manufacturer, + PatchXml, + } + + [Flags] + public enum WixBundleMspPackageAttributes + { + Slipstream = 0x2, + TargetUnspecified = 0x4, + } + + public class WixBundleMspPackageSymbol : IntermediateSymbol + { + public WixBundleMspPackageSymbol() : base(SymbolDefinitions.WixBundleMspPackage, null, null) + { + } + + public WixBundleMspPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMspPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMspPackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundleMspPackageAttributes Attributes + { + get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageSymbolFields.Attributes]; + set => this.Set((int)WixBundleMspPackageSymbolFields.Attributes, (int)value); + } + + public string PatchCode + { + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchCode]; + set => this.Set((int)WixBundleMspPackageSymbolFields.PatchCode, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleMspPackageSymbolFields.Manufacturer, value); + } + + public string PatchXml + { + get => (string)this.Fields[(int)WixBundleMspPackageSymbolFields.PatchXml]; + set => this.Set((int)WixBundleMspPackageSymbolFields.PatchXml, value); + } + + public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream; + + public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs new file mode 100644 index 00000000..88c7deb2 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackagePayloadSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsuPackagePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsuPackagePayload, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundleMsuPackagePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsuPackagePayloadSymbolFields + { + } + + public class WixBundleMsuPackagePayloadSymbol : IntermediateSymbol + { + public WixBundleMsuPackagePayloadSymbol() : base(SymbolDefinitions.WixBundleMsuPackagePayload, null, null) + { + } + + public WixBundleMsuPackagePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackagePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsuPackagePayloadSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs new file mode 100644 index 00000000..e52a9b2d --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleMsuPackageSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleMsuPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleMsuPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.DetectCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleMsuPackageSymbolFields.MsuKB), IntermediateFieldType.String), + }, + typeof(WixBundleMsuPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleMsuPackageSymbolFields + { + DetectCondition, + MsuKB, + } + + public class WixBundleMsuPackageSymbol : IntermediateSymbol + { + public WixBundleMsuPackageSymbol() : base(SymbolDefinitions.WixBundleMsuPackage, null, null) + { + } + + public WixBundleMsuPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleMsuPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleMsuPackageSymbolFields index] => this.Fields[(int)index]; + + public string DetectCondition + { + get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.DetectCondition]; + set => this.Set((int)WixBundleMsuPackageSymbolFields.DetectCondition, value); + } + + public string MsuKB + { + get => (string)this.Fields[(int)WixBundleMsuPackageSymbolFields.MsuKB]; + set => this.Set((int)WixBundleMsuPackageSymbolFields.MsuKB, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs new file mode 100644 index 00000000..7ef254a6 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageCommandLineSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackageCommandLine = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageCommandLine, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.InstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.UninstallArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.RepairArgument), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineSymbolFields.Condition), IntermediateFieldType.String), + }, + typeof(WixBundlePackageCommandLineSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundlePackageCommandLineSymbolFields + { + WixBundlePackageRef, + InstallArgument, + UninstallArgument, + RepairArgument, + Condition, + } + + public class WixBundlePackageCommandLineSymbol : IntermediateSymbol + { + public WixBundlePackageCommandLineSymbol() : base(SymbolDefinitions.WixBundlePackageCommandLine, null, null) + { + } + + public WixBundlePackageCommandLineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageCommandLineSymbolFields index] => this.Fields[(int)index]; + + public string WixBundlePackageRef + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.WixBundlePackageRef, value); + } + + public string InstallArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.InstallArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.InstallArgument, value); + } + + public string UninstallArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.UninstallArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.UninstallArgument, value); + } + + public string RepairArgument + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.RepairArgument]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.RepairArgument, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundlePackageCommandLineSymbolFields.Condition]; + set => this.Set((int)WixBundlePackageCommandLineSymbolFields.Condition, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs new file mode 100644 index 00000000..d77d9d58 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageExitCodeSymbol.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackageExitCode = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageExitCode, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.ChainPackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Code), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeSymbolFields.Behavior), IntermediateFieldType.String), + }, + typeof(WixBundlePackageExitCodeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePackageExitCodeSymbolFields + { + ChainPackageId, + Code, + Behavior, + } + + public enum ExitCodeBehaviorType + { + NotSet = -1, + Success, + Error, + ScheduleReboot, + ForceReboot, + } + + public class WixBundlePackageExitCodeSymbol : IntermediateSymbol + { + public WixBundlePackageExitCodeSymbol() : base(SymbolDefinitions.WixBundlePackageExitCode, null, null) + { + } + + public WixBundlePackageExitCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageExitCodeSymbolFields index] => this.Fields[(int)index]; + + public string ChainPackageId + { + get => (string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.ChainPackageId]; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.ChainPackageId, value); + } + + public int? Code + { + get => (int?)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Code]; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Code, value); + } + + public ExitCodeBehaviorType Behavior + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeSymbolFields.Behavior], true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; + set => this.Set((int)WixBundlePackageExitCodeSymbolFields.Behavior, value.ToString()); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs new file mode 100644 index 00000000..a5e1943b --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageGroupSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackageGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackageGroup, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundlePackageGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundlePackageGroupSymbolFields + { + } + + public class WixBundlePackageGroupSymbol : IntermediateSymbol + { + public WixBundlePackageGroupSymbol() : base(SymbolDefinitions.WixBundlePackageGroup, null, null) + { + } + + public WixBundlePackageGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackageGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageGroupSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs new file mode 100644 index 00000000..cbe7f761 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs @@ -0,0 +1,212 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PayloadRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallCondition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Cache), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.CacheId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Vital), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PerMachine), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackLogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Win64), IntermediateFieldType.Bool), + }, + typeof(WixBundlePackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePackageSymbolFields + { + Type, + PayloadRef, + Attributes, + InstallCondition, + Cache, + CacheId, + Vital, + PerMachine, + LogPathVariable, + RollbackLogPathVariable, + Size, + InstallSize, + Version, + Language, + DisplayName, + Description, + RollbackBoundaryRef, + RollbackBoundaryBackwardRef, + Win64, + } + + /// + /// Types of bundle packages. + /// + public enum WixBundlePackageType + { + Exe, + Msi, + Msp, + Msu, + } + + [Flags] + public enum WixBundlePackageAttributes + { + Permanent = 0x1, + Visible = 0x2, + PerMachine = 0x4, + Win64 = 0x8, + } + + public class WixBundlePackageSymbol : IntermediateSymbol + { + public WixBundlePackageSymbol() : base(SymbolDefinitions.WixBundlePackage, null, null) + { + } + + public WixBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageSymbolFields index] => this.Fields[(int)index]; + + public WixBundlePackageType Type + { + get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageSymbolFields.Type], true); + set => this.Set((int)WixBundlePackageSymbolFields.Type, value.ToString()); + } + + public string PayloadRef + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.PayloadRef]; + set => this.Set((int)WixBundlePackageSymbolFields.PayloadRef, value); + } + + public WixBundlePackageAttributes Attributes + { + get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageSymbolFields.Attributes]; + set => this.Set((int)WixBundlePackageSymbolFields.Attributes, (int)value); + } + + public string InstallCondition + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.InstallCondition]; + set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value); + } + + public YesNoAlwaysType Cache + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; + set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant()); + } + + public string CacheId + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.CacheId]; + set => this.Set((int)WixBundlePackageSymbolFields.CacheId, value); + } + + public bool? Vital + { + get => (bool?)this.Fields[(int)WixBundlePackageSymbolFields.Vital]; + set => this.Set((int)WixBundlePackageSymbolFields.Vital, value); + } + + public YesNoDefaultType PerMachine + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; + set => this.Set((int)WixBundlePackageSymbolFields.PerMachine, value.ToString().ToLowerInvariant()); + } + + public string LogPathVariable + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.LogPathVariable]; + set => this.Set((int)WixBundlePackageSymbolFields.LogPathVariable, value); + } + + public string RollbackLogPathVariable + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackLogPathVariable]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackLogPathVariable, value); + } + + public long Size + { + get => (long)this.Fields[(int)WixBundlePackageSymbolFields.Size]; + set => this.Set((int)WixBundlePackageSymbolFields.Size, value); + } + + public long? InstallSize + { + get => (long?)this.Fields[(int)WixBundlePackageSymbolFields.InstallSize]; + set => this.Set((int)WixBundlePackageSymbolFields.InstallSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Version]; + set => this.Set((int)WixBundlePackageSymbolFields.Version, value); + } + + public int? Language + { + get => (int?)this.Fields[(int)WixBundlePackageSymbolFields.Language]; + set => this.Set((int)WixBundlePackageSymbolFields.Language, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.DisplayName]; + set => this.Set((int)WixBundlePackageSymbolFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Description]; + set => this.Set((int)WixBundlePackageSymbolFields.Description, value); + } + + public string RollbackBoundaryRef + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryRef]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryRef, value); + } + + public string RollbackBoundaryBackwardRef + { + get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef]; + set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef, value); + } + + public bool Win64 + { + get => (bool)this.Fields[(int)WixBundlePackageSymbolFields.Win64]; + set => this.Set((int)WixBundlePackageSymbolFields.Win64, value); + } + + public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs new file mode 100644 index 00000000..b1aa9c77 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePatchTargetCodeSymbol.cs @@ -0,0 +1,82 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePatchTargetCode = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePatchTargetCode, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.TargetCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundlePatchTargetCodeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePatchTargetCodeSymbolFields + { + PackageRef, + TargetCode, + Attributes, + } + + [Flags] + public enum WixBundlePatchTargetCodeAttributes : int + { + None = 0, + + /// + /// The transform targets a specific ProductCode. + /// + TargetsProductCode = 1, + + /// + /// The transform targets a specific UpgradeCode. + /// + TargetsUpgradeCode = 2, + } + + public class WixBundlePatchTargetCodeSymbol : IntermediateSymbol + { + public WixBundlePatchTargetCodeSymbol() : base(SymbolDefinitions.WixBundlePatchTargetCode, null, null) + { + } + + public WixBundlePatchTargetCodeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePatchTargetCodeSymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.PackageRef]; + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.PackageRef, value); + } + + public string TargetCode + { + get => (string)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.TargetCode]; + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.TargetCode, value); + } + + public WixBundlePatchTargetCodeAttributes Attributes + { + get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundlePatchTargetCodeSymbolFields.Attributes, (int)value); + } + + public bool TargetsProductCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsProductCode) == WixBundlePatchTargetCodeAttributes.TargetsProductCode; + + public bool TargetsUpgradeCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode) == WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs new file mode 100644 index 00000000..c53f6e73 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadGroupSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePayloadGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePayloadGroup, + new IntermediateFieldDefinition[] + { + }, + typeof(WixBundlePayloadGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundlePayloadGroupSymbolFields + { + } + + public class WixBundlePayloadGroupSymbol : IntermediateSymbol + { + public WixBundlePayloadGroupSymbol() : base(SymbolDefinitions.WixBundlePayloadGroup, null, null) + { + } + + public WixBundlePayloadGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePayloadGroupSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs new file mode 100644 index 00000000..82b75285 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePayloadSymbol.cs @@ -0,0 +1,166 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundlePayload = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundlePayload, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DownloadUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.UnresolvedSourceFile), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.FileSize), IntermediateFieldType.LargeNumber), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Hash), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContainerRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ContentFile), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.EmbeddedId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.LayoutOnly), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.Packaging), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePayloadSymbolFields.ParentPackagePayloadRef), IntermediateFieldType.String), + }, + typeof(WixBundlePayloadSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundlePayloadSymbolFields + { + Name, + SourceFile, + DownloadUrl, + Compressed, + UnresolvedSourceFile, + DisplayName, + Description, + FileSize, + Version, + Hash, + ContainerRef, + ContentFile, + EmbeddedId, + LayoutOnly, + Packaging, + ParentPackagePayloadRef, + } + + public class WixBundlePayloadSymbol : IntermediateSymbol + { + public WixBundlePayloadSymbol() : base(SymbolDefinitions.WixBundlePayload, null, null) + { + } + + public WixBundlePayloadSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePayload, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePayloadSymbolFields index] => this.Fields[(int)index]; + + public string Name + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Name]; + set => this.Set((int)WixBundlePayloadSymbolFields.Name, value); + } + + public IntermediateFieldPathValue SourceFile + { + get => this.Fields[(int)WixBundlePayloadSymbolFields.SourceFile].AsPath(); + set => this.Set((int)WixBundlePayloadSymbolFields.SourceFile, value); + } + + public string DownloadUrl + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DownloadUrl]; + set => this.Set((int)WixBundlePayloadSymbolFields.DownloadUrl, value); + } + + public bool? Compressed + { + get => (bool?)this.Fields[(int)WixBundlePayloadSymbolFields.Compressed]; + set => this.Set((int)WixBundlePayloadSymbolFields.Compressed, value); + } + + public string UnresolvedSourceFile + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.UnresolvedSourceFile]; + set => this.Set((int)WixBundlePayloadSymbolFields.UnresolvedSourceFile, value); + } + + public string DisplayName + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.DisplayName]; + set => this.Set((int)WixBundlePayloadSymbolFields.DisplayName, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Description]; + set => this.Set((int)WixBundlePayloadSymbolFields.Description, value); + } + + public long? FileSize + { + get => (long?)this.Fields[(int)WixBundlePayloadSymbolFields.FileSize]; + set => this.Set((int)WixBundlePayloadSymbolFields.FileSize, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Version]; + set => this.Set((int)WixBundlePayloadSymbolFields.Version, value); + } + + public string Hash + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.Hash]; + set => this.Set((int)WixBundlePayloadSymbolFields.Hash, value); + } + + public string ContainerRef + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ContainerRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.ContainerRef, value); + } + + public bool ContentFile + { + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.ContentFile]; + set => this.Set((int)WixBundlePayloadSymbolFields.ContentFile, value); + } + + public string EmbeddedId + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.EmbeddedId]; + set => this.Set((int)WixBundlePayloadSymbolFields.EmbeddedId, value); + } + + public bool LayoutOnly + { + get => (bool)this.Fields[(int)WixBundlePayloadSymbolFields.LayoutOnly]; + set => this.Set((int)WixBundlePayloadSymbolFields.LayoutOnly, value); + } + + public PackagingType? Packaging + { + get => (PackagingType?)this.Fields[(int)WixBundlePayloadSymbolFields.Packaging].AsNumber(); + set => this.Set((int)WixBundlePayloadSymbolFields.Packaging, (int?)value); + } + + public string ParentPackagePayloadRef + { + get => (string)this.Fields[(int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef]; + set => this.Set((int)WixBundlePayloadSymbolFields.ParentPackagePayloadRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs new file mode 100644 index 00000000..7bd67b7f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleRelatedPackageSymbol.cs @@ -0,0 +1,104 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleRelatedPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleRelatedPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.PackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.RelatedId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleRelatedPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleRelatedPackageSymbolFields + { + PackageRef, + RelatedId, + MinVersion, + MaxVersion, + Languages, + Attributes, + } + + [Flags] + public enum WixBundleRelatedPackageAttributes + { + None = 0x0, + OnlyDetect = 0x1, + MinInclusive = 0x2, + MaxInclusive = 0x4, + LangInclusive = 0x8, + } + + public class WixBundleRelatedPackageSymbol : IntermediateSymbol + { + public WixBundleRelatedPackageSymbol() : base(SymbolDefinitions.WixBundleRelatedPackage, null, null) + { + } + + public WixBundleRelatedPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleRelatedPackageSymbolFields index] => this.Fields[(int)index]; + + public string PackageRef + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.PackageRef]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.PackageRef, value); + } + + public string RelatedId + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.RelatedId]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.RelatedId, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MinVersion]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MaxVersion]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.MaxVersion, value); + } + + public string Languages + { + get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Languages]; + set => this.Set((int)WixBundleRelatedPackageSymbolFields.Languages, value); + } + + public WixBundleRelatedPackageAttributes Attributes + { + get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleRelatedPackageSymbolFields.Attributes, (int)value); + } + + public bool MinInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MinInclusive) == WixBundleRelatedPackageAttributes.MinInclusive; + + public bool MaxInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MaxInclusive) == WixBundleRelatedPackageAttributes.MaxInclusive; + + public bool OnlyDetect => (this.Attributes & WixBundleRelatedPackageAttributes.OnlyDetect) == WixBundleRelatedPackageAttributes.OnlyDetect; + + public bool LangInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.LangInclusive) == WixBundleRelatedPackageAttributes.LangInclusive; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs new file mode 100644 index 00000000..e54e898e --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleRollbackBoundarySymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleRollbackBoundary = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleRollbackBoundary, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Vital), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundarySymbolFields.Transaction), IntermediateFieldType.Number), + }, + typeof(WixBundleRollbackBoundarySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleRollbackBoundarySymbolFields + { + Vital, + Transaction, + } + + public class WixBundleRollbackBoundarySymbol : IntermediateSymbol + { + public WixBundleRollbackBoundarySymbol() : base(SymbolDefinitions.WixBundleRollbackBoundary, null, null) + { + } + + public WixBundleRollbackBoundarySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleRollbackBoundarySymbolFields index] => this.Fields[(int)index]; + + public bool? Vital + { + get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Vital]; + set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Vital, value); + } + + public bool? Transaction + { + get => (bool?)this.Fields[(int)WixBundleRollbackBoundarySymbolFields.Transaction]; + set => this.Set((int)WixBundleRollbackBoundarySymbolFields.Transaction, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs new file mode 100644 index 00000000..d8e9db3f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleSlipstreamMspSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleSlipstreamMsp = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleSlipstreamMsp, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.TargetPackageRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspSymbolFields.MspPackageRef), IntermediateFieldType.String), + }, + typeof(WixBundleSlipstreamMspSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleSlipstreamMspSymbolFields + { + TargetPackageRef, + MspPackageRef, + } + + public class WixBundleSlipstreamMspSymbol : IntermediateSymbol + { + public WixBundleSlipstreamMspSymbol() : base(SymbolDefinitions.WixBundleSlipstreamMsp, null, null) + { + } + + public WixBundleSlipstreamMspSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleSlipstreamMspSymbolFields index] => this.Fields[(int)index]; + + public string TargetPackageRef + { + get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspSymbolFields.TargetPackageRef, value); + } + + public string MspPackageRef + { + get => (string)this.Fields[(int)WixBundleSlipstreamMspSymbolFields.MspPackageRef]; + set => this.Set((int)WixBundleSlipstreamMspSymbolFields.MspPackageRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleSymbol.cs new file mode 100644 index 00000000..8cad5c36 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleSymbol.cs @@ -0,0 +1,234 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundle = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundle, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Copyright), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.AboutUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.HelpTelephone), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.UpdateUrl), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Compressed), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPathVariable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogPrefix), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.LogExtension), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.IconSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.SplashScreenSourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Tag), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.Platform), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ParentName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.BundleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleSymbolFields.ProviderKey), IntermediateFieldType.String), + }, + typeof(WixBundleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleSymbolFields + { + UpgradeCode, + Version, + Copyright, + Name, + Manufacturer, + Attributes, + AboutUrl, + HelpUrl, + HelpTelephone, + UpdateUrl, + Compressed, + LogPathVariable, + LogPrefix, + LogExtension, + IconSourceFile, + SplashScreenSourceFile, + Condition, + Tag, + Platform, + ParentName, + BundleId, + ProviderKey, + } + + [Flags] + public enum WixBundleAttributes + { + None = 0x0, + DisableModify = 0x1, + DisableRemove = 0x2, + SingleChangeUninstallButton = 0x4, + PerMachine = 0x8, + } + + public class WixBundleSymbol : IntermediateSymbol + { + public WixBundleSymbol() : base(SymbolDefinitions.WixBundle, null, null) + { + } + + public WixBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundle, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleSymbolFields index] => this.Fields[(int)index]; + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixBundleSymbolFields.UpgradeCode]; + set => this.Set((int)WixBundleSymbolFields.UpgradeCode, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Version]; + set => this.Set((int)WixBundleSymbolFields.Version, value); + } + + public string Copyright + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Copyright]; + set => this.Set((int)WixBundleSymbolFields.Copyright, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Name]; + set => this.Set((int)WixBundleSymbolFields.Name, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Manufacturer]; + set => this.Set((int)WixBundleSymbolFields.Manufacturer, value); + } + + public WixBundleAttributes Attributes + { + get => (WixBundleAttributes)this.Fields[(int)WixBundleSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleSymbolFields.Attributes, (int)value); + } + + public string AboutUrl + { + get => (string)this.Fields[(int)WixBundleSymbolFields.AboutUrl]; + set => this.Set((int)WixBundleSymbolFields.AboutUrl, value); + } + + public string HelpTelephone + { + get => (string)this.Fields[(int)WixBundleSymbolFields.HelpTelephone]; + set => this.Set((int)WixBundleSymbolFields.HelpTelephone, value); + } + + public string HelpUrl + { + get => (string)this.Fields[(int)WixBundleSymbolFields.HelpUrl]; + set => this.Set((int)WixBundleSymbolFields.HelpUrl, value); + } + + public string UpdateUrl + { + get => (string)this.Fields[(int)WixBundleSymbolFields.UpdateUrl]; + set => this.Set((int)WixBundleSymbolFields.UpdateUrl, value); + } + + public bool? Compressed + { + get => (bool?)this.Fields[(int)WixBundleSymbolFields.Compressed]; + set => this.Set((int)WixBundleSymbolFields.Compressed, value); + } + + public string LogPathVariable + { + get => (string)this.Fields[(int)WixBundleSymbolFields.LogPathVariable]; + set => this.Set((int)WixBundleSymbolFields.LogPathVariable, value); + } + + public string LogPrefix + { + get => (string)this.Fields[(int)WixBundleSymbolFields.LogPrefix]; + set => this.Set((int)WixBundleSymbolFields.LogPrefix, value); + } + + public string LogExtension + { + get => (string)this.Fields[(int)WixBundleSymbolFields.LogExtension]; + set => this.Set((int)WixBundleSymbolFields.LogExtension, value); + } + + public string IconSourceFile + { + get => (string)this.Fields[(int)WixBundleSymbolFields.IconSourceFile]; + set => this.Set((int)WixBundleSymbolFields.IconSourceFile, value); + } + + public string SplashScreenSourceFile + { + get => (string)this.Fields[(int)WixBundleSymbolFields.SplashScreenSourceFile]; + set => this.Set((int)WixBundleSymbolFields.SplashScreenSourceFile, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Condition]; + set => this.Set((int)WixBundleSymbolFields.Condition, value); + } + + public string Tag + { + get => (string)this.Fields[(int)WixBundleSymbolFields.Tag]; + set => this.Set((int)WixBundleSymbolFields.Tag, value); + } + + public Platform Platform + { + get => (Platform)this.Fields[(int)WixBundleSymbolFields.Platform].AsNumber(); + set => this.Set((int)WixBundleSymbolFields.Platform, (int)value); + } + + public string ParentName + { + get => (string)this.Fields[(int)WixBundleSymbolFields.ParentName]; + set => this.Set((int)WixBundleSymbolFields.ParentName, value); + } + + public string BundleId + { + get => (string)this.Fields[(int)WixBundleSymbolFields.BundleId]; + set => this.Set((int)WixBundleSymbolFields.BundleId, value); + } + + public string ProviderKey + { + get => (string)this.Fields[(int)WixBundleSymbolFields.ProviderKey]; + set => this.Set((int)WixBundleSymbolFields.ProviderKey, value); + } + + public PackagingType DefaultPackagingType => (this.Compressed.HasValue && !this.Compressed.Value) ? PackagingType.External : PackagingType.Embedded; + + public bool DisableModify => (this.Attributes & WixBundleAttributes.DisableModify) == WixBundleAttributes.DisableModify; + + public bool DisableRemove => (this.Attributes & WixBundleAttributes.DisableRemove) == WixBundleAttributes.DisableRemove; + + public bool PerMachine => (this.Attributes & WixBundleAttributes.PerMachine) == WixBundleAttributes.PerMachine; + + public bool SingleChangeUninstallButton => (this.Attributes & WixBundleAttributes.SingleChangeUninstallButton) == WixBundleAttributes.SingleChangeUninstallButton; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleTagSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleTagSymbol.cs new file mode 100644 index 00000000..d550dae0 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleTagSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleTag = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleTag, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Filename), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Regid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.InstallPath), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleTagSymbolFields.Xml), IntermediateFieldType.String), + }, + typeof(WixBundleTagSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleTagSymbolFields + { + Filename, + Regid, + Name, + InstallPath, + Attributes, + Xml, + } + + public class WixBundleTagSymbol : IntermediateSymbol + { + public WixBundleTagSymbol() : base(SymbolDefinitions.WixBundleTag, null, null) + { + } + + public WixBundleTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleTag, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleTagSymbolFields index] => this.Fields[(int)index]; + + public string Filename + { + get => this.Fields[(int)WixBundleTagSymbolFields.Filename].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Filename, value); + } + + public string Regid + { + get => this.Fields[(int)WixBundleTagSymbolFields.Regid].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Regid, value); + } + + public string Name + { + get => this.Fields[(int)WixBundleTagSymbolFields.Name].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Name, value); + } + + public string InstallPath + { + get => this.Fields[(int)WixBundleTagSymbolFields.InstallPath].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.InstallPath, value); + } + + public int Attributes + { + get => this.Fields[(int)WixBundleTagSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixBundleTagSymbolFields.Attributes, value); + } + + public string Xml + { + get => this.Fields[(int)WixBundleTagSymbolFields.Xml].AsString(); + set => this.Set((int)WixBundleTagSymbolFields.Xml, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs new file mode 100644 index 00000000..d27bbc32 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleUpdateSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleUpdate = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleUpdate, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Location), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleUpdateSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixBundleUpdateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixBundleUpdateSymbolFields + { + Location, + Attributes, + } + + public class WixBundleUpdateSymbol : IntermediateSymbol + { + public WixBundleUpdateSymbol() : base(SymbolDefinitions.WixBundleUpdate, null, null) + { + } + + public WixBundleUpdateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleUpdate, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleUpdateSymbolFields index] => this.Fields[(int)index]; + + public string Location + { + get => (string)this.Fields[(int)WixBundleUpdateSymbolFields.Location]; + set => this.Set((int)WixBundleUpdateSymbolFields.Location, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixBundleUpdateSymbolFields.Attributes]; + set => this.Set((int)WixBundleUpdateSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs new file mode 100644 index 00000000..d68ac682 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleVariableSymbol.cs @@ -0,0 +1,79 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixBundleVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixBundleVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixBundleVariableSymbolFields.Persisted), IntermediateFieldType.Bool), + }, + typeof(WixBundleVariableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixBundleVariableSymbolFields + { + Value, + Type, + Hidden, + Persisted, + } + + public enum WixBundleVariableType + { + Unknown, + Formatted, + Numeric, + String, + Version, + } + + public class WixBundleVariableSymbol : IntermediateSymbol + { + public WixBundleVariableSymbol() : base(SymbolDefinitions.WixBundleVariable, null, null) + { + } + + public WixBundleVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleVariableSymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)WixBundleVariableSymbolFields.Value]; + set => this.Set((int)WixBundleVariableSymbolFields.Value, value); + } + + public WixBundleVariableType Type + { + get => Enum.TryParse((string)this.Fields[(int)WixBundleVariableSymbolFields.Type], true, out WixBundleVariableType value) ? value : WixBundleVariableType.Unknown; + set => this.Set((int)WixBundleVariableSymbolFields.Type, value.ToString().ToLowerInvariant()); + } + + public bool Hidden + { + get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Hidden]; + set => this.Set((int)WixBundleVariableSymbolFields.Hidden, value); + } + + public bool Persisted + { + get => (bool)this.Fields[(int)WixBundleVariableSymbolFields.Persisted]; + set => this.Set((int)WixBundleVariableSymbolFields.Persisted, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixChainItemSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixChainItemSymbol.cs new file mode 100644 index 00000000..c657678c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixChainItemSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixChainItem = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixChainItem, + new IntermediateFieldDefinition[] + { + }, + typeof(WixChainItemSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixChainItemSymbolFields + { + } + + public class WixChainItemSymbol : IntermediateSymbol + { + public WixChainItemSymbol() : base(SymbolDefinitions.WixChainItem, null, null) + { + } + + public WixChainItemSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChainItem, sourceLineNumber, id) + { + } + + public IntermediateField this[WixChainItemSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixChainSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixChainSymbol.cs new file mode 100644 index 00000000..8ec5fc63 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixChainSymbol.cs @@ -0,0 +1,61 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixChain = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixChain, + new[] + { + new IntermediateFieldDefinition(nameof(WixChainSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixChainSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixChainSymbolFields + { + Attributes, + } + + [Flags] + public enum WixChainAttributes + { + None = 0x0, + DisableRollback = 0x1, + DisableSystemRestore = 0x2, + ParallelCache = 0x4, + } + + public class WixChainSymbol : IntermediateSymbol + { + public WixChainSymbol() : base(SymbolDefinitions.WixChain, null, null) + { + } + + public WixChainSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixChain, sourceLineNumber, id) + { + } + + public IntermediateField this[WixChainSymbolFields index] => this.Fields[(int)index]; + + public WixChainAttributes Attributes + { + get => (WixChainAttributes)(int)this.Fields[(int)WixChainSymbolFields.Attributes]; + set => this.Set((int)WixChainSymbolFields.Attributes, (int)value); + } + + public bool DisableRollback => (this.Attributes & WixChainAttributes.DisableRollback) == WixChainAttributes.DisableRollback; + + public bool DisableSystemRestore => (this.Attributes & WixChainAttributes.DisableSystemRestore) == WixChainAttributes.DisableSystemRestore; + + public bool ParallelCache => (this.Attributes & WixChainAttributes.ParallelCache) == WixChainAttributes.ParallelCache; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs new file mode 100644 index 00000000..3db9bcd5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixComplexReferenceSymbol.cs @@ -0,0 +1,86 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixComplexReference = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComplexReference, + new[] + { + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Parent), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ParentLanguage), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Child), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.ChildAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixComplexReferenceSymbolFields.Attributes), IntermediateFieldType.Bool), + }, + typeof(WixComplexReferenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixComplexReferenceSymbolFields + { + Parent, + ParentAttributes, + ParentLanguage, + Child, + ChildAttributes, + Attributes, + } + + public class WixComplexReferenceSymbol : IntermediateSymbol + { + public WixComplexReferenceSymbol() : base(SymbolDefinitions.WixComplexReference, null, null) + { + } + + public WixComplexReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComplexReference, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComplexReferenceSymbolFields index] => this.Fields[(int)index]; + + public string Parent + { + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Parent]; + set => this.Set((int)WixComplexReferenceSymbolFields.Parent, value); + } + + public ComplexReferenceParentType ParentType + { + get => (ComplexReferenceParentType)this.Fields[(int)WixComplexReferenceSymbolFields.ParentAttributes].AsNumber(); + set => this.Set((int)WixComplexReferenceSymbolFields.ParentAttributes, (int)value); + } + + public string ParentLanguage + { + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.ParentLanguage]; + set => this.Set((int)WixComplexReferenceSymbolFields.ParentLanguage, value); + } + + public string Child + { + get => (string)this.Fields[(int)WixComplexReferenceSymbolFields.Child]; + set => this.Set((int)WixComplexReferenceSymbolFields.Child, value); + } + + public ComplexReferenceChildType ChildType + { + get => (ComplexReferenceChildType)this.Fields[(int)WixComplexReferenceSymbolFields.ChildAttributes].AsNumber(); + set => this.Set((int)WixComplexReferenceSymbolFields.ChildAttributes, (int)value); + } + + public bool IsPrimary + { + get => (bool)this.Fields[(int)WixComplexReferenceSymbolFields.Attributes]; + set => this.Set((int)WixComplexReferenceSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs new file mode 100644 index 00000000..4dd5a3b5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixComponentGroupSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixComponentGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComponentGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixComponentGroupSymbolFields.WixComponentGroup), IntermediateFieldType.String), + }, + typeof(WixComponentGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixComponentGroupSymbolFields + { + WixComponentGroup, + } + + public class WixComponentGroupSymbol : IntermediateSymbol + { + public WixComponentGroupSymbol() : base(SymbolDefinitions.WixComponentGroup, null, null) + { + } + + public WixComponentGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComponentGroupSymbolFields index] => this.Fields[(int)index]; + + public string WixComponentGroup + { + get => (string)this.Fields[(int)WixComponentGroupSymbolFields.WixComponentGroup]; + set => this.Set((int)WixComponentGroupSymbolFields.WixComponentGroup, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs new file mode 100644 index 00000000..63f7179f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixComponentSearchSymbol.cs @@ -0,0 +1,70 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixComponentSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixComponentSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixComponentSearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixComponentSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixComponentSearchSymbolFields + { + Guid, + ProductCode, + Attributes, + } + + [Flags] + public enum WixComponentSearchAttributes + { + KeyPath = 0x1, + State = 0x2, + WantDirectory = 0x4, + } + + public class WixComponentSearchSymbol : IntermediateSymbol + { + public WixComponentSearchSymbol() : base(SymbolDefinitions.WixComponentSearch, null, null) + { + } + + public WixComponentSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixComponentSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixComponentSearchSymbolFields index] => this.Fields[(int)index]; + + public string Guid + { + get => (string)this.Fields[(int)WixComponentSearchSymbolFields.Guid]; + set => this.Set((int)WixComponentSearchSymbolFields.Guid, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixComponentSearchSymbolFields.ProductCode]; + set => this.Set((int)WixComponentSearchSymbolFields.ProductCode, value); + } + + public WixComponentSearchAttributes Attributes + { + get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixComponentSearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs new file mode 100644 index 00000000..b45cda43 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixCustomTableCellSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixCustomTableCell = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTableCell, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.ColumnRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.RowId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableCellSymbolFields.Data), IntermediateFieldType.String), + }, + typeof(WixCustomTableCellSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixCustomTableCellSymbolFields + { + TableRef, + ColumnRef, + RowId, + Data, + } + + public class WixCustomTableCellSymbol : IntermediateSymbol + { + public WixCustomTableCellSymbol() : base(SymbolDefinitions.WixCustomTableCell, null, null) + { + } + + public WixCustomTableCellSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableCell, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableCellSymbolFields index] => this.Fields[(int)index]; + + public string TableRef + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.TableRef]; + set => this.Set((int)WixCustomTableCellSymbolFields.TableRef, value); + } + + public string ColumnRef + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.ColumnRef]; + set => this.Set((int)WixCustomTableCellSymbolFields.ColumnRef, value); + } + + public string RowId + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.RowId]; + set => this.Set((int)WixCustomTableCellSymbolFields.RowId, value); + } + + public string Data + { + get => (string)this.Fields[(int)WixCustomTableCellSymbolFields.Data]; + set => this.Set((int)WixCustomTableCellSymbolFields.Data, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs new file mode 100644 index 00000000..9ae2a904 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixCustomTableColumnSymbol.cs @@ -0,0 +1,203 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixCustomTableColumn = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTableColumn, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.TableRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Type), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Width), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MinValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.MaxValue), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.KeyColumn), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Category), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Set), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Description), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableColumnSymbolFields.Modularize), IntermediateFieldType.Number) + }, + typeof(WixCustomTableColumnSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixCustomTableColumnSymbolFields + { + TableRef, + Name, + Type, + Attributes, + Width, + MinValue, + MaxValue, + KeyTable, + KeyColumn, + Category, + Set, + Description, + Modularize, + } + + [Flags] + public enum WixCustomTableColumnSymbolAttributes + { + None = 0x0, + PrimaryKey = 0x1, + Localizable = 0x2, + Nullable = 0x4, + Unreal = 0x8, + } + + public enum WixCustomTableColumnCategoryType + { + Text, + UpperCase, + LowerCase, + Integer, + DoubleInteger, + TimeDate, + Identifier, + Property, + Filename, + WildCardFilename, + Path, + Paths, + AnyPath, + DefaultDir, + RegPath, + Formatted, + FormattedSddl, + Template, + Condition, + Guid, + Version, + Language, + Binary, + CustomSource, + Cabinet, + Shortcut, + } + + public enum WixCustomTableColumnModularizeType + { + None, + Column, + CompanionFile, + Condition, + ControlEventArgument, + ControlText, + Icon, + Property, + SemicolonDelimited, + } + + public class WixCustomTableColumnSymbol : IntermediateSymbol + { + public WixCustomTableColumnSymbol() : base(SymbolDefinitions.WixCustomTableColumn, null, null) + { + } + + public WixCustomTableColumnSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTableColumn, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableColumnSymbolFields index] => this.Fields[(int)index]; + + public string TableRef + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.TableRef]; + set => this.Set((int)WixCustomTableColumnSymbolFields.TableRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Name]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Name, value); + } + + public IntermediateFieldType Type + { + get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnSymbolFields.Type].AsNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Type, (int)value); + } + + public WixCustomTableColumnSymbolAttributes Attributes + { + get => (WixCustomTableColumnSymbolAttributes)this.Fields[(int)WixCustomTableColumnSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Attributes, (int)value); + } + + public int Width + { + get => (int)this.Fields[(int)WixCustomTableColumnSymbolFields.Width]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Width, value); + } + + public long? MinValue + { + get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MinValue]; + set => this.Set((int)WixCustomTableColumnSymbolFields.MinValue, value); + } + + public long? MaxValue + { + get => (long?)this.Fields[(int)WixCustomTableColumnSymbolFields.MaxValue]; + set => this.Set((int)WixCustomTableColumnSymbolFields.MaxValue, value); + } + + public string KeyTable + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyTable]; + set => this.Set((int)WixCustomTableColumnSymbolFields.KeyTable, value); + } + + public int? KeyColumn + { + get => (int?)this.Fields[(int)WixCustomTableColumnSymbolFields.KeyColumn]; + set => this.Set((int)WixCustomTableColumnSymbolFields.KeyColumn, value); + } + + public WixCustomTableColumnCategoryType? Category + { + get => (WixCustomTableColumnCategoryType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Category].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Category, (int?)value); + } + + public string Set + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Set]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Set, value); + } + + public string Description + { + get => (string)this.Fields[(int)WixCustomTableColumnSymbolFields.Description]; + set => this.Set((int)WixCustomTableColumnSymbolFields.Description, value); + } + + public WixCustomTableColumnModularizeType? Modularize + { + get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnSymbolFields.Modularize].AsNullableNumber(); + set => this.Set((int)WixCustomTableColumnSymbolFields.Modularize, (int?)value); + } + + public bool PrimaryKey => (this.Attributes & WixCustomTableColumnSymbolAttributes.PrimaryKey) == WixCustomTableColumnSymbolAttributes.PrimaryKey; + + public bool Localizable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Localizable) == WixCustomTableColumnSymbolAttributes.Localizable; + + public bool Nullable => (this.Attributes & WixCustomTableColumnSymbolAttributes.Nullable) == WixCustomTableColumnSymbolAttributes.Nullable; + + public bool Unreal => (this.Attributes & WixCustomTableColumnSymbolAttributes.Unreal) == WixCustomTableColumnSymbolAttributes.Unreal; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixCustomTableSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixCustomTableSymbol.cs new file mode 100644 index 00000000..af731443 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixCustomTableSymbol.cs @@ -0,0 +1,56 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixCustomTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixCustomTable, + new[] + { + new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.ColumnNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixCustomTableSymbolFields.Unreal), IntermediateFieldType.Bool), + }, + typeof(WixCustomTableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixCustomTableSymbolFields + { + ColumnNames, + Unreal, + } + + public class WixCustomTableSymbol : IntermediateSymbol + { + public const char ColumnNamesSeparator = '\x85'; + + public WixCustomTableSymbol() : base(SymbolDefinitions.WixCustomTable, null, null) + { + } + + public WixCustomTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixCustomTable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixCustomTableSymbolFields index] => this.Fields[(int)index]; + + public string ColumnNames + { + get => (string)this.Fields[(int)WixCustomTableSymbolFields.ColumnNames]; + set => this.Set((int)WixCustomTableSymbolFields.ColumnNames, value); + } + + public bool Unreal + { + get => (bool)this.Fields[(int)WixCustomTableSymbolFields.Unreal]; + set => this.Set((int)WixCustomTableSymbolFields.Unreal, value); + } + + public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs new file mode 100644 index 00000000..77203b03 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchFileSymbol.cs @@ -0,0 +1,84 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDeltaPatchFile = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDeltaPatchFile, + new[] + { + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.IgnoreLengths), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.RetainOffsets), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchFileSymbolFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(WixDeltaPatchFileSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixDeltaPatchFileSymbolFields + { + FileRef, + RetainLengths, + IgnoreOffsets, + IgnoreLengths, + RetainOffsets, + SymbolPaths, + } + + public class WixDeltaPatchFileSymbol : IntermediateSymbol + { + public WixDeltaPatchFileSymbol() : base(SymbolDefinitions.WixDeltaPatchFile, null, null) + { + } + + public WixDeltaPatchFileSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchFile, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDeltaPatchFileSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.FileRef]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.FileRef, value); + } + + public string RetainLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainLengths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainLengths, value); + } + + public string IgnoreOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreOffsets]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreOffsets, value); + } + + public string IgnoreLengths + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.IgnoreLengths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.IgnoreLengths, value); + } + + public string RetainOffsets + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.RetainOffsets]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.RetainOffsets, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)WixDeltaPatchFileSymbolFields.SymbolPaths]; + set => this.Set((int)WixDeltaPatchFileSymbolFields.SymbolPaths, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs new file mode 100644 index 00000000..20f30da4 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixDeltaPatchSymbolPathsSymbol.cs @@ -0,0 +1,73 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDeltaPatchSymbolPaths = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDeltaPatchSymbolPaths, + new[] + { + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths), IntermediateFieldType.String), + }, + typeof(WixDeltaPatchSymbolPathsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixDeltaPatchSymbolPathsSymbolFields + { + SymbolType, + SymbolId, + SymbolPaths, + } + + /// + /// The types that the WixDeltaPatchSymbolPaths table can hold. + /// + /// The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type. + public enum SymbolPathType + { + File, + Component, + Directory, + Media, + Product + }; + + public class WixDeltaPatchSymbolPathsSymbol : IntermediateSymbol + { + public WixDeltaPatchSymbolPathsSymbol() : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, null, null) + { + } + + public WixDeltaPatchSymbolPathsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDeltaPatchSymbolPathsSymbolFields index] => this.Fields[(int)index]; + + public SymbolPathType SymbolType + { + get => (SymbolPathType)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType].AsNumber(); + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolType, (int)value); + } + + public string SymbolId + { + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId]; + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolId, value); + } + + public string SymbolPaths + { + get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths]; + set => this.Set((int)WixDeltaPatchSymbolPathsSymbolFields.SymbolPaths, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs new file mode 100644 index 00000000..0212bfab --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs @@ -0,0 +1,90 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDependencyProvider = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDependencyProvider, + new[] + { + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ParentRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixDependencyProviderSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + using WixToolset.Data; + + public enum WixDependencyProviderSymbolFields + { + ParentRef, + ProviderKey, + Version, + DisplayName, + Attributes, + } + + [Flags] + public enum WixDependencyProviderAttributes + { + ProvidesAttributesBundle = 0x10000, + ProvidesAttributesImported = 0x20000 + } + + public class WixDependencyProviderSymbol : IntermediateSymbol + { + public WixDependencyProviderSymbol() : base(SymbolDefinitions.WixDependencyProvider, null, null) + { + } + + public WixDependencyProviderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyProvider, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index]; + + public string ParentRef + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.ParentRef].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.ParentRef, value); + } + + public string ProviderKey + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.ProviderKey].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.ProviderKey, value); + } + + public string Version + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.Version].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.Version, value); + } + + public string DisplayName + { + get => this.Fields[(int)WixDependencyProviderSymbolFields.DisplayName].AsString(); + set => this.Set((int)WixDependencyProviderSymbolFields.DisplayName, value); + } + + public WixDependencyProviderAttributes Attributes + { + get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderSymbolFields.Attributes]; + set => this.Set((int)WixDependencyProviderSymbolFields.Attributes, (int)value); + } + + public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle; + + public bool Imported => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesImported) == WixDependencyProviderAttributes.ProvidesAttributesImported; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs new file mode 100644 index 00000000..d6076d57 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixDependencyRefSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDependencyRef = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDependencyRef, + new[] + { + new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyProviderRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencyRefSymbolFields.WixDependencyRef), IntermediateFieldType.String), + }, + typeof(WixDependencyRefSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixDependencyRefSymbolFields + { + WixDependencyProviderRef, + WixDependencyRef, + } + + public class WixDependencyRefSymbol : IntermediateSymbol + { + public WixDependencyRefSymbol() : base(SymbolDefinitions.WixDependencyRef, null, null) + { + } + + public WixDependencyRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyRef, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDependencyRefSymbolFields index] => this.Fields[(int)index]; + + public string WixDependencyProviderRef + { + get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyProviderRef].AsString(); + set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyProviderRef, value); + } + + public string WixDependencyRef + { + get => this.Fields[(int)WixDependencyRefSymbolFields.WixDependencyRef].AsString(); + set => this.Set((int)WixDependencyRefSymbolFields.WixDependencyRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixDependencySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixDependencySymbol.cs new file mode 100644 index 00000000..840331bb --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixDependencySymbol.cs @@ -0,0 +1,82 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixDependency = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixDependency, + new[] + { + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.ProviderKey), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixDependencySymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixDependencySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixDependencySymbolFields + { + ProviderKey, + MinVersion, + MaxVersion, + Attributes, + } + + [Flags] + public enum WixDependencySymbolAttributes : int + { + None = 0x0, + RequiresAttributesMinVersionInclusive = 0x100, + RequiresAttributesMaxVersionInclusive = 0x200, + } + + public class WixDependencySymbol : IntermediateSymbol + { + public WixDependencySymbol() : base(SymbolDefinitions.WixDependency, null, null) + { + } + + public WixDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependency, sourceLineNumber, id) + { + } + + public IntermediateField this[WixDependencySymbolFields index] => this.Fields[(int)index]; + + public string ProviderKey + { + get => this.Fields[(int)WixDependencySymbolFields.ProviderKey].AsString(); + set => this.Set((int)WixDependencySymbolFields.ProviderKey, value); + } + + public string MinVersion + { + get => this.Fields[(int)WixDependencySymbolFields.MinVersion].AsString(); + set => this.Set((int)WixDependencySymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => this.Fields[(int)WixDependencySymbolFields.MaxVersion].AsString(); + set => this.Set((int)WixDependencySymbolFields.MaxVersion, value); + } + + public WixDependencySymbolAttributes Attributes + { + get => (WixDependencySymbolAttributes)this.Fields[(int)WixDependencySymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixDependencySymbolFields.Attributes, (int)value); + } + + public bool RequiresAttributesMinVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMinVersionInclusive; + + public bool RequiresAttributesMaxVersionInclusive => (this.Attributes & WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive) == WixDependencySymbolAttributes.RequiresAttributesMaxVersionInclusive; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs new file mode 100644 index 00000000..d13063b7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixEnsureTableSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixEnsureTable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixEnsureTable, + new[] + { + new IntermediateFieldDefinition(nameof(WixEnsureTableSymbolFields.Table), IntermediateFieldType.String), + }, + typeof(WixEnsureTableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixEnsureTableSymbolFields + { + Table, + } + + public class WixEnsureTableSymbol : IntermediateSymbol + { + public WixEnsureTableSymbol() : base(SymbolDefinitions.WixEnsureTable, null, null) + { + } + + public WixEnsureTableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixEnsureTable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixEnsureTableSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixEnsureTableSymbolFields.Table]; + set => this.Set((int)WixEnsureTableSymbolFields.Table, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs new file mode 100644 index 00000000..ac002bb6 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixFeatureGroupSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFeatureGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFeatureGroup, + new IntermediateFieldDefinition[] + { + }, + typeof(WixFeatureGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixFeatureGroupSymbolFields + { + } + + public class WixFeatureGroupSymbol : IntermediateSymbol + { + public WixFeatureGroupSymbol() : base(SymbolDefinitions.WixFeatureGroup, null, null) + { + } + + public WixFeatureGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFeatureGroupSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs new file mode 100644 index 00000000..b8b3d4b9 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixFeatureModulesSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFeatureModules = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFeatureModules, + new[] + { + new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.FeatureRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFeatureModulesSymbolFields.WixMergeRef), IntermediateFieldType.String), + }, + typeof(WixFeatureModulesSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixFeatureModulesSymbolFields + { + FeatureRef, + WixMergeRef, + } + + public class WixFeatureModulesSymbol : IntermediateSymbol + { + public WixFeatureModulesSymbol() : base(SymbolDefinitions.WixFeatureModules, null, null) + { + } + + public WixFeatureModulesSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFeatureModules, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFeatureModulesSymbolFields index] => this.Fields[(int)index]; + + public string FeatureRef + { + get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.FeatureRef]; + set => this.Set((int)WixFeatureModulesSymbolFields.FeatureRef, value); + } + + public string WixMergeRef + { + get => (string)this.Fields[(int)WixFeatureModulesSymbolFields.WixMergeRef]; + set => this.Set((int)WixFeatureModulesSymbolFields.WixMergeRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixFileSearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixFileSearchSymbol.cs new file mode 100644 index 00000000..027605c7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixFileSearchSymbol.cs @@ -0,0 +1,125 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFileSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFileSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Path), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxVersion), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MinDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.MaxDate), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Languages), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixFileSearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixFileSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixFileSearchSymbolFields + { + Path, + MinVersion, + MaxVersion, + MinSize, + MaxSize, + MinDate, + MaxDate, + Languages, + Attributes, + } + + [Flags] + public enum WixFileSearchAttributes + { + Default = 0x001, + MinVersionInclusive = 0x002, + MaxVersionInclusive = 0x004, + MinSizeInclusive = 0x008, + MaxSizeInclusive = 0x010, + MinDateInclusive = 0x020, + MaxDateInclusive = 0x040, + WantVersion = 0x080, + WantExists = 0x100, + IsDirectory = 0x200, + } + + public class WixFileSearchSymbol : IntermediateSymbol + { + public WixFileSearchSymbol() : base(SymbolDefinitions.WixFileSearch, null, null) + { + } + + public WixFileSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFileSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFileSearchSymbolFields index] => this.Fields[(int)index]; + + public string Path + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.Path]; + set => this.Set((int)WixFileSearchSymbolFields.Path, value); + } + + public string MinVersion + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.MinVersion]; + set => this.Set((int)WixFileSearchSymbolFields.MinVersion, value); + } + + public string MaxVersion + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.MaxVersion]; + set => this.Set((int)WixFileSearchSymbolFields.MaxVersion, value); + } + + public int? MinSize + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinSize]; + set => this.Set((int)WixFileSearchSymbolFields.MinSize, value); + } + + public int? MaxSize + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxSize]; + set => this.Set((int)WixFileSearchSymbolFields.MaxSize, value); + } + + public int? MinDate + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MinDate]; + set => this.Set((int)WixFileSearchSymbolFields.MinDate, value); + } + + public int? MaxDate + { + get => (int?)this.Fields[(int)WixFileSearchSymbolFields.MaxDate]; + set => this.Set((int)WixFileSearchSymbolFields.MaxDate, value); + } + + public string Languages + { + get => (string)this.Fields[(int)WixFileSearchSymbolFields.Languages]; + set => this.Set((int)WixFileSearchSymbolFields.Languages, value); + } + + public WixFileSearchAttributes Attributes + { + get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixFileSearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixFragmentSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixFragmentSymbol.cs new file mode 100644 index 00000000..9c31b79c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixFragmentSymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixFragment = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixFragment, + new IntermediateFieldDefinition[] + { + }, + typeof(WixFragmentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixFragmentSymbolFields + { + } + + public class WixFragmentSymbol : IntermediateSymbol + { + public WixFragmentSymbol() : base(SymbolDefinitions.WixFragment, null, null) + { + } + + public WixFragmentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixFragment, sourceLineNumber, id) + { + } + + public IntermediateField this[WixFragmentSymbolFields index] => this.Fields[(int)index]; + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixGroupSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixGroupSymbol.cs new file mode 100644 index 00000000..f8adf78d --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixGroupSymbol.cs @@ -0,0 +1,71 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ParentType), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixGroupSymbolFields.ChildType), IntermediateFieldType.Number), + }, + typeof(WixGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System.Diagnostics; + + public enum WixGroupSymbolFields + { + ParentId, + ParentType, + ChildId, + ChildType, + } + + [DebuggerDisplay("WixGroupSymbol {ParentType} {ParentId,nq} -> {ChildType} {ChildId,nq}")] + public class WixGroupSymbol : IntermediateSymbol + { + public WixGroupSymbol() : base(SymbolDefinitions.WixGroup, null, null) + { + } + + public WixGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixGroupSymbolFields index] => this.Fields[(int)index]; + + public string ParentId + { + get => (string)this.Fields[(int)WixGroupSymbolFields.ParentId]; + set => this.Set((int)WixGroupSymbolFields.ParentId, value); + } + + public ComplexReferenceParentType ParentType + { + get => (ComplexReferenceParentType)this.Fields[(int)WixGroupSymbolFields.ParentType].AsNumber(); + set => this.Set((int)WixGroupSymbolFields.ParentType, (int)value); + } + + public string ChildId + { + get => (string)this.Fields[(int)WixGroupSymbolFields.ChildId]; + set => this.Set((int)WixGroupSymbolFields.ChildId, value); + } + + public ComplexReferenceChildType ChildType + { + get => (ComplexReferenceChildType)this.Fields[(int)WixGroupSymbolFields.ChildType].AsNumber(); + set => this.Set((int)WixGroupSymbolFields.ChildType, (int)value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs new file mode 100644 index 00000000..c9e4470c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixInstanceComponentSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixInstanceComponent = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixInstanceComponent, + new[] + { + new IntermediateFieldDefinition(nameof(WixInstanceComponentSymbolFields.ComponentRef), IntermediateFieldType.String), + }, + typeof(WixInstanceComponentSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixInstanceComponentSymbolFields + { + ComponentRef, + } + + public class WixInstanceComponentSymbol : IntermediateSymbol + { + public WixInstanceComponentSymbol() : base(SymbolDefinitions.WixInstanceComponent, null, null) + { + } + + public WixInstanceComponentSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceComponent, sourceLineNumber, id) + { + } + + public IntermediateField this[WixInstanceComponentSymbolFields index] => this.Fields[(int)index]; + + public string ComponentRef + { + get => (string)this.Fields[(int)WixInstanceComponentSymbolFields.ComponentRef]; + set => this.Set((int)WixInstanceComponentSymbolFields.ComponentRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs new file mode 100644 index 00000000..3a58cb31 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixInstanceTransformsSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixInstanceTransforms = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixInstanceTransforms, + new[] + { + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.PropertyId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.ProductName), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixInstanceTransformsSymbolFields.UpgradeCode), IntermediateFieldType.String), + }, + typeof(WixInstanceTransformsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixInstanceTransformsSymbolFields + { + PropertyId, + ProductCode, + ProductName, + UpgradeCode, + } + + public class WixInstanceTransformsSymbol : IntermediateSymbol + { + public WixInstanceTransformsSymbol() : base(SymbolDefinitions.WixInstanceTransforms, null, null) + { + } + + public WixInstanceTransformsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixInstanceTransforms, sourceLineNumber, id) + { + } + + public IntermediateField this[WixInstanceTransformsSymbolFields index] => this.Fields[(int)index]; + + public string PropertyId + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.PropertyId]; + set => this.Set((int)WixInstanceTransformsSymbolFields.PropertyId, value); + } + + public string ProductCode + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductCode]; + set => this.Set((int)WixInstanceTransformsSymbolFields.ProductCode, value); + } + + public string ProductName + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.ProductName]; + set => this.Set((int)WixInstanceTransformsSymbolFields.ProductName, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixInstanceTransformsSymbolFields.UpgradeCode]; + set => this.Set((int)WixInstanceTransformsSymbolFields.UpgradeCode, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs new file mode 100644 index 00000000..28695b3e --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixMediaTemplateSymbol.cs @@ -0,0 +1,86 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixMediaTemplate = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixMediaTemplate, + new[] + { + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CabinetTemplate), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.CompressionLevel), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.DiskPrompt), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.VolumeLabel), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), + }, + typeof(WixMediaTemplateSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixMediaTemplateSymbolFields + { + CabinetTemplate, + CompressionLevel, + DiskPrompt, + VolumeLabel, + MaximumUncompressedMediaSize, + MaximumCabinetSizeForLargeFileSplitting, + } + + public class WixMediaTemplateSymbol : IntermediateSymbol + { + public WixMediaTemplateSymbol() : base(SymbolDefinitions.WixMediaTemplate, null, null) + { + } + + public WixMediaTemplateSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMediaTemplate, sourceLineNumber, id) + { + } + + public IntermediateField this[WixMediaTemplateSymbolFields index] => this.Fields[(int)index]; + + public string CabinetTemplate + { + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.CabinetTemplate]; + set => this.Set((int)WixMediaTemplateSymbolFields.CabinetTemplate, value); + } + + public CompressionLevel? CompressionLevel + { + get => (CompressionLevel?)this.Fields[(int)WixMediaTemplateSymbolFields.CompressionLevel].AsNullableNumber(); + set => this.Set((int)WixMediaTemplateSymbolFields.CompressionLevel, (int?)value); + } + + public string DiskPrompt + { + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.DiskPrompt]; + set => this.Set((int)WixMediaTemplateSymbolFields.DiskPrompt, value); + } + + public string VolumeLabel + { + get => (string)this.Fields[(int)WixMediaTemplateSymbolFields.VolumeLabel]; + set => this.Set((int)WixMediaTemplateSymbolFields.VolumeLabel, value); + } + + public int? MaximumUncompressedMediaSize + { + get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize]; + set => this.Set((int)WixMediaTemplateSymbolFields.MaximumUncompressedMediaSize, value); + } + + public int? MaximumCabinetSizeForLargeFileSplitting + { + get => (int?)this.Fields[(int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting]; + set => this.Set((int)WixMediaTemplateSymbolFields.MaximumCabinetSizeForLargeFileSplitting, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixMergeSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixMergeSymbol.cs new file mode 100644 index 00000000..d066fa8e --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixMergeSymbol.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixMerge = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixMerge, + new[] + { + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DirectoryRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.SourceFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FileAttributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.ConfigurationData), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixMergeSymbolFields.FeatureRef), IntermediateFieldType.String), + }, + typeof(WixMergeSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixMergeSymbolFields + { + Language, + DirectoryRef, + SourceFile, + DiskId, + FileAttributes, + ConfigurationData, + FeatureRef, + } + + public class WixMergeSymbol : IntermediateSymbol + { + public WixMergeSymbol() : base(SymbolDefinitions.WixMerge, null, null) + { + } + + public WixMergeSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixMerge, sourceLineNumber, id) + { + } + + public IntermediateField this[WixMergeSymbolFields index] => this.Fields[(int)index]; + + public int Language + { + get => (int)this.Fields[(int)WixMergeSymbolFields.Language]; + set => this.Set((int)WixMergeSymbolFields.Language, value); + } + + public string DirectoryRef + { + get => (string)this.Fields[(int)WixMergeSymbolFields.DirectoryRef]; + set => this.Set((int)WixMergeSymbolFields.DirectoryRef, value); + } + + public string SourceFile + { + get => (string)this.Fields[(int)WixMergeSymbolFields.SourceFile]; + set => this.Set((int)WixMergeSymbolFields.SourceFile, value); + } + + public int DiskId + { + get => (int)this.Fields[(int)WixMergeSymbolFields.DiskId]; + set => this.Set((int)WixMergeSymbolFields.DiskId, value); + } + + public FileSymbolAttributes FileAttributes + { + get => (FileSymbolAttributes)this.Fields[(int)WixMergeSymbolFields.FileAttributes].AsNumber(); + set => this.Set((int)WixMergeSymbolFields.FileAttributes, (int)value); + } + + public string ConfigurationData + { + get => (string)this.Fields[(int)WixMergeSymbolFields.ConfigurationData]; + set => this.Set((int)WixMergeSymbolFields.ConfigurationData, value); + } + + public string FeatureRef + { + get => (string)this.Fields[(int)WixMergeSymbolFields.FeatureRef]; + set => this.Set((int)WixMergeSymbolFields.FeatureRef, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixModuleSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixModuleSymbol.cs new file mode 100644 index 00000000..fbb16764 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixModuleSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixModule = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixModule, + new[] + { + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.ModuleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixModuleSymbolFields.Codepage), IntermediateFieldType.String), + }, + typeof(WixModuleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixModuleSymbolFields + { + ModuleId, + Language, + Version, + Codepage, + } + + public class WixModuleSymbol : IntermediateSymbol + { + public WixModuleSymbol() : base(SymbolDefinitions.WixModule, null, null) + { + } + + public WixModuleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixModule, sourceLineNumber, id) + { + } + + public IntermediateField this[WixModuleSymbolFields index] => this.Fields[(int)index]; + + public string ModuleId + { + get => (string)this.Fields[(int)WixModuleSymbolFields.ModuleId]; + set => this.Set((int)WixModuleSymbolFields.ModuleId, value); + } + + public string Language + { + get => (string)this.Fields[(int)WixModuleSymbolFields.Language]; + set => this.Set((int)WixModuleSymbolFields.Language, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixModuleSymbolFields.Version]; + set => this.Set((int)WixModuleSymbolFields.Version, value); + } + + public string Codepage + { + get => (string)this.Fields[(int)WixModuleSymbolFields.Codepage]; + set => this.Set((int)WixModuleSymbolFields.Codepage, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixOrderingSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixOrderingSymbol.cs new file mode 100644 index 00000000..5e6dc980 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixOrderingSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixOrdering = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixOrdering, + new[] + { + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.ItemIdRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixOrderingSymbolFields.DependsOnIdRef), IntermediateFieldType.String), + }, + typeof(WixOrderingSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixOrderingSymbolFields + { + ItemType, + ItemIdRef, + DependsOnType, + DependsOnIdRef, + } + + public class WixOrderingSymbol : IntermediateSymbol + { + public WixOrderingSymbol() : base(SymbolDefinitions.WixOrdering, null, null) + { + } + + public WixOrderingSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixOrdering, sourceLineNumber, id) + { + } + + public IntermediateField this[WixOrderingSymbolFields index] => this.Fields[(int)index]; + + public ComplexReferenceChildType ItemType + { + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.ItemType].AsNumber(); + set => this.Set((int)WixOrderingSymbolFields.ItemType, (int)value); + } + + public string ItemIdRef + { + get => (string)this.Fields[(int)WixOrderingSymbolFields.ItemIdRef]; + set => this.Set((int)WixOrderingSymbolFields.ItemIdRef, value); + } + + public ComplexReferenceChildType DependsOnType + { + get => (ComplexReferenceChildType)this.Fields[(int)WixOrderingSymbolFields.DependsOnType].AsNumber(); + set => this.Set((int)WixOrderingSymbolFields.DependsOnType, (int)value); + } + + public string DependsOnIdRef + { + get => (string)this.Fields[(int)WixOrderingSymbolFields.DependsOnIdRef]; + set => this.Set((int)WixOrderingSymbolFields.DependsOnIdRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs new file mode 100644 index 00000000..e1720033 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs @@ -0,0 +1,111 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPackage = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPackage, + new[] + { + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.PackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.UpgradeCode), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Language), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Version), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Attributes), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Codepage), IntermediateFieldType.String), + }, + typeof(WixPackageSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixPackageSymbolFields + { + PackageId, + UpgradeCode, + Name, + Language, + Version, + Manufacturer, + Attributes, + Codepage, + } + + [Flags] + public enum WixPackageAttributes + { + None = 0x0, + PerMachine = 0x1, + } + + public class WixPackageSymbol : IntermediateSymbol + { + public WixPackageSymbol() : base(SymbolDefinitions.WixPackage, null, null) + { + } + + public WixPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPackage, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPackageSymbolFields index] => this.Fields[(int)index]; + + public string PackageId + { + get => (string)this.Fields[(int)WixPackageSymbolFields.PackageId]; + set => this.Set((int)WixPackageSymbolFields.PackageId, value); + } + + public string UpgradeCode + { + get => (string)this.Fields[(int)WixPackageSymbolFields.UpgradeCode]; + set => this.Set((int)WixPackageSymbolFields.UpgradeCode, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Name]; + set => this.Set((int)WixPackageSymbolFields.Name, value); + } + + public string Language + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Language]; + set => this.Set((int)WixPackageSymbolFields.Language, value); + } + + public string Version + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Version]; + set => this.Set((int)WixPackageSymbolFields.Version, value); + } + + public string Manufacturer + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Manufacturer]; + set => this.Set((int)WixPackageSymbolFields.Manufacturer, value); + } + + public WixPackageAttributes Attributes + { + get => (WixPackageAttributes)this.Fields[(int)WixPackageSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixPackageSymbolFields.Attributes, (int)value); + } + + public string Codepage + { + get => (string)this.Fields[(int)WixPackageSymbolFields.Codepage]; + set => this.Set((int)WixPackageSymbolFields.Codepage, value); + } + + public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs new file mode 100644 index 00000000..d7295424 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixPatchBaselineSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchBaseline = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchBaseline, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.DiskId), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.ValidationFlags), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.BaselineFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.UpdateFile), IntermediateFieldType.Path), + new IntermediateFieldDefinition(nameof(WixPatchBaselineSymbolFields.TransformFile), IntermediateFieldType.Path), + }, + typeof(WixPatchBaselineSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchBaselineSymbolFields + { + DiskId, + ValidationFlags, + BaselineFile, + UpdateFile, + TransformFile, + } + + public class WixPatchBaselineSymbol : IntermediateSymbol + { + public WixPatchBaselineSymbol() : base(SymbolDefinitions.WixPatchBaseline, null, null) + { + } + + public WixPatchBaselineSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchBaseline, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchBaselineSymbolFields index] => this.Fields[(int)index]; + + public int DiskId + { + get => (int)this.Fields[(int)WixPatchBaselineSymbolFields.DiskId]; + set => this.Set((int)WixPatchBaselineSymbolFields.DiskId, value); + } + + public TransformFlags ValidationFlags + { + get => (TransformFlags)this.Fields[(int)WixPatchBaselineSymbolFields.ValidationFlags].AsNumber(); + set => this.Set((int)WixPatchBaselineSymbolFields.ValidationFlags, (int)value); + } + + public IntermediateFieldPathValue BaselineFile + { + get => this.Fields[(int)WixPatchBaselineSymbolFields.BaselineFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.BaselineFile, value); + } + + public IntermediateFieldPathValue UpdateFile + { + get => this.Fields[(int)WixPatchBaselineSymbolFields.UpdateFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.UpdateFile, value); + } + + public IntermediateFieldPathValue TransformFile + { + get => this.Fields[(int)WixPatchBaselineSymbolFields.TransformFile].AsPath(); + set => this.Set((int)WixPatchBaselineSymbolFields.TransformFile, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs new file mode 100644 index 00000000..3ab34f1f --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixPatchFamilyGroupSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchFamilyGroup = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchFamilyGroup, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup), IntermediateFieldType.String), + }, + typeof(WixPatchFamilyGroupSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchFamilyGroupSymbolFields + { + WixPatchFamilyGroup, + } + + public class WixPatchFamilyGroupSymbol : IntermediateSymbol + { + public WixPatchFamilyGroupSymbol() : base(SymbolDefinitions.WixPatchFamilyGroup, null, null) + { + } + + public WixPatchFamilyGroupSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchFamilyGroupSymbolFields index] => this.Fields[(int)index]; + + public string WixPatchFamilyGroup + { + get => (string)this.Fields[(int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup]; + set => this.Set((int)WixPatchFamilyGroupSymbolFields.WixPatchFamilyGroup, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPatchRefSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPatchRefSymbol.cs new file mode 100644 index 00000000..66257d84 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixPatchRefSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchRef = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchRef, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchRefSymbolFields.PrimaryKeys), IntermediateFieldType.String), + }, + typeof(WixPatchRefSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchRefSymbolFields + { + Table, + PrimaryKeys, + } + + public class WixPatchRefSymbol : IntermediateSymbol + { + public WixPatchRefSymbol() : base(SymbolDefinitions.WixPatchRef, null, null) + { + } + + public WixPatchRefSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchRef, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchRefSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixPatchRefSymbolFields.Table]; + set => this.Set((int)WixPatchRefSymbolFields.Table, value); + } + + public string PrimaryKeys + { + get => (string)this.Fields[(int)WixPatchRefSymbolFields.PrimaryKeys]; + set => this.Set((int)WixPatchRefSymbolFields.PrimaryKeys, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPatchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPatchSymbol.cs new file mode 100644 index 00000000..3f1f20bb --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixPatchSymbol.cs @@ -0,0 +1,98 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchId = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatch, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ClientPatchId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixPatchSymbolFields.Codepage), IntermediateFieldType.String), + }, + typeof(WixPatchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixPatchSymbolFields + { + ClientPatchId, + OptimizePatchSizeForLargeFiles, + ApiPatchingSymbolFlags, + Codepage, + } + + /// + /// The following flags are used with PATCH_OPTION_DATA SymbolOptionFlags: + /// + [Flags] + [CLSCompliant(false)] + public enum PatchSymbolFlags : uint + { + /// + /// Don't use imagehlp.dll + /// + PatchSymbolNoImagehlp = 0x00000001, + + /// + /// Don't fail patch due to imagehlp failures. + /// + PatchSymbolNoFailures = 0x00000002, + + /// + /// After matching decorated symbols, try to match remaining by undecorated names. + /// + PatchSymbolUndecoratedToo = 0x00000004, + + /// + /// (used internally) + /// + PatchSymbolReserved = 0x80000000, + } + + public class WixPatchSymbol : IntermediateSymbol + { + public WixPatchSymbol() : base(SymbolDefinitions.WixPatchId, null, null) + { + } + + public WixPatchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchId, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchSymbolFields index] => this.Fields[(int)index]; + + public string ClientPatchId + { + get => (string)this.Fields[(int)WixPatchSymbolFields.ClientPatchId]; + set => this.Set((int)WixPatchSymbolFields.ClientPatchId, value); + } + + public bool? OptimizePatchSizeForLargeFiles + { + get => (bool?)this.Fields[(int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles]; + set => this.Set((int)WixPatchSymbolFields.OptimizePatchSizeForLargeFiles, value); + } + + public int? ApiPatchingSymbolFlags + { + get => (int?)this.Fields[(int)WixPatchSymbolFields.ApiPatchingSymbolFlags]; + set => this.Set((int)WixPatchSymbolFields.ApiPatchingSymbolFlags, value); + } + + public string Codepage + { + get => (string)this.Fields[(int)WixPatchSymbolFields.Codepage]; + set => this.Set((int)WixPatchSymbolFields.Codepage, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs new file mode 100644 index 00000000..e8c01c26 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixPatchTargetSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixPatchTarget = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixPatchTarget, + new[] + { + new IntermediateFieldDefinition(nameof(WixPatchTargetSymbolFields.ProductCode), IntermediateFieldType.String), + }, + typeof(WixPatchTargetSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPatchTargetSymbolFields + { + ProductCode, + } + + public class WixPatchTargetSymbol : IntermediateSymbol + { + public WixPatchTargetSymbol() : base(SymbolDefinitions.WixPatchTarget, null, null) + { + } + + public WixPatchTargetSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPatchTarget, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPatchTargetSymbolFields index] => this.Fields[(int)index]; + + public string ProductCode + { + get => (string)this.Fields[(int)WixPatchTargetSymbolFields.ProductCode]; + set => this.Set((int)WixPatchTargetSymbolFields.ProductCode, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs new file mode 100644 index 00000000..f8a17b64 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs @@ -0,0 +1,64 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixProductSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProductSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Guid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductSearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixProductSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixProductSearchSymbolFields + { + Guid, + Attributes, + } + + [Flags] + public enum WixProductSearchAttributes + { + Version = 0x1, + Language = 0x2, + State = 0x4, + Assignment = 0x8, + UpgradeCode = 0x10, + } + + public class WixProductSearchSymbol : IntermediateSymbol + { + public WixProductSearchSymbol() : base(SymbolDefinitions.WixProductSearch, null, null) + { + } + + public WixProductSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixProductSearchSymbolFields index] => this.Fields[(int)index]; + + public string Guid + { + get => (string)this.Fields[(int)WixProductSearchSymbolFields.Guid]; + set => this.Set((int)WixProductSearchSymbolFields.Guid, value); + } + + public WixProductSearchAttributes Attributes + { + get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixProductSearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixProductTagSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixProductTagSymbol.cs new file mode 100644 index 00000000..a2f1ed11 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixProductTagSymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixProductTag = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProductTag, + new[] + { + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.FileRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Regid), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixProductTagSymbolFields.Attributes), IntermediateFieldType.Number) + }, + typeof(WixProductTagSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixProductTagSymbolFields + { + FileRef, + Regid, + Name, + Attributes + } + + public class WixProductTagSymbol : IntermediateSymbol + { + public WixProductTagSymbol() : base(SymbolDefinitions.WixProductTag, null, null) + { + } + + public WixProductTagSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProductTag, sourceLineNumber, id) + { + } + + public IntermediateField this[WixProductTagSymbolFields index] => this.Fields[(int)index]; + + public string FileRef + { + get => this.Fields[(int)WixProductTagSymbolFields.FileRef].AsString(); + set => this.Set((int)WixProductTagSymbolFields.FileRef, value); + } + + public string Regid + { + get => this.Fields[(int)WixProductTagSymbolFields.Regid].AsString(); + set => this.Set((int)WixProductTagSymbolFields.Regid, value); + } + + public string Name + { + get => this.Fields[(int)WixProductTagSymbolFields.Name].AsString(); + set => this.Set((int)WixProductTagSymbolFields.Name, value); + } + + public int Attributes + { + get => this.Fields[(int)WixProductTagSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixProductTagSymbolFields.Attributes, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPropertySymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPropertySymbol.cs new file mode 100644 index 00000000..17cf59ce --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixPropertySymbol.cs @@ -0,0 +1,68 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixProperty = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixProperty, + new[] + { + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.PropertyRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Admin), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Hidden), IntermediateFieldType.Bool), + new IntermediateFieldDefinition(nameof(WixPropertySymbolFields.Secure), IntermediateFieldType.Bool), + }, + typeof(WixPropertySymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixPropertySymbolFields + { + PropertyRef, + Admin, + Hidden, + Secure, + } + + public class WixPropertySymbol : IntermediateSymbol + { + public WixPropertySymbol() : base(SymbolDefinitions.WixProperty, null, null) + { + } + + public WixPropertySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixProperty, sourceLineNumber, id) + { + } + + public IntermediateField this[WixPropertySymbolFields index] => this.Fields[(int)index]; + + public string PropertyRef + { + get => (string)this.Fields[(int)WixPropertySymbolFields.PropertyRef]; + set => this.Set((int)WixPropertySymbolFields.PropertyRef, value); + } + + public bool Admin + { + get => (bool)this.Fields[(int)WixPropertySymbolFields.Admin]; + set => this.Set((int)WixPropertySymbolFields.Admin, value); + } + + public bool Hidden + { + get => (bool)this.Fields[(int)WixPropertySymbolFields.Hidden]; + set => this.Set((int)WixPropertySymbolFields.Hidden, value); + } + + public bool Secure + { + get => (bool)this.Fields[(int)WixPropertySymbolFields.Secure]; + set => this.Set((int)WixPropertySymbolFields.Secure, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs new file mode 100644 index 00000000..dffa8410 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixRegistrySearchSymbol.cs @@ -0,0 +1,81 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixRegistrySearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixRegistrySearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Root), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Key), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRegistrySearchSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixRegistrySearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixRegistrySearchSymbolFields + { + Root, + Key, + Value, + Attributes, + } + + [Flags] + public enum WixRegistrySearchAttributes + { + Raw = 0x01, + Compatible = 0x02, + ExpandEnvironmentVariables = 0x04, + WantValue = 0x08, + WantExists = 0x10, + Win64 = 0x20, + } + + public class WixRegistrySearchSymbol : IntermediateSymbol + { + public WixRegistrySearchSymbol() : base(SymbolDefinitions.WixRegistrySearch, null, null) + { + } + + public WixRegistrySearchSymbol(SourceLineNumber sourceLineNumber , Identifier id = null) : base(SymbolDefinitions.WixRegistrySearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixRegistrySearchSymbolFields index] => this.Fields[(int)index]; + + public RegistryRootType Root + { + get => (RegistryRootType)this.Fields[(int)WixRegistrySearchSymbolFields.Root].AsNumber(); + set => this.Set((int)WixRegistrySearchSymbolFields.Root, (int)value); + } + + public string Key + { + get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Key]; + set => this.Set((int)WixRegistrySearchSymbolFields.Key, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixRegistrySearchSymbolFields.Value]; + set => this.Set((int)WixRegistrySearchSymbolFields.Value, value); + } + + public WixRegistrySearchAttributes Attributes + { + get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixRegistrySearchSymbolFields.Attributes, (int)value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs new file mode 100644 index 00000000..dc544e29 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixRelatedBundleSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixRelatedBundle = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixRelatedBundle, + new[] + { + new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.BundleId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixRelatedBundleSymbolFields.Action), IntermediateFieldType.Number), + }, + typeof(WixRelatedBundleSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixRelatedBundleSymbolFields + { + BundleId, + Action, + } + + public enum RelatedBundleActionType + { + Detect, + Upgrade, + Addon, + Patch + } + + public class WixRelatedBundleSymbol : IntermediateSymbol + { + public WixRelatedBundleSymbol() : base(SymbolDefinitions.WixRelatedBundle, null, null) + { + } + + public WixRelatedBundleSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixRelatedBundle, sourceLineNumber, id) + { + } + + public IntermediateField this[WixRelatedBundleSymbolFields index] => this.Fields[(int)index]; + + public string BundleId + { + get => (string)this.Fields[(int)WixRelatedBundleSymbolFields.BundleId]; + set => this.Set((int)WixRelatedBundleSymbolFields.BundleId, value); + } + + public RelatedBundleActionType Action + { + get => (RelatedBundleActionType)this.Fields[(int)WixRelatedBundleSymbolFields.Action].AsNumber(); + set => this.Set((int)WixRelatedBundleSymbolFields.Action, (int)value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs new file mode 100644 index 00000000..6b47833a --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixSearchRelationSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSearchRelation = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSearchRelation, + new[] + { + new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.ParentSearchRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchRelationSymbolFields.Attributes), IntermediateFieldType.Number), + }, + typeof(WixSearchRelationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixSearchRelationSymbolFields + { + ParentSearchRef, + Attributes, + } + + public class WixSearchRelationSymbol : IntermediateSymbol + { + public WixSearchRelationSymbol() : base(SymbolDefinitions.WixSearchRelation, null, null) + { + } + + public WixSearchRelationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearchRelation, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSearchRelationSymbolFields index] => this.Fields[(int)index]; + + public string ParentSearchRef + { + get => (string)this.Fields[(int)WixSearchRelationSymbolFields.ParentSearchRef]; + set => this.Set((int)WixSearchRelationSymbolFields.ParentSearchRef, value); + } + + public int Attributes + { + get => (int)this.Fields[(int)WixSearchRelationSymbolFields.Attributes]; + set => this.Set((int)WixSearchRelationSymbolFields.Attributes, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixSearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixSearchSymbol.cs new file mode 100644 index 00000000..2d6a927c --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixSearchSymbol.cs @@ -0,0 +1,60 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSearch = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSearch, + new[] + { + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Variable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.Condition), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSearchSymbolFields.BundleExtensionRef), IntermediateFieldType.String), + }, + typeof(WixSearchSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixSearchSymbolFields + { + Variable, + Condition, + BundleExtensionRef, + } + + public class WixSearchSymbol : IntermediateSymbol + { + public WixSearchSymbol() : base(SymbolDefinitions.WixSearch, null, null) + { + } + + public WixSearchSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSearch, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSearchSymbolFields index] => this.Fields[(int)index]; + + public string Variable + { + get => (string)this.Fields[(int)WixSearchSymbolFields.Variable]; + set => this.Set((int)WixSearchSymbolFields.Variable, value); + } + + public string Condition + { + get => (string)this.Fields[(int)WixSearchSymbolFields.Condition]; + set => this.Set((int)WixSearchSymbolFields.Condition, value); + } + + public string BundleExtensionRef + { + get => (string)this.Fields[(int)WixSearchSymbolFields.BundleExtensionRef]; + set => this.Set((int)WixSearchSymbolFields.BundleExtensionRef, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixSetVariableSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixSetVariableSymbol.cs new file mode 100644 index 00000000..05fdf561 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixSetVariableSymbol.cs @@ -0,0 +1,54 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSetVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSetVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSetVariableSymbolFields.Type), IntermediateFieldType.String), + }, + typeof(WixSetVariableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixSetVariableSymbolFields + { + Value, + Type, + } + + public class WixSetVariableSymbol : IntermediateSymbol + { + public WixSetVariableSymbol() : base(SymbolDefinitions.WixSetVariable, null, null) + { + } + + public WixSetVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSetVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSetVariableSymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)WixSetVariableSymbolFields.Value]; + set => this.Set((int)WixSetVariableSymbolFields.Value, value); + } + + public WixBundleVariableType Type + { + get => Enum.TryParse((string)this.Fields[(int)WixSetVariableSymbolFields.Type], true, out WixBundleVariableType value) ? value : WixBundleVariableType.Unknown; + set => this.Set((int)WixSetVariableSymbolFields.Type, value.ToString().ToLowerInvariant()); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs new file mode 100644 index 00000000..86e410ff --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs @@ -0,0 +1,62 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSimpleReference = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSimpleReference, + new[] + { + new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.Table), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSimpleReferenceSymbolFields.PrimaryKeys), IntermediateFieldType.String), + }, + typeof(WixSimpleReferenceSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + using System.Diagnostics; + + public enum WixSimpleReferenceSymbolFields + { + Table, + PrimaryKeys, + } + + [DebuggerDisplay("Ref {SymbolicName,nq}")] + public class WixSimpleReferenceSymbol : IntermediateSymbol + { + public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) + { + } + + public WixSimpleReferenceSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSimpleReference, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSimpleReferenceSymbolFields index] => this.Fields[(int)index]; + + public string Table + { + get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.Table]; + set => this.Set((int)WixSimpleReferenceSymbolFields.Table, value); + } + + public string PrimaryKeys + { + get => (string)this.Fields[(int)WixSimpleReferenceSymbolFields.PrimaryKeys]; + set => this.Set((int)WixSimpleReferenceSymbolFields.PrimaryKeys, value); + } + + /// + /// Gets the symbolic name. + /// + /// Symbolic name. + public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs new file mode 100644 index 00000000..f99246f0 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixSuppressActionSymbol.cs @@ -0,0 +1,54 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSuppressAction = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSuppressAction, + new[] + { + new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.SequenceTable), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixSuppressActionSymbolFields.Action), IntermediateFieldType.String), + }, + typeof(WixSuppressActionSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + using System; + + public enum WixSuppressActionSymbolFields + { + SequenceTable, + Action, + } + + public class WixSuppressActionSymbol : IntermediateSymbol + { + public WixSuppressActionSymbol() : base(SymbolDefinitions.WixSuppressAction, null, null) + { + } + + public WixSuppressActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressAction, sourceLineNumber, id) + { + } + + public IntermediateField this[WixSuppressActionSymbolFields index] => this.Fields[(int)index]; + + public SequenceTable SequenceTable + { + get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixSuppressActionSymbolFields.SequenceTable]); + set => this.Set((int)WixSuppressActionSymbolFields.SequenceTable, value.ToString()); + } + + public string Action + { + get => (string)this.Fields[(int)WixSuppressActionSymbolFields.Action]; + set => this.Set((int)WixSuppressActionSymbolFields.Action, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs new file mode 100644 index 00000000..dca86820 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixSuppressModularizationSymbol.cs @@ -0,0 +1,44 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixSuppressModularization = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixSuppressModularization, + new IntermediateFieldDefinition[] + { + new IntermediateFieldDefinition(nameof(WixSuppressModularizationSymbolFields.SuppressIdentifier), IntermediateFieldType.String), + }, + typeof(WixSuppressModularizationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixSuppressModularizationSymbolFields + { + SuppressIdentifier, + } + + public class WixSuppressModularizationSymbol : IntermediateSymbol + { + public WixSuppressModularizationSymbol() : base(SymbolDefinitions.WixSuppressModularization, null, null) + { + } + + public WixSuppressModularizationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixSuppressModularization, sourceLineNumber, id) + { + } + + public string SuppressIdentifier + { + get => (string)this.Fields[(int)WixSuppressModularizationSymbolFields.SuppressIdentifier]; + set => this.Set((int)WixSuppressModularizationSymbolFields.SuppressIdentifier, value); + } + + public IntermediateField this[WixSuppressModularizationSymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixUISymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixUISymbol.cs new file mode 100644 index 00000000..f1254952 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixUISymbol.cs @@ -0,0 +1,36 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixUI = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixUI, + new IntermediateFieldDefinition[] + { + }, + typeof(WixUISymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixUISymbolFields + { + } + + public class WixUISymbol : IntermediateSymbol + { + public WixUISymbol() : base(SymbolDefinitions.WixUI, null, null) + { + } + + public WixUISymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUI, sourceLineNumber, id) + { + } + + public IntermediateField this[WixUISymbolFields index] => this.Fields[(int)index]; + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs new file mode 100644 index 00000000..1320dfd5 --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixUpdateRegistrationSymbol.cs @@ -0,0 +1,76 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixUpdateRegistration = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixUpdateRegistration, + new[] + { + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Manufacturer), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Department), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.ProductFamily), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Name), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixUpdateRegistrationSymbolFields.Classification), IntermediateFieldType.String), + }, + typeof(WixUpdateRegistrationSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixUpdateRegistrationSymbolFields + { + Manufacturer, + Department, + ProductFamily, + Name, + Classification, + } + + public class WixUpdateRegistrationSymbol : IntermediateSymbol + { + public WixUpdateRegistrationSymbol() : base(SymbolDefinitions.WixUpdateRegistration, null, null) + { + } + + public WixUpdateRegistrationSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixUpdateRegistration, sourceLineNumber, id) + { + } + + public IntermediateField this[WixUpdateRegistrationSymbolFields index] => this.Fields[(int)index]; + + public string Manufacturer + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Manufacturer]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Manufacturer, value); + } + + public string Department + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Department]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Department, value); + } + + public string ProductFamily + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.ProductFamily]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.ProductFamily, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Name]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Name, value); + } + + public string Classification + { + get => (string)this.Fields[(int)WixUpdateRegistrationSymbolFields.Classification]; + set => this.Set((int)WixUpdateRegistrationSymbolFields.Classification, value); + } + } +} \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/Symbols/WixVariableSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixVariableSymbol.cs new file mode 100644 index 00000000..0a56dcbf --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/WixVariableSymbol.cs @@ -0,0 +1,52 @@ +// 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. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition WixVariable = new IntermediateSymbolDefinition( + SymbolDefinitionType.WixVariable, + new[] + { + new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Value), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixVariableSymbolFields.Overridable), IntermediateFieldType.Bool), + }, + typeof(WixVariableSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum WixVariableSymbolFields + { + Value, + Overridable, + } + + public class WixVariableSymbol : IntermediateSymbol + { + public WixVariableSymbol() : base(SymbolDefinitions.WixVariable, null, null) + { + } + + public WixVariableSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixVariable, sourceLineNumber, id) + { + } + + public IntermediateField this[WixVariableSymbolFields index] => this.Fields[(int)index]; + + public string Value + { + get => (string)this.Fields[(int)WixVariableSymbolFields.Value]; + set => this.Set((int)WixVariableSymbolFields.Value, value); + } + + public bool Overridable + { + get => (bool)this.Fields[(int)WixVariableSymbolFields.Overridable]; + set => this.Set((int)WixVariableSymbolFields.Overridable, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/VerboseMessages.cs b/src/api/wix/WixToolset.Data/VerboseMessages.cs new file mode 100644 index 00000000..8342aa5e --- /dev/null +++ b/src/api/wix/WixToolset.Data/VerboseMessages.cs @@ -0,0 +1,234 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Resources; + + public static class VerboseMessages + { + public static Message BinderTempDirLocatedAt(string directory) + { + return Message(null, Ids.BinderTempDirLocatedAt, "Binder temporary directory located at '{0}'.", directory); + } + + public static Message BundleGuid(string bundleGuid) + { + return Message(null, Ids.BundleGuid, "Assigning bundle GUID '{0}'.", bundleGuid); + } + + public static Message CabFile(string fileId, string filePath) + { + return Message(null, Ids.CabFile, "Cabbing file {0} from '{1}'.", fileId, filePath); + } + + public static Message CabinetsSplitInParallel() + { + return Message(null, Ids.CabinetsSplitInParallel, "Multiple Cabinets with Large Files are splitting simultaneously. This current cabinet is waiting on a shared resource and splitting will resume when the other splitting has completed."); + } + + public static Message ConnectingMergeModule(string modulePath, string feature) + { + return Message(null, Ids.ConnectingMergeModule, "Connecting merge module '{0}' to feature '{1}'.", modulePath, feature); + } + + public static Message CopyFile(string sourceFile, string destinationFile) + { + return Message(null, Ids.CopyFile, "Copying file '{0}' to '{1}'.", sourceFile, destinationFile); + } + + public static Message CopyingExternalPayload(string payload, string outputDirectory) + { + return Message(null, Ids.CopyingExternalPayload, "Copying external payload from '{0}' to '{1}'.", payload, outputDirectory); + } + + public static Message CreateCabinet(string cabinet) + { + return Message(null, Ids.CreateCabinet, "Creating cabinet '{0}'.", cabinet); + } + + public static Message CreateDirectory(string directory) + { + return Message(null, Ids.CreateDirectory, "The directory '{0}' does not exist, creating it now.", directory); + } + + public static Message CreatingCabinetFiles() + { + return Message(null, Ids.CreatingCabinetFiles, "Creating cabinet files."); + } + + public static Message DecompilingTable(string tableName) + { + return Message(null, Ids.DecompilingTable, "Decompiling the {0} table.", tableName); + } + + public static Message EmbeddingContainer(string container, long size, string compression) + { + return Message(null, Ids.EmbeddingContainer, "Embedding container '{0}' ({1} bytes) with '{2}' compression.", container, size, compression); + } + + public static Message GeneratingBundle(string bundleFile, string stubFile) + { + return Message(null, Ids.GeneratingBundle, "Generating Burn bundle '{0}' from stub '{1}'.", bundleFile, stubFile); + } + + public static Message GeneratingDatabase() + { + return Message(null, Ids.GeneratingDatabase, "Generating database."); + } + + public static Message ImportBinaryStream(string streamSource) + { + return Message(null, Ids.ImportBinaryStream, "Importing binary stream from '{0}'.", streamSource); + } + + public static Message ImportIconStream(string streamSource) + { + return Message(null, Ids.ImportIconStream, "Importing icon stream from '{0}'.", streamSource); + } + + public static Message ImportingStreams() + { + return Message(null, Ids.ImportingStreams, "Importing streams."); + } + + public static Message LayingOutMedia() + { + return Message(null, Ids.LayingOutMedia, "Laying out media."); + } + + public static Message LoadingPayload(string payload) + { + return Message(null, Ids.LoadingPayload, "Loading payload '{0}' into container.", payload); + } + + public static Message MergingMergeModule(string modulePath) + { + return Message(null, Ids.MergingMergeModule, "Merging merge module '{0}'.", modulePath); + } + + public static Message MergingModules() + { + return Message(null, Ids.MergingModules, "Merging modules."); + } + + public static Message MoveFile(string sourceFile, string destinationFile) + { + return Message(null, Ids.MoveFile, "Moving file '{0}' to '{1}'.", sourceFile, destinationFile); + } + + public static Message OpeningMergeModule(string modulePath, Int16 language) + { + return Message(null, Ids.OpeningMergeModule, "Opening merge module '{0}' with language '{1}'.", modulePath, language); + } + + public static Message RemoveDestinationFile(string destinationFile) + { + return Message(null, Ids.RemoveDestinationFile, "The destination file '{0}' already exists, attempting to remove it.", destinationFile); + } + + public static Message ResequencingMergeModuleFiles() + { + return Message(null, Ids.ResequencingMergeModuleFiles, "Resequencing files from all merge modules."); + } + + public static Message ResolvingManifest(string manifestFile) + { + return Message(null, Ids.ResolvingManifest, "Generating resolved manifest '{0}'.", manifestFile); + } + + public static Message ReusingCabCache(SourceLineNumber sourceLineNumbers, string cabinetName, string source) + { + return Message(sourceLineNumbers, Ids.ReusingCabCache, "Reusing cabinet '{0}' from cabinet cache path: '{1}'.", cabinetName, source); + } + + public static Message SetCabbingThreadCount(string threads) + { + return Message(null, Ids.SetCabbingThreadCount, "There will be '{0}' threads used to produce CAB files.", threads); + } + + public static Message SwitchingToPerUserPackage(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.SwitchingToPerUserPackage, "Bundle switching from per-machine to per-user due to addition of per-user package '{0}'.", path); + } + + public static Message UpdatingFileInformation() + { + return Message(null, Ids.UpdatingFileInformation, "Updating file information."); + } + + public static Message ValidatedDatabase(long size) + { + return Message(null, Ids.ValidatedDatabase, "Validation complete: {0:N0}ms elapsed.", size); + } + + public static Message ValidatingDatabase() + { + return Message(null, Ids.ValidatingDatabase, "Validating database."); + } + + public static Message ValidationInfo(string ice, string message) + { + return Message(null, Ids.ValidationInfo, "{0}: {1}", ice, message); + } + + public static Message ValidationSerialized() + { + return Message(null, Ids.ValidationSerialized, "Multiple packages cannot reliably be validated simultaneously. This validation will resume when the other package being validated has completed."); + } + + public static Message ValidatorTempDirLocatedAt(string directory) + { + return Message(null, Ids.ValidatorTempDirLocatedAt, "Validator temporary directory located at '{0}'.", directory); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, format, args); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, resourceManager, resourceName, args); + } + + public enum Ids + { + ImportBinaryStream = 9000, + ImportIconStream = 9001, + CopyFile = 9002, + MoveFile = 9003, + CreateDirectory = 9004, + RemoveDestinationFile = 9005, + CabFile = 9006, + UpdatingFileInformation = 9007, + GeneratingDatabase = 9008, + MergingModules = 9009, + CreatingCabinetFiles = 9010, + ImportingStreams = 9011, + LayingOutMedia = 9012, + DecompilingTable = 9013, + ValidationInfo = 9014, + CreateCabinet = 9015, + ValidatingDatabase = 9016, + OpeningMergeModule = 9017, + MergingMergeModule = 9018, + ConnectingMergeModule = 9019, + ResequencingMergeModuleFiles = 9020, + BinderTempDirLocatedAt = 9021, + ValidatorTempDirLocatedAt = 9022, + GeneratingBundle = 9023, + ResolvingManifest = 9024, + LoadingPayload = 9025, + BundleGuid = 9026, + CopyingExternalPayload = 9027, + EmbeddingContainer = 9028, + SwitchingToPerUserPackage = 9029, + SetCabbingThreadCount = 9030, + ValidationSerialized = 9031, + ReusingCabCache = 9032, + CabinetsSplitInParallel = 9033, + ValidatedDatabase = 9034, + } + } +} diff --git a/src/api/wix/WixToolset.Data/WarningMessages.cs b/src/api/wix/WixToolset.Data/WarningMessages.cs new file mode 100644 index 00000000..78ed87af --- /dev/null +++ b/src/api/wix/WixToolset.Data/WarningMessages.cs @@ -0,0 +1,816 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.Resources; + + public static class WarningMessages + { + public static Message AccessDeniedForDeletion(SourceLineNumber sourceLineNumbers, string tempFilesBasePath) + { + return Message(sourceLineNumbers, Ids.AccessDeniedForDeletion, "Access denied; cannot delete '{0}'.", tempFilesBasePath); + } + + public static Message AccessDeniedForSettingAttributes(SourceLineNumber sourceLineNumbers, string filePath) + { + return Message(sourceLineNumbers, Ids.AccessDeniedForSettingAttributes, "Access denied; cannot set attributes on '{0}'.", filePath); + } + + public static Message ActionSequenceCollision(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName1, string actionName2, int sequenceNumber) + { + return Message(sourceLineNumbers, Ids.ActionSequenceCollision, "The {0} table contains actions '{1}' and '{2}' which both have the same sequence number {3}. Please change the sequence number for one of these actions to avoid an ICE warning.", sequenceTableName, actionName1, actionName2, sequenceNumber); + } + + public static Message ActionSequenceCollision2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ActionSequenceCollision2, "The location of the action related to previous warning."); + } + + public static Message AllChangesIncludedInPatch(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.AllChangesIncludedInPatch, "All changes between the baseline and upgraded packages will be included in the patch except for any change to the ProductCode. The 'All' element is supported primarily for testing purposes and negates the benefits of patch families."); + } + + public static Message AmbiguousFileOrDirectoryName(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.AmbiguousFileOrDirectoryName, "The {0}/@{1} attribute's value '{2}' is an ambiguous short name because it ends with a '~' character followed by a number. Under some circumstances, this name could resolve to more than one file or directory name and lead to unpredictable results (for example 'MICROS~1' may correspond to 'Microsoft Shared' or 'Microsoft Foo' or literally 'Micros~1').", elementName, attributeName, value); + } + + public static Message AttributeShouldContain(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string attributeValue, string expectedContains, string otherAttributeName, string otherAttributeValue) + { + return Message(sourceLineNumbers, Ids.AttributeShouldContain, "The {0}/@{1} attribute value '{2}' should contain '{3}' when the {0}/@{4} attribute is set to '{5}'.", elementName, attributeName, attributeValue, expectedContains, otherAttributeName, otherAttributeValue); + } + + public static Message BackslashTerminateInlineDirectorySyntax(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.BackslashTerminateInlineDirectorySyntax, "Backslash terminate the {0}/@{1} attribute's inline directory value '{2}'. A backslash ensures a directory name will not be mistaken for a directory reference.", elementName, attributeName, value); + } + + public static Message BadColumnDataIgnored(SourceLineNumber sourceLineNumbers, string value, string tableName, string columnName) + { + return Message(sourceLineNumbers, Ids.BadColumnDataIgnored, "The value '{0}' in table '{1}', column '{2}' is invalid according to the column's validation information. The decompiled output includes a best-effort representation of this value.", value, tableName, columnName); + } + + public static Message CannotUpdateCabCache(SourceLineNumber sourceLineNumbers, string cabinetPath, string detail) + { + return Message(sourceLineNumbers, Ids.CannotUpdateCabCache, "Cannot update the timestamp of cached cabinet: '{0}'. If the timestamp is not updated, the build may rebuild more than is necessary. To fix the issue, ensure that the cabinet file is writable, error: {1}", cabinetPath, detail); + } + + public static Message ColumnsIncompatibleWithInstallerVersion(SourceLineNumber sourceLineNumbers, string tableName, int productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.ColumnsIncompatibleWithInstallerVersion, "Table '{0}' uses columns that require a version of Windows Installer greater than specified in your package ('{1}').", tableName, productInstallerVersion); + } + + public static Message CopyFileFileIdUseless(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.CopyFileFileIdUseless, "Since the CopyFile/@FileId attribute was specified but none of the following attributes (DestinationName, DestinationDirectory, DestinationProperty) were specified, this authoring will not do anything."); + } + + public static Message DangerousTableInMergeModule(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.DangerousTableInMergeModule, "Merge modules should not contain the '{0}' table because all merge conflicts cannot avoided. However, this warning can be suppressed if all of the consumers of the Merge Module agree to not duplicate identifiers in the '{0}' table.", tableName); + } + + public static Message DecompiledStandardActionRelativelyScheduledInModule(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.DecompiledStandardActionRelativelyScheduledInModule, "The {0} table contains a standard action '{1}' that does not have a sequence number specified. A value in the Sequence column is required for standard actions in a merge module. Remove the action from the decompiled authoring to have WiX automatically sequence it.", sequenceTableName, actionName); + } + + public static Message DecompilingAsCustomTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.DecompilingAsCustomTable, "The {0} table is being decompiled as a custom table.", tableName); + } + + public static Message DefaultLanguageUsedForUnversionedFile(SourceLineNumber sourceLineNumbers, string language, string fileId) + { + return Message(sourceLineNumbers, Ids.DefaultLanguageUsedForUnversionedFile, "The DefaultLanguage '{0}' was used for file '{1}' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning.", language, fileId); + } + + public static Message DefaultLanguageUsedForVersionedFile(SourceLineNumber sourceLineNumbers, string language, string fileId) + { + return Message(sourceLineNumbers, Ids.DefaultLanguageUsedForVersionedFile, "The DefaultLanguage '{0}' was used for file '{1}' which has no language. Specifying a language that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Either specify a value for DefaultLanguage or put the language in the version information resource to eliminate this warning.", language, fileId); + } + + public static Message DefaultVersionUsedForUnversionedFile(SourceLineNumber sourceLineNumbers, string version, string fileId) + { + return Message(sourceLineNumbers, Ids.DefaultVersionUsedForUnversionedFile, "The DefaultVersion '{0}' was used for file '{1}' which has no version. No entry for this file will be placed in the MsiFileHash table. For unversioned files, specifying a version that is different from the actual file may result in unexpected versioning behavior during a repair or while patching. Version the resource to eliminate this warning.", version, fileId); + } + + public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated.", elementName, attributeName); + } + + public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string newAttributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated. Please use the {2} attribute instead.", elementName, attributeName, newAttributeName); + } + + public static Message DeprecatedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string newAttributeName1, string newAttributeName2) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttribute, "The {0}/@{1} attribute has been deprecated. Please use the {2} or {3} attribute instead.", elementName, attributeName, newAttributeName1, newAttributeName2); + } + + public static Message DeprecatedAttributeValue(SourceLineNumber sourceLineNumbers, string attributeValue, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Remove the attribute.", attributeValue, elementName, attributeName); + } + + public static Message DeprecatedAttributeValue(SourceLineNumber sourceLineNumbers, string attributeValue, string elementName, string attributeName, string newAttributeValue) + { + return Message(sourceLineNumbers, Ids.DeprecatedAttributeValue, "The value \"{0}\" for the {1}/@{2} attribute has been deprecated. Please use \"{3}\" instead.", attributeValue, elementName, attributeName, newAttributeValue); + } + + public static Message DeprecatedCommandLineSwitch(string oldSwitch) + { + return Message(null, Ids.DeprecatedCommandLineSwitch, "The command line switch '{0}' is deprecated.", oldSwitch); + } + + public static Message DeprecatedCommandLineSwitch(string oldSwitch, string newSwitch) + { + return Message(null, Ids.DeprecatedCommandLineSwitch, "The command line switch '{0}' is deprecated. Please use '{1}' instead.", oldSwitch, newSwitch); + } + + public static Message DeprecatedComponentGroupId(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.DeprecatedComponentGroupId, "The {0}/@Id attribute contains invalid characters for an identifier. Being able to use invalid identifier characters for a {0} identifier has been deprecated.", elementName); + } + + public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated.", elementName); + } + + public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName) + { + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} element instead.", elementName, newElementName); + } + + public static Message DeprecatedElement(SourceLineNumber sourceLineNumbers, string elementName, string newElementName1, string newElementName2) + { + return Message(sourceLineNumbers, Ids.DeprecatedElement, "The {0} element has been deprecated. Please use the {1} or {2} element instead.", elementName, newElementName1, newElementName2); + } + + public static Message DeprecatedIgnoreModularizationElement(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedIgnoreModularizationElement, "The IgnoreModularization element has been deprecated. Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attribute instead."); + } + + public static Message DeprecatedLocalizationVariablePrefix(SourceLineNumber sourceLineNumbers, string variableId) + { + return Message(sourceLineNumbers, Ids.DeprecatedLocalizationVariablePrefix, "The localization variable $(loc.{0}) uses a deprecated prefix '$'. Please use the '!' prefix instead. Since the prefix '$' is also used by the preprocessor, it has been deprecated to avoid namespace collisions.", variableId); + } + + public static Message DeprecatedLongNameAttribute(SourceLineNumber sourceLineNumbers, string elementName, string longNameAttributeName, string nameAttributeName, string shortNameAttributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedLongNameAttribute, "The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute.", elementName, longNameAttributeName, nameAttributeName, shortNameAttributeName); + } + + public static Message DeprecatedPatchSequenceTargetAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedPatchSequenceTargetAttribute, "The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family.", elementName, attributeName); + } + + public static Message DeprecatedPreProcVariable(SourceLineNumber sourceLineNumbers, string oldName, string newName) + { + return Message(sourceLineNumbers, Ids.DeprecatedPreProcVariable, "The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead.", oldName, newName); + } + + public static Message DeprecatedQuestionMarksGuid(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.DeprecatedQuestionMarksGuid, "The {0}/@{1} attribute's value '????????-????-????-????-????????????' has been deprecated. Use '*' instead.", elementName, attributeName); + } + + public static Message DeprecatedRegistryElement(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedRegistryElement, "The Registry element has been deprecated. Please use one of the new elements which replaces its functionality: RegistryKey for creating registry keys, RegistryValue for writing registry values, RemoveRegistryKey for removing registry keys, and RemoveRegistryValue for removing registry values."); + } + + public static Message DeprecatedRegistryKeyActionAttribute(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedRegistryKeyActionAttribute, "The RegistryKey/@Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead."); + } + + public static Message DeprecatedTable(string tableName) + { + return Message(null, Ids.DeprecatedTable, "The {0} table is not supported by the WiX toolset because it has been deprecated by the Windows Installer team. Any information in this table will be left out of the decompiled output.", tableName); + } + + public static Message DeprecatedUpgradeProperty(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.DeprecatedUpgradeProperty, "Specifying a Property element as a child of an Upgrade element has been deprecated. Please specify this Property element as a child of a different element such as Product or Fragment."); + } + + public static Message DirectoryInUse(SourceLineNumber sourceLineNumbers, string filePath) + { + return Message(sourceLineNumbers, Ids.DirectoryInUse, "The directory '{0}' is in use and cannot be deleted.", filePath); + } + + public static Message DirectoryRedundantNames(SourceLineNumber sourceLineNumbers, string elementName, string shortNameAttributeName, string longNameAttributeName, string attributeValue) + { + return Message(sourceLineNumbers, Ids.DirectoryRedundantNames, "The {0} element's {1} and {2} values are both '{3}'. This is redundant; the {2} attribute should be removed.", elementName, shortNameAttributeName, longNameAttributeName, attributeValue); + } + + public static Message DirectoryRedundantNames(SourceLineNumber sourceLineNumbers, string elementName, string sourceNameAttributeName, string longSourceAttributeName) + { + return Message(sourceLineNumbers, Ids.DirectoryRedundantNames, "The {0} element's source and destination names are identical. This is redundant; the {1} and {2} attributes should be removed if present.", elementName, sourceNameAttributeName, longSourceAttributeName); + } + + public static Message DiscardedRollbackBoundary(SourceLineNumber sourceLineNumbers, string rollbackBoundaryId) + { + return Message(sourceLineNumbers, Ids.DiscardedRollbackBoundary, "The RollbackBoundary '{0}' was discarded because it was not followed by a package. Without a package the rollback boundary doesn't do anything. Verify that the RollbackBoundary element is not followed by another RollbackBoundary and that the element is not at the end of the chain.", rollbackBoundaryId); + } + + public static Message DiscouragedAllUsersValue(SourceLineNumber sourceLineNumbers, string path, string machineOrUser) + { + return Message(sourceLineNumbers, Ids.DiscouragedAllUsersValue, "Bundles require a package to be either per-machine or per-user. The MSI '{0}' ALLUSERS Property is set to '2' which may change from per-user to per-machine at install time. The Bundle will assume the package is per-{1} and will not work correctly if that changes. If possible, remove the Property with Id='ALLUSERS' and use Package/@InstallScope attribute instead.", path, machineOrUser); + } + + public static Message DetectConditionRecommended(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.DetectConditionRecommended, "The {0}/@DetectCondition attribute is recommended so the package is only installed when absent.", elementName); + } + + public static Message DownloadUrlNotSupportedForAttachedContainers(SourceLineNumber sourceLineNumbers, string containerId) + { + return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForAttachedContainers, "The Container '{0}' is attached but included a @DownloadUrl attribute. Attached Containers cannot be downloaded so the download URL is being ignored.", containerId); + } + + public static Message DownloadUrlNotSupportedForBAPayloads(SourceLineNumber sourceLineNumbers, string payloadId) + { + return Message(sourceLineNumbers, Ids.DownloadUrlNotSupportedForBAPayloads, "The BootstrapperApplication Payload '{0}' included a @DownloadUrl attribute. BootstrapperApplication Payloads cannot be downloaded so the download URL is being ignored.", payloadId); + } + + public static Message DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) + { + return Message(sourceLineNumbers, Ids.DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. This is not officially supported by Windows Installer and cannot be used when creating patches. It otherwise works as long as all components with the same GUID have mutually-exclusive conditions. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath); + } + + public static Message DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName) + { + return Message(sourceLineNumbers, Ids.DuplicatePrimaryKey, "The primary key '{0}' is duplicated in table '{1}' and will be ignored. Please remove one of the entries or rename a part of the primary key to avoid the collision.", primaryKey, tableName); + } + + public static Message EmptyAttributeValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.EmptyAttributeValue, "The {0}/@{1} attribute's value cannot be an empty string. If you want the value to be null or empty, simply remove the entire attribute.", elementName, attributeName); + } + + public static Message EmptyCabinet(SourceLineNumber sourceLineNumbers, string cabinetName) + { + return Message(sourceLineNumbers, Ids.EmptyCabinet, "The cabinet '{0}' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it.", cabinetName); + } + + public static Message EmptyCabinet(SourceLineNumber sourceLineNumbers, string cabinetName, Boolean isPatch) + { + return Message(sourceLineNumbers, Ids.EmptyCabinet, "The cabinet '{0}' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet.", cabinetName, isPatch); + } + + public static Message ExpectedForeignRow(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, string columnName, string columnValue, string foreignTableName) + { + return Message(sourceLineNumbers, Ids.ExpectedForeignRow, "The {0} table contains a row with primary key(s) '{1}' whose {2} column contains a value, '{3}', which specifies a foreign key relationship with the {4} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output.", tableName, primaryKey, columnName, columnValue, foreignTableName); + } + + public static Message ExpectedForeignRow(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, string columnName1, string columnValue1, string columnName2, string columnValue2, string foreignTableName) + { + return Message(sourceLineNumbers, Ids.ExpectedForeignRow, "The {0} table contains a row with primary key(s) '{1}' whose {2} and {4} columns contain the values, '{3}' and '{5}', which specify a foreign key relationship with the {6} table. However, since the expected foreign row specified by this value does not exist, this will result in some information being left out of the decompiled output.", tableName, primaryKey, columnName1, columnValue1, columnName2, columnValue2, foreignTableName); + } + + public static Message ExperimentalBundlePlatform(string platform) + { + return Message(null, Ids.ExperimentalBundlePlatform, "The platform {0} is experimental for bundles. Use the x86 platform instead.", platform); + } + + public static Message ExternalCabsAreNotSigned(string databaseFile) + { + return Message(null, Ids.ExternalCabsAreNotSigned, "The installer database '{0}' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to run the insignia tool as part of your build.", databaseFile); + } + + public static Message FailedToDeleteTempDir(string directory) + { + return Message(null, Ids.FailedToDeleteTempDir, "Failed to delete temporary directory: {0}", directory); + } + + public static Message FileSearchFileNameIssue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName1, string attributeName2) + { + return Message(sourceLineNumbers, Ids.FileSearchFileNameIssue, "The {0} element's {1} and {2} attributes were found. Due to a bug with the Windows Installer, only the Name or LongName attribute should be used. Use the Name attribute for 8.3 compliant file names and the LongName attribute for longer ones. When using only the LongName attribute, ICE03 should be ignored for the Signature table's FileName column.", elementName, attributeName1, attributeName2); + } + + public static Message GeneratedShortFileNameConflict(SourceLineNumber sourceLineNumbers, string shortFileName) + { + return Message(sourceLineNumbers, Ids.GeneratedShortFileNameConflict, "The short file name '{0}' was generated for multiple files that may be installed to the same directory. This could be due to conflicting long file names specified by the File/@Name attribute. If that is the case, please resolve the conflict in those attributes. Otherwise, please manually set the File/@ShortName attribute on the conflicting row to fix the collision. If one of the colliding files was added via a patch, that short file name should be specified manually to avoid disturbing the original short file name.", shortFileName); + } + + public static Message GeneratedShortFileNameConflict2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.GeneratedShortFileNameConflict2, "The location of a conflicting generated short file name related to the previous warning."); + } + + public static Message IdentifierCannotBeModularized(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string identifier, int length, int maximumLength) + { + return Message(sourceLineNumbers, Ids.IdentifierCannotBeModularized, "The {0}/@{1} attribute's value, '{2}', is {3} characters long. It will be too long if modularized. The identifier shouldn't be longer than {4} characters long to allow for modularization (appending a guid for merge modules).", elementName, attributeName, identifier, length, maximumLength); + } + + public static Message IdentifierTooLong(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.IdentifierTooLong, "The {0}/@{1} attribute's value, '{2}', is too long for an identifier. Standard identifiers are 72 characters long or less.", elementName, attributeName, value); + } + + public static Message IllegalActionInSequence(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.IllegalActionInSequence, "The {0} table contains an action '{1}' which is not allowed in this table. If this is a standard action then it is not valid for this table, if it is a custom action or dialog then this table does not accept actions of that type. This action will be left out of the decompiled output.", sequenceTableName, actionName); + } + + public static Message IllegalColumnValue(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) + { + return Message(sourceLineNumbers, Ids.IllegalColumnValue, "The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output.", tableName, columnName, value); + } + + public static Message IllegalPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.IllegalPatchCreationTable, "The {0} table is not legal in a patch creation file. The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message IllegalRegistryKeyPath(SourceLineNumber sourceLineNumbers, string componentName, string registryId) + { + return Message(sourceLineNumbers, Ids.IllegalRegistryKeyPath, "Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath.", componentName, registryId); + } + + public static Message ImplicitComponentPrimaryFeature(string componentId) + { + return Message(null, Ids.ImplicitComponentPrimaryFeature, "The component '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the ComponentRef/@Primary, ComponentGroupRef/@Primary, or FeatureGroupRef/@Primary locations for this component.", componentId); + } + + public static Message ImplicitlyPerUser(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.ImplicitlyPerUser, "The MSI '{0}' does not explicitly indicate that it is a per-user package even though the ALLUSERS Property is blank. This suggests a per-user package so the Bundle will assume the package is per-user. If possible, use the Package/@InstallScope attribute to be explicit instead.", path); + } + + public static Message ImplicitMergeModulePrimaryFeature(string componentId) + { + return Message(null, Ids.ImplicitMergeModulePrimaryFeature, "The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component.", componentId); + } + + public static Message InsufficientPermissionHarvestTypeLib() + { + return Message(null, Ids.InsufficientPermissionHarvestTypeLib, "Not enough permissions to harvest type library. On Windows Vista, you must either run Heat elevated, or install Windows Vista SP1 (or higher)."); + } + + public static Message InvalidAttributeCombination(SourceLineNumber sourceLineNumbers, string attrib1, string attrib2, string name, string value) + { + return Message(sourceLineNumbers, Ids.InvalidAttributeCombination, "It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}.", attrib1, attrib2, name, value); + } + + public static Message InvalidHigherInstallerVersionInModule(SourceLineNumber sourceLineNumbers, string moduleId, int moduleInstallerVersion, int productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.InvalidHigherInstallerVersionInModule, "Merge module '{0}' has an installer version of {1} which is greater than the product's installer version of {2}. Merging a module with a higher installer version than the product it is being merged into can result in invalid values in the resulting msi. You must set the Package/@InstallerVersion attribute to {1} or greater to merge this merge module into your product.", moduleId, moduleInstallerVersion, productInstallerVersion); + } + + public static Message InvalidModuleOrBundleVersion(SourceLineNumber sourceLineNumbers, string moduleOrBundle, string version) + { + return Message(sourceLineNumbers, Ids.InvalidModuleOrBundleVersion, "Invalid {0}/@Version '{1}'. {0} version has a max value of \"65535.65535.65535.65535\" and must be all numeric.", moduleOrBundle, version); + } + + public static Message InvalidRemoveFile(SourceLineNumber sourceLineNumbers, string file, string component) + { + return Message(sourceLineNumbers, Ids.InvalidRemoveFile, "File '{0}' was removed from component '{1}'. Removing a file from a component will not result in the file being removed by a patch. You should author a RemoveFile element in your component to remove the file from the installation if you want the file to be removed.", file, component); + } + + public static Message MajorUpgradePatchNotRecommended() + { + return Message(null, Ids.MajorUpgradePatchNotRecommended, "Changing the ProductCode in a patch is not recommended because the patch cannot be uninstalled nor can it be sequenced along with other patches for the target product. See http://msdn2.microsoft.com/library/aa367571.aspx for more information."); + } + + public static Message MediaExternalCabinetFilenameIllegal(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.MediaExternalCabinetFilenameIllegal, "The {0}/@{1} attribute's value, '{2}', is not a valid external cabinet name. Legal cabinet names should follow 8.3 format: they should contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the following may be used: \\ ? | > < : / * \" + , ; = [ ] (space). The Windows Installer team has recommended following the 8.3 format for external cabinet files and any other naming scheme is officially unsupported (which means it is not guaranteed to work on all platforms).", elementName, attributeName, value); + } + + public static Message MergeRescheduledAction(SourceLineNumber sourceLineNumbers, string tableName, string actionName, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeRescheduledAction, "The {0} table contains an action '{1}' which cannot be merged from the merge module '{2}'. This action is likely colliding with an action in the database that is being created. The colliding action may have been authored in the database or merged in from another merge module. If this is a standard action, it is likely colliding due to a difference in the condition for the action in the database and merge module. If this is a custom action, it should only be declared in the database or one merge module.", tableName, actionName, mergeModuleFile); + } + + public static Message MergeTableFailed(SourceLineNumber sourceLineNumbers, string tableName, string primaryKeys, string mergeModuleFile) + { + return Message(sourceLineNumbers, Ids.MergeTableFailed, "The {0} table contains a row with primary key(s) '{1}' which cannot be merged from the merge module '{2}'. This is likely due to collision of rows with the same primary key(s) (but other different values in other columns) between the database and the merge module.", tableName, primaryKeys, mergeModuleFile); + } + + public static Message MissingUpgradeCode(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MissingUpgradeCode, "The Product/@UpgradeCode attribute was not found; it is strongly recommended to ensure that this product can be upgraded."); + } + + public static Message MsiTransactionLimitations(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.MsiTransactionLimitations, "MSI transactions have limitations that make it hard to use them successfully in a bundle. Test the bundle thoroughly, especially in upgrade scenarios and the scenario that required them in the first place."); + } + + public static Message NestedInstall(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) + { + return Message(sourceLineNumbers, Ids.NestedInstall, "The {0}.{1} column's value, '{2}', indicates a nested install. Nested installations are not supported by the WiX team. This action will be left out of the decompiled output.", tableName, columnName, value); + } + + public static Message NewComponentAddedToExistingFeature(SourceLineNumber sourceLineNumbers, string component, string feature, string transformPath) + { + return Message(sourceLineNumbers, Ids.NewComponentAddedToExistingFeature, "Component '{0}' was added to feature '{1}' in the transform '{2}'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch.", component, feature, transformPath); + } + + public static Message NoPerMachineDependencies(SourceLineNumber sourceLineNumbers, string packageId) + { + return Message(sourceLineNumbers, Ids.NoPerMachineDependencies, "Bundle dependencies will not be registered on per-machine package '{0}' for a per-user bundle. Either make sure that all packages are installed per-machine, or author any per-machine dependencies as permanent packages.", packageId); + } + + public static Message NotABinaryWixlib(string wixlib) + { + return Message(null, Ids.NotABinaryWixlib, "'{0}' is not a binary Wixlib and has no embedded files.", wixlib); + } + + public static Message NullMsiAssemblyNameValue(SourceLineNumber sourceLineNumbers, string componentName, string name) + { + return Message(sourceLineNumbers, Ids.NullMsiAssemblyNameValue, "The assembly in component '{0}' has a null or empty {1} assembly name value.", componentName, name); + } + + public static Message OrphanedProgId(SourceLineNumber sourceLineNumbers, string progId) + { + return Message(sourceLineNumbers, Ids.OrphanedProgId, "ProgId '{0}' is orphaned. It has no associated component, so it will never install. Every ProgId should have either a parent Class element or child Extension element (at any distance).", progId); + } + + public static Message PackageCodeSet(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.PackageCodeSet, "The Package/@Id attribute has been set. Setting this attribute will allow nonidentical .msi files to have the same package code. This may be a problem because the package code is the primary identifier used by the installer to search for and validate the correct package for a given installation. If a package is changed without changing the package code, the installer may not use the newer package if both are still accessible to the installer. Please remove the Id attribute in order to automatically generate a new package code for each new .msi file."); + } + + public static Message PatchTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.PatchTable, "The {0} table is added to the install package by a transform from a patch package (.msp) and not authored directly into an install package (.msi). The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message PathCanonicalized(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string originalValue, string canonicalValue) + { + return Message(sourceLineNumbers, Ids.PathCanonicalized, "The {0}/@{1} attribute's value, '{2}', has been canonicalized to '{3}'.", elementName, attributeName, originalValue, canonicalValue); + } + + public static Message PerUserButForcingPerMachine(SourceLineNumber sourceLineNumbers, string path) + { + return Message(sourceLineNumbers, Ids.PerUserButForcingPerMachine, "The MSI '{0}' is a per-user package being forced to per-machine. Verify that the MsiPackage/@ForcePerMachine attribute is expected and that the per-user package works correctly when forced to install per-machine.", path); + } + + public static Message PlaceholderValue(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) + { + return Message(sourceLineNumbers, Ids.PlaceholderValue, "The {0}/@{1} attribute's value, '{2}', is a placeholder value used in example files. Please replace this placeholder with the appropriate value.", elementName, attributeName, value); + } + + public static Message PossiblyIncorrectTypelibVersion(SourceLineNumber sourceLineNumbers, string id) + { + return Message(sourceLineNumbers, Ids.PossiblyIncorrectTypelibVersion, "The Typelib table entry with Id '{0}' could have an incorrect version of '256.0'. InstallShield has a bug relating to the Typelib Version column: it will incorrectly set the value '65536' in to represent version '1.0'. However, this number actually corresponds to version '256.0'. This bug will not affect the typelib version that is registered during installation, however, it will prevent the Windows Installer from correctly identifying whether a typelib is already installed and lead to unnecessary reinstallations of the typelib.", id); + } + + public static Message PreprocessorUnknownPragma(SourceLineNumber sourceLineNumbers, string pragmaName) + { + return Message(sourceLineNumbers, Ids.PreprocessorUnknownPragma, "The pragma '{0}' is unknown. Please ensure you have referenced the extension that defines this pragma.", pragmaName); + } + + public static Message PreprocessorWarning(SourceLineNumber sourceLineNumbers, string message) + { + return Message(sourceLineNumbers, Ids.PreprocessorWarning, "{0}", message); + } + + public static Message ProductIdAuthored(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.ProductIdAuthored, "The 'ProductID' property should not be directly authored because it will prevent the ValidateProductID standard action from performing any validation during the installation. This property will be set by the ValidateProductID standard action or control event."); + } + + public static Message PropertyModularizationSuppressed(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.PropertyModularizationSuppressed, "The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios."); + } + + public static Message PropertyUseless(SourceLineNumber sourceLineNumbers, string id) + { + return Message(sourceLineNumbers, Ids.PropertyUseless, "Property '{0}' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored.", id); + } + + public static Message PropertyValueContainsPropertyReference(SourceLineNumber sourceLineNumbers, string propertyId, string otherProperty) + { + return Message(sourceLineNumbers, Ids.PropertyValueContainsPropertyReference, "The '{0}' Property contains '[{1}]' in its value which is an illegal reference to another property. If this value is a string literal, not a property reference, please ignore this warning. To set a property with the value of another property, use a CustomAction with Property and Value attributes.", propertyId, otherProperty); + } + + public static Message RelatedAttributeConditionallyIgnored(SourceLineNumber sourceLineNumbers, string recessiveAttribute, string dominantAttribute, string dominantValue) + { + return Message(sourceLineNumbers, Ids.RelatedAttributeConditionallyIgnored, "Ignoring attribute {0} because attribute {1} is set to {2}.", recessiveAttribute, dominantAttribute, dominantValue); + } + + public static Message RemotePayloadsMustNotAlsoBeCompressed(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.RemotePayloadsMustNotAlsoBeCompressed, "The {0}/@Compressed attribute must have value 'no' when a RemotePayload child element is present. RemotePayload indicates that a package will always be downloaded and cannot be compressed into a bundle. To eliminate this warning, explicitly set the {0}/@Compressed attribute to 'no'.", elementName); + } + + public static Message RemoveFileNameRequired(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RemoveFileNameRequired, "The RemoveFile/@Name attribute will soon become required. In order to match the old functionality of not specifying this attribute, please use the new RemoveFolder element instead."); + } + + public static Message RequiresMsi200for64bitPackage(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RequiresMsi200for64bitPackage, "Package/@InstallerVersion must be 200 or greater for a 64-bit package. The value will be changed to 200. Please specify a value of 200 or greater in order to eliminate this warning."); + } + + public static Message RequiresMsi500forArmPackage(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.RequiresMsi500forArmPackage, "Package/@InstallerVersion must be 500 or greater for an ARM64 package. The value will be changed to 500. Please specify a value of 500 or greater in order to eliminate this warning."); + } + + public static Message ReservedAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName) + { + return Message(sourceLineNumbers, Ids.ReservedAttribute, "The {0}/@{1} attribute is reserved for future use and has no effect in this version of the WiX toolset.", elementName, attributeName); + } + + public static Message RetainRangeMismatch(SourceLineNumber sourceLineNumbers, string fileId) + { + return Message(sourceLineNumbers, Ids.RetainRangeMismatch, "Mismatch in RetainRangeCounts for the file '{0}' - ignoring the retain ranges.", fileId); + } + + public static Message ServiceConfigFamilyNotSupported(SourceLineNumber sourceLineNumbers, string elementName) + { + return Message(sourceLineNumbers, Ids.ServiceConfigFamilyNotSupported, "{0} functionality is documented in the Windows Installer SDK to \"not [work] as expected.\" Consider replacing {0} with the WixUtilExtension ServiceConfig element.", elementName); + } + + public static Message SkippingMergeModuleTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.SkippingMergeModuleTable, "The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message SkippingPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.SkippingPatchCreationTable, "The {0} table can only be represented in WiX for patch creation files. The information in this table will be left out of the decompiled output.", tableName); + } + + public static Message StandardDirectoryConflictInMergeModule(SourceLineNumber sourceLineNumbers, string directory, string standardDirectory) + { + return Message(sourceLineNumbers, Ids.StandardDirectoryConflictInMergeModule, "The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders.", directory, standardDirectory); + } + + public static Message SuppressAction(SourceLineNumber sourceLineNumbers, string action, string sequenceName) + { + return Message(sourceLineNumbers, Ids.SuppressAction, "The action '{0}' in the {1} table is being suppressed.", action, sequenceName); + } + + public static Message SuppressAction2(SourceLineNumber sourceLineNumbers) + { + return Message(sourceLineNumbers, Ids.SuppressAction2, "The location of the suppressed action related to previous warning."); + } + + public static Message SuppressMergedAction(string action, string sequenceName) + { + return Message(null, Ids.SuppressMergedAction, "The merged action '{0}' in the {1} table is being suppressed.", action, sequenceName); + } + + public static Message TableIncompatibleWithInstallerVersion(SourceLineNumber sourceLineNumbers, string tableName, int productInstallerVersion) + { + return Message(sourceLineNumbers, Ids.TableIncompatibleWithInstallerVersion, "Using table '{0}' requires a version of Windows Installer greater than specified in your package ('{1}').", tableName, productInstallerVersion); + } + + public static Message TargetDirCorrectedDefaultDir() + { + return Message(null, Ids.TargetDirCorrectedDefaultDir, "The Directory with Id 'TARGETDIR' must have the value 'SourceDir' in its 'DefaultDir' column. This has been automatically corrected for you in the decompiled output."); + } + + public static Message TooManyProgIds(SourceLineNumber sourceLineNumbers, string clsId, string progId, string otherClsId) + { + return Message(sourceLineNumbers, Ids.TooManyProgIds, "Class '{0}' tried to use ProgId '{1}' which has already been associated with class '{2}'. This information will be left out of the decompiled output.", clsId, progId, otherClsId); + } + + public static Message SymbolNotTranslatedToOutput(IntermediateSymbol symbol) + { + var symbolString = $"SymbolName: '{symbol.Definition.Name}', Id: '{symbol.Id?.Id}'"; + return Message(symbol.SourceLineNumbers, Ids.SymbolNotTranslatedToOutput, "The binder doesn't know how to place the following symbol into the output: {0}", symbolString); + } + + public static Message UnableToFindFileFromCabOrImage(SourceLineNumber sourceLineNumbers, string existingFileSpec, string srcFileSpec) + { + return Message(sourceLineNumbers, Ids.UnableToFindFileFromCabOrImage, "Unable to find existing file {0} to place in src location {1}. Will likely cause a linker break.", existingFileSpec, srcFileSpec); + } + + public static Message UnableToResetAcls(string error) + { + return Message(null, Ids.UnableToResetAcls, "Unable to reset acls on destination files. Exception detail: {0}", error); + } + + public static Message UnclearShortcut(SourceLineNumber sourceLineNumbers, string shortcutId, string fileId, string componentId) + { + return Message(sourceLineNumbers, Ids.UnclearShortcut, "Because it is an advertised shortcut, the target of shortcut '{0}' will be the keypath of component '{2}' rather than parent file '{1}'. To eliminate this warning, you can (1) make the Shortcut element a child of the File element that is the keypath of component '{2}', (2) make file '{1}' the keypath of component '{2}', or (3) remove the @Advertise attribute so the shortcut is a non-advertised shortcut.", shortcutId, fileId, componentId); + } + + public static Message UnexpectedEntrySection(SourceLineNumber sourceLineNumbers, string sectionType, string expectedType, string outputExtension) + { + return Message(sourceLineNumbers, Ids.UnexpectedEntrySection, "Found mismatched entry point <{0}>. Expected <{1}> for specified output package type {2}.", sectionType, expectedType, outputExtension); + } + + public static Message UnexpectedTableInProduct(SourceLineNumber sourceLineNumbers, string tableName) + { + return Message(sourceLineNumbers, Ids.UnexpectedTableInProduct, "An unexpected row in the '{0}' table was found in this product. Products should not contain the '{0}' table.", tableName); + } + + public static Message UnknownAction(SourceLineNumber sourceLineNumbers, string sequenceTableName, string actionName) + { + return Message(sourceLineNumbers, Ids.UnknownAction, "The {0} table contains an action '{1}' which is not a known custom action, dialog, or standard action. This action will be left out of the decompiled output.", sequenceTableName, actionName); + } + + public static Message UnknownPermission(SourceLineNumber sourceLineNumbers, string tableName, string primaryKey, int bitPosition) + { + return Message(sourceLineNumbers, Ids.UnknownPermission, "The {0} table contains a row with primary key '{1}' which has an unknown permission at bit {2}.", tableName, primaryKey, bitPosition); + } + + public static Message UnrepresentableColumnValue(SourceLineNumber sourceLineNumbers, string tableName, string columnName, Object value) + { + return Message(sourceLineNumbers, Ids.UnrepresentableColumnValue, "The {0}.{1} column's value, '{2}', cannot currently be represented in the WiX schema.", tableName, columnName, value); + } + + public static Message UnsupportedCommandLineArgument(string arg) + { + return Message(null, Ids.UnsupportedCommandLineArgument, "'{0}' is not a valid command line argument.", arg); + } + + public static Message UpdateOfNonKeyPathFile(string nonKeyPathFileId, string componentId, string keyPathFileId) + { + return Message(null, Ids.UpdateOfNonKeyPathFile, "File '{0}' in Component '{1}' was changed, but the KeyPath file '{2}' was not. This file will not be patched on the target system if the REINSTALLMODE does not contain 'A'. The KeyPath file should also be changed and included in your patch.", nonKeyPathFileId, componentId, keyPathFileId); + } + + public static Message UxPayloadsOnlySupportEmbedding(SourceLineNumber sourceLineNumbers, string sourceFile) + { + return Message(sourceLineNumbers, Ids.UxPayloadsOnlySupportEmbedding, "A bootstrapper application payload ('{0}') was marked for something other than embedded packaging, possibly because it included a @DownloadUrl attribute. At present, bootstrapper application payloads must be embedded in the bundle, so the requested packaging is being ignored.", sourceFile); + } + + public static Message ValidationFailedDueToSystemPolicy() + { + return Message(null, Ids.ValidationFailedDueToSystemPolicy, "Validation could not run due to system policy. To eliminate this warning, run the process as admin or suppress ICE validation."); + } + + public static Message ValidationWarning(SourceLineNumber sourceLineNumbers, string ice, string message) + { + return Message(sourceLineNumbers, Ids.ValidationWarning, "{0}: {1}", ice, message); + } + + public static Message VariableDeclarationCollision(SourceLineNumber sourceLineNumbers, string variableName, string variableValue, string variableCollidingValue) + { + return Message(sourceLineNumbers, Ids.VariableDeclarationCollision, "The variable '{0}' with value '{1}' was previously declared with value '{2}'.", variableName, variableValue, variableCollidingValue); + } + + public static Message VersionTruncated(SourceLineNumber sourceLineNumbers, string originalVersion, string package, string truncatedVersion) + { + return Message(sourceLineNumbers, Ids.VersionTruncated, "Product version {0} in package '{1}' is not valid per the MSI SDK and cannot be represented in a bundle. It has been truncated to {2}.", originalVersion, package, truncatedVersion); + } + + public static Message CollidingModularizationTypes(string tableName, string columnName, string foreignTableName, int foreignColumnNumber, string modularizationType, string foreignModularizationType) + { + return Message(null, Ids.CollidingModularizationTypes, "The definition for the '{0}' table's '{1}' column is a foreign key relationship to the '{2}' table's column number {3}. The modularization types of the two column definitions differ: table '{0}' uses type {4} and table '{2}' uses type {5}. Change one of the modularization types so that they match.", tableName, columnName, foreignTableName, foreignColumnNumber, modularizationType, foreignModularizationType); + } + + public static Message InvalidEnvironmentVariable(string environmentVariable, string value, string defaultValue) + { + return Message(null, Ids.InvalidEnvironmentVariable, "The {0} environment variable is set to an invalid value of '{1}'. The default value '{2}' will be used instead.", environmentVariable, value, defaultValue); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, format, args); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, ResourceManager resourceManager, string resourceName, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Warning, (int)id, resourceManager, resourceName, args); + } + + public enum Ids + { + IdentifierCannotBeModularized = 1000, + EmptyAttributeValue = 1001, + UnableToFindFileFromCabOrImage = 1002, + CopyFileFileIdUseless = 1003, + NestedInstall = 1004, + OrphanedProgId = 1005, + PropertyUseless = 1006, + RemoveFileNameRequired = 1007, + SuppressAction = 1008, + SuppressMergedAction = 1009, + TargetDirCorrectedDefaultDir = 1010, + AccessDeniedForDeletion = 1011, + DirectoryInUse = 1012, + AccessDeniedForSettingAttributes = 1013, + UnknownAction = 1024, + IdentifierTooLong = 1026, + UnknownPermission = 1030, + DirectoryRedundantNames = 1031, + UnableToResetAcls = 1032, + MediaExternalCabinetFilenameIllegal = 1033, + DeprecatedPreProcVariable = 1034, + FileSearchFileNameIssue = 1043, + AmbiguousFileOrDirectoryName = 1044, + PossiblyIncorrectTypelibVersion = 1048, + ImplicitComponentPrimaryFeature = 1049, + ActionSequenceCollision = 1050, + ActionSequenceCollision2 = 1051, + SuppressAction2 = 1052, + UnexpectedTableInProduct = 1053, + DeprecatedAttribute = 1054, + MergeRescheduledAction = 1055, + MergeTableFailed = 1056, + DecompiledStandardActionRelativelyScheduledInModule = 1057, + IllegalActionInSequence = 1058, + ExpectedForeignRow = 1059, + DecompilingAsCustomTable = 1060, + IllegalPatchCreationTable = 1061, + SkippingMergeModuleTable = 1062, + SkippingPatchCreationTable = 1063, + UnrepresentableColumnValue = 1064, + DeprecatedTable = 1065, + PatchTable = 1066, + IllegalColumnValue = 1067, + DeprecatedLongNameAttribute = 1069, + GeneratedShortFileNameConflict = 1070, + GeneratedShortFileNameConflict2 = 1071, + DangerousTableInMergeModule = 1072, + DeprecatedLocalizationVariablePrefix = 1073, + PlaceholderValue = 1074, + MissingUpgradeCode = 1075, + ValidationWarning = 1076, + PropertyValueContainsPropertyReference = 1077, + DeprecatedUpgradeProperty = 1078, + EmptyCabinet = 1079, + DeprecatedRegistryElement = 1080, + IllegalRegistryKeyPath = 1081, + DeprecatedPatchSequenceTargetAttribute = 1082, + ProductIdAuthored = 1083, + ImplicitMergeModulePrimaryFeature = 1084, + DeprecatedIgnoreModularizationElement = 1085, + PropertyModularizationSuppressed = 1086, + DeprecatedPackageCompressedAttribute = 1087, + DeprecatedQuestionMarksGuid = 1090, + PackageCodeSet = 1091, + InvalidModuleOrBundleVersion = 1093, + InvalidRemoveFile = 1095, + PreprocessorWarning = 1096, + UpdateOfNonKeyPathFile = 1097, + UnsupportedCommandLineArgument = 1098, + MajorUpgradePatchNotRecommended = 1099, + RetainRangeMismatch = 1100, + DefaultLanguageUsedForVersionedFile = 1101, + DefaultLanguageUsedForUnversionedFile = 1102, + DefaultVersionUsedForUnversionedFile = 1103, + InvalidHigherInstallerVersionInModule = 1104, + ValidationFailedDueToSystemPolicy = 1105, + ColumnsIncompatibleWithInstallerVersion = 1106, + TableIncompatibleWithInstallerVersion = 1107, + DeprecatedCommandLineSwitch = 1108, + UnexpectedEntrySection = 1109, + NewComponentAddedToExistingFeature = 1110, + DeprecatedAttributeValue = 1111, + InsufficientPermissionHarvestTypeLib = 1112, + UnclearShortcut = 1113, + TooManyProgIds = 1114, + BadColumnDataIgnored = 1115, + NullMsiAssemblyNameValue = 1116, + InvalidAttributeCombination = 1117, + VariableDeclarationCollision = 1118, + DuplicatePrimaryKey = 1119, + RequiresMsi200for64bitPackage = 1121, + ExternalCabsAreNotSigned = 1122, + FailedToDeleteTempDir = 1123, + StandardDirectoryConflictInMergeModule = 1124, + PreprocessorUnknownPragma = 1125, + DeprecatedComponentGroupId = 1126, + UxPayloadsOnlySupportEmbedding = 1127, + DiscardedRollbackBoundary = 1129, + DeprecatedElement = 1130, + CannotUpdateCabCache = 1131, + DownloadUrlNotSupportedForBAPayloads = 1132, + DiscouragedAllUsersValue = 1133, + ImplicitlyPerUser = 1134, + PerUserButForcingPerMachine = 1135, + AttributeShouldContain = 1136, + DuplicateComponentGuidsMustHaveMutuallyExclusiveConditions = 1137, + DeprecatedRegistryKeyActionAttribute = 1138, + NotABinaryWixlib = 1139, + NoPerMachineDependencies = 1140, + DownloadUrlNotSupportedForAttachedContainers = 1141, + ReservedAttribute = 1142, + RequiresMsi500forArmPackage = 1143, + RemotePayloadsMustNotAlsoBeCompressed = 1144, + AllChangesIncludedInPatch = 1145, + RelatedAttributeConditionallyIgnored = 1146, + BackslashTerminateInlineDirectorySyntax = 1147, + VersionTruncated = 1148, + ServiceConfigFamilyNotSupported = 1149, + SymbolNotTranslatedToOutput = 1150, + MsiTransactionLimitations = 1151, + PathCanonicalized = 1152, + DetectConditionRecommended = 1153, + ExperimentalBundlePlatform = 1154, + + CollidingModularizationTypes = 1156, + InvalidEnvironmentVariable = 1157, + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnCategory.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnCategory.cs new file mode 100644 index 00000000..0d50b7fd --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnCategory.cs @@ -0,0 +1,91 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + /// + /// Column validation category type + /// + public enum ColumnCategory + { + /// Unknown category, default and invalid. + Unknown, + + /// Text category. + Text, + + /// UpperCase category. + UpperCase, + + /// LowerCase category. + LowerCase, + + /// Integer category. + Integer, + + /// DoubleInteger category. + DoubleInteger, + + /// TimeDate category. + TimeDate, + + /// Identifier category. + Identifier, + + /// Property category. + Property, + + /// Filename category. + Filename, + + /// WildCardFilename category. + WildCardFilename, + + /// Path category. + Path, + + /// Paths category. + Paths, + + /// AnyPath category. + AnyPath, + + /// DefaultDir category. + DefaultDir, + + /// RegPath category. + RegPath, + + /// Formatted category. + Formatted, + + /// Template category. + Template, + + /// Condition category. + Condition, + + /// Guid category. + Guid, + + /// Version category. + Version, + + /// Language category. + Language, + + /// Binary category. + Binary, + + /// CustomSource category. + CustomSource, + + /// Cabinet category. + Cabinet, + + /// Shortcut category. + Shortcut, + + /// Formatted SDDL category. + FormattedSDDLText, + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs new file mode 100644 index 00000000..f4dbab34 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnDefinition.cs @@ -0,0 +1,702 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Globalization; + using System.Xml; + + /// + /// Definition of a table's column. + /// + public sealed class ColumnDefinition : IComparable + { + /// + /// Creates a new column definition. + /// + /// Name of column. + /// Type of column + /// Length of column. + /// If column is primary key. + /// If column is nullable. + /// Validation category for column. + /// Optional minimum value for the column. + /// Optional maximum value for the colum. + /// Optional name of table for foreign key. + /// Optional name of column for foreign key. + /// Set of possible values for column. + /// Description of column in vaidation table. + /// Type of modularization for column + /// If the column is localizable. + /// If whitespace should be preserved in a CDATA node. + /// If not saved to MSI. + public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnCategory category, long? minValue = null, long? maxValue = null, string keyTable = null, int? keyColumn = null, string possibilities = null, string description = null, ColumnModularizeType? modularizeType = null, bool forceLocalizable = false, bool useCData = false, bool unreal = false) + { + this.Name = name; + this.Type = type; + this.Length = length; + this.PrimaryKey = primaryKey; + this.Nullable = nullable; + this.ModularizeType = CalculateModularizationType(modularizeType, category); + this.IsLocalizable = forceLocalizable || ColumnType.Localized == type; + this.MinValue = minValue; + this.MaxValue = maxValue; + this.KeyTable = keyTable; + this.KeyColumn = keyColumn; + this.Category = category; + this.Possibilities = possibilities; + this.Description = description; + this.UseCData = useCData; + this.Unreal = unreal; + } + + /// + /// Gets whether this column was added via a transform. + /// + /// Whether this column was added via a transform. + public bool Added { get; set; } + + /// + /// Gets the name of the column. + /// + /// Name of column. + public string Name { get; } + + /// + /// Gets the type of the column. + /// + /// Type of column. + public ColumnType Type { get; } + + /// + /// Gets the length of the column. + /// + /// Length of column. + public int Length { get; } + + /// + /// Gets if the column is a primary key. + /// + /// true if column is primary key. + public bool PrimaryKey { get; } + + /// + /// Gets if the column is nullable. + /// + /// true if column is nullable. + public bool Nullable { get; } + + /// + /// Gets the type of modularization for this column. + /// + /// Column's modularization type. + public ColumnModularizeType ModularizeType { get; } + + /// + /// Gets if the column is localizable. Can be because the type is localizable, or because the column + /// was explicitly set to be so. + /// + /// true if column is localizable. + public bool IsLocalizable { get; } + + /// + /// Gets the minimum value for the column. + /// + /// Minimum value for the column. + public long? MinValue { get; } + + /// + /// Gets the maximum value for the column. + /// + /// Maximum value for the column. + public long? MaxValue { get; } + + /// + /// Gets the table that has the foreign key for this column + /// + /// Foreign key table name. + public string KeyTable { get; } + + /// + /// Gets the foreign key column that this column refers to. + /// + /// Foreign key column. + public int? KeyColumn { get; } + + /// + /// Gets the validation category for this column. + /// + /// Validation category. + public ColumnCategory Category { get; } + + /// + /// Gets the set of possibilities for this column. + /// + /// Set of possibilities for this column. + public string Possibilities { get; } + + /// + /// Gets the description for this column. + /// + /// Description of column. + public string Description { get; } + + /// + /// Gets if whitespace should be preserved in a CDATA node. + /// + /// true if whitespace should be preserved in a CDATA node. + public bool UseCData { get; } + + /// + /// Gets if column is Unreal. + /// + /// true if column should not be included in idts. + public bool Unreal { get; } + + /// + /// Parses a column definition in a table definition. + /// + /// Reader to get data from. + /// The ColumnDefintion represented by the Xml. + internal static ColumnDefinition Read(XmlReader reader) + { + if (!reader.LocalName.Equals("columnDefinition")) + { + throw new XmlException(); + } + + bool added = false; + ColumnCategory category = ColumnCategory.Unknown; + string description = null; + bool empty = reader.IsEmptyElement; + int? keyColumn = null; + string keyTable = null; + int length = -1; + bool localizable = false; + long? maxValue = null; + long? minValue = null; + var modularize = ColumnModularizeType.None; + string name = null; + bool nullable = false; + string possibilities = null; + bool primaryKey = false; + var type = ColumnType.Unknown; + bool useCData = false; + bool unreal = false; + + // parse the attributes + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "added": + added = reader.Value.Equals("yes"); + break; + case "category": + switch (reader.Value) + { + case "anyPath": + category = ColumnCategory.AnyPath; + break; + case "binary": + category = ColumnCategory.Binary; + break; + case "cabinet": + category = ColumnCategory.Cabinet; + break; + case "condition": + category = ColumnCategory.Condition; + break; + case "customSource": + category = ColumnCategory.CustomSource; + break; + case "defaultDir": + category = ColumnCategory.DefaultDir; + break; + case "doubleInteger": + category = ColumnCategory.DoubleInteger; + break; + case "filename": + category = ColumnCategory.Filename; + break; + case "formatted": + category = ColumnCategory.Formatted; + break; + case "formattedSddl": + category = ColumnCategory.FormattedSDDLText; + break; + case "guid": + category = ColumnCategory.Guid; + break; + case "identifier": + category = ColumnCategory.Identifier; + break; + case "integer": + category = ColumnCategory.Integer; + break; + case "language": + category = ColumnCategory.Language; + break; + case "lowerCase": + category = ColumnCategory.LowerCase; + break; + case "path": + category = ColumnCategory.Path; + break; + case "paths": + category = ColumnCategory.Paths; + break; + case "property": + category = ColumnCategory.Property; + break; + case "regPath": + category = ColumnCategory.RegPath; + break; + case "shortcut": + category = ColumnCategory.Shortcut; + break; + case "template": + category = ColumnCategory.Template; + break; + case "text": + category = ColumnCategory.Text; + break; + case "timeDate": + category = ColumnCategory.TimeDate; + break; + case "upperCase": + category = ColumnCategory.UpperCase; + break; + case "version": + category = ColumnCategory.Version; + break; + case "wildCardFilename": + category = ColumnCategory.WildCardFilename; + break; + default: + throw new InvalidOperationException(); + } + break; + case "description": + description = reader.Value; + break; + case "keyColumn": + keyColumn = Convert.ToInt32(reader.Value, 10); + break; + case "keyTable": + keyTable = reader.Value; + break; + case "length": + length = Convert.ToInt32(reader.Value, 10); + break; + case "localizable": + localizable = reader.Value.Equals("yes"); + break; + case "maxValue": + maxValue = Convert.ToInt32(reader.Value, 10); + break; + case "minValue": + minValue = Convert.ToInt32(reader.Value, 10); + break; + case "modularize": + switch (reader.Value) + { + case "column": + modularize = ColumnModularizeType.Column; + break; + case "companionFile": + modularize = ColumnModularizeType.CompanionFile; + break; + case "condition": + modularize = ColumnModularizeType.Condition; + break; + case "controlEventArgument": + modularize = ColumnModularizeType.ControlEventArgument; + break; + case "controlText": + modularize = ColumnModularizeType.ControlText; + break; + case "icon": + modularize = ColumnModularizeType.Icon; + break; + case "none": + modularize = ColumnModularizeType.None; + break; + case "property": + modularize = ColumnModularizeType.Property; + break; + case "semicolonDelimited": + modularize = ColumnModularizeType.SemicolonDelimited; + break; + default: + throw new XmlException(); + } + break; + case "name": + switch (reader.Value) + { + case "CREATE": + case "DELETE": + case "DROP": + case "INSERT": + throw new XmlException(); + default: + name = reader.Value; + break; + } + break; + case "nullable": + nullable = reader.Value.Equals("yes"); + break; + case "primaryKey": + primaryKey = reader.Value.Equals("yes"); + break; + case "set": + possibilities = reader.Value; + break; + case "type": + switch (reader.Value) + { + case "localized": + type = ColumnType.Localized; + break; + case "number": + type = ColumnType.Number; + break; + case "object": + type = ColumnType.Object; + break; + case "string": + type = ColumnType.String; + break; + case "preserved": + type = ColumnType.Preserved; + break; + default: + throw new XmlException(); + } + break; + case "useCData": + useCData = reader.Value.Equals("yes"); + break; + case "unreal": + unreal = reader.Value.Equals("yes"); + break; + } + } + + // parse the child elements (there should be none) + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + throw new XmlException(); + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + ColumnDefinition columnDefinition = new ColumnDefinition(name, type, length, primaryKey, nullable, category, minValue, maxValue, keyTable, keyColumn, possibilities, description, modularize, localizable, useCData, unreal); + columnDefinition.Added = added; + + return columnDefinition; + } + + /// + /// Persists a ColumnDefinition in an XML format. + /// + /// XmlWriter where the Output should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("columnDefinition", TableDefinitionCollection.XmlNamespaceUri); + + writer.WriteAttributeString("name", this.Name); + + switch (this.Type) + { + case ColumnType.Localized: + writer.WriteAttributeString("type", "localized"); + break; + case ColumnType.Number: + writer.WriteAttributeString("type", "number"); + break; + case ColumnType.Object: + writer.WriteAttributeString("type", "object"); + break; + case ColumnType.String: + writer.WriteAttributeString("type", "string"); + break; + case ColumnType.Preserved: + writer.WriteAttributeString("type", "preserved"); + break; + } + + writer.WriteAttributeString("length", this.Length.ToString(CultureInfo.InvariantCulture.NumberFormat)); + + if (this.PrimaryKey) + { + writer.WriteAttributeString("primaryKey", "yes"); + } + + if (this.Nullable) + { + writer.WriteAttributeString("nullable", "yes"); + } + + if (this.IsLocalizable) + { + writer.WriteAttributeString("localizable", "yes"); + } + + if (this.Added) + { + writer.WriteAttributeString("added", "yes"); + } + + switch (this.ModularizeType) + { + case ColumnModularizeType.Column: + writer.WriteAttributeString("modularize", "column"); + break; + case ColumnModularizeType.CompanionFile: + writer.WriteAttributeString("modularize", "companionFile"); + break; + case ColumnModularizeType.Condition: + writer.WriteAttributeString("modularize", "condition"); + break; + case ColumnModularizeType.ControlEventArgument: + writer.WriteAttributeString("modularize", "controlEventArgument"); + break; + case ColumnModularizeType.ControlText: + writer.WriteAttributeString("modularize", "controlText"); + break; + case ColumnModularizeType.Icon: + writer.WriteAttributeString("modularize", "icon"); + break; + case ColumnModularizeType.None: + // this is the default value + break; + case ColumnModularizeType.Property: + writer.WriteAttributeString("modularize", "property"); + break; + case ColumnModularizeType.SemicolonDelimited: + writer.WriteAttributeString("modularize", "semicolonDelimited"); + break; + } + + if (this.MinValue.HasValue) + { + writer.WriteAttributeString("minValue", this.MinValue.Value.ToString(CultureInfo.InvariantCulture.NumberFormat)); + } + + if (this.MaxValue.HasValue) + { + writer.WriteAttributeString("maxValue", this.MaxValue.Value.ToString(CultureInfo.InvariantCulture.NumberFormat)); + } + + if (!String.IsNullOrEmpty(this.KeyTable)) + { + writer.WriteAttributeString("keyTable", this.KeyTable); + } + + if (this.KeyColumn.HasValue) + { + writer.WriteAttributeString("keyColumn", this.KeyColumn.Value.ToString(CultureInfo.InvariantCulture.NumberFormat)); + } + + switch (this.Category) + { + case ColumnCategory.AnyPath: + writer.WriteAttributeString("category", "anyPath"); + break; + case ColumnCategory.Binary: + writer.WriteAttributeString("category", "binary"); + break; + case ColumnCategory.Cabinet: + writer.WriteAttributeString("category", "cabinet"); + break; + case ColumnCategory.Condition: + writer.WriteAttributeString("category", "condition"); + break; + case ColumnCategory.CustomSource: + writer.WriteAttributeString("category", "customSource"); + break; + case ColumnCategory.DefaultDir: + writer.WriteAttributeString("category", "defaultDir"); + break; + case ColumnCategory.DoubleInteger: + writer.WriteAttributeString("category", "doubleInteger"); + break; + case ColumnCategory.Filename: + writer.WriteAttributeString("category", "filename"); + break; + case ColumnCategory.Formatted: + writer.WriteAttributeString("category", "formatted"); + break; + case ColumnCategory.FormattedSDDLText: + writer.WriteAttributeString("category", "formattedSddl"); + break; + case ColumnCategory.Guid: + writer.WriteAttributeString("category", "guid"); + break; + case ColumnCategory.Identifier: + writer.WriteAttributeString("category", "identifier"); + break; + case ColumnCategory.Integer: + writer.WriteAttributeString("category", "integer"); + break; + case ColumnCategory.Language: + writer.WriteAttributeString("category", "language"); + break; + case ColumnCategory.LowerCase: + writer.WriteAttributeString("category", "lowerCase"); + break; + case ColumnCategory.Path: + writer.WriteAttributeString("category", "path"); + break; + case ColumnCategory.Paths: + writer.WriteAttributeString("category", "paths"); + break; + case ColumnCategory.Property: + writer.WriteAttributeString("category", "property"); + break; + case ColumnCategory.RegPath: + writer.WriteAttributeString("category", "regPath"); + break; + case ColumnCategory.Shortcut: + writer.WriteAttributeString("category", "shortcut"); + break; + case ColumnCategory.Template: + writer.WriteAttributeString("category", "template"); + break; + case ColumnCategory.Text: + writer.WriteAttributeString("category", "text"); + break; + case ColumnCategory.TimeDate: + writer.WriteAttributeString("category", "timeDate"); + break; + case ColumnCategory.UpperCase: + writer.WriteAttributeString("category", "upperCase"); + break; + case ColumnCategory.Version: + writer.WriteAttributeString("category", "version"); + break; + case ColumnCategory.WildCardFilename: + writer.WriteAttributeString("category", "wildCardFilename"); + break; + } + + if (!String.IsNullOrEmpty(this.Possibilities)) + { + writer.WriteAttributeString("set", this.Possibilities); + } + + if (!String.IsNullOrEmpty(this.Description)) + { + writer.WriteAttributeString("description", this.Description); + } + + if (this.UseCData) + { + writer.WriteAttributeString("useCData", "yes"); + } + + if (this.Unreal) + { + writer.WriteAttributeString("unreal", "yes"); + } + + writer.WriteEndElement(); + } + + /// + /// Compare this column definition to another column definition. + /// + /// + /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. + /// + /// The to compare with this one. + /// 0 if the columns' core propeties are the same; otherwise, non-0. + public int CompareTo(ColumnDefinition other) + { + // by definition, this object is greater than null + if (null == other) + { + return 1; + } + + // compare column names + int ret = String.Compare(this.Name, other.Name, StringComparison.Ordinal); + + // compare column types + if (0 == ret) + { + ret = this.Type == other.Type ? 0 : -1; + + // compare column lengths + if (0 == ret) + { + ret = this.Length == other.Length ? 0 : -1; + + // compare whether both are primary keys + if (0 == ret) + { + ret = this.PrimaryKey == other.PrimaryKey ? 0 : -1; + + // compare nullability + if (0 == ret) + { + ret = this.Nullable == other.Nullable ? 0 : -1; + } + } + } + } + + return ret; + } + + private static ColumnModularizeType CalculateModularizationType(ColumnModularizeType? modularizeType, ColumnCategory category) + { + if (modularizeType.HasValue) + { + return modularizeType.Value; + } + + switch (category) + { + case ColumnCategory.Identifier: + case ColumnCategory.CustomSource: + return ColumnModularizeType.Column; + + case ColumnCategory.Condition: + return ColumnModularizeType.Condition; + + case ColumnCategory.AnyPath: + case ColumnCategory.Formatted: + case ColumnCategory.FormattedSDDLText: + case ColumnCategory.Path: + case ColumnCategory.Paths: + case ColumnCategory.RegPath: + case ColumnCategory.Template: + return ColumnModularizeType.Property; + + case ColumnCategory.Shortcut: + return ColumnModularizeType.Property; + } + + return ColumnModularizeType.None; + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs new file mode 100644 index 00000000..d44f55a7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnModularizeType.cs @@ -0,0 +1,37 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + /// + /// Specifies if the column should be modularized. + /// + public enum ColumnModularizeType + { + /// Column should not be modularized. + None, + + /// Column should be modularized. + Column, + + /// When the column is an primary or foreign key to the Icon table it should be modularized special. + Icon, + + /// When the column is a companion file it should be modularized. + CompanionFile, + + /// Column is a condition and should be modularized. + Condition, + + /// Special modularization type for the ControlEvent table's Argument column. + ControlEventArgument, + + /// Special modularization type for the Control table's Text column. + ControlText, + + /// Any Properties in the column should be modularized. + Property, + + /// Semi-colon list of keys, all of which need to be modularized. + SemicolonDelimited, + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnType.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnType.cs new file mode 100644 index 00000000..423125db --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/ColumnType.cs @@ -0,0 +1,28 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + /// + /// Defines MSI column types. + /// + public enum ColumnType + { + /// Unknown column type, default and invalid. + Unknown, + + /// Column is a string. + String, + + /// Column is a localizable string. + Localized, + + /// Column is a number. + Number, + + /// Column is a binary stream. + Object, + + /// Column is a string that is preserved in transforms (like Object). + Preserved, + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Field.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Field.cs new file mode 100644 index 00000000..e5edd552 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Field.cs @@ -0,0 +1,304 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Diagnostics; + using System.Globalization; + using System.Xml; + + /// + /// Field containing data for a column in a row. + /// + public class Field + { + private object data; + + /// + /// Instantiates a new Field. + /// + /// Column definition for this field. + protected Field(ColumnDefinition columnDefinition) + { + this.Column = columnDefinition; + } + + /// + /// Gets or sets the column definition for this field. + /// + /// Column definition. + public ColumnDefinition Column { get; private set; } + + /// + /// Gets or sets the data for this field. + /// + /// Data in the field. + public object Data + { + get => this.data; + set => this.data = this.ValidateValue(this.Column, value); + } + + /// + /// Gets or sets whether this field is modified. + /// + /// Whether this field is modified. + public bool Modified { get; set; } + + /// + /// Gets or sets the previous data. + /// + /// The previous data. + public string PreviousData { get; set; } + + /// + /// Instantiate a new Field object of the correct type. + /// + /// The column definition for the field. + /// The new Field object. + public static Field Create(ColumnDefinition columnDefinition) + { + return (ColumnType.Object == columnDefinition.Type) ? new ObjectField(columnDefinition) : new Field(columnDefinition); + } + + /// + /// Sets the value of a particular field in the row without validating. + /// + /// Value of a field in the row. + /// True if successful, false if validation failed. + public bool BestEffortSet(object value) + { + bool success = true; + object bestEffortValue = value; + + try + { + bestEffortValue = this.ValidateValue(this.Column, value); + } + catch (InvalidOperationException) + { + success = false; + } + + this.data = bestEffortValue; + return success; + } + + /// + /// Determine if this field is identical to another field. + /// + /// The other field to compare to. + /// true if they are equal; false otherwise. + public bool IsIdentical(Field field) + { + return (this.Column.Name == field.Column.Name && + ((null != this.data && this.data.Equals(field.data)) || (null == this.data && null == field.data))); + } + + /// + /// Overrides the built in object implementation to return the field's data as a string. + /// + /// Field's data as a string. + public override string ToString() + { + return this.AsString(); + } + + /// + /// Gets the field as an integer. + /// + /// Field's data as an integer. + public int AsInteger() + { + return (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); + } + + /// + /// Gets the field as an integer that could be null. + /// + /// Field's data as an integer that could be null. + public int? AsNullableInteger() + { + return (null == this.data) ? (int?)null : (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); + } + + /// + /// Gets the field as a string. + /// + /// Field's data as a string. + public string AsString() + { + return (null == this.data) ? null : Convert.ToString(this.data, CultureInfo.InvariantCulture); + } + + /// + /// Validate a value for a column. + /// + /// The column. + /// The value to validate. + /// Validated value. + internal object ValidateValue(ColumnDefinition column, object value) + { + if (null == value) + { + if (!column.Nullable) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with a null value because this is a required field.", column.Name)); + } + } + else // check numerical values against their specified minimum and maximum values. + { + if (ColumnType.Number == column.Type && !column.IsLocalizable) + { + // For now all enums in the tables can be represented by integers. This if statement would need to + // be enhanced if that ever changes. + if (value is int || value.GetType().IsEnum) + { + var intValue = (int)value; + + // validate the value against the minimum allowed value + if (column.MinValue.HasValue && column.MinValue > intValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", column.Name, intValue, column.MinValue)); + } + + // validate the value against the maximum allowed value + if (column.MaxValue.HasValue && column.MaxValue < intValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", column.Name, intValue, column.MaxValue)); + } + + return intValue; + } + else if (value is long longValue) + { + // validate the value against the minimum allowed value + if (column.MinValue.HasValue && column.MinValue > longValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", column.Name, longValue, column.MinValue)); + } + + // validate the value against the maximum allowed value + if (column.MaxValue.HasValue && column.MaxValue < longValue) + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", column.Name, longValue, column.MaxValue)); + } + + return longValue; + } + else + { + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set number column '{0}' with a value of type '{1}'.", column.Name, value.GetType().ToString())); + } + } + else + { + if (!(value is string)) + { + //throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set string column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); + return value.ToString(); + } + } + } + + return value; + } + + /// + /// Parse a field from the xml. + /// + /// XmlReader where the intermediate is persisted. + internal virtual void Read(XmlReader reader) + { + Debug.Assert("field" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "modified": + this.Modified = reader.Value.Equals("yes"); + break; + case "previousData": + this.PreviousData = reader.Value; + break; + } + } + + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + throw new XmlException(); + case XmlNodeType.CDATA: + case XmlNodeType.Text: + case XmlNodeType.SignificantWhitespace: + if (0 < reader.Value.Length) + { + if (ColumnType.Number == this.Column.Type && !this.Column.IsLocalizable) + { + // older wix files could persist data as a long value (which would overflow an int) + // since the Convert class always throws exceptions for overflows, read in integral + // values as a long to avoid the overflow, then cast it to an int (this operation can + // overflow without throwing an exception inside an unchecked block) + this.data = unchecked((int)Convert.ToInt64(reader.Value, CultureInfo.InvariantCulture)); + } + else + { + this.data = reader.Value; + } + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + } + + /// + /// Persists a field in an XML format. + /// + /// XmlWriter where the Field should persist itself as XML. + internal virtual void Write(XmlWriter writer) + { + writer.WriteStartElement("field", WindowsInstallerData.XmlNamespaceUri); + + if (this.Modified) + { + writer.WriteAttributeString("modified", "yes"); + } + + if (null != this.PreviousData) + { + writer.WriteAttributeString("previousData", this.PreviousData); + } + + // Convert the data to a string that will persist nicely (nulls as String.Empty). + string text = Convert.ToString(this.data, CultureInfo.InvariantCulture); + if (this.Column.UseCData) + { + writer.WriteCData(text); + } + else + { + writer.WriteString(text); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs new file mode 100644 index 00000000..6ffdf041 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/IntermediateLevels.cs @@ -0,0 +1,8 @@ +namespace WixToolset.Data.WindowsInstaller +{ + public static class IntermediateLevels + { + // TODO: These are placeholder names until we (hopefully) come up with better ones. + public const string FullyBound = "msiFullyBound"; + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/ObjectField.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/ObjectField.cs new file mode 100644 index 00000000..f10837c1 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/ObjectField.cs @@ -0,0 +1,183 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Diagnostics; + using System.Globalization; + using System.Xml; + + /// + /// Field containing data for an object column in a row. + /// + public sealed class ObjectField : Field + { + /// + /// Instantiates a new Field. + /// + /// Column definition for this field. + internal ObjectField(ColumnDefinition columnDefinition) : + base(columnDefinition) + { + } + + /// + /// Gets or sets the index of the embedded file in a library. + /// + /// The index of the embedded file. + public int? EmbeddedFileIndex { get; set; } + + /// + /// Gets or sets the previous index of the embedded file in the library. + /// + /// The previous index of the embedded file. + public int? PreviousEmbeddedFileIndex { get; set; } + + /// + /// Gets or sets the path to the embedded cabinet of the previous file. + /// + /// The path of the cabinet containing the previous file. + public Uri PreviousBaseUri { get; set; } + + /// + /// Gets the base URI of the object field. + /// + /// The base URI of the object field. + public Uri BaseUri { get; private set; } + + /// + /// Gets or sets the unresolved data for this field. + /// + /// Unresolved Data in the field. + public string UnresolvedData { get; set; } + + /// + /// Gets or sets the unresolved previous data. + /// + /// The unresolved previous data. + public string UnresolvedPreviousData { get; set; } + + /// + /// Parse a field from the xml. + /// + /// XmlReader where the intermediate is persisted. + internal override void Read(XmlReader reader) + { + Debug.Assert("field" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + + this.BaseUri = new Uri(reader.BaseURI); + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "cabinetFileId": + this.EmbeddedFileIndex = Convert.ToInt32(reader.Value); + break; + case "modified": + this.Modified = reader.Value.Equals("yes"); + break; + case "previousData": + this.PreviousData = reader.Value; + break; + case "unresolvedPreviousData": + this.UnresolvedPreviousData = reader.Value; + break; + case "unresolvedData": + this.UnresolvedData = reader.Value; + break; + case "previousCabinetFileId": + this.PreviousEmbeddedFileIndex = Convert.ToInt32(reader.Value); + break; + } + } + + if (!empty) + { + bool done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + throw new XmlException(); + case XmlNodeType.CDATA: + case XmlNodeType.Text: + if (0 < reader.Value.Length) + { + this.Data = reader.Value; + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + } + + /// + /// Persists a field in an XML format. + /// + /// XmlWriter where the Field should persist itself as XML. + internal override void Write(XmlWriter writer) + { + writer.WriteStartElement("field", WindowsInstallerData.XmlNamespaceUri); + + if (this.EmbeddedFileIndex.HasValue) + { + writer.WriteStartAttribute("cabinetFileId"); + writer.WriteValue(this.EmbeddedFileIndex); + writer.WriteEndAttribute(); + } + + if (this.Modified) + { + writer.WriteAttributeString("modified", "yes"); + } + + if (null != this.UnresolvedPreviousData) + { + writer.WriteAttributeString("unresolvedPreviousData", this.UnresolvedPreviousData); + } + + if (null != this.PreviousData) + { + writer.WriteAttributeString("previousData", this.PreviousData); + } + + if (null != this.UnresolvedData) + { + writer.WriteAttributeString("unresolvedData", this.UnresolvedData); + } + + if (this.PreviousEmbeddedFileIndex.HasValue) + { + writer.WriteStartAttribute("previousCabinetFileId"); + writer.WriteValue(this.PreviousEmbeddedFileIndex); + writer.WriteEndAttribute(); + } + + // Convert the data to a string that will persist nicely (nulls as String.Empty). + string text = Convert.ToString(this.Data, CultureInfo.InvariantCulture); + if (this.Column.UseCData) + { + writer.WriteCData(text); + } + else + { + writer.WriteString(text); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs new file mode 100644 index 00000000..f44082d3 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Row.cs @@ -0,0 +1,390 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Diagnostics; + using System.Globalization; + using System.Text; + using System.Xml; + + /// + /// Row containing data for a table. + /// + public class Row + { + private static long rowCount; + + /// + /// Creates a row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this row belongs to and should get its column definitions from. + /// The compiler should use this constructor exclusively. + public Row(SourceLineNumber sourceLineNumbers, Table table) + : this(sourceLineNumbers, table.Definition) + { + this.Table = table; + } + + /// + /// Creates a row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this row should get its column definitions from. + /// This constructor is used in cases where there isn't a clear owner of the row. The linker uses this constructor for the rows it generates. + public Row(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) + { + this.Number = rowCount++; + this.SourceLineNumbers = sourceLineNumbers; + this.Fields = new Field[tableDefinition.Columns.Length]; + this.TableDefinition = tableDefinition; + + for (var i = 0; i < this.Fields.Length; ++i) + { + this.Fields[i] = Field.Create(this.TableDefinition.Columns[i]); + } + } + + /// + /// Gets or sets the row transform operation. + /// + /// The row transform operation. + public RowOperation Operation { get; set; } + + /// + /// Gets or sets wether the row is a duplicate of another row thus redundant. + /// + public bool Redundant { get; set; } + + /// + /// Gets or sets the SectionId property on the row. + /// + /// The SectionId property on the row. + public string SectionId { get; set; } + + /// + /// Gets the source file and line number for the row. + /// + /// Source file and line number. + public SourceLineNumber SourceLineNumbers { get; } + + /// + /// Gets the table this row belongs to. + /// + /// null if Row does not belong to a Table, or owner Table otherwise. + public Table Table { get; } + + /// + /// Gets the table definition for this row. + /// + /// A Row always has a TableDefinition, even if the Row does not belong to a Table. + /// TableDefinition for Row. + public TableDefinition TableDefinition { get; } + + /// + /// Gets the fields contained by this row. + /// + /// Array of field objects + public Field[] Fields { get; } + + /// + /// Gets the unique number for the row. + /// + /// Number for row. + public long Number { get; } + + /// + /// Gets or sets the value of a particular field in the row. + /// + /// field index. + /// Value of a field in the row. + public object this[int field] + { + get { return this.Fields[field].Data; } + set { this.Fields[field].Data = value; } + } + + /// + /// Gets the field as an integer. + /// + /// Field's data as an integer. + public int FieldAsInteger(int field) + { + return this.Fields[field].AsInteger(); + } + + /// + /// Gets the field as an integer that could be null. + /// + /// Field's data as an integer that could be null. + public int? FieldAsNullableInteger(int field) + { + return this.Fields[field].AsNullableInteger(); + } + + /// + /// Gets the field as a string. + /// + /// Field's data as a string. + public string FieldAsString(int field) + { + return this.Fields[field].AsString(); + } + + /// + /// Sets the value of a particular field in the row without validating. + /// + /// field index. + /// Value of a field in the row. + /// True if successful, false if validation failed. + public bool BestEffortSetField(int field, object value) + { + return this.Fields[field].BestEffortSet(value); + } + + /// + /// Get the value used to represent the row in a keyed row collection. + /// + /// Primary key or row number if no primary key is available. + public string GetKey() + { + return this.GetPrimaryKey() ?? Convert.ToString(this.Number, CultureInfo.InvariantCulture); + } + + /// + /// Get the primary key of this row. + /// + /// Delimiter character for multiple column primary keys. + /// The primary key or null if the row's table has no primary key columns. + public string GetPrimaryKey(char delimiter = '/') + { + return this.GetPrimaryKey(delimiter, String.Empty); + } + + /// + /// Get the primary key of this row. + /// + /// Delimiter character for multiple column primary keys. + /// String to represent null values in the primary key. + /// The primary key or null if the row's table has no primary key columns. + public string GetPrimaryKey(char delimiter, string nullReplacement) + { + var foundPrimaryKey = false; + var primaryKey = new StringBuilder(); + + foreach (var field in this.Fields) + { + if (field.Column.PrimaryKey) + { + if (foundPrimaryKey) + { + primaryKey.Append(delimiter); + } + + primaryKey.Append((null == field.Data) ? nullReplacement : Convert.ToString(field.Data, CultureInfo.InvariantCulture)); + + foundPrimaryKey = true; + } + else // primary keys must be the first columns of a row so the first non-primary key means we can stop looking. + { + break; + } + } + + return foundPrimaryKey ? primaryKey.ToString() : null; + } + + /// + /// Returns true if the specified field is null. + /// + /// Index of the field to check. + /// true if the specified field is null, false otherwise. + public bool IsColumnNull(int field) => this.Fields[field].Data == null; + + /// + /// Returns true if the specified field is null or an empty string. + /// + /// Index of the field to check. + /// true if the specified field is null or an empty string, false otherwise. + public bool IsColumnEmpty(int field) + { + if (this.IsColumnNull(field)) + { + return true; + } + + string dataString = this.Fields[field].Data as string; + if (null != dataString && 0 == dataString.Length) + { + return true; + } + + return false; + } + + /// + /// Tests if the passed in row is identical. + /// + /// Row to compare against. + /// True if two rows are identical. + public bool IsIdentical(Row row) + { + bool identical = (this.TableDefinition.Name == row.TableDefinition.Name && this.Fields.Length == row.Fields.Length); + + for (var i = 0; identical && i < this.Fields.Length; ++i) + { + if (!(this.Fields[i].IsIdentical(row.Fields[i]))) + { + identical = false; + } + } + + return identical; + } + + /// + /// Copies this row to the target row. + /// + /// Row to copy data to. + public void CopyTo(Row target) + { + for (var i = 0; i < this.Fields.Length; i++) + { + target[i] = this[i]; + } + } + + /// + /// Returns a string representation of the Row. + /// + /// A string representation of the Row. + public override string ToString() + { + return String.Join("/", (object[])this.Fields); + } + + /// + /// Creates a Row from the XmlReader. + /// + /// Reader to get data from. + /// Table for this row. + /// New row object. + internal static Row Read(XmlReader reader, Table table) + { + Debug.Assert("row" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + RowOperation operation = RowOperation.None; + bool redundant = false; + string sectionId = null; + SourceLineNumber sourceLineNumbers = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "op": + operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); + break; + case "redundant": + redundant = reader.Value.Equals("yes"); + break; + case "sectionId": + sectionId = reader.Value; + break; + case "sourceLineNumber": + sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); + break; + } + } + + var row = table.CreateRow(sourceLineNumbers); + row.Operation = operation; + row.Redundant = redundant; + row.SectionId = sectionId; + + // loop through all the fields in a row + if (!empty) + { + var done = false; + var field = 0; + + // loop through all the fields in a row + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "field": + if (row.Fields.Length <= field) + { + if (!reader.IsEmptyElement) + { + throw new XmlException(); + } + } + else + { + row.Fields[field].Read(reader); + } + ++field; + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return row; + } + + /// + /// Persists a row in an XML format. + /// + /// XmlWriter where the Row should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("row", WindowsInstallerData.XmlNamespaceUri); + + if (RowOperation.None != this.Operation) + { + writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); + } + + if (this.Redundant) + { + writer.WriteAttributeString("redundant", "yes"); + } + + if (null != this.SectionId) + { + writer.WriteAttributeString("sectionId", this.SectionId); + } + + if (null != this.SourceLineNumbers) + { + writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); + } + + for (int i = 0; i < this.Fields.Length; ++i) + { + this.Fields[i].Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/RowOperation.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/RowOperation.cs new file mode 100644 index 00000000..22908d2b --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/RowOperation.cs @@ -0,0 +1,30 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + /// + /// The row transform operations. + /// + public enum RowOperation + { + /// + /// No operation. + /// + None, + + /// + /// Added row. + /// + Add, + + /// + /// Deleted row. + /// + Delete, + + /// + /// Modified row. + /// + Modify + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs new file mode 100644 index 00000000..20482560 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/BBControlRow.cs @@ -0,0 +1,118 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + using System.Diagnostics.CodeAnalysis; + + /// + /// Specialization of a row for the Control table. + /// + public sealed class BBControlRow : Row + { + /// + /// Creates a Control row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Control row belongs to and should get its column definitions from. + public BBControlRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public BBControlRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + + /// + /// Gets or sets the dialog of the Control row. + /// + /// Primary key of the Control row. + public string Billboard + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the identifier for this Control row. + /// + /// Identifier for this Control row. + public string BBControl + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the type of the BBControl. + /// + /// Name of the BBControl. + [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] + public string Type + { + get { return this.Fields[2].AsString(); } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the X location of the BBControl. + /// + /// X location of the BBControl. + public string X + { + get { return this.Fields[3].AsString(); } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the Y location of the BBControl. + /// + /// Y location of the BBControl. + public string Y + { + get { return this.Fields[4].AsString(); } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the width of the BBControl. + /// + /// Width of the BBControl. + public string Width + { + get { return this.Fields[5].AsString(); } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the height of the BBControl. + /// + /// Height of the BBControl. + public string Height + { + get { return this.Fields[6].AsString(); } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets the attributes for the BBControl. + /// + /// Attributes for the BBControl. + public int Attributes + { + get { return (int)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + /// + /// Gets or sets the text of the BBControl. + /// + /// Text of the BBControl. + public string Text + { + get { return (string)this.Fields[8].Data; } + set { this.Fields[8].Data = value; } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs new file mode 100644 index 00000000..b7836241 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ComponentRow.cs @@ -0,0 +1,247 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + /// + /// Specialization of a row for the Component table. + /// + public sealed class ComponentRow : Row + { + private string sourceFile; + + /// + /// Creates a Control row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Component row belongs to and should get its column definitions from. + public ComponentRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public ComponentRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + + /// + /// Gets or sets the identifier for this Component row. + /// + /// Identifier for this Component row. + public string Component + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the ComponentId for this Component row. + /// + /// guid for this Component row. + public string Guid + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the Directory_ of the Component. + /// + /// Directory of the Component. + public string Directory + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the local only attribute of the Component. + /// + /// Local only attribute of the component. + public bool IsLocalOnly + { + get { return WindowsInstallerConstants.MsidbComponentAttributesLocalOnly == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesLocalOnly); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesLocalOnly; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesLocalOnly; + } + } + } + + /// + /// Gets or sets the source only attribute of the Component. + /// + /// Source only attribute of the component. + public bool IsSourceOnly + { + get { return WindowsInstallerConstants.MsidbComponentAttributesSourceOnly == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesSourceOnly); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesSourceOnly; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesSourceOnly; + } + } + } + + /// + /// Gets or sets the optional attribute of the Component. + /// + /// Optional attribute of the component. + public bool IsOptional + { + get { return WindowsInstallerConstants.MsidbComponentAttributesOptional == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesOptional); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesOptional; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesOptional; + } + } + } + + /// + /// Gets or sets the registry key path attribute of the Component. + /// + /// Registry key path attribute of the component. + public bool IsRegistryKeyPath + { + get { return WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesRegistryKeyPath; + } + } + } + + /// + /// Gets or sets the shared dll ref count attribute of the Component. + /// + /// Shared dll ref countattribute of the component. + public bool IsSharedDll + { + get { return WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesSharedDllRefCount; + } + } + } + + /// + /// Gets or sets the permanent attribute of the Component. + /// + /// Permanent attribute of the component. + public bool IsPermanent + { + get { return WindowsInstallerConstants.MsidbComponentAttributesPermanent == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesPermanent); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesPermanent; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesPermanent; + } + } + } + + /// + /// Gets or sets the ODBC data source key path attribute of the Component. + /// + /// ODBC data source key path attribute of the component. + public bool IsOdbcDataSourceKeyPath + { + get { return WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributesODBCDataSource; + } + } + } + + /// + /// Gets or sets the 64 bit attribute of the Component. + /// + /// 64-bitness of the component. + public bool Is64Bit + { + get { return WindowsInstallerConstants.MsidbComponentAttributes64bit == ((int)this.Fields[3].Data & WindowsInstallerConstants.MsidbComponentAttributes64bit); } + set + { + if (value) + { + this.Fields[3].Data = (int)this.Fields[3].Data | WindowsInstallerConstants.MsidbComponentAttributes64bit; + } + else + { + this.Fields[3].Data = (int)this.Fields[3].Data & ~WindowsInstallerConstants.MsidbComponentAttributes64bit; + } + } + } + + /// + /// Gets or sets the condition of the Component. + /// + /// Condition of the Component. + public string Condition + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the key path of the Component. + /// + /// Key path of the Component. + public string KeyPath + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the source location to the file to fill in the Text of the control. + /// + /// Source location to the file to fill in the Text of the control. + public string SourceFile + { + get { return this.sourceFile; } + set { this.sourceFile = value; } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs new file mode 100644 index 00000000..e0ae2de0 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/ControlRow.cs @@ -0,0 +1,148 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + using System.Diagnostics.CodeAnalysis; + + /// + /// Specialization of a row for the Control table. + /// + public sealed class ControlRow : Row + { + /// + /// Creates a Control row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Control row belongs to and should get its column definitions from. + public ControlRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public ControlRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + + /// + /// Gets or sets the dialog of the Control row. + /// + /// Primary key of the Control row. + public string Dialog + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the identifier for this Control row. + /// + /// Identifier for this Control row. + public string Control + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the type of the control. + /// + /// Name of the control. + [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] + public string Type + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the X location of the control. + /// + /// X location of the control. + public string X + { + get { return this.Fields[3].AsString(); } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the Y location of the control. + /// + /// Y location of the control. + public string Y + { + get { return this.Fields[4].AsString(); } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the width of the control. + /// + /// Width of the control. + public string Width + { + get { return this.Fields[5].AsString(); } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets or sets the height of the control. + /// + /// Height of the control. + public string Height + { + get { return this.Fields[6].AsString(); } + set { this.Fields[6].Data = value; } + } + + /// + /// Gets or sets the attributes for the control. + /// + /// Attributes for the control. + public int Attributes + { + get { return (int)this.Fields[7].Data; } + set { this.Fields[7].Data = value; } + } + + /// + /// Gets or sets the Property associated with the control. + /// + /// Property associated with the control. + public string Property + { + get { return (string)this.Fields[8].Data; } + set { this.Fields[8].Data = value; } + } + + /// + /// Gets or sets the text of the control. + /// + /// Text of the control. + public string Text + { + get { return (string)this.Fields[9].Data; } + set { this.Fields[9].Data = value; } + } + + /// + /// Gets or sets the next control. + /// + /// Next control. + public string Next + { + get { return (string)this.Fields[10].Data; } + set { this.Fields[10].Data = value; } + } + + /// + /// Gets or sets the help for the control. + /// + /// Help for the control. + public string Help + { + get { return (string)this.Fields[11].Data; } + set { this.Fields[11].Data = value; } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs new file mode 100644 index 00000000..1cf8cf12 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs @@ -0,0 +1,214 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + using System.Diagnostics; + + /// + /// Specialization of a row for the file table. + /// + public sealed class FileRow : Row + { + /// + /// Creates a File row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this File row belongs to and should get its column definitions from. + public FileRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + /// + /// Creates a File row that does not belong to a table. + /// + /// Original source lines for this row. + /// TableDefinition this Media row belongs to and should get its column definitions from. + public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) + : base(sourceLineNumbers, tableDefinition) + { + } + + /// + /// Gets or sets the primary key of the file row. + /// + /// Primary key of the file row. + public string File + { + get => this.FieldAsString(0); + set => this.Fields[0].Data = value; + } + + /// + /// Gets or sets the component this file row belongs to. + /// + /// Component this file row belongs to. + public string Component + { + get => this.FieldAsString(1); + set => this.Fields[1].Data = value; + } + + /// + /// Gets or sets the name of the file. + /// + /// Name of the file. + public string FileName + { + get => this.FieldAsString(2); + set => this.Fields[2].Data = value; + } + + /// + /// Gets or sets the real filesystem name of the file (without a pipe). This is typically the long name of the file. + /// However, if no long name is available, falls back to the short name. + /// + /// Long Name of the file - or if no long name is available, falls back to the short name. + public string LongFileName + { + get + { + var fileName = this.FileName; + var index = fileName.IndexOf('|'); + + // If it doesn't contain a pipe, just return the whole string + // otherwise, extract the part of the string after the pipe. + return (-1 == index) ? fileName : fileName.Substring(index + 1); + } + } + + /// + /// Gets or sets the size of the file. + /// + /// Size of the file. + public int FileSize + { + get => this.FieldAsInteger(3); + set => this.Fields[3].Data = value; + } + + /// + /// Gets or sets the version of the file. + /// + /// Version of the file. + public string Version + { + get => this.FieldAsString(4); + set => this.Fields[4].Data = value; + } + + /// + /// Gets or sets the LCID of the file. + /// + /// LCID of the file. + public string Language + { + get => this.FieldAsString(5); + set => this.Fields[5].Data = value; + } + + /// + /// Gets or sets the attributes on a file. + /// + /// Attributes on a file. + public int Attributes + { + get => this.FieldAsInteger(6); + set => this.Fields[6].Data = value; + } + + /// + /// Gets or sets whether this file should be compressed. + /// + /// Whether this file should be compressed. + public YesNoType Compressed + { + get + { + var compressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesCompressed)); + var noncompressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesNoncompressed)); + + if (compressedFlag && noncompressedFlag) + { + throw new WixException(ErrorMessages.IllegalFileCompressionAttributes(this.SourceLineNumbers)); + } + else if (compressedFlag) + { + return YesNoType.Yes; + } + else if (noncompressedFlag) + { + return YesNoType.No; + } + else + { + return YesNoType.NotSet; + } + } + + set + { + if (YesNoType.Yes == value) + { + // these are mutually exclusive + this.Attributes |= WindowsInstallerConstants.MsidbFileAttributesCompressed; + this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed; + } + else if (YesNoType.No == value) + { + // these are mutually exclusive + this.Attributes |= WindowsInstallerConstants.MsidbFileAttributesNoncompressed; + this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed; + } + else // not specified + { + Debug.Assert(YesNoType.NotSet == value); + + // clear any compression bits + this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesCompressed; + this.Attributes &= ~WindowsInstallerConstants.MsidbFileAttributesNoncompressed; + } + } + } + + /// + /// Gets or sets the sequence of the file row. + /// + /// Sequence of the file row. + public int Sequence + { + get => this.FieldAsInteger(7); + set => this.Fields[7].Data = value; + } + + /// + /// Gets or sets the disk id for this file. + /// + /// Disk id for the file. + public int DiskId + { + get => this.FieldAsInteger(8); + set => this.Fields[8].Data = value; + } + + /// + /// Gets or sets the source location to the file. + /// + /// Source location to the file. + public string Source + { + get => this.FieldAsString(9); + set => this.Fields[9].Data = value; + } + + /// + /// Gets or sets the source location to the previous file. + /// + /// Source location to the previous file. + public string PreviousSource + { + get => this.Fields[9].PreviousData; + set => this.Fields[9].PreviousData = value; + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs new file mode 100644 index 00000000..b8fa5e83 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/MediaRow.cs @@ -0,0 +1,85 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + /// + /// Specialization of a row for the Media table. + /// + public sealed class MediaRow : Row + { + /// + /// Creates a Media row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Media row belongs to and should get its column definitions from. + public MediaRow(SourceLineNumber sourceLineNumbers, Table table) + : base(sourceLineNumbers, table) + { + } + + public MediaRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + + /// + /// Gets or sets the disk id for this media row. + /// + /// Disk id. + public int DiskId + { + get { return (int)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets or sets the last sequence number for this media row. + /// + /// Last sequence number. + public int LastSequence + { + get { return (int)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets or sets the disk prompt for this media row. + /// + /// Disk prompt. + public string DiskPrompt + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets or sets the cabinet name for this media row. + /// + /// Cabinet name. + public string Cabinet + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets or sets the volume label for this media row. + /// + /// Volume label. + public string VolumeLabel + { + get { return (string)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets or sets the source for this media row. + /// + /// Source. + public string Source + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs new file mode 100644 index 00000000..b4212430 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/PropertyRow.cs @@ -0,0 +1,45 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + /// + /// Specialization of a row for the Property table. + /// + public sealed class PropertyRow : Row + { + /// + /// Creates an Property row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Upgrade row belongs to and should get its column definitions from. + public PropertyRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public PropertyRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + + /// + /// Gets and sets the property name for the row. + /// + /// Property identifier for the row. + public string Property + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets and sets the property value for the row. + /// + /// Property value for the row. + public string Value + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs new file mode 100644 index 00000000..4b2ce129 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/SummaryInfoRowCollection.cs @@ -0,0 +1,41 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + using System; + using System.Collections.ObjectModel; + + /// + /// Indexed container class for summary information rows. + /// + public sealed class SummaryInfoRowCollection : KeyedCollection + { + /// + /// Creates the keyed collection from existing rows in a table. + /// + /// The summary information table to index. + public SummaryInfoRowCollection(Table table) + { + if (0 != String.CompareOrdinal("_SummaryInformation", table.Name)) + { + string message = string.Format(WixDataStrings.EXP_UnsupportedTable, table.Name); + throw new ArgumentException(message, "table"); + } + + foreach (Row row in table.Rows) + { + this.Add(row); + } + } + + /// + /// Gets the summary property ID for the . + /// + /// The row to index. + /// The summary property ID for the . + protected override int GetKeyForItem(Row row) + { + return (int)row[0]; + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs new file mode 100644 index 00000000..dbbfa0f9 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Rows/UpgradeRow.cs @@ -0,0 +1,95 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller.Rows +{ + /// + /// Specialization of a row for the upgrade table. + /// + public sealed class UpgradeRow : Row + { + /// + /// Creates an Upgrade row that belongs to a table. + /// + /// Original source lines for this row. + /// Table this Upgrade row belongs to and should get its column definitions from. + public UpgradeRow(SourceLineNumber sourceLineNumbers, Table table) : + base(sourceLineNumbers, table) + { + } + + public UpgradeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) : + base(sourceLineNumbers, tableDefinition) + { + } + + /// + /// Gets and sets the upgrade code for the row. + /// + /// Upgrade code for the row. + public string UpgradeCode + { + get { return (string)this.Fields[0].Data; } + set { this.Fields[0].Data = value; } + } + + /// + /// Gets and sets the version minimum for the row. + /// + /// Version minimum for the row. + public string VersionMin + { + get { return (string)this.Fields[1].Data; } + set { this.Fields[1].Data = value; } + } + + /// + /// Gets and sets the version maximum for the row. + /// + /// Version maximum for the row. + public string VersionMax + { + get { return (string)this.Fields[2].Data; } + set { this.Fields[2].Data = value; } + } + + /// + /// Gets and sets the language for the row. + /// + /// Language for the row. + public string Language + { + get { return (string)this.Fields[3].Data; } + set { this.Fields[3].Data = value; } + } + + /// + /// Gets and sets the attributes for the row. + /// + /// Attributes for the row. + public int Attributes + { + get { return (int)this.Fields[4].Data; } + set { this.Fields[4].Data = value; } + } + + /// + /// Gets and sets the remove code for the row. + /// + /// Remove code for the row. + public string Remove + { + get { return (string)this.Fields[5].Data; } + set { this.Fields[5].Data = value; } + } + + /// + /// Gets and sets the action property for the row. + /// + /// Action property for the row. + public string ActionProperty + { + get { return (string)this.Fields[6].Data; } + set { this.Fields[6].Data = value; } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs new file mode 100644 index 00000000..9131a374 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/SequenceTableExtensions.cs @@ -0,0 +1,17 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using WixToolset.Data.Symbols; + + /// + /// Enhancements to the SequenceTable enum. + /// + public static class SequenceTableExtensions + { + /// + /// Gets the SequenceTable enum as the Windows Installer table name. + /// + public static string WindowsInstallerTableName(this SequenceTable sequence) => (sequence == SequenceTable.AdvertiseExecuteSequence) ? "AdvtExecuteSequence" : sequence.ToString(); + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/SubStorage.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/SubStorage.cs new file mode 100644 index 00000000..76b1b795 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/SubStorage.cs @@ -0,0 +1,112 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System.Xml; + + /// + /// Substorage inside an output. + /// + public sealed class SubStorage + { + /// + /// Instantiate a new substorage. + /// + /// The substorage name. + /// The substorage data. + public SubStorage(string name, WindowsInstallerData data) + { + this.Name = name; + this.Data = data; + } + + /// + /// Gets the substorage name. + /// + /// The substorage name. + public string Name { get; } + + /// + /// Gets the substorage data. + /// + /// The substorage data. + public WindowsInstallerData Data { get; } + + /// + /// Creates a SubStorage from the XmlReader. + /// + /// Reader to get data from. + /// Table definitions to use for strongly-typed rows. + /// New SubStorage object. + internal static SubStorage Read(XmlReader reader, TableDefinitionCollection tableDefinitions) + { + if (reader.LocalName != "subStorage") + { + throw new XmlException(); + } + + WindowsInstallerData data = null; + string name = null; + + var empty = reader.IsEmptyElement; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "name": + name = reader.Value; + break; + } + } + + if (!empty) + { + var done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case WindowsInstallerData.XmlElementName: + data = WindowsInstallerData.Read(reader, tableDefinitions, true); + break; + default: + throw new XmlException(); + } + break; + + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return new SubStorage(name, data); + } + + /// + /// Persists a SubStorage in an XML format. + /// + /// XmlWriter where the SubStorage should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("subStorage", WindowsInstallerData.XmlNamespaceUri); + + writer.WriteAttributeString("name", this.Name); + + this.Data.Write(writer); + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Table.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/Table.cs new file mode 100644 index 00000000..714be20f --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Table.cs @@ -0,0 +1,190 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Xml; + + /// + /// Object that represents a table in a database. + /// + [DebuggerDisplay("{Name}")] + public class Table + { + /// + /// Creates a table. + /// + /// Definition of the table. + public Table(TableDefinition tableDefinition) + { + this.Definition = tableDefinition; + this.Rows = new List(); + } + + /// + /// Gets the table definition. + /// + /// Definition of the table. + public TableDefinition Definition { get; } + + /// + /// Gets the name of the table. + /// + /// Name of the table. + public string Name => this.Definition.Name; + + /// + /// Gets or sets the table transform operation. + /// + /// The table transform operation. + public TableOperation Operation { get; set; } + + /// + /// Gets the rows contained in the table. + /// + /// Rows contained in the table. + public IList Rows { get; } + + /// + /// Creates a new row and adds it to the table. + /// + /// Original source lines for this row. + /// Row created in table. + public Row CreateRow(SourceLineNumber sourceLineNumbers) + { + var row = this.Definition.CreateRow(sourceLineNumbers, this); + this.Rows.Add(row); + return row; + } + + /// + /// Validates the rows of this OutputTable and throws if it collides on + /// primary keys. + /// + public void ValidateRows() + { + var primaryKeys = new Dictionary(); + + foreach (var row in this.Rows) + { + var primaryKey = row.GetPrimaryKey(); + + if (primaryKeys.TryGetValue(primaryKey, out var collisionSourceLineNumber)) + { + throw new WixException(ErrorMessages.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); + } + + primaryKeys.Add(primaryKey, row.SourceLineNumbers); + } + } + + /// + /// Parse a table from the xml. + /// + /// XmlReader where the intermediate is persisted. + /// TableDefinitions to use in the intermediate. + /// The parsed table. + internal static Table Read(XmlReader reader, TableDefinitionCollection tableDefinitions) + { + Debug.Assert("table" == reader.LocalName); + + bool empty = reader.IsEmptyElement; + TableOperation operation = TableOperation.None; + string name = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "name": + name = reader.Value; + break; + case "op": + switch (reader.Value) + { + case "add": + operation = TableOperation.Add; + break; + case "drop": + operation = TableOperation.Drop; + break; + default: + throw new XmlException(); + } + break; + } + } + + if (null == name) + { + throw new XmlException(); + } + + TableDefinition tableDefinition = tableDefinitions[name]; + Table table = new Table(tableDefinition); + table.Operation = operation; + + if (!empty) + { + bool done = false; + + // loop through all the rows in a table + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "row": + Row.Read(reader, table); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return table; + } + + /// + /// Persists a row in an XML format. + /// + /// XmlWriter where the Row should persist itself as XML. + internal void Write(XmlWriter writer) + { + if (null == writer) + { + throw new ArgumentNullException("writer"); + } + + writer.WriteStartElement("table", WindowsInstallerData.XmlNamespaceUri); + writer.WriteAttributeString("name", this.Name); + + if (TableOperation.None != this.Operation) + { + writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); + } + + foreach (var row in this.Rows) + { + row.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinition.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinition.cs new file mode 100644 index 00000000..a7602d05 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinition.cs @@ -0,0 +1,267 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Xml; + + /// + /// Definition of a table in a database. + /// + public sealed class TableDefinition : IComparable + { + /// + /// Tracks the maximum number of columns supported in a real table. + /// This is a Windows Installer limitation. + /// + public const int MaxColumnsInRealTable = 32; + + /// + /// Creates a table definition. + /// + /// Name of table to create. + /// Optional symbol definition for this table. + /// Column definitions for the table. + /// Flag if table is unreal. + /// Whether the primary key is the id of the symbol definition associated with this table. + /// The specialized type for the rows. + public TableDefinition(string name, IntermediateSymbolDefinition symbolDefinition, IEnumerable columns, bool unreal = false, bool symbolIdIsPrimaryKey = false, Type strongRowType = null) + { + this.Name = name; + this.SymbolDefinition = symbolDefinition; + this.SymbolIdIsPrimaryKey = symbolIdIsPrimaryKey; + this.Unreal = unreal; + this.Columns = columns?.ToArray(); + this.StrongRowType = strongRowType ?? typeof(Row); + + if (this.Columns == null || this.Columns.Length == 0) + { + throw new ArgumentOutOfRangeException(nameof(columns)); + } +#if DEBUG + if (this.StrongRowType != typeof(Row) && !this.StrongRowType.IsSubclassOf(typeof(Row))) { throw new ArgumentException(nameof(strongRowType)); } +#endif + } + + /// + /// Gets the name of the table. + /// + /// Name of the table. + public string Name { get; } + + /// + /// Gets the symbol definition associated with this table. + /// + /// The symbol definition. + public IntermediateSymbolDefinition SymbolDefinition { get; } + + /// + /// Gets if the table is unreal. + /// + /// Flag if table is unreal. + public bool Unreal { get; } + + /// + /// Gets the collection of column definitions for this table. + /// + /// Collection of column definitions for this table. + public ColumnDefinition[] Columns { get; } + + /// + /// Gets if the primary key is the id of the symbol definition associated with this table. + /// + /// Flag if table is unreal. + public bool SymbolIdIsPrimaryKey { get; } + + private Type StrongRowType { get; } + + /// + /// Gets the column definition in the table by index. + /// + /// Index of column to locate. + /// Column definition in the table by index. + public ColumnDefinition this[int columnIndex] => this.Columns[columnIndex]; + + /// + /// In general this method shouldn't be used - create rows from a Table instead. + /// Creates a new row object of the type specified in this definition. + /// + /// Original source lines for this row. + /// Created row. + public Row CreateRow(SourceLineNumber sourceLineNumbers) + { + var result = (Row)Activator.CreateInstance(this.StrongRowType, sourceLineNumbers, this); + return result; + } + + /// + /// Creates a new row object of the type specified in this definition for the given table. + /// External callers should create the row from the table. + /// + /// Original source lines for this row. + /// The owning table for this row. + /// Created row. + internal Row CreateRow(SourceLineNumber sourceLineNumbers, Table table) + { + var result = (Row)Activator.CreateInstance(this.StrongRowType, sourceLineNumbers, table); + return result; + } + + /// + /// Compares this table definition to another table definition. + /// + /// + /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. + /// + /// The updated to compare with this target definition. + /// 0 if the tables' core properties are the same; otherwise, non-0. + public int CompareTo(TableDefinition updated) + { + // by definition, this object is greater than null + if (null == updated) + { + return 1; + } + + // compare the table names + var ret = String.Compare(this.Name, updated.Name, StringComparison.Ordinal); + + // compare the column count + if (0 == ret) + { + // transforms can only add columns + ret = Math.Min(0, updated.Columns.Length - this.Columns.Length); + + // compare name, type, and length of each column + for (var i = 0; 0 == ret && this.Columns.Length > i; i++) + { + var thisColumnDef = this.Columns[i]; + var updatedColumnDef = updated.Columns[i]; + + // Igmore unreal columns when comparing table definitions. + if (thisColumnDef.Unreal || updatedColumnDef.Unreal) + { + continue; + } + + ret = thisColumnDef.CompareTo(updatedColumnDef); + } + } + + return ret; + } + + /// + /// Parses table definition from xml reader. + /// + /// Reader to get data from. + /// Table definitions to use for strongly-typed rows. + /// The TableDefintion represented by the Xml. + internal static TableDefinition Read(XmlReader reader, TableDefinitionCollection tableDefinitions) + { + var empty = reader.IsEmptyElement; + string name = null; + IntermediateSymbolDefinition symbolDefinition = null; + var unreal = false; + var symbolIdIsPrimaryKey = false; + Type strongRowType = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "name": + name = reader.Value; + break; + case "unreal": + unreal = reader.Value.Equals("yes"); + break; + } + } + + if (null == name) + { + throw new XmlException(); + } + + if (tableDefinitions.TryGet(name, out var tableDefinition)) + { + symbolDefinition = tableDefinition.SymbolDefinition; + symbolIdIsPrimaryKey = tableDefinition.SymbolIdIsPrimaryKey; + strongRowType = tableDefinition.StrongRowType; + } + + var columns = new List(); + var hasPrimaryKeyColumn = false; + + // parse the child elements + if (!empty) + { + var done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "columnDefinition": + var columnDefinition = ColumnDefinition.Read(reader); + columns.Add(columnDefinition); + + if (columnDefinition.PrimaryKey) + { + hasPrimaryKeyColumn = true; + } + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!unreal && !hasPrimaryKeyColumn) + { + throw new WixException(ErrorMessages.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); + } + + if (!done) + { + throw new XmlException(); + } + } + + return new TableDefinition(name, symbolDefinition, columns.ToArray(), unreal, symbolIdIsPrimaryKey, strongRowType); + } + + /// + /// Persists an output in an XML format. + /// + /// XmlWriter where the Output should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("tableDefinition", TableDefinitionCollection.XmlNamespaceUri); + + writer.WriteAttributeString("name", this.Name); + + if (this.Unreal) + { + writer.WriteAttributeString("unreal", "yes"); + } + + foreach (var columnDefinition in this.Columns) + { + columnDefinition.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs new file mode 100644 index 00000000..fcc2b1f6 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/TableDefinitionCollection.cs @@ -0,0 +1,201 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System.Collections; + using System.Collections.Generic; + using System.Linq; + using System.Xml; + + /// + /// Collection for table definitions indexed by table name. + /// + public sealed class TableDefinitionCollection : ICollection + { + public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wi/tables"; + + private Dictionary collection; + + /// + /// Instantiate a new TableDefinitionCollection class. + /// + public TableDefinitionCollection() + { + this.collection = new Dictionary(); + } + + /// + /// Creates a shallow copy of the provided table definition collection. + /// + public TableDefinitionCollection(TableDefinitionCollection tableDefinitions) + { + this.collection = new Dictionary(tableDefinitions.collection); + } + + /// + /// Creates a table definition collection with the given table definitions. + /// + public TableDefinitionCollection(IEnumerable tableDefinitions) + { + this.collection = tableDefinitions.ToDictionary(t => t.Name); + } + + /// + /// Gets the number of items in the collection. + /// + /// Number of items in collection. + public int Count => this.collection.Count; + + /// + /// Table definition collections are never read-only. + /// + public bool IsReadOnly => false; + + /// + /// Gets a table definition by name. + /// + /// Name of table to locate. + public TableDefinition this[string tableName] + { + get + { + if (!this.collection.TryGetValue(tableName, out var table)) + { + throw new WixMissingTableDefinitionException(ErrorMessages.MissingTableDefinition(tableName)); + } + + return table; + } + } + + /// + /// Tries to get a table definition by name. + /// + /// Name of table to locate. + /// Table definition if found. + /// True if table definition was found otherwise false. + public bool TryGet(string tableName, out TableDefinition table) => this.collection.TryGetValue(tableName, out table); + + /// + /// Adds a table definition to the collection. + /// + /// Table definition to add to the collection. + /// Indexes by table definition name. + public void Add(TableDefinition tableDefinition) => this.collection.Add(tableDefinition.Name, tableDefinition); + + /// + /// Removes all table definitions from the collection. + /// + public void Clear() => this.collection.Clear(); + + /// + /// Checks if the collection contains a table name. + /// + /// The table to check in the collection. + /// True if collection contains the table. + public bool Contains(string tableName) => this.collection.ContainsKey(tableName); + + /// + /// Checks if the collection contains a table. + /// + /// The table to check in the collection. + /// True if collection contains the table. + public bool Contains(TableDefinition table) => this.collection.ContainsKey(table.Name); + + /// + /// Copies table definitions to an arry. + /// + /// Array to copy the table definitions to. + /// Index in the array to start copying at. + public void CopyTo(TableDefinition[] array, int index) => this.collection.Values.CopyTo(array, index); + + /// + /// Removes a table definition from the collection. + /// + /// Table to remove from the collection. + /// True if the table definition existed in the collection and was removed. + public bool Remove(TableDefinition table) => this.collection.Remove(table.Name); + + /// + /// Gets enumerator for the collection. + /// + /// Enumerator for the collection. + public IEnumerator GetEnumerator() => this.collection.Values.GetEnumerator(); + + /// + /// Gets the untyped enumerator for the collection. + /// + /// Untyped enumerator for the collection. + IEnumerator IEnumerable.GetEnumerator() => this.collection.Values.GetEnumerator(); + + /// + /// Loads a collection of table definitions from a XmlReader in memory. + /// + /// Reader to get data from. + /// Table definitions to use for strongly-typed rows. + /// The TableDefinitionCollection represented by the xml. + internal static TableDefinitionCollection Read(XmlReader reader, TableDefinitionCollection tableDefinitions) + { + if ("tableDefinitions" != reader.LocalName) + { + throw new XmlException(); + } + + var empty = reader.IsEmptyElement; + var tableDefinitionCollection = new TableDefinitionCollection(); + + while (reader.MoveToNextAttribute()) + { + } + + // parse the child elements + if (!empty) + { + var done = false; + + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "tableDefinition": + tableDefinitionCollection.Add(TableDefinition.Read(reader, tableDefinitions)); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + return tableDefinitionCollection; + } + + /// + /// Persists a TableDefinitionCollection in an XML format. + /// + /// XmlWriter where the TableDefinitionCollection should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement("tableDefinitions", XmlNamespaceUri); + + foreach (var tableDefinition in this.collection.Values.OrderBy(t => t.Name)) + { + tableDefinition.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs new file mode 100644 index 00000000..a399c6fa --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/TableIndexedCollection.cs @@ -0,0 +1,105 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System.Collections.Generic; + using System.Linq; + + /// + /// Collection for tables. + /// + public sealed class TableIndexedCollection : ICollection
+ { + private Dictionary collection; + + /// + /// Instantiate a new empty collection. + /// + public TableIndexedCollection() => this.collection = new Dictionary(); + + /// + /// Instantiate a new collection populated with a set of tables. + /// + /// Set of tables. + public TableIndexedCollection(IEnumerable
tables) => this.collection = tables.ToDictionary(t => t.Name); + + /// + /// Gets the number of items in the collection. + /// + /// Number of items in collection. + public int Count => this.collection.Count; + + /// + /// Table indexed collection is never read only. + /// + public bool IsReadOnly => false; + + /// + /// Adds a table to the collection. + /// + /// Table to add to the collection. + /// Indexes the table by name. + public void Add(Table table) => this.collection.Add(table.Name, table); + + /// + /// Clear the tables from the collection. + /// + public void Clear() => this.collection.Clear(); + + /// + /// Determines if a table is in the collection. + /// + /// Table to check if it is in the collection. + /// True if the table name is in the collection, otherwise false. + public bool Contains(Table table) => this.collection.ContainsKey(table.Name); + + /// + /// Copies the collection into an array. + /// + /// Array to copy the collection into. + /// Index to start copying from. + public void CopyTo(Table[] array, int arrayIndex) => this.collection.Values.CopyTo(array, arrayIndex); + + /// + /// Remove a table from the collection by name. + /// + /// Table name to remove from the collection. + public void Remove(string tableName) => _ = this.collection.Remove(tableName); + + /// + /// Remove a table from the collection. + /// + /// Table with matching name to remove from the collection. + public bool Remove(Table table) => this.collection.Remove(table.Name); + + /// + /// Gets an enumerator over the whole collection. + /// + /// Collection enumerator. + public IEnumerator
GetEnumerator() => this.collection.Values.GetEnumerator(); + + /// + /// Gets an untyped enumerator over the whole collection. + /// + /// Untyped collection enumerator. + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => this.collection.Values.GetEnumerator(); + + /// + /// Gets a table by name. + /// + /// Name of table to locate. + public Table this[string tableName] + { + get => this.collection.TryGetValue(tableName, out var table) ? table : null; + set => this.collection[tableName] = value; + } + + /// + /// Tries to find a table by name. + /// + /// Table name to locate. + /// Found table. + /// True if table with table name was found, otherwise false. + public bool TryGetTable(string tableName, out Table table) => this.collection.TryGetValue(tableName, out table); + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/TableOperation.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/TableOperation.cs new file mode 100644 index 00000000..ccd0ebca --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/TableOperation.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + /// + /// The table transform operations. + /// + public enum TableOperation + { + /// + /// No operation. + /// + None, + + /// + /// Added table. + /// + Add, + + /// + /// Dropped table. + /// + Drop, + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs new file mode 100644 index 00000000..c60f2c0d --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerConstants.cs @@ -0,0 +1,259 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + public static class WindowsInstallerConstants + { + // Component.Attributes + public const int MsidbComponentAttributesLocalOnly = 0; + public const int MsidbComponentAttributesSourceOnly = 1; + public const int MsidbComponentAttributesOptional = 2; + public const int MsidbComponentAttributesRegistryKeyPath = 4; + public const int MsidbComponentAttributesSharedDllRefCount = 8; + public const int MsidbComponentAttributesPermanent = 16; + public const int MsidbComponentAttributesODBCDataSource = 32; + public const int MsidbComponentAttributesTransitive = 64; + public const int MsidbComponentAttributesNeverOverwrite = 128; + public const int MsidbComponentAttributes64bit = 256; + public const int MsidbComponentAttributesDisableRegistryReflection = 512; + public const int MsidbComponentAttributesUninstallOnSupersedence = 1024; + public const int MsidbComponentAttributesShared = 2048; + + // BBControl.Attributes & Control.Attributes + public const int MsidbControlAttributesVisible = 0x00000001; + public const int MsidbControlAttributesEnabled = 0x00000002; + public const int MsidbControlAttributesSunken = 0x00000004; + public const int MsidbControlAttributesIndirect = 0x00000008; + public const int MsidbControlAttributesInteger = 0x00000010; + public const int MsidbControlAttributesRTLRO = 0x00000020; + public const int MsidbControlAttributesRightAligned = 0x00000040; + public const int MsidbControlAttributesLeftScroll = 0x00000080; + public const int MsidbControlAttributesBiDi = MsidbControlAttributesRTLRO | MsidbControlAttributesRightAligned | MsidbControlAttributesLeftScroll; + + // Text controls + public const int MsidbControlAttributesTransparent = 0x00010000; + public const int MsidbControlAttributesNoPrefix = 0x00020000; + public const int MsidbControlAttributesNoWrap = 0x00040000; + public const int MsidbControlAttributesFormatSize = 0x00080000; + public const int MsidbControlAttributesUsersLanguage = 0x00100000; + + // Edit controls + public const int MsidbControlAttributesMultiline = 0x00010000; + public const int MsidbControlAttributesPasswordInput = 0x00200000; + + // ProgressBar controls + public const int MsidbControlAttributesProgress95 = 0x00010000; + + // VolumeSelectCombo and DirectoryCombo controls + public const int MsidbControlAttributesRemovableVolume = 0x00010000; + public const int MsidbControlAttributesFixedVolume = 0x00020000; + public const int MsidbControlAttributesRemoteVolume = 0x00040000; + public const int MsidbControlAttributesCDROMVolume = 0x00080000; + public const int MsidbControlAttributesRAMDiskVolume = 0x00100000; + public const int MsidbControlAttributesFloppyVolume = 0x00200000; + + // VolumeCostList controls + public const int MsidbControlShowRollbackCost = 0x00400000; + + // ListBox and ComboBox controls + public const int MsidbControlAttributesSorted = 0x00010000; + public const int MsidbControlAttributesComboList = 0x00020000; + + // picture button controls + public const int MsidbControlAttributesImageHandle = 0x00010000; + public const int MsidbControlAttributesPushLike = 0x00020000; + public const int MsidbControlAttributesBitmap = 0x00040000; + public const int MsidbControlAttributesIcon = 0x00080000; + public const int MsidbControlAttributesFixedSize = 0x00100000; + public const int MsidbControlAttributesIconSize16 = 0x00200000; + public const int MsidbControlAttributesIconSize32 = 0x00400000; + public const int MsidbControlAttributesIconSize48 = 0x00600000; + public const int MsidbControlAttributesElevationShield = 0x00800000; + + // RadioButton controls + public const int MsidbControlAttributesHasBorder = 0x01000000; + + // CustomAction.Type + // executable types + public const int MsidbCustomActionTypeDll = 0x00000001; // Target = entry point name + public const int MsidbCustomActionTypeExe = 0x00000002; // Target = command line args + public const int MsidbCustomActionTypeTextData = 0x00000003; // Target = text string to be formatted and set into property + public const int MsidbCustomActionTypeJScript = 0x00000005; // Target = entry point name; null if none to call + public const int MsidbCustomActionTypeVBScript = 0x00000006; // Target = entry point name; null if none to call + public const int MsidbCustomActionTypeInstall = 0x00000007; // Target = property list for nested engine initialization + public const int MsidbCustomActionTypeSourceBits = 0x00000030; + public const int MsidbCustomActionTypeTargetBits = 0x00000007; + public const int MsidbCustomActionTypeReturnBits = 0x000000C0; + public const int MsidbCustomActionTypeExecuteBits = 0x00000700; + + // source of code + public const int MsidbCustomActionTypeBinaryData = 0x00000000; // Source = Binary.Name; data stored in stream + public const int MsidbCustomActionTypeSourceFile = 0x00000010; // Source = File.File; file part of installation + public const int MsidbCustomActionTypeDirectory = 0x00000020; // Source = Directory.Directory; folder containing existing file + public const int MsidbCustomActionTypeProperty = 0x00000030; // Source = Property.Property; full path to executable + + // return processing; default is syncronous execution; process return code + public const int MsidbCustomActionTypeContinue = 0x00000040; // ignore action return status; continue running + public const int MsidbCustomActionTypeAsync = 0x00000080; // run asynchronously + + // execution scheduling flags; default is execute whenever sequenced + public const int MsidbCustomActionTypeFirstSequence = 0x00000100; // skip if UI sequence already run + public const int MsidbCustomActionTypeOncePerProcess = 0x00000200; // skip if UI sequence already run in same process + public const int MsidbCustomActionTypeClientRepeat = 0x00000300; // run on client only if UI already run on client + public const int MsidbCustomActionTypeInScript = 0x00000400; // queue for execution within script + public const int MsidbCustomActionTypeRollback = 0x00000100; // in conjunction with InScript: queue in Rollback script + public const int MsidbCustomActionTypeCommit = 0x00000200; // in conjunction with InScript: run Commit ops from script on success + + // security context flag; default to impersonate as user; valid only if InScript + public const int MsidbCustomActionTypeNoImpersonate = 0x00000800; // no impersonation; run in system context + public const int MsidbCustomActionTypeTSAware = 0x00004000; // impersonate for per-machine installs on TS machines + public const int MsidbCustomActionType64BitScript = 0x00001000; // script should run in 64bit process + public const int MsidbCustomActionTypeHideTarget = 0x00002000; // don't record the contents of the Target field in the log file. + + public const int MsidbCustomActionTypePatchUninstall = 0x00008000; // run on patch uninstall + + // Dialog.Attributes + public const int MsidbDialogAttributesVisible = 0x00000001; + public const int MsidbDialogAttributesModal = 0x00000002; + public const int MsidbDialogAttributesMinimize = 0x00000004; + public const int MsidbDialogAttributesSysModal = 0x00000008; + public const int MsidbDialogAttributesKeepModeless = 0x00000010; + public const int MsidbDialogAttributesTrackDiskSpace = 0x00000020; + public const int MsidbDialogAttributesUseCustomPalette = 0x00000040; + public const int MsidbDialogAttributesRTLRO = 0x00000080; + public const int MsidbDialogAttributesRightAligned = 0x00000100; + public const int MsidbDialogAttributesLeftScroll = 0x00000200; + public const int MsidbDialogAttributesBiDi = MsidbDialogAttributesRTLRO | MsidbDialogAttributesRightAligned | MsidbDialogAttributesLeftScroll; + public const int MsidbDialogAttributesError = 0x00010000; + public const int CommonControlAttributesInvert = MsidbControlAttributesVisible + MsidbControlAttributesEnabled; + public const int DialogAttributesInvert = MsidbDialogAttributesVisible + MsidbDialogAttributesModal + MsidbDialogAttributesMinimize; + + // Feature.Attributes + public const int MsidbFeatureAttributesFavorLocal = 0; + public const int MsidbFeatureAttributesFavorSource = 1; + public const int MsidbFeatureAttributesFollowParent = 2; + public const int MsidbFeatureAttributesFavorAdvertise = 4; + public const int MsidbFeatureAttributesDisallowAdvertise = 8; + public const int MsidbFeatureAttributesUIDisallowAbsent = 16; + public const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; + + // File.Attributes + public const int MsidbFileAttributesReadOnly = 1; + public const int MsidbFileAttributesHidden = 2; + public const int MsidbFileAttributesSystem = 4; + public const int MsidbFileAttributesVital = 512; + public const int MsidbFileAttributesChecksum = 1024; + public const int MsidbFileAttributesPatchAdded = 4096; + public const int MsidbFileAttributesNoncompressed = 8192; + public const int MsidbFileAttributesCompressed = 16384; + + // IniFile.Action & RemoveIniFile.Action + public const int MsidbIniFileActionAddLine = 0; + public const int MsidbIniFileActionCreateLine = 1; + public const int MsidbIniFileActionRemoveLine = 2; + public const int MsidbIniFileActionAddTag = 3; + public const int MsidbIniFileActionRemoveTag = 4; + + // MoveFile.Options + public const int MsidbMoveFileOptionsMove = 1; + + // ServiceInstall.Attributes + public const int MsidbServiceInstallOwnProcess = 0x00000010; + public const int MsidbServiceInstallShareProcess = 0x00000020; + public const int MsidbServiceInstallInteractive = 0x00000100; + public const int MsidbServiceInstallAutoStart = 0x00000002; + public const int MsidbServiceInstallDemandStart = 0x00000003; + public const int MsidbServiceInstallDisabled = 0x00000004; + public const int MsidbServiceInstallErrorIgnore = 0x00000000; + public const int MsidbServiceInstallErrorNormal = 0x00000001; + public const int MsidbServiceInstallErrorCritical = 0x00000003; + public const int MsidbServiceInstallErrorControlVital = 0x00008000; + + // ServiceConfig.Event + public const int MsidbServiceConfigEventInstall = 0x00000001; + public const int MsidbServiceConfigEventUninstall = 0x00000002; + public const int MsidbServiceConfigEventReinstall = 0x00000004; + + // ServiceControl.Attributes + public const int MsidbServiceControlEventStart = 0x00000001; + public const int MsidbServiceControlEventStop = 0x00000002; + public const int MsidbServiceControlEventDelete = 0x00000008; + public const int MsidbServiceControlEventUninstallStart = 0x00000010; + public const int MsidbServiceControlEventUninstallStop = 0x00000020; + public const int MsidbServiceControlEventUninstallDelete = 0x00000080; + + // TextStyle.StyleBits + public const int MsidbTextStyleStyleBitsBold = 1; + public const int MsidbTextStyleStyleBitsItalic = 2; + public const int MsidbTextStyleStyleBitsUnderline = 4; + public const int MsidbTextStyleStyleBitsStrike = 8; + + // Upgrade.Attributes + public const int MsidbUpgradeAttributesMigrateFeatures = 0x00000001; + public const int MsidbUpgradeAttributesOnlyDetect = 0x00000002; + public const int MsidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004; + public const int MsidbUpgradeAttributesVersionMinInclusive = 0x00000100; + public const int MsidbUpgradeAttributesVersionMaxInclusive = 0x00000200; + public const int MsidbUpgradeAttributesLanguagesExclusive = 0x00000400; + + // Registry Hive Roots + public const int MsidbRegistryRootClassesRoot = 0; + public const int MsidbRegistryRootCurrentUser = 1; + public const int MsidbRegistryRootLocalMachine = 2; + public const int MsidbRegistryRootUsers = 3; + + // Locator Types + public const int MsidbLocatorTypeDirectory = 0; + public const int MsidbLocatorTypeFileName = 1; + public const int MsidbLocatorTypeRawValue = 2; + public const int MsidbLocatorType64bit = 16; + + public const int MsidbClassAttributesRelativePath = 1; + + // RemoveFile.InstallMode + public const int MsidbRemoveFileInstallModeOnInstall = 0x00000001; + public const int MsidbRemoveFileInstallModeOnRemove = 0x00000002; + public const int MsidbRemoveFileInstallModeOnBoth = 0x00000003; + + // ODBCDataSource.Registration + public const int MsidbODBCDataSourceRegistrationPerMachine = 0; + public const int MsidbODBCDataSourceRegistrationPerUser = 1; + + // ModuleConfiguration.Format + public const int MsidbModuleConfigurationFormatText = 0; + public const int MsidbModuleConfigurationFormatKey = 1; + public const int MsidbModuleConfigurationFormatInteger = 2; + public const int MsidbModuleConfigurationFormatBitfield = 3; + + // ModuleConfiguration.Attributes + public const int MsidbMsmConfigurableOptionKeyNoOrphan = 1; + public const int MsidbMsmConfigurableOptionNonNullable = 2; + + // ' Windows API function ShowWindow constants - used in Shortcut table + public const int SWSHOWNORMAL = 0x00000001; + public const int SWSHOWMAXIMIZED = 0x00000003; + public const int SWSHOWMINNOACTIVE = 0x00000007; + + public const int MsidbEmbeddedUI = 0x01; + public const int MsidbEmbeddedHandlesBasic = 0x02; + + public const int INSTALLLOGMODE_FATALEXIT = 0x00001; + public const int INSTALLLOGMODE_ERROR = 0x00002; + public const int INSTALLLOGMODE_WARNING = 0x00004; + public const int INSTALLLOGMODE_USER = 0x00008; + public const int INSTALLLOGMODE_INFO = 0x00010; + public const int INSTALLLOGMODE_FILESINUSE = 0x00020; + public const int INSTALLLOGMODE_RESOLVESOURCE = 0x00040; + public const int INSTALLLOGMODE_OUTOFDISKSPACE = 0x00080; + public const int INSTALLLOGMODE_ACTIONSTART = 0x00100; + public const int INSTALLLOGMODE_ACTIONDATA = 0x00200; + public const int INSTALLLOGMODE_PROGRESS = 0x00400; + public const int INSTALLLOGMODE_COMMONDATA = 0x00800; + public const int INSTALLLOGMODE_INITIALIZE = 0x01000; + public const int INSTALLLOGMODE_TERMINATE = 0x02000; + public const int INSTALLLOGMODE_SHOWDIALOG = 0x04000; + public const int INSTALLLOGMODE_RMFILESINUSE = 0x02000000; + public const int INSTALLLOGMODE_INSTALLSTART = 0x04000000; + public const int INSTALLLOGMODE_INSTALLEND = 0x08000000; + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs new file mode 100644 index 00000000..8d69cd08 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs @@ -0,0 +1,323 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + using System.Xml; + + /// + /// Output is generated by the linker. + /// + public sealed class WindowsInstallerData + { + internal const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/windowsinstallerdata"; + internal const string XmlElementName = "windowsInstallerData"; + + private static readonly Version CurrentVersion = new Version("4.0.0.0"); + private const string WixOutputStreamName = "wix-wid.xml"; + private static readonly XmlWriterSettings WriterSettings = new XmlWriterSettings + { + CheckCharacters = false, + CloseOutput = false, + OmitXmlDeclaration = true, + }; + + /// + /// Creates a new empty output object. + /// + /// The source line information for the output. + public WindowsInstallerData(SourceLineNumber sourceLineNumbers) + { + this.SourceLineNumbers = sourceLineNumbers; + this.SubStorages = new List(); + this.Tables = new TableIndexedCollection(); + } + + /// + /// Gets the type of the output. + /// + /// Type of the output. + public OutputType Type { get; set; } + + /// + /// Gets or sets the codepage for this output. + /// + /// Codepage of the output. + public int Codepage { get; set; } + + /// + /// Gets the source line information for this output. + /// + /// The source line information for this output. + public SourceLineNumber SourceLineNumbers { get; private set; } + + /// + /// Gets the substorages in this output. + /// + /// The substorages in this output. + public ICollection SubStorages { get; private set; } + + /// + /// Gets the tables contained in this output. + /// + /// Collection of tables. + public TableIndexedCollection Tables { get; private set; } + + /// + /// Ensure this output contains a particular table. + /// + /// Definition of the table that should exist. + /// The table in this output. + public Table EnsureTable(TableDefinition tableDefinition) + { + if (!this.Tables.TryGetTable(tableDefinition.Name, out var table)) + { + table = new Table(tableDefinition); + this.Tables.Add(table); + } + + return table; + } + + /// + /// Saves an output to a WixOutput container. + /// + /// Container to save to. + public void Save(WixOutput wixout) + { + using (var writer = XmlWriter.Create(wixout.CreateDataStream(WixOutputStreamName), WriterSettings)) + { + this.Save(writer); + } + } + + /// + /// Saves an output to an XmlWriter. + /// + /// XmlWriter to save to. + public void Save(XmlWriter writer) + { + writer.WriteStartDocument(); + this.Write(writer); + writer.WriteEndDocument(); + } + + /// + /// Gets table by name. + /// + public bool TryGetTable(string tableName, out Table table) => this.Tables.TryGetTable(tableName, out table); + + /// + /// Loads an output from a path on disk. + /// + /// Path to output file saved on disk. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(string path, bool suppressVersionCheck = false) + { + var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); + return WindowsInstallerData.Load(path, tableDefinitions, suppressVersionCheck); + } + + /// + /// Loads an output from a path on disk. + /// + /// Path to output file saved on disk. + /// Table definitions to use for creating strongly-typed rows. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(string path, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck = false) + { + using (var wixOutput = WixOutput.Read(path)) + { + return WindowsInstallerData.Load(wixOutput, tableDefinitions, suppressVersionCheck); + } + } + + /// + /// Loads an output from a WixOutput object. + /// + /// WixOutput object. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(WixOutput wixOutput, bool suppressVersionCheck = false) + { + var tableDefinitions = new TableDefinitionCollection(WindowsInstallerTableDefinitions.All); + return WindowsInstallerData.Load(wixOutput, tableDefinitions, suppressVersionCheck); + } + + /// + /// Loads an output from a WixOutput object. + /// + /// WixOutput object. + /// Table definitions to use for creating strongly-typed rows. + /// Suppresses wix.dll version mismatch check. + /// Output object. + public static WindowsInstallerData Load(WixOutput wixOutput, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck = false) + { + using (var stream = wixOutput.GetDataStream(WixOutputStreamName)) + using (var reader = XmlReader.Create(stream, null, wixOutput.Uri.AbsoluteUri)) + { + try + { + reader.MoveToContent(); + return WindowsInstallerData.Read(reader, tableDefinitions, suppressVersionCheck); + } + catch (XmlException xe) + { + throw new WixCorruptFileException(wixOutput.Uri.AbsoluteUri, "wixout", xe); + } + } + } + + /// + /// Processes an XmlReader and builds up the output object. + /// + /// Reader to get data from. + /// Table definitions to use for creating strongly-typed rows. + /// Suppresses wix.dll version mismatch check. + /// The Output represented by the Xml. + internal static WindowsInstallerData Read(XmlReader reader, TableDefinitionCollection tableDefinitions, bool suppressVersionCheck) + { + if (!reader.LocalName.Equals(WindowsInstallerData.XmlElementName)) + { + throw new XmlException(); + } + + var empty = reader.IsEmptyElement; + var output = new WindowsInstallerData(SourceLineNumber.CreateFromUri(reader.BaseURI)); + Version version = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "codepage": + output.Codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture.NumberFormat); + break; + case "type": + switch (reader.Value) + { + case "Bundle": + output.Type = OutputType.Bundle; + break; + case "Module": + output.Type = OutputType.Module; + break; + case "Patch": + output.Type = OutputType.Patch; + break; + case "PatchCreation": + output.Type = OutputType.PatchCreation; + break; + case "Product": + output.Type = OutputType.Product; + break; + case "Transform": + output.Type = OutputType.Transform; + break; + default: + throw new XmlException(); + } + break; + case "version": + version = new Version(reader.Value); + break; + } + } + + if (!suppressVersionCheck && null != version && !WindowsInstallerData.CurrentVersion.Equals(version)) + { + throw new WixException(ErrorMessages.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), WindowsInstallerData.XmlElementName, version.ToString(), WindowsInstallerData.CurrentVersion.ToString())); + } + + // loop through the rest of the xml building up the Output object + TableDefinitionCollection xmlTableDefinitions = null; + var tables = new List
(); + if (!empty) + { + var done = false; + + // loop through all the fields in a row + while (!done && reader.Read()) + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + switch (reader.LocalName) + { + case "subStorage": + output.SubStorages.Add(SubStorage.Read(reader, tableDefinitions)); + break; + case "table": + if (null == xmlTableDefinitions) + { + throw new XmlException(); + } + tables.Add(Table.Read(reader, xmlTableDefinitions)); + break; + case "tableDefinitions": + xmlTableDefinitions = TableDefinitionCollection.Read(reader, tableDefinitions); + break; + default: + throw new XmlException(); + } + break; + case XmlNodeType.EndElement: + done = true; + break; + } + } + + if (!done) + { + throw new XmlException(); + } + } + + output.Tables = new TableIndexedCollection(tables); + return output; + } + + /// + /// Persists an output in an XML format. + /// + /// XmlWriter where the Output should persist itself as XML. + internal void Write(XmlWriter writer) + { + writer.WriteStartElement(WindowsInstallerData.XmlElementName, XmlNamespaceUri); + + writer.WriteAttributeString("type", this.Type.ToString()); + + if (0 != this.Codepage) + { + writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); + } + + writer.WriteAttributeString("version", WindowsInstallerData.CurrentVersion.ToString()); + + // Collect all the table definitions and write them. + var tableDefinitions = new TableDefinitionCollection(); + foreach (var table in this.Tables) + { + tableDefinitions.Add(table.Definition); + } + tableDefinitions.Write(writer); + + foreach (var table in this.Tables.OrderBy(t => t.Name)) + { + table.Write(writer); + } + + foreach (var subStorage in this.SubStorages) + { + subStorage.Write(writer); + } + + writer.WriteEndElement(); + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs new file mode 100644 index 00000000..b6930b79 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -0,0 +1,478 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + using System.Collections.Generic; + using System.Linq; + using WixToolset.Data.Symbols; + + public static class WindowsInstallerStandard + { + private static readonly Dictionary standardActionsById; + private static readonly HashSet standardActionNames; + private static readonly Dictionary standardDirectoriesById; + + /// + /// References: + /// Title: Property Reference [Windows Installer]: + /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp + /// + private static readonly HashSet standardProperties = new HashSet + { + "~", // REG_MULTI_SZ/NULL marker + "ACTION", + "ADDDEFAULT", + "ADDLOCAL", + "ADDDSOURCE", + "AdminProperties", + "AdminUser", + "ADVERTISE", + "AFTERREBOOT", + "AllowProductCodeMismatches", + "AllowProductVersionMajorMismatches", + "ALLUSERS", + "Alpha", + "ApiPatchingSymbolFlags", + "ARPAUTHORIZEDCDFPREFIX", + "ARPCOMMENTS", + "ARPCONTACT", + "ARPHELPLINK", + "ARPHELPTELEPHONE", + "ARPINSTALLLOCATION", + "ARPNOMODIFY", + "ARPNOREMOVE", + "ARPNOREPAIR", + "ARPPRODUCTIONICON", + "ARPREADME", + "ARPSIZE", + "ARPSYSTEMCOMPONENT", + "ARPULRINFOABOUT", + "ARPURLUPDATEINFO", + "AVAILABLEFREEREG", + "BorderSize", + "BorderTop", + "CaptionHeight", + "CCP_DRIVE", + "ColorBits", + "COMPADDLOCAL", + "COMPADDSOURCE", + "COMPANYNAME", + "ComputerName", + "CostingComplete", + "Date", + "DefaultUIFont", + "DISABLEADVTSHORTCUTS", + "DISABLEMEDIA", + "DISABLEROLLBACK", + "DiskPrompt", + "DontRemoveTempFolderWhenFinished", + "EnableUserControl", + "EXECUTEACTION", + "EXECUTEMODE", + "FASTOEM", + "FILEADDDEFAULT", + "FILEADDLOCAL", + "FILEADDSOURCE", + "IncludeWholeFilesOnly", + "Installed", + "INSTALLLEVEL", + "Intel", + "Intel64", + "IsAdminPackage", + "LeftUnit", + "LIMITUI", + "ListOfPatchGUIDsToReplace", + "ListOfTargetProductCode", + "LOGACTION", + "LogonUser", + "Manufacturer", + "MEDIAPACKAGEPATH", + "MediaSourceDir", + "MinimumRequiredMsiVersion", + "MsiAMD64", + "MSIAPRSETTINGSIDENTIFIER", + "MSICHECKCRCS", + "MSIDISABLERMRESTART", + "MSIENFORCEUPGRADECOMPONENTRULES", + "MSIFASTINSTALL", + "MsiFileToUseToCreatePatchTables", + "MsiHiddenProperties", + "MSIINSTALLPERUSER", + "MSIINSTANCEGUID", + "MsiLogFileLocation", + "MsiLogging", + "MsiNetAssemblySupport", + "MSINEWINSTANCE", + "MSINODISABLEMEDIA", + "MsiNTProductType", + "MsiNTSuiteBackOffice", + "MsiNTSuiteDataCenter", + "MsiNTSuiteEnterprise", + "MsiNTSuiteSmallBusiness", + "MsiNTSuiteSmallBusinessRestricted", + "MsiNTSuiteWebServer", + "MsiNTSuitePersonal", + "MsiPatchRemovalList", + "MSIPATCHREMOVE", + "MSIRESTARTMANAGERCONTROL", + "MsiRestartManagerSessionKey", + "MSIRMSHUTDOWN", + "MsiRunningElevated", + "MsiUIHideCancel", + "MsiUIProgressOnly", + "MsiUISourceResOnly", + "MsiSystemRebootPending", + "MsiWin32AssemblySupport", + "NOCOMPANYNAME", + "NOUSERNAME", + "OLEAdvtSupport", + "OptimizePatchSizeForLargeFiles", + "OriginalDatabase", + "OutOfDiskSpace", + "OutOfNoRbDiskSpace", + "ParentOriginalDatabase", + "ParentProductCode", + "PATCH", + "PATCH_CACHE_DIR", + "PATCH_CACHE_ENABLED", + "PatchGUID", + "PATCHNEWPACKAGECODE", + "PATCHNEWSUMMARYCOMMENTS", + "PATCHNEWSUMMARYSUBJECT", + "PatchOutputPath", + "PatchSourceList", + "PhysicalMemory", + "PIDKEY", + "PIDTemplate", + "Preselected", + "PRIMARYFOLDER", + "PrimaryVolumePath", + "PrimaryVolumeSpaceAvailable", + "PrimaryVolumeSpaceRemaining", + "PrimaryVolumeSpaceRequired", + "Privileged", + "ProductCode", + "ProductID", + "ProductLanguage", + "ProductName", + "ProductState", + "ProductVersion", + "PROMPTROLLBACKCOST", + "REBOOT", + "REBOOTPROMPT", + "RedirectedDllSupport", + "REINSTALL", + "REINSTALLMODE", + "RemoveAdminTS", + "REMOVE", + "ReplacedInUseFiles", + "RestrictedUserControl", + "RESUME", + "RollbackDisabled", + "ROOTDRIVE", + "ScreenX", + "ScreenY", + "SecureCustomProperties", + "ServicePackLevel", + "ServicePackLevelMinor", + "SEQUENCE", + "SharedWindows", + "ShellAdvtSupport", + "SHORTFILENAMES", + "SourceDir", + "SOURCELIST", + "SystemLanguageID", + "TARGETDIR", + "TerminalServer", + "TextHeight", + "Time", + "TRANSFORMS", + "TRANSFORMSATSOURCE", + "TRANSFORMSSECURE", + "TTCSupport", + "UILevel", + "UpdateStarted", + "UpgradeCode", + "UPGRADINGPRODUCTCODE", + "UserLanguageID", + "USERNAME", + "UserSID", + "Version9X", + "VersionDatabase", + "VersionMsi", + "VersionNT", + "VersionNT64", + "VirtualMemory", + "WindowsBuild", + "WindowsVolume", + }; + + static WindowsInstallerStandard() + { + var standardActions = new[] + { + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + new WixActionSymbol(null, new Identifier(AccessModifier.Global, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, + }; + + var standardDirectories = new[] + { + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TARGETDIR")) { Name = "SourceDir" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "AdminToolsFolder")) { Name = "Admin" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "AppDataFolder")) { Name = "AppData" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonAppDataFolder")) { Name = "CommApp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFilesFolder")) { Name = "CFiles" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFiles64Folder")) { Name = "CFiles64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "CommonFiles6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "DesktopFolder")) { Name = "Desktop" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "FavoritesFolder")) { Name = "Favs" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "FontsFolder")) { Name = "Fonts" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "LocalAppDataFolder")) { Name = "LocalApp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "MyPicturesFolder")) { Name = "Pictures" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "NetHoodFolder")) { Name = "NetHood" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "PersonalFolder")) { Name = "Personal" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "PrintHoodFolder")) { Name = "Printers" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFilesFolder")) { Name = "PFiles" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFiles64Folder")) { Name = "PFiles64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramFiles6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "ProgramMenuFolder")) { Name = "PMenu" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "RecentFolder")) { Name = "Recent" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "SendToFolder")) { Name = "SendTo" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "StartMenuFolder")) { Name = "StrtMenu" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "StartupFolder")) { Name = "StartUp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "SystemFolder")) { Name = "System" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System16Folder")) { Name = "System16" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System64Folder")) { Name = "System64" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "System6432Folder")) { Name = "." }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TempFolder")) { Name = "Temp" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "TemplateFolder")) { Name = "Template" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "WindowsFolder")) { Name = "Windows" }, + new DirectorySymbol(null, new Identifier(AccessModifier.Global, "WindowsVolume")) { Name = "WinVol" }, + }; + + standardActionNames = new HashSet(standardActions.Select(a => a.Action)); + standardActionsById = standardActions.ToDictionary(a => a.Id.Id); + standardDirectoriesById = standardDirectories.ToDictionary(d => d.Id.Id); + } + + /// + /// Find out if an action is a standard action. + /// + /// Name of the action. + /// true if the action is standard, false otherwise. + public static bool IsStandardAction(string actionName) => standardActionNames.Contains(actionName); + + /// + /// Standard actions. + /// + public static IReadOnlyCollection StandardActions() => standardActionsById.Values; + + /// + /// Standard directories. + /// + public static IReadOnlyCollection StandardDirectories() => standardDirectoriesById.Values; + + /// + /// Gets the platform specific directory id for a directory. Most directories are not platform + /// specific and return themselves. + /// + /// Directory id to get platform specific. + /// Platform to use. + /// Platform specific directory id. + public static string GetPlatformSpecificDirectoryId(string directoryId, Platform platform) + { + switch (directoryId) + { + case "CommonFiles6432Folder": + return platform == Platform.X86 ? "CommonFilesFolder" : "CommonFiles64Folder"; + + case "ProgramFiles6432Folder": + return platform == Platform.X86 ? "ProgramFilesFolder" : "ProgramFiles64Folder"; + + case "System6432Folder": + return platform == Platform.X86 ? "SystemFolder" : "System64Folder"; + + default: + return directoryId; + } + } + + /// + /// Find out if a directory is a standard directory. + /// + /// Name of the directory. + /// true if the directory is standard, false otherwise. + public static bool IsStandardDirectory(string directoryId) => standardDirectoriesById.ContainsKey(directoryId); + + /// + /// Find out if a property is a standard property. + /// + /// Name of the property. + /// true if a property is standard, false otherwise. + public static bool IsStandardProperty(string propertyName) => standardProperties.Contains(propertyName); + + /// + /// Try to get standard action by id. + /// + public static bool TryGetStandardAction(string id, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(id, out standardAction); + + /// + /// Try to get standard action by sequence and action name. + /// + public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); + + /// + /// Try to get standard directory symbol by id. + /// + public static bool TryGetStandardDirectory(string directoryId, out DirectorySymbol symbol) => standardDirectoriesById.TryGetValue(directoryId, out symbol); + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs new file mode 100644 index 00000000..a64593ec --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs @@ -0,0 +1,1907 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using WixToolset.Data.WindowsInstaller.Rows; + + public static class WindowsInstallerTableDefinitions + { + public static readonly TableDefinition ActionText = new TableDefinition( + "ActionText", + SymbolDefinitions.ActionText, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to be described.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description displayed in progress dialog and log when action is executing."), + new ColumnDefinition("Template", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Optional localized format template used to format action data records for display during action execution.", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition AdminExecuteSequence = new TableDefinition( + "AdminExecuteSequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Condition = new TableDefinition( + "Condition", + SymbolDefinitions.Condition, + new[] + { + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Reference to a Feature entry in Feature table."), + new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "New selection Level to set in Feature table if Condition evaluates to TRUE."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Expression evaluated to determine if Level in the Feature table is to change.", forceLocalizable: true), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition AdminUISequence = new TableDefinition( + "AdminUISequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition AdvtExecuteSequence = new TableDefinition( + "AdvtExecuteSequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition AdvtUISequence = new TableDefinition( + "AdvtUISequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition AppId = new TableDefinition( + "AppId", + SymbolDefinitions.AppId, + new[] + { + new ColumnDefinition("AppId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid), + new ColumnDefinition("RemoteServerName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("LocalService", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("ServiceParameters", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("DllSurrogate", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("ActivateAtStorage", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + new ColumnDefinition("RunAsInteractiveUser", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition AppSearch = new TableDefinition( + "AppSearch", + SymbolDefinitions.AppSearch, + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The property associated with a Signature", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Property = new TableDefinition( + "Property", + SymbolDefinitions.Property, + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of property, uppercase if settable by launcher or loader.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "String value for property. Never null or empty."), + }, + strongRowType: typeof(PropertyRow), + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition BBControl = new TableDefinition( + "BBControl", + SymbolDefinitions.BBControl, + new[] + { + new ColumnDefinition("Billboard_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Billboard", keyColumn: 1, description: "External key to the Billboard table, name of the billboard.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("BBControl", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the control. This name must be unique within a billboard, but can repeat on different billboard."), + new ColumnDefinition("Type", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The type of the control."), + new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Horizontal coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Vertical coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), + new ColumnDefinition("Text", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A string used to set the initial text contained within a control (if appropriate)."), + }, + strongRowType: typeof(BBControlRow), + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Billboard = new TableDefinition( + "Billboard", + SymbolDefinitions.Billboard, + new[] + { + new ColumnDefinition("Billboard", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the billboard.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "An external key to the Feature Table. The billboard is shown only if this feature is being installed."), + new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of an action. The billboard is displayed during the progress messages received from this action."), + new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "A positive integer. If there is more than one billboard corresponding to an action they will be shown in the order defined by this column."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Feature = new TableDefinition( + "Feature", + SymbolDefinitions.Feature, + new[] + { + new ColumnDefinition("Feature", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular feature record."), + new ColumnDefinition("Feature_Parent", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Optional key of a parent record in the same table. If the parent is not selected, then the record will not be installed. Null indicates a root item."), + new ColumnDefinition("Title", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Short text identifying a visible feature item."), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Longer descriptive text describing a visible feature item."), + new ColumnDefinition("Display", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Numeric sort order, used to force a specific display ordering."), + new ColumnDefinition("Level", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The install level at which record will be initially selected. An install level of 0 will disable an item and prevent its display."), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.UpperCase, keyTable: "Directory", keyColumn: 1, description: "The name of the Directory that can be configured by the UI. A non-null value will enable the browse button.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54", description: "Feature attributes"), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Binary = new TableDefinition( + "Binary", + SymbolDefinitions.Binary, + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique key identifying the binary data.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "The unformatted binary data."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition BindImage = new TableDefinition( + "BindImage", + null, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The index into the File table. This must be an executable file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Paths, description: "A list of ; delimited paths that represent the paths to be searched for the import DLLS. The list is usually a list of properties each enclosed within square brackets [] .", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition File = new TableDefinition( + "File", + SymbolDefinitions.File, + new[] + { + new ColumnDefinition("File", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "File name used for installation, may be localized. This may contain a \"short name|long name\" pair."), + new ColumnDefinition("FileSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("Version", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, keyTable: "File", keyColumn: 1, description: "Version string for versioned files; Blank for unversioned files.", modularizeType: ColumnModularizeType.CompanionFile), + new ColumnDefinition("Language", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Language, description: "List of decimal language Ids, comma-separated if more than one."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses)"), + new ColumnDefinition("Sequence", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 2147483647, description: "Sequence with respect to the media images; order must track cabinet order."), + new ColumnDefinition("DiskId", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Disk identifier for the file.", unreal: true), + new ColumnDefinition("Source", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Path to source of file.", unreal: true), + }, + strongRowType: typeof(FileRow), + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition CCPSearch = new TableDefinition( + "CCPSearch", + SymbolDefinitions.CCPSearch, + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Signature;RegLocator;IniLocator;DrLocator;CompLocator", keyColumn: 1, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition CheckBox = new TableDefinition( + "CheckBox", + SymbolDefinitions.CheckBox, + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to the item.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value string associated with the item.", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Class = new TableDefinition( + "Class", + SymbolDefinitions.Class, + new[] + { + new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The CLSID of an OLE factory."), + new ColumnDefinition("Context", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The numeric server context for this server. CLSCTX_xxxx"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProgId_Default", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "Optional ProgId associated with this CLSID."), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description for the Class."), + new ColumnDefinition("AppId_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, keyTable: "AppId", keyColumn: 1, description: "Optional AppID containing DCOM information for associated application (string GUID)."), + new ColumnDefinition("FileTypeMask", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Optional string containing information for the HKCRthis CLSID) key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2..."), + new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this CLSID. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), + new ColumnDefinition("DefInprocHandler", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Filename, possibilities: "1;2;3", description: "Optional default inproc handler. Only optionally provided if Context=CLSCTX_LOCAL_SERVER. Typically \"ole32.dll\" or \"mapi32.dll\""), + new ColumnDefinition("Argument", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "optional argument for LocalServers."), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, maxValue: 32767, description: "Class registration attributes."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Component = new TableDefinition( + "Component", + SymbolDefinitions.Component, + new[] + { + new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular component record.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Required key of a Directory table record. This is actually a property name whose value contains the actual path, set either by the AppSearch action or with the default setting obtained from the Directory table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Remote execution option, one of irsEnum"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + new ColumnDefinition("KeyPath", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File;Registry;ODBCDataSource", keyColumn: 1, description: "Either the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.", modularizeType: ColumnModularizeType.Column), + }, + strongRowType: typeof(ComponentRow), + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Icon = new TableDefinition( + "Icon", + SymbolDefinitions.Icon, + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. Name of the icon file.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ProgId = new TableDefinition( + "ProgId", + SymbolDefinitions.ProgId, + new[] + { + new ColumnDefinition("ProgId", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The Program Identifier. Primary key."), + new ColumnDefinition("ProgId_Parent", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "The Parent Program Identifier. If specified, the ProgId column becomes a version independent prog id."), + new ColumnDefinition("Class_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, keyTable: "Class", keyColumn: 1, description: "The CLSID of an OLE factory corresponding to the ProgId."), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Localized description for the Program identifier."), + new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Optional foreign key into the Icon Table, specifying the icon file associated with this ProgId. Will be written under the DefaultIcon key.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "Optional icon index."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ComboBox = new TableDefinition( + "ComboBox", + SymbolDefinitions.ComboBox, + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same combobox.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list. The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition CompLocator = new TableDefinition( + "CompLocator", + SymbolDefinitions.CompLocator, + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Guid, description: "A string GUID unique to this component, version, and language."), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "A boolean value that determines if the registry value is a filename or a directory location."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Complus = new TableDefinition( + "Complus", + SymbolDefinitions.Complus, + new[] + { + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the ComPlus component.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ExpType", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "ComPlus component attributes."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Directory = new TableDefinition( + "Directory", + SymbolDefinitions.Directory, + new[] + { + new ColumnDefinition("Directory", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Directory_Parent", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Reference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DefaultDir", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.DefaultDir, description: "The default sub-path under parent's path."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Control = new TableDefinition( + "Control", + SymbolDefinitions.Control, + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "External key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the control. This name must be unique within a dialog, but can repeat on different dialogs. "), + new ColumnDefinition("Type", ColumnType.String, 20, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The type of the control."), + new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Horizontal coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Vertical coordinate of the upper left corner of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the control.", forceLocalizable: true), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this control."), + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "The name of a defined property to be linked to this control. ", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "A string used to set the initial text contained within a control (if appropriate).", modularizeType: ColumnModularizeType.ControlText), + new ColumnDefinition("Control_Next", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "The name of an other control on the same dialog. This link defines the tab order of the controls. The links have to form one or more cycles!"), + new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional. "), + }, + strongRowType: typeof(ControlRow), + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Dialog = new TableDefinition( + "Dialog", + SymbolDefinitions.Dialog, + new[] + { + new ColumnDefinition("Dialog", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("HCentering", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 100, description: "Horizontal position of the dialog on a 0-100 scale. 0 means left end, 100 means right end of the screen, 50 center."), + new ColumnDefinition("VCentering", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 100, description: "Vertical position of the dialog on a 0-100 scale. 0 means top end, 100 means bottom end of the screen, 50 center."), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Width of the bounding rectangle of the dialog."), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Height of the bounding rectangle of the dialog."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied to this dialog."), + new ColumnDefinition("Title", ColumnType.Localized, 128, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "A text string specifying the title to be displayed in the title bar of the dialog's window.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Control_First", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the control that has the focus when the dialog is created."), + new ColumnDefinition("Control_Default", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the default control. Hitting return is equivalent to pushing this button."), + new ColumnDefinition("Control_Cancel", ColumnType.String, 50, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ControlCondition = new TableDefinition( + "ControlCondition", + SymbolDefinitions.ControlCondition, + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control."), + new ColumnDefinition("Action", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Default;Disable;Enable;Hide;Show", description: "The desired action to be taken on the specified control."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions the action should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ControlEvent = new TableDefinition( + "ControlEvent", + SymbolDefinitions.ControlEvent, + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control"), + new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "An identifier that specifies the type of the event that should take place when the user interacts with control specified by the first two entries.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Argument", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "A value to be used as a modifier when triggering a particular event.", modularizeType: ColumnModularizeType.ControlEventArgument, forceLocalizable: true), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Condition, description: "A standard conditional statement that specifies under which conditions an event should be triggered.", modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + new ColumnDefinition("Ordering", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "An integer used to order several events tied to the same control. Can be left blank."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition CreateFolder = new TableDefinition( + "CreateFolder", + SymbolDefinitions.CreateFolder, + new[] + { + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Primary key, could be foreign key into the Directory table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition CustomAction = new TableDefinition( + "CustomAction", + SymbolDefinitions.CustomAction, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, name of action, normally appears in sequence table unless private use.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "The numeric custom action type, consisting of source location, code type, entry, option flags."), + new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.CustomSource, description: "The table reference of the source of the code.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Target", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Excecution parameter, depends on the type of custom action", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("ExtendedType", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A numeric custom action type that extends code type or option flags of the Type column."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition DrLocator = new TableDefinition( + "DrLocator", + SymbolDefinitions.DrLocator, + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Parent", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "The parent file signature. It is also a foreign key in the Signature table. If null and the Path column does not expand to a full path, then all the fixed drives of the user system are searched using the Path.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.AnyPath, description: "The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Depth", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition DuplicateFile = new TableDefinition( + "DuplicateFile", + SymbolDefinitions.DuplicateFile, + new[] + { + new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the duplicate file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key referencing the source file to be duplicated.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Filename to be given to the duplicate file."), + new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to a destination folder.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Environment = new TableDefinition( + "Environment", + SymbolDefinitions.Environment, + new[] + { + new ColumnDefinition("Environment", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for the environmental variable setting", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the environmental value."), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to set in the environmental settings.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the environmental value.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Error = new TableDefinition( + "Error", + SymbolDefinitions.Error, + new[] + { + new ColumnDefinition("Error", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer error number, obtained from header file IError(...) macros."), + new ColumnDefinition("Message", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Template, description: "Error formatting template, obtained from user ed. or localizers.", modularizeType: ColumnModularizeType.Property, useCData: true), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition EventMapping = new TableDefinition( + "EventMapping", + SymbolDefinitions.EventMapping, + new[] + { + new ColumnDefinition("Dialog_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Dialog", keyColumn: 1, description: "A foreign key to the Dialog table, name of the Dialog.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Control_", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Control", keyColumn: 2, description: "A foreign key to the Control table, name of the control."), + new ColumnDefinition("Event", ColumnType.String, 50, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "An identifier that specifies the type of the event that the control subscribes to."), + new ColumnDefinition("Attribute", ColumnType.String, 50, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "The name of the control attribute, that is set when this event is received."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Extension = new TableDefinition( + "Extension", + SymbolDefinitions.Extension, + new[] + { + new ColumnDefinition("Extension", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The extension associated with the table row."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProgId_", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "ProgId", keyColumn: 1, description: "Optional ProgId associated with this extension."), + new ColumnDefinition("MIME_", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Text, keyTable: "MIME", keyColumn: 1, description: "Optional Context identifier, typically \"type/format\" associated with the extension"), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MIME = new TableDefinition( + "MIME", + SymbolDefinitions.MIME, + new[] + { + new ColumnDefinition("ContentType", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key. Context identifier, typically \"type/format\"."), + new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "Optional associated extension (without dot)"), + new ColumnDefinition("CLSID", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Guid, description: "Optional associated CLSID."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition FeatureComponents = new TableDefinition( + "FeatureComponents", + SymbolDefinitions.FeatureComponents, + new[] + { + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition FileSFPCatalog = new TableDefinition( + "FileSFPCatalog", + SymbolDefinitions.FileSFPCatalog, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "File associated with the catalog", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SFPCatalog_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, keyTable: "SFPCatalog", keyColumn: 1, description: "Catalog associated with the file"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition SFPCatalog = new TableDefinition( + "SFPCatalog", + SymbolDefinitions.SFPCatalog, + new[] + { + new ColumnDefinition("SFPCatalog", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Filename, description: "File name for the catalog."), + new ColumnDefinition("Catalog", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "SFP Catalog"), + new ColumnDefinition("Dependency", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Parent catalog - only used by SFP", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Font = new TableDefinition( + "Font", + null, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing font file.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FontTitle", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Font name."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition IniFile = new TableDefinition( + "IniFile", + SymbolDefinitions.IniFile, + new[] + { + new ColumnDefinition("IniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name in which to write the information"), + new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Foreign key into the Directory table denoting the directory where the .INI file is.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Section", ColumnType.Localized, 96, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Key", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file key below Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value to be written.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;3", description: "The type of modification to be made, one of iifEnum"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the .INI value.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition IniLocator = new TableDefinition( + "IniLocator", + SymbolDefinitions.IniLocator, + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name."), + new ColumnDefinition("Section", ColumnType.String, 96, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Section name within in file (within square brackets in INI file)."), + new ColumnDefinition("Key", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Key value (followed by an equals sign in INI file)."), + new ColumnDefinition("Field", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The field in the .INI line. If Field is null or 0 the entire line is read."), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2, description: "An integer value that determines if the .INI value read is a filename or a directory location or to be used as is w/o interpretation."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition InstallExecuteSequence = new TableDefinition( + "InstallExecuteSequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition InstallUISequence = new TableDefinition( + "InstallUISequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of action to invoke, either in the engine or the handler DLL."), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.", forceLocalizable: true), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition IsolatedComponent = new TableDefinition( + "IsolatedComponent", + SymbolDefinitions.IsolatedComponent, + new[] + { + new ColumnDefinition("Component_Shared", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item to be isolated", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_Application", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Key to Component table item for application", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition LaunchCondition = new TableDefinition( + "LaunchCondition", + SymbolDefinitions.LaunchCondition, + new[] + { + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Condition, description: "Expression which must evaluate to TRUE in order for install to commence.", forceLocalizable: true), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Localizable text to display when condition fails and install must abort."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ListBox = new TableDefinition( + "ListBox", + SymbolDefinitions.ListBox, + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listbox.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ListView = new TableDefinition( + "ListView", + SymbolDefinitions.ListView, + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this item. All the items tied to the same property become part of the same listview.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this item. Selecting the line will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Text", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Binary_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Binary", keyColumn: 1, description: "The name of the icon to be displayed with the icon. The binary information is looked up from the Binary Table.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition LockPermissions = new TableDefinition( + "LockPermissions", + SymbolDefinitions.LockPermissions, + new[] + { + new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry or File table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, possibilities: "Directory;File;Registry", description: "Reference to another table name"), + new ColumnDefinition("Domain", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Formatted, description: "Domain name for user whose permissions are being set. (usually a property)", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("User", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Formatted, description: "User for permissions to be set. (usually a property)", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Permission", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Permission Access mask. Full Control = 268435456 (GENERIC_ALL = 0x10000000)"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiLockPermissionsEx = new TableDefinition( + "MsiLockPermissionsEx", + SymbolDefinitions.MsiLockPermissionsEx, + new[] + { + new ColumnDefinition("MsiLockPermissionsEx", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("LockObject", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Foreign key into Registry, File, CreateFolder, or ServiceInstall table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Identifier, possibilities: "CreateFolder;File;Registry;ServiceInstall", description: "Reference to another table name"), + new ColumnDefinition("SDDLText", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.FormattedSDDLText, description: "String to indicate permissions to be applied to the LockObject", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Expression which must evaluate to TRUE in order for this set of permissions to be applied", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Media = new TableDefinition( + "Media", + SymbolDefinitions.Media, + new[] + { + new ColumnDefinition("DiskId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "Primary key, integer to determine sort order for table."), + new ColumnDefinition("LastSequence", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "File sequence number for the last file for this media."), + new ColumnDefinition("DiskPrompt", ColumnType.Localized, 64, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Disk name: the visible text actually printed on the disk. This will be used to prompt the user when this disk needs to be inserted."), + new ColumnDefinition("Cabinet", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Cabinet, description: "If some or all of the files stored on the media are compressed in a cabinet, the name of that cabinet."), + new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The label attributed to the volume."), + new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Property, description: "The property defining the location of the cabinet file."), + }, + strongRowType: typeof(MediaRow), + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MoveFile = new TableDefinition( + "MoveFile", + SymbolDefinitions.MoveFile, + new[] + { + new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular MoveFile record", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "If this component is not \"selected\" for installation or removal, no action will be taken on the associated MoveFile entry", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SourceName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Name of the source file(s) to be moved or copied. Can contain the '*' or '?' wildcards."), + new ColumnDefinition("DestName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Filename, description: "Name to be given to the original file after it is moved or copied. If blank, the destination file will be given the same name as the source file"), + new ColumnDefinition("SourceFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the source directory", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DestFolder", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Integer value specifying the MoveFile operating mode, one of imfoEnum"), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiAssembly = new TableDefinition( + "MsiAssembly", + SymbolDefinitions.Assembly, + new[] + { + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into Feature table."), + new ColumnDefinition("File_Manifest", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the manifest file for the assembly.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_Application", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table, denoting the application context for private assemblies. Null for global assemblies.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Assembly attributes"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiAssemblyName = new TableDefinition( + "MsiAssemblyName", + SymbolDefinitions.MsiAssemblyName, + new[] + { + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name."), + new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiDigitalCertificate = new TableDefinition( + "MsiDigitalCertificate", + SymbolDefinitions.MsiDigitalCertificate, + new[] + { + new ColumnDefinition("DigitalCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row"), + new ColumnDefinition("CertData", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "A certificate context blob for a signer certificate"), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiDigitalSignature = new TableDefinition( + "MsiDigitalSignature", + SymbolDefinitions.MsiDigitalSignature, + new[] + { + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "Media", description: "Reference to another table name (only Media table is supported)"), + new ColumnDefinition("SignObject", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Foreign key to Media table"), + new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate"), + new ColumnDefinition("Hash", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "The encoded hash blob from the digital signature"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiEmbeddedChainer = new TableDefinition( + "MsiEmbeddedChainer", + SymbolDefinitions.MsiEmbeddedChainer, + new[] + { + new ColumnDefinition("MsiEmbeddedChainer", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, description: "A conditional statement for running the user-defined function.", forceLocalizable: true), + new ColumnDefinition("CommandLine", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value in this field is a part of the command line string passed to the executable file identified in the Source column.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Source", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.CustomSource, description: "The location of the executable file for the user-defined function.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;18;50", description: "The functions listed in the MsiEmbeddedChainer table are described using the following custom action numeric types."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiEmbeddedUI = new TableDefinition( + "MsiEmbeddedUI", + SymbolDefinitions.MsiEmbeddedUI, + new[] + { + new ColumnDefinition("MsiEmbeddedUI", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the file that receives the binary information in the Data column."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2;3", description: "Information about the data in the Data column."), + new ColumnDefinition("MessageFilter", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies the types of messages that are sent to the user interface DLL."), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "This column contains binary information."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiFileHash = new TableDefinition( + "MsiFileHash", + SymbolDefinitions.MsiFileHash, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Primary key, foreign key into File table referencing file with this hash", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Options", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Various options and attributes for this hash."), + new ColumnDefinition("HashPart1", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("HashPart2", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("HashPart3", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + new ColumnDefinition("HashPart4", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Size of file in bytes (long integer)."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiPackageCertificate = new TableDefinition( + "MsiPackageCertificate", + SymbolDefinitions.MsiPackageCertificate, + new[] + { + new ColumnDefinition("PackageCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), + new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchCertificate = new TableDefinition( + "MsiPatchCertificate", + SymbolDefinitions.MsiPatchCertificate, + new[] + { + new ColumnDefinition("PatchCertificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), + new ColumnDefinition("DigitalCertificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiDigitalCertificate", keyColumn: 1, description: "Foreign key to MsiDigitalCertificate table identifying the signer certificate."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchHeaders = new TableDefinition( + "MsiPatchHeaders", + SymbolDefinitions.MsiPatchHeaders, + new[] + { + new ColumnDefinition("StreamRef", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. A unique identifier for the row."), + new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: false, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PatchMetadata = new TableDefinition( + "PatchMetadata", + SymbolDefinitions.PatchMetadata, + new[] + { + new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Identifier, description: "Primary key. The name of the company."), + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the property."), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Non-null, non-empty value of the metadata property."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchMetadata = new TableDefinition( + "MsiPatchMetadata", + SymbolDefinitions.MsiPatchMetadata, + new[] + { + new ColumnDefinition("Company", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchOldAssemblyFile = new TableDefinition( + "MsiPatchOldAssemblyFile", + SymbolDefinitions.MsiPatchOldAssemblyFile, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into File table. Patch-only table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Assembly_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "MsiPatchOldAssemblyName", keyColumn: 1, description: "Foreign key into MsiPatchOldAssemblyName table.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchOldAssemblyName = new TableDefinition( + "MsiPatchOldAssemblyName", + SymbolDefinitions.MsiPatchOldAssemblyName, + new[] + { + new ColumnDefinition("Assembly", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique identifier for the row.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The name part of the name-value pairs for the assembly name. This represents the old name for the assembly."), + new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The value part of the name-value pairs for the assembly name. This represents the old name for the assembly."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PatchSequence = new TableDefinition( + "PatchSequence", + SymbolDefinitions.PatchSequence, + new[] + { + new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key. The name of the family for the patch."), + new ColumnDefinition("Target", ColumnType.String, 72, primaryKey: true, nullable: true, ColumnCategory.Text, description: "Primary key. Determines product code filtering for family."), + new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Sequence information in version (x.x.x.x) format."), + new ColumnDefinition("Supersede", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Indicates that this patch supersedes earlier patches."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition MsiPatchSequence = new TableDefinition( + "MsiPatchSequence", + SymbolDefinitions.MsiPatchSequence, + new[] + { + new ColumnDefinition("PatchFamily", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("ProductCode", ColumnType.String, 38, primaryKey: true, nullable: true, ColumnCategory.Unknown), + new ColumnDefinition("Sequence", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ODBCAttribute = new TableDefinition( + "ODBCAttribute", + SymbolDefinitions.ODBCAttribute, + new[] + { + new ColumnDefinition("Driver_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDriver", keyColumn: 1, description: "Reference to ODBC driver in ODBCDriver table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attribute", ColumnType.String, 40, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC driver attribute"), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC driver attribute"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ODBCDriver = new TableDefinition( + "ODBCDriver", + SymbolDefinitions.ODBCDriver, + new[] + { + new ColumnDefinition("Driver", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for driver", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for driver, non-localized"), + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key driver file", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key driver setup DLL", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ODBCDataSource = new TableDefinition( + "ODBCDataSource", + SymbolDefinitions.ODBCDataSource, + new[] + { + new ColumnDefinition("DataSource", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for data source", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for data source"), + new ColumnDefinition("DriverDescription", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Reference to driver description, may be existing driver"), + new ColumnDefinition("Registration", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Registration option: 0=machine, 1=user, others t.b.d."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ODBCSourceAttribute = new TableDefinition( + "ODBCSourceAttribute", + SymbolDefinitions.ODBCSourceAttribute, + new[] + { + new ColumnDefinition("DataSource_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ODBCDataSource", keyColumn: 1, description: "Reference to ODBC data source in ODBCDataSource table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Attribute", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Name of ODBC data source attribute"), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Value for ODBC data source attribute"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ODBCTranslator = new TableDefinition( + "ODBCTranslator", + SymbolDefinitions.ODBCTranslator, + new[] + { + new ColumnDefinition("Translator", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized.internal token for translator", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reference to associated component", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Text used as registered name for translator"), + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Reference to key translator file", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("File_Setup", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Optional reference to key translator setup DLL", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Patch = new TableDefinition( + "Patch", + SymbolDefinitions.Patch, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token, foreign key to File table, must match identifier in cabinet.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 4, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Primary key, sequence with respect to the media images; order must track cabinet order."), + new ColumnDefinition("PatchSize", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Size of patch in bytes (long integer)."), + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Integer containing bit flags representing patch attributes"), + new ColumnDefinition("Header", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Binary, description: "Binary stream. The patch header, used for patch validation."), + new ColumnDefinition("StreamRef_", ColumnType.String, 38, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Identifier. Foreign key to the StreamRef column of the MsiPatchHeaders table."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PatchPackage = new TableDefinition( + "PatchPackage", + SymbolDefinitions.PatchPackage, + new[] + { + new ColumnDefinition("PatchId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A unique string GUID representing this patch."), + new ColumnDefinition("Media_", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Foreign key to DiskId column of Media table. Indicates the disk containing the patch package."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition PublishComponent = new TableDefinition( + "PublishComponent", + SymbolDefinitions.PublishComponent, + new[] + { + new ColumnDefinition("ComponentId", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "A string GUID that represents the component id that will be requested by the alien product."), + new ColumnDefinition("Qualifier", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, description: "This is defined only when the ComponentId column is an Qualified Component Id. This is the Qualifier for ProvideComponentIndirect."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("AppData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "This is localisable Application specific data that can be associated with a Qualified Component."), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Foreign key into the Feature table."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition RadioButton = new TableDefinition( + "RadioButton", + SymbolDefinitions.RadioButton, + new[] + { + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A named property to be tied to this radio button. All the buttons tied to the same property become part of the same group.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Order", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 32767, description: "A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."), + new ColumnDefinition("Value", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The value string associated with this button. Selecting the button will set the associated property to this value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("X", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The horizontal coordinate of the upper left corner of the bounding rectangle of the radio button.", forceLocalizable: true), + new ColumnDefinition("Y", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The vertical coordinate of the upper left corner of the bounding rectangle of the radio button.", forceLocalizable: true), + new ColumnDefinition("Width", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The width of the button.", forceLocalizable: true), + new ColumnDefinition("Height", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The height of the button.", forceLocalizable: true), + new ColumnDefinition("Text", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The visible title to be assigned to the radio button."), + new ColumnDefinition("Help", ColumnType.Localized, 50, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The help strings used with the button. The text is optional."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Registry = new TableDefinition( + "Registry", + SymbolDefinitions.Registry, + new[] + { + new ColumnDefinition("Registry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -1, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum."), + new ColumnDefinition("Key", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the installing of the registry value.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RegLocator = new TableDefinition( + "RegLocator", + SymbolDefinitions.RegLocator, + new[] + { + new ColumnDefinition("Signature_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum."), + new ColumnDefinition("Key", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property, forceLocalizable: true), + new ColumnDefinition("Type", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 18, description: "An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RemoveFile = new TableDefinition( + "RemoveFile", + SymbolDefinitions.RemoveFile, + new[] + { + new ColumnDefinition("FileKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key used to identify a particular file entry", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the file to be removed.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.WildCardFilename, description: "Name of the file to be removed."), + new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("InstallMode", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "1;2;3", description: "Installation option, one of iimEnum."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RemoveIniFile = new TableDefinition( + "RemoveIniFile", + null, + new[] + { + new ColumnDefinition("RemoveIniFile", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The .INI file name in which to delete the information"), + new ColumnDefinition("DirProperty", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Foreign key into the Directory table denoting the directory where the .INI file is.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Section", ColumnType.Localized, 96, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Key", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "The .INI file key below Section.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The value to be deleted. The value is required when Action is iifIniRemoveTag", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Action", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "2;4", description: "The type of modification to be made, one of iifEnum."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the .INI value.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition RemoveRegistry = new TableDefinition( + "RemoveRegistry", + SymbolDefinitions.RemoveRegistry, + new[] + { + new ColumnDefinition("RemoveRegistry", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Root", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -1, maxValue: 3, description: "The predefined root key for the registry value, one of rrkEnum"), + new ColumnDefinition("Key", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.RegPath, description: "The key for the registry value.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The registry value name.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table referencing component that controls the deletion of the registry value.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ReserveCost = new TableDefinition( + "ReserveCost", + SymbolDefinitions.ReserveCost, + new[] + { + new ColumnDefinition("ReserveKey", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key that uniquely identifies a particular ReserveCost record", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Reserve a specified amount of space if this component is to be installed.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ReserveFolder", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of a property whose value is assumed to resolve to the full path to the destination directory", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ReserveLocal", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed locally."), + new ColumnDefinition("ReserveSource", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Disk space to reserve if linked component is installed to run from the source location."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition SelfReg = new TableDefinition( + "SelfReg", + null, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "Foreign key into the File table denoting the module that needs to be registered.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Cost", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The cost of registering the module."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ServiceControl = new TableDefinition( + "ServiceControl", + SymbolDefinitions.ServiceControl, + new[] + { + new ColumnDefinition("ServiceControl", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 187, description: "Bit field: Install: 0x1 = Start, 0x2 = Stop, 0x8 = Delete, Uninstall: 0x10 = Start, 0x20 = Stop, 0x80 = Delete"), + new ColumnDefinition("Arguments", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Arguments for the service. Separate by [~].", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Wait", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Boolean for whether to wait for the service to fully start"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ServiceInstall = new TableDefinition( + "ServiceInstall", + SymbolDefinitions.ServiceInstall, + new[] + { + new ColumnDefinition("ServiceInstall", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Internal Name of the Service", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("DisplayName", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "External Name of the Service", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("ServiceType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Type of the service"), + new ColumnDefinition("StartType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 4, description: "Type of the service"), + new ColumnDefinition("ErrorControl", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Severity of error if service fails to start"), + new ColumnDefinition("LoadOrderGroup", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "LoadOrderGroup", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Dependencies", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Other services this depends on to start. Separate by [~], and end with [~][~]", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("StartName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "User or object name to run service as", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Password", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "password to run service with. (with StartName)", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Arguments", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Arguments to include in every start of the service, passed to WinMain", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the startup of the service", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of service.", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiServiceConfig = new TableDefinition( + "MsiServiceConfig", + SymbolDefinitions.MsiServiceConfig, + new[] + { + new ColumnDefinition("MsiServiceConfig", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 7, description: "Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"), + new ColumnDefinition("ConfigType", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Service Configuration Option"), + new ColumnDefinition("Argument", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Argument(s) for service configuration. Value depends on the content of the ConfigType field"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of the service", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiServiceConfigFailureActions = new TableDefinition( + "MsiServiceConfigFailureActions", + SymbolDefinitions.MsiServiceConfigFailureActions, + new[] + { + new ColumnDefinition("MsiServiceConfigFailureActions", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of a service. /, \\, comma and space are invalid", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Event", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 7, description: "Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"), + new ColumnDefinition("ResetPeriod", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Time in seconds after which to reset the failure count to zero. Leave blank if it should never be reset"), + new ColumnDefinition("RebootMessage", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Message to be broadcast to server users before rebooting"), + new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Command line of the process to CreateProcess function to execute"), + new ColumnDefinition("Actions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of integer actions separated by [~] delimiters: 0 = SC_ACTION_NONE, 1 = SC_ACTION_RESTART, 2 = SC_ACTION_REBOOT, 3 = SC_ACTION_RUN_COMMAND. Terminate with [~][~]"), + new ColumnDefinition("DelayActions", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A list of delays (time in milli-seconds), separated by [~] delmiters, to wait before taking the corresponding Action. Terminate with [~][~]"), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table that controls the configuration of failure actions for the service", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Shortcut = new TableDefinition( + "Shortcut", + SymbolDefinitions.Shortcut, + new[] + { + new ColumnDefinition("Shortcut", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Foreign key into the Directory table denoting the directory where the shortcut file is created.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Name", ColumnType.Localized, 128, primaryKey: false, nullable: false, ColumnCategory.Filename, description: "The name of the shortcut to be created."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key into the Component table denoting the component whose selection gates the the shortcut creation/deletion.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Target", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Shortcut, description: "The shortcut target. This is usually a property that is expanded to a file or a folder that the shortcut points to.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Arguments", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command-line arguments for the shortcut.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The description for the shortcut."), + new ColumnDefinition("Hotkey", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The hotkey for the shortcut. It has the virtual-key code for the key in the low-order byte, and the modifier flags in the high-order byte. "), + new ColumnDefinition("Icon_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Icon", keyColumn: 1, description: "Foreign key into the File table denoting the external icon file for the shortcut.", modularizeType: ColumnModularizeType.Icon), + new ColumnDefinition("IconIndex", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -32767, maxValue: 32767, description: "The icon index for the shortcut."), + new ColumnDefinition("ShowCmd", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "1;3;7", description: "The show command for the application window.The following values may be used."), + new ColumnDefinition("WkDir", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Name of property defining location of working directory.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("DisplayResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("DisplayResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The display name index for the shortcut. This must be a non-negative number."), + new ColumnDefinition("DescriptionResourceDLL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The Formatted string providing the full path to the language neutral file containing the MUI Manifest.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("DescriptionResourceId", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The description name index for the shortcut. This must be a non-negative number."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition MsiShortcutProperty = new TableDefinition( + "MsiShortcutProperty", + SymbolDefinitions.MsiShortcutProperty, + new[] + { + new ColumnDefinition("MsiShortcutProperty", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Shortcut_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Shortcut", keyColumn: 1, description: "Foreign key into the Shortcut table", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("PropertyKey", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Canonical string representation of the Property Key being set", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("PropVariantValue", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "String representation of the value in the property", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Signature = new TableDefinition( + "Signature", + SymbolDefinitions.Signature, + new[] + { + new ColumnDefinition("Signature", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The table key. The Signature represents a unique file signature.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FileName", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the file. This may contain a \"short name|long name\" pair."), + new ColumnDefinition("MinVersion", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The minimum version of the file."), + new ColumnDefinition("MaxVersion", ColumnType.String, 20, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The maximum version of the file."), + new ColumnDefinition("MinSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The minimum size of the file."), + new ColumnDefinition("MaxSize", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum size of the file. "), + new ColumnDefinition("MinDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The minimum creation date of the file."), + new ColumnDefinition("MaxDate", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The maximum creation date of the file."), + new ColumnDefinition("Languages", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Language, description: "The languages supported by the file."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition SoftwareIdentificationTag = new TableDefinition( + "SoftwareIdentificationTag", + SymbolDefinitions.SoftwareIdentificationTag, + new[] + { + new ColumnDefinition("File_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "File", keyColumn: 1, description: "The file that installs the software id tag.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Regid", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The regid for the software id tag."), + new ColumnDefinition("TagId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The unique id for the software id tag."), + new ColumnDefinition("PersistentId", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The type of the software id tag."), + new ColumnDefinition("Alias", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Alias for the software id tag."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition TextStyle = new TableDefinition( + "TextStyle", + SymbolDefinitions.TextStyle, + new[] + { + new ColumnDefinition("TextStyle", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the style. The primary key of this table. This name is embedded in the texts to indicate a style change."), + new ColumnDefinition("FaceName", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Text, description: "A string indicating the name of the font used. Required. The string must be at most 31 characters long.", forceLocalizable: true), + new ColumnDefinition("Size", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The size of the font used. This size is given in our units (1/12 of the system font height). Assuming that the system font is set to 12 point size, this is equivalent to the point size.", forceLocalizable: true), + new ColumnDefinition("Color", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "A long integer indicating the color of the string in the RGB format (Red, Green, Blue each 0-255, RGB = R + 256*G + 256^2*B)."), + new ColumnDefinition("StyleBits", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 15, description: "A combination of style bits."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition TypeLib = new TableDefinition( + "TypeLib", + SymbolDefinitions.TypeLib, + new[] + { + new ColumnDefinition("LibID", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The GUID that represents the library."), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "The language of the library."), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Version", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 16777215, description: "The version of the library. The minor version is in the lower 8 bits of the integer. The major version is in the next 16 bits. "), + new ColumnDefinition("Description", ColumnType.Localized, 128, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Optional. The foreign key into the Directory table denoting the path to the help file for the type library.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Feature_", ColumnType.String, 38, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Feature", keyColumn: 1, description: "Required foreign key into the Feature Table, specifying the feature to validate or install in order for the type library to be operational."), + new ColumnDefinition("Cost", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The cost associated with the registration of the typelib. This column is currently optional."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UIText = new TableDefinition( + "UIText", + SymbolDefinitions.UIText, + new[] + { + new ColumnDefinition("Key", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "A unique key that identifies the particular string."), + new ColumnDefinition("Text", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The localized version of the string."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition Upgrade = new TableDefinition( + "Upgrade", + SymbolDefinitions.Upgrade, + new[] + { + new ColumnDefinition("UpgradeCode", ColumnType.String, 38, primaryKey: true, nullable: false, ColumnCategory.Guid, description: "The UpgradeCode GUID belonging to the products in this set."), + new ColumnDefinition("VersionMin", ColumnType.String, 20, primaryKey: true, nullable: true, ColumnCategory.Text, description: "The minimum ProductVersion of the products in this set. The set may or may not include products with this particular version."), + new ColumnDefinition("VersionMax", ColumnType.String, 20, primaryKey: true, nullable: true, ColumnCategory.Text, description: "The maximum ProductVersion of the products in this set. The set may or may not include products with this particular version."), + new ColumnDefinition("Language", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Language, description: "A comma-separated list of languages for either products in this set or products not in this set.", forceLocalizable: true), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "The attributes of this product set."), + new ColumnDefinition("Remove", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The list of features to remove when uninstalling a product from this set. The default is \"ALL\"."), + new ColumnDefinition("ActionProperty", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.UpperCase, description: "The property to set when a product in this set is found."), + }, + strongRowType: typeof(UpgradeRow), + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Verb = new TableDefinition( + "Verb", + SymbolDefinitions.Verb, + new[] + { + new ColumnDefinition("Extension_", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "Extension", keyColumn: 1, description: "The extension associated with the table row."), + new ColumnDefinition("Verb", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Text, description: "The verb for the command."), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 32767, description: "Order within the verbs for a particular extension. Also used simply to specify the default verb."), + new ColumnDefinition("Command", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "The command text.", modularizeType: ColumnModularizeType.Property), + new ColumnDefinition("Argument", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Optional value for the command arguments.", modularizeType: ColumnModularizeType.Property), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleAdminExecuteSequence = new TableDefinition( + "ModuleAdminExecuteSequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdminExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleAdminUISequence = new TableDefinition( + "ModuleAdminUISequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdminUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleAdvtExecuteSequence = new TableDefinition( + "ModuleAdvtExecuteSequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdvtExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleAdvtUISequence = new TableDefinition( + "ModuleAdvtUISequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleAdvtUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleComponents = new TableDefinition( + "ModuleComponents", + SymbolDefinitions.ModuleComponents, + new[] + { + new ColumnDefinition("Component", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Component contained in the module.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module containing the component.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Default language ID for module (may be changed by transform).", forceLocalizable: true), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleSignature = new TableDefinition( + "ModuleSignature", + SymbolDefinitions.WixModule, + new[] + { + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Module identifier (String.GUID).", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Language", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Default decimal language of module.", forceLocalizable: true), + new ColumnDefinition("Version", ColumnType.String, 32, primaryKey: false, nullable: false, ColumnCategory.Version, description: "Version of the module."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleConfiguration = new TableDefinition( + "ModuleConfiguration", + SymbolDefinitions.ModuleConfiguration, + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique identifier for this row."), + new ColumnDefinition("Format", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "Format of this item."), + new ColumnDefinition("Type", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "Additional type information for this item."), + new ColumnDefinition("ContextData", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Additional context information about this item."), + new ColumnDefinition("DefaultValue", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Default value for this item."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "Additional type-specific attributes."), + new ColumnDefinition("DisplayName", ColumnType.Localized, 72, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A short human-readable name for this item."), + new ColumnDefinition("Description", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "A human-readable description."), + new ColumnDefinition("HelpLocation", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Filename or namespace of the context-sensitive help for this item."), + new ColumnDefinition("HelpKeyword", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Keyword index into the HelpLocation for this item."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleDependency = new TableDefinition( + "ModuleDependency", + SymbolDefinitions.ModuleDependency, + new[] + { + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "Module requiring the dependency.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ModuleLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "Language of module requiring the dependency.", forceLocalizable: true), + new ColumnDefinition("RequiredID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "String.GUID of required module."), + new ColumnDefinition("RequiredLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "LanguageID of the required module.", forceLocalizable: true), + new ColumnDefinition("RequiredVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Version of the required version."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleExclusion = new TableDefinition( + "ModuleExclusion", + SymbolDefinitions.ModuleExclusion, + new[] + { + new ColumnDefinition("ModuleID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "ModuleSignature", keyColumn: 1, description: "String.GUID of module with exclusion requirement.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ModuleLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, keyTable: "ModuleSignature", keyColumn: 2, description: "LanguageID of module with exclusion requirement.", forceLocalizable: true), + new ColumnDefinition("ExcludedID", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "String.GUID of excluded module."), + new ColumnDefinition("ExcludedLanguage", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "Language of excluded module.", forceLocalizable: true), + new ColumnDefinition("ExcludedMinVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Minimum version of excluded module."), + new ColumnDefinition("ExcludedMaxVersion", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Version, description: "Maximum version of excluded module."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ModuleIgnoreTable = new TableDefinition( + "ModuleIgnoreTable", + SymbolDefinitions.ModuleIgnoreTable, + new[] + { + new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table name to ignore during merge operation."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleInstallExecuteSequence = new TableDefinition( + "ModuleInstallExecuteSequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleInstallExecuteSequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleInstallUISequence = new TableDefinition( + "ModuleInstallUISequence", + null, + new[] + { + new ColumnDefinition("Action", ColumnType.String, 64, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Action to insert", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -4, maxValue: 32767, description: "Standard Sequence number"), + new ColumnDefinition("BaseAction", ColumnType.String, 64, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "ModuleInstallUISequence", keyColumn: 1, description: "Base action to determine insert location.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("After", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 1, description: "Before (0) or After (1)"), + new ColumnDefinition("Condition", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Condition, modularizeType: ColumnModularizeType.Condition, forceLocalizable: true), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition ModuleSubstitution = new TableDefinition( + "ModuleSubstitution", + SymbolDefinitions.ModuleSubstitution, + new[] + { + new ColumnDefinition("Table", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Table containing the data to be modified."), + new ColumnDefinition("Row", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Row containing the data to be modified.", modularizeType: ColumnModularizeType.SemicolonDelimited), + new ColumnDefinition("Column", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Column containing the data to be modified."), + new ColumnDefinition("Value", ColumnType.Localized, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Template for modification data."), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Properties = new TableDefinition( + "Properties", + SymbolDefinitions.Properties, + new[] + { + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key, non-localized token"), + new ColumnDefinition("Value", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Value of the property"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ImageFamilies = new TableDefinition( + "ImageFamilies", + SymbolDefinitions.ImageFamilies, + new[] + { + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), + new ColumnDefinition("MediaSrcPropName", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("MediaDiskId", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), + new ColumnDefinition("FileSequenceStart", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Integer, minValue: 1, maxValue: 214743647), + new ColumnDefinition("DiskPrompt", ColumnType.String, 128, primaryKey: false, nullable: true, ColumnCategory.Text, forceLocalizable: true), + new ColumnDefinition("VolumeLabel", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Text), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UpgradedImages = new TableDefinition( + "UpgradedImages", + SymbolDefinitions.UpgradedImages, + new[] + { + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, description: "Primary key"), + new ColumnDefinition("MsiPath", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("PatchMsiPath", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family to which this image belongs"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UpgradedFilesToIgnore = new TableDefinition( + "UpgradedFilesToIgnore", + SymbolDefinitions.UpgradedFilesToIgnore, + new[] + { + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition UpgradedFilesOptionalData = new TableDefinition( + "UpgradedFiles_OptionalData", + SymbolDefinitions.UpgradedFilesOptionalData, + new[] + { + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("AllowIgnoreOnPatchError", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), + new ColumnDefinition("IncludeWholeFile", ColumnType.Number, 0, primaryKey: false, nullable: true, ColumnCategory.Integer), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition TargetImages = new TableDefinition( + "TargetImages", + SymbolDefinitions.TargetImages, + new[] + { + new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text), + new ColumnDefinition("MsiPath", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Upgraded", ColumnType.String, 13, primaryKey: false, nullable: false, ColumnCategory.Text, keyTable: "UpgradedImages", keyColumn: 1, description: "Foreign key, Upgraded image"), + new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), + new ColumnDefinition("ProductValidateFlags", ColumnType.String, 16, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreMissingSrcFiles", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition TargetFilesOptionalData = new TableDefinition( + "TargetFiles_OptionalData", + SymbolDefinitions.TargetFilesOptionalData, + new[] + { + new ColumnDefinition("Target", ColumnType.String, 13, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "TargetImages", keyColumn: 1, description: "Foreign key, Target image"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition FamilyFileRanges = new TableDefinition( + "FamilyFileRanges", + SymbolDefinitions.FamilyFileRanges, + new[] + { + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("RetainOffsets", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), + new ColumnDefinition("RetainLengths", ColumnType.String, 128, primaryKey: false, nullable: false, ColumnCategory.Text), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition ExternalFiles = new TableDefinition( + "ExternalFiles", + SymbolDefinitions.ExternalFiles, + new[] + { + new ColumnDefinition("Family", ColumnType.String, 8, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "ImageFamilies", keyColumn: 1, description: "Foreign key, Family"), + new ColumnDefinition("FTK", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "File", keyColumn: 1, description: "Foreign key, File to ignore", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("FilePath", ColumnType.String, 255, primaryKey: true, nullable: false, ColumnCategory.Text), + new ColumnDefinition("SymbolPaths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("IgnoreLengths", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("RetainOffsets", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text), + new ColumnDefinition("Order", ColumnType.Number, 0, primaryKey: false, nullable: false, ColumnCategory.Integer), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Streams = new TableDefinition( + "_Streams", + null, + new[] + { + new ColumnDefinition("Name", ColumnType.String, 62, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Data", ColumnType.Object, 0, primaryKey: false, nullable: true, ColumnCategory.Unknown), + }, + unreal: true, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition SummaryInformation = new TableDefinition( + "_SummaryInformation", + SymbolDefinitions.SummaryInformation, + new[] + { + new ColumnDefinition("PropertyId", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Value", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition TransformView = new TableDefinition( + "_TransformView", + null, + new[] + { + new ColumnDefinition("Table", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Column", ColumnType.String, 0, primaryKey: true, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Row", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Data", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + new ColumnDefinition("Current", ColumnType.String, 0, primaryKey: false, nullable: false, ColumnCategory.Unknown), + }, + unreal: true, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition Validation = new TableDefinition( + "_Validation", + null, + new[] + { + new ColumnDefinition("Table", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of table"), + new ColumnDefinition("Column", ColumnType.String, 32, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of column"), + new ColumnDefinition("Nullable", ColumnType.String, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "Y;N", description: "Whether the column is nullable"), + new ColumnDefinition("MinValue", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Minimum value allowed"), + new ColumnDefinition("MaxValue", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: -2147483647, maxValue: 2147483647, description: "Maximum value allowed"), + new ColumnDefinition("KeyTable", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Identifier, description: "For foreign key, Name of table to which data must link"), + new ColumnDefinition("KeyColumn", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 1, maxValue: 32, description: "Column to which foreign key connects"), + new ColumnDefinition("Category", ColumnType.String, 32, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "Text;Formatted;Template;Condition;Guid;Path;Version;Language;Identifier;Binary;UpperCase;LowerCase;Filename;Paths;AnyPath;WildCardFilename;RegPath;CustomSource;Property;Cabinet;Shortcut;FormattedSDDLText;Integer;DoubleInteger;TimeDate;DefaultDir", description: "String category"), + new ColumnDefinition("Set", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Set of values that are permitted"), + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Description of column"), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition WixDependencyProvider = new TableDefinition( + "WixDependencyProvider", + SymbolDefinitions.WixDependencyProvider, + new[] + { + new ColumnDefinition("WixDependencyProvider", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "The foreign key into the Component table used to determine install state.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."), + new ColumnDefinition("Version", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The version of the package."), + new ColumnDefinition("DisplayName", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "The display name of the package."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixDependency = new TableDefinition( + "WixDependency", + SymbolDefinitions.WixDependency, + new[] + { + new ColumnDefinition("WixDependency", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "The non-localized primary key for the table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("ProviderKey", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "The name of the registry key that holds the provider identity."), + new ColumnDefinition("MinVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The minimum version of the provider supported."), + new ColumnDefinition("MaxVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Version, description: "The maximum version of the provider supported."), + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "A 32-bit word that specifies the attribute flags to be applied."), + }, + symbolIdIsPrimaryKey: true + ); + + public static readonly TableDefinition WixDependencyRef = new TableDefinition( + "WixDependencyRef", + SymbolDefinitions.WixDependencyRef, + new[] + { + new ColumnDefinition("WixDependencyProvider_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependencyProvider", keyColumn: 1, description: "Foreign key into the Component table.", modularizeType: ColumnModularizeType.Column), + new ColumnDefinition("WixDependency_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "WixDependency", keyColumn: 1, description: "Foreign key into the WixDependency table.", modularizeType: ColumnModularizeType.Column), + }, + symbolIdIsPrimaryKey: false + ); + + public static readonly TableDefinition[] All = new[] + { + ActionText, + AdminExecuteSequence, + Condition, + AdminUISequence, + AdvtExecuteSequence, + AdvtUISequence, + AppId, + AppSearch, + Property, + BBControl, + Billboard, + Feature, + Binary, + BindImage, + File, + CCPSearch, + CheckBox, + Class, + Component, + Icon, + ProgId, + ComboBox, + CompLocator, + Complus, + Directory, + Control, + Dialog, + ControlCondition, + ControlEvent, + CreateFolder, + CustomAction, + DrLocator, + DuplicateFile, + Environment, + Error, + EventMapping, + Extension, + MIME, + FeatureComponents, + FileSFPCatalog, + SFPCatalog, + Font, + IniFile, + IniLocator, + InstallExecuteSequence, + InstallUISequence, + IsolatedComponent, + LaunchCondition, + ListBox, + ListView, + LockPermissions, + MsiLockPermissionsEx, + Media, + MoveFile, + MsiAssembly, + MsiAssemblyName, + MsiDigitalCertificate, + MsiDigitalSignature, + MsiEmbeddedChainer, + MsiEmbeddedUI, + MsiFileHash, + MsiPackageCertificate, + MsiPatchCertificate, + MsiPatchHeaders, + PatchMetadata, + MsiPatchMetadata, + MsiPatchOldAssemblyFile, + MsiPatchOldAssemblyName, + PatchSequence, + MsiPatchSequence, + ODBCAttribute, + ODBCDriver, + ODBCDataSource, + ODBCSourceAttribute, + ODBCTranslator, + Patch, + PatchPackage, + PublishComponent, + RadioButton, + Registry, + RegLocator, + RemoveFile, + RemoveIniFile, + RemoveRegistry, + ReserveCost, + SelfReg, + ServiceControl, + ServiceInstall, + MsiServiceConfig, + MsiServiceConfigFailureActions, + Shortcut, + MsiShortcutProperty, + Signature, + SoftwareIdentificationTag, + TextStyle, + TypeLib, + UIText, + Upgrade, + Verb, + ModuleAdminExecuteSequence, + ModuleAdminUISequence, + ModuleAdvtExecuteSequence, + ModuleAdvtUISequence, + ModuleComponents, + ModuleSignature, + ModuleConfiguration, + ModuleDependency, + ModuleExclusion, + ModuleIgnoreTable, + ModuleInstallExecuteSequence, + ModuleInstallUISequence, + ModuleSubstitution, + Properties, + ImageFamilies, + UpgradedImages, + UpgradedFilesToIgnore, + UpgradedFilesOptionalData, + TargetImages, + TargetFilesOptionalData, + FamilyFileRanges, + ExternalFiles, + Streams, + SummaryInformation, + TransformView, + Validation, + WixDependency, + WixDependencyProvider, + WixDependencyRef, + }; + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs new file mode 100644 index 00000000..9f7e5fa8 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/WixMissingTableDefinitionException.cs @@ -0,0 +1,22 @@ +// 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. + +namespace WixToolset.Data.WindowsInstaller +{ + using System; + + /// + /// Exception thrown when a table definition is missing. + /// + [Serializable] + public class WixMissingTableDefinitionException : WixException + { + /// + /// Instantiate new WixMissingTableDefinitionException. + /// + /// Localized error information. + public WixMissingTableDefinitionException(Message error) + : base(error) + { + } + } +} diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd new file mode 100644 index 00000000..a3dc7e2b --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd @@ -0,0 +1,66 @@ + + + + + + + + Schema for describing WiX Windows Installer Data files. + + + + + + + + + + + + + + + + Codepage of the output. + + + + + Type of the output. + + + + + + + + + + + + + + + Version of WiX used to create this output file. + + + + + + + + + + + + + Name of the substorage. + + + + + diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd new file mode 100644 index 00000000..a4504c01 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/libraries.xsd @@ -0,0 +1,66 @@ + + + + + + + + Schema for describing WiX Library files (.wixlib). + + + + + + + + + + + + + + + + Version of WiX used to create this library file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd new file mode 100644 index 00000000..5d95a59c --- /dev/null +++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd @@ -0,0 +1,143 @@ + + + + + + + + Schema for describing WiX Object files (.wixobj). + + + + + + + + + + + + Version of WiX used to create this object file. + + + + + + + + + + + + + Identifier for section (optional for Fragments) + + + + + Type of section + + + + + Codepage for output file, only valid on entry sections. + + + + + + + + + + + + + Name of table in Windows Installer database + + + + + + + + + + + + + + + + Row in a table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Data for a particular field in a row. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/api/wix/WixToolset.Data/WixCorruptFileException.cs b/src/api/wix/WixToolset.Data/WixCorruptFileException.cs new file mode 100644 index 00000000..83c3eb80 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixCorruptFileException.cs @@ -0,0 +1,29 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Exception when file does not match the expected format. + /// + public class WixCorruptFileException : WixException + { + public WixCorruptFileException(string path, string format, Exception innerException = null) + : base(ErrorMessages.CorruptFileFormat(path, format), innerException) + { + this.Path = path; + this.FileFormat = format; + } + + /// + /// Gets the actual file format found in the file. + /// + public string FileFormat { get; } + + /// + /// Gets the path to the file with unexpected format. + /// + public string Path { get; } + } +} diff --git a/src/api/wix/WixToolset.Data/WixDataStrings.Designer.cs b/src/api/wix/WixToolset.Data/WixDataStrings.Designer.cs new file mode 100644 index 00000000..de26156a --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixDataStrings.Designer.cs @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WixToolset.Data { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class WixDataStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal WixDataStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WixToolset.Data.WixDataStrings", typeof(WixDataStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to The value '{0}' is not a legal identifier and therefore cannot be modularized.. + /// + public static string EXP_CannotModularizeIllegalID { + get { + return ResourceManager.GetString("EXP_CannotModularizeIllegalID", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown column type: {0}. + /// + public static string EXP_UnknownColumnType { + get { + return ResourceManager.GetString("EXP_UnknownColumnType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The table {0} is not supported.. + /// + public static string EXP_UnsupportedTable { + get { + return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture); + } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WixDataStrings.resx b/src/api/wix/WixToolset.Data/WixDataStrings.resx new file mode 100644 index 00000000..999f5057 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixDataStrings.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The table {0} is not supported. + + + The value '{0}' is not a legal identifier and therefore cannot be modularized. + + + Unknown column type: {0} + + \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/WixException.cs b/src/api/wix/WixToolset.Data/WixException.cs new file mode 100644 index 00000000..77dadcd2 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixException.cs @@ -0,0 +1,63 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Base class for all WiX exceptions. + /// + [Serializable] + public class WixException : Exception + { + /// + /// Instantiate a new WixException. + /// + public WixException() + { + } + + /// + /// Instantiate a new WixException with a simple string message. + /// + /// Simple string message. + public WixException(string message) : base(message) + { + } + + /// + /// Instantiate a new WixException with a simple message and exception. + /// + /// Simple string message. + /// Inner exception. + public WixException(string message, Exception innerException) : base(message, innerException) + { + } + + /// + /// Instantiate a new WixException with a given WixError. + /// + /// The localized error information. + public WixException(Message error) + : this(error, null) + { + } + + /// + /// Instantiate a new WixException with a given WixError. + /// + /// The localized error information. + /// Original exception. + public WixException(Message error, Exception exception) : + base(error.ToString(), exception) + { + this.Error = error; + } + + /// + /// Gets the error message. + /// + /// The error message. + public Message Error { get; } + } +} diff --git a/src/api/wix/WixToolset.Data/WixOutput.cs b/src/api/wix/WixToolset.Data/WixOutput.cs new file mode 100644 index 00000000..43359f24 --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixOutput.cs @@ -0,0 +1,279 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + using System.IO; + using System.IO.Compression; + using System.Reflection; + using System.Text; + + /// + /// Class that understands the standard file structure of the WiX toolset. + /// + public class WixOutput : IDisposable + { + private readonly Stream stream; + private ZipArchive archive; + private bool disposed; + + private WixOutput(Uri uri, ZipArchive archive, Stream stream) + { + this.Uri = uri; + this.archive = archive; + this.stream = stream; + } + + /// + /// + /// + public Uri Uri { get; } + + /// + /// Creates a new file structure in memory. + /// + /// Newly created WixOutput. + public static WixOutput Create() + { + var uri = new Uri("memorystream:"); + + var stream = new MemoryStream(); + + return WixOutput.Create(uri, stream); + } + + /// + /// Creates a new file structure on disk. + /// + /// Path to write file structure to. + /// Newly created WixOutput. + public static WixOutput Create(string path) + { + var fullPath = Path.GetFullPath(path); + + Directory.CreateDirectory(Path.GetDirectoryName(fullPath)); + + var uri = new Uri(fullPath); + + var stream = File.Create(path); + + return WixOutput.Create(uri, stream); + } + + /// + /// Creates a new file structure. + /// + /// + /// Stream to write the file structure to. + /// Newly created WixOutput. + public static WixOutput Create(Uri uri, Stream stream) + { + var archive = new ZipArchive(stream, ZipArchiveMode.Update, leaveOpen: true); + + return new WixOutput(uri, archive, stream); + } + + /// + /// Loads a wixout from a path on disk. + /// + /// Path to wixout file saved on disk. + /// Loaded created WixOutput. + public static WixOutput Read(string path) + { + var uri = new Uri(Path.GetFullPath(path)); + + var stream = File.OpenRead(path); + + return Read(uri, stream); + } + + /// + /// Loads a wixout from a path on disk or embedded resource in assembly. + /// + /// Uri with local path to wixout file saved on disk or embedded resource in assembly. + /// Loaded created WixOutput. + public static WixOutput Read(Uri baseUri) + { + // If the embedded files are stored in an assembly resource stream (usually + // a .wixlib embedded in a WixExtension). + if ("embeddedresource" == baseUri.Scheme) + { + var assemblyPath = Path.GetFullPath(baseUri.LocalPath); + var resourceName = baseUri.Fragment.TrimStart('#'); + + var assembly = Assembly.LoadFile(assemblyPath); + return WixOutput.Read(assembly, resourceName); + } + else // normal file (usually a binary .wixlib on disk). + { + var stream = File.OpenRead(baseUri.LocalPath); + return WixOutput.Read(baseUri, stream); + } + } + + /// + /// Loads a wixout from an assembly resource stream. + /// + /// + /// + /// Loaded created WixOutput. + public static WixOutput Read(Assembly assembly, string resourceName) + { + var resourceStream = assembly.GetManifestResourceStream(resourceName); + + var uriBuilder = new UriBuilder(assembly.CodeBase) + { + Scheme = "embeddedresource", + Fragment = resourceName + }; + + return Read(uriBuilder.Uri, resourceStream); + } + + /// + /// Reads a file structure from an open stream. + /// + /// + /// Stream to read from. + /// Loaded created WixOutput. + public static WixOutput Read(Uri uri, Stream stream) + { + try + { + var archive = new ZipArchive(stream, ZipArchiveMode.Read, leaveOpen: true); + + return new WixOutput(uri, archive, stream); + } + catch (InvalidDataException) + { + throw new WixException(ErrorMessages.CorruptFileFormat(uri.AbsoluteUri, "wixout")); + } + } + + /// + /// Reopen the underlying archive for read-only or read-write access. + /// + /// Indicates whether the output can be modified. Defaults to false. + public void Reopen(bool writable = false) + { + this.archive?.Dispose(); + this.archive = null; + + this.archive = new ZipArchive(this.stream, writable ? ZipArchiveMode.Update : ZipArchiveMode.Read, leaveOpen: true); + } + + /// + /// Extracts an embedded file. + /// + /// Id to the file to extract. + /// Path to write the extracted file to. + public void ExtractEmbeddedFile(string embeddedId, string outputPath) + { + var entry = this.archive.GetEntry(embeddedId); + + if (entry == null) + { + throw new ArgumentOutOfRangeException(nameof(embeddedId)); + } + + var folder = Path.GetDirectoryName(outputPath); + + Directory.CreateDirectory(folder); + + entry.ExtractToFile(outputPath, overwrite: true); + } + + /// + /// Creates a data stream in the wixout. + /// + /// Stream to the data of the file. + public Stream CreateDataStream(string name) + { + this.DeleteExistingEntry(name); + + var entry = this.archive.CreateEntry(name); + + return entry.Open(); + } + + /// + /// Imports a file from disk into the output. + /// + /// Name of the stream in the output. + /// Path to file on disk to include in the output. + public void ImportDataStream(string name, string path) + { + this.DeleteExistingEntry(name); + + this.archive.CreateEntryFromFile(path, name, System.IO.Compression.CompressionLevel.Optimal); + } + + /// + /// Gets a non-closing stream to the data of the file. + /// + /// Stream to the data of the file. + public Stream GetDataStream(string name) + { + var entry = this.archive.GetEntry(name); + + if (entry == null) + { + throw new ArgumentOutOfRangeException(nameof(name)); + } + + return entry.Open(); + } + + /// + /// Gets the data of the file as a string. + /// + /// String contents data of the file. + public string GetData(string name) + { + var entry = this.archive.GetEntry(name); + + // Use StreamReader to "swallow" BOM if present. + using (var stream = entry.Open()) + using (var streamReader = new StreamReader(stream, Encoding.UTF8)) + { + return streamReader.ReadToEnd(); + } + } + + /// + /// Disposes of the internal state of the file structure. + /// + public void Dispose() + { + this.Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Disposes of the internsl state of the file structure. + /// + /// True if disposing. + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + this.archive?.Dispose(); + this.stream?.Dispose(); + } + } + + this.disposed = true; + } + + private void DeleteExistingEntry(string name) + { + var entry = this.archive.GetEntry(name); + if (entry != null) + { + entry.Delete(); + } + } + } +} diff --git a/src/api/wix/WixToolset.Data/WixToolset.Data.csproj b/src/api/wix/WixToolset.Data/WixToolset.Data.csproj new file mode 100644 index 00000000..24b0917b --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixToolset.Data.csproj @@ -0,0 +1,40 @@ + + + + + + netstandard2.0 + $(TargetFrameworks);net461;net472 + 7.3 + WiX Toolset Data + embedded + true + true + + CS1591 + + + + + + + + + + + + + + True + True + WixDataStrings.resx + + + + + + PublicResXFileCodeGenerator + WixDataStrings.Designer.cs + + + diff --git a/src/api/wix/WixToolset.Data/WixToolset.Data.v3.ncrunchproject b/src/api/wix/WixToolset.Data/WixToolset.Data.v3.ncrunchproject new file mode 100644 index 00000000..c6001ebe --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixToolset.Data.v3.ncrunchproject @@ -0,0 +1,7 @@ + + + + ..\..\version.json + + + \ No newline at end of file diff --git a/src/api/wix/WixToolset.Data/WixUnexpectedFileFormatException.cs b/src/api/wix/WixToolset.Data/WixUnexpectedFileFormatException.cs new file mode 100644 index 00000000..4bd6ba4a --- /dev/null +++ b/src/api/wix/WixToolset.Data/WixUnexpectedFileFormatException.cs @@ -0,0 +1,35 @@ +// 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. + +namespace WixToolset.Data +{ + using System; + + /// + /// Exception when file does not match the expected format. + /// + public class WixUnexpectedFileFormatException : WixException + { + public WixUnexpectedFileFormatException(string path, string expectedFormat, string format, Exception innerException = null) + : base(ErrorMessages.UnexpectedFileFormat(path, expectedFormat, format), innerException) + { + this.Path = path; + this.ExpectedFileFormat = expectedFormat; + this.FileFormat = format; + } + + /// + /// Gets the expected file format. + /// + public string ExpectedFileFormat { get; } + + /// + /// Gets the actual file format found in the file. + /// + public string FileFormat { get; } + + /// + /// Gets the path to the file with unexpected format. + /// + public string Path { get; set; } + } +} diff --git a/src/api/wix/WixToolset.Data/YesNoAlwaysType.cs b/src/api/wix/WixToolset.Data/YesNoAlwaysType.cs new file mode 100644 index 00000000..3b4ca5d7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/YesNoAlwaysType.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Yes, No, Always xml simple type. + /// + public enum YesNoAlwaysType + { + /// Not a valid yes, no or always value. + IllegalValue = -2, + + /// Value not set; equivalent to null for reference types. + NotSet = -1, + + /// The no value. + No, + + /// The yes value. + Yes, + + /// The always value. + Always, + } +} diff --git a/src/api/wix/WixToolset.Data/YesNoDefaultType.cs b/src/api/wix/WixToolset.Data/YesNoDefaultType.cs new file mode 100644 index 00000000..fd782d46 --- /dev/null +++ b/src/api/wix/WixToolset.Data/YesNoDefaultType.cs @@ -0,0 +1,25 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Yes, No, Default xml simple type. + /// + public enum YesNoDefaultType + { + /// Not a valid yes, no or default value. + IllegalValue = -2, + + /// Value not set; equivalent to null for reference types. + NotSet = -1, + + /// The no value. + No, + + /// The yes value. + Yes, + + /// The default value. + Default, + } +} diff --git a/src/api/wix/WixToolset.Data/YesNoType.cs b/src/api/wix/WixToolset.Data/YesNoType.cs new file mode 100644 index 00000000..9c1cc9a7 --- /dev/null +++ b/src/api/wix/WixToolset.Data/YesNoType.cs @@ -0,0 +1,22 @@ +// 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. + +namespace WixToolset.Data +{ + /// + /// Yes/no type (kinda like a boolean). + /// + public enum YesNoType + { + /// Not a valid yes or no value. + IllegalValue = -2, + + /// Value not set; equivalent to null for reference types. + NotSet = -1, + + /// The no value. + No, + + /// The yes value. + Yes, + } +} diff --git a/src/api/wix/appveyor.cmd b/src/api/wix/appveyor.cmd new file mode 100644 index 00000000..5e5debc9 --- /dev/null +++ b/src/api/wix/appveyor.cmd @@ -0,0 +1,19 @@ +@setlocal +@pushd %~dp0 +@set _C=Release +@if /i "%1"=="debug" set _C=Debug + +:: Restore +msbuild -p:Configuration=%_C% -t:Restore || exit /b + +:: Build +msbuild -p:Configuration=%_C% || exit /b + +:: Test +dotnet test -c %_C% --no-build || exit /b + +:: Pack +msbuild -p:Configuration=%_C% -p:NoBuild=true -t:Pack || exit /b + +@popd +@endlocal diff --git a/src/api/wix/appveyor.yml b/src/api/wix/appveyor.yml new file mode 100644 index 00000000..c53cc9cc --- /dev/null +++ b/src/api/wix/appveyor.yml @@ -0,0 +1,42 @@ +# 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. +# +# Do NOT modify this file. Update the canonical version in Home\repo-template\src\appveyor.yml +# then update all of the repos. + +branches: + only: + - master + - develop + +image: Visual Studio 2019 + +version: 0.0.0.{build} +configuration: Release + +environment: + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + NUGET_XMLDOC_MODE: skip + +build_script: + - appveyor.cmd + +pull_requests: + do_not_increment_build_number: true + +nuget: + disable_publish_on_pr: true + +skip_branch_with_pr: true +skip_tags: true + +artifacts: +- path: build\Release\**\*.nupkg + name: nuget +- path: build\Release\**\*.snupkg + name: snupkg + +notifications: +- provider: Slack + incoming_webhook: + secure: p5xuu+4x2JHfwGDMDe5KcG1k7gZxqYc4jWVwvyNZv5cvkubPD2waJs5yXMAXZNN7Z63/3PWHb7q4KoY/99AjauYa1nZ4c5qYqRPFRBKTHfA= diff --git a/src/api/wix/nuget.config b/src/api/wix/nuget.config new file mode 100644 index 00000000..d5ef8952 --- /dev/null +++ b/src/api/wix/nuget.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs b/src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs new file mode 100644 index 00000000..8a65c2d4 --- /dev/null +++ b/src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs @@ -0,0 +1,427 @@ +// 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. + +namespace WixToolsetTest.Data +{ + using System; + using System.IO; + using System.Linq; + using WixToolset.Data; + using WixToolset.Data.Bind; + using WixToolset.Data.Symbols; + using WixToolset.Data.WindowsInstaller.Rows; + using Xunit; + + using Wid = WixToolset.Data.WindowsInstaller; + + public class SerializeFixture + { + [Fact] + public void CanSaveAndLoadIntermediate() + { + var sln = new SourceLineNumber("test.wxs", 1); + + var section = new IntermediateSection("test", SectionType.Product); + + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) + { + ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + DirectoryRef = "TestFolder", + Location = ComponentLocation.Either, + }); + + var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); + + intermediate.UpdateLevel(IntermediateLevels.Linked); + intermediate.UpdateLevel(IntermediateLevels.Resolved); + + var path = Path.GetTempFileName(); + try + { + intermediate.Save(path); + + var loaded = Intermediate.Load(path); + + Assert.True(loaded.HasLevel(IntermediateLevels.Compiled)); + Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); + Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); + + var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); + + Assert.Equal("TestComponent", symbol.Id.Id); + Assert.Equal(AccessModifier.Global, symbol.Id.Access); + Assert.Equal("TestFolder", symbol.DirectoryRef); + Assert.Equal(ComponentLocation.Either, symbol.Location); + } + finally + { + File.Delete(path); + } + } + + [Fact] + public void CanUpdateIntermediate() + { + var sln = new SourceLineNumber("test.wxs", 1); + var section = new IntermediateSection("test", SectionType.Product); + + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) + { + ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + DirectoryRef = "TestFolder", + Location = ComponentLocation.Either, + }); + + var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); + + var path = Path.GetTempFileName(); + try + { + intermediate.Save(path); + + var uri = new Uri(Path.GetFullPath(path)); + var stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite); + + using (var wixout = WixOutput.Read(uri, stream)) + { + var loaded = Intermediate.Load(wixout); + var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); + + Assert.Equal("TestComponent", symbol.Id.Id); + Assert.Equal(AccessModifier.Global, symbol.Id.Access); + + wixout.Reopen(writable: true); + + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "NewComponent")) + { + ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + }); + + intermediate.Save(wixout); + loaded = Intermediate.Load(wixout); + + var newSymbol = loaded.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); + Assert.Single(newSymbol); + } + + var loadedAfterDispose = Intermediate.Load(path); + var newSymbolStillThere = loadedAfterDispose.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); + Assert.Single(newSymbolStillThere); + + } + finally + { + File.Delete(path); + } + } + + [Fact] + public void CanSaveAndLoadIntermediateWithCustomDefinitions() + { + var sln = new SourceLineNumber("test.wxs", 1); + + var section = new IntermediateSection("test", SectionType.Product); + + var fieldDefs = new[] + { + new IntermediateFieldDefinition("A", IntermediateFieldType.String), + new IntermediateFieldDefinition("B", IntermediateFieldType.Number), + new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), + }; + + var symbolDef = new IntermediateSymbolDefinition("CustomDef2", fieldDefs, null); + + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); + symbol.Set(0, "foo"); + symbol.Set(1, 2); + symbol.Set(2, true); + + section.AddSymbol(symbol); + + var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); + + var path = Path.GetTempFileName(); + try + { + intermediate.Save(path); + + var loaded = Intermediate.Load(path); + var loadedSection = loaded.Sections.Single(); + var loadedSymbol = loadedSection.Symbols.Single(); + + Assert.Equal("foo", loadedSymbol.AsString(0)); + Assert.Equal(2, loadedSymbol[1].AsNumber()); + Assert.True(loadedSymbol[2].AsBool()); + } + finally + { + File.Delete(path); + } + } + + [Fact] + public void CanSaveAndLoadMultipleIntermediateWithCustomDefinitions() + { + var sln = new SourceLineNumber("test.wxs", 1); + + // Intermediate #1 + var fieldDefs = new[] + { + new IntermediateFieldDefinition("A", IntermediateFieldType.String), + new IntermediateFieldDefinition("B", IntermediateFieldType.Number), + new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), + }; + + var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); + + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); + symbol.Set(0, "foo"); + symbol.Set(1, 2); + symbol.Set(2, true); + + var section = new IntermediateSection("test", SectionType.Product); + section.AddSymbol(symbol); + + var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); + + // Intermediate #2 + var fieldDefs2 = new[] + { + new IntermediateFieldDefinition("A", IntermediateFieldType.String), + new IntermediateFieldDefinition("B", IntermediateFieldType.Number), + new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("D", IntermediateFieldType.String), + }; + + var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); + + var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); + symbol2.Set(0, "bar"); + symbol2.Set(1, 3); + symbol2.Set(2, false); + symbol2.Set(3, "baz"); + + var section2 = new IntermediateSection("test2", SectionType.Fragment); + section2.AddSymbol(symbol2); + + var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); + + // Save + var path1 = Path.GetTempFileName(); + var path2 = Path.GetTempFileName(); + try + { + intermediate1.Save(path1); + intermediate2.Save(path2); + + var loaded = Intermediate.Load(new[] { path1, path2 }); + + var loaded1 = loaded.First(); + var loaded2 = loaded.Skip(1).Single(); + + var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); + var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); + + Assert.Equal("foo", loadedSymbol1.AsString(0)); + Assert.Equal(2, loadedSymbol1[1].AsNumber()); + Assert.True(loadedSymbol1[2].AsBool()); + + Assert.Equal("bar", loadedSymbol2.AsString(0)); + Assert.Equal(3, loadedSymbol2[1].AsNumber()); + Assert.False(loadedSymbol2[2].AsBool()); + Assert.Equal("baz", loadedSymbol2.AsString(3)); + } + finally + { + File.Delete(path2); + File.Delete(path1); + } + } + + [Fact] + public void CanSaveAndLoadMultipleIntermediateWithCustomDefinitionsAndTags() + { + var sln = new SourceLineNumber("test.wxs", 1); + + // Intermediate #1 + var fieldDefs = new[] + { + new IntermediateFieldDefinition("A", IntermediateFieldType.String), + new IntermediateFieldDefinition("B", IntermediateFieldType.Number), + new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), + }; + + var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); + + symbolDef.AddTag("customDef"); + + var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); + symbol.Set(0, "foo"); + symbol.Set(1, 2); + symbol.Set(2, true); + + symbol.AddTag("symbol1tag"); + + var section = new IntermediateSection("test", SectionType.Product); + section.AddSymbol(symbol); + + var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); + + // Intermediate #2 + var fieldDefs2 = new[] + { + new IntermediateFieldDefinition("A", IntermediateFieldType.String), + new IntermediateFieldDefinition("B", IntermediateFieldType.Number), + new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), + new IntermediateFieldDefinition("D", IntermediateFieldType.String), + }; + + var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); + + symbolDef2.AddTag("customDef2"); + symbolDef2.AddTag("customDef2 tag2"); + + var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); + symbol2.Set(0, "bar"); + symbol2.Set(1, 3); + symbol2.Set(2, false); + symbol2.Set(3, "baz"); + + symbol2.AddTag("symbol2tag1"); + symbol2.AddTag("symbol2tag2"); + + var section2 = new IntermediateSection("test2", SectionType.Fragment); + section2.AddSymbol(symbol2); + + var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); + + // Save + var path1 = Path.GetTempFileName(); + var path2 = Path.GetTempFileName(); + try + { + intermediate1.Save(path1); + intermediate2.Save(path2); + + var loaded = Intermediate.Load(new[] { path1, path2 }); + + var loaded1 = loaded.First(); + var loaded2 = loaded.Skip(1).Single(); + + var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); + var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); + + Assert.True(loadedSymbol1.Definition.HasTag("customDef")); + Assert.Equal("foo", loadedSymbol1.AsString(0)); + Assert.Equal(2, loadedSymbol1[1].AsNumber()); + Assert.True(loadedSymbol1[2].AsBool()); + Assert.True(loadedSymbol1.HasTag("symbol1tag")); + + Assert.True(loadedSymbol2.Definition.HasTag("customDef2")); + Assert.True(loadedSymbol2.Definition.HasTag("customDef2 tag2")); + Assert.Equal("bar", loadedSymbol2.AsString(0)); + Assert.Equal(3, loadedSymbol2[1].AsNumber()); + Assert.False(loadedSymbol2[2].AsBool()); + Assert.Equal("baz", loadedSymbol2.AsString(3)); + Assert.True(loadedSymbol2.HasTag("symbol2tag1")); + Assert.True(loadedSymbol2.HasTag("symbol2tag2")); + } + finally + { + File.Delete(path2); + File.Delete(path1); + } + } + + [Fact] + public void CanSaveAndLoadIntermediateWithLocalization() + { + var sln = new SourceLineNumber("test.wxs", 10); + + var bindVariables = new[] + { + new BindVariable { Id = "TestVar1", Value = "TestValue1", SourceLineNumbers = sln }, + new BindVariable { Id = "TestVar2", Value = "TestValue2", Overridable = true, SourceLineNumbers = sln }, + }; + + var controls = new[] + { + new LocalizedControl("TestDlg1", "TestControl1", 10, 10, 100, 100, false, false, false, null), + new LocalizedControl("TestDlg1", "TestControl2", 100, 90, 50, 70, false, false, false, "localized"), + }; + + var localizations = new[] + { + new Localization(65001, 1252, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey())) + }; + + var section = new IntermediateSection("test", SectionType.Product); + + section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) + { + ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + DirectoryRef = "TestFolder", + Location = ComponentLocation.Either, + }); + + var intermediate = new Intermediate("TestIntermediate", new[] { section }, localizations.ToDictionary(l => l.Culture)); + + var path = Path.GetTempFileName(); + try + { + intermediate.Save(path); + + var loaded = Intermediate.Load(path); + + var loc = loaded.Localizations.Single(); + Assert.Equal(65001, loc.Codepage); + Assert.Empty(loc.Culture); + Assert.Equal(new[] + { + "TestVar1/TestValue1/False", + "TestVar2/TestValue2/True", + }, loc.Variables.Select(v => String.Join("/", v.Id, v.Value, v.Overridable)).ToArray()); + } + finally + { + File.Delete(path); + } + } + + [Fact] + public void CanSaveAndLoadWindowsInstallerData() + { + var sln = new SourceLineNumber("test.wxs", 1); + var windowsInstallerData = new Wid.WindowsInstallerData(sln) + { + Type = OutputType.Product, + }; + + var fileTable = windowsInstallerData.EnsureTable(Wid.WindowsInstallerTableDefinitions.File); + var fileRow = (FileRow)fileTable.CreateRow(sln); + fileRow.File = "TestFile"; + + var path = Path.GetTempFileName(); + try + { + using (var wixout = WixOutput.Create(path)) + { + windowsInstallerData.Save(wixout); + } + + var loaded = Wid.WindowsInstallerData.Load(path); + + var loadedTable = Assert.Single(loaded.Tables); + Assert.Equal(Wid.WindowsInstallerTableDefinitions.File.Name, loadedTable.Name); + + var loadedRow = Assert.Single(loadedTable.Rows); + var loadedFileRow = Assert.IsType(loadedRow); + + Assert.Equal("TestFile", loadedFileRow.File); + } + finally + { + File.Delete(path); + } + } + } +} diff --git a/src/api/wix/test/WixToolsetTest.Data/TagFixture.cs b/src/api/wix/test/WixToolsetTest.Data/TagFixture.cs new file mode 100644 index 00000000..5527c978 --- /dev/null +++ b/src/api/wix/test/WixToolsetTest.Data/TagFixture.cs @@ -0,0 +1,101 @@ +// 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. + +namespace WixToolsetTest.Data +{ + using WixToolset.Data; + using Xunit; + + public class TagFixture + { + [Fact] + public void CanAddSingleTag() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test")); + Assert.True(symbol.HasTag("test")); + } + + [Fact] + public void CanAddDuplicateTag() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test")); + Assert.False(symbol.AddTag("test")); + } + + [Fact] + public void CanAddRemoveSingleTag() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test")); + Assert.True(symbol.RemoveTag("test")); + Assert.False(symbol.HasTag("test")); + } + + [Fact] + public void CanAddMultipleTags() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.HasTag("test1")); + Assert.True(symbol.HasTag("test2")); + } + + [Fact] + public void CanAddRemoveMultipleTags() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.RemoveTag("test2")); + Assert.False(symbol.HasTag("test2")); + Assert.True(symbol.RemoveTag("test1")); + Assert.False(symbol.HasTag("test1")); + } + + [Fact] + public void CanAddRemoveMissingTags() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.False(symbol.RemoveTag("test3")); + } + + [Fact] + public void CanAdd2AndRemoveAllTags() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.RemoveTag("test1")); + Assert.True(symbol.RemoveTag("test2")); + } + + [Fact] + public void CanAdd3AndRemoveAllTags() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.AddTag("test3")); + Assert.True(symbol.RemoveTag("test1")); + Assert.True(symbol.RemoveTag("test3")); + Assert.True(symbol.RemoveTag("test2")); + } + + [Fact] + public void CanAdd3AndRemoveMissingTags() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.True(symbol.AddTag("test1")); + Assert.True(symbol.AddTag("test2")); + Assert.True(symbol.AddTag("test3")); + Assert.False(symbol.RemoveTag("test4")); + Assert.True(symbol.RemoveTag("test1")); + Assert.True(symbol.RemoveTag("test3")); + Assert.True(symbol.RemoveTag("test2")); + } + } +} diff --git a/src/api/wix/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/api/wix/test/WixToolsetTest.Data/TupleDefinitionFixture.cs new file mode 100644 index 00000000..cde4a675 --- /dev/null +++ b/src/api/wix/test/WixToolsetTest.Data/TupleDefinitionFixture.cs @@ -0,0 +1,135 @@ +// 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. + +namespace WixToolsetTest.Data +{ + using WixToolset.Data; + using WixToolset.Data.Symbols; + using Xunit; + + public class SymbolDefinitionFixture + { + [Fact] + public void CanCreateFileSymbol() + { + var symbol = SymbolDefinitions.File.CreateSymbol(); + Assert.IsType(symbol); + Assert.Same(SymbolDefinitions.File, symbol.Definition); + } + + [Fact] + public void CanCreateFileSymbolByName() + { + var symbol = SymbolDefinitions.ByName("File").CreateSymbol(); + Assert.IsType(symbol); + Assert.Same(SymbolDefinitions.File, symbol.Definition); + } + + //[Fact] + //public void CanCreateFileSymbolByType() + //{ + // var symbol = SymbolDefinitions.CreateSymbol(); + // Assert.Same(SymbolDefinitions.File, symbol.Definition); + //} + + [Fact] + public void CanSetComponentFieldInFileSymbolByCasting() + { + var fileSymbol = (FileSymbol)SymbolDefinitions.File.CreateSymbol(); + fileSymbol.ComponentRef = "Foo"; + Assert.Equal("Foo", fileSymbol.ComponentRef); + } + + [Fact] + public void CanCheckNameofField() + { + var fileSymbol = new FileSymbol(); + Assert.Equal("ComponentRef", fileSymbol.Definition.FieldDefinitions[0].Name); + Assert.Null(fileSymbol.Fields[0]); + fileSymbol.ComponentRef = "Foo"; + Assert.Equal("ComponentRef", fileSymbol.Fields[0].Name); + Assert.Same(fileSymbol.Definition.FieldDefinitions[0].Name, fileSymbol.Fields[0].Name); + } + + [Fact] + public void CanSetComponentFieldInFileSymbolByNew() + { + var fileSymbol = new FileSymbol(); + fileSymbol.ComponentRef = "Foo"; + Assert.Equal("Foo", fileSymbol.ComponentRef); + } + + [Fact] + public void CanGetContext() + { + using (new IntermediateFieldContext("bar")) + { + var fileSymbol = new FileSymbol(); + fileSymbol.ComponentRef = "Foo"; + + var field = fileSymbol[FileSymbolFields.ComponentRef]; + Assert.Equal("Foo", field.AsString()); + Assert.Equal("bar", field.Context); + } + } + + [Fact] + public void CanSetInNestedContext() + { + var fileSymbol = new FileSymbol(); + + using (new IntermediateFieldContext("bar")) + { + fileSymbol.ComponentRef = "Foo"; + + var field = fileSymbol[FileSymbolFields.ComponentRef]; + Assert.Equal("Foo", field.AsString()); + Assert.Equal("bar", field.Context); + + using (new IntermediateFieldContext("baz")) + { + fileSymbol.ComponentRef = "Foo2"; + + field = fileSymbol[FileSymbolFields.ComponentRef]; + Assert.Equal("Foo2", field.AsString()); + Assert.Equal("baz", field.Context); + + Assert.Equal("Foo", (string)field.PreviousValue); + Assert.Equal("bar", field.PreviousValue.Context); + } + + fileSymbol.ComponentRef = "Foo3"; + + field = fileSymbol[FileSymbolFields.ComponentRef]; + Assert.Equal("Foo3", field.AsString()); + Assert.Equal("bar", field.Context); + + Assert.Equal("Foo2", (string)field.PreviousValue); + Assert.Equal("baz", field.PreviousValue.Context); + + Assert.Equal("Foo", (string)field.PreviousValue.PreviousValue); + Assert.Equal("bar", field.PreviousValue.PreviousValue.Context); + } + + fileSymbol.ComponentRef = "Foo4"; + + var fieldOutside = fileSymbol[FileSymbolFields.ComponentRef]; + Assert.Equal("Foo4", fieldOutside.AsString()); + Assert.Null(fieldOutside.Context); + } + + //[Fact] + //public void CanSetComponentFieldInFileSymbol() + //{ + // var fileSymbol = SymbolDefinitions.File.CreateSymbol(); + // fileSymbol.Component_ = "Foo"; + // Assert.Equal("Foo", fileSymbol.Component_); + //} + + //[Fact] + //public void CanThrowOnMismatchSymbolType() + //{ + // var e = Assert.Throws(() => SymbolDefinitions.File.CreateSymbol()); + // Assert.Equal("Requested wrong type WixToolset.Data.Symbols.ComponentSymbol, actual type WixToolset.Data.Symbols.FileSymbol", e.Message); + //} + } +} diff --git a/src/api/wix/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs b/src/api/wix/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs new file mode 100644 index 00000000..5621a756 --- /dev/null +++ b/src/api/wix/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs @@ -0,0 +1,29 @@ +// 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. + +namespace WixToolsetTest.Data +{ + using WixToolset.Data.WindowsInstaller; + using Xunit; + + public class WindowsInstallerTableDefinitionsFixture + { + [Fact] + public void CanCreateWindowsInstallerRows() + { + foreach (var tableDefinition in WindowsInstallerTableDefinitions.All) + { + var table = new Table(tableDefinition); + var rowFromTable = table.CreateRow(null); + var rowFromTableDefinition = tableDefinition.CreateRow(null); + var expectedRowTypeName = tableDefinition.Name.Replace("_", "") + "Row"; + var expectedRowType = rowFromTable.GetType(); + + Assert.Equal(expectedRowType, rowFromTableDefinition.GetType()); + if (typeof(Row) != expectedRowType) + { + Assert.Equal(expectedRowTypeName, expectedRowType.Name); + } + } + } + } +} diff --git a/src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj new file mode 100644 index 00000000..fb0f8594 --- /dev/null +++ b/src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj @@ -0,0 +1,19 @@ + + + + netcoreapp3.1 + + false + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs deleted file mode 100644 index 8a65c2d4..00000000 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ /dev/null @@ -1,427 +0,0 @@ -// 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. - -namespace WixToolsetTest.Data -{ - using System; - using System.IO; - using System.Linq; - using WixToolset.Data; - using WixToolset.Data.Bind; - using WixToolset.Data.Symbols; - using WixToolset.Data.WindowsInstaller.Rows; - using Xunit; - - using Wid = WixToolset.Data.WindowsInstaller; - - public class SerializeFixture - { - [Fact] - public void CanSaveAndLoadIntermediate() - { - var sln = new SourceLineNumber("test.wxs", 1); - - var section = new IntermediateSection("test", SectionType.Product); - - section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) - { - ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), - DirectoryRef = "TestFolder", - Location = ComponentLocation.Either, - }); - - var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); - - intermediate.UpdateLevel(IntermediateLevels.Linked); - intermediate.UpdateLevel(IntermediateLevels.Resolved); - - var path = Path.GetTempFileName(); - try - { - intermediate.Save(path); - - var loaded = Intermediate.Load(path); - - Assert.True(loaded.HasLevel(IntermediateLevels.Compiled)); - Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); - Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); - - var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); - - Assert.Equal("TestComponent", symbol.Id.Id); - Assert.Equal(AccessModifier.Global, symbol.Id.Access); - Assert.Equal("TestFolder", symbol.DirectoryRef); - Assert.Equal(ComponentLocation.Either, symbol.Location); - } - finally - { - File.Delete(path); - } - } - - [Fact] - public void CanUpdateIntermediate() - { - var sln = new SourceLineNumber("test.wxs", 1); - var section = new IntermediateSection("test", SectionType.Product); - - section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) - { - ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), - DirectoryRef = "TestFolder", - Location = ComponentLocation.Either, - }); - - var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); - - var path = Path.GetTempFileName(); - try - { - intermediate.Save(path); - - var uri = new Uri(Path.GetFullPath(path)); - var stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite); - - using (var wixout = WixOutput.Read(uri, stream)) - { - var loaded = Intermediate.Load(wixout); - var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); - - Assert.Equal("TestComponent", symbol.Id.Id); - Assert.Equal(AccessModifier.Global, symbol.Id.Access); - - wixout.Reopen(writable: true); - - section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "NewComponent")) - { - ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), - }); - - intermediate.Save(wixout); - loaded = Intermediate.Load(wixout); - - var newSymbol = loaded.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); - Assert.Single(newSymbol); - } - - var loadedAfterDispose = Intermediate.Load(path); - var newSymbolStillThere = loadedAfterDispose.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); - Assert.Single(newSymbolStillThere); - - } - finally - { - File.Delete(path); - } - } - - [Fact] - public void CanSaveAndLoadIntermediateWithCustomDefinitions() - { - var sln = new SourceLineNumber("test.wxs", 1); - - var section = new IntermediateSection("test", SectionType.Product); - - var fieldDefs = new[] - { - new IntermediateFieldDefinition("A", IntermediateFieldType.String), - new IntermediateFieldDefinition("B", IntermediateFieldType.Number), - new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), - }; - - var symbolDef = new IntermediateSymbolDefinition("CustomDef2", fieldDefs, null); - - var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); - symbol.Set(0, "foo"); - symbol.Set(1, 2); - symbol.Set(2, true); - - section.AddSymbol(symbol); - - var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); - - var path = Path.GetTempFileName(); - try - { - intermediate.Save(path); - - var loaded = Intermediate.Load(path); - var loadedSection = loaded.Sections.Single(); - var loadedSymbol = loadedSection.Symbols.Single(); - - Assert.Equal("foo", loadedSymbol.AsString(0)); - Assert.Equal(2, loadedSymbol[1].AsNumber()); - Assert.True(loadedSymbol[2].AsBool()); - } - finally - { - File.Delete(path); - } - } - - [Fact] - public void CanSaveAndLoadMultipleIntermediateWithCustomDefinitions() - { - var sln = new SourceLineNumber("test.wxs", 1); - - // Intermediate #1 - var fieldDefs = new[] - { - new IntermediateFieldDefinition("A", IntermediateFieldType.String), - new IntermediateFieldDefinition("B", IntermediateFieldType.Number), - new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), - }; - - var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); - - var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); - symbol.Set(0, "foo"); - symbol.Set(1, 2); - symbol.Set(2, true); - - var section = new IntermediateSection("test", SectionType.Product); - section.AddSymbol(symbol); - - var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); - - // Intermediate #2 - var fieldDefs2 = new[] - { - new IntermediateFieldDefinition("A", IntermediateFieldType.String), - new IntermediateFieldDefinition("B", IntermediateFieldType.Number), - new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("D", IntermediateFieldType.String), - }; - - var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); - - var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); - symbol2.Set(0, "bar"); - symbol2.Set(1, 3); - symbol2.Set(2, false); - symbol2.Set(3, "baz"); - - var section2 = new IntermediateSection("test2", SectionType.Fragment); - section2.AddSymbol(symbol2); - - var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); - - // Save - var path1 = Path.GetTempFileName(); - var path2 = Path.GetTempFileName(); - try - { - intermediate1.Save(path1); - intermediate2.Save(path2); - - var loaded = Intermediate.Load(new[] { path1, path2 }); - - var loaded1 = loaded.First(); - var loaded2 = loaded.Skip(1).Single(); - - var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); - var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); - - Assert.Equal("foo", loadedSymbol1.AsString(0)); - Assert.Equal(2, loadedSymbol1[1].AsNumber()); - Assert.True(loadedSymbol1[2].AsBool()); - - Assert.Equal("bar", loadedSymbol2.AsString(0)); - Assert.Equal(3, loadedSymbol2[1].AsNumber()); - Assert.False(loadedSymbol2[2].AsBool()); - Assert.Equal("baz", loadedSymbol2.AsString(3)); - } - finally - { - File.Delete(path2); - File.Delete(path1); - } - } - - [Fact] - public void CanSaveAndLoadMultipleIntermediateWithCustomDefinitionsAndTags() - { - var sln = new SourceLineNumber("test.wxs", 1); - - // Intermediate #1 - var fieldDefs = new[] - { - new IntermediateFieldDefinition("A", IntermediateFieldType.String), - new IntermediateFieldDefinition("B", IntermediateFieldType.Number), - new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), - }; - - var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); - - symbolDef.AddTag("customDef"); - - var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); - symbol.Set(0, "foo"); - symbol.Set(1, 2); - symbol.Set(2, true); - - symbol.AddTag("symbol1tag"); - - var section = new IntermediateSection("test", SectionType.Product); - section.AddSymbol(symbol); - - var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); - - // Intermediate #2 - var fieldDefs2 = new[] - { - new IntermediateFieldDefinition("A", IntermediateFieldType.String), - new IntermediateFieldDefinition("B", IntermediateFieldType.Number), - new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), - new IntermediateFieldDefinition("D", IntermediateFieldType.String), - }; - - var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); - - symbolDef2.AddTag("customDef2"); - symbolDef2.AddTag("customDef2 tag2"); - - var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); - symbol2.Set(0, "bar"); - symbol2.Set(1, 3); - symbol2.Set(2, false); - symbol2.Set(3, "baz"); - - symbol2.AddTag("symbol2tag1"); - symbol2.AddTag("symbol2tag2"); - - var section2 = new IntermediateSection("test2", SectionType.Fragment); - section2.AddSymbol(symbol2); - - var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); - - // Save - var path1 = Path.GetTempFileName(); - var path2 = Path.GetTempFileName(); - try - { - intermediate1.Save(path1); - intermediate2.Save(path2); - - var loaded = Intermediate.Load(new[] { path1, path2 }); - - var loaded1 = loaded.First(); - var loaded2 = loaded.Skip(1).Single(); - - var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); - var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); - - Assert.True(loadedSymbol1.Definition.HasTag("customDef")); - Assert.Equal("foo", loadedSymbol1.AsString(0)); - Assert.Equal(2, loadedSymbol1[1].AsNumber()); - Assert.True(loadedSymbol1[2].AsBool()); - Assert.True(loadedSymbol1.HasTag("symbol1tag")); - - Assert.True(loadedSymbol2.Definition.HasTag("customDef2")); - Assert.True(loadedSymbol2.Definition.HasTag("customDef2 tag2")); - Assert.Equal("bar", loadedSymbol2.AsString(0)); - Assert.Equal(3, loadedSymbol2[1].AsNumber()); - Assert.False(loadedSymbol2[2].AsBool()); - Assert.Equal("baz", loadedSymbol2.AsString(3)); - Assert.True(loadedSymbol2.HasTag("symbol2tag1")); - Assert.True(loadedSymbol2.HasTag("symbol2tag2")); - } - finally - { - File.Delete(path2); - File.Delete(path1); - } - } - - [Fact] - public void CanSaveAndLoadIntermediateWithLocalization() - { - var sln = new SourceLineNumber("test.wxs", 10); - - var bindVariables = new[] - { - new BindVariable { Id = "TestVar1", Value = "TestValue1", SourceLineNumbers = sln }, - new BindVariable { Id = "TestVar2", Value = "TestValue2", Overridable = true, SourceLineNumbers = sln }, - }; - - var controls = new[] - { - new LocalizedControl("TestDlg1", "TestControl1", 10, 10, 100, 100, false, false, false, null), - new LocalizedControl("TestDlg1", "TestControl2", 100, 90, 50, 70, false, false, false, "localized"), - }; - - var localizations = new[] - { - new Localization(65001, 1252, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey())) - }; - - var section = new IntermediateSection("test", SectionType.Product); - - section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) - { - ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), - DirectoryRef = "TestFolder", - Location = ComponentLocation.Either, - }); - - var intermediate = new Intermediate("TestIntermediate", new[] { section }, localizations.ToDictionary(l => l.Culture)); - - var path = Path.GetTempFileName(); - try - { - intermediate.Save(path); - - var loaded = Intermediate.Load(path); - - var loc = loaded.Localizations.Single(); - Assert.Equal(65001, loc.Codepage); - Assert.Empty(loc.Culture); - Assert.Equal(new[] - { - "TestVar1/TestValue1/False", - "TestVar2/TestValue2/True", - }, loc.Variables.Select(v => String.Join("/", v.Id, v.Value, v.Overridable)).ToArray()); - } - finally - { - File.Delete(path); - } - } - - [Fact] - public void CanSaveAndLoadWindowsInstallerData() - { - var sln = new SourceLineNumber("test.wxs", 1); - var windowsInstallerData = new Wid.WindowsInstallerData(sln) - { - Type = OutputType.Product, - }; - - var fileTable = windowsInstallerData.EnsureTable(Wid.WindowsInstallerTableDefinitions.File); - var fileRow = (FileRow)fileTable.CreateRow(sln); - fileRow.File = "TestFile"; - - var path = Path.GetTempFileName(); - try - { - using (var wixout = WixOutput.Create(path)) - { - windowsInstallerData.Save(wixout); - } - - var loaded = Wid.WindowsInstallerData.Load(path); - - var loadedTable = Assert.Single(loaded.Tables); - Assert.Equal(Wid.WindowsInstallerTableDefinitions.File.Name, loadedTable.Name); - - var loadedRow = Assert.Single(loadedTable.Rows); - var loadedFileRow = Assert.IsType(loadedRow); - - Assert.Equal("TestFile", loadedFileRow.File); - } - finally - { - File.Delete(path); - } - } - } -} diff --git a/src/test/WixToolsetTest.Data/TagFixture.cs b/src/test/WixToolsetTest.Data/TagFixture.cs deleted file mode 100644 index 5527c978..00000000 --- a/src/test/WixToolsetTest.Data/TagFixture.cs +++ /dev/null @@ -1,101 +0,0 @@ -// 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. - -namespace WixToolsetTest.Data -{ - using WixToolset.Data; - using Xunit; - - public class TagFixture - { - [Fact] - public void CanAddSingleTag() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test")); - Assert.True(symbol.HasTag("test")); - } - - [Fact] - public void CanAddDuplicateTag() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test")); - Assert.False(symbol.AddTag("test")); - } - - [Fact] - public void CanAddRemoveSingleTag() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test")); - Assert.True(symbol.RemoveTag("test")); - Assert.False(symbol.HasTag("test")); - } - - [Fact] - public void CanAddMultipleTags() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test1")); - Assert.True(symbol.AddTag("test2")); - Assert.True(symbol.HasTag("test1")); - Assert.True(symbol.HasTag("test2")); - } - - [Fact] - public void CanAddRemoveMultipleTags() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test1")); - Assert.True(symbol.AddTag("test2")); - Assert.True(symbol.RemoveTag("test2")); - Assert.False(symbol.HasTag("test2")); - Assert.True(symbol.RemoveTag("test1")); - Assert.False(symbol.HasTag("test1")); - } - - [Fact] - public void CanAddRemoveMissingTags() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test1")); - Assert.True(symbol.AddTag("test2")); - Assert.False(symbol.RemoveTag("test3")); - } - - [Fact] - public void CanAdd2AndRemoveAllTags() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test1")); - Assert.True(symbol.AddTag("test2")); - Assert.True(symbol.RemoveTag("test1")); - Assert.True(symbol.RemoveTag("test2")); - } - - [Fact] - public void CanAdd3AndRemoveAllTags() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test1")); - Assert.True(symbol.AddTag("test2")); - Assert.True(symbol.AddTag("test3")); - Assert.True(symbol.RemoveTag("test1")); - Assert.True(symbol.RemoveTag("test3")); - Assert.True(symbol.RemoveTag("test2")); - } - - [Fact] - public void CanAdd3AndRemoveMissingTags() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.True(symbol.AddTag("test1")); - Assert.True(symbol.AddTag("test2")); - Assert.True(symbol.AddTag("test3")); - Assert.False(symbol.RemoveTag("test4")); - Assert.True(symbol.RemoveTag("test1")); - Assert.True(symbol.RemoveTag("test3")); - Assert.True(symbol.RemoveTag("test2")); - } - } -} diff --git a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs deleted file mode 100644 index cde4a675..00000000 --- a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs +++ /dev/null @@ -1,135 +0,0 @@ -// 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. - -namespace WixToolsetTest.Data -{ - using WixToolset.Data; - using WixToolset.Data.Symbols; - using Xunit; - - public class SymbolDefinitionFixture - { - [Fact] - public void CanCreateFileSymbol() - { - var symbol = SymbolDefinitions.File.CreateSymbol(); - Assert.IsType(symbol); - Assert.Same(SymbolDefinitions.File, symbol.Definition); - } - - [Fact] - public void CanCreateFileSymbolByName() - { - var symbol = SymbolDefinitions.ByName("File").CreateSymbol(); - Assert.IsType(symbol); - Assert.Same(SymbolDefinitions.File, symbol.Definition); - } - - //[Fact] - //public void CanCreateFileSymbolByType() - //{ - // var symbol = SymbolDefinitions.CreateSymbol(); - // Assert.Same(SymbolDefinitions.File, symbol.Definition); - //} - - [Fact] - public void CanSetComponentFieldInFileSymbolByCasting() - { - var fileSymbol = (FileSymbol)SymbolDefinitions.File.CreateSymbol(); - fileSymbol.ComponentRef = "Foo"; - Assert.Equal("Foo", fileSymbol.ComponentRef); - } - - [Fact] - public void CanCheckNameofField() - { - var fileSymbol = new FileSymbol(); - Assert.Equal("ComponentRef", fileSymbol.Definition.FieldDefinitions[0].Name); - Assert.Null(fileSymbol.Fields[0]); - fileSymbol.ComponentRef = "Foo"; - Assert.Equal("ComponentRef", fileSymbol.Fields[0].Name); - Assert.Same(fileSymbol.Definition.FieldDefinitions[0].Name, fileSymbol.Fields[0].Name); - } - - [Fact] - public void CanSetComponentFieldInFileSymbolByNew() - { - var fileSymbol = new FileSymbol(); - fileSymbol.ComponentRef = "Foo"; - Assert.Equal("Foo", fileSymbol.ComponentRef); - } - - [Fact] - public void CanGetContext() - { - using (new IntermediateFieldContext("bar")) - { - var fileSymbol = new FileSymbol(); - fileSymbol.ComponentRef = "Foo"; - - var field = fileSymbol[FileSymbolFields.ComponentRef]; - Assert.Equal("Foo", field.AsString()); - Assert.Equal("bar", field.Context); - } - } - - [Fact] - public void CanSetInNestedContext() - { - var fileSymbol = new FileSymbol(); - - using (new IntermediateFieldContext("bar")) - { - fileSymbol.ComponentRef = "Foo"; - - var field = fileSymbol[FileSymbolFields.ComponentRef]; - Assert.Equal("Foo", field.AsString()); - Assert.Equal("bar", field.Context); - - using (new IntermediateFieldContext("baz")) - { - fileSymbol.ComponentRef = "Foo2"; - - field = fileSymbol[FileSymbolFields.ComponentRef]; - Assert.Equal("Foo2", field.AsString()); - Assert.Equal("baz", field.Context); - - Assert.Equal("Foo", (string)field.PreviousValue); - Assert.Equal("bar", field.PreviousValue.Context); - } - - fileSymbol.ComponentRef = "Foo3"; - - field = fileSymbol[FileSymbolFields.ComponentRef]; - Assert.Equal("Foo3", field.AsString()); - Assert.Equal("bar", field.Context); - - Assert.Equal("Foo2", (string)field.PreviousValue); - Assert.Equal("baz", field.PreviousValue.Context); - - Assert.Equal("Foo", (string)field.PreviousValue.PreviousValue); - Assert.Equal("bar", field.PreviousValue.PreviousValue.Context); - } - - fileSymbol.ComponentRef = "Foo4"; - - var fieldOutside = fileSymbol[FileSymbolFields.ComponentRef]; - Assert.Equal("Foo4", fieldOutside.AsString()); - Assert.Null(fieldOutside.Context); - } - - //[Fact] - //public void CanSetComponentFieldInFileSymbol() - //{ - // var fileSymbol = SymbolDefinitions.File.CreateSymbol(); - // fileSymbol.Component_ = "Foo"; - // Assert.Equal("Foo", fileSymbol.Component_); - //} - - //[Fact] - //public void CanThrowOnMismatchSymbolType() - //{ - // var e = Assert.Throws(() => SymbolDefinitions.File.CreateSymbol()); - // Assert.Equal("Requested wrong type WixToolset.Data.Symbols.ComponentSymbol, actual type WixToolset.Data.Symbols.FileSymbol", e.Message); - //} - } -} diff --git a/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs b/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs deleted file mode 100644 index 5621a756..00000000 --- a/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs +++ /dev/null @@ -1,29 +0,0 @@ -// 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. - -namespace WixToolsetTest.Data -{ - using WixToolset.Data.WindowsInstaller; - using Xunit; - - public class WindowsInstallerTableDefinitionsFixture - { - [Fact] - public void CanCreateWindowsInstallerRows() - { - foreach (var tableDefinition in WindowsInstallerTableDefinitions.All) - { - var table = new Table(tableDefinition); - var rowFromTable = table.CreateRow(null); - var rowFromTableDefinition = tableDefinition.CreateRow(null); - var expectedRowTypeName = tableDefinition.Name.Replace("_", "") + "Row"; - var expectedRowType = rowFromTable.GetType(); - - Assert.Equal(expectedRowType, rowFromTableDefinition.GetType()); - if (typeof(Row) != expectedRowType) - { - Assert.Equal(expectedRowTypeName, expectedRowType.Name); - } - } - } - } -} diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj deleted file mode 100644 index fb0f8594..00000000 --- a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - netcoreapp3.1 - - false - - - - - - - - - - - - - diff --git a/src/version.json b/src/version.json new file mode 100644 index 00000000..5f857771 --- /dev/null +++ b/src/version.json @@ -0,0 +1,11 @@ +{ + "version": "4.0", + "publicReleaseRefSpec": [ + "^refs/heads/master$" + ], + "cloudBuild": { + "buildNumber": { + "enabled": true + } + } +} diff --git a/version.json b/version.json deleted file mode 100644 index 5f857771..00000000 --- a/version.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "4.0", - "publicReleaseRefSpec": [ - "^refs/heads/master$" - ], - "cloudBuild": { - "buildNumber": { - "enabled": true - } - } -} -- cgit v1.2.3-55-g6feb